From 8d9a6d9cdf440b0a9b254a8a4bf063c0cb6a6201 Mon Sep 17 00:00:00 2001 From: Lee Garrett Date: Fri, 16 Jun 2023 15:40:52 +0200 Subject: New upstream version 2.14.6 --- MANIFEST.in | 4 +- PKG-INFO | 2 +- bin/ansible-doc | 14 +- bin/ansible-galaxy | 6 +- bin/ansible-playbook | 2 + changelogs/CHANGELOG-v2.14.rst | 95 + changelogs/changelog.yaml | 187 + .../collection_integration_updating.rst | 4 +- .../collection_requirements.rst | 499 ++ .../collection_reviewing.rst | 4 +- .../collection_unit_tests.rst | 2 +- .../contributing_maintained_collections.rst | 4 +- .../rst/community/contributions_collections.rst | 1 + .../rst/community/documentation_contributions.rst | 21 +- .../rst/community/maintainers_guidelines.rst | 2 +- .../docsite/rst/community/maintainers_workflow.rst | 2 +- .../rst/community/other_tools_and_programs.rst | 3 + .../steering/community_steering_committee.rst | 4 +- .../dev_guide/developing_modules_documenting.rst | 4 +- docs/docsite/rst/dev_guide/developing_plugins.rst | 12 +- docs/docsite/rst/dev_guide/testing_sanity.rst | 4 - docs/docsite/rst/locales/ja/LC_MESSAGES/404.po | 6 +- docs/docsite/rst/locales/ja/LC_MESSAGES/cli.po | 693 +- .../locales/ja/LC_MESSAGES/collections_guide.po | 14 +- .../rst/locales/ja/LC_MESSAGES/command_guide.po | 8 +- .../rst/locales/ja/LC_MESSAGES/community.po | 1315 ++-- .../rst/locales/ja/LC_MESSAGES/dev_guide.po | 7158 +++++++++++--------- docs/docsite/rst/locales/ja/LC_MESSAGES/galaxy.po | 114 +- .../rst/locales/ja/LC_MESSAGES/getting_started.po | 18 +- .../locales/ja/LC_MESSAGES/installation_guide.po | 174 +- .../rst/locales/ja/LC_MESSAGES/inventory.po | 27 +- .../rst/locales/ja/LC_MESSAGES/inventory_guide.po | 394 +- docs/docsite/rst/locales/ja/LC_MESSAGES/network.po | 483 +- .../docsite/rst/locales/ja/LC_MESSAGES/os_guide.po | 1010 +-- .../rst/locales/ja/LC_MESSAGES/playbook_guide.po | 455 +- docs/docsite/rst/locales/ja/LC_MESSAGES/plugins.po | 192 +- .../rst/locales/ja/LC_MESSAGES/porting_guides.po | 3296 ++++++--- .../locales/ja/LC_MESSAGES/reference_appendices.po | 1307 ++-- docs/docsite/rst/locales/ja/LC_MESSAGES/roadmap.po | 74 +- .../rst/locales/ja/LC_MESSAGES/scenario_guides.po | 113 +- .../playbook_guide/complex_data_manipulation.rst | 4 +- .../rst/playbook_guide/playbooks_checkmode.rst | 8 +- .../rst/playbook_guide/playbooks_conditionals.rst | 42 + docs/docsite/rst/playbook_guide/playbooks_tags.rst | 6 +- .../docsite/rst/playbook_guide/playbooks_tests.rst | 6 +- docs/docsite/rst/plugins/connection.rst | 4 +- docs/docsite/rst/plugins/test.rst | 2 +- .../docsite/rst/porting_guides/porting_guide_4.rst | 2 +- .../docsite/rst/porting_guides/porting_guide_5.rst | 8 +- .../docsite/rst/porting_guides/porting_guide_6.rst | 10 +- .../docsite/rst/porting_guides/porting_guide_7.rst | 107 +- .../release_and_maintenance.rst | 10 +- .../rst/reference_appendices/special_variables.rst | 206 +- docs/docsite/sphinx_conf/core_conf.py | 1 + docs/docsite/sphinx_conf/core_lang_conf.py | 1 + docs/man/man1/ansible-config.1 | 2 +- docs/man/man1/ansible-console.1 | 30 +- docs/man/man1/ansible-doc.1 | 11 +- docs/man/man1/ansible-galaxy.1 | 2 +- docs/man/man1/ansible-inventory.1 | 10 +- docs/man/man1/ansible-playbook.1 | 23 +- docs/man/man1/ansible-pull.1 | 23 +- docs/man/man1/ansible-vault.1 | 10 +- docs/man/man1/ansible.1 | 30 +- lib/ansible/cli/arguments/option_helpers.py | 2 - lib/ansible/cli/doc.py | 14 +- lib/ansible/cli/galaxy.py | 6 +- lib/ansible/cli/playbook.py | 2 + lib/ansible/executor/powershell/module_manifest.py | 2 +- lib/ansible/galaxy/api.py | 39 +- lib/ansible/galaxy/collection/__init__.py | 5 +- .../galaxy/collection/concrete_artifact_manager.py | 51 +- .../galaxy/dependency_resolution/dataclasses.py | 19 +- .../galaxy/dependency_resolution/providers.py | 33 +- lib/ansible/module_utils/ansible_release.py | 2 +- lib/ansible/module_utils/api.py | 15 +- lib/ansible/module_utils/csharp/Ansible.Basic.cs | 272 +- lib/ansible/modules/copy.py | 7 +- lib/ansible/modules/package_facts.py | 2 + lib/ansible/modules/uri.py | 13 +- lib/ansible/playbook/attribute.py | 1 - lib/ansible/playbook/handler.py | 4 +- lib/ansible/playbook/helpers.py | 1 + lib/ansible/playbook/included_file.py | 1 + lib/ansible/playbook/loop_control.py | 14 +- lib/ansible/playbook/play.py | 36 +- lib/ansible/playbook/playbook_include.py | 6 +- lib/ansible/playbook/role/definition.py | 4 +- lib/ansible/playbook/role/metadata.py | 10 +- lib/ansible/playbook/role_include.py | 8 +- lib/ansible/playbook/task.py | 22 +- lib/ansible/plugins/action/__init__.py | 2 +- lib/ansible/plugins/filter/basename.yml | 4 +- lib/ansible/plugins/filter/combine.yml | 9 +- lib/ansible/plugins/filter/dirname.yml | 4 +- lib/ansible/plugins/filter/subelements.yml | 2 +- lib/ansible/plugins/filter/unvault.yml | 2 +- lib/ansible/plugins/lookup/password.py | 127 +- lib/ansible/release.py | 2 +- lib/ansible/template/__init__.py | 8 +- lib/ansible/template/native_helpers.py | 5 - lib/ansible/utils/_junit_xml.py | 13 +- lib/ansible/utils/display.py | 6 + lib/ansible/utils/encrypt.py | 15 +- lib/ansible_core.egg-info/PKG-INFO | 2 +- lib/ansible_core.egg-info/SOURCES.txt | 25 + packaging/pep517_backend/__init__.py | 1 + packaging/pep517_backend/_backend.py | 173 + packaging/pep517_backend/hooks.py | 9 + packaging/release.py | 1469 ++++ .../testns/testcol/plugins/modules/randommodule.py | 12 + test/integration/targets/ansible-doc/fix-urls.py | 15 + .../targets/ansible-doc/randommodule-text.output | 19 + .../targets/ansible-doc/randommodule.output | 25 + test/integration/targets/ansible-doc/runme.sh | 4 +- .../ansible-galaxy-collection/tasks/install.yml | 3 +- .../tests/integration/target-prefixes.something | 2 + .../integration/targets/one-part_test/aliases | 0 .../integration/targets/two_part_test/aliases | 0 .../ansible-test-integration-targets/test.py | 12 + .../targets/ansible-test-vendoring/aliases | 5 + .../ansible_collections/ns/col/tests/config.yml | 4 + .../targets/ansible-test-vendoring/runme.sh | 33 + test/integration/targets/async/tasks/main.yml | 8 +- test/integration/targets/async_fail/tasks/main.yml | 2 +- test/integration/targets/callback_default/runme.sh | 4 +- .../canonical-pep517-self-packaging/aliases | 3 + .../minimum-build-constraints.txt | 16 + .../modernish-build-constraints.txt | 11 + .../canonical-pep517-self-packaging/runme.sh | 31 + .../canonical-pep517-self-packaging/runme_test.py | 385 ++ test/integration/targets/copy/tasks/check_mode.yml | 41 +- test/integration/targets/entry_points/aliases | 1 + .../role_with_argspec/meta/argument_specs.yml | 7 + .../roles/role_with_argspec/tasks/main.yml | 1 + test/integration/targets/include_import/runme.sh | 5 + .../tasks/test_templating_IncludeRole_FA.yml | 28 + .../dep_keyword_inheritance.yml | 8 + .../roles/role-meta-inheritance/meta/main.yml | 4 + .../targets/keyword_inheritance/runme.sh | 2 + test/integration/targets/lookup_url/tasks/main.yml | 4 +- .../library/ansible_basic_tests.ps1 | 162 + .../template_jinja2_non_native/macro_override.yml | 15 + .../targets/template_jinja2_non_native/runme.sh | 2 + .../templates/macro_override.j2 | 7 + test/integration/targets/uri/tasks/main.yml | 4 +- .../targets/win_async_wrapper/tasks/main.yml | 16 +- test/lib/ansible_test/_internal/__init__.py | 4 + test/lib/ansible_test/_internal/ansible_util.py | 18 +- test/lib/ansible_test/_internal/become.py | 6 + test/lib/ansible_test/_internal/bootstrap.py | 3 + test/lib/ansible_test/_internal/cache.py | 1 + test/lib/ansible_test/_internal/cgroup.py | 6 +- test/lib/ansible_test/_internal/ci/__init__.py | 8 +- test/lib/ansible_test/_internal/ci/azp.py | 23 +- test/lib/ansible_test/_internal/ci/local.py | 7 +- .../_internal/classification/__init__.py | 95 +- .../_internal/classification/python.py | 1 + test/lib/ansible_test/_internal/cli/actions.py | 10 + .../_internal/cli/argparsing/__init__.py | 5 +- .../_internal/cli/argparsing/actions.py | 1 + .../_internal/cli/argparsing/argcompletion.py | 28 +- .../_internal/cli/argparsing/parsers.py | 25 +- .../lib/ansible_test/_internal/cli/commands/env.py | 2 +- .../_internal/cli/commands/integration/network.py | 3 +- .../ansible_test/_internal/cli/commands/sanity.py | 20 +- test/lib/ansible_test/_internal/cli/compat.py | 6 + .../lib/ansible_test/_internal/cli/environments.py | 7 +- .../ansible_test/_internal/cli/parsers/__init__.py | 11 + .../_internal/cli/parsers/base_argument_parsers.py | 4 + .../_internal/cli/parsers/host_config_parsers.py | 9 + .../_internal/cli/parsers/key_value_parsers.py | 8 + .../_internal/cli/parsers/value_parsers.py | 16 +- .../_internal/commands/coverage/__init__.py | 4 +- .../commands/coverage/analyze/__init__.py | 1 + .../commands/coverage/analyze/targets/combine.py | 1 + .../commands/coverage/analyze/targets/expand.py | 1 + .../commands/coverage/analyze/targets/filter.py | 1 + .../commands/coverage/analyze/targets/generate.py | 1 + .../commands/coverage/analyze/targets/missing.py | 1 + .../_internal/commands/coverage/combine.py | 9 +- .../_internal/commands/coverage/report.py | 1 + .../_internal/commands/env/__init__.py | 31 +- .../_internal/commands/integration/__init__.py | 46 +- .../commands/integration/cloud/__init__.py | 23 +- .../_internal/commands/integration/cloud/acme.py | 2 + .../_internal/commands/integration/cloud/aws.py | 2 + .../_internal/commands/integration/cloud/azure.py | 2 + .../commands/integration/cloud/cloudscale.py | 2 + .../_internal/commands/integration/cloud/cs.py | 3 + .../commands/integration/cloud/digitalocean.py | 2 + .../commands/integration/cloud/foreman.py | 2 + .../_internal/commands/integration/cloud/galaxy.py | 2 + .../_internal/commands/integration/cloud/gcp.py | 2 + .../_internal/commands/integration/cloud/hcloud.py | 2 + .../commands/integration/cloud/httptester.py | 2 + .../_internal/commands/integration/cloud/nios.py | 2 + .../commands/integration/cloud/opennebula.py | 2 + .../commands/integration/cloud/openshift.py | 2 + .../commands/integration/cloud/scaleway.py | 4 +- .../commands/integration/cloud/vcenter.py | 2 + .../_internal/commands/integration/cloud/vultr.py | 2 + .../_internal/commands/integration/coverage.py | 4 + .../_internal/commands/integration/filters.py | 5 + .../_internal/commands/sanity/__init__.py | 29 +- .../_internal/commands/sanity/ansible_doc.py | 1 + .../_internal/commands/sanity/compile.py | 1 + .../_internal/commands/sanity/ignores.py | 1 + .../_internal/commands/sanity/import.py | 1 + .../ansible_test/_internal/commands/sanity/mypy.py | 4 +- .../ansible_test/_internal/commands/sanity/pep8.py | 3 +- .../_internal/commands/sanity/pslint.py | 1 + .../_internal/commands/sanity/pylint.py | 23 +- .../_internal/commands/sanity/sanity_docs.py | 1 + .../_internal/commands/sanity/shellcheck.py | 3 +- .../_internal/commands/sanity/validate_modules.py | 73 +- .../_internal/commands/sanity/yamllint.py | 1 + .../_internal/commands/shell/__init__.py | 2 + .../_internal/commands/units/__init__.py | 6 +- test/lib/ansible_test/_internal/compat/yaml.py | 1 + test/lib/ansible_test/_internal/completion.py | 11 + test/lib/ansible_test/_internal/config.py | 30 +- test/lib/ansible_test/_internal/connections.py | 102 +- test/lib/ansible_test/_internal/containers.py | 63 +- test/lib/ansible_test/_internal/core_ci.py | 35 +- test/lib/ansible_test/_internal/coverage_util.py | 2 + test/lib/ansible_test/_internal/data.py | 36 +- test/lib/ansible_test/_internal/delegation.py | 3 +- .../ansible_test/_internal/dev/container_probe.py | 2 + test/lib/ansible_test/_internal/diff.py | 3 + test/lib/ansible_test/_internal/docker_util.py | 35 +- test/lib/ansible_test/_internal/executor.py | 5 + test/lib/ansible_test/_internal/git.py | 1 + test/lib/ansible_test/_internal/host_configs.py | 20 + test/lib/ansible_test/_internal/host_profiles.py | 30 +- test/lib/ansible_test/_internal/http.py | 3 + test/lib/ansible_test/_internal/io.py | 14 +- test/lib/ansible_test/_internal/junit_xml.py | 13 +- test/lib/ansible_test/_internal/locale_util.py | 1 + test/lib/ansible_test/_internal/metadata.py | 6 + test/lib/ansible_test/_internal/payload.py | 79 +- .../ansible_test/_internal/provider/__init__.py | 13 +- .../_internal/provider/layout/__init__.py | 64 +- .../_internal/provider/layout/ansible.py | 42 +- .../_internal/provider/layout/collection.py | 46 +- .../_internal/provider/layout/unsupported.py | 38 +- .../_internal/provider/source/__init__.py | 1 + .../ansible_test/_internal/provider/source/git.py | 1 + .../_internal/provider/source/installed.py | 1 + .../_internal/provider/source/unsupported.py | 1 + .../_internal/provider/source/unversioned.py | 1 + test/lib/ansible_test/_internal/provisioning.py | 1 + .../ansible_test/_internal/python_requirements.py | 21 +- test/lib/ansible_test/_internal/ssh.py | 8 +- test/lib/ansible_test/_internal/target.py | 25 +- test/lib/ansible_test/_internal/test.py | 16 +- test/lib/ansible_test/_internal/thread.py | 1 + test/lib/ansible_test/_internal/timeout.py | 75 +- test/lib/ansible_test/_internal/util.py | 31 + test/lib/ansible_test/_internal/util_common.py | 33 +- test/lib/ansible_test/_internal/venv.py | 41 +- .../_util/controller/sanity/mypy/ansible-test.ini | 3 + .../validate-modules/validate_modules/main.py | 216 +- .../ansible_test/_util/target/setup/bootstrap.sh | 1 + test/sanity/code-smell/package-data.py | 4 - test/support/README.md | 11 + test/units/plugins/lookup/test_password.py | 17 +- 267 files changed, 15313 insertions(+), 8192 deletions(-) create mode 100644 docs/docsite/rst/community/collection_contributors/collection_requirements.rst create mode 100644 packaging/pep517_backend/__init__.py create mode 100644 packaging/pep517_backend/_backend.py create mode 100644 packaging/pep517_backend/hooks.py create mode 100755 packaging/release.py create mode 100644 test/integration/targets/ansible-doc/fix-urls.py create mode 100644 test/integration/targets/ansible-test-integration-targets/ansible_collections/ns/col/tests/integration/target-prefixes.something create mode 100644 test/integration/targets/ansible-test-integration-targets/ansible_collections/ns/col/tests/integration/targets/one-part_test/aliases create mode 100644 test/integration/targets/ansible-test-integration-targets/ansible_collections/ns/col/tests/integration/targets/two_part_test/aliases create mode 100644 test/integration/targets/ansible-test-vendoring/aliases create mode 100644 test/integration/targets/ansible-test-vendoring/ansible_collections/ns/col/tests/config.yml create mode 100755 test/integration/targets/ansible-test-vendoring/runme.sh create mode 100644 test/integration/targets/canonical-pep517-self-packaging/aliases create mode 100644 test/integration/targets/canonical-pep517-self-packaging/minimum-build-constraints.txt create mode 100644 test/integration/targets/canonical-pep517-self-packaging/modernish-build-constraints.txt create mode 100755 test/integration/targets/canonical-pep517-self-packaging/runme.sh create mode 100644 test/integration/targets/canonical-pep517-self-packaging/runme_test.py create mode 100644 test/integration/targets/include_import/roles/role_with_argspec/meta/argument_specs.yml create mode 100644 test/integration/targets/include_import/roles/role_with_argspec/tasks/main.yml create mode 100644 test/integration/targets/include_import/tasks/test_templating_IncludeRole_FA.yml create mode 100644 test/integration/targets/keyword_inheritance/dep_keyword_inheritance.yml create mode 100644 test/integration/targets/keyword_inheritance/roles/role-meta-inheritance/meta/main.yml create mode 100644 test/integration/targets/template_jinja2_non_native/macro_override.yml create mode 100644 test/integration/targets/template_jinja2_non_native/templates/macro_override.j2 create mode 100644 test/support/README.md diff --git a/MANIFEST.in b/MANIFEST.in index 9495469b..6c867365 100644 --- a/MANIFEST.in +++ b/MANIFEST.in @@ -29,7 +29,7 @@ recursive-include lib/ansible/modules *.yml recursive-include lib/ansible/plugins/test *.yml recursive-include lib/ansible/plugins/filter *.yml recursive-include licenses *.txt -recursive-include packaging * +recursive-include packaging Makefile *.py recursive-include test/ansible_test *.py Makefile recursive-include test/integration * recursive-include test/lib/ansible_test/config *.yml *.template @@ -37,7 +37,7 @@ recursive-include test/lib/ansible_test/_data *.cfg *.in *.ini *.ps1 *.txt *.yml recursive-include test/lib/ansible_test/_util *.cfg *.ini *.json *.ps1 *.psd1 *.py *.sh *.txt *.yml recursive-include test/lib/ansible_test/_util/controller/sanity/validate-modules validate-modules recursive-include test/sanity *.in *.json *.py *.txt -recursive-include test/support *.py *.ps1 *.psm1 *.cs +recursive-include test/support *.py *.ps1 *.psm1 *.cs *.md exclude test/sanity/code-smell/botmeta.* exclude test/sanity/code-smell/release-names.* exclude test/lib/ansible_test/_internal/commands/sanity/bin_symlinks.py diff --git a/PKG-INFO b/PKG-INFO index 0c7edcf5..b625a17a 100644 --- a/PKG-INFO +++ b/PKG-INFO @@ -1,6 +1,6 @@ Metadata-Version: 2.1 Name: ansible-core -Version: 2.14.3 +Version: 2.14.6 Summary: Radically simple IT automation Home-page: https://ansible.com/ Author: Ansible, Inc. diff --git a/bin/ansible-doc b/bin/ansible-doc index 80365303..9f560bcb 100755 --- a/bin/ansible-doc +++ b/bin/ansible-doc @@ -1241,10 +1241,16 @@ class DocCLI(CLI, RoleMixin): if 'module' in item: text.append(textwrap.fill(DocCLI.tty_ify('Module %s' % item['module']), limit - 6, initial_indent=opt_indent[:-2] + "* ", subsequent_indent=opt_indent)) - description = item.get('description', 'The official documentation on the %s module.' % item['module']) - text.append(textwrap.fill(DocCLI.tty_ify(description), limit - 6, initial_indent=opt_indent + ' ', subsequent_indent=opt_indent + ' ')) - text.append(textwrap.fill(DocCLI.tty_ify(get_versioned_doclink('modules/%s_module.html' % item['module'])), - limit - 6, initial_indent=opt_indent + ' ', subsequent_indent=opt_indent)) + description = item.get('description') + if description is None and item['module'].startswith('ansible.builtin.'): + description = 'The official documentation on the %s module.' % item['module'] + if description is not None: + text.append(textwrap.fill(DocCLI.tty_ify(description), + limit - 6, initial_indent=opt_indent + ' ', subsequent_indent=opt_indent + ' ')) + if item['module'].startswith('ansible.builtin.'): + relative_url = 'collections/%s_module.html' % item['module'].replace('.', '/', 2) + text.append(textwrap.fill(DocCLI.tty_ify(get_versioned_doclink(relative_url)), + limit - 6, initial_indent=opt_indent + ' ', subsequent_indent=opt_indent)) elif 'name' in item and 'link' in item and 'description' in item: text.append(textwrap.fill(DocCLI.tty_ify(item['name']), limit - 6, initial_indent=opt_indent[:-2] + "* ", subsequent_indent=opt_indent)) diff --git a/bin/ansible-galaxy b/bin/ansible-galaxy index 3cb7fe2c..c280380c 100755 --- a/bin/ansible-galaxy +++ b/bin/ansible-galaxy @@ -27,7 +27,7 @@ from ansible import context from ansible.cli.arguments import option_helpers as opt_help from ansible.errors import AnsibleError, AnsibleOptionsError from ansible.galaxy import Galaxy, get_collections_galaxy_meta_info -from ansible.galaxy.api import GalaxyAPI +from ansible.galaxy.api import GalaxyAPI, GalaxyError from ansible.galaxy.collection import ( build_collection, download_collections, @@ -242,7 +242,7 @@ class GalaxyCLI(CLI): help='The Ansible Galaxy API key which can be found at ' 'https://galaxy.ansible.com/me/preferences.') common.add_argument('-c', '--ignore-certs', action='store_true', dest='ignore_certs', help='Ignore SSL certificate validation errors.', default=None) - common.add_argument('--timeout', dest='timeout', type=int, + common.add_argument('--timeout', dest='timeout', type=int, default=60, help="The time to wait for operations against the galaxy server, defaults to 60s.") opt_help.add_verbosity_options(common) @@ -1214,7 +1214,7 @@ class GalaxyCLI(CLI): remote_data = None try: remote_data = self.api.lookup_role_by_name(role, False) - except AnsibleError as e: + except GalaxyError as e: if e.http_code == 400 and 'Bad Request' in e.message: # Role does not exist in Ansible Galaxy data = u"- the role %s was not found" % role diff --git a/bin/ansible-playbook b/bin/ansible-playbook index c94cf0ff..9c091a67 100755 --- a/bin/ansible-playbook +++ b/bin/ansible-playbook @@ -54,6 +54,8 @@ class PlaybookCLI(CLI): opt_help.add_module_options(self.parser) # ansible playbook specific opts + self.parser.add_argument('--syntax-check', dest='syntax', action='store_true', + help="perform a syntax check on the playbook, but do not execute it") self.parser.add_argument('--list-tasks', dest='listtasks', action='store_true', help="list all tasks that would be executed") self.parser.add_argument('--list-tags', dest='listtags', action='store_true', diff --git a/changelogs/CHANGELOG-v2.14.rst b/changelogs/CHANGELOG-v2.14.rst index d54fccbd..51436b14 100644 --- a/changelogs/CHANGELOG-v2.14.rst +++ b/changelogs/CHANGELOG-v2.14.rst @@ -5,6 +5,101 @@ ansible-core 2.14 "C'mon Everybody" Release Notes .. contents:: Topics +v2.14.6 +======= + +Release Summary +--------------- + +| Release Date: 2023-05-22 +| `Porting Guide `__ + + +Minor Changes +------------- + +- ansible-test - Allow float values for the ``--timeout`` option to the ``env`` command. This simplifies testing. +- ansible-test - Refactored ``env`` command logic and timeout handling. +- ansible-test - Use ``datetime.datetime.now`` with ``tz`` specified instead of ``datetime.datetime.utcnow``. + +Bugfixes +-------- + +- Display - Defensively configure writing to stdout and stderr with the replace encoding error handler that will replace invalid characters (https://github.com/ansible/ansible/issues/80258) +- Properly disable ``jinja2_native`` in the template module when jinja2 override is used in the template (https://github.com/ansible/ansible/issues/80605) +- ansible-galaxy - fix installing signed collections (https://github.com/ansible/ansible/issues/80648). +- ansible-galaxy collection verify - fix verifying signed collections when the keyring is not configured. +- ansible-test - Fix handling of timeouts exceeding one day. +- ansible-test - Fix various cases where the test timeout could expire without terminating the tests. +- ansible-test - When bootstrapping remote FreeBSD instances, use the OS packaged ``setuptools`` instead of installing the latest version from PyPI. +- pep517 build backend - Copy symlinks when copying the source tree. This avoids tracebacks in various scenarios, such as when a venv is present in the source tree. + +v2.14.5 +======= + +Release Summary +--------------- + +| Release Date: 2023-04-24 +| `Porting Guide `__ + + +Bugfixes +-------- + +- Windows - Display a warning if the module failed to cleanup any temporary files rather than failing the task. The warning contains a brief description of what failed to be deleted. +- Windows - Ensure the module temp directory contains more unique values to avoid conflicts with concurrent runs - https://github.com/ansible/ansible/issues/80294 +- Windows - Improve temporary file cleanup used by modules. Will use a more reliable delete operation on Windows Server 2016 and newer to delete files that might still be open by other software like Anti Virus scanners. There are still scenarios where a file or directory cannot be deleted but the new method should work in more scenarios. +- ansible-doc - stop generating wrong module URLs for module see-alsos. The URLs for modules in ansible.builtin do now work, and URLs for modules outside ansible.builtin are no longer added (https://github.com/ansible/ansible/pull/80280). +- ansible-galaxy - Improve retries for collection installs, to properly retry, and extend retry logic to common URL related connection errors (https://github.com/ansible/ansible/issues/80170 https://github.com/ansible/ansible/issues/80174) +- ansible-galaxy - reduce API calls to servers by fetching signatures only for final candidates. +- ansible-test - Add support for ``argcomplete`` version 3. +- jinja2_native - fix intermittent 'could not find job' failures when a value of ``ansible_job_id`` from a result of an async task was inadvertently changed during execution; to prevent this a format of ``ansible_job_id`` was changed. +- password lookup now correctly reads stored ident fields. +- pep517 build backend - Use the documented ``import_module`` import from ``importlib``. +- roles - Fix templating ``public``, ``allow_duplicates`` and ``rolespec_validate`` (https://github.com/ansible/ansible/issues/80304). +- syntax check - Limit ``--syntax-check`` to ``ansible-playbook`` only, as that is the only CLI affected by this argument (https://github.com/ansible/ansible/issues/80506) + +v2.14.4 +======= + +Release Summary +--------------- + +| Release Date: 2023-03-27 +| `Porting Guide `__ + + +Minor Changes +------------- + +- ansible-test - Moved git handling out of the validate-modules sanity test and into ansible-test. +- ansible-test - Removed the ``--keep-git`` sanity test option, which was limited to testing ansible-core itself. +- ansible-test - Updated the Azure Pipelines CI plugin to work with newer versions of git. + +Breaking Changes / Porting Guide +-------------------------------- + +- ansible-test - Integration tests which depend on specific file permissions when running in an ansible-test managed host environment may require changes. Tests that require permissions other than ``755`` or ``644`` may need to be updated to set the necessary permissions as part of the test run. + +Bugfixes +-------- + +- Fix ``MANIFEST.in`` to exclude unwanted files in the ``packaging/`` directory. +- Fix ``MANIFEST.in`` to include ``*.md`` files in the ``test/support/`` directory. +- Fix an issue where the value of ``become`` was ignored when used on a role used as a dependency in ``main/meta.yml`` (https://github.com/ansible/ansible/issues/79777) +- ``ansible_eval_concat`` - avoid redundant unsafe wrapping of templated strings converted to Python types +- ansible-galaxy role info - fix unhandled AttributeError by catching the correct exception. +- ansible-test - Always indicate the Python version being used before installing requirements. Resolves issue https://github.com/ansible/ansible/issues/72855 +- ansible-test - Exclude ansible-core vendored Python packages from ansible-test payloads. +- ansible-test - Integration test target prefixes defined in a ``tests/integration/target-prefixes.{group}`` file can now contain an underscore (``_``) character. Resolves issue https://github.com/ansible/ansible/issues/79225 +- ansible-test - Removed pointless comparison in diff evaluation logic. +- ansible-test - Set ``PYLINTHOME`` for the ``pylint`` sanity test to prevent failures due to ``pylint`` checking for the existence of an obsolete home directory. +- ansible-test - Support loading of vendored Python packages from ansible-core. +- ansible-test - Use consistent file permissions when delegating tests to a container or remote host. Files with any execute bit set will use permissions ``755``. All other files will use permissions ``644``. (Resolves issue https://github.com/ansible/ansible/issues/75079) +- copy - fix creating the dest directory in check mode with remote_src=True (https://github.com/ansible/ansible/issues/78611). +- copy - fix reporting changes to file attributes in check mode with remote_src=True (https://github.com/ansible/ansible/issues/77957). + v2.14.3 ======= diff --git a/changelogs/changelog.yaml b/changelogs/changelog.yaml index 8331a9bc..18bf7b13 100644 --- a/changelogs/changelog.yaml +++ b/changelogs/changelog.yaml @@ -1117,3 +1117,190 @@ releases: - strategy_badid_fix.yml - v2.14.3rc1_summary.yaml release_date: '2023-02-20' + 2.14.4: + changes: + release_summary: '| Release Date: 2023-03-27 + + | `Porting Guide `__ + + ' + codename: C'mon Everybody + fragments: + - 2.14.4_summary.yaml + release_date: '2023-03-27' + 2.14.4rc1: + changes: + breaking_changes: + - ansible-test - Integration tests which depend on specific file permissions + when running in an ansible-test managed host environment may require changes. + Tests that require permissions other than ``755`` or ``644`` may need to be + updated to set the necessary permissions as part of the test run. + bugfixes: + - Fix ``MANIFEST.in`` to exclude unwanted files in the ``packaging/`` directory. + - Fix ``MANIFEST.in`` to include ``*.md`` files in the ``test/support/`` directory. + - Fix an issue where the value of ``become`` was ignored when used on a role + used as a dependency in ``main/meta.yml`` (https://github.com/ansible/ansible/issues/79777) + - '``ansible_eval_concat`` - avoid redundant unsafe wrapping of templated strings + converted to Python types' + - ansible-galaxy role info - fix unhandled AttributeError by catching the correct + exception. + - ansible-test - Always indicate the Python version being used before installing + requirements. Resolves issue https://github.com/ansible/ansible/issues/72855 + - ansible-test - Exclude ansible-core vendored Python packages from ansible-test + payloads. + - ansible-test - Integration test target prefixes defined in a ``tests/integration/target-prefixes.{group}`` + file can now contain an underscore (``_``) character. Resolves issue https://github.com/ansible/ansible/issues/79225 + - ansible-test - Removed pointless comparison in diff evaluation logic. + - ansible-test - Set ``PYLINTHOME`` for the ``pylint`` sanity test to prevent + failures due to ``pylint`` checking for the existence of an obsolete home + directory. + - ansible-test - Support loading of vendored Python packages from ansible-core. + - ansible-test - Use consistent file permissions when delegating tests to a + container or remote host. Files with any execute bit set will use permissions + ``755``. All other files will use permissions ``644``. (Resolves issue https://github.com/ansible/ansible/issues/75079) + - copy - fix creating the dest directory in check mode with remote_src=True + (https://github.com/ansible/ansible/issues/78611). + - copy - fix reporting changes to file attributes in check mode with remote_src=True + (https://github.com/ansible/ansible/issues/77957). + minor_changes: + - ansible-test - Moved git handling out of the validate-modules sanity test + and into ansible-test. + - ansible-test - Removed the ``--keep-git`` sanity test option, which was limited + to testing ansible-core itself. + - ansible-test - Updated the Azure Pipelines CI plugin to work with newer versions + of git. + release_summary: '| Release Date: 2023-03-21 + + | `Porting Guide `__ + + ' + codename: C'mon Everybody + fragments: + - 2.14.4rc1_summary.yaml + - 78624-copy-remote-src-check-mode.yml + - 79777-fix-inheritance-roles-meta.yml + - a-g-role-fix-catching-exception.yml + - ansible-test-fix-pointless-comparison.yml + - ansible-test-git-handling.yml + - ansible-test-integration-target-prefixes.yml + - ansible-test-payload-file-permissions.yml + - ansible-test-pylint-home.yml + - ansible-test-requirements-message.yml + - ansible-test-vendoring-support.yml + - ansible_eval_concat-remove-redundant-unsafe-wrap.yml + - fix-manifest.yml + release_date: '2023-03-21' + 2.14.5: + changes: + release_summary: '| Release Date: 2023-04-24 + + | `Porting Guide `__ + + ' + codename: C'mon Everybody + fragments: + - 2.14.5_summary.yaml + release_date: '2023-04-24' + 2.14.5rc1: + changes: + bugfixes: + - Windows - Display a warning if the module failed to cleanup any temporary + files rather than failing the task. The warning contains a brief description + of what failed to be deleted. + - Windows - Ensure the module temp directory contains more unique values to + avoid conflicts with concurrent runs - https://github.com/ansible/ansible/issues/80294 + - Windows - Improve temporary file cleanup used by modules. Will use a more + reliable delete operation on Windows Server 2016 and newer to delete files + that might still be open by other software like Anti Virus scanners. There + are still scenarios where a file or directory cannot be deleted but the new + method should work in more scenarios. + - ansible-doc - stop generating wrong module URLs for module see-alsos. The + URLs for modules in ansible.builtin do now work, and URLs for modules outside + ansible.builtin are no longer added (https://github.com/ansible/ansible/pull/80280). + - ansible-galaxy - Improve retries for collection installs, to properly retry, + and extend retry logic to common URL related connection errors (https://github.com/ansible/ansible/issues/80170 + https://github.com/ansible/ansible/issues/80174) + - ansible-galaxy - reduce API calls to servers by fetching signatures only for + final candidates. + - ansible-test - Add support for ``argcomplete`` version 3. + - jinja2_native - fix intermittent 'could not find job' failures when a value + of ``ansible_job_id`` from a result of an async task was inadvertently changed + during execution; to prevent this a format of ``ansible_job_id`` was changed. + - password lookup now correctly reads stored ident fields. + - pep517 build backend - Use the documented ``import_module`` import from ``importlib``. + - roles - Fix templating ``public``, ``allow_duplicates`` and ``rolespec_validate`` + (https://github.com/ansible/ansible/issues/80304). + - syntax check - Limit ``--syntax-check`` to ``ansible-playbook`` only, as that + is the only CLI affected by this argument (https://github.com/ansible/ansible/issues/80506) + release_summary: '| Release Date: 2023-04-17 + + | `Porting Guide `__ + + ' + codename: C'mon Everybody + fragments: + - 2.14.5rc1_summary.yaml + - 80280-ansible-doc-seealso-urls.yml + - 80334-reduce-ansible-galaxy-api-calls.yml + - 80506-syntax-check-playbook-only.yml + - ansible-basic-tmpdir-uniqueness.yml + - ansible-test-argcomplete-3.yml + - fix-templating-private-role-FA.yml + - fix_jinja_native_async.yml + - galaxy-improve-retries.yml + - password_lookup_file_fix.yml + - pep517-backend-import-fix.yml + - win-temp-cleanup.yml + release_date: '2023-04-17' + 2.14.6: + changes: + release_summary: '| Release Date: 2023-05-22 + + | `Porting Guide `__ + + ' + codename: C'mon Everybody + fragments: + - 2.14.6_summary.yaml + release_date: '2023-05-22' + 2.14.6rc1: + changes: + bugfixes: + - Display - Defensively configure writing to stdout and stderr with the replace + encoding error handler that will replace invalid characters (https://github.com/ansible/ansible/issues/80258) + - Properly disable ``jinja2_native`` in the template module when jinja2 override + is used in the template (https://github.com/ansible/ansible/issues/80605) + - ansible-galaxy - fix installing signed collections (https://github.com/ansible/ansible/issues/80648). + - ansible-galaxy collection verify - fix verifying signed collections when the + keyring is not configured. + - ansible-test - Fix handling of timeouts exceeding one day. + - ansible-test - Fix various cases where the test timeout could expire without + terminating the tests. + - ansible-test - When bootstrapping remote FreeBSD instances, use the OS packaged + ``setuptools`` instead of installing the latest version from PyPI. + - pep517 build backend - Copy symlinks when copying the source tree. This avoids + tracebacks in various scenarios, such as when a venv is present in the source + tree. + minor_changes: + - ansible-test - Allow float values for the ``--timeout`` option to the ``env`` + command. This simplifies testing. + - ansible-test - Refactored ``env`` command logic and timeout handling. + - ansible-test - Use ``datetime.datetime.now`` with ``tz`` specified instead + of ``datetime.datetime.utcnow``. + release_summary: '| Release Date: 2023-05-15 + + | `Porting Guide `__ + + ' + codename: C'mon Everybody + fragments: + - 2.14.6rc1_summary.yaml + - 80258-defensive-display-non-utf8.yml + - 80605-template-overlay-native-jinja.yml + - 80648-fix-ansible-galaxy-cache-signatures-bug.yml + - ansible-test-freebsd-bootstrap-setuptools.yml + - ansible-test-long-timeout-fix.yml + - ansible-test-timeout-fix.yml + - ansible-test-utcnow.yml + - pep517-backend-traceback-fix.yml + release_date: '2023-05-15' diff --git a/docs/docsite/rst/community/collection_contributors/collection_integration_updating.rst b/docs/docsite/rst/community/collection_contributors/collection_integration_updating.rst index 46d18c06..b519c4d4 100644 --- a/docs/docsite/rst/community/collection_contributors/collection_integration_updating.rst +++ b/docs/docsite/rst/community/collection_contributors/collection_integration_updating.rst @@ -106,7 +106,7 @@ We will add the following code to the file. .. code-block:: yaml # https://github.com/ansible-collections/community.postgresql/issues/NUM - # We should also run the same tasks with check_mode: yes. We omit it here for simplicity. + # We should also run the same tasks with check_mode: true. We omit it here for simplicity. - name: Test for new_option, create new user WITHOUT the attribute community.postgresql.postgresql_user: name: test_user @@ -149,7 +149,7 @@ We will add the following code to the file. Then we :ref:`run the tests` with ``postgresql_user`` passed as a test target. -In reality, we would alternate the tasks above with the same tasks run with the ``check_mode: yes`` option to be sure our option works as expected in check-mode as well. See :ref:`Recommendations on coverage` for details. +In reality, we would alternate the tasks above with the same tasks run with the ``check_mode: true`` option to be sure our option works as expected in check-mode as well. See :ref:`Recommendations on coverage` for details. If we expect a task to fail, we use the ``ignore_errors: true`` option and check that the task actually failed and returned the message we expect: diff --git a/docs/docsite/rst/community/collection_contributors/collection_requirements.rst b/docs/docsite/rst/community/collection_contributors/collection_requirements.rst new file mode 100644 index 00000000..bae0f21d --- /dev/null +++ b/docs/docsite/rst/community/collection_contributors/collection_requirements.rst @@ -0,0 +1,499 @@ +.. _collections_requirements: + +************************************************** +Ansible community package collections requirements +************************************************** + +This section describes the requirements for maintainers of Ansible community collections in the `ansible-collections `_ repository or included in the Ansible community package. + +.. contents:: + :local: + + +Overview +======== + +This section provides help, advice, and guidance on making sure your collections are correct and ready for inclusion in the Ansible community package. + +.. note:: + + `Inclusion of a new collection `_ in the Ansible package is ultimately at the discretion of the :ref:`community_steering_committee`. Every rejected candidate will get feedback. Differences of opinion should be taken to a dedicated `Community Topic `_ for discussion and a final vote. + +Feedback and communications +============================== + +As with any project it is very important that we get feedback from users, contributors, and maintainers. You can get feedback and help as follows: + +* Discussing in the `#community:ansible.com Matrix room `_, which is bridged with the ``#ansible-community`` channel on Libera.Chat IRC. See the :ref:`Ansible Communication Guide ` for details. +* Discussing in the `Community Working Group meeting `_. +* Creating `GitHub Issues `_ in the ``ansible-collections`` repository. + +Keeping informed +================ + +You should subscribe to: + +* The `news-for-maintainers repository `_ to track changes that collection maintainers should be aware of. Subscribe only to issues if you want less traffic. +* The `Bullhorn `_ Ansible contributor newsletter. + +.. _coll_infrastructure_reqs: + +Collection infrastructure +========================= + + +The following guidelines describe the required structure for your collection: + +* MUST have a publicly available issue tracker that does not require a paid level of service to create an account or view issues. +* MUST have a Code of Conduct (CoC). + + * The collection's CoC MUST be compatible with the :ref:`code_of_conduct`. + * The collections SHOULD consider using the Ansible CoC if they do not have a CoC that they consider better. + * The :ref:`Diversity and Inclusion working group ` may evaluate all CoCs and object to a collection's inclusion based on the CoCs contents. + * The CoC MUST be linked from the ``README.md`` file, or MUST be present or linked from the ``CODE_OF_CONDUCT.md`` file in the collection root. + +* MUST be published to `Ansible Galaxy `_. +* SHOULD NOT contain any large objects (binaries) comparatively to the current Galaxy tarball size limit of 20 MB, For example, do not include package installers for testing purposes. +* SHOULD NOT contain any unnecessary files such as temporary files. +* MUST only contain objects that follow the :ref:`Licensing rules `. + + +.. _coll_python_compatibility: + +Python Compatibility +==================== + +A collection MUST be developed and tested using the below Python requirements as Ansible supports a wide variety of machines. + +The collection should adhere to the tips at :ref:`ansible-and-python-3`. + +.. _coll_python_reqs: + +Python Requirements +------------------- + +Python requirements for a collection vary between **controller environment** and **other environment**. On the controller-environment, the Python versions required may be higher than what is required on the other-environment. While developing a collection, you need to understand the definitions of both the controller-environment and other-environment to help you choose Python versions accordingly: + +* controller environment: The plugins/modules always run in the same environment (Python interpreter, venv, host, and so on) as ansible-core itself. +* other environment: It is possible, even if uncommon in practice, for the plugins/modules to run in a different environment than ansible-core itself. + +One example scenario where the "even if" clause comes into play is when using cloud modules. These modules mostly run on the controller node but in some environments, the controller might run on one machine inside a demilitarized zone which cannot directly access the cloud machines. The user has to have the cloud modules run on a bastion host/jump server which has access to the cloud machines. + +.. _coll_controller_req: + +Controller environment +~~~~~~~~~~~~~~~~~~~~~~ + +In the controller environment, collections MUST support Python 2 (version 2.7) and Python 3 (Version 3.6 and higher), unless required libraries do not support these versions. Collections SHOULD also support Python v3.5 if all required libraries support this version. + +Other environment +~~~~~~~~~~~~~~~~~ + +In the other environment, collections MUST support Python 2 (version 2.7) and Python 3 (Version 3.6 and higher), unless required libraries do not support these versions. Collections SHOULD also support Python v2.6 and v3.5 if all required libraries support this version. + +.. note:: + + If the collection does not support Python 2.6 and/or Python 3.5 explicitly then take the below points into consideration: + + - Dropping support for Python 2.6 in the other environment means that you are dropping support for RHEL6. RHEL6 ended full support in November, 2020, but some users are still using RHEL6 under extended support contracts (ELS) until 2024. ELS is not full support; not all CVEs of the python-2.6 interpreter are fixed, for instance. + + - Dropping support for Python 3.5 means that Python 2.7 has to be installed on Ubuntu Xenial (16.04) and that you have to support Python 2.7. + + Also, note that dropping support for a Python version for an existing module/plugin is a breaking change, and thus requires a major release. A collection MUST announce dropping support for Python versions in their changelog, if possible in advance (for example, in previous versions before support is dropped). + +.. _coll_python_docs_req: + +Python documentation requirements +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +* If everything in your collection supports the same Python versions as the collection-supported versions of ansible-core, you do not need to document Python versions. +* If your collection does not support those Python versions, you MUST document which versions it supports in the README. +* If most of your collection supports the same Python versions as ansible-core, but some modules and plugins do not, you MUST include the supported Python versions in the documentation for those modules and plugins. + +For example, if your collection supports Ansible 2.9 to ansible-core 2.13, the Python versions supported for modules are 2.6, 2.7, and 3.5 and newer (until at least 3.10), while the Python versions supported for plugins are 2.7 and 3.5 and newer (until at least 3.10). So if the modules in your collection do not support Python 2.6, you have to document this in the README, for example ``The content in this collection supports Python 2.7, Python 3.5 and newer.``. + +.. _coll_plugin_standards: + +Standards for developing module and plugin utilities +==================================================== + +* ``module_utils`` and ``plugin_utils`` can be marked for only internal use in the collection, but they MUST document this and MUST use a leading underscore for filenames. +* It is a breaking change when you make an existing ``module_utils`` private and in that case the collection requires a major version bump. +* Below are some recommendations for ``module_utils`` documentation: + + * No docstring: everything we recommend for ``other-environment`` is supported. + * The docstring ``'Python versions supported: same as for controller-environment'``: everything we recommend for ``controller-environment`` is supported. + * The docstring with specific versions otherwise: ``'Python versions supported: '``. + +.. _coll_repo_structure: + +Repository structure requirements +================================== + +galaxy.yml +---------- + +* The ``tags`` field MUST be set. +* Collection dependencies must meet a set of rules. See the section on `Collection Dependencies ` for details. +* The ``ansible`` package MUST NOT depend on collections not shipped in the package. +* If you plan to split up your collection, the new collection MUST be approved for inclusion before the smaller collections replace the larger in Ansible. +* If you plan to add other collections as dependencies, they MUST run through the formal application process. + +.. _coll_readme_req: + +README.md +--------- + +Your collection repository MUST have a ``README.md`` in the root of the collection, see `collection_template/README.md `_ for an example. + +meta/runtime.yml +---------------- +Example: `meta/runtime.yml `_ + +* The ``meta/runtime.yml`` MUST define the minimum version of Ansible which this collection works with. + + * If the collection works with Ansible 2.9, then this should be set to `>=2.9.10` + * It is usually better to avoid adding `<2.11` as a restriction, since this for example makes it impossible to use the collection with the current ansible-base devel branch (which has version 2.11.0.dev0) + +.. _coll_module-reqs: + +Modules & Plugins +------------------ + +* Collections MUST only use the directories specified below in the ``plugins/`` directory and + only for the purposes listed: + + :Those recognized by ansible-core: ``doc_fragments``, ``modules``, ``module_utils``, ``terminal``, and those listed in :ref:`working_with_plugins`. This list can be verified by looking at the last element of the package argument of each ``*_loader`` in https://github.com/ansible/ansible/blob/devel/lib/ansible/plugins/loader.py#L1126 + :plugin_utils: For shared code which is only used controller-side, not in modules. + :sub_plugins: For other plugins which are managed by plugins inside of collections instead of ansible-core. We use a subfolder so there aren't conflicts when ansible-core adds new plugin types. + + The core team (which maintains ansible-core) has committed not to use these directories for + anything which would conflict with the uses specified here. + +Other directories +----------------- + +Collections MUST not use files outside ``meta/``, ``plugins/``, ``roles/`` and ``playbooks/`` in any plugin, role, or playbook that can be called by FQCN, used from other collections, or used from user playbooks and roles. A collection must work if every file or directory is deleted from the installed collection except those four directories and their contents. + +Internal plugins, roles and playbooks (artifacts used only in testing, or only to release the collection, or only for some other internal purpose and not used externally) are exempt from this rule and may rely on files in other directories. + +.. _coll_docs_structure_reqs: + +Documentation requirements +~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +All modules and plugins MUST: + +* Include a :ref:`DOCUMENTATION ` block. +* Include an :ref:`EXAMPLES ` block (except where not relevant for the plugin type). +* Use FQCNs when referring to modules, plugins and documentation fragments inside and outside the collection (including ``ansible.builtin`` for the listed entities from ansible-core. + +When using ``version_added`` in the documentation: + +* Declare the version of the collection in which the options were added -- NOT the version of Ansible. +* If you for some reason really have to specify version numbers of Ansible or of another collection, you also have to provide ``version_added_collection: collection_name``. We strongly recommend to NOT do this. +* Include ``version_added`` when you add new content (modules, plugins, options) to an existing collection. The values are shown in the documentation, and can be useful, but you do not need to add ``version_added`` to every option, module, and plugin when creating a new collection. + +Other items: + +* The ``CONTRIBUTING.md`` (or ``README.md``) file MUST state what types of contributions (pull requests, feature requests, and so on) are accepted and any relevant contributor guidance. Issues (bugs and feature request) reports must always be accepted. +* Collections are encouraged to use z:ref:`links and formatting macros ` +* Including a :ref:`RETURN ` block for modules is strongly encouraged but not required. + +.. _coll_workflow: + +Contributor Workflow +==================== + +.. _coll_changlogs_req: + +Changelogs +---------- + +Collections are required to include a changelog. To give a consistent feel for changelogs across collections and ensure changelogs exist for collections included in the ``ansible`` package we suggest you use `antsibull-changelog `_ to maintain and generate this but other options exist. Preferred (in descending order): + +#. Use antsibull-changelog (preferred). +#. Provide ``changelogs/changelog.yaml`` in the `correct format `_. (You can use ``antsibull-lint changelog-yaml /path/to/changelog.yaml`` to validate the format.) +#. Provide a link to the changelog file (self-hosted) (not recommended). + +Note that the porting guide is compiled from ``changelogs/changelog.yaml`` (sections ``breaking_changes``, ``major_changes``, ``deprecated_features``, ``removed_features``). So if you use option 3, you will not be able to add something to the porting guide. + +.. _coll_versioning_req: + +Versioning and deprecation +~~~~~~~~~~~~~~~~~~~~~~~~~~ + +* Collections MUST adhere to `semantic versioning `_. +* To preserve backward compatibility for users, every Ansible minor version series (x.Y.z) will keep the major version of a collection constant. If ansible 3.0.0 includes ``community.general`` 2.2.0, then each 3.Y.z (3.1.z, 3.2.z, and so on) release will include the latest ``community.general`` 2.y.z release available at build time. Ansible 3.y.z will **never** include a ``community.general`` 3.y.z release, even if it is available. Major collection version changes will be included in the next Ansible major release (4.0.0 in this example). +* Therefore, ensure that the current major release of your collection included in 3.0.0 receives at least bugfixes as long as new 3.Y.Z releases are produced. +* Since new minor releases are included, you can include new features, modules and plugins. You must make sure that you do not break backwards compatibility! (See `semantic versioning `_.) This means in particular: + + * You can fix bugs in patch releases, but not add new features or deprecate things. + * You can add new features and deprecate things in minor releases, but not remove things or change behavior of existing features. + * You can only remove things or make breaking changes in major releases. +* We recommend that you ensure that if a deprecation is added in a collection version that is included in Ansible 3.y.z, the removal itself will only happen in a collection version included in Ansible 5.0.0 or later, but not in a collection version included in Ansible 4.0.0. +* Content moved from ansible/ansible that was scheduled for removal in 2.11 or later MUST NOT be removed in the current major release available when ansible 2.10.0 is released. Otherwise it would already be removed in 2.10, unexpectedly for users! Deprecation cycles can be shortened (since they are now uncoupled from ansible or ansible-base versions), but existing ones must not be unexpectedly terminated. +* We recommend you announce your policy of releasing, versioning and deprecation to contributors and users in some way. For an example of how to do this, see `the announcement in community.general `_. You could also do this in the README. + +.. _ coll_naming_req: + +Naming +====== + +Collection naming +----------------- + +For collections under ansible-collections the repository SHOULD be named ``NAMESPACE.COLLECTION``. + +To create a new collection and corresponding repository, first, a new namespace in Galaxy has to be created by submitting `Request a namespace `_. + +`Namespace limitations `_ lists requirements for namespaces in Galaxy. + +For collections created for working with a particular entity, they should contain the entity name, for example ``community.mysql``. + +For corporate maintained collections, the repository can be named ``COMPANY_NAME.PRODUCT_NAME``, for example ``ibm.db2``. + +We should avoid FQCN / repository names: + +* which are unnecessary long: try to make it compact but clear. +* contain the same words / collocations in ``NAMESPACE`` and ``COLLECTION`` parts, for example ``my_system.my_system``. + +If your collection is planned to be certified on **Red Hat Automation Hub**, please consult with Red Hat Partner Engineering through ``ansiblepartners@redhat.com`` to ensure collection naming compatibility between the community collection on **Galaxy**. + +.. _coll_module_name_req: + +Module naming +------------- + +Modules that only gather information MUST be named ``_info``. Modules that return ``ansible_facts`` are named ``_facts`` and do not return non-facts. +For more information, refer to the :ref:`Developing modules guidelines `. + +.. _coll_licensing_req: + +Collection licensing requirements +=================================== + +.. note:: + + The guidelines below are more restrictive than strictly necessary. We will try to add a larger list of acceptable licenses once we have approval from Red Hat Legal. + +There are four types of content in collections which licensing has to address in different +ways: + +:modules: must be licensed with a free software license that is compatible with the + `GPL-3.0-or-later `_ +:module_utils: must be licensed with a free software license that is compatible with the + `GPL-3.0-or-later `_. Ansible + itself typically uses the `BSD-2-clause + `_ license to make it possible for + third-party modules which are licensed incompatibly with the GPLv3 to use them. + Please consider this use case when licensing your own ``module_utils``. +:All other code in ``plugins/``: All other code in ``plugins/`` must be under the `GPL-3.0-or-later + `_. These plugins + are run inside of the Ansible controller process which is licensed under + the ``GPL-3.0-or-later`` and often must import code from the controller. + For these reasons, ``GPL-3.0-or-later`` must be used. +:All other code: Code outside ``plugins/`` may be licensed under another free software license that is compatible + with the `GPL-3.0-or-later `_, + provided that such code does not import any other code that is licensed under + the ``GPL-3.0-or-later``. If the file does import other ``GPL-3.0-or-later`` code, + then it must similarly be licensed under ``GPL-3.0-or-later``. Note that this applies in + particular to unit tests; these often import code from ansible-core, plugins, module utils, + or modules, and such code is often licensed under ``GPL-3.0-or-later``. +:Non code content: At the moment, these must also be under the `GPL-3.0-or-later + `_. + +Use `this table of licenses from the Fedora Project +`_ to find which licenses are +compatible with the GPLv3+. The license must be considered open source on both the Fedora License +table and the `Debian Free Software Guidelines `_ to be +allowed. + +These guidelines are the policy for inclusion in the Ansible package and are in addition to any +licensing and legal concerns that may otherwise affect your code. + +.. _coll_repo_management: + +Repository management +===================== + +Every collection MUST have a public git repository. Releases of the collection MUST be tagged in said repository. This means that releases MUST be ``git tag``\ ed and that the tag name MUST exactly match the Galaxy version number. Tag names MAY have a ``v`` prefix, but a collection's tag names MUST have a consistent format from release to release. + +Additionally, collection artifacts released to Galaxy MUST be built from the sources that are tagged in the collection's git repository as that release. Any changes made during the build process MUST be clearly documented so the collection artifact can be reproduced. + +We are open to allowing other SCM software once our tooling supports them. + +.. _coll_branch_config: + +Branch name and configuration +----------------------------- + +This subsection is **only** for repositories under `ansible-collections `_! Other collection repositories can also follow these guidelines, but do not have to. + +All new repositories MUST have ``main`` as the default branch. + +Existing repositories SHOULD be converted to use ``main``. + +Repository Protections: + +* Allow merge commits: disallowed + +Branch protections MUST be enforced: + +* Require linear history +* Include administrators + +.. _coll_ci_tests: + +CI Testing +=========== + +.. note:: + + You can copy the free-to-use `GitHub action workflow file `_ from the `Collection Template repository `_ to the `.github/workflows` directory in your collection to set up testing through GitHub actions. The workflow covers all the requirements below. + +* You MUST run the ``ansible-test sanity`` command from the `latest stable ansible-base/ansible-core branch `_. + + * Collections MUST run an equivalent of the ``ansible-test sanity --docker`` command. + * If they do not use ``--docker``, they must make sure that all tests run, in particular the compile and import tests (which should run for all :ref:`supported Python versions `). + * Collections can choose to skip certain Python versions that they explicitly do not support; this needs to be documented in ``README.md`` and in every module and plugin (hint: use a docs fragment). However we strongly recommend you follow the :ref:`Ansible Python Compatibility ` section for more details. + +* You SHOULD suggest to *additionally* run ``ansible-test sanity`` from the ansible/ansible ``devel`` branch so that you find out about new linting requirements earlier. +* The sanity tests MUST pass. + + * Adding some entries to the ``test/sanity/ignore*.txt`` file is an allowed method of getting them to pass, except cases listed below. + * You SHOULD not have ignored test entries. A reviewer can manually evaluate and approve your collection if they deem an ignored entry to be valid. + + * You MUST not ignore the following validations. They must be fixed before approval: + * ``validate-modules:doc-choices-do-not-match-spec`` + * ``validate-modules:doc-default-does-not-match-spec`` + * ``validate-modules:doc-missing-type`` + * ``validate-modules:doc-required-mismatch`` + * ``validate-modules:mutually_exclusive-unknown`` + * ``validate-modules:no-log-needed`` (use ``no_log=False`` in the argument spec to flag false positives!) + * ``validate-modules:nonexistent-parameter-documented`` + * ``validate-modules:parameter-list-no-elements`` + * ``validate-modules:parameter-type-not-in-doc`` + * ``validate-modules:undocumented-parameter`` + + * All entries in ignores.txt MUST have a justification in a comment in the ignore.txt file for each entry. For example ``plugins/modules/docker_container.py use-argspec-type-path # uses colon-separated paths, can't use type=path``. + * Reviewers can block acceptance of a new collection if they don't agree with the ignores.txt entries. + +* You MUST run CI against each of the "major versions" (2.10, 2.11, 2.12, etc) of ``ansible-base``/``ansible-core`` that the collection supports. (Usually the ``HEAD`` of the stable-xxx branches.) +* All CI tests MUST run against every pull request and SHOULD pass before merge. +* At least sanity tests MUST run against a commit that releases the collection; if they do not pass, the collection will NOT be released. + + - If the collection has integration/unit tests, they SHOULD run too; if they do not pass, the errors SHOULD be analyzed to decide whether they should block the release or not. +* All CI tests MUST run regularly (nightly, or at least once per week) to ensure that repositories without regular commits are tested against the latest version of ansible-test from each ansible-base/ansible-core version tested. The results from the regular CI runs MUST be checked regularly. + +All of the above can be achieved by using the `GitHub Action template `_. + +To learn how to add tests to your collection, see: + +* :ref:`collection_integration_tests` +* :ref:`collection_unit_tests` + + +.. _coll_wg_reqs: + +Collections and Working Groups +============================== + +The collections have: + +* Working group page(s) on a corresponding wiki if needed. Makes sense if there is a group of modules for working with one common entity, for example postgresql, zabbix, grafana, and so on. +* Issue for agenda (or pinboard if there are not regular meetings) as a pinned issue in the repository. + +.. _coll_migrating_reqs: + +When moving modules between collections +======================================= + +All related entities must be moved/copied including: + +* Related plugins and module_utils files (when moving, be sure it is not used by other modules, otherwise copy). +* CI and unit tests. +* Corresponding documentation fragments from ``plugins/doc_fragments``. + +Also: + +* Change ``M()``, examples, ``seealso``, ``extended_documentation_fragments`` to use actual FQCNs in moved content and in other collections that have references to the content. +* Move all related issues, pull requests, and wiki pages. +* Look through ``docs/docsite`` directory of `ansible-base GitHub repository `_ (for example, using the ``grep`` command-line utility) to check if there are examples using the moved modules and plugins to update their FQCNs. + +See :ref:`Migrating content to a different collection ` for complete details. + +.. _coll_development_conventions: + +Development conventions +======================= + +Besides all the requirements listed in the :ref:`module_dev_conventions`, be sure: + +* Your modules satisfy the concept of :ref:`idempotency `: if a module repeatedly runs with the same set of inputs, it will not make any changes on the system. +* Your modules do not query information using special ``state`` option values like ``get``, ``list``, ``query``, or ``info`` - + create new ``_info`` or ``_facts`` modules instead (for more information, refer to the :ref:`Developing modules guidelines `). +* ``check_mode`` is supported in all ``*_info`` and ``*_facts`` modules (for more information, refer to the :ref:`Development conventions <#following-ansible-conventions>`). + +.. _coll_dependencies: + +Collection Dependencies +======================= + +**Notation:** if foo.bar has a dependency on baz.bam, we say that baz.bam is the collection *depended on*, and foo.bar is the *dependent collection*. + +* Collection dependencies must have a lower bound on the version which is at least 1.0.0. + + * This means that all collection dependencies have to specify lower bounds on the versions, and these lower bounds should be stable releases, and not versions of the form 0.x.y. + * When creating new collections where collection dependencies are also under development, you need to watch out since Galaxy checks whether dependencies exist in the required versions: + + #. Assume that ``foo.bar`` depends on ``foo.baz``. + #. First release ``foo.baz`` as 1.0.0. + #. Then modify ``foo.bar``'s ``galaxy.yml`` to specify ``'>=1.0.0'`` for ``foo.baz``. + #. Finally release ``foo.bar`` as 1.0.0. + +* The dependencies between collections included in Ansible must be valid. If a dependency is violated, the involved collections must be pinned so that all dependencies are valid again. This means that the version numbers from the previous release are kept or only partially incremented so that the resulting set of versions has no invalid dependencies. + +* If a collection has a too strict dependency for a longer time, and forces another collection depended on to be held back, that collection will be removed from the next major Ansible release. What "longer time" means depends on when the next Ansible major release happens. If a dependent collection prevents a new major version of a collection it depends on to be included in the next major Ansible release, the dependent collection will be removed from that major release to avoid blocking the collection being depended on. + +* We strongly suggest that collections also test against the ``main`` branches of their dependencies to ensure that incompatibilities with future releases of these are detected as early as possible and can be resolved in time to avoid such problems. Collections depending on other collections must understand that they bear the risk of being removed when they do not ensure compatibility with the latest releases of their dependencies. + +* Collections included in Ansible must not depend on other collections except if they satisfy one of the following cases: + + #. They have a loose dependency on one (or more) major versions of other collections included in Ansible. For example, ``ansible.netcommon: >=1.0.0``, or ``ansible.netcommon: >=2.0.0, <3.0.0``. In case the collection depended on releases a new major version outside of this version range that will be included in the next major Ansible release, the dependent collection will be removed from the next major Ansible release. The cut-off date for this is feature freeze. + #. They are explicitly being allowed to do so by the Steering Committee. + +Examples +-------- + +#. ``community.foo 1.2.0`` has a dependency on ``community.bar >= 1.0.0, < 1.3.0``. + + * Now ``community.bar`` creates a new release ``1.3.0``. When ``community.foo`` does not create a new release with a relaxed dependency, we have to include ``community.bar 1.2.x`` in the next Ansible release despite ``1.3.0`` being available. + * If ``community.foo`` does not relax its dependency on ``community.bar`` for some time, ``community.foo`` will be removed from the next Ansible major release. + * Unfortunately ``community.bar`` has to stay at ``1.2.x`` until either ``community.foo`` is removed (in the next major release), or loosens its requirements so that newer ``community.bar 1.3.z`` releases can be included. + +#. ``community.foonetwork`` depends on ``ansible.netcommon >= 2.0.0, <3.0.0``. + + * ``ansible.netcommon 4.0.0`` is released during this major Ansible release cycle. + * ``community.foonetwork`` either releases a new version before feature freeze of the next major Ansible release that allows depending on all ``ansible.netcommon 4.x.y`` releases, or it will be removed from the next major Ansible release. + +.. _coll_inclusion_reqs: + +Requirements for collections to be included in the Ansible Package +================================================================== + +To be included in the `ansible` package, collections must meet the following criteria: + +* :ref:`Development conventions `. +* `Collection requirements `_ (this document). + + * The `Collection Inclusion Criteria Checklist `_ covers most of the criteria from this document. +* :ref:`Ansible documentation format ` and the :ref:`style guide `. +* To pass the Ansible :ref:`sanity tests `. +* To have :ref:`unit `_and / or :ref:`integration tests ` according to the corresponding sections of this document. + + +Other requirements +=================== + +* After content is moved out of another currently included collection such as ``community.general`` or ``community.network`` OR a new collection satisfies all the requirements, add the collection to the ``ansible.in`` file in a corresponding directory of the `ansible-build-data repository `_. \ No newline at end of file diff --git a/docs/docsite/rst/community/collection_contributors/collection_reviewing.rst b/docs/docsite/rst/community/collection_contributors/collection_reviewing.rst index 0eb203b5..4a379dcd 100644 --- a/docs/docsite/rst/community/collection_contributors/collection_reviewing.rst +++ b/docs/docsite/rst/community/collection_contributors/collection_reviewing.rst @@ -39,10 +39,10 @@ Other standards to check for in a PR include: * For jinja2 filter and test plugins, check out the `special syntax for changelog fragments `_. * The changelog content contains useful information for end users of the collection. -* If new files are added with the pull request, they follow the `licensing rules `_. +* If new files are added with the pull request, they follow the :ref:`coll_licensing_req`. * The changes follow the :ref:`Ansible documentation standards ` and the :ref:`style_guide`. * The changes follow the :ref:`Development conventions `. -* If a new plugin is added, it is one of the `allowed plugin types `_. +* If a new plugin is added, it is one of the :ref:`allowed plugin types `. * Documentation, examples, and return sections use FQCNs for the ``M(..)`` :ref:`format macros ` when referring to modules. * Modules and plugins from ansible-core use ``ansible.builtin.`` as an FQCN prefix when mentioned. * When a new option, module, plugin, or return value is added, the corresponding documentation or return sections use ``version_added:`` containing the *collection* version in which they will be first released. diff --git a/docs/docsite/rst/community/collection_contributors/collection_unit_tests.rst b/docs/docsite/rst/community/collection_contributors/collection_unit_tests.rst index e3573584..7a758c50 100644 --- a/docs/docsite/rst/community/collection_contributors/collection_unit_tests.rst +++ b/docs/docsite/rst/community/collection_contributors/collection_unit_tests.rst @@ -26,7 +26,7 @@ Ansible uses `pytest `_ as a testing framewo See :ref:`testing_units_modules` for complete details. -Inclusion in the Ansible package `requires integration and/or unit tests `_ You should have tests for your collection as well as for individual modules and plugins to make your code more reliable To learn how to get started with integration tests, see :ref:`collection_integration_tests`. +Inclusion in the Ansible package :ref:`requires integration and/or unit tests ` You should have tests for your collection as well as for individual modules and plugins to make your code more reliable To learn how to get started with integration tests, see :ref:`collection_integration_tests`. See :ref:`collection_prepare_local` to prepare your environment. diff --git a/docs/docsite/rst/community/contributing_maintained_collections.rst b/docs/docsite/rst/community/contributing_maintained_collections.rst index b0441912..f7c0d1d9 100644 --- a/docs/docsite/rst/community/contributing_maintained_collections.rst +++ b/docs/docsite/rst/community/contributing_maintained_collections.rst @@ -72,7 +72,7 @@ The following table shows: ✓ Zuul ✓ - AWS guide + AWS guide ansible.netcommon*** @@ -247,7 +247,7 @@ The following table shows: ✓ Zuul ✓ - VMware REST guide + VMware REST guide diff --git a/docs/docsite/rst/community/contributions_collections.rst b/docs/docsite/rst/community/contributions_collections.rst index f702d590..7b1aad4c 100644 --- a/docs/docsite/rst/community/contributions_collections.rst +++ b/docs/docsite/rst/community/contributions_collections.rst @@ -12,6 +12,7 @@ Ansible Collections Contributor Guide create_pr_quick_start collection_contributors/test_index collection_contributors/collection_reviewing + collection_contributors/collection_requirements maintainers contributing_maintained_collections steering/steering_index diff --git a/docs/docsite/rst/community/documentation_contributions.rst b/docs/docsite/rst/community/documentation_contributions.rst index 0f464f11..082a7b25 100644 --- a/docs/docsite/rst/community/documentation_contributions.rst +++ b/docs/docsite/rst/community/documentation_contributions.rst @@ -93,21 +93,26 @@ To work with documentation on your local machine, you need to have python-3.9 or .. _Ansible dependencies: https://github.com/ansible/ansible/blob/devel/requirements.txt .. _documentation dependencies: https://github.com/ansible/ansible/blob/devel/docs/docsite/requirements.txt -.. code-block:: bash +Drop the ``--user`` option in the following commands if you use a virtual environment (venv/virtenv). - pip install --user -r requirements.txt - pip install --user -r docs/docsite/requirements.txt +#. Upgrade pip before installing dependencies (recommended). -The :file:`docs/docsite/requirements.txt` file allows a wide range of versions and may install new releases of required packages. New releases of these packages may cause problems with the Ansible docs build. If you want to install tested versions of these dependencies, use :file:`test/sanity/code-smell/docs-build.requirements.txt` instead, which matches the dependencies used by CI: + .. code-block:: bash -.. code-block:: bash + pip install --user --upgrade pip + +#. Install Ansible dependencies. + + .. code-block:: bash - pip install --user -r requirements.txt - pip install --user -r test/sanity/code-smell/docs-build.requirements.txt + pip install --user -r requirements.txt +#. Install either the unpinned or tested documentation dependencies. + .. code-block:: bash -You can drop ``--user`` if you have set up a virtual environment (venv/virtenv). + pip install --user -r docs/docsite/requirements.txt # This file installs unpinned versions that can cause problems with the Ansible docs build. + pip install --user -r test/sanity/code-smell/docs-build.requirements.txt # This file installs tested dependency versions that are used by CI. .. note:: diff --git a/docs/docsite/rst/community/maintainers_guidelines.rst b/docs/docsite/rst/community/maintainers_guidelines.rst index 43a0e696..cfdd0e95 100644 --- a/docs/docsite/rst/community/maintainers_guidelines.rst +++ b/docs/docsite/rst/community/maintainers_guidelines.rst @@ -21,7 +21,7 @@ In general, collection maintainers: - :ref:`Backport ` changes to stable branches. - Address or assign issues to appropriate contributors. - :ref:`Release collections `. -- Ensure that collections adhere to the `Collection Requirements `_, +- Ensure that collections adhere to the :ref:`collections_requirements`. - Track changes announced in `News for collection contributors and maintainers `_ and update a collection in accordance with these changes. - Subscribe and submit news to the `Bullhorn newsletter `_. - :ref:`Build a healthy community ` to increase the number of active contributors and maintainers around collections. diff --git a/docs/docsite/rst/community/maintainers_workflow.rst b/docs/docsite/rst/community/maintainers_workflow.rst index 6754d125..e14ce5c0 100644 --- a/docs/docsite/rst/community/maintainers_workflow.rst +++ b/docs/docsite/rst/community/maintainers_workflow.rst @@ -76,7 +76,7 @@ For convenience, backporting can be implemented automatically using GitHub bots Including a collection in Ansible ----------------------------------- -If a collection is not included in Ansible (not shipped with Ansible package), maintainers can submit the collection for inclusion by creating a discussion under the `ansible-collections/ansible-inclusion repository `_. For more information, see the `repository's README `_, and the `Ansible community package collections requirements `. +If a collection is not included in Ansible (not shipped with Ansible package), maintainers can submit the collection for inclusion by creating a discussion under the `ansible-collections/ansible-inclusion repository `_. For more information, see the `repository's README `_, and the :ref:`Ansible community package collections requirements `. Stepping down as a collection maintainer =========================================== diff --git a/docs/docsite/rst/community/other_tools_and_programs.rst b/docs/docsite/rst/community/other_tools_and_programs.rst index 954d6218..fbf21514 100644 --- a/docs/docsite/rst/community/other_tools_and_programs.rst +++ b/docs/docsite/rst/community/other_tools_and_programs.rst @@ -114,11 +114,14 @@ Other tools - `Ansible Shell `_ - an interactive shell for Ansible with built-in tab completion for all the modules. - `Ansible Silo `_ - a self-contained Ansible environment by Docker. - `Ansigenome `_ - a command line tool designed to help you manage your Ansible roles. +- `antsibull-changelog `_ - a changelog generator for Ansible collections. +- `antsibull-docs `_ - generates docsites for collections and can validate collection documentation. - `ARA `_ - ARA Records Ansible playbooks and makes them easier to understand and troubleshoot with a reporting API, UI and CLI. - `Awesome Ansible `_ - a collaboratively curated list of awesome Ansible resources. - `AWX `_ - provides a web-based user interface, REST API, and task engine built on top of Ansible. Red Hat Ansible Automation Platform includes code from AWX. - `Mitogen for Ansible `_ - uses the `Mitogen `_ library to execute Ansible playbooks in a more efficient way (decreases the execution time). - `nanvault `_ - a standalone tool to encrypt and decrypt files in the Ansible Vault format, featuring UNIX-style composability. - `OpsTools-ansible `_ - uses Ansible to configure an environment that provides the support of `OpsTools `_, namely centralized logging and analysis, availability monitoring, and performance monitoring. +- `Steampunk Spotter `_ - provides an Assisted Automation Writing tool that analyzes and offers recommendations for your Ansible Playbooks. - `TD4A `_ - a template designer for automation. TD4A is a visual design aid for building and testing jinja2 templates. It will combine data in yaml format with a jinja2 template and render the output. - `PHP-Ansible `_ - an object oriented Ansible wrapper for PHP. diff --git a/docs/docsite/rst/community/steering/community_steering_committee.rst b/docs/docsite/rst/community/steering/community_steering_committee.rst index 282d0ca0..5a5f2672 100644 --- a/docs/docsite/rst/community/steering/community_steering_committee.rst +++ b/docs/docsite/rst/community/steering/community_steering_committee.rst @@ -92,7 +92,7 @@ To submit new collections for inclusion into the Ansible package: Depending on a topic you want to discuss with the Community and the Committee, as you prepare your proposal, please consider the requirements established by: * :ref:`code_of_conduct`. -* `Ansible Collection Requirements `_. +* :ref:`collections_requirements`. * `Ansible Collection Inclusion Checklist `_. Community topics workflow @@ -131,7 +131,7 @@ A person starting the triage: Collection inclusion requests workflow ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -When reviewing community collection `inclusion requests `_, the Committee members check if a collection adheres to the `Community collection requirements `_. +When reviewing community collection `inclusion requests `_, the Committee members check if a collection adheres to the :ref:`collections_requirements`. #. A Committee member who conducts the inclusion review copies the `Ansible community collection checklist `_ into a corresponding `discussion `_. diff --git a/docs/docsite/rst/dev_guide/developing_modules_documenting.rst b/docs/docsite/rst/dev_guide/developing_modules_documenting.rst index f459e433..e7b5c2d5 100644 --- a/docs/docsite/rst/dev_guide/developing_modules_documenting.rst +++ b/docs/docsite/rst/dev_guide/developing_modules_documenting.rst @@ -162,8 +162,8 @@ All fields in the ``DOCUMENTATION`` block are lower-case. All fields are require * If ``required`` is false/missing, ``default`` may be specified (assumed 'null' if missing). * Ensure that the default value in the docs matches the default value in the code. * The default field must not be listed as part of the description, unless it requires additional information or conditions. - * If the option is a boolean value, you can use any of the boolean values recognized by Ansible: - (such as true/false or yes/no). Choose the one that reads better in the context of the option. + * If the option is a boolean value, you can use any of the boolean values recognized by Ansible + (such as ``true``/``false`` or ``yes``/``no``). Document booleans as ``true``/``false`` for consistency and compatibility with ansible-lint. :choices: diff --git a/docs/docsite/rst/dev_guide/developing_plugins.rst b/docs/docsite/rst/dev_guide/developing_plugins.rst index 341e4fc8..25662f01 100644 --- a/docs/docsite/rst/dev_guide/developing_plugins.rst +++ b/docs/docsite/rst/dev_guide/developing_plugins.rst @@ -75,7 +75,17 @@ To define configurable options for your plugin, describe them in the ``DOCUMENTA type: boolean/float/integer/list/none/path/pathlist/pathspec/string/tmppath version_added: X.x -To access the configuration settings in your plugin, use ``self.get_option()``. For the plugin types (such as 'become', 'cache', 'callback', 'cliconf', 'connection', 'httpapi', 'inventory', 'lookup', 'netconf', 'shell', and 'vars') that support embedded documentation, the controller pre-populates the settings. If you need to populate settings explicitly, use a ``self.set_options()`` call. +To access the configuration settings in your plugin, use ``self.get_option()``. +Some plugin types hande this differently: + +* Become, callback, connection and shell plugins are guaranteed to have the engine call ``set_options()``. +* Lookup plugins always require you to handle it in the ``run()`` method. +* Inventory plugins are done automatically if you use the ``base _read_config_file()`` method. If not, you must use ``self.get_option()``. +* Cache plugins do it on load. +* Cliconf, httpapi and netconf plugins indirectly piggy back on connection plugins. +* Vars plugin settings are populated when first accessed (using the ``self.get_option()`` or ``self.get_options()`` method. + +If you need to populate settings explicitly, use a ``self.set_options()`` call. Configuration sources follow the precedence rules for values in Ansible. When there are multiple values from the same category, the value defined last takes precedence. For example, in the above configuration block, if both ``name_of_ansible_var`` and ``name_of_second_var`` are defined, the value of the ``option_name`` option will be the value of ``name_of_second_var``. Refer to :ref:`general_precedence_rules` for further information. diff --git a/docs/docsite/rst/dev_guide/testing_sanity.rst b/docs/docsite/rst/dev_guide/testing_sanity.rst index 01b167bc..93769c1d 100644 --- a/docs/docsite/rst/dev_guide/testing_sanity.rst +++ b/docs/docsite/rst/dev_guide/testing_sanity.rst @@ -22,10 +22,6 @@ How to run To run sanity tests using docker, always use the default docker image by passing the ``--docker`` or ``--docker default`` argument. -.. note:: - When using docker and the ``--base-branch`` argument, - also use the ``--keep-git`` argument to avoid git related errors. - .. code:: shell source hacking/env-setup diff --git a/docs/docsite/rst/locales/ja/LC_MESSAGES/404.po b/docs/docsite/rst/locales/ja/LC_MESSAGES/404.po index 84ad1114..5d8e8e8e 100644 --- a/docs/docsite/rst/locales/ja/LC_MESSAGES/404.po +++ b/docs/docsite/rst/locales/ja/LC_MESSAGES/404.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: Ansible devel\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2021-02-23 10:50+0100\n" +"POT-Creation-Date: 2022-11-03 09:23+0100\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -24,7 +24,11 @@ msgstr "Oops!" msgid "The version of the Ansible documentation you were looking at doesn't contain that page." msgstr "参照している Ansible ドキュメントのバージョンには、そのページが含まれていません。" +msgid "Cowsay 404" +msgstr "Cowsay 404" + #: ../../rst/404.rst:12 msgid "Use the back button to return to the version you were browsing, or use the navigation at left to explore our latest release. Once you're on a non-404 page, you can use the version-changer to select a version." msgstr "戻るボタンを使用して閲覧していたバージョンに戻るか、左側のナビゲーションを使用して最新リリースを参照してください。404 以外のページでは、バージョン番号変更メニューを使用してバージョンを選択できます。" + diff --git a/docs/docsite/rst/locales/ja/LC_MESSAGES/cli.po b/docs/docsite/rst/locales/ja/LC_MESSAGES/cli.po index 736b4fec..2c85c53a 100644 --- a/docs/docsite/rst/locales/ja/LC_MESSAGES/cli.po +++ b/docs/docsite/rst/locales/ja/LC_MESSAGES/cli.po @@ -7,14 +7,14 @@ msgid "" msgstr "" "Project-Id-Version: Ansible devel\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-10-05 09:34+0200\n" +"POT-Creation-Date: 2023-03-01 20:16+0100\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.8.1\n" +"Generated-By: Babel 2.9.0\n" #: ../../rst/cli/ansible.rst:7 msgid "ansible" @@ -32,345 +32,345 @@ msgstr ":strong:`一連のホストに対して単一のタスク「Playbook」 msgid "Synopsis" msgstr "概要" -#: ../../rst/cli/ansible-config.rst:30 ../../rst/cli/ansible-console.rst:37 +#: ../../rst/cli/ansible-config.rst:30 ../../rst/cli/ansible-console.rst:38 #: ../../rst/cli/ansible-doc.rst:33 ../../rst/cli/ansible-galaxy.rst:30 -#: ../../rst/cli/ansible-inventory.rst:33 ../../rst/cli/ansible-playbook.rst:38 -#: ../../rst/cli/ansible-pull.rst:37 ../../rst/cli/ansible-vault.rst:30 -#: ../../rst/cli/ansible.rst:37 +#: ../../rst/cli/ansible-inventory.rst:34 ../../rst/cli/ansible-playbook.rst:39 +#: ../../rst/cli/ansible-pull.rst:38 ../../rst/cli/ansible-vault.rst:30 +#: ../../rst/cli/ansible.rst:38 msgid "Description" msgstr "説明" -#: ../../rst/cli/ansible.rst:40 +#: ../../rst/cli/ansible.rst:41 msgid "is an extra-simple tool/framework/API for doing 'remote things'. this command allows you to define and run a single task 'playbook' against a set of hosts" msgstr "「リモートのこと」を行う非常に単純なツール/フレームワーク/API です。このコマンドでは、ホスト 1 台に対して単一タスク「Playbook」を定義および実行できます" -#: ../../rst/cli/ansible-config.rst:37 ../../rst/cli/ansible-console.rst:65 -#: ../../rst/cli/ansible-doc.rst:43 ../../rst/cli/ansible-galaxy.rst:37 -#: ../../rst/cli/ansible-inventory.rst:40 ../../rst/cli/ansible-playbook.rst:46 -#: ../../rst/cli/ansible-pull.rst:52 ../../rst/cli/ansible-vault.rst:44 -#: ../../rst/cli/ansible.rst:45 +#: ../../rst/cli/ansible-config.rst:37 ../../rst/cli/ansible-console.rst:66 +#: ../../rst/cli/ansible-doc.rst:43 ../../rst/cli/ansible-galaxy.rst:40 +#: ../../rst/cli/ansible-inventory.rst:41 ../../rst/cli/ansible-playbook.rst:47 +#: ../../rst/cli/ansible-pull.rst:56 ../../rst/cli/ansible-vault.rst:44 +#: ../../rst/cli/ansible.rst:46 msgid "Common Options" msgstr "共通オプション" -#: ../../rst/cli/ansible-console.rst:72 ../../rst/cli/ansible-inventory.rst:47 -#: ../../rst/cli/ansible-playbook.rst:53 ../../rst/cli/ansible-pull.rst:64 +#: ../../rst/cli/ansible-console.rst:73 ../../rst/cli/ansible-inventory.rst:48 +#: ../../rst/cli/ansible-playbook.rst:54 ../../rst/cli/ansible-pull.rst:68 #: ../../rst/cli/ansible-vault.rst:87 ../../rst/cli/ansible-vault.rst:121 #: ../../rst/cli/ansible-vault.rst:155 ../../rst/cli/ansible-vault.rst:189 #: ../../rst/cli/ansible-vault.rst:219 ../../rst/cli/ansible-vault.rst:257 -#: ../../rst/cli/ansible-vault.rst:311 ../../rst/cli/ansible.rst:52 +#: ../../rst/cli/ansible-vault.rst:311 ../../rst/cli/ansible.rst:53 msgid "ask for vault password" msgstr "Vault のパスワード入力を尋ねます。" -#: ../../rst/cli/ansible-console.rst:77 ../../rst/cli/ansible-playbook.rst:58 -#: ../../rst/cli/ansible.rst:57 +#: ../../rst/cli/ansible-console.rst:78 ../../rst/cli/ansible-playbook.rst:59 +#: ../../rst/cli/ansible.rst:58 msgid "privilege escalation method to use (default=sudo), use `ansible-doc -t become -l` to list valid choices." msgstr "使用する特権昇格方法 (デフォルトは sudo)。有効な選択を一覧表示するには `ansible-doc -t become -l` を使用します。" -#: ../../rst/cli/ansible-console.rst:82 ../../rst/cli/ansible-playbook.rst:63 -#: ../../rst/cli/ansible-pull.rst:69 ../../rst/cli/ansible.rst:62 +#: ../../rst/cli/ansible-console.rst:83 ../../rst/cli/ansible-playbook.rst:64 +#: ../../rst/cli/ansible-pull.rst:73 ../../rst/cli/ansible.rst:63 msgid "Become password file" msgstr "become パスワードファイル" -#: ../../rst/cli/ansible-console.rst:87 ../../rst/cli/ansible-playbook.rst:68 -#: ../../rst/cli/ansible.rst:67 +#: ../../rst/cli/ansible-console.rst:88 ../../rst/cli/ansible-playbook.rst:69 +#: ../../rst/cli/ansible.rst:68 msgid "run operations as this user (default=root)" msgstr "このユーザーとして操作を実行します (デフォルトは root)。" -#: ../../rst/cli/ansible-console.rst:92 ../../rst/cli/ansible-playbook.rst:73 -#: ../../rst/cli/ansible-pull.rst:84 ../../rst/cli/ansible.rst:72 +#: ../../rst/cli/ansible-console.rst:93 ../../rst/cli/ansible-playbook.rst:74 +#: ../../rst/cli/ansible-pull.rst:88 ../../rst/cli/ansible.rst:73 msgid "Connection password file" msgstr "接続のパスワードファイル" -#: ../../rst/cli/ansible-console.rst:97 ../../rst/cli/ansible-playbook.rst:88 -#: ../../rst/cli/ansible-pull.rst:99 ../../rst/cli/ansible.rst:77 +#: ../../rst/cli/ansible-console.rst:98 ../../rst/cli/ansible-playbook.rst:89 +#: ../../rst/cli/ansible-pull.rst:103 ../../rst/cli/ansible.rst:78 msgid "outputs a list of matching hosts; does not execute anything else" msgstr "一致するホストの一覧を出力します。他には何も実行しません。" -#: ../../rst/cli/ansible-console.rst:102 ../../rst/cli/ansible-doc.rst:60 -#: ../../rst/cli/ansible-inventory.rst:82 ../../rst/cli/ansible.rst:82 +#: ../../rst/cli/ansible-console.rst:103 ../../rst/cli/ansible-doc.rst:60 +#: ../../rst/cli/ansible-inventory.rst:83 ../../rst/cli/ansible.rst:83 msgid "Since this tool does not use playbooks, use this as a substitute playbook directory. This sets the relative path for many features including roles/ group_vars/ etc." msgstr "このツールは Playbook を使用しないため、代替の Playbook ディレクトリーとして使用します。これにより、roles/ group_vars/ などの多くの機能の相対パスが設定されます。" -#: ../../rst/cli/ansible-console.rst:107 ../../rst/cli/ansible-playbook.rst:103 -#: ../../rst/cli/ansible-pull.rst:104 ../../rst/cli/ansible.rst:87 +#: ../../rst/cli/ansible-console.rst:108 ../../rst/cli/ansible-playbook.rst:104 +#: ../../rst/cli/ansible-pull.rst:108 ../../rst/cli/ansible.rst:88 msgid "use this file to authenticate the connection" msgstr "このファイルを使用して接続を認証します。" -#: ../../rst/cli/ansible-console.rst:112 ../../rst/cli/ansible-playbook.rst:108 -#: ../../rst/cli/ansible-pull.rst:114 ../../rst/cli/ansible.rst:92 +#: ../../rst/cli/ansible-console.rst:113 ../../rst/cli/ansible-playbook.rst:109 +#: ../../rst/cli/ansible-pull.rst:118 ../../rst/cli/ansible.rst:93 msgid "specify extra arguments to pass to scp only (e.g. -l)" msgstr "scp のみに渡す追加の引数を指定します (例: -l)。" -#: ../../rst/cli/ansible-console.rst:117 ../../rst/cli/ansible-playbook.rst:113 -#: ../../rst/cli/ansible-pull.rst:119 ../../rst/cli/ansible.rst:97 +#: ../../rst/cli/ansible-console.rst:118 ../../rst/cli/ansible-playbook.rst:114 +#: ../../rst/cli/ansible-pull.rst:123 ../../rst/cli/ansible.rst:98 msgid "specify extra arguments to pass to sftp only (e.g. -f, -l)" msgstr "sftp のみに渡す追加の引数を指定します (例: -f、-l)。" -#: ../../rst/cli/ansible-console.rst:122 ../../rst/cli/ansible-playbook.rst:123 -#: ../../rst/cli/ansible-pull.rst:129 ../../rst/cli/ansible.rst:102 +#: ../../rst/cli/ansible-console.rst:123 ../../rst/cli/ansible-playbook.rst:124 +#: ../../rst/cli/ansible-pull.rst:133 ../../rst/cli/ansible.rst:103 msgid "specify common arguments to pass to sftp/scp/ssh (e.g. ProxyCommand)" msgstr "sftp/scp/ssh に渡す一般的な引数を指定します (例: ProxyCommand)。" -#: ../../rst/cli/ansible-console.rst:127 ../../rst/cli/ansible-playbook.rst:128 -#: ../../rst/cli/ansible-pull.rst:134 ../../rst/cli/ansible.rst:107 +#: ../../rst/cli/ansible-console.rst:128 ../../rst/cli/ansible-playbook.rst:129 +#: ../../rst/cli/ansible-pull.rst:138 ../../rst/cli/ansible.rst:108 msgid "specify extra arguments to pass to ssh only (e.g. -R)" msgstr "ssh のみに渡す追加の引数を指定します (例: -R)。" -#: ../../rst/cli/ansible-console.rst:137 ../../rst/cli/ansible-playbook.rst:143 -#: ../../rst/cli/ansible.rst:112 +#: ../../rst/cli/ansible-console.rst:138 ../../rst/cli/ansible-playbook.rst:144 +#: ../../rst/cli/ansible.rst:113 msgid "perform a syntax check on the playbook, but do not execute it" msgstr "Playbook で構文チェックを実行しますが、Playbook は実行しません。" -#: ../../rst/cli/ansible-console.rst:142 ../../rst/cli/ansible.rst:117 +#: ../../rst/cli/ansible-console.rst:143 ../../rst/cli/ansible.rst:118 msgid "set task timeout limit in seconds, must be positive integer." msgstr "タスクのタイムアウト制限を秒単位で設定します。正の整数である必要があります。" -#: ../../rst/cli/ansible-console.rst:147 ../../rst/cli/ansible-inventory.rst:97 -#: ../../rst/cli/ansible-playbook.rst:148 ../../rst/cli/ansible-pull.rst:144 +#: ../../rst/cli/ansible-console.rst:148 ../../rst/cli/ansible-inventory.rst:98 +#: ../../rst/cli/ansible-playbook.rst:149 ../../rst/cli/ansible-pull.rst:148 #: ../../rst/cli/ansible-vault.rst:95 ../../rst/cli/ansible-vault.rst:129 #: ../../rst/cli/ansible-vault.rst:163 ../../rst/cli/ansible-vault.rst:193 #: ../../rst/cli/ansible-vault.rst:231 ../../rst/cli/ansible-vault.rst:277 -#: ../../rst/cli/ansible-vault.rst:327 ../../rst/cli/ansible.rst:122 +#: ../../rst/cli/ansible-vault.rst:327 ../../rst/cli/ansible.rst:123 msgid "the vault identity to use" msgstr "使用する Vault アイデンティティー" -#: ../../rst/cli/ansible-console.rst:152 -#: ../../rst/cli/ansible-inventory.rst:102 -#: ../../rst/cli/ansible-playbook.rst:153 ../../rst/cli/ansible-pull.rst:149 +#: ../../rst/cli/ansible-console.rst:153 +#: ../../rst/cli/ansible-inventory.rst:103 +#: ../../rst/cli/ansible-playbook.rst:154 ../../rst/cli/ansible-pull.rst:153 #: ../../rst/cli/ansible-vault.rst:99 ../../rst/cli/ansible-vault.rst:133 #: ../../rst/cli/ansible-vault.rst:167 ../../rst/cli/ansible-vault.rst:197 #: ../../rst/cli/ansible-vault.rst:235 ../../rst/cli/ansible-vault.rst:281 -#: ../../rst/cli/ansible-vault.rst:331 ../../rst/cli/ansible.rst:127 +#: ../../rst/cli/ansible-vault.rst:331 ../../rst/cli/ansible.rst:128 msgid "vault password file" msgstr "Vault パスワードファイル" -#: ../../rst/cli/ansible-config.rst:44 ../../rst/cli/ansible-console.rst:157 -#: ../../rst/cli/ansible-doc.rst:65 ../../rst/cli/ansible-galaxy.rst:44 -#: ../../rst/cli/ansible-inventory.rst:107 -#: ../../rst/cli/ansible-playbook.rst:158 ../../rst/cli/ansible-pull.rst:159 -#: ../../rst/cli/ansible-vault.rst:51 ../../rst/cli/ansible.rst:132 +#: ../../rst/cli/ansible-config.rst:44 ../../rst/cli/ansible-console.rst:158 +#: ../../rst/cli/ansible-doc.rst:65 ../../rst/cli/ansible-galaxy.rst:47 +#: ../../rst/cli/ansible-inventory.rst:108 +#: ../../rst/cli/ansible-playbook.rst:159 ../../rst/cli/ansible-pull.rst:163 +#: ../../rst/cli/ansible-vault.rst:51 ../../rst/cli/ansible.rst:133 msgid "show program's version number, config file location, configured module search path, module location, executable location and exit" msgstr "プログラムバージョン番号、設定ファイルの場所、設定したモジュール検索パス、モジュールの場所、実行可能な場所、および終了を表示します。" -#: ../../rst/cli/ansible.rst:137 +#: ../../rst/cli/ansible.rst:138 msgid "run asynchronously, failing after X seconds (default=N/A)" msgstr "非同期的に実行し、X 秒後に失敗します (デフォルトは N/A)。" -#: ../../rst/cli/ansible-console.rst:162 ../../rst/cli/ansible-playbook.rst:163 -#: ../../rst/cli/ansible-pull.rst:74 ../../rst/cli/ansible.rst:142 +#: ../../rst/cli/ansible-console.rst:163 ../../rst/cli/ansible-playbook.rst:164 +#: ../../rst/cli/ansible-pull.rst:78 ../../rst/cli/ansible.rst:143 msgid "don't make any changes; instead, try to predict some of the changes that may occur" msgstr "変更を加えないでください。代わりに、発生する可能性のある変更のいくつかを予測してみてください。" -#: ../../rst/cli/ansible-console.rst:167 ../../rst/cli/ansible-playbook.rst:168 -#: ../../rst/cli/ansible-pull.rst:89 ../../rst/cli/ansible.rst:147 +#: ../../rst/cli/ansible-console.rst:168 ../../rst/cli/ansible-playbook.rst:169 +#: ../../rst/cli/ansible-pull.rst:93 ../../rst/cli/ansible.rst:148 msgid "when changing (small) files and templates, show the differences in those files; works great with --check" msgstr "(小規模な) ファイルおよびテンプレートの変更時に、これらのファイルの相違点を表示します。--check と適切に連携します。" -#: ../../rst/cli/ansible-console.rst:172 ../../rst/cli/ansible-playbook.rst:173 -#: ../../rst/cli/ansible-pull.rst:169 ../../rst/cli/ansible.rst:152 +#: ../../rst/cli/ansible-console.rst:173 ../../rst/cli/ansible-playbook.rst:174 +#: ../../rst/cli/ansible-pull.rst:173 ../../rst/cli/ansible.rst:153 msgid "ask for privilege escalation password" msgstr "権限昇格のパスワードを要求します。" -#: ../../rst/cli/ansible-console.rst:177 ../../rst/cli/ansible-doc.rst:75 -#: ../../rst/cli/ansible-playbook.rst:178 ../../rst/cli/ansible-pull.rst:174 -#: ../../rst/cli/ansible.rst:157 +#: ../../rst/cli/ansible-console.rst:178 ../../rst/cli/ansible-doc.rst:75 +#: ../../rst/cli/ansible-playbook.rst:179 ../../rst/cli/ansible-pull.rst:178 +#: ../../rst/cli/ansible.rst:158 msgid "prepend colon-separated path(s) to module library (default={{ ANSIBLE_HOME ~ \"/plugins/modules:/usr/share/ansible/plugins/modules\" }})" msgstr "モジュールライブラリーへのコロン区切りパス (デフォルトは {{ ANSIBLE_HOME ~ \"/plugins/modules:/usr/share/ansible/plugins/modules\" }}) を先頭に追加します。" -#: ../../rst/cli/ansible.rst:162 +#: ../../rst/cli/ansible.rst:163 msgid "set the poll interval if using -B (default=15)" msgstr "-B (デフォルトは 15) を使用する場合はポーリング間隔を設定します。" -#: ../../rst/cli/ansible-console.rst:182 ../../rst/cli/ansible-playbook.rst:183 -#: ../../rst/cli/ansible-pull.rst:179 ../../rst/cli/ansible.rst:167 +#: ../../rst/cli/ansible-console.rst:183 ../../rst/cli/ansible-playbook.rst:184 +#: ../../rst/cli/ansible-pull.rst:183 ../../rst/cli/ansible.rst:168 msgid "override the connection timeout in seconds (default=10)" msgstr "接続タイムアウトを秒単位で上書きします (デフォルトは 10)。" -#: ../../rst/cli/ansible.rst:172 +#: ../../rst/cli/ansible.rst:173 msgid "The action's options in space separated k=v format: -a 'opt1=val1 opt2=val2' or a json string: -a '{\"opt1\": \"val1\", \"opt2\": \"val2\"}'" msgstr "スペースで区切られた k=v 形式のアクションのオプション: -a 'opt1=val1 opt2=val2' または json 文字列: -a '{\"opt1\": \"val1\", \"opt2\": \"val2\"}'" -#: ../../rst/cli/ansible-console.rst:187 ../../rst/cli/ansible-playbook.rst:188 -#: ../../rst/cli/ansible.rst:177 +#: ../../rst/cli/ansible-console.rst:188 ../../rst/cli/ansible-playbook.rst:189 +#: ../../rst/cli/ansible.rst:178 msgid "run operations with become (does not imply password prompting)" msgstr "become で操作の実行 (パスワード入力を意味するものではありません)" -#: ../../rst/cli/ansible-console.rst:192 ../../rst/cli/ansible-playbook.rst:193 -#: ../../rst/cli/ansible-pull.rst:189 ../../rst/cli/ansible.rst:182 +#: ../../rst/cli/ansible-console.rst:193 ../../rst/cli/ansible-playbook.rst:194 +#: ../../rst/cli/ansible-pull.rst:193 ../../rst/cli/ansible.rst:183 msgid "connection type to use (default=smart)" msgstr "使用する接続タイプ (デフォルトは smart)" -#: ../../rst/cli/ansible-console.rst:197 -#: ../../rst/cli/ansible-inventory.rst:112 -#: ../../rst/cli/ansible-playbook.rst:198 ../../rst/cli/ansible-pull.rst:199 -#: ../../rst/cli/ansible.rst:187 +#: ../../rst/cli/ansible-console.rst:198 +#: ../../rst/cli/ansible-inventory.rst:113 +#: ../../rst/cli/ansible-playbook.rst:199 ../../rst/cli/ansible-pull.rst:203 +#: ../../rst/cli/ansible.rst:188 msgid "set additional variables as key=value or YAML/JSON, if filename prepend with @" msgstr "ファイル名の前に @ を付ける場合は、追加の変数を key=value または YAML/JSON に設定します。" -#: ../../rst/cli/ansible-console.rst:202 ../../rst/cli/ansible-playbook.rst:203 -#: ../../rst/cli/ansible.rst:192 +#: ../../rst/cli/ansible-console.rst:203 ../../rst/cli/ansible-playbook.rst:204 +#: ../../rst/cli/ansible.rst:193 msgid "specify number of parallel processes to use (default=5)" msgstr "使用する並列プロセス数を指定します (デフォルトは 5)。" -#: ../../rst/cli/ansible-config.rst:49 ../../rst/cli/ansible-console.rst:207 -#: ../../rst/cli/ansible-doc.rst:85 ../../rst/cli/ansible-galaxy.rst:49 -#: ../../rst/cli/ansible-inventory.rst:117 -#: ../../rst/cli/ansible-playbook.rst:208 ../../rst/cli/ansible-pull.rst:209 -#: ../../rst/cli/ansible-vault.rst:56 ../../rst/cli/ansible.rst:197 +#: ../../rst/cli/ansible-config.rst:49 ../../rst/cli/ansible-console.rst:208 +#: ../../rst/cli/ansible-doc.rst:85 ../../rst/cli/ansible-galaxy.rst:52 +#: ../../rst/cli/ansible-inventory.rst:118 +#: ../../rst/cli/ansible-playbook.rst:209 ../../rst/cli/ansible-pull.rst:213 +#: ../../rst/cli/ansible-vault.rst:56 ../../rst/cli/ansible.rst:198 msgid "show this help message and exit" msgstr "ヘルプメッセージを表示して終了します。" -#: ../../rst/cli/ansible-console.rst:212 -#: ../../rst/cli/ansible-inventory.rst:122 -#: ../../rst/cli/ansible-playbook.rst:213 ../../rst/cli/ansible-pull.rst:214 -#: ../../rst/cli/ansible.rst:202 +#: ../../rst/cli/ansible-console.rst:213 +#: ../../rst/cli/ansible-inventory.rst:123 +#: ../../rst/cli/ansible-playbook.rst:214 ../../rst/cli/ansible-pull.rst:218 +#: ../../rst/cli/ansible.rst:203 msgid "specify inventory host path or comma separated host list. --inventory-file is deprecated" msgstr "インベントリーホストパスまたはコンマ区切りホスト一覧を指定します。--inventory-file は非推奨になりました。" -#: ../../rst/cli/ansible-console.rst:217 ../../rst/cli/ansible-playbook.rst:218 -#: ../../rst/cli/ansible-pull.rst:219 ../../rst/cli/ansible.rst:207 +#: ../../rst/cli/ansible-console.rst:218 ../../rst/cli/ansible-playbook.rst:219 +#: ../../rst/cli/ansible-pull.rst:223 ../../rst/cli/ansible.rst:208 msgid "ask for connection password" msgstr "接続のパスワードを要求します。" -#: ../../rst/cli/ansible-console.rst:222 ../../rst/cli/ansible-playbook.rst:223 -#: ../../rst/cli/ansible-pull.rst:224 ../../rst/cli/ansible.rst:212 +#: ../../rst/cli/ansible-console.rst:223 ../../rst/cli/ansible-playbook.rst:224 +#: ../../rst/cli/ansible-pull.rst:228 ../../rst/cli/ansible.rst:213 msgid "further limit selected hosts to an additional pattern" msgstr "選択したホストを追加パターンにさらに制限します。" -#: ../../rst/cli/ansible.rst:217 +#: ../../rst/cli/ansible.rst:218 msgid "Name of the action to execute (default=command)" msgstr "実行する動作の名前 (default=command)" -#: ../../rst/cli/ansible.rst:222 +#: ../../rst/cli/ansible.rst:223 msgid "condense output" msgstr "出力を要約します。" -#: ../../rst/cli/ansible.rst:227 +#: ../../rst/cli/ansible.rst:228 msgid "log output to this directory" msgstr "このディレクトリーにログを記録します。" -#: ../../rst/cli/ansible-console.rst:227 ../../rst/cli/ansible-playbook.rst:233 -#: ../../rst/cli/ansible-pull.rst:249 ../../rst/cli/ansible.rst:232 +#: ../../rst/cli/ansible-console.rst:228 ../../rst/cli/ansible-playbook.rst:234 +#: ../../rst/cli/ansible-pull.rst:253 ../../rst/cli/ansible.rst:233 msgid "connect as this user (default=None)" msgstr "このユーザーとして接続します (デフォルトは None)。" -#: ../../rst/cli/ansible-config.rst:54 ../../rst/cli/ansible-console.rst:232 -#: ../../rst/cli/ansible-doc.rst:115 ../../rst/cli/ansible-galaxy.rst:54 -#: ../../rst/cli/ansible-inventory.rst:132 -#: ../../rst/cli/ansible-playbook.rst:238 ../../rst/cli/ansible-pull.rst:254 -#: ../../rst/cli/ansible-vault.rst:61 ../../rst/cli/ansible.rst:237 +#: ../../rst/cli/ansible-config.rst:54 ../../rst/cli/ansible-console.rst:233 +#: ../../rst/cli/ansible-doc.rst:115 ../../rst/cli/ansible-galaxy.rst:57 +#: ../../rst/cli/ansible-inventory.rst:133 +#: ../../rst/cli/ansible-playbook.rst:239 ../../rst/cli/ansible-pull.rst:258 +#: ../../rst/cli/ansible-vault.rst:61 ../../rst/cli/ansible.rst:238 msgid "Causes Ansible to print more debug messages. Adding multiple -v will increase the verbosity, the builtin plugins currently evaluate up to -vvvvvv. A reasonable level to start is -vvv, connection debugging might require -vvvv." msgstr "Ansible がより多くのデバッグメッセージを出力する原因になります。複数の -v を追加すると詳細度が増し、現在の組み込みプラグインは -vvvvvv まで評価します。開始するのに適切なレベルは -vvv です。接続のデバッグには、-vvvv が必要になる場合があります。" -#: ../../rst/cli/ansible-config.rst:193 ../../rst/cli/ansible-console.rst:241 -#: ../../rst/cli/ansible-doc.rst:124 ../../rst/cli/ansible-galaxy.rst:891 -#: ../../rst/cli/ansible-inventory.rst:146 -#: ../../rst/cli/ansible-playbook.rst:247 ../../rst/cli/ansible-pull.rst:263 -#: ../../rst/cli/ansible-vault.rst:342 ../../rst/cli/ansible.rst:246 +#: ../../rst/cli/ansible-config.rst:193 ../../rst/cli/ansible-console.rst:242 +#: ../../rst/cli/ansible-doc.rst:124 ../../rst/cli/ansible-galaxy.rst:894 +#: ../../rst/cli/ansible-inventory.rst:147 +#: ../../rst/cli/ansible-playbook.rst:248 ../../rst/cli/ansible-pull.rst:267 +#: ../../rst/cli/ansible-vault.rst:342 ../../rst/cli/ansible.rst:247 msgid "Environment" msgstr "環境" -#: ../../rst/cli/ansible-config.rst:195 ../../rst/cli/ansible-console.rst:243 -#: ../../rst/cli/ansible-doc.rst:126 ../../rst/cli/ansible-galaxy.rst:893 -#: ../../rst/cli/ansible-inventory.rst:148 -#: ../../rst/cli/ansible-playbook.rst:249 ../../rst/cli/ansible-pull.rst:265 -#: ../../rst/cli/ansible-vault.rst:344 ../../rst/cli/ansible.rst:248 +#: ../../rst/cli/ansible-config.rst:195 ../../rst/cli/ansible-console.rst:244 +#: ../../rst/cli/ansible-doc.rst:126 ../../rst/cli/ansible-galaxy.rst:896 +#: ../../rst/cli/ansible-inventory.rst:149 +#: ../../rst/cli/ansible-playbook.rst:250 ../../rst/cli/ansible-pull.rst:269 +#: ../../rst/cli/ansible-vault.rst:344 ../../rst/cli/ansible.rst:249 msgid "The following environment variables may be specified." msgstr "以下の環境変数を指定できます。" -#: ../../rst/cli/ansible-config.rst:199 ../../rst/cli/ansible-console.rst:247 -#: ../../rst/cli/ansible-doc.rst:130 ../../rst/cli/ansible-galaxy.rst:897 -#: ../../rst/cli/ansible-inventory.rst:152 -#: ../../rst/cli/ansible-playbook.rst:253 ../../rst/cli/ansible-pull.rst:269 -#: ../../rst/cli/ansible-vault.rst:348 ../../rst/cli/ansible.rst:252 +#: ../../rst/cli/ansible-config.rst:199 ../../rst/cli/ansible-console.rst:248 +#: ../../rst/cli/ansible-doc.rst:130 ../../rst/cli/ansible-galaxy.rst:900 +#: ../../rst/cli/ansible-inventory.rst:153 +#: ../../rst/cli/ansible-playbook.rst:254 ../../rst/cli/ansible-pull.rst:273 +#: ../../rst/cli/ansible-vault.rst:348 ../../rst/cli/ansible.rst:253 msgid ":envvar:`ANSIBLE_CONFIG` -- Override the default ansible config file" msgstr ":envvar:`ANSIBLE_CONFIG` -- デフォルトの Ansible 設定ファイルを上書きします。" -#: ../../rst/cli/ansible-config.rst:201 ../../rst/cli/ansible-console.rst:249 -#: ../../rst/cli/ansible-doc.rst:132 ../../rst/cli/ansible-galaxy.rst:899 -#: ../../rst/cli/ansible-inventory.rst:154 -#: ../../rst/cli/ansible-playbook.rst:255 ../../rst/cli/ansible-pull.rst:271 -#: ../../rst/cli/ansible-vault.rst:350 ../../rst/cli/ansible.rst:254 +#: ../../rst/cli/ansible-config.rst:201 ../../rst/cli/ansible-console.rst:250 +#: ../../rst/cli/ansible-doc.rst:132 ../../rst/cli/ansible-galaxy.rst:902 +#: ../../rst/cli/ansible-inventory.rst:155 +#: ../../rst/cli/ansible-playbook.rst:256 ../../rst/cli/ansible-pull.rst:275 +#: ../../rst/cli/ansible-vault.rst:350 ../../rst/cli/ansible.rst:255 msgid "Many more are available for most options in ansible.cfg" msgstr "ansible.cfg のほとんどのオプションで、さらに多くのものが利用できます。" -#: ../../rst/cli/ansible-config.rst:205 ../../rst/cli/ansible-console.rst:253 -#: ../../rst/cli/ansible-doc.rst:136 ../../rst/cli/ansible-galaxy.rst:903 -#: ../../rst/cli/ansible-inventory.rst:158 -#: ../../rst/cli/ansible-playbook.rst:259 ../../rst/cli/ansible-pull.rst:275 -#: ../../rst/cli/ansible-vault.rst:354 ../../rst/cli/ansible.rst:258 +#: ../../rst/cli/ansible-config.rst:205 ../../rst/cli/ansible-console.rst:254 +#: ../../rst/cli/ansible-doc.rst:136 ../../rst/cli/ansible-galaxy.rst:906 +#: ../../rst/cli/ansible-inventory.rst:159 +#: ../../rst/cli/ansible-playbook.rst:260 ../../rst/cli/ansible-pull.rst:279 +#: ../../rst/cli/ansible-vault.rst:354 ../../rst/cli/ansible.rst:259 msgid "Files" msgstr "ファイル" -#: ../../rst/cli/ansible-config.rst:208 ../../rst/cli/ansible-console.rst:256 -#: ../../rst/cli/ansible-doc.rst:139 ../../rst/cli/ansible-galaxy.rst:906 -#: ../../rst/cli/ansible-inventory.rst:161 -#: ../../rst/cli/ansible-playbook.rst:262 ../../rst/cli/ansible-pull.rst:278 -#: ../../rst/cli/ansible-vault.rst:357 ../../rst/cli/ansible.rst:261 +#: ../../rst/cli/ansible-config.rst:208 ../../rst/cli/ansible-console.rst:257 +#: ../../rst/cli/ansible-doc.rst:139 ../../rst/cli/ansible-galaxy.rst:909 +#: ../../rst/cli/ansible-inventory.rst:162 +#: ../../rst/cli/ansible-playbook.rst:263 ../../rst/cli/ansible-pull.rst:282 +#: ../../rst/cli/ansible-vault.rst:357 ../../rst/cli/ansible.rst:262 msgid ":file:`/etc/ansible/ansible.cfg` -- Config file, used if present" msgstr ":file:`/etc/ansible/ansible.cfg` -- 存在する場合は、使用される設定ファイル。" -#: ../../rst/cli/ansible-config.rst:210 ../../rst/cli/ansible-console.rst:258 -#: ../../rst/cli/ansible-doc.rst:141 ../../rst/cli/ansible-galaxy.rst:908 -#: ../../rst/cli/ansible-inventory.rst:163 -#: ../../rst/cli/ansible-playbook.rst:264 ../../rst/cli/ansible-pull.rst:280 -#: ../../rst/cli/ansible-vault.rst:359 ../../rst/cli/ansible.rst:263 +#: ../../rst/cli/ansible-config.rst:210 ../../rst/cli/ansible-console.rst:259 +#: ../../rst/cli/ansible-doc.rst:141 ../../rst/cli/ansible-galaxy.rst:911 +#: ../../rst/cli/ansible-inventory.rst:164 +#: ../../rst/cli/ansible-playbook.rst:265 ../../rst/cli/ansible-pull.rst:284 +#: ../../rst/cli/ansible-vault.rst:359 ../../rst/cli/ansible.rst:264 msgid ":file:`~/.ansible.cfg` -- User config file, overrides the default config if present" msgstr ":file:`~/.ansible.cfg` -- 存在する場合は、デフォルト設定を上書きするユーザー設定ファイル。" -#: ../../rst/cli/ansible-config.rst:213 ../../rst/cli/ansible-console.rst:261 -#: ../../rst/cli/ansible-doc.rst:144 ../../rst/cli/ansible-galaxy.rst:911 -#: ../../rst/cli/ansible-inventory.rst:166 -#: ../../rst/cli/ansible-playbook.rst:267 ../../rst/cli/ansible-pull.rst:283 -#: ../../rst/cli/ansible-vault.rst:362 ../../rst/cli/ansible.rst:266 +#: ../../rst/cli/ansible-config.rst:213 ../../rst/cli/ansible-console.rst:262 +#: ../../rst/cli/ansible-doc.rst:144 ../../rst/cli/ansible-galaxy.rst:914 +#: ../../rst/cli/ansible-inventory.rst:167 +#: ../../rst/cli/ansible-playbook.rst:268 ../../rst/cli/ansible-pull.rst:287 +#: ../../rst/cli/ansible-vault.rst:362 ../../rst/cli/ansible.rst:267 msgid "Author" msgstr "作成者" -#: ../../rst/cli/ansible-config.rst:215 ../../rst/cli/ansible-console.rst:263 -#: ../../rst/cli/ansible-doc.rst:146 ../../rst/cli/ansible-galaxy.rst:913 -#: ../../rst/cli/ansible-inventory.rst:168 -#: ../../rst/cli/ansible-playbook.rst:269 ../../rst/cli/ansible-pull.rst:285 -#: ../../rst/cli/ansible-vault.rst:364 ../../rst/cli/ansible.rst:268 +#: ../../rst/cli/ansible-config.rst:215 ../../rst/cli/ansible-console.rst:264 +#: ../../rst/cli/ansible-doc.rst:146 ../../rst/cli/ansible-galaxy.rst:916 +#: ../../rst/cli/ansible-inventory.rst:169 +#: ../../rst/cli/ansible-playbook.rst:270 ../../rst/cli/ansible-pull.rst:289 +#: ../../rst/cli/ansible-vault.rst:364 ../../rst/cli/ansible.rst:269 msgid "Ansible was originally written by Michael DeHaan." msgstr "Ansible は当初、Michael DeHaan によって記述されました。" -#: ../../rst/cli/ansible-config.rst:217 ../../rst/cli/ansible-console.rst:265 -#: ../../rst/cli/ansible-doc.rst:148 ../../rst/cli/ansible-galaxy.rst:915 -#: ../../rst/cli/ansible-inventory.rst:170 -#: ../../rst/cli/ansible-playbook.rst:271 ../../rst/cli/ansible-pull.rst:287 -#: ../../rst/cli/ansible-vault.rst:366 ../../rst/cli/ansible.rst:270 +#: ../../rst/cli/ansible-config.rst:217 ../../rst/cli/ansible-console.rst:266 +#: ../../rst/cli/ansible-doc.rst:148 ../../rst/cli/ansible-galaxy.rst:918 +#: ../../rst/cli/ansible-inventory.rst:171 +#: ../../rst/cli/ansible-playbook.rst:272 ../../rst/cli/ansible-pull.rst:291 +#: ../../rst/cli/ansible-vault.rst:366 ../../rst/cli/ansible.rst:271 msgid "See the `AUTHORS` file for a complete list of contributors." msgstr "貢献者の完全な一覧は、`AUTHORS` ファイルを参照してください。" -#: ../../rst/cli/ansible-config.rst:221 ../../rst/cli/ansible-console.rst:269 -#: ../../rst/cli/ansible-doc.rst:152 ../../rst/cli/ansible-galaxy.rst:919 -#: ../../rst/cli/ansible-inventory.rst:174 -#: ../../rst/cli/ansible-playbook.rst:275 ../../rst/cli/ansible-pull.rst:291 -#: ../../rst/cli/ansible-vault.rst:370 ../../rst/cli/ansible.rst:274 +#: ../../rst/cli/ansible-config.rst:221 ../../rst/cli/ansible-console.rst:270 +#: ../../rst/cli/ansible-doc.rst:152 ../../rst/cli/ansible-galaxy.rst:922 +#: ../../rst/cli/ansible-inventory.rst:175 +#: ../../rst/cli/ansible-playbook.rst:276 ../../rst/cli/ansible-pull.rst:295 +#: ../../rst/cli/ansible-vault.rst:370 ../../rst/cli/ansible.rst:275 msgid "License" msgstr "ライセンス" -#: ../../rst/cli/ansible-config.rst:223 ../../rst/cli/ansible-console.rst:271 -#: ../../rst/cli/ansible-doc.rst:154 ../../rst/cli/ansible-galaxy.rst:921 -#: ../../rst/cli/ansible-inventory.rst:176 -#: ../../rst/cli/ansible-playbook.rst:277 ../../rst/cli/ansible-pull.rst:293 -#: ../../rst/cli/ansible-vault.rst:372 ../../rst/cli/ansible.rst:276 +#: ../../rst/cli/ansible-config.rst:223 ../../rst/cli/ansible-console.rst:272 +#: ../../rst/cli/ansible-doc.rst:154 ../../rst/cli/ansible-galaxy.rst:924 +#: ../../rst/cli/ansible-inventory.rst:177 +#: ../../rst/cli/ansible-playbook.rst:278 ../../rst/cli/ansible-pull.rst:297 +#: ../../rst/cli/ansible-vault.rst:372 ../../rst/cli/ansible.rst:277 msgid "Ansible is released under the terms of the GPLv3+ License." msgstr "Ansible は、GPLv3 以降のライセンスの対象範囲でリリースされています。" -#: ../../rst/cli/ansible-config.rst:226 ../../rst/cli/ansible-console.rst:274 -#: ../../rst/cli/ansible-doc.rst:157 ../../rst/cli/ansible-galaxy.rst:924 -#: ../../rst/cli/ansible-inventory.rst:179 -#: ../../rst/cli/ansible-playbook.rst:280 ../../rst/cli/ansible-pull.rst:296 -#: ../../rst/cli/ansible-vault.rst:375 ../../rst/cli/ansible.rst:279 +#: ../../rst/cli/ansible-config.rst:226 ../../rst/cli/ansible-console.rst:275 +#: ../../rst/cli/ansible-doc.rst:157 ../../rst/cli/ansible-galaxy.rst:927 +#: ../../rst/cli/ansible-inventory.rst:180 +#: ../../rst/cli/ansible-playbook.rst:281 ../../rst/cli/ansible-pull.rst:300 +#: ../../rst/cli/ansible-vault.rst:375 ../../rst/cli/ansible.rst:280 msgid "See also" msgstr "参照情報" -#: ../../rst/cli/ansible-config.rst:228 ../../rst/cli/ansible-console.rst:276 -#: ../../rst/cli/ansible-doc.rst:159 ../../rst/cli/ansible-galaxy.rst:926 -#: ../../rst/cli/ansible-inventory.rst:181 -#: ../../rst/cli/ansible-playbook.rst:282 ../../rst/cli/ansible-pull.rst:298 -#: ../../rst/cli/ansible-vault.rst:377 ../../rst/cli/ansible.rst:281 +#: ../../rst/cli/ansible-config.rst:228 ../../rst/cli/ansible-console.rst:277 +#: ../../rst/cli/ansible-doc.rst:159 ../../rst/cli/ansible-galaxy.rst:929 +#: ../../rst/cli/ansible-inventory.rst:182 +#: ../../rst/cli/ansible-playbook.rst:283 ../../rst/cli/ansible-pull.rst:302 +#: ../../rst/cli/ansible-vault.rst:377 ../../rst/cli/ansible.rst:282 msgid ":manpage:`ansible(1)`, :manpage:`ansible-config(1)`, :manpage:`ansible-console(1)`, :manpage:`ansible-doc(1)`, :manpage:`ansible-galaxy(1)`, :manpage:`ansible-inventory(1)`, :manpage:`ansible-playbook(1)`, :manpage:`ansible-pull(1)`, :manpage:`ansible-vault(1)`," msgstr ":manpage:`ansible(1)`、 :manpage:`ansible-config(1)`、 :manpage:`ansible-console(1)`、 :manpage:`ansible-doc(1)`、 :manpage:`ansible-galaxy(1)`、 :manpage:`ansible-inventory(1)`、 :manpage:`ansible-playbook(1)`、 :manpage:`ansible-pull(1)`、 :manpage:`ansible-vault(1)`" @@ -386,7 +386,7 @@ msgstr ":strong:`ansible 設定を表示します。`" msgid "Config command line class" msgstr "設定コマンドラインクラス" -#: ../../rst/cli/ansible-config.rst:62 ../../rst/cli/ansible-galaxy.rst:62 +#: ../../rst/cli/ansible-config.rst:62 ../../rst/cli/ansible-galaxy.rst:65 #: ../../rst/cli/ansible-vault.rst:69 msgid "Actions" msgstr "アクション" @@ -457,75 +457,75 @@ msgstr "ansible-console" msgid ":strong:`REPL console for executing Ansible tasks.`" msgstr ":strong:`Ansible タスクを実行する REPL コンソール`" -#: ../../rst/cli/ansible-console.rst:40 +#: ../../rst/cli/ansible-console.rst:41 msgid "A REPL that allows for running ad-hoc tasks against a chosen inventory from a nice shell with built-in tab completion (based on dominis' ansible-shell)." msgstr "(dominis の ansible-shell に基づく) 組み込みのタブ補完機能を備えた優れたシェルから選択したインベントリーに対して、アドホックタスクを実行できるようにする REPL。" -#: ../../rst/cli/ansible-console.rst:44 +#: ../../rst/cli/ansible-console.rst:45 msgid "It supports several commands, and you can modify its configuration at runtime:" msgstr "これは複数のコマンドをサポートし、起動時にその設定を変更できます。" -#: ../../rst/cli/ansible-console.rst:47 +#: ../../rst/cli/ansible-console.rst:48 msgid "`cd [pattern]`: change host/group (you can use host patterns eg.: app*.dc*:!app01*)" msgstr "`cd [pattern]`: ホスト/グループを変更する (app*.dc*:!app01* などのホストパターンを使用できます)" -#: ../../rst/cli/ansible-console.rst:48 +#: ../../rst/cli/ansible-console.rst:49 msgid "`list`: list available hosts in the current path" msgstr "`list`: 現在のパスで利用可能なホストを一覧表示する" -#: ../../rst/cli/ansible-console.rst:49 +#: ../../rst/cli/ansible-console.rst:50 msgid "`list groups`: list groups included in the current path" msgstr "`list groups`: 現在のパスに含まれるグループを一覧表示する" -#: ../../rst/cli/ansible-console.rst:50 +#: ../../rst/cli/ansible-console.rst:51 msgid "`become`: toggle the become flag" msgstr "`become`: become フラグを切り替える" -#: ../../rst/cli/ansible-console.rst:51 +#: ../../rst/cli/ansible-console.rst:52 msgid "`!`: forces shell module instead of the ansible module (!yum update -y)" msgstr "`!`: Ansible モジュールの代わりにシェルモジュールを強制的に実行する (!yum update -y)" -#: ../../rst/cli/ansible-console.rst:52 +#: ../../rst/cli/ansible-console.rst:53 msgid "`verbosity [num]`: set the verbosity level" msgstr "`verbosity [num]`: 詳細レベルを設定する" -#: ../../rst/cli/ansible-console.rst:53 +#: ../../rst/cli/ansible-console.rst:54 msgid "`forks [num]`: set the number of forks" msgstr "`forks [num]`: フォークの数を設定する" -#: ../../rst/cli/ansible-console.rst:54 +#: ../../rst/cli/ansible-console.rst:55 msgid "`become_user [user]`: set the become_user" msgstr "`become_user [user]`: become_user を設定する" -#: ../../rst/cli/ansible-console.rst:55 +#: ../../rst/cli/ansible-console.rst:56 msgid "`remote_user [user]`: set the remote_user" msgstr "`remote_user [user]`: remote_user を設定する" -#: ../../rst/cli/ansible-console.rst:56 +#: ../../rst/cli/ansible-console.rst:57 msgid "`become_method [method]`: set the privilege escalation method" msgstr "`become_method [method]`: 権限昇格方法を設定する" -#: ../../rst/cli/ansible-console.rst:57 +#: ../../rst/cli/ansible-console.rst:58 msgid "`check [bool]`: toggle check mode" msgstr "`check [bool]`: チェックモードを切り替える" -#: ../../rst/cli/ansible-console.rst:58 +#: ../../rst/cli/ansible-console.rst:59 msgid "`diff [bool]`: toggle diff mode" msgstr "`diff [bool]`: diff モードを切り替える" -#: ../../rst/cli/ansible-console.rst:59 +#: ../../rst/cli/ansible-console.rst:60 msgid "`timeout [integer]`: set the timeout of tasks in seconds (0 to disable)" msgstr "`timeout [integer]`: タスクのタイムアウトを秒単位で設定する (無効にするには 0)" -#: ../../rst/cli/ansible-console.rst:60 +#: ../../rst/cli/ansible-console.rst:61 msgid "`help [command/module]`: display documentation for the command or module" msgstr "`help [command/module]`: コマンドまたはモジュールのドキュメントを表示する" -#: ../../rst/cli/ansible-console.rst:61 +#: ../../rst/cli/ansible-console.rst:62 msgid "`exit`: exit ansible-console" msgstr "`exit`: ansible-console を終了する" -#: ../../rst/cli/ansible-console.rst:132 ../../rst/cli/ansible-playbook.rst:138 +#: ../../rst/cli/ansible-console.rst:133 ../../rst/cli/ansible-playbook.rst:139 msgid "one-step-at-a-time: confirm each task before running" msgstr "one-step-at-a-time: 実行前に各タスクを確認します。" @@ -586,374 +586,378 @@ msgid ":strong:`Perform various Role and Collection related operations.`" msgstr ":strong:`ロールおよびコレクションに関する様々な操作を実行します。`" #: ../../rst/cli/ansible-galaxy.rst:33 -msgid "command to manage Ansible roles in shared repositories, the default of which is Ansible Galaxy *https://galaxy.ansible.com*." -msgstr "共有リポジトリーの Ansible ロールを管理するコマンド (デフォルトは Ansible Galaxy *https://galaxy.ansible.com* です)。" +msgid "Command to manage Ansible roles and collections." +msgstr "Ansible のロールとコレクションを管理するコマンド。" -#: ../../rst/cli/ansible-galaxy.rst:70 +#: ../../rst/cli/ansible-galaxy.rst:35 +msgid "None of the CLI tools are designed to run concurrently with themselves. Use an external scheduler and/or locking to ensure there are no clashing operations." +msgstr "CLI ツールは、そのツール自体と同時に実行するようには設計されていません。外部スケジューラーやロックを使用して、操作が競合しないようにします。" + +#: ../../rst/cli/ansible-galaxy.rst:73 msgid "collection" msgstr "コレクション" -#: ../../rst/cli/ansible-galaxy.rst:72 +#: ../../rst/cli/ansible-galaxy.rst:75 msgid "Perform the action on an Ansible Galaxy collection. Must be combined with a further action like init/install as listed below." msgstr "Ansible Galaxy コレクションでアクションを実行します。以下で示すように、init/install などの追加アクションと組み合わせる必要があります。" -#: ../../rst/cli/ansible-galaxy.rst:84 +#: ../../rst/cli/ansible-galaxy.rst:87 msgid "collection download" msgstr "collection download" -#: ../../rst/cli/ansible-galaxy.rst:94 ../../rst/cli/ansible-galaxy.rst:281 +#: ../../rst/cli/ansible-galaxy.rst:97 ../../rst/cli/ansible-galaxy.rst:284 msgid "Clear the existing server response cache." msgstr "既存のサーバーの応答キャッシュを消去します。" -#: ../../rst/cli/ansible-galaxy.rst:98 ../../rst/cli/ansible-galaxy.rst:301 +#: ../../rst/cli/ansible-galaxy.rst:101 ../../rst/cli/ansible-galaxy.rst:304 msgid "Do not use the server response cache." msgstr "サーバーの応答キャッシュを使用しないでください。" -#: ../../rst/cli/ansible-galaxy.rst:102 ../../rst/cli/ansible-galaxy.rst:309 +#: ../../rst/cli/ansible-galaxy.rst:105 ../../rst/cli/ansible-galaxy.rst:312 msgid "Include pre-release versions. Semantic versioning pre-releases are ignored by default" msgstr "リリース前のバージョンを含めます。セマンティックバージョニングのプレリリースはデフォルトで無視されます。" -#: ../../rst/cli/ansible-galaxy.rst:106 ../../rst/cli/ansible-galaxy.rst:160 -#: ../../rst/cli/ansible-galaxy.rst:203 ../../rst/cli/ansible-galaxy.rst:248 -#: ../../rst/cli/ansible-galaxy.rst:321 ../../rst/cli/ansible-galaxy.rst:382 -#: ../../rst/cli/ansible-galaxy.rst:439 ../../rst/cli/ansible-galaxy.rst:512 -#: ../../rst/cli/ansible-galaxy.rst:553 ../../rst/cli/ansible-galaxy.rst:590 -#: ../../rst/cli/ansible-galaxy.rst:623 ../../rst/cli/ansible-galaxy.rst:672 -#: ../../rst/cli/ansible-galaxy.rst:721 ../../rst/cli/ansible-galaxy.rst:762 -#: ../../rst/cli/ansible-galaxy.rst:803 ../../rst/cli/ansible-galaxy.rst:844 +#: ../../rst/cli/ansible-galaxy.rst:109 ../../rst/cli/ansible-galaxy.rst:163 +#: ../../rst/cli/ansible-galaxy.rst:206 ../../rst/cli/ansible-galaxy.rst:251 +#: ../../rst/cli/ansible-galaxy.rst:324 ../../rst/cli/ansible-galaxy.rst:385 +#: ../../rst/cli/ansible-galaxy.rst:442 ../../rst/cli/ansible-galaxy.rst:515 +#: ../../rst/cli/ansible-galaxy.rst:556 ../../rst/cli/ansible-galaxy.rst:593 +#: ../../rst/cli/ansible-galaxy.rst:626 ../../rst/cli/ansible-galaxy.rst:675 +#: ../../rst/cli/ansible-galaxy.rst:724 ../../rst/cli/ansible-galaxy.rst:765 +#: ../../rst/cli/ansible-galaxy.rst:806 ../../rst/cli/ansible-galaxy.rst:847 msgid "The time to wait for operations against the galaxy server, defaults to 60s." msgstr "galaxy サーバーに対する操作を待機する時間。デフォルトは 60s です。" -#: ../../rst/cli/ansible-galaxy.rst:110 ../../rst/cli/ansible-galaxy.rst:164 -#: ../../rst/cli/ansible-galaxy.rst:207 ../../rst/cli/ansible-galaxy.rst:252 -#: ../../rst/cli/ansible-galaxy.rst:325 ../../rst/cli/ansible-galaxy.rst:386 -#: ../../rst/cli/ansible-galaxy.rst:443 ../../rst/cli/ansible-galaxy.rst:516 -#: ../../rst/cli/ansible-galaxy.rst:557 ../../rst/cli/ansible-galaxy.rst:594 -#: ../../rst/cli/ansible-galaxy.rst:627 ../../rst/cli/ansible-galaxy.rst:676 -#: ../../rst/cli/ansible-galaxy.rst:725 ../../rst/cli/ansible-galaxy.rst:766 -#: ../../rst/cli/ansible-galaxy.rst:807 ../../rst/cli/ansible-galaxy.rst:848 +#: ../../rst/cli/ansible-galaxy.rst:113 ../../rst/cli/ansible-galaxy.rst:167 +#: ../../rst/cli/ansible-galaxy.rst:210 ../../rst/cli/ansible-galaxy.rst:255 +#: ../../rst/cli/ansible-galaxy.rst:328 ../../rst/cli/ansible-galaxy.rst:389 +#: ../../rst/cli/ansible-galaxy.rst:446 ../../rst/cli/ansible-galaxy.rst:519 +#: ../../rst/cli/ansible-galaxy.rst:560 ../../rst/cli/ansible-galaxy.rst:597 +#: ../../rst/cli/ansible-galaxy.rst:630 ../../rst/cli/ansible-galaxy.rst:679 +#: ../../rst/cli/ansible-galaxy.rst:728 ../../rst/cli/ansible-galaxy.rst:769 +#: ../../rst/cli/ansible-galaxy.rst:810 ../../rst/cli/ansible-galaxy.rst:851 msgid "The Ansible Galaxy API key which can be found at https://galaxy.ansible.com/me/preferences." msgstr "https://galaxy.ansible.com/me/preferences で見つかる Ansible Galaxy API キー。" -#: ../../rst/cli/ansible-galaxy.rst:114 ../../rst/cli/ansible-galaxy.rst:168 -#: ../../rst/cli/ansible-galaxy.rst:211 ../../rst/cli/ansible-galaxy.rst:256 -#: ../../rst/cli/ansible-galaxy.rst:333 ../../rst/cli/ansible-galaxy.rst:390 -#: ../../rst/cli/ansible-galaxy.rst:447 ../../rst/cli/ansible-galaxy.rst:524 -#: ../../rst/cli/ansible-galaxy.rst:561 ../../rst/cli/ansible-galaxy.rst:598 -#: ../../rst/cli/ansible-galaxy.rst:631 ../../rst/cli/ansible-galaxy.rst:680 -#: ../../rst/cli/ansible-galaxy.rst:729 ../../rst/cli/ansible-galaxy.rst:770 -#: ../../rst/cli/ansible-galaxy.rst:811 ../../rst/cli/ansible-galaxy.rst:852 +#: ../../rst/cli/ansible-galaxy.rst:117 ../../rst/cli/ansible-galaxy.rst:171 +#: ../../rst/cli/ansible-galaxy.rst:214 ../../rst/cli/ansible-galaxy.rst:259 +#: ../../rst/cli/ansible-galaxy.rst:336 ../../rst/cli/ansible-galaxy.rst:393 +#: ../../rst/cli/ansible-galaxy.rst:450 ../../rst/cli/ansible-galaxy.rst:527 +#: ../../rst/cli/ansible-galaxy.rst:564 ../../rst/cli/ansible-galaxy.rst:601 +#: ../../rst/cli/ansible-galaxy.rst:634 ../../rst/cli/ansible-galaxy.rst:683 +#: ../../rst/cli/ansible-galaxy.rst:732 ../../rst/cli/ansible-galaxy.rst:773 +#: ../../rst/cli/ansible-galaxy.rst:814 ../../rst/cli/ansible-galaxy.rst:855 msgid "Ignore SSL certificate validation errors." msgstr "SSL 証明書の検証エラーを無視します。" -#: ../../rst/cli/ansible-galaxy.rst:118 +#: ../../rst/cli/ansible-galaxy.rst:121 msgid "Don't download collection(s) listed as dependencies." msgstr "依存関係としてリストされているコレクションはダウンロードしないでください。" -#: ../../rst/cli/ansible-galaxy.rst:122 +#: ../../rst/cli/ansible-galaxy.rst:125 msgid "The directory to download the collections to." msgstr "コレクションをダウンロードするディレクトリー。" -#: ../../rst/cli/ansible-galaxy.rst:126 +#: ../../rst/cli/ansible-galaxy.rst:129 msgid "A file containing a list of collections to be downloaded." msgstr "ダウンロードするコレクションの一覧を含むファイル。" -#: ../../rst/cli/ansible-galaxy.rst:130 ../../rst/cli/ansible-galaxy.rst:176 -#: ../../rst/cli/ansible-galaxy.rst:219 ../../rst/cli/ansible-galaxy.rst:260 -#: ../../rst/cli/ansible-galaxy.rst:357 ../../rst/cli/ansible-galaxy.rst:398 -#: ../../rst/cli/ansible-galaxy.rst:463 ../../rst/cli/ansible-galaxy.rst:532 -#: ../../rst/cli/ansible-galaxy.rst:569 ../../rst/cli/ansible-galaxy.rst:602 -#: ../../rst/cli/ansible-galaxy.rst:639 ../../rst/cli/ansible-galaxy.rst:684 -#: ../../rst/cli/ansible-galaxy.rst:733 ../../rst/cli/ansible-galaxy.rst:778 -#: ../../rst/cli/ansible-galaxy.rst:819 ../../rst/cli/ansible-galaxy.rst:880 +#: ../../rst/cli/ansible-galaxy.rst:133 ../../rst/cli/ansible-galaxy.rst:179 +#: ../../rst/cli/ansible-galaxy.rst:222 ../../rst/cli/ansible-galaxy.rst:263 +#: ../../rst/cli/ansible-galaxy.rst:360 ../../rst/cli/ansible-galaxy.rst:401 +#: ../../rst/cli/ansible-galaxy.rst:466 ../../rst/cli/ansible-galaxy.rst:535 +#: ../../rst/cli/ansible-galaxy.rst:572 ../../rst/cli/ansible-galaxy.rst:605 +#: ../../rst/cli/ansible-galaxy.rst:642 ../../rst/cli/ansible-galaxy.rst:687 +#: ../../rst/cli/ansible-galaxy.rst:736 ../../rst/cli/ansible-galaxy.rst:781 +#: ../../rst/cli/ansible-galaxy.rst:822 ../../rst/cli/ansible-galaxy.rst:883 msgid "The Galaxy API server URL" msgstr "Galaxy API サーバー URL" -#: ../../rst/cli/ansible-galaxy.rst:141 +#: ../../rst/cli/ansible-galaxy.rst:144 msgid "collection init" msgstr "collection init" -#: ../../rst/cli/ansible-galaxy.rst:143 ../../rst/cli/ansible-galaxy.rst:491 +#: ../../rst/cli/ansible-galaxy.rst:146 ../../rst/cli/ansible-galaxy.rst:494 msgid "Creates the skeleton framework of a role or collection that complies with the Galaxy metadata format. Requires a role or collection name. The collection name must be in the format ``.``." msgstr "Galaxy メタデータ形式に準拠するロールまたはコレクションのスケルトンフレームワークを作成します。ロールまたはコレクション名が必要です。コレクション名は ``.`` の形式にする必要があります。" -#: ../../rst/cli/ansible-galaxy.rst:152 +#: ../../rst/cli/ansible-galaxy.rst:155 msgid "The path to a collection skeleton that the new collection should be based upon." msgstr "新しいコレクションの基となるコレクションスケルトンへのパス。" -#: ../../rst/cli/ansible-galaxy.rst:156 +#: ../../rst/cli/ansible-galaxy.rst:159 msgid "The path in which the skeleton collection will be created. The default is the current working directory." msgstr "スケルトンコレクションが作成されるパス。デフォルトは現在の作業ディレクトリーです。" -#: ../../rst/cli/ansible-galaxy.rst:172 ../../rst/cli/ansible-galaxy.rst:215 -#: ../../rst/cli/ansible-galaxy.rst:337 ../../rst/cli/ansible-galaxy.rst:528 -#: ../../rst/cli/ansible-galaxy.rst:856 +#: ../../rst/cli/ansible-galaxy.rst:175 ../../rst/cli/ansible-galaxy.rst:218 +#: ../../rst/cli/ansible-galaxy.rst:340 ../../rst/cli/ansible-galaxy.rst:531 +#: ../../rst/cli/ansible-galaxy.rst:859 msgid "Force overwriting an existing role or collection" msgstr "既存のロールまたはコレクションの上書きを強制します。" -#: ../../rst/cli/ansible-galaxy.rst:187 +#: ../../rst/cli/ansible-galaxy.rst:190 msgid "collection build" msgstr "collection build" -#: ../../rst/cli/ansible-galaxy.rst:189 +#: ../../rst/cli/ansible-galaxy.rst:192 msgid "Build an Ansible Galaxy collection artifact that can be stored in a central repository like Ansible Galaxy. By default, this command builds from the current working directory. You can optionally pass in the collection input path (where the ``galaxy.yml`` file is)." msgstr "Ansible Galaxy などの中央リポジトリーに格納できる Ansible Galaxy コレクションアーティファクトを構築します。デフォルトでは、このコマンドは現在の作業ディレクトリーから構築されます。必要に応じて、コレクション入力パスを渡すことができます (``galaxy.yml`` ファイルの場所です)。" -#: ../../rst/cli/ansible-galaxy.rst:199 +#: ../../rst/cli/ansible-galaxy.rst:202 msgid "The path in which the collection is built to. The default is the current working directory." msgstr "コレクションが構築されるパス。デフォルトは現在の作業ディレクトリーです。" -#: ../../rst/cli/ansible-galaxy.rst:230 +#: ../../rst/cli/ansible-galaxy.rst:233 msgid "collection publish" msgstr "collection publish" -#: ../../rst/cli/ansible-galaxy.rst:232 +#: ../../rst/cli/ansible-galaxy.rst:235 msgid "Publish a collection into Ansible Galaxy. Requires the path to the collection tarball to publish." msgstr "コレクションを Ansible Galaxy に公開します。公開するには、コレクション tarball へのパスが必要になります。" -#: ../../rst/cli/ansible-galaxy.rst:240 +#: ../../rst/cli/ansible-galaxy.rst:243 msgid "The time to wait for the collection import process to finish." msgstr "コレクションのインポートプロセスが完了するのを待つ時間。" -#: ../../rst/cli/ansible-galaxy.rst:244 +#: ../../rst/cli/ansible-galaxy.rst:247 msgid "Don't wait for import validation results." msgstr "インポートの検証結果を待ちません。" -#: ../../rst/cli/ansible-galaxy.rst:271 +#: ../../rst/cli/ansible-galaxy.rst:274 msgid "collection install" msgstr "collection install" -#: ../../rst/cli/ansible-galaxy.rst:285 +#: ../../rst/cli/ansible-galaxy.rst:288 msgid "Disable GPG signature verification when installing collections from a Galaxy server" msgstr "Galaxy サーバーからコレクションをインストールする際に GPG 署名の検証を無効にします。" -#: ../../rst/cli/ansible-galaxy.rst:289 +#: ../../rst/cli/ansible-galaxy.rst:292 msgid "Force overwriting an existing collection and its dependencies." msgstr "既存のコレクションおよびその依存関係を強制的に上書きします。" -#: ../../rst/cli/ansible-galaxy.rst:293 ../../rst/cli/ansible-galaxy.rst:419 +#: ../../rst/cli/ansible-galaxy.rst:296 ../../rst/cli/ansible-galaxy.rst:422 msgid "A status code to ignore during signature verification (for example, NO_PUBKEY). Provide this option multiple times to ignore a list of status codes. Descriptions for the choices can be seen at L(https://github.com/gpg/gnupg/blob/master/doc/DETAILS#general-status-codes)." msgstr "署名の検証中に無視するステータスコード (例: NO_PUBKEY)。このオプションを複数回指定して、ステータスコードの一覧を無視します。選択肢の説明は L (https://github.com/gpg/gnupg/blob/master/doc/DETAILS#general-status-codes) で確認できます。" -#: ../../rst/cli/ansible-galaxy.rst:297 ../../rst/cli/ansible-galaxy.rst:423 +#: ../../rst/cli/ansible-galaxy.rst:300 ../../rst/cli/ansible-galaxy.rst:426 msgid "The keyring used during signature verification" msgstr "署名の検証中に使用されるキーリング" -#: ../../rst/cli/ansible-galaxy.rst:305 +#: ../../rst/cli/ansible-galaxy.rst:308 msgid "Install collection artifacts (tarballs) without contacting any distribution servers. This does not apply to collections in remote Git repositories or URLs to remote tarballs." msgstr "配信サーバーに問い合わせずにコレクションアーティファクト (tarball) をインストールします。これは、リモート Git リポジトリー内のコレクションや、リモートの tarball への URL には適用されません。" -#: ../../rst/cli/ansible-galaxy.rst:313 +#: ../../rst/cli/ansible-galaxy.rst:316 msgid "The number of signatures that must successfully verify the collection. This should be a positive integer or -1 to signify that all signatures must be used to verify the collection. Prepend the value with + to fail if no valid signatures are found for the collection (e.g. +all)." msgstr "コレクションを正常に検証する必要のある署名の数。この値が整数または -1 の場合、すべての署名をコレクションの検証に使用する必要があることを示しています。コレクションに有効な署名が見つからない場合に失敗するには、値の先頭に + を追加します (例: +all)。" -#: ../../rst/cli/ansible-galaxy.rst:317 +#: ../../rst/cli/ansible-galaxy.rst:320 msgid "An additional signature source to verify the authenticity of the MANIFEST.json before installing the collection from a Galaxy server. Use in conjunction with a positional collection name (mutually exclusive with --requirements-file)." msgstr "Galaxy サーバーからコレクションをインストールする前に、MANIFEST.json の信頼性を検証する追加の署名ソース。位置コレクション名と併用します (--requirements-file とは相互に排他的)。" -#: ../../rst/cli/ansible-galaxy.rst:329 +#: ../../rst/cli/ansible-galaxy.rst:332 msgid "Upgrade installed collection artifacts. This will also update dependencies unless --no-deps is provided" msgstr "インストールされたコレクションアーティファクトをアップグレードします。--no-deps が提供されている場合を除き依存関係も更新されます。" -#: ../../rst/cli/ansible-galaxy.rst:341 +#: ../../rst/cli/ansible-galaxy.rst:344 msgid "Ignore errors during installation and continue with the next specified collection. This will not ignore dependency conflict errors." msgstr "インストール時にエラーを無視し、次の指定されたコレクションで続行します。依存関係の競合エラーは無視しません。" -#: ../../rst/cli/ansible-galaxy.rst:345 +#: ../../rst/cli/ansible-galaxy.rst:348 msgid "Don't download collections listed as dependencies." msgstr "依存関係として一覧表示されているコレクションはダウンロードしないでください。" -#: ../../rst/cli/ansible-galaxy.rst:349 +#: ../../rst/cli/ansible-galaxy.rst:352 msgid "The path to the directory containing your collections." msgstr "コレクションを含むディレクトリーへのパス。" -#: ../../rst/cli/ansible-galaxy.rst:353 +#: ../../rst/cli/ansible-galaxy.rst:356 msgid "A file containing a list of collections to be installed." msgstr "インストールするコレクションの一覧を含むファイル。" -#: ../../rst/cli/ansible-galaxy.rst:368 +#: ../../rst/cli/ansible-galaxy.rst:371 msgid "collection list" msgstr "collection list" -#: ../../rst/cli/ansible-galaxy.rst:370 ../../rst/cli/ansible-galaxy.rst:615 +#: ../../rst/cli/ansible-galaxy.rst:373 ../../rst/cli/ansible-galaxy.rst:618 msgid "List installed collections or roles" msgstr "インストール済みのコレクションまたはロールを一覧表示します。" -#: ../../rst/cli/ansible-galaxy.rst:378 +#: ../../rst/cli/ansible-galaxy.rst:381 msgid "Format to display the list of collections in." msgstr "コレクションの一覧を表示する形式。" -#: ../../rst/cli/ansible-galaxy.rst:394 ../../rst/cli/ansible-galaxy.rst:455 +#: ../../rst/cli/ansible-galaxy.rst:397 ../../rst/cli/ansible-galaxy.rst:458 msgid "One or more directories to search for collections in addition to the default COLLECTIONS_PATHS. Separate multiple paths with ':'." msgstr "デフォルトの COLLECTIONS_PATHS に加えて、コレクションを検索する 1 つ以上のディレクトリー。複数のパスは、「:」で区切ります。" -#: ../../rst/cli/ansible-galaxy.rst:409 +#: ../../rst/cli/ansible-galaxy.rst:412 msgid "collection verify" msgstr "collection verify" -#: ../../rst/cli/ansible-galaxy.rst:427 +#: ../../rst/cli/ansible-galaxy.rst:430 msgid "Validate collection integrity locally without contacting server for canonical manifest hash." msgstr "通常のマニフェストハッシュのためにサーバーに問い合わせることなく、コレクションの整合性をローカルで検証します。" -#: ../../rst/cli/ansible-galaxy.rst:431 +#: ../../rst/cli/ansible-galaxy.rst:434 msgid "The number of signatures that must successfully verify the collection. This should be a positive integer or all to signify that all signatures must be used to verify the collection. Prepend the value with + to fail if no valid signatures are found for the collection (e.g. +all)." msgstr "コレクションを正常に検証する必要のある署名の数。この値が整数または all の場合、すべての署名をコレクションの検証に使用する必要があることを示しています。コレクションに有効な署名が見つからない場合に失敗するには、値の先頭に + を追加します (例: +all)。" -#: ../../rst/cli/ansible-galaxy.rst:435 +#: ../../rst/cli/ansible-galaxy.rst:438 msgid "An additional signature source to verify the authenticity of the MANIFEST.json before using it to verify the rest of the contents of a collection from a Galaxy server. Use in conjunction with a positional collection name (mutually exclusive with --requirements-file)." msgstr "Galaxy サーバーからのコレクションの残りのコンテンツを検証するために使用する前に、MANIFEST.json の信頼性を検証する追加の署名ソース。位置コレクション名と併用します (--requirements-file とは相互に排他的)。" -#: ../../rst/cli/ansible-galaxy.rst:451 +#: ../../rst/cli/ansible-galaxy.rst:454 msgid "Ignore errors during verification and continue with the next specified collection." msgstr "検証時のエラーを無視し、次の指定されたコレクションで続行します。" -#: ../../rst/cli/ansible-galaxy.rst:459 +#: ../../rst/cli/ansible-galaxy.rst:462 msgid "A file containing a list of collections to be verified." msgstr "検証するコレクションの一覧を含むファイル。" -#: ../../rst/cli/ansible-galaxy.rst:475 +#: ../../rst/cli/ansible-galaxy.rst:478 msgid "role" msgstr "ロール" -#: ../../rst/cli/ansible-galaxy.rst:477 +#: ../../rst/cli/ansible-galaxy.rst:480 msgid "Perform the action on an Ansible Galaxy role. Must be combined with a further action like delete/install/init as listed below." msgstr "Ansible Galaxy ロールで操作を実行します。以下のように delete/install/init などのアクションと組み合わせる必要があります。" -#: ../../rst/cli/ansible-galaxy.rst:489 +#: ../../rst/cli/ansible-galaxy.rst:492 msgid "role init" msgstr "role init" -#: ../../rst/cli/ansible-galaxy.rst:500 +#: ../../rst/cli/ansible-galaxy.rst:503 msgid "The path in which the skeleton role will be created. The default is the current working directory." msgstr "スケルトンロールが作成されるパス。デフォルトは現在の作業ディレクトリーです。" -#: ../../rst/cli/ansible-galaxy.rst:504 ../../rst/cli/ansible-galaxy.rst:799 +#: ../../rst/cli/ansible-galaxy.rst:507 ../../rst/cli/ansible-galaxy.rst:802 msgid "Don't query the galaxy API when creating roles" msgstr "ロールの作成時に galaxy API にクエリーを実行しないでください。" -#: ../../rst/cli/ansible-galaxy.rst:508 +#: ../../rst/cli/ansible-galaxy.rst:511 msgid "The path to a role skeleton that the new role should be based upon." msgstr "新しいロールの基となるロールスケルトンへのパス。" -#: ../../rst/cli/ansible-galaxy.rst:520 +#: ../../rst/cli/ansible-galaxy.rst:523 msgid "Initialize using an alternate role type. Valid types include: 'container', 'apb' and 'network'." msgstr "別のロールタイプを使用して初期化します。有効なタイプには、「container」、「apb」、および「network」が含まれます。" -#: ../../rst/cli/ansible-galaxy.rst:543 +#: ../../rst/cli/ansible-galaxy.rst:546 msgid "role remove" msgstr "role remove" -#: ../../rst/cli/ansible-galaxy.rst:545 +#: ../../rst/cli/ansible-galaxy.rst:548 msgid "removes the list of roles passed as arguments from the local system." msgstr "ローカルシステムから引数として渡されたロールの一覧を削除します。" -#: ../../rst/cli/ansible-galaxy.rst:565 ../../rst/cli/ansible-galaxy.rst:635 -#: ../../rst/cli/ansible-galaxy.rst:774 ../../rst/cli/ansible-galaxy.rst:815 -#: ../../rst/cli/ansible-galaxy.rst:872 +#: ../../rst/cli/ansible-galaxy.rst:568 ../../rst/cli/ansible-galaxy.rst:638 +#: ../../rst/cli/ansible-galaxy.rst:777 ../../rst/cli/ansible-galaxy.rst:818 +#: ../../rst/cli/ansible-galaxy.rst:875 msgid "The path to the directory containing your roles. The default is the first writable one configured via DEFAULT_ROLES_PATH: {{ ANSIBLE_HOME ~ \"/roles:/usr/share/ansible/roles:/etc/ansible/roles\" }}" msgstr "ロールを含むディレクトリーへのパスです。デフォルトは DEFAULT_ROLES_PATH: {{ ANSIBLE_HOME ~ \"/roles:/usr/share/ansible/roles:/etc/ansible/roles\" }} で設定される最初の書き込み可能なファイルです。" -#: ../../rst/cli/ansible-galaxy.rst:580 +#: ../../rst/cli/ansible-galaxy.rst:583 msgid "role delete" msgstr "role delete" -#: ../../rst/cli/ansible-galaxy.rst:582 +#: ../../rst/cli/ansible-galaxy.rst:585 msgid "Delete a role from Ansible Galaxy." msgstr "Ansible Galaxy からロールを削除します。" -#: ../../rst/cli/ansible-galaxy.rst:613 +#: ../../rst/cli/ansible-galaxy.rst:616 msgid "role list" msgstr "role list" -#: ../../rst/cli/ansible-galaxy.rst:650 +#: ../../rst/cli/ansible-galaxy.rst:653 msgid "role search" msgstr "role search" -#: ../../rst/cli/ansible-galaxy.rst:652 +#: ../../rst/cli/ansible-galaxy.rst:655 msgid "searches for roles on the Ansible Galaxy server" msgstr "Ansible Galaxy サーバーでロールを検索します。" -#: ../../rst/cli/ansible-galaxy.rst:660 +#: ../../rst/cli/ansible-galaxy.rst:663 msgid "GitHub username" msgstr "GitHub ユーザー名" -#: ../../rst/cli/ansible-galaxy.rst:664 +#: ../../rst/cli/ansible-galaxy.rst:667 msgid "list of galaxy tags to filter by" msgstr "フィルタリングする galaxy タグの一覧を表示します。" -#: ../../rst/cli/ansible-galaxy.rst:668 +#: ../../rst/cli/ansible-galaxy.rst:671 msgid "list of OS platforms to filter by" msgstr "フィルタリングする OS プラットフォームの一覧を表示します。" -#: ../../rst/cli/ansible-galaxy.rst:695 +#: ../../rst/cli/ansible-galaxy.rst:698 msgid "role import" msgstr "role import" -#: ../../rst/cli/ansible-galaxy.rst:697 +#: ../../rst/cli/ansible-galaxy.rst:700 msgid "used to import a role into Ansible Galaxy" msgstr "Ansible Galaxy にロールをインポートするのに使用します。" -#: ../../rst/cli/ansible-galaxy.rst:705 +#: ../../rst/cli/ansible-galaxy.rst:708 msgid "The name of a branch to import. Defaults to the repository's default branch (usually master)" msgstr "インポートするブランチの名前。デフォルトではリポジトリーのデフォルトブランチ (通常は master) に設定されます。" -#: ../../rst/cli/ansible-galaxy.rst:709 +#: ../../rst/cli/ansible-galaxy.rst:712 msgid "Don't wait for import results." msgstr "インポートの結果を待ちません。" -#: ../../rst/cli/ansible-galaxy.rst:713 +#: ../../rst/cli/ansible-galaxy.rst:716 msgid "The name the role should have, if different than the repo name" msgstr "ロールに付与すべき名前 (リポジトリー名とは異なる場合)" -#: ../../rst/cli/ansible-galaxy.rst:717 +#: ../../rst/cli/ansible-galaxy.rst:720 msgid "Check the status of the most recent import request for given github_user/github_repo." msgstr "指定した github_user/github_repo の、最新のインポート要求ステータスを確認します。" -#: ../../rst/cli/ansible-galaxy.rst:744 +#: ../../rst/cli/ansible-galaxy.rst:747 msgid "role setup" msgstr "role setup" -#: ../../rst/cli/ansible-galaxy.rst:746 +#: ../../rst/cli/ansible-galaxy.rst:749 msgid "Setup an integration from Github or Travis for Ansible Galaxy roles" msgstr "Ansible Galaxy ロールの Github または Travis からの統合を設定します。" -#: ../../rst/cli/ansible-galaxy.rst:754 +#: ../../rst/cli/ansible-galaxy.rst:757 msgid "List all of your integrations." msgstr "すべての統合の一覧を表示します。" -#: ../../rst/cli/ansible-galaxy.rst:758 +#: ../../rst/cli/ansible-galaxy.rst:761 msgid "Remove the integration matching the provided ID value. Use --list to see ID values." msgstr "指定の ID 値に一致するインテグレーションを削除します。ID の値を表示するには --list を使用します。" -#: ../../rst/cli/ansible-galaxy.rst:789 +#: ../../rst/cli/ansible-galaxy.rst:792 msgid "role info" msgstr "role info" -#: ../../rst/cli/ansible-galaxy.rst:791 +#: ../../rst/cli/ansible-galaxy.rst:794 msgid "prints out detailed information about an installed role as well as info available from the galaxy API." msgstr "インストールされているロールに関する詳細情報と、galaxy API で利用可能な情報を出力します。" -#: ../../rst/cli/ansible-galaxy.rst:830 +#: ../../rst/cli/ansible-galaxy.rst:833 msgid "role install" msgstr "role install" -#: ../../rst/cli/ansible-galaxy.rst:840 +#: ../../rst/cli/ansible-galaxy.rst:843 msgid "Force overwriting an existing role and its dependencies." msgstr "既存のロールとその依存関係を強制的に上書きします。" -#: ../../rst/cli/ansible-galaxy.rst:860 +#: ../../rst/cli/ansible-galaxy.rst:863 msgid "Use tar instead of the scm archive option when packaging the role." msgstr "ロールをパッケージ化する際に、scm アーカイブオプションの代わりに tar を使用します。" -#: ../../rst/cli/ansible-galaxy.rst:864 +#: ../../rst/cli/ansible-galaxy.rst:867 msgid "Ignore errors and continue with the next specified role." msgstr "エラーを無視して、次に指定したロールで続行します。" -#: ../../rst/cli/ansible-galaxy.rst:868 +#: ../../rst/cli/ansible-galaxy.rst:871 msgid "Don't download roles listed as dependencies." msgstr "依存関係としてリストされているロールはダウンロードしないでください。" -#: ../../rst/cli/ansible-galaxy.rst:876 +#: ../../rst/cli/ansible-galaxy.rst:879 msgid "A file containing a list of roles to be installed." msgstr "インストールするロールの一覧を含むファイル。" @@ -965,44 +969,44 @@ msgstr "ansible-inventory" msgid ":strong:`None`" msgstr ":strong:`None`" -#: ../../rst/cli/ansible-inventory.rst:36 +#: ../../rst/cli/ansible-inventory.rst:37 msgid "used to display or dump the configured inventory as Ansible sees it" msgstr "Ansible が認識しているように、設定したインベントリーを表示またはダンプするために使用します。" -#: ../../rst/cli/ansible-inventory.rst:52 +#: ../../rst/cli/ansible-inventory.rst:53 msgid "When doing an --list, represent in a way that is optimized for export,not as an accurate representation of how Ansible has processed it" msgstr "--list を実行する場合は、Ansible が処理する方法を正確に示すのではなく、エクスポート用に最適化される方法を示します。" -#: ../../rst/cli/ansible-inventory.rst:57 +#: ../../rst/cli/ansible-inventory.rst:58 msgid "create inventory graph, if supplying pattern it must be a valid group name" msgstr "インベントリーグラフを作成します (パターンを指定している場合は、有効なグループ名である必要があります)。" -#: ../../rst/cli/ansible-inventory.rst:62 +#: ../../rst/cli/ansible-inventory.rst:63 msgid "Output specific host info, works as inventory script" msgstr "特定のホスト情報を出力します (インベントリースクリプトとして機能します)。" -#: ../../rst/cli/ansible-inventory.rst:67 +#: ../../rst/cli/ansible-inventory.rst:68 msgid "Output all hosts info, works as inventory script" msgstr "全ホスト情報出力します (インベントリースクリプトとして機能します)。" -#: ../../rst/cli/ansible-inventory.rst:72 -#: ../../rst/cli/ansible-inventory.rst:127 +#: ../../rst/cli/ansible-inventory.rst:73 +#: ../../rst/cli/ansible-inventory.rst:128 msgid "==SUPPRESS==" msgstr "==SUPPRESS==" -#: ../../rst/cli/ansible-inventory.rst:77 +#: ../../rst/cli/ansible-inventory.rst:78 msgid "When doing --list, send the inventory to a file instead of to the screen" msgstr "--list を実行する場合は、画面の代わりにインベントリーをファイルに送信します。" -#: ../../rst/cli/ansible-inventory.rst:87 +#: ../../rst/cli/ansible-inventory.rst:88 msgid "Use TOML format instead of default JSON, ignored for --graph" msgstr "デフォルトの JSON の代わりに TOML 形式を使用します (--graph では無視されます)。" -#: ../../rst/cli/ansible-inventory.rst:92 +#: ../../rst/cli/ansible-inventory.rst:93 msgid "Add vars to graph display, ignored unless used with --graph" msgstr "グラフ表示に変数を追加します。--graph と併用しない限り無視されます。" -#: ../../rst/cli/ansible-inventory.rst:137 +#: ../../rst/cli/ansible-inventory.rst:138 msgid "Use YAML format instead of default JSON, ignored for --graph" msgstr "デフォルトの JSON の代わりに YAML 形式を使用します。--graph は無視されます。" @@ -1014,35 +1018,35 @@ msgstr "ansible-playbook" msgid ":strong:`Runs Ansible playbooks, executing the defined tasks on the targeted hosts.`" msgstr ":strong:`ターゲットのホストで定義したタスクを実行して Ansible Playbook を実行します。`" -#: ../../rst/cli/ansible-playbook.rst:41 +#: ../../rst/cli/ansible-playbook.rst:42 msgid "the tool to run *Ansible playbooks*, which are a configuration and multinode deployment system. See the project home page (https://docs.ansible.com) for more information." msgstr "設定およびマルチノードのデプロイメントシステムである *Ansible Playbook* を実行するツール。詳細はプロジェクトのホームページ (https://docs.ansible.com) を参照してください。" -#: ../../rst/cli/ansible-playbook.rst:78 +#: ../../rst/cli/ansible-playbook.rst:79 msgid "clear the fact cache for every host in inventory" msgstr "インベントリー内のすべてのホストのファクトキャッシュを消去します。" -#: ../../rst/cli/ansible-playbook.rst:83 +#: ../../rst/cli/ansible-playbook.rst:84 msgid "run handlers even if a task fails" msgstr "タスクが失敗してもハンドラーを実行します。" -#: ../../rst/cli/ansible-playbook.rst:93 +#: ../../rst/cli/ansible-playbook.rst:94 msgid "list all available tags" msgstr "利用可能なタグをすべて表示します。" -#: ../../rst/cli/ansible-playbook.rst:98 +#: ../../rst/cli/ansible-playbook.rst:99 msgid "list all tasks that would be executed" msgstr "実行するタスクをすべて表示します。" -#: ../../rst/cli/ansible-playbook.rst:118 ../../rst/cli/ansible-pull.rst:124 +#: ../../rst/cli/ansible-playbook.rst:119 ../../rst/cli/ansible-pull.rst:128 msgid "only run plays and tasks whose tags do not match these values" msgstr "タグがこれらの値と一致しないプレイとタスクのみを実行します。" -#: ../../rst/cli/ansible-playbook.rst:133 +#: ../../rst/cli/ansible-playbook.rst:134 msgid "start the playbook at the task matching this name" msgstr "この名前に一致するタスクで Playbook を開始します。" -#: ../../rst/cli/ansible-playbook.rst:228 ../../rst/cli/ansible-pull.rst:244 +#: ../../rst/cli/ansible-playbook.rst:229 ../../rst/cli/ansible-pull.rst:248 msgid "only run plays and tasks tagged with these values" msgstr "それらの値でタグ付けされたプレイとタスクのみを実行します。" @@ -1054,63 +1058,67 @@ msgstr "ansible-pull" msgid ":strong:`pulls playbooks from a VCS repo and executes them for the local host`" msgstr ":strong:`VCS リポジトリーから Playbooks を取得し、ローカルホストで実行します。`" -#: ../../rst/cli/ansible-pull.rst:40 +#: ../../rst/cli/ansible-pull.rst:41 msgid "Used to pull a remote copy of ansible on each managed node, each set to run via cron and update playbook source via a source repository. This inverts the default *push* architecture of ansible into a *pull* architecture, which has near-limitless scaling potential." msgstr "各管理対象ノードで ansible のリモートコピーを取得するのに使用されます。各セットは cron を介して実行され、ソースリポジトリーを介して Playbook ソースを更新します。これにより、ansible のデフォルトの *push* アーキテクチャーが *pull* アーキテクチャーに反転します。これには、スケーリングの可能性がほぼ無限あります。" -#: ../../rst/cli/ansible-pull.rst:45 +#: ../../rst/cli/ansible-pull.rst:46 +msgid "None of the CLI tools are designed to run concurrently with themselves, you should use an external scheduler and/or locking to ensure there are no clashing operations." +msgstr "どの CLI ツールも同時に実行するようには設計されていません。外部スケジューラーやロックを使用して、操作が競合しないようにする必要があります。" + +#: ../../rst/cli/ansible-pull.rst:49 msgid "The setup playbook can be tuned to change the cron frequency, logging locations, and parameters to ansible-pull. This is useful both for extreme scale-out as well as periodic remediation. Usage of the 'fetch' module to retrieve logs from ansible-pull runs would be an excellent way to gather and analyze remote logs from ansible-pull." msgstr "セットアップ Playbook は、cron 頻度、ロギングの場所、およびパラメーターを ansible-pull に変更します。これは、急なスケールアウトと定期的な修復にも便利です。ansible-pull からログを取得するために「fetch」モジュールを使用することは、ansible-pull からログを収集し、分析するための優れた方法です。" -#: ../../rst/cli/ansible-pull.rst:59 +#: ../../rst/cli/ansible-pull.rst:63 msgid "adds the hostkey for the repo url if not already added" msgstr "リポジトリー URL のホストキーが追加されていない場合はホストキーを追加します。" -#: ../../rst/cli/ansible-pull.rst:79 +#: ../../rst/cli/ansible-pull.rst:83 msgid "modified files in the working repository will be discarded" msgstr "作業リポジトリー内の変更されたファイルは破棄されます。" -#: ../../rst/cli/ansible-pull.rst:94 +#: ../../rst/cli/ansible-pull.rst:98 msgid "Do a full clone, instead of a shallow one." msgstr "簡易クローンではなく、完全なクローンを実行します。" -#: ../../rst/cli/ansible-pull.rst:109 +#: ../../rst/cli/ansible-pull.rst:113 msgid "purge checkout after playbook run" msgstr "Playbook の実行後にチェックアウトをパージします。" -#: ../../rst/cli/ansible-pull.rst:139 +#: ../../rst/cli/ansible-pull.rst:143 msgid "submodules will track the latest changes. This is equivalent to specifying the --remote flag to git submodule update" msgstr "サブモジュールでは最新の変更を追跡します。これは、--remote フラグを git サブモジュール更新に指定するのと同じです。" -#: ../../rst/cli/ansible-pull.rst:154 +#: ../../rst/cli/ansible-pull.rst:158 msgid "verify GPG signature of checked out commit, if it fails abort running the playbook. This needs the corresponding VCS module to support such an operation" msgstr "チェックアウトしたコミットの GPG 署名を確認します。Playbook の実行を中断できない場合に、このような操作をサポートするには、対応する VCS モジュールが必要になります。" -#: ../../rst/cli/ansible-pull.rst:164 +#: ../../rst/cli/ansible-pull.rst:168 msgid "branch/tag/commit to checkout. Defaults to behavior of repository module." msgstr "チェックアウトするブランチ、タグ、またはコミット。デフォルトは、リポジトリーモジュールの動作です。" -#: ../../rst/cli/ansible-pull.rst:184 +#: ../../rst/cli/ansible-pull.rst:188 msgid "URL of the playbook repository" msgstr "Playbook リポジトリーの URL" -#: ../../rst/cli/ansible-pull.rst:194 +#: ../../rst/cli/ansible-pull.rst:198 msgid "absolute path of repository checkout directory (relative paths are not supported)" msgstr "リポジトリーチェックアウトディレクトリーの絶対パス (相対パスはサポートされません)" -#: ../../rst/cli/ansible-pull.rst:204 +#: ../../rst/cli/ansible-pull.rst:208 msgid "run the playbook even if the repository could not be updated" msgstr "リポジトリーを更新できなかった場合でも、Playbook を実行します。" -#: ../../rst/cli/ansible-pull.rst:229 +#: ../../rst/cli/ansible-pull.rst:233 msgid "Repository module name, which ansible will use to check out the repo. Choices are ('git', 'subversion', 'hg', 'bzr'). Default is git." msgstr "Ansible がリポジトリーをチェックアウトするのに使用するリポジトリーモジュール名 (「git」、「subversion」、「hg」、「bzr」)。デフォルトは git です。" -#: ../../rst/cli/ansible-pull.rst:234 +#: ../../rst/cli/ansible-pull.rst:238 msgid "only run the playbook if the repository has been updated" msgstr "リポジトリーが更新されている場合にのみ Playbook を実行します。" -#: ../../rst/cli/ansible-pull.rst:239 +#: ../../rst/cli/ansible-pull.rst:243 msgid "sleep for random interval (between 0 and n number of seconds) before starting. This is a useful way to disperse git requests" msgstr "開始前のランダムな間隔 (0 ~ n 秒間) をスリープ状態にします。これは、git 要求を分散させるための便利な方法です。" @@ -1159,7 +1167,7 @@ msgstr "暗号化用または復号用の出力ファイル名。標準出力 (s #: ../../rst/cli/ansible-vault.rst:145 msgid "edit" -msgstr "edit" +msgstr "編集" #: ../../rst/cli/ansible-vault.rst:147 msgid "open and decrypt an existing vaulted file in an editor, that will be encrypted again when closed" @@ -1232,4 +1240,7 @@ msgstr "rekey の新しい Vault パスワードファイル" #~ msgid "directory to checkout repository to" #~ msgstr "リポジトリーをチェックアウトするディレクトリー" +#~ msgid "command to manage Ansible roles in shared repositories, the default of which is Ansible Galaxy *https://galaxy.ansible.com*." +#~ msgstr "共有リポジトリーの Ansible ロールを管理するコマンド (デフォルトは Ansible Galaxy *https://galaxy.ansible.com* です)。" + diff --git a/docs/docsite/rst/locales/ja/LC_MESSAGES/collections_guide.po b/docs/docsite/rst/locales/ja/LC_MESSAGES/collections_guide.po index 976a06c8..7065afab 100644 --- a/docs/docsite/rst/locales/ja/LC_MESSAGES/collections_guide.po +++ b/docs/docsite/rst/locales/ja/LC_MESSAGES/collections_guide.po @@ -7,14 +7,14 @@ msgid "" msgstr "" "Project-Id-Version: Ansible devel\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-10-05 09:34+0200\n" +"POT-Creation-Date: 2023-03-01 20:16+0100\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.8.1\n" +"Generated-By: Babel 2.9.0\n" #: ../../rst/collections_guide/collections_downloading.rst:4 msgid "Downloading collections" @@ -296,15 +296,15 @@ msgstr "``type: git`` でコレクションをインストールする場合、` msgid "You can also add roles to a ``requirements.yml`` file, under the ``roles`` key. The values follow the same format as a requirements file used in older Ansible releases." msgstr "``roles``キーの下にある``requirements.yml``ファイルにロールを追加することもできます。この値は、古い Ansible リリースで使用される要件ファイルと同じ形式に従います。" -#: ../../rst/shared_snippets/installing_multiple_collections.txt:67 +#: ../../rst/shared_snippets/installing_multiple_collections.txt:68 msgid "To install both roles and collections at the same time with one command, run the following:" msgstr "1 つのコマンドで、ロールとコレクションを同時にインストールするには、以下のコマンドを実行します。" -#: ../../rst/shared_snippets/installing_multiple_collections.txt:73 +#: ../../rst/shared_snippets/installing_multiple_collections.txt:74 msgid "Running ``ansible-galaxy collection install -r`` or ``ansible-galaxy role install -r`` will only install collections, or roles respectively." msgstr "``ansible-galaxy collection install -r`` または ``ansible-galaxy role install -r`` を実行すると、それぞれコレクションまたはロールがインストールされます。" -#: ../../rst/shared_snippets/installing_multiple_collections.txt:76 +#: ../../rst/shared_snippets/installing_multiple_collections.txt:77 msgid "Installing both roles and collections from the same requirements file will not work when specifying a custom collection or role install path. In this scenario the collections will be skipped and the command will process each like ``ansible-galaxy role install`` would." msgstr "カスタムコレクションまたはロールインストールパスを指定する場合、同じ要件ファイルからロールとコレクションの両方をインストールすることはできません。今回の例では、コレクションは省略され、コマンドは ``ansible-galaxy role install`` のように処理されます。" @@ -628,6 +628,10 @@ msgstr "これは、ロールと同様に、``my_namespace.my_collection`` の ` msgid "Playbook names, like other collection resources, have a restricted set of valid characters. Names can contain only lowercase alphanumeric characters, plus _ and must start with an alpha character. The dash ``-`` character is not valid for playbook names in collections. Playbooks whose names contain invalid characters are not addressable: this is a limitation of the Python importer that is used to load collection resources." msgstr "他のコレクションリソースなどの Playbook 名では、有効な文字のセットが制限されています。名前には、小文字の英数字と _ のみを含めることができ、アルファベット記号で開始する必要があります。ダッシュ ``-`` は、コレクション内の Playbook 名には有効ではありません。名前に無効な文字が含まれるPlaybookにアドレスを指定することはできません。これは、コレクションリソースの読み込みに使用される Python インポーターの制限です。" +#: ../../rst/collections_guide/collections_using_playbooks.rst:119 +msgid "Playbooks in collections do not support 'adjacent' plugins, all plugins must be in the collection specific directories." +msgstr "コレクション内の Playbook は「隣接する」プラグインをサポートしません。すべてのプラグインはコレクション固有のディレクトリーにある必要があります。" + #: ../../rst/collections_guide/collections_verifying.rst:4 msgid "Verifying collections" msgstr "コレクションの検証" diff --git a/docs/docsite/rst/locales/ja/LC_MESSAGES/command_guide.po b/docs/docsite/rst/locales/ja/LC_MESSAGES/command_guide.po index 8ce33709..58ce627c 100644 --- a/docs/docsite/rst/locales/ja/LC_MESSAGES/command_guide.po +++ b/docs/docsite/rst/locales/ja/LC_MESSAGES/command_guide.po @@ -7,14 +7,14 @@ msgid "" msgstr "" "Project-Id-Version: Ansible devel\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-10-05 09:34+0200\n" +"POT-Creation-Date: 2023-03-01 20:16+0100\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.8.1\n" +"Generated-By: Babel 2.9.0\n" #: ../../rst/command_guide/cheatsheet.rst:5 msgid "Ansible CLI cheatsheet" @@ -80,6 +80,10 @@ msgstr "コマンドラインツールの使用" msgid "Most users are familiar with `ansible` and `ansible-playbook`, but those are not the only utilities Ansible provides. Below is a complete list of Ansible utilities. Each page contains a description of the utility and a listing of supported parameters." msgstr "ほとんどのユーザーは、`ansible` および `ansible-playbook` に精通していますが、これらは、Ansible が提供する唯一のユーティリティーではありません。以下は、Ansible ユーティリティーの完全なリストです。各ページには、ユーティリティーの説明と、サポートされるパラメーター一覧が含まれています。" +#: ../../rst/command_guide/command_line_tools.rst:10 +msgid "You should not run most Ansible CLI tools in parallel against the same targets." +msgstr "ほとんどの Ansible CLI ツールを同じターゲットに対して並行して実行しないでください。" + #: ../../rst/command_guide/index.rst:5 msgid "Using Ansible command line tools" msgstr "Ansible コマンドラインツールの使用" diff --git a/docs/docsite/rst/locales/ja/LC_MESSAGES/community.po b/docs/docsite/rst/locales/ja/LC_MESSAGES/community.po index 0e3044f2..f634ad2b 100644 --- a/docs/docsite/rst/locales/ja/LC_MESSAGES/community.po +++ b/docs/docsite/rst/locales/ja/LC_MESSAGES/community.po @@ -7,14 +7,14 @@ msgid "" msgstr "" "Project-Id-Version: Ansible devel\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-10-05 09:34+0200\n" +"POT-Creation-Date: 2023-03-01 20:16+0100\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.8.1\n" +"Generated-By: Babel 2.9.0\n" #: ../../rst/community/advanced_index.rst:5 msgid "Advanced Contributor Guide" @@ -376,38 +376,38 @@ msgid "If the module changes the system state, check the actual system state usi msgstr "モジュールがシステム状態を変更した場合は、少なくとも 1 つの他のモジュールを使用して実際のシステム状態を確認します。たとえば、モジュールがファイルを変更した場合は、テストタスクの前後に :ref:`stat ` モジュールでチェックサムをチェックし、ファイルが変更されたことを確認できます。" #: ../../rst/community/collection_contributors/collection_integration_about.rst:131 -msgid "Run the same task with ``check_mode: yes`` if check-mode is supported by the module. Check with other modules that the actual system state has not been changed." -msgstr "check-mode がモジュールでサポートされている場合は、``check_mode: yes`` で同じタスクを実行します。実際のシステム状態が変更されていないことを他のモジュールで確認してください。" +msgid "Run the same task with ``check_mode: true`` if check-mode is supported by the module. Check with other modules that the actual system state has not been changed." +msgstr "check-mode がモジュールでサポートされている場合は、``check_mode: true`` で同じタスクを実行します。実際のシステム状態が変更されていないことを他のモジュールで確認してください。" #: ../../rst/community/collection_contributors/collection_integration_about.rst:132 -msgid "Cover cases when the module must fail. Use the ``ignore_errors: yes`` option and check the returned message with the ``assert`` module." -msgstr "モジュールが失敗しなければならないケースをカバーします。``ignore_errors: yes`` オプションを使用して、``assert`` モジュールで返されたメッセージを確認します。" +msgid "Cover cases when the module must fail. Use the ``ignore_errors: true`` option and check the returned message with the ``assert`` module." +msgstr "モジュールが失敗しなければならないケースをカバーします。``ignore_errors: true`` オプションを使用して、``assert`` モジュールで返されたメッセージを確認します。" #: ../../rst/community/collection_contributors/collection_integration_about.rst:134 msgid "Example:" msgstr "例:" -#: ../../rst/community/collection_contributors/collection_integration_about.rst:150 +#: ../../rst/community/collection_contributors/collection_integration_about.rst:149 msgid "Here is a summary:" msgstr "以下は要約です。" -#: ../../rst/community/collection_contributors/collection_integration_about.rst:152 +#: ../../rst/community/collection_contributors/collection_integration_about.rst:151 msgid "Cover options and their sensible combinations." msgstr "オプションとその適切な組み合わせをカバーします。" -#: ../../rst/community/collection_contributors/collection_integration_about.rst:153 +#: ../../rst/community/collection_contributors/collection_integration_about.rst:152 msgid "Check returned values." msgstr "戻り値を確認します。" -#: ../../rst/community/collection_contributors/collection_integration_about.rst:154 +#: ../../rst/community/collection_contributors/collection_integration_about.rst:153 msgid "Cover check-mode if supported." msgstr "サポートされている場合は check-mode をカバーします。" -#: ../../rst/community/collection_contributors/collection_integration_about.rst:155 +#: ../../rst/community/collection_contributors/collection_integration_about.rst:154 msgid "Check a system state using other modules." msgstr "他のモジュールを使用してシステムの状態を確認します。" -#: ../../rst/community/collection_contributors/collection_integration_about.rst:156 +#: ../../rst/community/collection_contributors/collection_integration_about.rst:155 msgid "Check when a module must fail and error messages." msgstr "モジュールに障害が発生するタイミングとエラーメッセージを確認します。" @@ -420,8 +420,8 @@ msgid "This section covers the following cases:" msgstr "このセクションでは、以下をカバーします。" #: ../../rst/community/collection_contributors/collection_integration_add.rst:8 -msgid "There are no integration tests for a collection / group of modules in a collection at all." -msgstr "コレクション内のモジュールのコレクション/グループの統合テストはいっさいありません。" +msgid "There are no integration tests for a collection or group of modules in a collection at all." +msgstr "コレクションやコレクション内のモジュールのグループに対する統合テストはいっさいありません。" #: ../../rst/community/collection_contributors/collection_integration_add.rst:9 msgid "You are adding a new module and you want to include integration tests." @@ -474,7 +474,7 @@ msgstr "モジュールの統合テストを追加します。" #: ../../rst/community/collection_contributors/collection_integration_add.rst:30 #: ../../rst/community/collection_contributors/collection_integration_updating.rst:84 msgid ":ref:`Run the tests`." -msgstr ":ref:`テストを実行します`。" +msgstr ":ref:`Run the tests`。" #: ../../rst/community/collection_contributors/collection_integration_add.rst:31 msgid "Fix the code and tests as needed, run the tests again, and repeat the cycle until they pass." @@ -489,8 +489,8 @@ msgid "Clone the collection to the ``~/ansible_collections/community.abstract`` msgstr "コレクションをローカルマシンの ``~/ansible_collections/community.abstract`` ディレクトリーにクローンします。" #: ../../rst/community/collection_contributors/collection_integration_add.rst:39 -msgid "From the ``~/ansble_collections/community.abstract`` directory, create directories for the ``setup`` target:" -msgstr "``~/ansble_collections/community.abstract`` ディレクトリーから、``setup`` ターゲットのディレクトリーを作成します。" +msgid "From the ``~/ansible_collections/community.abstract`` directory, create directories for the ``setup`` target:" +msgstr "``~/ansible_collections/community.abstract`` ディレクトリーから、``setup`` ターゲットのディレクトリーを作成します。" #: ../../rst/community/collection_contributors/collection_integration_add.rst:45 msgid "Write all the tasks needed to prepare the environment, install, and run the service." @@ -513,8 +513,8 @@ msgid "Add the target for the module you are testing." msgstr "テストしているモジュールのターゲットを追加します。" #: ../../rst/community/collection_contributors/collection_integration_add.rst:66 -msgid "Let's say the module is called ``abstact_service_info``. Create the following directory structure in the target:" -msgstr "モジュールが ``abstact_service_info`` と呼ばれるとします。ターゲットに以下のディレクトリー構造を作成します。" +msgid "Let's say the module is called ``abstract_service_info``. Create the following directory structure in the target:" +msgstr "モジュールが ``abstract_service_info`` と呼ばれるとします。ターゲットに以下のディレクトリー構造を作成します。" #: ../../rst/community/collection_contributors/collection_integration_add.rst:73 msgid "Add all of the needed subdirectories. For example, if you are going to use defaults and files, add the ``defaults`` and ``files`` directories, and so on. The approach is the same as when you are creating a role." @@ -549,7 +549,7 @@ msgid "If there are any issues with connectivity (for example, the service is no msgstr "接続に問題がある (たとえば、サービスが接続を許可しないなど) 場合や、コードに問題がある場合には、プレイは失敗します。" #: ../../rst/community/collection_contributors/collection_integration_add.rst:107 -msgid "Examine the output to see at which step the failure occurred. Investigate the reason, fix, and run again. Repeat the cycle until the test passes." +msgid "Examine the output to see at which step the failure occurred. Investigate the reason, fix it, and run again. Repeat the cycle until the test passes." msgstr "出力を調べて、障害が発生したステップを確認します。理由を調べて修正し、再実行してください。テストに合格するまでこのサイクルを繰り返します。" #: ../../rst/community/collection_contributors/collection_integration_add.rst:109 @@ -633,7 +633,7 @@ msgid "Then, create the following directories for the ``postgresql_info`` target msgstr "続いて、``postgresql_info`` ターゲットに以下のディレクトリーを作成します。" #: ../../rst/community/collection_contributors/collection_integration_add.rst:204 -msgid "To make the ``setup_postgresql_db`` target running before the ``postgresql_info`` target as a dependency, create the ``tests/integration/targets/postgresql_info/meta/main.yml`` file and add the following code to it:" +msgid "To make the ``setup_postgresql_db`` target run before the ``postgresql_info`` target as a dependency, create the ``tests/integration/targets/postgresql_info/meta/main.yml`` file and add the following code to it:" msgstr "``setup_postgresql_db`` ターゲットを依存関係として ``postgresql_info`` ターゲットの前に実行するには、``tests/integration/targets/postgresql_info/meta/main.yml`` ファイルを作成し、以下のコードを追加します。" #: ../../rst/community/collection_contributors/collection_integration_add.rst:211 @@ -657,16 +657,16 @@ msgid "The tests should pass. If we look at the output, we should see something msgstr "テストは合格するはずです。出力を見ると、次のようになっているはずです。" #: ../../rst/community/collection_contributors/collection_integration_add.rst:250 -msgid "If your tests fail when you are working on your project, examine the output to see at which step the failure occurred. Investigate the reason, fix, and run again. Repeat the cycle until the test passes. If the test succeeds, write more tests. Refer to the :ref:`Recommendations on coverage` section for details." -msgstr "プロジェクトで作業中にテストに失敗した場合は、出力を調べて、障害が発生したステップを確認します。理由を調べて修正し、再実行してください。テストに合格するまでこのサイクルを繰り返します。テストに合格したら、さらにテストを作成してください。詳細は、:ref:`カバレージに関する推奨事項` セクションを参照してください。" +msgid "If your tests fail when you are working on your project, examine the output to see at which step the failure occurred. Investigate the reason, fix it, and run again. Repeat the cycle until the test passes. If the test succeeds, write more tests. Refer to the :ref:`Recommendations on coverage` section for details." +msgstr "プロジェクトで作業中にテストに失敗した場合は、出力を調べて、障害が発生したステップを確認します。理由を調べて修正し、再実行してください。テストに合格するまでこのサイクルを繰り返します。テストに合格したら、さらにテストを作成してください。詳細は、:ref:`Recommendations on coverage` セクションを参照してください。" #: ../../rst/community/collection_contributors/collection_integration_running.rst:4 msgid "Running integration tests" msgstr "統合テストの実行" #: ../../rst/community/collection_contributors/collection_integration_running.rst:6 -msgid "In the following examples, we will use ``Docker`` to run integration tests locally. Ensure you have :ref:`collection_prepare_environment` first." -msgstr "以下の例では、``Docker`` を使用して、ローカルで統合テストを実行します。最初に :ref:`collection_prepare_environment` があることを確認してください。" +msgid "In the following examples, we will use ``Docker`` to run integration tests locally. Ensure you :ref:`collection_prepare_environment` first." +msgstr "以下の例では、``Docker`` を使用して、ローカルで統合テストを実行します。最初に :ref:`collection_prepare_environment` を確認してください。" #: ../../rst/community/collection_contributors/collection_integration_running.rst:8 msgid "We assume that you are in the ``~/ansible_collections/NAMESPACE/COLLECTION`` directory." @@ -681,6 +681,7 @@ msgid "The ``target_name`` is a test role directory containing the tests. For ex msgstr "``target_name`` は、テストを含むテストロールディレクトリーです。たとえば、変更したテストファイルが ``tests/integration/targets/postgresql_info/`` ディレクトリーに保存され、``fedora34`` コンテナーイメージを使用する場合、コマンドは以下のようになります。" #: ../../rst/community/collection_contributors/collection_integration_running.rst:22 +#: ../../rst/community/create_pr_quick_start.rst:130 #: ../../rst/community/create_pr_quick_start.rst:191 msgid "You can use the ``-vv`` or ``-vvv`` argument if you need more detailed output." msgstr "より詳細な出力が必要な場合は、``-vv`` 引数または ``-vvv`` 引数を使用できます。" @@ -694,7 +695,7 @@ msgid "See the :ref:`list of supported container images ` msgstr ":ref:`サポート対象のコンテナーイメージの一覧` を参照してください。" #: ../../rst/community/collection_contributors/collection_integration_running.rst:28 -msgid "In some cases, for example, for platform independent tests, the ``default`` test image is required. Use the ``--docker default`` or just ``--docker`` option without specifying a distribution in this case." +msgid "In some cases, for example, for platform-independent tests, the ``default`` test image is required. Use the ``--docker default`` or just ``--docker`` option without specifying a distribution in this case." msgstr "場合によっては、たとえば、プラットフォームに依存しないテストでは、``default`` テストイメージが必要になります。今回の場合は、ディストリビューションを指定せずに、``--docker default`` オプションまたは単に ``--docker`` オプションを使用してください。" #: ../../rst/community/collection_contributors/collection_integration_running.rst:32 @@ -794,7 +795,7 @@ msgid "The test tasks are stored in the ``tests/integration/targets//tasks`` ディレクトリーに保存されています。" #: ../../rst/community/collection_contributors/collection_integration_updating.rst:8 -msgid "The ``main.yml`` file holds test tasks and includes other test files. Look for a suitable test file to integrate your tests or create and include / import a separate test file. You can use one of the existing test files as a draft." +msgid "The ``main.yml`` file holds test tasks and includes other test files. Look for a suitable test file to integrate your tests or create and include or import a separate test file. You can use one of the existing test files as a draft." msgstr "``main.yml`` ファイルは、テストタスクを保持し、他のテストファイルを含みます。テストの統合に適切なテストファイルを探すか、別のテストファイルを作成し、追加またはインポートします。既存のテストファイルの 1 つをドラフトとして使用することができます。" #: ../../rst/community/collection_contributors/collection_integration_updating.rst:13 @@ -810,7 +811,7 @@ msgid ":ref:`Determine if integration tests for the module exist`. 存在しない場合は、:ref:`collection_creating_integration_tests` セクションを参照してください。" #: ../../rst/community/collection_contributors/collection_integration_updating.rst:18 -msgid "Add a task which reproduces the bug to an appropriate file within the ``tests/integration/targets//tasks`` directory." +msgid "Add a task that reproduces the bug to an appropriate file within the ``tests/integration/targets//tasks`` directory." msgstr "``tests/integration/targets//tasks`` ディレクトリー内の適切なファイルに、バグを再現するタスクを追加します。" #: ../../rst/community/collection_contributors/collection_integration_updating.rst:19 @@ -818,8 +819,8 @@ msgid ":ref:`Run the tests`. The newly added t msgstr ":ref:`テストを実行します`。新しく追加されたタスクは失敗するはずです。" #: ../../rst/community/collection_contributors/collection_integration_updating.rst:20 -msgid "If they do not fail, re-check if your environment / test task satisfies the conditions described in the ``Steps to Reproduce`` section of the issue." -msgstr "失敗しない場合は、お使いの環境 / テストタスクが問題の ``問題の再現手順`` セクションで説明されている条件を満たしているかどうかを再確認してください。" +msgid "If they do not fail, re-check if your environment or test task satisfies the conditions described in the ``Steps to Reproduce`` section of the issue." +msgstr "失敗しない場合は、お使いの環境またはテストタスクが問題の ``Steps to Reproduce`` セクションで説明されている条件を満たしているかどうかを再確認してください。" #: ../../rst/community/collection_contributors/collection_integration_updating.rst:21 msgid "If you reproduce the bug and tests fail, change the code." @@ -876,8 +877,8 @@ msgid "The process described in this section also applies when you want to add i msgstr "このセクションで説明するプロセスは、既存の機能に統合テストを追加したいが、統合テストがない場合にも適用されます。" #: ../../rst/community/collection_contributors/collection_integration_updating.rst:77 -msgid "If you have not already implemented the new feature, you can start with writing the integration tests for it. Of course they will not work as the code does not yet exist, but it can help you improve your implementation design before you start writing any code." -msgstr "新しい機能をまだ実装していない場合は、それ用の統合テストを作成することから開始することができます。当然、コードがまだ存在していないため、これらは機能しませんが、コードを書き始める前に、実装設計を改善する上で役立ちます。" +msgid "If you have not already implemented the new feature, you can start by writing the integration tests for it. They will not work as the code does not yet exist, but they can help you improve your implementation design before you start writing any code." +msgstr "新しい機能をまだ実装していない場合は、それ用の統合テストを作成することから開始することができます。コードがまだ存在していないため、これらは機能しませんが、コードを書き始める前に、実装設計を改善する上で役立ちます。" #: ../../rst/community/collection_contributors/collection_integration_updating.rst:79 msgid "When adding new features, the process of adding tests consists of the following steps:" @@ -919,17 +920,17 @@ msgstr "コレクションリポジトリーを ``~/ansible_collections/communit msgid "First, we look at the ``tests/integration/targets//tasks/main.yml`` file. In this particular case, the file imports other files from the ``tasks`` directory. The ``postgresql_user_general.yml`` file looks like an appropriate one to add our tests." msgstr "まず、``tests/integration/targets//tasks/main.yml`` ファイルを見てみましょう。この特定の例では、ファイルは ``tasks`` ディレクトリーから他のファイルをインポートします。``postgresql_user_general.yml`` ファイルは、テストを追加するのに適したファイルのようです。" -#: ../../rst/community/collection_contributors/collection_integration_updating.rst:152 +#: ../../rst/community/collection_contributors/collection_integration_updating.rst:150 msgid "Then we :ref:`run the tests` with ``postgresql_user`` passed as a test target." msgstr "次に、テストターゲットとして渡された ``postgresql_user`` で :ref:`テストを実行します`。" -#: ../../rst/community/collection_contributors/collection_integration_updating.rst:154 +#: ../../rst/community/collection_contributors/collection_integration_updating.rst:152 msgid "In reality, we would alternate the tasks above with the same tasks run with the ``check_mode: yes`` option to be sure our option works as expected in check-mode as well. See :ref:`Recommendations on coverage` for details." msgstr "実際には、上記のタスクと ``check_mode: yes`` オプションで実行する同じタスクを交互に実行し、チェックモードでもこのオプションが期待通りに動作することを確認します。。詳細は、:ref:`カバレージに関する推奨事項` を参照してください。" -#: ../../rst/community/collection_contributors/collection_integration_updating.rst:156 -msgid "If we expect a task to fail, we use the ``ignore_errors: yes`` option and check that the task actually failed and returned the message we expect:" -msgstr "タスクが失敗することが予想される場合は、``ignore_errors: yes`` オプションを使用して、タスクが実際に失敗し、予想されるメッセージを返すことを確認します。" +#: ../../rst/community/collection_contributors/collection_integration_updating.rst:154 +msgid "If we expect a task to fail, we use the ``ignore_errors: true`` option and check that the task actually failed and returned the message we expect:" +msgstr "タスクが失敗することが予想される場合は、``ignore_errors: true`` オプションを使用して、タスクが実際に失敗し、予想されるメッセージを返すことを確認します。" #: ../../rst/community/collection_contributors/collection_release_with_branches.rst:4 msgid "Releasing collections with release branches" @@ -961,300 +962,319 @@ msgid "The new version is assumed to be ``X.0.0``." msgstr "新規バージョンは ``X.0.0`` であると想定されます。" #: ../../rst/community/collection_contributors/collection_release_with_branches.rst:25 -msgid "If you are going to release the ``community.general`` and ``community.network`` collections, create new ``backport-X`` and ``needs_backport_to_stable_X`` labels in the corresponding repositories. Copy the styles and descriptions from the corresponding existing labels." -msgstr "``community.general`` および ``community.network`` コレクションをリリースする場合は、対応するリポジトリーに新しい ``backport-X`` および ``needs_backport_to_stable_X`` ラベルを作成します。対応する既存ラベルからスタイルおよび説明をコピーします。" +msgid "Make sure that ``galaxy.yml`` contains the correct version number ``X.0.0``. If that is not the case, create a PR to update it. This will make sanity tests fail for all deprecations that have to be removed in ``X.0.0``, so this is potentially a lot of work and should have been done weeks before the major release." +msgstr "``galaxy.yml`` には、正しいバージョン番号 ``X.0.0`` が含まれるようにしてください。正しくない場合には、PR を作成して更新してください。これにより、``X.0.0`` で削除する必要のある非推奨アイテムすべてにおいて、サニティーテストで Fail となります。そのため、作業量が多くなる可能性があり、メジャーリリースの数週間前に実行する必要があります。" #: ../../rst/community/collection_contributors/collection_release_with_branches.rst:27 +msgid "Check the collection for deprecations that are planned for removal in the major release that were not reported by the sanity tests. Use past changelogs or run ``grep -r `X.0.0` plugins/`` in the repository." +msgstr "サニティーテストでレポートされず、またメジャーリリースで削除が予定されている、非推奨アイテムのコレクションを確認します。過去の変更ログを使用するか、レポジトリーで `grep -r `X.0.0` plugins/` を実行します。" + +#: ../../rst/community/collection_contributors/collection_release_with_branches.rst:29 +msgid "If you are going to release the ``community.general`` and ``community.network`` collections, create a new ``backport-X`` label in the corresponding repositories. Copy the styles and descriptions from the corresponding existing labels." +msgstr "``community.general`` および ``community.network`` コレクションをリリースする場合は、対応するリポジトリーに新しい ``backport-X`` ラベルを作成します。対応する既存ラベルからスタイルおよび説明をコピーします。" + +#: ../../rst/community/collection_contributors/collection_release_with_branches.rst:31 msgid "Ensure you are in a default branch in your local fork. These examples use ``main``." msgstr "ローカルフォークのデフォルトのブランチにいることを確認してください。これらの例では、``main`` を使用します。" -#: ../../rst/community/collection_contributors/collection_release_with_branches.rst:35 +#: ../../rst/community/collection_contributors/collection_release_with_branches.rst:39 #: ../../rst/community/collection_contributors/collection_release_without_branches.rst:32 msgid "Update your local fork:" msgstr "ローカルのフォークを更新します。" -#: ../../rst/community/collection_contributors/collection_release_with_branches.rst:43 +#: ../../rst/community/collection_contributors/collection_release_with_branches.rst:47 #: ../../rst/community/collection_contributors/collection_release_without_branches.rst:22 msgid "Creating the release branch" msgstr "リリースブランチの作成" -#: ../../rst/community/collection_contributors/collection_release_with_branches.rst:45 +#: ../../rst/community/collection_contributors/collection_release_with_branches.rst:49 msgid "Create a branch ``stable-X``. Replace ``X`` with a correct number and push it to the **upstream** repository, NOT to the ``origin``.:" msgstr "ブランチ ``stable-X`` を作成します。``X`` を正しい番号に置き換え、``origin`` ではなく **upstream** リポジトリーにプッシュします。" -#: ../../rst/community/collection_contributors/collection_release_with_branches.rst:53 +#: ../../rst/community/collection_contributors/collection_release_with_branches.rst:57 msgid "Create and checkout to another branch from the ``main`` branch:" msgstr "``main`` ブランチから別のブランチを作成し、チェックアウトします。" -#: ../../rst/community/collection_contributors/collection_release_with_branches.rst:60 +#: ../../rst/community/collection_contributors/collection_release_with_branches.rst:64 msgid "Update the version in ``galaxy.yml`` in the branch to the next **expected** version, for example, ``X.1.0``." msgstr "ブランチの ``galaxy.yml`` のバージョンを、次に **想定される** バージョンに更新します (例: ``X.1.0``)。" -#: ../../rst/community/collection_contributors/collection_release_with_branches.rst:64 -#: ../../rst/community/collection_contributors/collection_release_with_branches.rst:144 +#: ../../rst/community/collection_contributors/collection_release_with_branches.rst:68 +#: ../../rst/community/collection_contributors/collection_release_with_branches.rst:166 msgid "Creating the changelogs" msgstr "changelog の作成" -#: ../../rst/community/collection_contributors/collection_release_with_branches.rst:66 +#: ../../rst/community/collection_contributors/collection_release_with_branches.rst:70 msgid "Replace ``changelogs/changelog.yml`` with:" msgstr "``changelogs/changelog.yml`` を以下に置き換えます。" -#: ../../rst/community/collection_contributors/collection_release_with_branches.rst:74 +#: ../../rst/community/collection_contributors/collection_release_with_branches.rst:78 msgid "Remove all changelog fragments from ``changelogs/fragments/``. Removing the changelog fragments ensures that every major release has a changelog describing changes since the last major release." msgstr "すべての changelog フラグメントを ``changelogs/fragments/`` から削除します。changelog フラグメントを削除すると、すべてのメジャーリリースに、最後のメジャーリリース以降の変更を説明する changelog が確実に含まれます。" -#: ../../rst/community/collection_contributors/collection_release_with_branches.rst:76 +#: ../../rst/community/collection_contributors/collection_release_with_branches.rst:80 msgid "Add and commit all the changes made. Push the branch to the ``origin`` repository." msgstr "加えられた変更をすべて追加し、コミットします。ブランチを ``origin`` リポジトリーにプッシュします。" -#: ../../rst/community/collection_contributors/collection_release_with_branches.rst:78 +#: ../../rst/community/collection_contributors/collection_release_with_branches.rst:82 msgid "Create a pull request in the collection repository. If CI tests pass, merge the pull request since the ``main`` branch is expecting changes for the next minor/major versions" msgstr "コレクションリポジトリーにプル要求を作成します。CI テストに合格した場合は、``main`` ブランチが次のマイナー/メジャーバージョンの変更を想定しているので、プル要求をマージします。" -#: ../../rst/community/collection_contributors/collection_release_with_branches.rst:80 +#: ../../rst/community/collection_contributors/collection_release_with_branches.rst:84 msgid "Switch to the ``stable-X`` branch." msgstr "``stable-X`` ブランチに切り替えます。" -#: ../../rst/community/collection_contributors/collection_release_with_branches.rst:82 -msgid "In the ``stable-X`` branch, ensure that ``galaxy.yml`` contains the correct version number ``X.0.0``. If not, update it." -msgstr "``stable-X`` ブランチで、``galaxy.yml`` に正しいバージョン番号 ``X.0.0`` が含まれていることを確認します。含まれていない場合は、更新します。" +#: ../../rst/community/collection_contributors/collection_release_with_branches.rst:86 +msgid "In the ``stable-X`` branch, verify that ``galaxy.yml`` contains the correct version number ``X.0.0``." +msgstr "``stable-X`` ブランチで、``galaxy.yml`` に正しいバージョン番号 ``X.0.0`` が含まれていることを確認します。" -#: ../../rst/community/collection_contributors/collection_release_with_branches.rst:84 +#: ../../rst/community/collection_contributors/collection_release_with_branches.rst:88 +msgid "In the ``stable-X`` branch, ensure that ``changelogs/changelog.yml`` contains a correct ancestor's version:" +msgstr "``stable-X``ブランチで、``changelogs/changelog.yml`` に正しい祖先のバージョンが含まれていることを確認します。" + +#: ../../rst/community/collection_contributors/collection_release_with_branches.rst:96 msgid "In the ``stable-X`` branch, add a changelog fragment ``changelogs/fragments/X.0.0.yml`` with the content:" msgstr "``stable-X`` ブランチに、コンテンツを含む changelog フラグメント ``changelogs/fragments/X.0.0.yml`` を追加します。" -#: ../../rst/community/collection_contributors/collection_release_with_branches.rst:93 +#: ../../rst/community/collection_contributors/collection_release_with_branches.rst:106 #: ../../rst/community/collection_contributors/collection_release_without_branches.rst:60 -#: ../../rst/community/documentation_contributions.rst:143 -#: ../../rst/community/documentation_contributions.rst:196 +#: ../../rst/community/documentation_contributions.rst:157 +#: ../../rst/community/documentation_contributions.rst:210 msgid "For example:" msgstr "例:" -#: ../../rst/community/collection_contributors/collection_release_with_branches.rst:100 +#: ../../rst/community/collection_contributors/collection_release_with_branches.rst:113 msgid "In the ``stable-X`` branch, generate the changelogs:" msgstr "``stable-X`` ブランチで、changelog を生成します。" -#: ../../rst/community/collection_contributors/collection_release_with_branches.rst:107 +#: ../../rst/community/collection_contributors/collection_release_with_branches.rst:120 msgid "In the ``stable-X`` branch, verify that the ``CHANGELOG.rst`` looks as expected." msgstr "``stable-X`` ブランチで、``CHANGELOG.rst`` が想定通りに表示されることを確認します。" -#: ../../rst/community/collection_contributors/collection_release_with_branches.rst:109 +#: ../../rst/community/collection_contributors/collection_release_with_branches.rst:122 msgid "In the ``stable-X`` branch, update ``README.md`` so that the changelog link points to ``/tree/stable-X/`` and no longer to ``/tree/main/``, and change badges respectively, for example, in case of AZP, add ``?branchName=stable-X`` to the AZP CI badge (https://dev.azure.com/ansible/community.xxx/_apis/build/status/CI?branchName=stable-X)." msgstr "``stable-X`` ブランチで、changelog リンクが ``/tree/main/`` ではなく ``/tree/stable-X/`` をポイントするように ``README.md`` を更新し、それぞれバッジを変更します。たとえば、AZP の場合は、AZP CI バッジに ``?branchName=stable-X`` を追加します (https://dev.azure.com/ansible/community.xxx/_apis/build/status/CI?branchName=stable-X)。" -#: ../../rst/community/collection_contributors/collection_release_with_branches.rst:111 +#: ../../rst/community/collection_contributors/collection_release_with_branches.rst:124 msgid "In the ``stable-X`` branch, add, commit, and push changes to ``README.md``, ``CHANGELOG.rst`` and ``changelogs/changelog.yaml``, and potentially deleted/archived fragments to the **upstream** repository, NOT to the ``origin``." msgstr "``stable-X`` ブランチで、``README.md``、``CHANGELOG.rst``、および ``changelogs/changelog.yaml`` に変更を追加、コミット、およびプッシュし、削除/アーカイブされた可能性のあるフラグメントは ``origin`` ではなく、**アップストリーム** リポジトリーに追加、コミット、およびプッシュします。" -#: ../../rst/community/collection_contributors/collection_release_with_branches.rst:115 -#: ../../rst/community/collection_contributors/collection_release_with_branches.rst:171 +#: ../../rst/community/collection_contributors/collection_release_with_branches.rst:128 +#: ../../rst/community/collection_contributors/collection_release_with_branches.rst:193 msgid "Publishing the collection" msgstr "コレクションの公開" -#: ../../rst/community/collection_contributors/collection_release_with_branches.rst:117 +#: ../../rst/community/collection_contributors/collection_release_with_branches.rst:130 msgid "In the ``stable-X`` branch, add an annotated tag to the last commit with the collection version ``X.0.0``. Pushing this tag to the ``upstream`` repository will make Zuul publish the collection on `Ansible Galaxy `_." msgstr "``stable-X`` ブランチで、コレクションバージョン ``X.0.0`` で最後のコミットにアノテーション付きタグを追加します。このタグを ``upstream`` リポジトリーにプッシュすると、Zuul がコレクションを `Ansible Galaxy `_ で公開します。" -#: ../../rst/community/collection_contributors/collection_release_with_branches.rst:126 -#: ../../rst/community/collection_contributors/collection_release_with_branches.rst:260 -#: ../../rst/community/collection_contributors/collection_release_with_branches.rst:313 -#: ../../rst/community/collection_contributors/collection_release_without_branches.rst:107 -msgid "Wait until the new version is published on the collection's `Ansible Galaxy `_ page. It will appear in a list of tarballs available to download." -msgstr "コレクションの `Ansible Galaxy `_ ページで新しいバージョンが公開されるまで待ちます。これは、ダウンロード可能な tarball のリストに表示されます。" +#: ../../rst/community/collection_contributors/collection_release_with_branches.rst:139 +msgid "If the collection uses `Zuul `_ for publishing its releases, wait until the new version is published on the collection's `Ansible Galaxy `_ page. It will appear in a list of tarballs available to download." +msgstr "コレクションの `Zuul `_ を使用してそのリリースを更新する場合に、新しいバージョンがコレクションの `Ansible Galaxy `_ ページに公開されるのを待ちます。ダウンロード可能な tarball のリストに表示されます。" -#: ../../rst/community/collection_contributors/collection_release_with_branches.rst:128 -#: ../../rst/community/collection_contributors/collection_release_with_branches.rst:184 +#: ../../rst/community/collection_contributors/collection_release_with_branches.rst:141 +msgid "If the release tarball did not appear within several hours after pushing the tag, try to re-tag the release commit and push the tag again. In the ``stable-X`` branch being at the release commit:" +msgstr "タグをプッシュしてから数時間以内にリリース tarball が表示されなかった場合は、リリースコミットに再度タグを付けて、もう一度タグをプッシュしてみてください。リリースコミットのある ``stable-X`` ブランチで以下を実行します。" + +#: ../../rst/community/collection_contributors/collection_release_with_branches.rst:151 +#: ../../rst/community/collection_contributors/collection_release_with_branches.rst:206 msgid "Add a GitHub release for the new tag. The title should be the version and content, such as - ``See https://github.com/ansible-collections/community.xxx/blob/stable-X/CHANGELOG.rst for all changes``." msgstr "新規タグの GitHub リリースを追加します。タイトルは、バージョンおよびコンテンツになります (たとえば、``すべての変更については https://github.com/ansible-collections/community.xxx/blob/stable-X/CHANGELOG.rst を参照してください``)。" -#: ../../rst/community/collection_contributors/collection_release_with_branches.rst:131 -#: ../../rst/community/collection_contributors/collection_release_with_branches.rst:186 -#: ../../rst/community/collection_contributors/collection_release_with_branches.rst:270 -#: ../../rst/community/collection_contributors/collection_release_with_branches.rst:317 +#: ../../rst/community/collection_contributors/collection_release_with_branches.rst:153 +#: ../../rst/community/collection_contributors/collection_release_with_branches.rst:208 +#: ../../rst/community/collection_contributors/collection_release_with_branches.rst:292 +#: ../../rst/community/collection_contributors/collection_release_with_branches.rst:339 msgid "Announce the release through the `Bullhorn Newsletter `_." msgstr "`Bullhorn ニュースレター `_ でリリースを公開します。" -#: ../../rst/community/collection_contributors/collection_release_with_branches.rst:133 +#: ../../rst/community/collection_contributors/collection_release_with_branches.rst:155 msgid "Announce the release in the pinned release issue/community pinboard of the collection and in the ``#ansible-community`` `Matrix/Libera.Chat IRC channel `_." msgstr "コレクションの固定されたリリースの issue/コミュニティーピンボードと ``#ansible-community`` `Matrix/Libera.Chat IRC channel `_ でリリースを発表します。" -#: ../../rst/community/collection_contributors/collection_release_with_branches.rst:135 +#: ../../rst/community/collection_contributors/collection_release_with_branches.rst:157 msgid "In the ``stable-X`` branch, update the version in ``galaxy.yml`` to the next **expected** version, for example, ``X.1.0``. Add, commit and push to the **upstream** repository." msgstr "``stable-X`` ブランチで、``galaxy.yml`` のバージョンを次の **想定** バージョンに更新します (例: ``X.1.0``)。**アップストリーム** リポジトリーに追加、コミット、およびプッシュします。" -#: ../../rst/community/collection_contributors/collection_release_with_branches.rst:139 +#: ../../rst/community/collection_contributors/collection_release_with_branches.rst:161 msgid "Releasing minor collection versions" msgstr "マイナーコレクションバージョンのリリース" -#: ../../rst/community/collection_contributors/collection_release_with_branches.rst:141 +#: ../../rst/community/collection_contributors/collection_release_with_branches.rst:163 msgid "The new version is assumed to be ``X.Y.0``. All changes that should go into it are expected to be previously backported from the default branch to the ``stable-X`` branch." msgstr "新規バージョンは ``X.Y.0`` であることを前提としています。新規バージョンに入れられるべきすべての変更は、以前にデフォルトブランチから ``stable-X`` ブランチへバックポートされていることが予想されます。" -#: ../../rst/community/collection_contributors/collection_release_with_branches.rst:146 +#: ../../rst/community/collection_contributors/collection_release_with_branches.rst:168 msgid "In the ``stable-X`` branch, make sure that ``galaxy.yml`` contains the correct version number ``X.Y.0``. If not, update it." msgstr "``stable-X`` ブランチで、``galaxy.yml`` に正しいバージョン番号 ``X.Y.0`` が含まれていることを確認します。含まれていない場合は、更新します。" -#: ../../rst/community/collection_contributors/collection_release_with_branches.rst:148 +#: ../../rst/community/collection_contributors/collection_release_with_branches.rst:170 msgid "In the ``stable-X`` branch, add a changelog fragment ``changelogs/fragments/X.Y.0.yml`` with content:" msgstr "``stable-X`` ブランチに、コンテンツを含む changelog フラグメント ``changelogs/fragments/X.Y.0.yml`` を追加します。" -#: ../../rst/community/collection_contributors/collection_release_with_branches.rst:158 +#: ../../rst/community/collection_contributors/collection_release_with_branches.rst:180 msgid "In the ``stable-X`` branch, run:" msgstr "``stable-X`` ブランチで以下を実行します。" -#: ../../rst/community/collection_contributors/collection_release_with_branches.rst:165 -#: ../../rst/community/collection_contributors/collection_release_with_branches.rst:297 +#: ../../rst/community/collection_contributors/collection_release_with_branches.rst:187 +#: ../../rst/community/collection_contributors/collection_release_with_branches.rst:319 msgid "In the ``stable-X`` branch, verify that ``CHANGELOG.rst`` looks as expected." msgstr "``stable-X`` ブランチで、``CHANGELOG.rst`` が想定通りに表示されることを確認します。" -#: ../../rst/community/collection_contributors/collection_release_with_branches.rst:167 -#: ../../rst/community/collection_contributors/collection_release_with_branches.rst:299 +#: ../../rst/community/collection_contributors/collection_release_with_branches.rst:189 +#: ../../rst/community/collection_contributors/collection_release_with_branches.rst:321 msgid "In the ``stable-X`` branch, add, commit, and push changes to ``CHANGELOG.rst`` and ``changelogs/changelog.yaml``, and potentially deleted/archived fragments to the **upstream** repository, NOT to the origin." msgstr "``stable-X`` ブランチで、``CHANGELOG.rst`` および ``changelogs/changelog.yaml`` に変更を追加、コミット、およびプッシュし、削除/アーカイブされた可能性のあるフラグメントは、元のリポジトリーではなく、**アップストリーム** リポジトリーに追加、コミット、およびプッシュします。" -#: ../../rst/community/collection_contributors/collection_release_with_branches.rst:173 +#: ../../rst/community/collection_contributors/collection_release_with_branches.rst:195 msgid "In the ``stable-X`` branch, add an annotated tag to the last commit with the collection version ``X.Y.0``. Pushing this tag to the ``upstream`` repository will make Zuul publish the collection on `Ansible Galaxy `_." msgstr "``stable-X`` ブランチで、コレクションバージョン ``X.Y.0`` で最後のコミットにアノテーション付きタグを追加します。このタグを ``upstream`` リポジトリーにプッシュすると、Zuul がコレクションを `Ansible Galaxy `_ で公開します。" -#: ../../rst/community/collection_contributors/collection_release_with_branches.rst:182 +#: ../../rst/community/collection_contributors/collection_release_with_branches.rst:204 msgid "Wait until the new version is published on the collection's `Ansible Galaxy `_ page. The published version will appear in a list of tarballs available to download." msgstr "コレクションの `Ansible Galaxy `_ ページで新しいバージョンが公開されるまで待ちます。公開バージョンは、ダウンロード可能な tarball のリストに表示されます。" -#: ../../rst/community/collection_contributors/collection_release_with_branches.rst:188 +#: ../../rst/community/collection_contributors/collection_release_with_branches.rst:210 msgid "Announce the release in the pinned release issue/community pinboard of the collection and in the ``#ansible-community`` `Matrix/IRC channel `_. Additionally, you can announce it using GitHub's Releases system." msgstr "コレクションの固定されたリリースの issue/コミュニティーピンボードと ``#ansible-community`` `Matrix/IRC channel `_ でリリースを発表します。さらに、GitHub のリリースシステムを使用して、発表することができます。" -#: ../../rst/community/collection_contributors/collection_release_with_branches.rst:190 +#: ../../rst/community/collection_contributors/collection_release_with_branches.rst:212 msgid "In the ``stable-X`` branch, update the version in ``galaxy.yml`` to the next **expected** version, for example, if you have released ``X.1.0``, the next expected version could be ``X.2.0``. Add, commit and push to the **upstream** repository." msgstr "``stable-X`` ブランチで、``galaxy.yml`` のバージョンを次の **想定** バージョンに更新します。たとえば、``X.1.0`` をリリースしている場合は、次の想定されるバージョンは ``X.2.0`` である可能性があります。**アップストリーム** リポジトリーに追加、コミット、およびプッシュします。" -#: ../../rst/community/collection_contributors/collection_release_with_branches.rst:192 +#: ../../rst/community/collection_contributors/collection_release_with_branches.rst:214 msgid "Checkout to the ``main`` branch." msgstr "``main`` ブランチにチェックアウトします。" -#: ../../rst/community/collection_contributors/collection_release_with_branches.rst:194 +#: ../../rst/community/collection_contributors/collection_release_with_branches.rst:216 msgid "In the ``main`` branch:" msgstr "``main`` ブランチで以下を行います。" -#: ../../rst/community/collection_contributors/collection_release_with_branches.rst:196 +#: ../../rst/community/collection_contributors/collection_release_with_branches.rst:218 msgid "If more minor versions are released before the next major version, update the version in ``galaxy.yml`` to ``X.(Y+1).0`` as well. Create a dedicated pull request and merge." msgstr "次のメジャーバージョンの前にさらにマイナーバージョンがリリースされる場合は、``galaxy.yml`` のバージョンを ``X.(Y+1).0`` にも更新します。専用のプルリクエストを作成してマージします。" -#: ../../rst/community/collection_contributors/collection_release_with_branches.rst:198 +#: ../../rst/community/collection_contributors/collection_release_with_branches.rst:220 msgid "If the next version will be a new major version, create a pull request where you update the version in ``galaxy.yml`` to ``(X+1).0.0``. Note that the sanity tests will most likely fail since there will be deprecations with removal scheduled for ``(X+1).0.0``, which are flagged by the tests." msgstr "次のバージョンが新しいメジャーバージョンになる場合は、``galaxy.yml`` のバージョンを ``(X+1).0.0`` に更新するプルリクエストを作成します。テストによってフラグが付けられている ``(X+1).0.0`` の削除が予定されている非推奨事項があるため、健全性テストは失敗する可能性が高いことに注意してください。" -#: ../../rst/community/collection_contributors/collection_release_with_branches.rst:200 +#: ../../rst/community/collection_contributors/collection_release_with_branches.rst:222 msgid "For every such deprecation, decide:" msgstr "このようなすべての非推奨について、以下を決定します。" -#: ../../rst/community/collection_contributors/collection_release_with_branches.rst:202 +#: ../../rst/community/collection_contributors/collection_release_with_branches.rst:224 msgid "Whether to remove them now. For example you remove the complete ``modules/plugins`` or you remove redirects." msgstr "今すぐこれらを削除するかどうか。たとえば、完全な ``modules/plugins`` を削除するか、リダイレクトを削除するか。" -#: ../../rst/community/collection_contributors/collection_release_with_branches.rst:203 +#: ../../rst/community/collection_contributors/collection_release_with_branches.rst:225 msgid "Whether to add ignore entries to the corresponding ``tests/sanity/ignore-*.txt`` file and create issues, for example for removed features in ``modules/plugins``." msgstr "ignore エントリーを対応する ``tests/sanity/ignore-*.txt`` ファイルに追加し、``modules/plugins`` で削除された機能などの issue を作成するかどうか。" -#: ../../rst/community/collection_contributors/collection_release_with_branches.rst:205 +#: ../../rst/community/collection_contributors/collection_release_with_branches.rst:227 msgid "Once the CI tests pass, merge the pull request. Make sure that this pull request is merged not too much later after the release for ``version_added`` sanity tests not to expect the wrong version for the new feature pull request." msgstr "CI テストに合格したら、プルリクエストをマージします。このプルリクエストは、新機能のプルリクエストに対して間違ったバージョンを期待しないように、``version_added`` サニティーテスト用のリリース後あまり時間が経たないうちにマージされることを確認してください。" -#: ../../rst/community/collection_contributors/collection_release_with_branches.rst:210 +#: ../../rst/community/collection_contributors/collection_release_with_branches.rst:232 msgid "It makes sense to already do some removals in the days before the release. These removals must happen in the main branch and must not be backported." msgstr "リリース前の数日間にすでにいくつかの削除を行うことは理にかなっています。これらの削除はメインブランチで行われる必要があり、バックポートされてはなりません。" -#: ../../rst/community/collection_contributors/collection_release_with_branches.rst:214 +#: ../../rst/community/collection_contributors/collection_release_with_branches.rst:236 msgid "Releasing patch versions" msgstr "パッチバージョンのリリース" -#: ../../rst/community/collection_contributors/collection_release_with_branches.rst:216 -msgid "The new version is assumed to be ``X.Y.Z``, and the previous patch version is assumed to be ``X.Y.z`` with ``z < Z``. ``z`` is frequently``0`` snce patch releases are uncommon." +#: ../../rst/community/collection_contributors/collection_release_with_branches.rst:238 +msgid "The new version is assumed to be ``X.Y.Z``, and the previous patch version is assumed to be ``X.Y.z`` with ``z < Z``. ``z`` is frequently``0`` since patch releases are uncommon." msgstr "新しいバージョンは ``X.Y.Z`` で、以前のパッチバージョンは ``z < Z`` のある ``X.Y.z`` であることを前提としています。パッチリリースが一般的ではいことから、``z`` は、多くの場合 ``0`` です。" -#: ../../rst/community/collection_contributors/collection_release_with_branches.rst:219 +#: ../../rst/community/collection_contributors/collection_release_with_branches.rst:241 msgid "Releasing when more minor versions are expected" msgstr "追加のマイナーバージョンが予想される場合のリリース" -#: ../../rst/community/collection_contributors/collection_release_with_branches.rst:221 +#: ../../rst/community/collection_contributors/collection_release_with_branches.rst:243 msgid "Checkout the ``X.Y.z`` tag." msgstr "``X.Y.z`` タグをチェックアウトします。" -#: ../../rst/community/collection_contributors/collection_release_with_branches.rst:223 +#: ../../rst/community/collection_contributors/collection_release_with_branches.rst:245 msgid "Update ``galaxy.yml`` so that the version is ``X.Y.Z``. Add and commit." msgstr "バージョンが ``X.Y.Z`` になるように ``galaxy.yml`` を更新します。追加してコミットします。" -#: ../../rst/community/collection_contributors/collection_release_with_branches.rst:225 +#: ../../rst/community/collection_contributors/collection_release_with_branches.rst:247 msgid "Cherry-pick all changes from ``stable-X`` that were added after ``X.Y.z`` and should go into ``X.Y.Z``." msgstr "``X.Y.z`` の後に追加され、``X.Y.Z`` に移動する必要がある ``stable-X`` からの変更をすべて入念に選びます。" -#: ../../rst/community/collection_contributors/collection_release_with_branches.rst:227 +#: ../../rst/community/collection_contributors/collection_release_with_branches.rst:249 #: ../../rst/community/collection_contributors/collection_release_without_branches.rst:51 msgid "Add a changelog fragment ``changelogs/fragments/X.Y.Z.yml`` with content:" msgstr "以下の内容を含む changelog フラグメント ``changelogs/fragments/X.Y.Z.yml`` を追加します。" -#: ../../rst/community/collection_contributors/collection_release_with_branches.rst:236 +#: ../../rst/community/collection_contributors/collection_release_with_branches.rst:258 msgid "Add to git and commit." msgstr "git および commit に追加します。" -#: ../../rst/community/collection_contributors/collection_release_with_branches.rst:238 +#: ../../rst/community/collection_contributors/collection_release_with_branches.rst:260 msgid "Generate the changelogs." msgstr "changelog を生成します。" -#: ../../rst/community/collection_contributors/collection_release_with_branches.rst:244 +#: ../../rst/community/collection_contributors/collection_release_with_branches.rst:266 msgid "Verify that ``CHANGELOG.rst`` looks as expected." msgstr "``CHANGELOG.rst`` が想定どおりに表示されることを確認します。" -#: ../../rst/community/collection_contributors/collection_release_with_branches.rst:246 +#: ../../rst/community/collection_contributors/collection_release_with_branches.rst:268 msgid "Add and commit changes to ``CHANGELOG.rst`` and ``changelogs/changelog.yaml``, and potentially deleted/archived fragments." msgstr "``CHANGELOG.rst`` および ``changelogs/changelog.yaml``、そして削除/アーカイブされた可能性のあるフラグメントに、変更を追加およびコミットします。" -#: ../../rst/community/collection_contributors/collection_release_with_branches.rst:248 -#: ../../rst/community/collection_contributors/collection_release_with_branches.rst:301 +#: ../../rst/community/collection_contributors/collection_release_with_branches.rst:270 +#: ../../rst/community/collection_contributors/collection_release_with_branches.rst:323 msgid "**Publishing the collection**" msgstr "**コレクションの公開**" -#: ../../rst/community/collection_contributors/collection_release_with_branches.rst:251 +#: ../../rst/community/collection_contributors/collection_release_with_branches.rst:273 msgid "Add an annotated tag to the last commit with the collection version ``X.Y.Z``. Pushing this tag to the ``upstream`` repository will make Zuul publish the collection on `Ansible Galaxy `_." msgstr "コレクションバージョン ``X.Y.Z`` で、最後のコミットにアノテーション付きタグを追加します。このタグを ``upstream`` リポジトリーにプッシュすると、Zuul がコレクションを `Ansible Galaxy `_ で公開します。" -#: ../../rst/community/collection_contributors/collection_release_with_branches.rst:262 +#: ../../rst/community/collection_contributors/collection_release_with_branches.rst:282 +#: ../../rst/community/collection_contributors/collection_release_with_branches.rst:335 +#: ../../rst/community/collection_contributors/collection_release_without_branches.rst:107 +msgid "Wait until the new version is published on the collection's `Ansible Galaxy `_ page. It will appear in a list of tarballs available to download." +msgstr "コレクションの `Ansible Galaxy `_ ページで新しいバージョンが公開されるまで待ちます。これは、ダウンロード可能な tarball のリストに表示されます。" + +#: ../../rst/community/collection_contributors/collection_release_with_branches.rst:284 msgid "Add a GitHub release for the new tag. The title should be the version and content, such as - ``See https://github.com/ansible-collections/community.xxx/blob/stable-X/CHANGELOG.rst for all changes``." msgstr "新規タグの GitHub リリースを追加します。タイトルは、バージョンおよびコンテンツになります (たとえば、``すべての変更については https://github.com/ansible-collections/community.xxx/blob/stable-X/CHANGELOG.rst を参照してください``)。" -#: ../../rst/community/collection_contributors/collection_release_with_branches.rst:266 +#: ../../rst/community/collection_contributors/collection_release_with_branches.rst:288 msgid "The data for this release is only contained in a tag, and not in a branch, in particular not in ``stable-X``. This is deliberate, since the next minor release ``X.(Y+1).0`` already contains the changes for ``X.Y.Z`` as well, since these were cherry-picked from ``stable-X``." msgstr "このリリースのデータはタグにのみ含まれ、ブランチには含まれません (特に ``stable-X`` には含まれません)。次のマイナーリリース ``X.(Y+1).0`` には ``X.Y.Z`` の変更もすでに含まれているため (これらは ``stable-X`` から入念に選ばれているため)、これは意図的なものになります。" -#: ../../rst/community/collection_contributors/collection_release_with_branches.rst:272 +#: ../../rst/community/collection_contributors/collection_release_with_branches.rst:294 msgid "Announce the release in the pinned release issue/community pinboard of the collection and in the ``#ansible-community`` `Matrix/IRC channel `." msgstr "コレクションの固定されたリリースの issue/コミュニティーピンボードと ``#ansible-community`` `Matrix/IRC channel ` でリリースを発表します。" -#: ../../rst/community/collection_contributors/collection_release_with_branches.rst:276 +#: ../../rst/community/collection_contributors/collection_release_with_branches.rst:298 msgid "Releasing when no more minor versions are expected" msgstr "さらなるマイナーバージョンがないことが予想される場合のリリース" -#: ../../rst/community/collection_contributors/collection_release_with_branches.rst:278 +#: ../../rst/community/collection_contributors/collection_release_with_branches.rst:300 msgid "In the ``stable-X`` branch, make sure that ``galaxy.yml`` contains the correct version number ``X.Y.Z``. If not, update it!" msgstr "``stable-X`` ブランチで、``galaxy.yml`` に正しいバージョン番号 ``X.Y.Z`` が含まれていることを確認します。含まれていない場合は、更新します。" -#: ../../rst/community/collection_contributors/collection_release_with_branches.rst:280 +#: ../../rst/community/collection_contributors/collection_release_with_branches.rst:302 msgid "In the ``stable-X`` branch, add a changelog fragment ``changelogs/fragments/X.Y.Z.yml`` with content:" msgstr "``stable-X`` ブランチに、コンテンツを含む changelog フラグメント ``changelogs/fragments/X.Y.Z.yml`` を追加します。" -#: ../../rst/community/collection_contributors/collection_release_with_branches.rst:290 +#: ../../rst/community/collection_contributors/collection_release_with_branches.rst:312 msgid "Generate the changelogs in the ``stable-X`` branch." msgstr "``stable-X`` ブランチに changelog を生成します。" -#: ../../rst/community/collection_contributors/collection_release_with_branches.rst:304 +#: ../../rst/community/collection_contributors/collection_release_with_branches.rst:326 msgid "In the ``stable-X`` branch, add an annotated tag to the last commit with the collection version ``X.Y.Z``. Pushing this tag to the ``upstream`` repository will make Zuul publish the collection on `Ansible Galaxy `_." msgstr "``stable-X`` ブランチで、コレクションバージョン ``X.Y.Z`` で最後のコミットにアノテーション付きタグを追加します。このタグを ``upstream`` リポジトリーにプッシュすると、Zuul がコレクションを `Ansible Galaxy `_ で公開します。" -#: ../../rst/community/collection_contributors/collection_release_with_branches.rst:315 +#: ../../rst/community/collection_contributors/collection_release_with_branches.rst:337 msgid "Add a GitHub release for the new tag. Title should be the version and content, such as: ``See https://github.com/ansible-collections/community.xxx/blob/stable-X/CHANGELOG.rst for all changes``." msgstr "新規タグの GitHub リリースを追加します。タイトルは、バージョンおよびコンテンツになります (たとえば、``すべての変更については https://github.com/ansible-collections/community.xxx/blob/stable-X/CHANGELOG.rst を参照してください``)。" -#: ../../rst/community/collection_contributors/collection_release_with_branches.rst:319 +#: ../../rst/community/collection_contributors/collection_release_with_branches.rst:341 msgid "Announce the release in the pinned issue/community pinboard of the collection and in the ``#ansible-community`` `Matrix/IRC channel `_." msgstr "コレクションの固定されたリリースの issue/コミュニティーピンボードと ``#ansible-community`` `Matrix/IRC channel `_ でリリースを発表します。" @@ -1504,7 +1524,7 @@ msgstr "重大な変更が導入される場合は、リリースブランチで #: ../../rst/community/collection_contributors/collection_releasing.rst:100 msgid "See :ref:`collection_release_with_branches` for details." -msgstr "詳しくは、:ref:`collection_release_with_branches` を参照してください。" +msgstr "詳細は、:ref:`collection_release_with_branches` を参照してください。" #: ../../rst/community/collection_contributors/collection_reviewing.rst:4 msgid "Review checklist for collection PRs" @@ -1523,7 +1543,7 @@ msgid "When users report bugs, verify the behavior reported. Remember always to msgstr "ユーザーがバグを報告したら、報告された動作を確認してください。フィードバックは丁寧に行ってください。" #: ../../rst/community/collection_contributors/collection_reviewing.rst:13 -msgid "Did the user made a mistake in the code they put in the Steps to reproduce issue's section? We often see user errors reported as bugs." +msgid "Did the user make a mistake in the code they put in the Steps to Reproduce issue section? We often see user errors reported as bugs." msgstr "issue セクションを再現するためのステップで、ユーザーが入力したコードに間違いはありませんか。ユーザーがエラーをバグとして報告することも多くあります。" #: ../../rst/community/collection_contributors/collection_reviewing.rst:14 @@ -1535,11 +1555,11 @@ msgid "Is there a minimal reproducer? If not, ask the reporter to reduce the com msgstr "リプロデューサーは最小限ですか。そうでない場合、報告者に issue を特定するために単純化するよう依頼してください。" #: ../../rst/community/collection_contributors/collection_reviewing.rst:16 -msgid "Is the issue a consequence of wrong-configured environment?" -msgstr "この issue は、誤って設定された環境の結果ですか。" +msgid "Is the issue a consequence of a misconfigured environment?" +msgstr "この問題は、誤った環境設定の結果なのでしょうか?" #: ../../rst/community/collection_contributors/collection_reviewing.rst:17 -msgid "If it seems to be real bug, does the behaviour still exist in the most recent release or the development branch?" +msgid "If it seems to be a real bug, does the behaviour still exist in the most recent release or the development branch?" msgstr "実際のバグと思われる場合、最新のリリースまたは開発ブランチでも同様の動作が見られますか。" #: ../../rst/community/collection_contributors/collection_reviewing.rst:18 @@ -1551,11 +1571,11 @@ msgid "Reviewing suggested changes" msgstr "推奨される変更の確認" #: ../../rst/community/collection_contributors/collection_reviewing.rst:24 -msgid "When reviewing PRs, verify the suggested changes first. Do not:" -msgstr "PR を確認する際には、まず提案された変更を検証してください。以下は回避してください。" +msgid "When reviewing PRs, verify that the suggested changes do not:" +msgstr "PR を確認するときは、提案された変更が次のことを行っていないことを確認してください。" #: ../../rst/community/collection_contributors/collection_reviewing.rst:26 -msgid "Unnecessarily break backwards compatibility." +msgid "Unnecessarily break backward compatibility." msgstr "後方互換性を不用意に損なう。" #: ../../rst/community/collection_contributors/collection_reviewing.rst:27 @@ -1579,7 +1599,7 @@ msgid "Other standards to check for in a PR include:" msgstr "PR で確認するその他の基準は次のとおりです。" #: ../../rst/community/collection_contributors/collection_reviewing.rst:35 -msgid "A pull request MUST NOT contain a mix of bugfixes and new features that are not tightly related. If yes, ask the author to split the pull request into separate PRs." +msgid "A pull request MUST NOT contain a mix of bug fixes and new features that are not tightly related. If yes, ask the author to split the pull request into separate PRs." msgstr "プル要求に、密接に関連しないバグ修正と新機能の組み合わせを含めてはなりません。含まれる場合、作成者にプル要求を別の PR に分割するように依頼してください。" #: ../../rst/community/collection_contributors/collection_reviewing.rst:36 @@ -1623,7 +1643,7 @@ msgid "Modules and plugins from ansible-core use ``ansible.builtin.`` as an FQCN msgstr "言及されている場合、ansible-core のモジュールおよびプラグインは ``ansible.builtin.`` を FQCN プレフィックスとして使用します。" #: ../../rst/community/collection_contributors/collection_reviewing.rst:48 -msgid "When a new option, module, plugin, or return value is added, the corresponding documentation or return sections use ``version_added:`` containing the *collection* version which they will be first released in." +msgid "When a new option, module, plugin, or return value is added, the corresponding documentation or return sections use ``version_added:`` containing the *collection* version in which they will be first released." msgstr "新しいオプション、モジュール、プラグイン、または戻り値が追加されると、対応するドキュメントまたは戻り値のセクションでは、最初にリリースされる *collection* バージョンを含む ``version_added:`` が使用されます。" #: ../../rst/community/collection_contributors/collection_reviewing.rst:50 @@ -1679,7 +1699,7 @@ msgid "The pull request does not contain merge commits. See the GitHub warnings msgstr "プル要求にはマージコミットが含まれません。プル要求の下部にある GitHub の警告を参照してください。マージコミットが存在する場合は、作成者にプル要求ブランチをリベースするよう依頼してください。" #: ../../rst/community/collection_contributors/collection_reviewing.rst:73 -msgid "If the pull request contains breaking changes, ask the author and the collection maintainers if it really is needed, and there is a way not to introduce breaking changes. If breaking changes are present, they MUST only appear in the next major release and MUST NOT appear in a minor or patch release. The only exception is breaking changes caused by security fixes that are absolutely necessary to fix the security issue." +msgid "If the pull request contains breaking changes, ask the author and the collection maintainers if it really is needed, and if there is a way not to introduce breaking changes. If breaking changes are present, they MUST only appear in the next major release and MUST NOT appear in a minor or patch release. The only exception is breaking changes caused by security fixes that are absolutely necessary to fix the security issue." msgstr "プル要求に互換性を損なう変更点が含まれている場合は、作成者やコレクションメンテナーに本当に必要な変更か、互換性を損なう変更を導入せずにすむ方法はないか確認してください。互換性を損なう変更が存在する場合は、必ず次のメジャーリリースにのみ記載し、マイナーリリースまたはパッチリリースには記載しないでください。セキュリティー問題の修正に絶対的に必要なセキュリティー修正が原因の場合のみ例外とします。" #: ../../rst/community/collection_contributors/collection_test_pr_locally.rst:5 @@ -1973,200 +1993,212 @@ msgid "Creating changelog fragments" msgstr "changelog フラグメントの作成" #: ../../rst/community/collection_development_process.rst:49 +msgid "Most changelogs should emphasize the impact of the change on the end user of the feature or collection, unless the change impacts developers directly. Consider what the user needs to know about this change and write the changelog to convey that detail." +msgstr "ほとんどの変更履歴は、その変更が開発者に直接影響を及ぼす場合を除き、その機能やコレクションの変更がエンドユーザーに与える影響を強調すべきです。ユーザーがこの変更について何を知る必要があるのかを考え、その詳細を伝えるために変更履歴を書きます。" + +#: ../../rst/community/collection_development_process.rst:51 msgid "Changelogs help users and developers keep up with changes to Ansible collections. Many collections build changelogs for each release from fragments. For collections that use this model, you **must** add a changelog fragment to any PR that changes functionality or fixes a bug." msgstr "changelog は、ユーザーと開発者が Ansible コレクションへの変更に対応する上で役に立ちます。多くのコレクションは、リリースごとにフラグメントから changelog を作成します。このモデルを使用するコレクションの場合は、機能を変更したり、バグを修正したりするすべてのプル要求に changelog フラグメントを **追加する必要** があります。" -#: ../../rst/community/collection_development_process.rst:51 +#: ../../rst/community/collection_development_process.rst:53 #: ../../rst/community/development_process.rst:151 msgid "You do not need a changelog fragment for PRs that:" msgstr "次のような PR には changelog フラグメントは必要ありません。" -#: ../../rst/community/collection_development_process.rst:53 +#: ../../rst/community/collection_development_process.rst:55 #: ../../rst/community/development_process.rst:153 msgid "add new modules and plugins, because Ansible tooling does that automatically;" msgstr "Ansible ツールは自動的に実行されるため、新しいモジュールおよびプラグインを追加します。" -#: ../../rst/community/collection_development_process.rst:54 +#: ../../rst/community/collection_development_process.rst:56 #: ../../rst/community/development_process.rst:154 msgid "contain only documentation changes." msgstr "ドキュメントの変更のみが含まれます。" -#: ../../rst/community/collection_development_process.rst:57 +#: ../../rst/community/collection_development_process.rst:59 #: ../../rst/community/development_process.rst:157 msgid "Some collections require a changelog fragment for every pull request. They use the ``trivial:`` section for entries mentioned above that will be skipped when building a release changelog." msgstr "一部のコレクションでは、プル要求ごとに changelog フラグメントが必要です。上記のエントリーについて ``trivial:`` セクションを使用します。これは、リリースの変更ログの構築時にスキップされます。" -#: ../../rst/community/collection_development_process.rst:60 +#: ../../rst/community/collection_development_process.rst:62 #: ../../rst/community/development_process.rst:160 msgid "More precisely:" msgstr "具体的には、以下のようになります。" -#: ../../rst/community/collection_development_process.rst:62 +#: ../../rst/community/collection_development_process.rst:64 #: ../../rst/community/development_process.rst:162 msgid "Every bugfix PR must have a changelog fragment. The only exception are fixes to a change that has not yet been included in a release." msgstr "すべてのバグ修正プル要求には changelog フラグメントが必要です。唯一の例外は、リリースに含まれていない変更の修正です。" -#: ../../rst/community/collection_development_process.rst:63 +#: ../../rst/community/collection_development_process.rst:65 #: ../../rst/community/development_process.rst:163 msgid "Every feature PR must have a changelog fragment." msgstr "すべての機能のプル要求には changelog フラグメントが必要です。" -#: ../../rst/community/collection_development_process.rst:64 +#: ../../rst/community/collection_development_process.rst:66 #: ../../rst/community/development_process.rst:164 msgid "New modules and plugins (including jinja2 filter and test plugins) must have ``version_added`` entries set correctly in their documentation, and do not need a changelog fragment. The tooling detects new modules and plugins by their ``version_added`` values and announces them in the next release's changelog automatically." msgstr "(jinja2 フィルターと test プラグインなど) 新しいモジュールおよびプラグインには、ドキュメントに ``version_added`` エントリーを正しく設定する必要があり、changelog フラグメントは必要ありません。ツールは、新しいモジュールおよびプラグインをその ``version_added`` 値によって検出し、次のリリースの changelog で自動的に通知します。" -#: ../../rst/community/collection_development_process.rst:66 +#: ../../rst/community/collection_development_process.rst:68 #: ../../rst/community/development_process.rst:166 msgid "We build short summary changelogs for minor releases as well as for major releases. If you backport a bugfix, include a changelog fragment with the backport PR." msgstr "マイナーリリースとメジャーリリースの両方に、短い概要を示した changelog を作成します。バグ修正をバックポートする場合には、バックポートの PR に changelog フラグメントを追加してください。" -#: ../../rst/community/collection_development_process.rst:71 +#: ../../rst/community/collection_development_process.rst:73 #: ../../rst/community/development_process.rst:171 msgid "Creating a changelog fragment" msgstr "changelog フラグメントの作成" -#: ../../rst/community/collection_development_process.rst:73 +#: ../../rst/community/collection_development_process.rst:75 #: ../../rst/community/development_process.rst:173 msgid "A basic changelog fragment is a ``.yaml`` or ``.yml`` file placed in the ``changelogs/fragments/`` directory. Each file contains a yaml dict with keys like ``bugfixes`` or ``major_changes`` followed by a list of changelog entries of bugfixes or features. Each changelog entry is rst embedded inside of the yaml file which means that certain constructs would need to be escaped so they can be interpreted by rst and not by yaml (or escaped for both yaml and rst if you prefer). Each PR **must** use a new fragment file rather than adding to an existing one, so we can trace the change back to the PR that introduced it." msgstr "基本的な changelog フラグメントは ``changelogs/fragments/`` ディレクトリーにある ``.yaml`` または ``.yml`` ファイルです。それぞれのファイルには、``bugfixes``、``major_changes`` などのキーを持つ yaml ディクショナリーが含まれており、その後にバグ修正または機能の changelog エントリーの一覧が続きます。それぞれの changelog エントリーは yaml ファイルに組み込まれている rst です。つまり、特定の構成は、yaml ではなく rst で解釈できるようにエスケープする必要があります (yaml と rst の両方にエスケープされていることが望ましい場合は、両方エスケープします)。各プル要求は、既存のものに追加するのではなく、新しいフラグメントファイルを **使用する必要** があります。これにより、変更を加えたプル要求までさかのぼって、変更を追跡することができます。" -#: ../../rst/community/collection_development_process.rst:75 +#: ../../rst/community/collection_development_process.rst:77 msgid "PRs which add a new module or plugin do not necessarily need a changelog fragment. See :ref:`community_changelogs`. Also see :ref:`changelogs_how_to_format` for the precise format changelog fragments should have." msgstr "新しいモジュールまたはプラグインを追加するプル要求は必ずしも changelog フラグメントを必要としません。:ref:`community_changelogs` を参照してください。また、changelog フラグメントに必要な正確な形式については、:ref:`changelogs_how_to_format` を参照してください。" -#: ../../rst/community/collection_development_process.rst:77 +#: ../../rst/community/collection_development_process.rst:79 #: ../../rst/community/development_process.rst:177 msgid "To create a changelog entry, create a new file with a unique name in the ``changelogs/fragments/`` directory of the corresponding repository. The file name should include the PR number and a description of the change. It must end with the file extension ``.yaml`` or ``.yml``. For example: ``40696-user-backup-shadow-file.yaml``" msgstr "changelog エントリーを作成するには、対応するリポジトリーの ``changelogs/fragments/`` ディレクトリーに一意の名前を持つ新しいファイルを作成します。ファイル名には、PR 番号と変更の説明を含める必要があります。ファイル拡張子 ``.yaml`` または ``.yml`` で終了する必要があります (例: ``40696-user-backup-shadow-file.yaml``)。" -#: ../../rst/community/collection_development_process.rst:79 +#: ../../rst/community/collection_development_process.rst:81 #: ../../rst/community/development_process.rst:179 msgid "A single changelog fragment may contain multiple sections but most will only contain one section. The toplevel keys (bugfixes, major_changes, and so on) are defined in the `config file `_ for our `release note tool `_. Here are the valid sections and a description of each:" msgstr "1 つの changelog フラグメントには複数のセクションが含まれる場合がありますが、ほとんどの場合はセクションが 1 つしか含まれていません。最上位キー (bugfixes、major_changes など) は、`リリースノートツール `_ の `設定ファイル `__ で定義されています。有効なセクションとその説明を以下に示します。" -#: ../../rst/community/collection_development_process.rst:88 +#: ../../rst/community/collection_development_process.rst:90 #: ../../rst/community/development_process.rst:188 msgid "**breaking_changes**" msgstr "**breaking_changes**" -#: ../../rst/community/collection_development_process.rst:82 +#: ../../rst/community/collection_development_process.rst:84 #: ../../rst/community/development_process.rst:182 msgid "MUST include changes that break existing playbooks or roles. This includes any change to existing behavior that forces users to update tasks. Breaking changes means the user MUST make a change when they update. Breaking changes MUST only happen in a major release of the collection. Write in present tense and clearly describe the new behavior that the end user must now follow. Displayed in both the changelogs and the :ref:`Porting Guides `." msgstr "既存の Playbook またはロールを破損させる変更を含める必要があります。これには、ユーザーにタスクの更新を強制する既存の動作の変更がすべて含まれます。互換性を失わせる変更とは、ユーザーが更新時に変更を行う必要があることを意味します。互換性を失わせる変更は、コレクションのメジャーリリースでのみ実行する必要があります。現在形で書き、エンドユーザーが従わなければならなくなった新しい動作について明確に記述してください。changelog と :ref:`移植ガイド ` の両方に表示されています。" -#: ../../rst/community/collection_development_process.rst:96 +#: ../../rst/community/collection_development_process.rst:98 #: ../../rst/community/development_process.rst:196 msgid "**major_changes**" msgstr "**major_changes**" -#: ../../rst/community/collection_development_process.rst:91 +#: ../../rst/community/collection_development_process.rst:93 #: ../../rst/community/development_process.rst:191 msgid "Major changes to ansible-core or a collection. SHOULD NOT include individual module or plugin changes. MUST include non-breaking changes that impact all or most of a collection (for example, updates to support a new SDK version across the collection). Major changes mean the user can CHOOSE to make a change when they update but do not have to. Could be used to announce an important upcoming EOL or breaking change in a future release. (ideally 6 months in advance, if known. See `this example `_). Write in present tense and describe what is new. Optionally, include a 'Previously...\" sentence to help the user identify where old behavior should now change. Displayed in both the changelogs and the :ref:`Porting Guides `." msgstr "ansible-core またはコレクションへの主な変更点。個別のモジュールやプラグインの変更を含めないでください。コレクションすべてまたは大半に影響する中断なしの変更 (たとえば、コレクション全体で新しい SDK バージョンをサポートする更新など) を含める必要があります。主な変更点は、ユーザーが更新時に変更を行うことを選択できることを意味しますが、必ずしも変更する必要はありません。重要な今後の EOL または将来のリリースでの重大な変更を発表するために使用することができます (わかっている場合は、理想的には 6 カ月前。`こちらの例 `_ を参照)。現在形で書き、新機能について説明してください。オプションで、「以前の....」という文を含めて、古い動作を変更する必要がある場所をユーザーが特定できるようにします。changelog と :ref:`移植ガイド ` の両方に表示されています。" -#: ../../rst/community/collection_development_process.rst:105 +#: ../../rst/community/collection_development_process.rst:107 #: ../../rst/community/development_process.rst:205 msgid "**minor_changes**" msgstr "**minor_changes**" -#: ../../rst/community/collection_development_process.rst:99 +#: ../../rst/community/collection_development_process.rst:101 msgid "Minor changes to ansible-core, modules, or plugins. This includes new parameters added to modules, or non-breaking behavior changes to existing parameters, such as adding new values to choices[]. Minor changes are enhancements, not bug fixes. Write in present tense." msgstr "ansible-core、モジュール、またはプラグインへのマイナーな変更。これには、モジュールに追加された新しいパラメーターや、choices[] に新しい値を追加するなど、既存のパラメーターに対する中断のない動作の変更が含まれます。マイナーな変更は機能拡張であり、バグ修正ではありません。現在形で書いてください。" -#: ../../rst/community/collection_development_process.rst:114 +#: ../../rst/community/collection_development_process.rst:116 #: ../../rst/community/development_process.rst:214 msgid "**deprecated_features**" msgstr "**deprecated_features**" -#: ../../rst/community/collection_development_process.rst:108 +#: ../../rst/community/collection_development_process.rst:110 msgid "Features that have been deprecated and are scheduled for removal in a future release. Write in past tense. Include an alternative, where available, for the feature being deprecated. Displayed in both the changelogs and the :ref:`Porting Guides `." msgstr "非推奨となり、今後のリリースで削除される予定の機能。過去形で書いてください。可能な場合は、非推奨となった機能の代替機能を追加してください。changelog と :ref:`移植ガイド ` の両方に表示されています。" -#: ../../rst/community/collection_development_process.rst:123 +#: ../../rst/community/collection_development_process.rst:125 #: ../../rst/community/development_process.rst:223 msgid "**removed_features**" msgstr "**removed_features**" -#: ../../rst/community/collection_development_process.rst:117 +#: ../../rst/community/collection_development_process.rst:119 msgid "Features that were previously deprecated and are now removed. Write in past tense. Include an alternative, where available, for the feature being deprecated. Displayed in both the changelogs and the :ref:`Porting Guides `." msgstr "以前に非推奨となり、現在は削除された機能。過去形で書いてください。可能な場合は、非推奨となった機能の代替機能を追加してください。changelog と :ref:`移植ガイド ` の両方に表示されています。" -#: ../../rst/community/collection_development_process.rst:132 +#: ../../rst/community/collection_development_process.rst:134 #: ../../rst/community/development_process.rst:232 msgid "**security_fixes**" msgstr "**security_fixes**" -#: ../../rst/community/collection_development_process.rst:126 +#: ../../rst/community/collection_development_process.rst:128 msgid "Fixes that address CVEs or resolve security concerns. MUST use security_fixes for any CVEs. Write in present tense. Include links to CVE information." msgstr "CVE に対処するか、セキュリティー上の懸念を解決する修正。CVE には security_fixes を使用する必要があります。現在形で書いてください。CVE 情報へのリンクを含めます。" -#: ../../rst/community/collection_development_process.rst:141 +#: ../../rst/community/collection_development_process.rst:143 #: ../../rst/community/development_process.rst:241 msgid "**bugfixes**" msgstr "**bugfixes**" -#: ../../rst/community/collection_development_process.rst:135 +#: ../../rst/community/collection_development_process.rst:137 msgid "Fixes that resolve issues. SHOULD NOT be used for minor enhancements (use ``minor_change`` instead). Write in past tense to describe the problem and present tense to describe the fix." msgstr "issue を解決するための修正です。マイナーな機能強化には使用しないでください (代わりに ``minor_change`` を使用)。問題の説明は過去形で、修正の説明は現在形で書いてください。" -#: ../../rst/community/collection_development_process.rst:151 +#: ../../rst/community/collection_development_process.rst:152 #: ../../rst/community/development_process.rst:250 msgid "**known_issues**" msgstr "**known_issues**" -#: ../../rst/community/collection_development_process.rst:144 +#: ../../rst/community/collection_development_process.rst:146 msgid "Known issues that are currently not fixed or will not be fixed. Write in present tense to describe the problem and in imperative tense to describe any available workaround." msgstr "現在修正されていない、または修正される予定のない既知の問題。問題の説明は現在形で、利用可能な回避策の説明は命令形で書いてください。" -#: ../../rst/community/collection_development_process.rst:153 +#: ../../rst/community/collection_development_process.rst:162 +msgid "**trivial**" +msgstr "**trivial**" + +#: ../../rst/community/collection_development_process.rst:155 +msgid "Changes where a formal release changelog entry isn't required. ``trivial`` changelog fragments are excluded from the published changelog output and may be used for changes such as housekeeping, documentation and test only changes. You can use ``trivial`` for collections that require a changelog fragment for each pull request." +msgstr "正式なリリースの変更ログのエントリーが不要な変更。``trivial`` の変更ログのフラグメントは、公開される変更ログの出力から除外され、ハウスキーピング、ドキュメント、テストのみの変更などの変更に使用される場合があります。プルリクエストごとに変更ログのフラグメントが必要なコレクションに ``trivial`` を使用できます。" + +#: ../../rst/community/collection_development_process.rst:164 #: ../../rst/community/development_process.rst:252 msgid "Each changelog entry must contain a link to its issue between parentheses at the end. If there is no corresponding issue, the entry must contain a link to the PR itself." msgstr "各 changelog エントリーには、最後に括弧内に、その issue へのリンクが含まれていなければなりません。対応する issue がない場合は、エントリーにプル要求自体へのリンクが含まれている必要があります。" -#: ../../rst/community/collection_development_process.rst:155 -msgid "Most changelog entries are ``bugfixes`` or ``minor_changes``. You can also use ``trivial`` for any collection that requires a changelog fragment for each pull request. ``trivial`` changelog fragments are excluded from the changelog output." -msgstr "ほとんどの changelog エントリーは、``bugfixes`` または ``minor_changes`` です。プル要求ごとに changelog フラグメントを必要とするコレクションに ``trivial`` を使用することもできます。``trivial`` changelog フラグメントは changelog 出力から除外されます。" +#: ../../rst/community/collection_development_process.rst:166 +msgid "Most changelog entries are ``bugfixes`` or ``minor_changes``." +msgstr "ほとんどの changelog エントリーは、``bugfixes`` または ``minor_changes`` です。" -#: ../../rst/community/collection_development_process.rst:159 +#: ../../rst/community/collection_development_process.rst:170 #: ../../rst/community/development_process.rst:261 msgid "Changelog fragment entry format" msgstr "changelog フラグメントのエントリー形式" -#: ../../rst/community/collection_development_process.rst:161 +#: ../../rst/community/collection_development_process.rst:172 #: ../../rst/community/development_process.rst:263 msgid "When writing a changelog entry, use the following format:" msgstr "changelog エントリーを作成する場合は、以下の形式を使用します。" -#: ../../rst/community/collection_development_process.rst:167 +#: ../../rst/community/collection_development_process.rst:178 #: ../../rst/community/development_process.rst:269 msgid "The scope is usually a module or plugin name or group of modules or plugins, for example, ``lookup plugins``. While module names can (and should) be mentioned directly (``foo_module``), plugin names should always be followed by the type (``foo inventory plugin``)." msgstr "範囲は通常、モジュールまたはプラグインの名前、またはモジュールまたはプラグインのグループです (例: ``lookup plugins``)。モジュール名は直接言及することができます (そして言及する必要があります) (``foo_module``) が、プラグイン名の後には常にタイプを追加する必要があります (``foo inventory plugin``)。" -#: ../../rst/community/collection_development_process.rst:169 +#: ../../rst/community/collection_development_process.rst:180 #: ../../rst/community/development_process.rst:271 msgid "For changes that are not really scoped (for example, which affect a whole collection), use the following format:" msgstr "スコープ指定ロールがない変更 (コレクション全体に影響するなど) については、以下の形式を使用します。" -#: ../../rst/community/collection_development_process.rst:176 +#: ../../rst/community/collection_development_process.rst:187 #: ../../rst/community/development_process.rst:278 msgid "Here are some examples:" msgstr "以下に例を示します。" -#: ../../rst/community/collection_development_process.rst:196 +#: ../../rst/community/collection_development_process.rst:207 msgid "You can find more example changelog fragments in the `changelog directory `_ for the community.general development branch." msgstr "changelog フラグメントのさらなる例は、community.general 開発ブランチの `changelog ディレクトリー `_ にあります。" -#: ../../rst/community/collection_development_process.rst:198 +#: ../../rst/community/collection_development_process.rst:209 #: ../../rst/community/development_process.rst:300 msgid "After you have written the changelog fragment for your PR, commit the file and include it with the pull request." msgstr "プル要求用に changelog フラグメントを作成したら、ファイルをコミットし、プル要求に追加します。" -#: ../../rst/community/collection_development_process.rst:202 +#: ../../rst/community/collection_development_process.rst:213 msgid "Changelog fragment entry format for new jinja2 plugins, roles, and playbooks" msgstr "新しい jinja2 プラグイン、ロール、および Playbook の変更ログ フラグメントエントリーの形式" -#: ../../rst/community/collection_development_process.rst:204 +#: ../../rst/community/collection_development_process.rst:215 msgid "While new modules and plugins that are not jinja2 filter or test plugins are mentioned automatically in the generated changelog, jinja2 filter and test plugins, roles, and playbooks are not. To make sure they are mentioned, a changelog fragment in a specific format is needed:" msgstr "生成された changelog には、jinja2 フィルターまたはテストプラグインではない新しいモジュールとプラグインが自動的に記載されますが、jinja2 フィルターとテストプラグイン、ロール、および Playbook は記載されません。それらが確実に言及されるようにするには、特定の形式の changelog フラグメントが必要です。" @@ -2383,355 +2415,371 @@ msgid "`Ansible Development List `_は、Ansibleモジュールの開発(主にPython)、Ansibleコアコードのバグの修正、将来の機能設計についての質問、またはAnsibleの機能拡張または進行中の機能ついての議論用です。" #: ../../rst/community/communication.rst:25 -msgid "`Ansible Lockdown List `_ is for all things related to Ansible Lockdown projects, including DISA STIG automation and CIS Benchmarks." -msgstr "`Ansible Lockdown リスト `_ は、DISA STIG オートメーションや CIS ベンチマークなど、Ansible Lockdown プロジェクトに関連するものを対象としています。" +msgid "`Ansible Outreach List `_ help with promoting Ansible and `Ansible Meetups `_" +msgstr "`Ansible Outreach List `_ は、Ansible および `Ansible Meetups `_ のプロモーションを支援します。" #: ../../rst/community/communication.rst:26 -msgid "`Ansible Outreach List `_ help with promoting Ansible and `Ansible Meetups `_" -msgstr "`Ansible Outreach リスト `_ は、Ansible および `Ansible Meetups `_ のプロモーションを支援します。" - -#: ../../rst/community/communication.rst:27 msgid "`Ansible Project List `_ is for sharing Ansible tips, answering questions about playbooks and roles, and general user discussion." msgstr "`Ansible Project リスト `_ は、Ansible のヒントを共有したり、Playbookやロールに関する質問に答えたり、一般的なユーザーディスカッションを行うためのものです。" -#: ../../rst/community/communication.rst:28 +#: ../../rst/community/communication.rst:27 msgid "`Molecule Discussions `_ is designed to aid with the development and testing of Ansible roles with Molecule." msgstr "`Molecule Discussions `_ は、Molecule を使用した Ansible ロールの開発とテストを支援するためのものです。" -#: ../../rst/community/communication.rst:30 +#: ../../rst/community/communication.rst:29 msgid "The Ansible mailing lists are hosted on Google, but you do not need a Google account to subscribe. To subscribe to a group from a non-Google account, send an email to the subscription address requesting the subscription. For example: ``ansible-devel+subscribe@googlegroups.com``." msgstr "AnsibleメーリングリストはGoogleでホストされていますが、サブスクライブするためにGoogleアカウントは必要ありません。 Google 以外のアカウントからグループをサブスクライブするには、サブスクリプションを依頼するメールをサブスクリプションのアドレス (例: ``ansible-devel+subscribe@googlegroups.com``) に送信します。" -#: ../../rst/community/communication.rst:35 +#: ../../rst/community/communication.rst:34 msgid "Real-time chat" msgstr "リアルタイムチャット" -#: ../../rst/community/communication.rst:37 +#: ../../rst/community/communication.rst:36 msgid "For real-time interactions, conversations in the Ansible community happen over two chat protocols: Matrix and IRC. We maintain a bridge between Matrix and IRC, so you can choose whichever protocol you prefer. All channels exist in both places. Join a channel any time to ask questions, participate in a Working Group meeting, or just say hello." msgstr "リアルタイムの対話の場合、Ansibleコミュニティでの会話は、MatrixとIRCの2つのチャットプロトコルを介して行われます。 MatrixとIRCの間のブリッジを維持しているため、お好みのプロトコルを選択できます。すべてのチャンネルは両方の場所に存在します。いつでもチャンネルに参加して、質問したり、ワーキンググループの会議に参加したり、挨拶したりできます。" -#: ../../rst/community/communication.rst:40 +#: ../../rst/community/communication.rst:39 msgid "Ansible community on Matrix" msgstr "Matrix上のAnsibleコミュニティ" -#: ../../rst/community/communication.rst:42 +#: ../../rst/community/communication.rst:41 msgid "To join the community using Matrix, you need two things:" msgstr "Matrixを使用してコミュニティに参加するには、次の2つが必要です。" -#: ../../rst/community/communication.rst:44 +#: ../../rst/community/communication.rst:43 msgid "a Matrix account (from `Matrix.org `_ or any other Matrix homeserver)" msgstr "マトリックスアカウント(`Matrix.org `_またはその他のMatrixホームサーバーから)" -#: ../../rst/community/communication.rst:45 +#: ../../rst/community/communication.rst:44 msgid "a `Matrix client `_ (we recommend `Element Webchat `_)" msgstr "`Matrix client `_ (`Element Webchat `_を推奨します)" -#: ../../rst/community/communication.rst:47 +#: ../../rst/community/communication.rst:46 msgid "The Ansible community maintains its own Matrix homeserver at ``ansible.im``, however public registration is currently unavailable." msgstr "Ansibleコミュニティは、``ansible.im``で独自のMatrixホームサーバーを維持しています。ただし、現在、公開登録は利用できません。" -#: ../../rst/community/communication.rst:49 +#: ../../rst/community/communication.rst:48 msgid "Matrix chat supports:" msgstr "Matrixチャットは以下をサポートします:" -#: ../../rst/community/communication.rst:51 +#: ../../rst/community/communication.rst:50 msgid "persistence (when you log on, you see all messages since you last logged off)" msgstr "永続性(ログオンすると、最後にログオフしてからのすべてのメッセージが表示されます)" -#: ../../rst/community/communication.rst:52 -msgid "edits (so you can fix your typos)" -msgstr "編集(タイプミスを修正できます)" +#: ../../rst/community/communication.rst:51 +msgid "edits (Lets you fix typos and so on. **NOTE** Each edit you make on Matrix re-sends the message to IRC. Please try to avoid multiple edits!)" +msgstr "編集 (タイプミスなどを修正できます。**注記** Matrix で編集を行うたびに、メッセージが IRC に再送信されます。何度も編集しないようにしてください!)" -#: ../../rst/community/communication.rst:53 +#: ../../rst/community/communication.rst:52 msgid "replies to individual users" msgstr "個々のユーザーへの返信" -#: ../../rst/community/communication.rst:54 +#: ../../rst/community/communication.rst:53 msgid "reactions/emojis" msgstr "反応/絵文字" -#: ../../rst/community/communication.rst:55 +#: ../../rst/community/communication.rst:54 msgid "bridging to IRC" msgstr "IRCへのブリッジ" -#: ../../rst/community/communication.rst:56 +#: ../../rst/community/communication.rst:55 msgid "no line limits" msgstr "行制限なし" -#: ../../rst/community/communication.rst:57 +#: ../../rst/community/communication.rst:56 msgid "images" msgstr "images" -#: ../../rst/community/communication.rst:59 -msgid "The room links in the :ref:`general_channels` will take you directly to the relevant rooms. For more information, see the community-hosted `Matrix FAQ `_." -msgstr ":ref:`general_channels` のチャットルームのリンクから、関連するチャットルームに直接アクセスできます。詳細は、コミュニティーがホストする `Matrix FAQ `_ を参照してください。" +#: ../../rst/community/communication.rst:58 +msgid "The room links in the :ref:`general_channels` or in the :ref:`working_group_list` list will take you directly to the relevant rooms." +msgstr ":ref:`general_channels`または:ref:`working_group_list` リストのルームリンクから関連するルームに直接移動できます。" + +#: ../../rst/community/communication.rst:60 +msgid "If there is no appropriate room for your community, please create it." +msgstr "コミュニティーに適切なルームがない場合は、作成してください。" #: ../../rst/community/communication.rst:62 +msgid "For more information, see the community-hosted `Matrix FAQ `_." +msgstr "詳細は、コミュニティーがホストする `Matrix FAQ `_ を参照してください。" + +#: ../../rst/community/communication.rst:65 msgid "Ansible community on IRC" msgstr "IRCのAnsibleコミュニティ" -#: ../../rst/community/communication.rst:64 +#: ../../rst/community/communication.rst:67 msgid "The Ansible community maintains several IRC channels on `irc.libera.chat `_. To join the community using IRC, you need one thing:" msgstr "Ansibleコミュニティは、`irc.libera.chat `_にいくつかのIRCチャンネルを維持しています。IRCを使用してコミュニティに参加するには、次の1つが必要です。" -#: ../../rst/community/communication.rst:66 +#: ../../rst/community/communication.rst:69 msgid "an IRC client" msgstr "IRCクライアント" -#: ../../rst/community/communication.rst:68 +#: ../../rst/community/communication.rst:71 msgid "IRC chat supports:" msgstr "IRCチャットは以下をサポートします:" -#: ../../rst/community/communication.rst:70 -msgid "no persistence (you only see messages when you are logged on, unless you add a bouncer)" +#: ../../rst/community/communication.rst:73 +msgid "no persistence (you only see messages when you are logged on unless you add a bouncer)" msgstr "永続性なし(バウンサーを追加しない限り、ログオンしたときのメッセージしか表示されません)" -#: ../../rst/community/communication.rst:71 +#: ../../rst/community/communication.rst:74 msgid "simple text interface" msgstr "シンプルなテキストインターフェース" -#: ../../rst/community/communication.rst:72 +#: ../../rst/community/communication.rst:75 msgid "bridging from Matrix" msgstr "Matrixからのブリッジ" -#: ../../rst/community/communication.rst:74 +#: ../../rst/community/communication.rst:77 msgid "Our IRC channels may require you to register your IRC nickname. If you receive an error when you connect or when posting a message, see `libera.chat's Nickname Registration guide `_ for instructions. To find all ``ansible`` specific channels on the libera.chat network, use the following command in your IRC client:" msgstr "この IRC チャンネルでは、IRCのニックネームの登録が必要になる場合があります。接続時またはメッセージの投稿時にエラーが発生する場合は、「`libera.chat's Nickname Registration ガイド `_」を参照してください。libera.chatネットワークの``ansible``固有のチャネルをすべてを見つけるには、IRCクライアントで次のコマンドを使用します。" -#: ../../rst/community/communication.rst:80 +#: ../../rst/community/communication.rst:83 msgid "as described in the `libera.chat docs `_." msgstr "`libera.chat ドキュメント `_ に記載のとおり。" -#: ../../rst/community/communication.rst:82 +#: ../../rst/community/communication.rst:85 msgid "Our channels record history on the Matrix side. The channel history can be viewed in a browser - all channels will report an appropriate link to ``chat.ansible.im`` in their Chanserv entrymsg upon joining the room. Alternatively, a URL of the form ``https://chat.ansible.im/#/room/# {IRC channel name}:libera.chat`` will also work, for example - for the #ansible-docs channel it would be `https://app.element.io/#/room/#ansible-docs:libera.chat`." msgstr "チャンネルは Matrix 側で履歴を記録します。チャンネル履歴はブラウザーで表示できます。全チャンネルでは、Chanserv entrymsg に ``chat.ansible.im`` への適切なリンクが表示されます。または、#ansible-docs チャンネルの場合は ``https://chat.ansible.im/#/room/# {IRC channel name}:libera.chat``、#ansible-docs チャンネルの場合は `https://app.element.io/#/room/#ansible-docs:libera.chat` が使用できます。" -#: ../../rst/community/communication.rst:87 +#: ../../rst/community/communication.rst:90 msgid "General channels" msgstr "一般的なチャンネル" -#: ../../rst/community/communication.rst:89 +#: ../../rst/community/communication.rst:92 msgid "The clickable links will take you directly to the relevant Matrix room in your browser; room/channel information is also given for use in other clients:" msgstr "クリック可能なリンクをクリックすると、ブラウザで関連するMatrixルームに直接移動します。チャットルーム/チャンネル情報は、他のクライアントで使用するためにも提供されます。" -#: ../../rst/community/communication.rst:91 +#: ../../rst/community/communication.rst:94 msgid "`Community social room and posting news for the Bullhorn newsletter `_ - ``Matrix: #social:ansible.com | IRC: #ansible-social``" msgstr "`Community social room and posting news for the Bullhorn newsletter `_ - ``Matrix: #social:ansible.com | IRC: #ansible-social``" -#: ../../rst/community/communication.rst:92 +#: ../../rst/community/communication.rst:95 msgid "`General usage and support questions `_ - ``Matrix: #users:ansible.com | IRC: #ansible``" msgstr "`General usage and support questions `_ - ``Matrix: #users:ansible.com | IRC: #ansible``" -#: ../../rst/community/communication.rst:93 +#: ../../rst/community/communication.rst:96 msgid "`Discussions on developer topics and code related to features or bugs `_ - ``Matrix: #devel:ansible.com | IRC: #ansible-devel``" msgstr "`Discussions on developer topics and code related to features or bugs `_ - ``Matrix: #devel:ansible.com | IRC: #ansible-devel``" -#: ../../rst/community/communication.rst:94 +#: ../../rst/community/communication.rst:97 msgid "`Discussions on community and collections related topics `_ - ``Matrix: #community:ansible.com | IRC: #ansible-community``" msgstr "`Discussions on community and collections related topics `_ - ``Matrix: #community:ansible.com | IRC: #ansible-community``" -#: ../../rst/community/communication.rst:96 +#: ../../rst/community/communication.rst:99 msgid "`For public community meetings `_ - ``Matrix: #meeting:ansible.im | IRC: #ansible-meeting``" msgstr "`For public community meetings `_ - ``Matrix: #meeting:ansible.im | IRC: #ansible-meeting``" -#: ../../rst/community/communication.rst:96 +#: ../../rst/community/communication.rst:99 msgid "We will generally announce these on one or more of the above mailing lists. See the `meeting schedule and agenda page `_" msgstr "通常は、上記のメーリングリストで告知されます。`meeting schedule and agenda page `_ を参照してください。" -#: ../../rst/community/communication.rst:101 +#: ../../rst/community/communication.rst:104 msgid "Working groups" msgstr "ワーキンググループ" -#: ../../rst/community/communication.rst:103 +#: ../../rst/community/communication.rst:106 msgid "Many of our community `Working Groups `_ meet in chat. If you want to get involved in a working group, join the Matrix room or IRC channel where it meets or comment on the agenda." msgstr "Ansible コミュニティーの `Working Groups `_ の多くが、チャットで活動しています。ワーキンググループに参加したい場合は、そのワーキンググループが活動しているMatrixのチャットルームまたはIRCチャンネルに参加したり、議題にコメントしたりしてください。" -#: ../../rst/community/communication.rst:105 +#: ../../rst/community/communication.rst:108 +msgid "`AAP Configuration as Code `_ - Matrix: `#aap_config_as_code:ansible.com `_" +msgstr "`AAP Configuration as Code `_ - マトリックス: `#aap_config_as_code:ansible.com `_" + +#: ../../rst/community/communication.rst:109 msgid "`Amazon (AWS) Working Group `_ - Matrix: `#aws:ansible.com `_ | IRC: ``#ansible-aws``" msgstr "`Amazon (AWS) Working Group `_ - Matrix: `#aws:ansible.com `_ | IRC: ``#ansible-aws``" -#: ../../rst/community/communication.rst:106 -msgid "`Ansible Lockdown Working Group `_ (`Security playbooks/roles `_) - Matrix: `#lockdown:ansible.com `_ | IRC: ``#ansible-lockdown``" -msgstr "`Ansible Lockdown Working Group `_ (`Security playbooks/roles `_) - Matrix: `#lockdown:ansible.com `_ | IRC: ``#ansible-lockdown``" - -#: ../../rst/community/communication.rst:107 +#: ../../rst/community/communication.rst:110 msgid "`AWX Working Group `_ - Matrix: `#awx:ansible.com `_ | IRC: ``#ansible-awx``" msgstr "`AWX Working Group `_ - Matrix: `#awx:ansible.com `_ | IRC: ``#ansible-awx``" -#: ../../rst/community/communication.rst:108 +#: ../../rst/community/communication.rst:111 msgid "`Azure Working Group `_ - Matrix: `#azure:ansible.com `_ | IRC: ``#ansible-azure``" msgstr "`Azure Working Group `_ - Matrix: `#azure:ansible.com `_ | IRC: ``#ansible-azure``" -#: ../../rst/community/communication.rst:109 +#: ../../rst/community/communication.rst:112 msgid "`Community Working Group `_ (including Meetups) - Matrix: `#community:ansible.com `_ | IRC: ``#ansible-community``" msgstr "`Community Working Group `_ (Meetups を含む) - Matrix: `#community:ansible.com `_ | IRC: ``#ansible-community``" -#: ../../rst/community/communication.rst:110 +#: ../../rst/community/communication.rst:113 msgid "`Container Working Group `_ - Matrix: `#container:ansible.com `_ | IRC: ``#ansible-container``" msgstr "`Container Working Group `_ - Matrix: `#container:ansible.com `_ | IRC: ``#ansible-container``" -#: ../../rst/community/communication.rst:111 +#: ../../rst/community/communication.rst:114 msgid "`Contributor Experience Working Group `_ - Matrix: `#community:ansible.com `_ | IRC: ``#ansible-community``" msgstr "`Contributor Experience Working Group `_ - Matrix: `#community:ansible.com `_ | IRC: ``#ansible-community``" -#: ../../rst/community/communication.rst:112 +#: ../../rst/community/communication.rst:115 msgid "`DigitalOcean Working Group `_ - Matrix: `#digitalocean:ansible.im `_ | IRC: ``#ansible-digitalocean``" msgstr "`DigitalOcean Working Group `_ - Matrix: `#digitalocean:ansible.im `_ | IRC: ``#ansible-digitalocean``" -#: ../../rst/community/communication.rst:113 +#: ../../rst/community/communication.rst:116 msgid "`Diversity Working Group `_ - Matrix: `#diversity:ansible.com `_ | IRC: ``#ansible-diversity``" msgstr "`Diversity Working Group `_ - Matrix: `#diversity:ansible.com `_ | IRC: ``#ansible-diversity``" -#: ../../rst/community/communication.rst:114 +#: ../../rst/community/communication.rst:117 msgid "`Docker Working Group `_ - Matrix: `#devel:ansible.com `_ | IRC: ``#ansible-devel``" msgstr "`Docker Working Group `_ - Matrix: `#devel:ansible.com `_ | IRC: ``#ansible-devel``" -#: ../../rst/community/communication.rst:115 +#: ../../rst/community/communication.rst:118 msgid "`Documentation Working Group `_ - Matrix: `#docs:ansible.com `_ | IRC: ``#ansible-docs``" msgstr "`Documentation Working Group `_ - Matrix: `#docs:ansible.com `_ | IRC: ``#ansible-docs``" -#: ../../rst/community/communication.rst:116 +#: ../../rst/community/communication.rst:119 msgid "`Galaxy Working Group `_ - Matrix: `#galaxy:ansible.com `_ | IRC: ``#ansible-galaxy``" msgstr "`Galaxy Working Group `_ - Matrix: `#galaxy:ansible.com `_ | IRC: ``#ansible-galaxy``" -#: ../../rst/community/communication.rst:117 +#: ../../rst/community/communication.rst:120 msgid "`JBoss Working Group `_ - Matrix: `#jboss:ansible.com `_ | IRC: ``#ansible-jboss``" msgstr "`JBoss Working Group `_ - Matrix: `#jboss:ansible.com `_ | IRC: ``#ansible-jboss``" -#: ../../rst/community/communication.rst:118 +#: ../../rst/community/communication.rst:121 msgid "`Kubernetes Working Group `_ - Matrix: `#kubernetes:ansible.com `_ | IRC: ``#ansible-kubernetes``" msgstr "`Kubernetes Working Group `_ - Matrix: `#kubernetes:ansible.com `_ | IRC: ``#ansible-kubernetes``" -#: ../../rst/community/communication.rst:119 +#: ../../rst/community/communication.rst:122 msgid "`Linode Working Group `_ - Matrix: `#linode:ansible.com `_ | IRC: ``#ansible-linode``" msgstr "`Linode Working Group `_ - Matrix: `#linode:ansible.com `_ | IRC: ``#ansible-linode``" -#: ../../rst/community/communication.rst:120 +#: ../../rst/community/communication.rst:123 msgid "`Molecule Working Group `_ (`testing platform for Ansible playbooks and roles `_) - Matrix: `#molecule:ansible.im `_ | IRC: ``#ansible-molecule``" msgstr "`Molecule Working Group `_ (`testing platform for Ansible playbooks and roles `_) - Matrix: `#molecule:ansible.im `_ | IRC: ``#ansible-molecule``" -#: ../../rst/community/communication.rst:121 +#: ../../rst/community/communication.rst:124 +msgid "`MySQL Working Group `_ - Matrix: `#mysql:ansible.com `_" +msgstr "`MySQL Working Group `_ - マトリックス: `#mysql:ansible.com `_" + +#: ../../rst/community/communication.rst:125 msgid "`Network Working Group `_ - Matrix: `#network:ansible.com `_ | IRC: ``#ansible-network``" msgstr "`Network Working Group `_ - Matrix: `#network:ansible.com `_ | IRC: ``#ansible-network``" -#: ../../rst/community/communication.rst:122 +#: ../../rst/community/communication.rst:126 msgid "`PostgreSQL Working Group `_ - Matrix: `#postgresql:ansible.com `_" msgstr "`PostgreSQL Working Group `_ - Matrix: `#postgresql:ansible.com `_" -#: ../../rst/community/communication.rst:123 +#: ../../rst/community/communication.rst:127 msgid "`Remote Management Working Group `_ - Matrix: `#devel:ansible.com `_ | IRC: ``#ansible-devel``" msgstr "`Remote Management Working Group `_ - Matrix: `#devel:ansible.com `_ | IRC: ``#ansible-devel``" -#: ../../rst/community/communication.rst:124 +#: ../../rst/community/communication.rst:128 +msgid "`Security Automation Working Group `_ - Matrix: `#security-automation:ansible.com `_ | IRC: ``#ansible-security``" +msgstr "`Security Automation Working Group `_ - マトリックス: `#security-automation:ansible.com `_ | IRC: ``#ansible-security``" + +#: ../../rst/community/communication.rst:129 +msgid "`Storage Working Group `_ - Matrix: `#storage:ansible.com `_ | IRC: ``#ansible-storage``" +msgstr "`Storage Working Group `_ - マトリックス: `#storage:ansible.com `_ | IRC: ``#ansible-storage``" + +#: ../../rst/community/communication.rst:130 msgid "`Testing Working Group `_ - Matrix: `#devel:ansible.com `_ | IRC: ``#ansible-devel``" msgstr "`Testing Working Group `_ - Matrix: `#devel:ansible.com `_ | IRC: ``#ansible-devel``" -#: ../../rst/community/communication.rst:125 +#: ../../rst/community/communication.rst:131 msgid "`VMware Working Group `_ - Matrix: `#vmware:ansible.com `_ | IRC: ``#ansible-vmware``" msgstr "`VMware Working Group `_ - Matrix: `#vmware:ansible.com `_ | IRC: ``#ansible-vmware``" -#: ../../rst/community/communication.rst:126 +#: ../../rst/community/communication.rst:132 msgid "`Windows Working Group `_ - Matrix: `#windows:ansible.com `_ | IRC: ``#ansible-windows``" msgstr "`Windows Working Group `_ - Matrix: `#windows:ansible.com `_ | IRC: ``#ansible-windows``" -#: ../../rst/community/communication.rst:127 +#: ../../rst/community/communication.rst:133 msgid "`Ansible developer tools Group `_ - Matrix: `#devtools:ansible.com `_ | IRC: ``#ansible-devtools``" msgstr "`Ansible developer tools Group `_ - Matrix: `#devtools:ansible.com `_ | IRC: ``#ansible-devtools``" -#: ../../rst/community/communication.rst:129 +#: ../../rst/community/communication.rst:135 msgid "Want to `form a new Working Group `_?" -msgstr "`form a new Working Group `_ ですか?" +msgstr "`新しいワーキンググループ `を形成_しますか?" -#: ../../rst/community/communication.rst:132 +#: ../../rst/community/communication.rst:138 msgid "Regional and Language-specific channels" msgstr "地域および言語固有のチャンネル" -#: ../../rst/community/communication.rst:134 +#: ../../rst/community/communication.rst:140 msgid "Comunidad Ansible en español - Matrix: `#espanol:ansible.im `_ | IRC: ``#ansible-es``" msgstr "スペイン語のAnsibleコミュニティー - Matrix: `#espanol:ansible.im `_ | IRC: ``#ansible-es``" -#: ../../rst/community/communication.rst:135 +#: ../../rst/community/communication.rst:141 msgid "Communauté française d'Ansible - Matrix: `#francais:ansible.im `_ | IRC: ``#ansible-fr``" msgstr "フランス語のAnsibleコミュニティー - Matrix: `#francais:ansible.im `_ | IRC: ``#ansible-fr``" -#: ../../rst/community/communication.rst:136 +#: ../../rst/community/communication.rst:142 msgid "Communauté suisse d'Ansible - Matrix: `#suisse:ansible.im `_ | IRC: ``#ansible-zh``" msgstr "スイスのAnsibleコミュニティー - Matrix: `#suisse:ansible.im `_ | IRC: ``#ansible-zh``" -#: ../../rst/community/communication.rst:137 +#: ../../rst/community/communication.rst:143 msgid "European Ansible Community - Matrix: `#europe:ansible.im `_ | IRC: ``#ansible-eu``" msgstr "ヨーロッパのAnsibleコミュニティー - Matrix: `#europe:ansible.im `_ | IRC: ``#ansible-eu``" -#: ../../rst/community/communication.rst:140 +#: ../../rst/community/communication.rst:146 msgid "Meetings on chat" msgstr "チャットでの会議" -#: ../../rst/community/communication.rst:142 +#: ../../rst/community/communication.rst:148 msgid "The Ansible community holds regular meetings on various topics on Matrix/IRC, and anyone who is interested is invited to participate. For more information about Ansible meetings, consult the `meeting schedule and agenda page `_." msgstr "Ansible コミュニティーは、Matrix/IRCでさまざまなトピックに関する定期的なミーティングを開いており、興味のある人は誰でも参加することができます。Ansible ミーティングの詳細は、`meeting schedule and agenda page `_ を参照してください。" -#: ../../rst/community/communication.rst:145 +#: ../../rst/community/communication.rst:151 msgid "Ansible Community Topics" msgstr "Ansible コミュニティーのトピック" -#: ../../rst/community/communication.rst:147 +#: ../../rst/community/communication.rst:153 msgid "The `Ansible Community Steering Committee `_ uses the `community-topics repository `_ to asynchronously discuss with the Community and vote on Community topics in corresponding issues." msgstr "`Ansible Community Steering Committee `_ は、`community-topics repository `_ を使用して、対応する issue のコミュニティーのトピックについて、コミュニティーで非同期に話し合い、投票します。" -#: ../../rst/community/communication.rst:149 +#: ../../rst/community/communication.rst:155 msgid "Create a new issue in the `repository `_ if you want to discuss an idea that impacts any of the following:" msgstr "以下のいずれかに影響を与えるアイデアについて話し合いたい場合は、`リポジトリー `_ で新しい issue を作成します。" -#: ../../rst/community/communication.rst:151 -#: ../../rst/community/steering/community_steering_committee.rst:73 +#: ../../rst/community/communication.rst:157 +#: ../../rst/community/steering/community_steering_committee.rst:75 msgid "Ansible Community" msgstr "Ansible コミュニティー" -#: ../../rst/community/communication.rst:152 +#: ../../rst/community/communication.rst:158 msgid "Community collection best practices and `requirements `_" msgstr "コミュニティーコレクションのベストプラクティスと `要件 `_" -#: ../../rst/community/communication.rst:153 +#: ../../rst/community/communication.rst:159 msgid "`Community collection inclusion policy `_" -msgstr "`コミュニティーコレクションのインクルージョンポリシー `_" +msgstr "`Community collection inclusion policy `_" -#: ../../rst/community/communication.rst:154 +#: ../../rst/community/communication.rst:160 msgid "`The Community governance `_" msgstr "`The Community governance `_" -#: ../../rst/community/communication.rst:155 +#: ../../rst/community/communication.rst:161 msgid "Other proposals of importance that need the Committee or overall Ansible community attention" msgstr "Committee または Ansible コミュニティー全体の注意を必要とするその他の重要な提案" -#: ../../rst/community/communication.rst:158 +#: ../../rst/community/communication.rst:164 msgid "Ansible Automation Platform support questions" msgstr "Ansible Automation Platform サポートに関する質問" -#: ../../rst/community/communication.rst:160 +#: ../../rst/community/communication.rst:166 msgid "Red Hat Ansible `Automation Platform `_ is a subscription that contains support, certified content, and tooling for Ansible including content management, a controller, UI and REST API." msgstr "Red Hat Ansible `Automation Platform `_ は、コンテンツ管理、コントローラー、UI および REST API などの Ansible のサポート、認定コンテンツ、およびツールが含まれるサブスクリプションです。" -#: ../../rst/community/communication.rst:162 +#: ../../rst/community/communication.rst:168 msgid "If you have a question about Ansible Automation Platform, visit `Red Hat support `_ rather than using a chat channel or the general project mailing list." msgstr "Ansible Automation Platform に関するご質問は、チャットチャンネルまたは一般的なプロジェクトメーリングリストではなく、`Red Hat サポート `_ にお問い合わせください。" -#: ../../rst/community/communication.rst:165 +#: ../../rst/community/communication.rst:171 msgid "The Bullhorn" msgstr "The Bullhorn" -#: ../../rst/community/communication.rst:167 +#: ../../rst/community/communication.rst:173 msgid "**The Bullhorn** is our newsletter for the Ansible contributor community. Please `subscribe `_ to receive it." msgstr "**The Bullhorn** は、Ansible コントリビューターコミュニティー向けのニュースレターです。ニュースレターを受信するには、`サブスクライブ `_ してください。" -#: ../../rst/community/communication.rst:169 +#: ../../rst/community/communication.rst:175 msgid "If you have any content you would like to share, please `contribute/suggest it `_ for upcoming releases." msgstr "共有したいコンテンツがある場合は、今後のリリース用に `提供/提案 `_ してください。" -#: ../../rst/community/communication.rst:171 +#: ../../rst/community/communication.rst:177 msgid "If you have any questions, please reach out to us at ``the-bullhorn@redhat.com``." msgstr "ご不明な点がございましたら、``the-bullhorn@redhat.com`` までお問い合わせください。" -#: ../../rst/community/communication.rst:173 +#: ../../rst/community/communication.rst:179 msgid "Read past issues on the official Bullhorn's `wiki page `_." msgstr "過去の issue については、Bullhorn の公式の `wiki ページ `_ をお読みください。" @@ -2961,7 +3009,7 @@ msgid "Contributor path" msgstr "コントリビューターパス" #: ../../rst/community/contributor_path.rst:5 -msgid "This section describes the contributor journey from the beginning to becoming a leader who helps shape the future of Ansible. You can use this path as a roadmap for your long-term participation." +msgid "This section describes the contributor's journey from the beginning to becoming a leader who helps shape the future of Ansible. You can use this path as a roadmap for your long-term participation." msgstr "このセクションでは、コントリビューターが Ansible の未来を形成するリーダーになるまでの道のりを最初から説明します。このパスは、参加者の長期的ロードマップとして使用できます。" #: ../../rst/community/contributor_path.rst:7 @@ -2986,7 +3034,7 @@ msgstr "以下は、貢献先となる一部の Ansible エコシステムのコ #: ../../rst/community/contributor_path.rst:24 msgid "`Ansible Core `_" -msgstr "`Ansible Lint `_" +msgstr "`Ansible Core `_" #: ../../rst/community/contributor_path.rst:25 msgid "`Collections `_" @@ -2994,7 +3042,7 @@ msgstr "`Collections `_" -msgstr "`network bugs project `_" +msgstr "`AWX `_" #: ../../rst/community/contributor_path.rst:27 msgid "`Galaxy `_" @@ -3025,7 +3073,7 @@ msgid "Code development requires the most technical knowledge. Let's sort out wh msgstr "コード開発には、最も技術的な知識が必要です。Ansible 開発者が学ぶ必要のある内容を分類してみましょう。" #: ../../rst/community/contributor_path.rst:42 -msgid "You should understand at least *basics* of the following tools:" +msgid "You should understand at least the *basics* of the following tools:" msgstr "少なくとも以下のツールの *基本* を理解する必要があります。" #: ../../rst/community/contributor_path.rst:44 @@ -3041,16 +3089,16 @@ msgid "`GitHub collaborative development model through forks and pull requests < msgstr "`GitHub collaborative development model through forks and pull requests `_" #: ../../rst/community/contributor_path.rst:48 -msgid "You can learn these tools more in depth when working on your first contributions." +msgid "You can learn these tools more in-depth when working on your first contributions." msgstr "最初の貢献時に、これらのツールの詳細を学習できます。" #: ../../rst/community/contributor_path.rst:51 -msgid "Each Ansible project has its own set of contributor guidelines. Familarize yourself with these as you prepare your first contributions." +msgid "Each Ansible project has its own set of contributor guidelines. Familiarize yourself with these as you prepare your first contributions." msgstr "各 Ansible プロジェクトには、独自のコントリビューターガイドラインが一式あります。最初の貢献を準備する際に、これらのガイドを把握してください。" #: ../../rst/community/contributor_path.rst:53 msgid ":ref:`Ansible Core development `." -msgstr ":ref:`Ansible Core development `" +msgstr ":ref:`Ansible Core development `。" #: ../../rst/community/contributor_path.rst:54 msgid ":ref:`Ansible collection development ` and the collection-level contributor guidelines in the collection repository." @@ -3061,92 +3109,116 @@ msgid "Making your first contribution" msgstr "初めて貢献する" #: ../../rst/community/contributor_path.rst:60 -msgid "You can find some ideas on how you can contribute in :ref:`how_can_i_help` and the `collection repository `_ ``README`` and ``CONTRIBUTING`` files. To make your first experience as smooth as possible, read the repository documentation carefully, then ask the repository maintainers for guidance if you have any questions." -msgstr ":ref:`how_can_i_help`、`collection repository `_ ``README``、および ``CONTRIBUTING`` ファイルで、貢献に関するアイデアを見つけることができます。できるだけスムーズに進めるために、リポジトリーのドキュメントを慎重に読み、質問がある場合は、リポジトリーメンテナーに助言を求めてください。" +msgid "You can find some ideas on how you can contribute in :ref:`how_can_i_help`." +msgstr "どのように貢献できるかについては、:ref:`how_can_i_help` にいくつかのアイデアが掲載されています。" #: ../../rst/community/contributor_path.rst:62 -msgid "You can also look for GitHub issues labeled with the ``easyfix``, ``good_first_issue``, and ``docs`` labels. Add a comment on the GitHub issue to say you are looking at it and to ask for help if you need it." -msgstr "``easyfix``、``good_first_issue``、``docs`` でラベル付けされた GitHub issue を見つけることもできます。GitHub issue に閲覧したことを示すコメントを追加し、必要に応じて助言を依頼してください。" +msgid "If you are interested in contributing to collections, take a look at :ref:`collection contributions` and the `collection repository `_'s ``README`` and ``CONTRIBUTING`` files. To make your first experience as smooth as possible, read the repository documentation carefully, then ask the repository maintainers for guidance if you have any questions." +msgstr "コレクションへの貢献に関心がある場合は、:ref:`collection contributions` と`collection repository `_ の``README`` と``CONTRIBUTING`` ファイルを参照してください。最初の貢献をできるだけスムーズに進めるために、リポジトリーのドキュメントを慎重に読み、質問がある場合は、リポジトリーメンテナーに助言を求めてください。" + +#: ../../rst/community/contributor_path.rst:64 +msgid "Take a look at GitHub issues labeled with the ``easyfix`` and ``good_first_issue`` labels for:" +msgstr "``easyfix``と``good_first_issue`` でラベル付けされた GitHub の問題を見てください。" + +#: ../../rst/community/contributor_path.rst:66 +#, python-format +msgid "`Ansible collections repositories `_" +msgstr "`Ansible collections repositories `_" + +#: ../../rst/community/contributor_path.rst:67 +#: ../../rst/community/how_can_I_help.rst:67 +#, python-format +msgid "`All other Ansible projects `_" +msgstr "`All other Ansible projects `_" -#: ../../rst/community/contributor_path.rst:65 +#: ../../rst/community/contributor_path.rst:69 +msgid "Issues labeled with the ``docs`` label in `Ansible collections `_ and `other `_ Ansible projects can be also good to start with." +msgstr "`Ansible collections `_ と`other `_ Ansible プロジェクトで、``docs`` のラベルが付いた問題から始めることもできます。" + +#: ../../rst/community/contributor_path.rst:71 +#: ../../rst/community/how_can_I_help.rst:69 +msgid "When you choose an issue to work on, add a comment directly on the GitHub issue to say you are looking at it and let others know to avoid conflicting work. You can also ask for help in a comment if you need it." +msgstr "作業する問題を選択する場合は、GitHub の問題に直接コメントを追加して、その問題を見ていることを伝え、競合する作業を避けるために他の人に知らせてください。必要に応じて、コメントでサポートを求めることもできます。" + +#: ../../rst/community/contributor_path.rst:75 msgid "Continue to contribute" msgstr "継続的に貢献する" -#: ../../rst/community/contributor_path.rst:67 +#: ../../rst/community/contributor_path.rst:77 msgid "We don't expect everybody to know everything. Start small, think big. When you contribute regularly, your proficiency and judgment in the related area will improve quickly and, along with this, the importance of your presence in the project." msgstr "誰もがすべてを知っているとは限りません。小さく始めて、大きく考えてください。定期的に貢献すると、関連分野での習熟度と判断力が急速に向上し、それに伴い、プロジェクトでの存在の重要性も高まります。" -#: ../../rst/community/contributor_path.rst:69 +#: ../../rst/community/contributor_path.rst:79 msgid "See :ref:`communication` for ways to communicate and engage with the Ansible community, including working group meetings, accessing the Bullhorn news bulletin, and upcoming contributor summits." msgstr "ワーキンググループのミーティング、Bullhorn ニュース速報へのアクセス、今後のコントリビューターサミットなど、Ansible コミュニティーとのコミュニケーションおよび三角方法については、:ref:`communication` を参照してください。" -#: ../../rst/community/contributor_path.rst:73 +#: ../../rst/community/contributor_path.rst:83 msgid "Teach others" msgstr "他の人に教える" -#: ../../rst/community/contributor_path.rst:75 -msgid "Share your experience with other contributors through `improving documentation `, answering question from other contributors and users on `Matrix/Libera.Chat IRC `, giving advice in issues and pull requests, and discussing the `Community Topics `_." -msgstr "`improving documentation ` を通じて他のコントリビューターと経験を共有したり、`Matrix/Libera.Chat IRC ` で他のコントリビューターやユーザーからの質問に答えたりできます。また、issue やプル要求に対して助言したり、`Community Topics `_ について議論したりもできます。" +#: ../../rst/community/contributor_path.rst:85 +msgid "Share your experience with other contributors through :ref:`improving documentation`, answering questions from other contributors and users on :ref:`Matrix/Libera.Chat IRC`, giving advice on issues and pull requests, and discussing `Community Topics `_." +msgstr ":ref:`improving documentation` を通じて他のコントリビューターと経験を共有したり、:ref:`Matrix/Libera.Chat IRC` で他のコントリビューターやユーザーからの質問に答えたりできます。また、issue やプル要求に対して助言したり、`Community Topics `_ について議論したりもできます。" -#: ../../rst/community/contributor_path.rst:78 -#: ../../rst/community/how_can_I_help.rst:67 +#: ../../rst/community/contributor_path.rst:88 +#: ../../rst/community/how_can_I_help.rst:75 msgid "Become a collection maintainer" msgstr "コレクションメンテナーになる" -#: ../../rst/community/contributor_path.rst:80 +#: ../../rst/community/contributor_path.rst:90 msgid "If you are a code contributor to a collection, you can get extended permissions in the repository and become a maintainer. A collection maintainer is a contributor trusted by the community who makes significant and regular contributions to the project and showed themselves as a specialist in the related area. See :ref:`maintainers` for details." msgstr "コレクションのコードコントリビューターである場合、リポジトリーで拡張パーミッションを取得してメンテナーになることができます。コレクションメンテナーはコミュニティーに信頼されるコントリビューターで、プロジェクトに大きく、定期的な貢献を行い、該当分野の専門家としての地位を示します。詳細は :ref:`maintainers` を参照してください。" -#: ../../rst/community/contributor_path.rst:82 -msgid "For some collections that use the `collection bot `_ , such as `community.general `_ and `community.network `_, you can have different levels of access and permissions." -msgstr "や `community.general `_ や `community.network `_ などの `collection bot `_ を使用する一部のコレクションでは、異なるレベルのアクセスおよびパーミッションを設定できます。" +#: ../../rst/community/contributor_path.rst:92 +msgid "For some collections that use the `collection bot `_, such as `community.general `_ and `community.network `_, you can have different levels of access and permissions." +msgstr "`community.general `_ や `community.network `_ などの `collection bot `_ を使用する一部のコレクションでは、異なるレベルのアクセスおよびパーミッションを設定できます。" -#: ../../rst/community/contributor_path.rst:84 -msgid "`module_maintainers` - The stage prior to becoming a collection maintainer. The file is usually a module or plugin. File maintainers have indirect commit rights." -msgstr "`module_maintainers` - コレクションメンテナーになる前のステージ。通常、ファイルはモジュールまたはプラグインです。ファイルメンテナーには間接的なコミット権限があります。" +#: ../../rst/community/contributor_path.rst:94 +msgid ":ref:`module_maintainers` - The stage prior to becoming a collection maintainer. The file is usually a module or plugin. File maintainers have indirect commit rights." +msgstr ":ref:`module_maintainers` - コレクションメンテナーになる前のステージ。通常、ファイルはモジュールまたはプラグインです。ファイルメンテナーには間接的なコミット権限があります。" -#: ../../rst/community/contributor_path.rst:85 +#: ../../rst/community/contributor_path.rst:95 msgid "supershipit permissions - Similar to being a file maintainer but the scope where a maintainer has the indirect commit is the whole repository." msgstr "Supershipit パーミッション - ファイルメンテナーに似ていますが、メンテナーの持つ間接コミットの範囲はリポジトリー全体に及びます。" -#: ../../rst/community/contributor_path.rst:86 -msgid "``triage`` - Access to the repository that allows contributors manage issues and pull requests." -msgstr "``triage`` - コントリビューターによる issuee およびプル要求の管理を可能にするリポジトリーへのアクセス。" +#: ../../rst/community/contributor_path.rst:96 +msgid "``triage`` - Access to the repository that allows contributors to manage issues and pull requests." +msgstr "``triage`` - コントリビューターによる issue およびプル要求の管理を可能にするリポジトリーへのアクセス。" -#: ../../rst/community/contributor_path.rst:87 +#: ../../rst/community/contributor_path.rst:97 msgid "``write`` access to the repository also known as ``commit``. In other words, become a committer. This access level allows contributors to merge pull requests to the development branch as well as perform all the other activities listed in the :ref:`maintainers`." msgstr "``commit`` とも呼ばれるリポジトリーへの ``write`` アクセス。つまり、コミッターになります。コントリビューターはこのアクセスレベルで、開発ブランチにプル要求をマージでき、:ref:`maintainers` に記載されている他のすべてのアクティビティーも実行できます。" -#: ../../rst/community/contributor_path.rst:89 +#: ../../rst/community/contributor_path.rst:99 msgid "For information about permission levels, see the `GitHub official documentation `_." msgstr "パーミッションレベルの詳細は、`GitHub official documentation `_ を参照してください。" -#: ../../rst/community/contributor_path.rst:92 +#: ../../rst/community/contributor_path.rst:102 msgid "Become a steering committee member" msgstr "Steering Committee メンバーになる" -#: ../../rst/community/contributor_path.rst:96 +#: ../../rst/community/contributor_path.rst:106 msgid "You do NOT have to be a programmer to become a steering committee member." msgstr "プログラマーでなくても、Steering Committee メンバーになれます。" -#: ../../rst/community/contributor_path.rst:98 -msgid "The :ref:`Steering Committee ` member status reflects the highest level of trust which allows contributors to lead the project through making very important `decisions `_ for the Ansible project. The Committee members are the community leaders who shape the project's future and the future of automation in the IT world in general." +#: ../../rst/community/contributor_path.rst:108 +msgid "The :ref:`Steering Committee ` member status reflects the highest level of trust which allows contributors to lead the project by making very important `decisions `_ for the Ansible project. The Committee members are the community leaders who shape the project's future and the future of automation in the IT world in general." msgstr ":ref:`Steering Committee ` メンバーのステータスは、最高の信頼レベルを反映しています。これにより、コントリビューターは Ansible プロジェクトにとって非常に重要な `decisions `_ を作成してプロジェクトを牽引できます。Committee メンバーはコミュニティーのリーダーであり、プロジェクトの未来と IT 全般における自動化の未来を形成します。" -#: ../../rst/community/contributor_path.rst:100 +#: ../../rst/community/contributor_path.rst:110 msgid "To reach the status, as the current Committee members did before getting it, along with the things mentioned in this document, you should:" msgstr "このステータスに達するには、現在の Cimmittee メンバーがメンバーになる前に行ったように、このドキュメントに記載した内容の他にも以下を行う必要があります。" -#: ../../rst/community/contributor_path.rst:102 +#: ../../rst/community/contributor_path.rst:112 msgid "Subscribe to, comment on, and vote on the `Community Topics `_." msgstr "`Community Topics `_ でサブスクライブ、コメント、評価を行います。" -#: ../../rst/community/contributor_path.rst:103 +#: ../../rst/community/contributor_path.rst:113 msgid "Propose your topics." msgstr "トピックを提案します。" -#: ../../rst/community/contributor_path.rst:104 -msgid "If time permits, join the `Community meetings `_ Note this is **NOT** a requirement." +#: ../../rst/community/contributor_path.rst:114 +msgid "If time permits, join the `Community meetings `_. Note this is **NOT** a requirement." msgstr "時間があれば、`Community meetings `_ に参加します。これは必須では **ありません**。" #: ../../rst/community/create_pr_quick_start.rst:5 @@ -3162,8 +3234,8 @@ msgid "These steps assume a Linux work environment with ``git`` installed." msgstr "以下の手順は、``git`` がインストールされている Linux の作業環境を想定しています。" #: ../../rst/community/create_pr_quick_start.rst:19 -msgid "Install and start ``docker`` or ``podman`` with the ``docker`` executable shim. This insures tests run properly isolated and in the exact environments as in CI. The latest ``ansible-core`` development version also supports the ``podman`` CLI program." -msgstr "``docker`` 実行可能ファイル shim で ``docker`` または ``podman`` をインストールおよび起動します。これにより、テストが適切に分離され、CI とまったく同じ環境で実行されることが保証されます。最新の ``ansible-core`` 開発バージョンは、``podman`` CLI プログラムもサポートします。" +msgid "Install and start ``docker`` or ``podman``. This ensures tests run properly isolated and in the same environment as in CI." +msgstr "``docker`` または ``podman`` をインストールして起動します。これにより、CI と同じ環境で、正しく分離してテストが実行されるようにします。" #: ../../rst/community/create_pr_quick_start.rst:21 msgid ":ref:`Install Ansible or ansible-core `. You need the ``ansible-test`` utility which is provided by either of these packages." @@ -3210,7 +3282,7 @@ msgid "Change the code" msgstr "コードの変更" #: ../../rst/community/create_pr_quick_start.rst:95 -msgid "Do NOT mix several bugfixes or features that are not tightly-related in one pull request. Use separate pull requests for different changes." +msgid "Do NOT mix several bug fixes or features that are not tightly related in one pull request. Use separate pull requests for different changes." msgstr "1 つのプルリクエストに密接に関連していない複数のバグ修正または機能を混在させないでください。変更ごとに個別のプルリクエストを使用します。" #: ../../rst/community/create_pr_quick_start.rst:97 @@ -3234,23 +3306,19 @@ msgid "The ``main.yml`` file holds test tasks and includes other test files. Loo msgstr "``main.yml`` ファイルは、テストタスクを保持し、他のテストファイルを含みます。テストの統合に適切なテストファイルを探すか、専用のテストファイルを作成して追加します。既存のテストファイルの 1 つをドラフトとして使用することができます。" #: ../../rst/community/create_pr_quick_start.rst:116 -msgid "When fixing a bug, write a task which reproduces the bug from the issue." -msgstr "バグを修正する際に、issue からバグを再現するタスクを作成します。" +msgid "When fixing a bug, write a task that reproduces the bug from the issue." +msgstr "バグを修正する際に、問題からバグを再現するタスクを作成します。" #: ../../rst/community/create_pr_quick_start.rst:118 msgid "Put the reported case in the tests, then run integration tests with the following command:" msgstr "報告されたケースをテストに入れてから、以下のコマンドで統合テストを実行します。" #: ../../rst/community/create_pr_quick_start.rst:124 -msgid "For example, if the tests files you changed are stored in ``tests/integration/targets/test_mysql_user/``, the command is as follows:" +msgid "For example, if the test files you changed are stored in ``tests/integration/targets/test_mysql_user/``, the command is as follows:" msgstr "たとえば、変更したテストファイルが ``tests/integration/targets/test_mysql_user/`` に保存されている場合、コマンドは以下のようになります。" -#: ../../rst/community/create_pr_quick_start.rst:130 -msgid "You can use the ``-vv`` or ``-vvv`` argument, if you need more detailed output." -msgstr "より詳細な出力が必要な場合は、``-vv`` 引数または ``-vvv`` 引数を使用できます。" - #: ../../rst/community/create_pr_quick_start.rst:132 -msgid "In the examples above, the default test image is automatically downloaded and used to create and run a test container. Use the default test image for platform independent integration tests such as those for cloud modules." +msgid "In the examples above, the default test image is automatically downloaded and used to create and run a test container. Use the default test image for platform-independent integration tests such as those for cloud modules." msgstr "上記の例では、デフォルトのテストイメージが自動的にダウンロードされ、テストコンテナーの作成と実行に使用されます。クラウドモジュールなどに向けたプラットフォームに依存しない統合テストには、デフォルトのテストイメージを使用します。" #: ../../rst/community/create_pr_quick_start.rst:135 @@ -3270,7 +3338,7 @@ msgid "If the bug has not appeared and the tests have passed successfully, ask t msgstr "バグが発生しておらず、テストが合格した場合は、レポーターにさらなる詳細を提供するよう依頼してください。バグではない可能性、または使用されている特定のソフトウェアバージョンまたはレポーターのローカル環境設定の詳細に関連している可能性があります。" #: ../../rst/community/create_pr_quick_start.rst:148 -msgid "The bug has appeared and the tests has failed as expected showing the reported symptoms." +msgid "The bug has appeared and the tests have failed as expected showing the reported symptoms." msgstr "バグが発生し、テストは予想どおりに失敗し、報告された症状が示されました。" #: ../../rst/community/create_pr_quick_start.rst:151 @@ -3294,7 +3362,7 @@ msgid "Run ``flake8`` against a changed file:" msgstr "変更されたファイルに対して ``flake8`` を実行します。" #: ../../rst/community/create_pr_quick_start.rst:167 -msgid "This shows unused imports, which is not shown by sanity tests, as well as other common issues. Optionally, you can use the ``--max-line-length=160`` command-line argument." +msgid "This shows unused imports, which are not shown by sanity tests, as well as other common issues. Optionally, you can use the ``--max-line-length=160`` command-line argument." msgstr "これは、健全性テストによって表示されない未使用のインポートと、その他の一般的な issue を示しています。オプションで、``--max-line-length=160`` コマンドライン引数を使用できます。" #: ../../rst/community/create_pr_quick_start.rst:170 @@ -3318,7 +3386,7 @@ msgid "There are two possible outcomes:" msgstr "考えられる結果は 2 つあります。" #: ../../rst/community/create_pr_quick_start.rst:196 -msgid "They have failed. Look at the output of the command. Fix the problem place in the code and run again. Repeat the cycle until the tests pass." +msgid "They have failed. Look at the output of the command. Fix the problem in the code and run again. Repeat the cycle until the tests pass." msgstr "テストに失敗しました。コマンドの出力で確認してみてください。コード内の問題箇所を修正し、再度実行します。テストに合格するまでこのサイクルを繰り返します。" #: ../../rst/community/create_pr_quick_start.rst:197 @@ -3366,8 +3434,8 @@ msgid "GitHub is tracking your fork, so it should see the new branch in it and a msgstr "GitHub はフォークを追跡しているため、フォーク内に新しいブランチが表示され、プルリクエストの作成が自動的に提案されます。GitHub が提案しない場合もあるので、その場合はご自身で `New pull request` ボタンを押してください。続いて、guilabel:`Compare changes` タイトルの下にある `compare across forks` を選択します。" #: ../../rst/community/create_pr_quick_start.rst:237 -msgid "5.Choose your repository and the new branch you pushed in the right drop-down list. Confirm." -msgstr "5. リポジトリーとプッシュした新しいブランチを右側のドロップダウンリストから選択します。確認します。" +msgid "Choose your repository and the new branch you pushed in the right drop-down list. Confirm." +msgstr "リポジトリーとプッシュした新しいブランチを右側のドロップダウンリストから選択します。確認します。" #: ../../rst/community/create_pr_quick_start.rst:239 msgid "Fill out the pull request template with all information you want to mention." @@ -3402,11 +3470,11 @@ msgid "Verify the CI tests pass that run automatically on Red Hat infrastructure msgstr "コミットするたびに、Red Hat インフラストラクチャーで自動的に実行される CI テストに合格することを確認します。" #: ../../rst/community/create_pr_quick_start.rst:266 -msgid "You will see the CI status in the bottom of your pull request. If they are green and you think that you do not want to add more commits before someone should take a closer look at it, remove ``[WIP]`` from the title. Mention the issue reporter in a comment and let contributors know that the pull request is \"Ready for review\"." +msgid "You will see the CI status at the bottom of your pull request. If they are green and you think that you do not want to add more commits before someone should take a closer look at it, remove ``[WIP]`` from the title. Mention the issue reporter in a comment and let contributors know that the pull request is \"Ready for review\"." msgstr "プル要求の下部に CI ステータスが表示されます。それらが緑色で、コミットをさらに追加する前に、誰かに詳しく見てもらいたいと思う場合は、タイトルから ``[WIP]`` を削除します。コメントに issue レポーターを記載し、プルリクエストが \"Ready for review\" であることをコントリビューターに知らせます。" #: ../../rst/community/create_pr_quick_start.rst:268 -msgid "Wait for reviews. You can also ask for review in the ``#ansible-community`` :ref:`Matrix/Libera.Chat IRC channel `." +msgid "Wait for reviews. You can also ask for a review in the ``#ansible-community`` :ref:`Matrix/Libera.Chat IRC channel `." msgstr "レビューを待ちます。``#ansible-community`` :ref:`Matrix/Libera.Chat IRC channel ` でもレビューを依頼することができます。" #: ../../rst/community/create_pr_quick_start.rst:270 @@ -3450,12 +3518,12 @@ msgid "various GitHub `projects `_ msgstr "さまざまな GitHub `プロジェクト `_ - 以下に例を示します。" #: ../../rst/community/development_process.rst:26 -msgid "the `2.12 release project `_" -msgstr "`2.12 リリースプロジェクト `_" +msgid "the `2.15 release project `_" +msgstr "`2.15 release project `_" #: ../../rst/community/development_process.rst:27 -msgid "the `core documentation project `_" -msgstr "`コアドキュメントプロジェクト `_" +msgid "the `core documentation project `_" +msgstr "`core documentation project `_" #: ../../rst/community/development_process.rst:36 msgid "If you want to contribute a feature or fix a bug in ``ansible-core`` or in a collection, you must open a **pull request** (\"PR\" for short). GitHub provides a great overview of `how the pull request process works `_ in general. The ultimate goal of any pull request is to get merged and become part of a collection or ``ansible-core``. Here's an overview of the PR lifecycle:" @@ -3770,8 +3838,8 @@ msgid "These instructions assume that:" msgstr "これらの手順は、以下を前提としています。" #: ../../rst/community/development_process.rst:333 -msgid "``stable-2.13`` is the targeted release branch for the backport" -msgstr "``stable-2.13`` は、バックポートのターゲットリリースブランチです。" +msgid "``stable-2.14`` is the targeted release branch for the backport" +msgstr "``stable-2.14`` は、バックポートのターゲットリリースブランチです。" #: ../../rst/community/development_process.rst:334 msgid "``https://github.com/ansible/ansible.git`` is configured as a ``git remote`` named ``upstream``. If you do not use a ``git remote`` named ``upstream``, adjust the instructions accordingly." @@ -3798,16 +3866,16 @@ msgid "Push your feature branch to your fork on GitHub:" msgstr "feature ブランチを GitHub のフォークにプッシュします。" #: ../../rst/community/development_process.rst:358 -msgid "Submit the pull request for ``backport/2.13/[PR_NUMBER_FROM_DEVEL]`` against the ``stable-2.13`` branch" -msgstr "``stable-2.13`` ブランチに、``backport/2.13/[PR_NUMBER_FROM_DEVEL]`` のプル要求を送信します。" +msgid "Submit the pull request for ``backport/2.14/[PR_NUMBER_FROM_DEVEL]`` against the ``stable-2.14`` branch" +msgstr "``stable-2.14`` ブランチに、``backport/2.14/[PR_NUMBER_FROM_DEVEL]`` のプルリクエストを送信します。" #: ../../rst/community/development_process.rst:360 msgid "The Release Manager will decide whether to merge the backport PR before the next minor release. There isn't any need to follow up. Just ensure that the automated tests (CI) are green." msgstr "次のマイナーリリースまでにバックポートのプル要求をマージするかどうかはリリースマネージャーが判断します。フォローアップの必要はありません。自動テスト (CI) に問題が発生していないことを確認するだけです。" #: ../../rst/community/development_process.rst:364 -msgid "The branch name ``backport/2.13/[PR_NUMBER_FROM_DEVEL]`` is somewhat arbitrary but conveys meaning about the purpose of the branch. This branch name format is not required, but it can be helpful, especially when making multiple backport PRs for multiple stable branches." -msgstr "ブランチ名 ``backport/2.13/[PR_NUMBER_FROM_DEVEL]`` はやや恣意的ですが、ブランチの目的についての意味を伝えます。このブランチ名の形式は必須ではありませんが、特に複数の安定したブランチに対して複数のバックポートプル要求を作成する場合に役立ちます。" +msgid "The branch name ``backport/2.14/[PR_NUMBER_FROM_DEVEL]`` is somewhat arbitrary but conveys meaning about the purpose of the branch. This branch name format is not required, but it can be helpful, especially when making multiple backport PRs for multiple stable branches." +msgstr "ブランチ名 ``backport/2.14/[PR_NUMBER_FROM_DEVEL]`` は任意ですが、ブランチの目的がわかるようにします。このブランチ名の形式は必須ではありませんが、特に複数の安定したブランチに対して複数のバックポートプルリクエストを作成する場合に役立ちます。" #: ../../rst/community/development_process.rst:368 msgid "If you prefer, you can use CPython's cherry-picker tool (``pip install --user 'cherry-picker >= 1.3.2'``) to backport commits from devel to stable branches in Ansible. Take a look at the `cherry-picker documentation `_ for details on installing, configuring, and using it." @@ -3886,203 +3954,234 @@ msgid "Keep an eye on your PR - the docs team may ask you for changes." msgstr "送信した PR に注意を払い続けてください。ドキュメントチームから変更を依頼される場合があります。" #: ../../rst/community/documentation_contributions.rst:39 -msgid "Reviewing open PRs and issues" -msgstr "PR および問題の確認" +msgid "Reviewing or solving open issues" +msgstr "未解決の問題の確認または解決" #: ../../rst/community/documentation_contributions.rst:41 -#, python-format -msgid "You can also contribute by reviewing open documentation `issues `_ and `PRs `_. To add a helpful review, please:" -msgstr "開いているドキュメントの `問題 (issue) `_ および `プル要求 `_ を確認することで貢献することもできます。役に立つレビューを追加するには、以下を参照してください。" +msgid "Review or solve open documentation issues for:" +msgstr "次の未解決のドキュメントの問題を確認または解決します。" #: ../../rst/community/documentation_contributions.rst:43 -msgid "Include a comment - \"looks good to me\" only helps if we know why." -msgstr "「looks good to me (私には良さそうに見える)」というコメントは、他の人にもその理由が明らかな場合にのみ使用してください。" +msgid "`Ansible projects `_" +msgstr "`Ansible projects `_" #: ../../rst/community/documentation_contributions.rst:44 -msgid "For issues, reproduce the problem." -msgstr "問題については、問題を再現します。" +msgid "`Ansible collections `_" +msgstr "`Ansible collections `_" + +#: ../../rst/community/documentation_contributions.rst:47 +msgid "Reviewing open PRs" +msgstr "Open となっている PR の確認" + +#: ../../rst/community/documentation_contributions.rst:49 +msgid "Review open documentation pull requests for:" +msgstr "以下の Open となっているドキュメントプルリクエストを確認します。" + +#: ../../rst/community/documentation_contributions.rst:51 +msgid "Ansible `projects `_" +msgstr "Ansible `projects `_" + +#: ../../rst/community/documentation_contributions.rst:52 +msgid "Ansible `collections `_" +msgstr "Ansible `collections `_" + +#: ../../rst/community/documentation_contributions.rst:54 +msgid "To add a helpful review, please:" +msgstr "役立つレビューを追加するには、次の手順に従ってください。" + +#: ../../rst/community/documentation_contributions.rst:56 +msgid "Test the change if applicable." +msgstr "該当する場合は、変更をテストします。" + +#: ../../rst/community/documentation_contributions.rst:57 +msgid "Think if it can be made better (including wording, structure, fixing typos and so on)." +msgstr "改善できるかどうかを考えてください (文言、構造、タイプミスの修正などを含む)。" + +#: ../../rst/community/documentation_contributions.rst:58 +msgid "Suggest improvements." +msgstr "改善内容を提案します。" -#: ../../rst/community/documentation_contributions.rst:45 -msgid "For PRs, test the change." -msgstr "プル要求については、変更をテストします。" +#: ../../rst/community/documentation_contributions.rst:59 +msgid "Approve the change with the ``looks good to me`` comment." +msgstr "``looks good to me`` コメントで変更を承認します。" -#: ../../rst/community/documentation_contributions.rst:48 +#: ../../rst/community/documentation_contributions.rst:62 msgid "Opening a new issue and/or PR" msgstr "新しい問題または PR を開く" -#: ../../rst/community/documentation_contributions.rst:50 +#: ../../rst/community/documentation_contributions.rst:64 msgid "If the problem you have noticed is too complex to fix with the ``Edit on GitHub`` option, and no open issue or PR already documents the problem, please open an issue and/or a PR on the correct underlying repo - ``ansible/ansible`` for most pages that are not plugin or module documentation. If the documentation page has no ``Edit on GitHub`` option, check if the page is for a module within a collection. If so, follow the link to the collection on Galaxy and select the ``repo`` button in the upper right corner to find the source repository for that collection and module. The Collection README file should contain information on how to contribute to that collection, or report issues." msgstr "気づいた問題が複雑すぎて ``Edit on GitHub`` オプションでは修正できず、その問題が報告されていなかったり、プル要求が作成されていない場合は、正しい基盤のリポジトリーで問題またはプル要求を作成してください (プラグインやモジュールのドキュメント以外のほとんどのページについては、``ansible/ansible`` で問題またはプル要求を作成してください)。ドキュメントページに ``Edit on GitHub`` オプションがない場合は、そのページがコレクション内のモジュール用であるかどうかを確認します。その場合は、Galaxy のコレクションへのリンクに従い、右上隅の ``repo`` ボタンを選択して、そのコレクションとモジュールのソースリポジトリーを見つけてください。コレクション README ファイルには、そのコレクションへの貢献方法、または問題を報告する方法に関する情報が含まれているはずです。" -#: ../../rst/community/documentation_contributions.rst:52 +#: ../../rst/community/documentation_contributions.rst:66 msgid "A great documentation GitHub issue or PR includes:" msgstr "GitHub の問題や PR には、以下のような内容を追加してください。" -#: ../../rst/community/documentation_contributions.rst:54 +#: ../../rst/community/documentation_contributions.rst:68 msgid "a specific title" msgstr "特定のタイトル" -#: ../../rst/community/documentation_contributions.rst:55 +#: ../../rst/community/documentation_contributions.rst:69 msgid "a detailed description of the problem (even for a PR - it's hard to evaluate a suggested change unless we know what problem it's meant to solve)" msgstr "問題の詳細な説明 (何が問題なのか分からないと変更案の評価が困難になるため、プル要求の場合でも同様)" -#: ../../rst/community/documentation_contributions.rst:56 +#: ../../rst/community/documentation_contributions.rst:70 msgid "links to other information (related issues/PRs, external documentation, pages on docs.ansible.com, and so on)" msgstr "その他の情報 (関連する問題やプル要求、外部ドキュメント、docs.ansible.com のページなど) へのリンク" -#: ../../rst/community/documentation_contributions.rst:60 +#: ../../rst/community/documentation_contributions.rst:74 msgid "Verifying your documentation PR" msgstr "ドキュメントプル要求の確認" -#: ../../rst/community/documentation_contributions.rst:62 +#: ../../rst/community/documentation_contributions.rst:76 msgid "If you make multiple changes to the documentation on ``ansible/ansible``, or add more than a line to it, before you open a pull request, please:" msgstr "``ansible/ansible`` のドキュメントに複数の変更を加えたり、複数の行を追加したりする場合は、プル要求を開始する前に、以下を行います。" -#: ../../rst/community/documentation_contributions.rst:64 +#: ../../rst/community/documentation_contributions.rst:78 msgid "Check that your text follows our :ref:`style_guide`." msgstr "記述した内容が、:ref:`style_guide` に従っていることを確認してください。" -#: ../../rst/community/documentation_contributions.rst:65 +#: ../../rst/community/documentation_contributions.rst:79 msgid "Test your changes for rST errors." msgstr "変更した内容が rST のエラーになっていないかテストしてください。" -#: ../../rst/community/documentation_contributions.rst:66 +#: ../../rst/community/documentation_contributions.rst:80 msgid "Build the page, and preferably the entire documentation site, locally." msgstr "ページ、できればドキュメントサイト全体をローカルでビルドします。" -#: ../../rst/community/documentation_contributions.rst:70 +#: ../../rst/community/documentation_contributions.rst:84 msgid "The following sections apply to documentation sourced from the ``ansible/ansible`` repo and does not apply to documentation from an individual collection. See the collection README file for details on how to contribute to that collection." msgstr "以下のセクションは、``ansible/ansible`` リポジトリーから取得したドキュメントに適用され、個別のコレクションからのドキュメントには適用されません。そのコレクションへの貢献方法は、コレクションの README ファイルを参照してください。" -#: ../../rst/community/documentation_contributions.rst:73 +#: ../../rst/community/documentation_contributions.rst:87 msgid "Setting up your environment to build documentation locally" msgstr "ローカルにドキュメントをビルドするための環境設定" -#: ../../rst/community/documentation_contributions.rst:75 +#: ../../rst/community/documentation_contributions.rst:89 msgid "To build documentation locally, ensure you have a working :ref:`development environment `." msgstr "ローカルにドキュメントをビルドするには、:ref:`development environment ` が有効であることを確認します。" -#: ../../rst/community/documentation_contributions.rst:77 +#: ../../rst/community/documentation_contributions.rst:91 msgid "To work with documentation on your local machine, you need to have python-3.9 or greater and install the `Ansible dependencies`_ and `documentation dependencies`_, which are listed in two files to make installation easier:" msgstr "ローカルマシンでドキュメントを使用するには、python-3.9 以降を使用して、`Ansible dependencies`_ および `documentation dependencies`_ をインストールする必要があります。これらは、インストールを容易にするために、2 つのファイルに記載されています。" -#: ../../rst/community/documentation_contributions.rst:87 +#: ../../rst/community/documentation_contributions.rst:101 msgid "The :file:`docs/docsite/requirements.txt` file allows a wide range of versions and may install new releases of required packages. New releases of these packages may cause problems with the Ansible docs build. If you want to install tested versions of these dependencies, use :file:`test/sanity/code-smell/docs-build.requirements.txt` instead, which matches the dependencies used by CI:" msgstr ":file:`docs/docsite/requirements.txt` ファイルにより、幅広いバージョンを使用でき、必要なパッケージの新しいリリースをインストールできます。これらのパッケージの新規リリースをインストールすると、Ansible ドキュメントのビルドで問題が発生する可能性があります。これらの依存関係のテスト済みバージョンをインストールする場合は、代わりに CI で使用される依存関係と一致する :file:`test/sanity/code-smell/docs-build.requirements.txt` を使用します。" -#: ../../rst/community/documentation_contributions.rst:96 +#: ../../rst/community/documentation_contributions.rst:110 msgid "You can drop ``--user`` if you have set up a virtual environment (venv/virtenv)." msgstr "仮想環境 (venv/virtenv) を設定している場合は、``--user`` を削除することができます。" -#: ../../rst/community/documentation_contributions.rst:100 +#: ../../rst/community/documentation_contributions.rst:114 msgid "You may need to install these general pre-requisites separately on some systems: - ``gcc`` - ``libyaml`` - ``make`` - ``pyparsing`` - ``six`` On macOS with Xcode, you may need to install ``six`` and ``pyparsing`` with ``--ignore-installed`` to get versions that work with ``sphinx``." msgstr "これらの一般的な前提条件を、一部のシステムに個別にインストールしないといけない場合があります ( - ``gcc`` - ``libyaml`` - ``make`` - ``pyparsing`` - ``six``) Xcode を使用する macOS では、``--ignore-installed`` で ``six`` および ``pyparsing`` を使用して、``sphinx`` と連携するバージョンを取得します。" -#: ../../rst/community/documentation_contributions.rst:110 +#: ../../rst/community/documentation_contributions.rst:124 msgid "After checking out ``ansible/ansible``, make sure the ``docs/docsite/rst`` directory has strict enough permissions. It should only be writable by the owner's account. If your default ``umask`` is not 022, you can use ``chmod go-w docs/docsite/rst`` to set the permissions correctly in your new branch. Optionally, you can set your ``umask`` to 022 to make all newly created files on your system (including those created by ``git clone``) have the correct permissions." msgstr "``ansible/ansible`` をチェックアウトしたら、``docs/docsite/rst`` ディレクトリーに十分なパーミッションが付与されていることを確認します。所有者のアカウントのみが書き込み可能でなければなりません。デフォルトの ``umask`` が 022 ではない場合は、``chmod go-w docs/docsite/rst`` を使用して新規ブランチにパーミッションを正しく設定することができます。必要に応じて、``umask`` を 022 に設定して、システムで新に作成されるすべてのファイル (``git clone`` が作成したファイルを含む) に正しいパーミッションを設定することができます。" -#: ../../rst/community/documentation_contributions.rst:115 +#: ../../rst/community/documentation_contributions.rst:129 msgid "Testing the documentation locally" msgstr "ドキュメントのローカルでのテスト" -#: ../../rst/community/documentation_contributions.rst:117 +#: ../../rst/community/documentation_contributions.rst:131 msgid "To test an individual file for rST errors:" msgstr "rST エラーに対して個別のファイルをテストするには、以下を行います。" -#: ../../rst/community/documentation_contributions.rst:124 +#: ../../rst/community/documentation_contributions.rst:138 msgid "Building the documentation locally" msgstr "ローカルでのドキュメントのビルド" -#: ../../rst/community/documentation_contributions.rst:126 +#: ../../rst/community/documentation_contributions.rst:140 msgid "Building the documentation is the best way to check for errors and review your changes. Once `rstcheck` runs with no errors, navigate to ``ansible/docs/docsite`` and then build the page(s) you want to review." msgstr "ドキュメントのビルドは、エラーと変更を確認するのに最適な方法です。エラーなしで `rstcheck` を実行したら、``ansible/docs/docsite`` に移動し、確認するページをビルドします。" -#: ../../rst/community/documentation_contributions.rst:130 +#: ../../rst/community/documentation_contributions.rst:144 msgid "If building on macOS with Python 3.8 or later, you must use Sphinx >= 2.2.2. See `#6803 `_ for details." msgstr "Python 3.8以降を使用してmacOSでビルドする場合は、Sphinx> = 2.2.2を使用する必要があります。詳細は、`#6803 `_を参照してください。" -#: ../../rst/community/documentation_contributions.rst:135 +#: ../../rst/community/documentation_contributions.rst:149 msgid "Building a single rST page" msgstr "単一の rST ページのビルド" -#: ../../rst/community/documentation_contributions.rst:137 +#: ../../rst/community/documentation_contributions.rst:151 msgid "To build a single rST file with the make utility:" msgstr "make ユーティリティーで単一の RST ファイルをビルドするには、以下を実行します。" -#: ../../rst/community/documentation_contributions.rst:149 +#: ../../rst/community/documentation_contributions.rst:163 msgid "This process compiles all the links but provides minimal log output. If you're writing a new page or want more detailed log output, refer to the instructions on :ref:`build_with_sphinx-build`" msgstr "このプロセスはすべてのリンクをコンパイルしますが、ログ出力は最小限になります。新しいページを作成する場合や、より詳細なログ出力が必要な場合は、「:ref:`build_with_sphinx-build`」の手順を参照してください。" -#: ../../rst/community/documentation_contributions.rst:153 +#: ../../rst/community/documentation_contributions.rst:167 msgid "``make htmlsingle`` adds ``rst/`` to the beginning of the path you provide in ``rst=``, so you can't type the filename with autocomplete. Here are the error messages you will see if you get this wrong:" msgstr "``make htmlsingle`` は、``rst=`` で提供されるパスの先頭に ``rst/`` を追加するため、自動補完でファイル名を入力することができません。これが間違っている場合は、以下のようなエラーメッセージが表示されます。" -#: ../../rst/community/documentation_contributions.rst:155 +#: ../../rst/community/documentation_contributions.rst:169 msgid "If you run ``make htmlsingle`` from the ``docs/docsite/rst/`` directory: ``make: *** No rule to make target `htmlsingle'. Stop.``" msgstr "``docs/docsite/rst/`` ディレクトリーから ``make htmlsingle`` を実行した場合は、``make: *** No rule to make target `htmlsingle'. Stop.`` メッセージが表示されます。" -#: ../../rst/community/documentation_contributions.rst:156 +#: ../../rst/community/documentation_contributions.rst:170 msgid "If you run ``make htmlsingle`` from the ``docs/docsite/`` directory with the full path to your rST document: ``sphinx-build: error: cannot find files ['rst/rst/community/documentation_contributions.rst']``." msgstr "rST ドキュメントへの完全パスを使用して ``docs/docsite/`` ディレクトリーから ``make htmlsingle`` を実行した場合は、``sphinx-build: error: cannot find files ['rst/rst/community/documentation_contributions.rst']`` メッセージが表示されます。" -#: ../../rst/community/documentation_contributions.rst:160 +#: ../../rst/community/documentation_contributions.rst:174 msgid "Building all the rST pages" msgstr "すべての rST ページのビルド" -#: ../../rst/community/documentation_contributions.rst:162 +#: ../../rst/community/documentation_contributions.rst:176 msgid "To build all the rST files without any module documentation:" msgstr "モジュールのドキュメント以外のすべての rST ファイルをビルドするには、以下を実行します。" -#: ../../rst/community/documentation_contributions.rst:169 +#: ../../rst/community/documentation_contributions.rst:183 msgid "Building module docs and rST pages" msgstr "モジュールドキュメントと rST ページのビルド" -#: ../../rst/community/documentation_contributions.rst:171 +#: ../../rst/community/documentation_contributions.rst:185 msgid "To build documentation for a few modules included in ``ansible/ansible`` plus all the rST files, use a comma-separated list:" msgstr "``ansible/ansible`` に含まれるいくつかのモジュールとすべての rST ファイルを使用してドキュメントをビルドするには、コンマ区切りリストを使用します。" -#: ../../rst/community/documentation_contributions.rst:177 +#: ../../rst/community/documentation_contributions.rst:191 msgid "To build all the module documentation plus all the rST files:" msgstr "すべてのモジュールドキュメントとすべての rST ファイルをビルドするには、以下を実行します。" -#: ../../rst/community/documentation_contributions.rst:186 +#: ../../rst/community/documentation_contributions.rst:200 msgid "Building rST files with ``sphinx-build``" msgstr "``sphinx-build`` で rST ファイルのビルド" -#: ../../rst/community/documentation_contributions.rst:188 +#: ../../rst/community/documentation_contributions.rst:202 msgid "Advanced users can build one or more rST files with the sphinx utility directly. ``sphinx-build`` returns misleading ``undefined label`` warnings if you only build a single page, because it does not create internal links. However, ``sphinx-build`` returns more extensive syntax feedback, including warnings about indentation errors and ``x-string without end-string`` warnings. This can be useful, especially if you're creating a new page from scratch. To build a page or pages with ``sphinx-build``:" msgstr "上級ユーザーは、sphinx ユーティリティーを直接使用して 1 つ以上の rST ファイルをビルドすることができます。``sphinx-build`` は、内部リンクが作成されないため、1 ページのみをビルドする場合は、誤解を招く ``undefined label`` 警告を返します。ただし、``sphinx-build`` は、インデントエラーや ``x-string without end-string`` 警告など、より広範な構文のフィードバックを返します。これは特に、ゼロから新しいページを作成している場合に役に立ちます。``sphinx-build`` でページをビルドするには、以下のようにします。" -#: ../../rst/community/documentation_contributions.rst:194 +#: ../../rst/community/documentation_contributions.rst:208 msgid "You can specify filenames, or ``–a`` for all files, or omit both to compile only new/changed files." msgstr "ファイル名を指定することもできますし、すべてのファイルに ``–a`` を指定することもできます。もしくは、両方を省略して新しいまたは変更されたファイルだけをコンパイルすることもできます。" -#: ../../rst/community/documentation_contributions.rst:203 +#: ../../rst/community/documentation_contributions.rst:217 msgid "Running the final tests" msgstr "最終テストの実行" -#: ../../rst/community/documentation_contributions.rst:205 +#: ../../rst/community/documentation_contributions.rst:219 msgid "When you submit a documentation pull request, automated tests are run. Those same tests can be run locally. To do so, navigate to the repository's top directory and run:" msgstr "ドキュメントのプル要求を送信すると、自動テストが実行します。同じテストをローカルで実行できます。これを行うには、リポジトリーの最上位ディレクトリーに移動し、以下を実行します。" -#: ../../rst/community/documentation_contributions.rst:213 +#: ../../rst/community/documentation_contributions.rst:227 msgid "Unfortunately, leftover rST-files from previous document-generating can occasionally confuse these tests. It is therefore safest to run them on a clean copy of the repository, which is the purpose of ``make clean``. If you type these three lines one at a time and manually check the success of each, you do not need the ``&&``." msgstr "ただし、以前ドキュメントを生成した時の rST ファイルが残っていると、このテストを混乱させることがあります。そのため、リポジトリーのクリーンコピー上で実行するのが最も安全です。これが、``make clean`` の目的でもあります。この 3 つの行を一度に 1 行ずつ入力して、各行が成功したことを手動で確認する場合、``&&`` は必要ありません。" -#: ../../rst/community/documentation_contributions.rst:216 +#: ../../rst/community/documentation_contributions.rst:230 msgid "Joining the documentation working group" msgstr "ドキュメントワーキンググループへの参加" -#: ../../rst/community/documentation_contributions.rst:218 +#: ../../rst/community/documentation_contributions.rst:232 msgid "The Documentation Working Group (DaWGs) meets weekly on Tuesdays in the Docs chat (using `Matrix `_ or using IRC at `irc.libera.chat `_). For more information, including links to our agenda and a calendar invite, please visit the `working group page in the community repo `_." msgstr "ドキュメントワーキンググループ (DaWGs)は、Docs チャットで、毎週火曜日に集まっています(`Matrix `_または`irc.libera.chat `_のIRCを使用)。議題へのリンクや、カレンダーの招待状などの詳細は、「`working group page in the community repo `_」をご覧ください。" -#: ../../rst/community/documentation_contributions.rst:221 +#: ../../rst/community/documentation_contributions.rst:235 msgid ":ref:`More about testing module documentation `" msgstr ":ref:`More about testing module documentation `" -#: ../../rst/community/documentation_contributions.rst:223 +#: ../../rst/community/documentation_contributions.rst:237 msgid ":ref:`More about documenting modules `" msgstr ":ref:`モジュールのドキュメント化の詳細 `" @@ -4116,20 +4215,20 @@ msgstr "Ansible の詳細情報:" #: ../../rst/community/getting_started.rst:28 msgid "`Read books `_." -msgstr "`Read books `" +msgstr "`Read books `_。" #: ../../rst/community/getting_started.rst:29 #: ../../rst/community/how_can_I_help.rst:23 msgid "`Get certified `_." -msgstr "`Get certified `" +msgstr "`Get certified `_。" #: ../../rst/community/getting_started.rst:30 msgid "`Attend events `_." -msgstr "`イベントに参加する `_。" +msgstr "`Attend events `_。" #: ../../rst/community/getting_started.rst:31 msgid "`Review getting started guides `_." -msgstr "`スタートガイドを確認する `_。" +msgstr "`Review getting started guides `_。" #: ../../rst/community/getting_started.rst:32 msgid "`Watch videos `_ - includes Ansible Automates, AnsibleFest & webinar recordings." @@ -4268,38 +4367,47 @@ msgid "As you become more familiar with how Ansible works, you may be able to fi msgstr "Ansible の機能について理解が深まると、問題を修正したり、新しい機能を自分で開発したりできるようになります。Ansible で見つかったバグの解決策を見つけた場合や、自身が作成した新機能を何百万人もの Ansible ユーザーと共有したい場合は、:ref:`development process ` をよく読んで、作成したコードを Ansible に受け入れてもらう方法を学んでください。" #: ../../rst/community/how_can_I_help.rst:64 -msgid "Another good way to help is to review pull requests that other Ansible users have submitted. Ansible core keeps a full list of `open pull requests by file `_, so if a particular module or plugin interests you, you can easily keep track of all the relevant new pull requests and provide testing or feedback. Alternately, you can review the pull requests for any collections that interest you. Click :guilabel:`Issue tracker` on the collection documentation page to find the issues and PRs for that collection." -msgstr "もう 1 つの優れた方法は、他の Ansible ユーザーが送信したプル要求を確認することです。Ansible コアは `open pull requests by file `_ の完全なリストを保持しているため、興味を持った特定のモジュールまたはプラグインに関連する新規新規プル要求を簡単に追跡して、テストやフィードバックを提供できます。また、興味のあるコレクションのプル要求を確認することもできます。コレクションのドキュメントページで :guilabel:`Issue tracker` をクリックすると、そのコレクションの issue とプル要求を見つけることができます。" +msgid "You can also get started with solving GitHub issues labeled with the ``easyfix`` and ``good_first_issue`` labels for:" +msgstr "``easyfix`` と ``good_first_issue`` のラベルが付いた GitHub の問題の解決を開始することもできます。" -#: ../../rst/community/how_can_I_help.rst:69 +#: ../../rst/community/how_can_I_help.rst:66 +#, python-format +msgid "`Ansible collections `_" +msgstr "`Ansible collections `_" + +#: ../../rst/community/how_can_I_help.rst:72 +msgid "Another good way to help is to review pull requests that other Ansible users have submitted. Ansible core keeps a full list of `open pull requests by file `_, so if a particular module or plugin interests you, you can easily keep track of all the relevant new pull requests and provide testing or feedback. Alternatively, you can review the pull requests for any collections that interest you. Click :guilabel:`Issue tracker` on the collection documentation page to find the issues and PRs for that collection." +msgstr "もう 1 つの優れた方法は、他の Ansible ユーザーが送信したプル要求を確認することです。Ansible コアは `open pull requests by file `_ の完全なリストを保持しているため、興味を持った特定のモジュールまたはプラグインに関連する新規新規プル要求を簡単に追跡して、テストやフィードバックを提供できます。または、興味のあるコレクションのプル要求を確認することもできます。コレクションのドキュメントページで :guilabel:`Issue tracker` をクリックすると、そのコレクションの issue とプル要求を見つけることができます。" + +#: ../../rst/community/how_can_I_help.rst:77 msgid "Once you have learned about the development process and have contributed code to a collection, we encourage you to become a maintainer of that collection. There are hundreds of modules in dozens of Ansible collections, and the vast majority of them are written and maintained entirely by members of the Ansible community." msgstr "開発プロセスについて学習し、コードをコレクションに提供したら、そのコレクションのメンテナーになるよう推奨されます。Ansible には数百ものモジュールがあり、その大部分は Ansible コミュニティーのメンバーによって完全に記述され、維持されています。" -#: ../../rst/community/how_can_I_help.rst:71 +#: ../../rst/community/how_can_I_help.rst:79 msgid "See :ref:`collection maintainer guidelines ` to learn more about the responsibilities of being an Ansible collection maintainer." msgstr "Ansible コレクションメンテナーとしての責任について、詳細は :ref:`collection maintainer guidelines ` を参照してください。" -#: ../../rst/community/how_can_I_help.rst:76 +#: ../../rst/community/how_can_I_help.rst:84 msgid "Join a working group" msgstr "ワーキンググループへの参加" -#: ../../rst/community/how_can_I_help.rst:78 +#: ../../rst/community/how_can_I_help.rst:86 msgid "Working groups are a way for Ansible community members to self-organize around particular topics of interest. We have working groups around various topics. To join or create a working group, please read the :ref:`Ansible Working Groups`." msgstr "ワーキンググループは、Ansible コミュニティーのメンバーが関心のある特定のトピックについて自己編成する方法です。さまざまなトピックに関するワーキンググループがあります。ワーキンググループに参加するか、「:ref:`Ansible ワーキンググループ`」を参照してください。" -#: ../../rst/community/how_can_I_help.rst:82 +#: ../../rst/community/how_can_I_help.rst:90 msgid "Teach Ansible to others" msgstr "Ansible を紹介する" -#: ../../rst/community/how_can_I_help.rst:84 +#: ../../rst/community/how_can_I_help.rst:92 msgid "We are working on a standardized `Ansible workshop `_ that can provide a good hands-on introduction to Ansible usage and concepts." msgstr "現在、Ansible の使用方法や概念をしっかりとハンズオンで紹介できる標準化された `Ansible ワークショップ `_ に取り組んでいます。" -#: ../../rst/community/how_can_I_help.rst:87 +#: ../../rst/community/how_can_I_help.rst:95 msgid "Social media" msgstr "ソーシャルメディア" -#: ../../rst/community/how_can_I_help.rst:89 +#: ../../rst/community/how_can_I_help.rst:97 msgid "If you like Ansible and just want to spread the good word, feel free to share on your social media platform of choice, and let us know by using ``@ansible`` or ``#ansible``. We'll be looking for you." msgstr "Ansible が好きで、Ansible の良さを広めたい方は、お好きなソーシャルメディアプラットフォームで気軽にシェアしてください。コミュニティーメンバーが気が付くように、``@ansible`` または ``#ansible`` を使用することが推奨されます。" @@ -4320,7 +4428,7 @@ msgid "Welcome to the Ansible Community Guide!" msgstr "Ansible コミュニティーガイドにようこそ!" #: ../../rst/community/index.rst:15 -msgid "The purpose of this guide is to teach you everything you need to know about being a contributing member of the Ansible community. All types of contributions are welcome and necessary to Ansible's continued success." +msgid "The purpose of this guide is to teach you everything you need to know about being a contributing member of the Ansible community. All types of contributions are welcome and necessary for Ansible's continued success." msgstr "本ガイドの目的は、Ansible コミュニティーに貢献する際に必要な知識をすべて説明することです。あらゆる種類の貢献が、Ansible の継続的な成功に必要なものであり、歓迎されます。" #: ../../rst/community/maintainers.rst:5 @@ -4337,7 +4445,7 @@ msgstr "以下の情報に加えて、モジュールメンテナーは以下に #: ../../rst/community/maintainers.rst:18 msgid ":ref:`General Ansible community development practices `" -msgstr ":ref:`General Ansible community development practices `" +msgstr ":ref:`Ansible コミュニティー開発に関する一般的なプラクティス `" #: ../../rst/community/maintainers.rst:19 msgid "Documentation on :ref:`module development `" @@ -4368,7 +4476,7 @@ msgid "Subscribe to the collection repository they maintain (click :guilabel:`Wa msgstr "維持しているコレクションリポジトリーにサブスクライブします (GitHub の :guilabel:`Watch > All activity` をクリック)。" #: ../../rst/community/maintainers_guidelines.rst:19 -msgid "Keep README, development guidelines, and other general collection :ref:`maintainer_documentation` relevant." +msgid "Keep README, development guidelines, and other general collections :ref:`maintainer_documentation` relevant." msgstr "README、開発ガイドライン、およびその他の一般的なコレクション :ref:`maintainer_documentation` を維持します。" #: ../../rst/community/maintainers_guidelines.rst:20 @@ -4384,8 +4492,8 @@ msgid "Address or assign issues to appropriate contributors." msgstr "issue に対処するか、適切なコントリビューターに割り当てます。" #: ../../rst/community/maintainers_guidelines.rst:23 -msgid "Release collections." -msgstr "コレクションをリリースします。" +msgid ":ref:`Release collections `." +msgstr ":ref:`Release collections `。" #: ../../rst/community/maintainers_guidelines.rst:24 msgid "Ensure that collections adhere to the `Collection Requirements `_," @@ -4416,7 +4524,7 @@ msgid "How to become a maintainer" msgstr "メンテナーになる方法" #: ../../rst/community/maintainers_guidelines.rst:35 -msgid "A person interested in becoming a maintainer and satisfies the :ref:`requirements` may either self-nominate or be nominated by another maintainer." +msgid "A person interested in becoming a maintainer and satisfying the :ref:`requirements` may either self-nominate or be nominated by another maintainer." msgstr "メンテナーになることに関心があり、:ref:`requirements` を満たしている場合は、自己推薦するか、別のメンテナーに推薦してもらうことができます。" #: ../../rst/community/maintainers_guidelines.rst:37 @@ -4436,7 +4544,7 @@ msgid "Collection contributors and maintainers should also communicate through:" msgstr "コレクションのコントリビューターおよびメンテナーも、以下を通じてコミュニケーションを図る必要があります。" #: ../../rst/community/maintainers_guidelines.rst:47 -msgid ":ref:`communication_irc` appropriate to their collection, or if none exist, the general community and developer chat channels" +msgid ":ref:`communication_irc` appropriate to their collection, or if none exists, the general community and developer chat channels" msgstr "コレクションに適している :ref:`communication_irc`、または何も存在しない場合は、一般的なコミュニティーと開発者のチャットチャネル" #: ../../rst/community/maintainers_guidelines.rst:48 @@ -4459,203 +4567,239 @@ msgstr "AnsibleFest およびローカルの Meetup" msgid "See :ref:`communication` for more details on these communication channels." msgstr "これらの通信チャンネルの詳細は、:ref:`communication` を参照してください。" -#: ../../rst/community/maintainers_guidelines.rst:56 +#: ../../rst/community/maintainers_guidelines.rst:58 +msgid "Establishing working group communication" +msgstr "ワーキンググループのコミュニケーションの確立" + +#: ../../rst/community/maintainers_guidelines.rst:60 +msgid "Working groups depend on efficient, real-time communication. Project maintainers can use the following techniques to establish communication for working groups:" +msgstr "ワーキンググループは、効率的なリアルタイムのコミュニケーションに依存しています。プロジェクト管理者は、次の手法を使用してワーキンググループのコミュニケーションを確立できます。" + +#: ../../rst/community/maintainers_guidelines.rst:63 +msgid "Find an existing :ref:`working_group_list` that is similar to your project and join the conversation." +msgstr "ご自身のプロジェクトに似た既存の :ref:`working_group_list` を検索して、会話に参加します。" + +#: ../../rst/community/maintainers_guidelines.rst:64 +msgid "`Request `_ a new working group for your project." +msgstr "プロジェクトに対して新しいワーキンググループを `リクエスト `_ します。" + +#: ../../rst/community/maintainers_guidelines.rst:65 +msgid "`Create `_ a public chat for your working group or `ask `_ the community team." +msgstr "作業グループの公開チャットまたは`ask `_ コミュニティーチームを `作成 `_ します。" + +#: ../../rst/community/maintainers_guidelines.rst:66 +msgid "Provide working group details and links to chat rooms in the contributor section of your project ``README.md``." +msgstr "プロジェクト ``README.md`` のコントリビューターセクションでワーキンググループの詳細とチャットルームへのリンクを提供します。" + +#: ../../rst/community/maintainers_guidelines.rst:67 +msgid "Encourage contributors to join the chats and add themselves to the working group." +msgstr "コントリビューターに対してチャットへの参加や、ワーキンググループへの参加を推奨します。" + +#: ../../rst/community/maintainers_guidelines.rst:69 +msgid "See the :ref:`Communication guide ` to learn more about real-time chat." +msgstr "リアルタムのチャットに関する情報は、:ref:`Communication guide ` を参照してください。" + +#: ../../rst/community/maintainers_guidelines.rst:72 msgid "Community Topics" msgstr "コミュニティートピック" -#: ../../rst/community/maintainers_guidelines.rst:58 +#: ../../rst/community/maintainers_guidelines.rst:74 msgid "The Community and the `Steering Committee `_ asynchronously discuss and vote on the `Community Topics `_ which impact the whole project or its parts including collections and packaging." msgstr "コミュニティーと `Steering Committee `_ は、プロジェクト全体またはコレクションやパッケージングを含む部分に影響を与える `Community Topics `_ について、非同期的に議論し、投票します。" -#: ../../rst/community/maintainers_guidelines.rst:60 +#: ../../rst/community/maintainers_guidelines.rst:76 msgid "Share your opinion and vote on the topics to help the community make the best decisions." msgstr "コミュニティーが最適な意思決定を行うことができるように、意見を共有し、トピックに投票してください。" -#: ../../rst/community/maintainers_guidelines.rst:65 +#: ../../rst/community/maintainers_guidelines.rst:81 msgid "Contributor Summits" msgstr "コントリビューターサミット" -#: ../../rst/community/maintainers_guidelines.rst:68 -msgid "The quarterly Ansible Contributor Summit is a global event that provides our contributors a great opportunity to meet each other, communicate, share ideas, and see that there are other real people behind the messages on Matrix or Libera Chat IRC or GitHub. This gives a sense of community. Watch the `Bullhorn newsletter `_ for information when the next contributor summit, invite contributors you know, and take part in the event together." -msgstr "四半期ごとに開催される Ansible コントリビューターサミットは、コントリビューター同士が出会い、コミュニケーションを取り、アイデアを共有し、Matrix/Libera.Chat IRC または GitHub のメッセージの背後に他の実在する人物がいることを確認する絶好の機会を提供するグローバルイベントです。これでコミュニティーの感覚を得ることができます。次のコントリビューターサミットの開催情報を `Bullhorn newsletter `_ で確認し、知り合いのコントリビューターを招待して、共にイベントに参加してください。" +#: ../../rst/community/maintainers_guidelines.rst:83 +msgid "The quarterly Ansible Contributor Summit is a global event that provides our contributors a great opportunity to meet each other, communicate, share ideas, and see that there are other real people behind the messages on Matrix or Libera Chat IRC, or GitHub. This gives a sense of community. Watch the `Bullhorn newsletter `_ for information when the next contributor summit, invite contributors you know, and take part in the event together." +msgstr "四半期ごとに開催される Ansible コントリビューターサミットは、コントリビューター同士が出会い、コミュニケーションを取り、アイデアを共有し、Matrix や Libera.Chat IRC または GitHub のメッセージの背後に他の実在する人物がいることを確認する絶好の機会を提供するグローバルイベントです。これでコミュニティーの感覚を得ることができます。次のコントリビューターサミットの開催情報を `Bullhorn newsletter `_ で確認し、知り合いのコントリビューターを招待して、共にイベントに参加してください。" -#: ../../rst/community/maintainers_guidelines.rst:71 +#: ../../rst/community/maintainers_guidelines.rst:86 msgid "Weekly community Matrix/IRC meetings" msgstr "毎週のコミュニティーマトリックス/IRC ミーティング" -#: ../../rst/community/maintainers_guidelines.rst:73 -msgid "The Community and the Steering Committee come together at weekly meetings in the ``#ansible-community`` :ref:`Matrix/Libera.Chat ` channel to discuss important project-scale questions. See the `schedule `_ and join." -msgstr "コミュニティーと Steering Committee は、``#ansible-community`` :ref:`Matrix/Libera.Chat ` チャンネルで毎週ミーティングを行い、プロジェクト規模の重要な質問について話し合います。`schedule `_ を参照して参加してください。" +#: ../../rst/community/maintainers_guidelines.rst:88 +msgid "The Community and the Steering Committee come together at weekly meetings in the ``#ansible-community`` `Libera.Chat IRC `_ channel or in the bridged `#community:ansible.com `_ room on `Matrix `_ to discuss important project questions. Join us! Here is our `schedule `_." +msgstr "コミュニティーと Steering Committee は、`Matrix `_ に含まれる ``#ansible-community`` `Libera.Chat IRC ` チャネルまたはブリッジされた `#community:ansible.com ` ルームで毎週ミーティングを行い、プロジェクト関連の重要な質問について話し合いますので、参加してください。こちらが `スケジュール `_ です。" -#: ../../rst/community/maintainers_guidelines.rst:76 +#: ../../rst/community/maintainers_guidelines.rst:91 msgid "Expanding the collection community" msgstr "コレクションコミュニティーの拡大" -#: ../../rst/community/maintainers_guidelines.rst:80 +#: ../../rst/community/maintainers_guidelines.rst:95 msgid "If you discover good ways to expand a community or make it more robust, edit this section with your ideas to share with other collection maintainers." msgstr "コミュニティーを拡大したり、コミュニティーをより堅牢にするための良い方法を見つけた場合は、他のコレクションメンテナーと共有するために、アイデアを追加してこのセクションを編集してください。" -#: ../../rst/community/maintainers_guidelines.rst:82 +#: ../../rst/community/maintainers_guidelines.rst:97 msgid "Here are some ways you can expand the community around your collection:" msgstr "コレクションを中心にコミュニティーを拡大する方法は以下のとおりです。" -#: ../../rst/community/maintainers_guidelines.rst:84 +#: ../../rst/community/maintainers_guidelines.rst:99 msgid "Give :ref:`newcomers a positive first experience `." msgstr ":ref:`新参者の最初のエクスペリエンスがポジティブなもの ` になるようにします。" -#: ../../rst/community/maintainers_guidelines.rst:85 +#: ../../rst/community/maintainers_guidelines.rst:100 +msgid "Invite contributors to join :ref:`real-time chats ` related to your project." +msgstr "コントリビューターに対して、ご自身のプロジェクトに関連する :ref:`real-time chats ` への参加を募ります。" + +#: ../../rst/community/maintainers_guidelines.rst:101 msgid "Have :ref:`good documentation ` with guidelines for new contributors." msgstr "新しいコントリビューターのためのガイドラインのある :ref:`優れたドキュメント ` を用意します。" -#: ../../rst/community/maintainers_guidelines.rst:86 +#: ../../rst/community/maintainers_guidelines.rst:102 msgid "Make people feel welcome personally and individually." msgstr "一人ひとりが個人的に歓迎されていると感じるようにします。" -#: ../../rst/community/maintainers_guidelines.rst:87 +#: ../../rst/community/maintainers_guidelines.rst:103 msgid "Use labels to show easy fixes and leave non-critical easy fixes to newcomers and offer to mentor them." msgstr "ラベルを使用して簡単な修正を示し、重要ではない簡単な修正を新参者に任せて、彼らを指導することを提案します。" -#: ../../rst/community/maintainers_guidelines.rst:88 +#: ../../rst/community/maintainers_guidelines.rst:104 msgid "Be responsive in issues, PRs and other communication." msgstr "issue、プル要求、その他のコミュニケーションにすぐに対応します。" -#: ../../rst/community/maintainers_guidelines.rst:89 +#: ../../rst/community/maintainers_guidelines.rst:105 msgid "Conduct PR days regularly." msgstr "定期的に PR の日を実施してください。" -#: ../../rst/community/maintainers_guidelines.rst:90 +#: ../../rst/community/maintainers_guidelines.rst:106 msgid "Maintain a zero-tolerance policy towards behavior violating the :ref:`code_of_conduct`." msgstr ":ref:`code_of_conduct` に違反する動作に対してゼロトレランスポリシーを維持します。" -#: ../../rst/community/maintainers_guidelines.rst:91 +#: ../../rst/community/maintainers_guidelines.rst:107 msgid "Put information about how people can register code of conduct violations in your ``README`` and ``CONTRIBUTING`` files." msgstr "``README`` および ``CONTRIBUTING`` ファイルに、行動規範違反を登録する方法についての情報を追加します。" -#: ../../rst/community/maintainers_guidelines.rst:92 +#: ../../rst/community/maintainers_guidelines.rst:108 msgid "Include quick ways contributors can help and other documentation in your ``README``." msgstr "コントリビューターが支援できる簡単な方法や、その他のドキュメントを ``README`` に記載してください。" -#: ../../rst/community/maintainers_guidelines.rst:93 +#: ../../rst/community/maintainers_guidelines.rst:109 msgid "Add and keep updated the ``CONTRIBUTORS`` and ``MAINTAINERS`` files." msgstr "``CONTRIBUTORS`` ファイルおよび ``MAINTAINERS`` ファイルを追加し、最新の状態にしておきます。" -#: ../../rst/community/maintainers_guidelines.rst:94 +#: ../../rst/community/maintainers_guidelines.rst:110 msgid "Create a pinned issue to announce that the collection welcomes new maintainers and contributors." msgstr "固定された問題を作成し、コレクションが新しいメンテナーとコントリビューターを歓迎していることを発表します。" -#: ../../rst/community/maintainers_guidelines.rst:95 +#: ../../rst/community/maintainers_guidelines.rst:111 msgid "Look for new maintainers among active contributors." msgstr "アクティブなコントリビューターの中から、新しいメンテナーを探します。" -#: ../../rst/community/maintainers_guidelines.rst:96 +#: ../../rst/community/maintainers_guidelines.rst:112 msgid "Announce that your collection welcomes new maintainers." msgstr "コレクションが新しいメンテナーを歓迎していることを発表します。" -#: ../../rst/community/maintainers_guidelines.rst:97 +#: ../../rst/community/maintainers_guidelines.rst:113 msgid "Take part and congratulate new maintainers in Contributor Summits." msgstr "コントリビューターサミットに参加し、新しいメンテナーを祝福します。" -#: ../../rst/community/maintainers_guidelines.rst:103 +#: ../../rst/community/maintainers_guidelines.rst:119 msgid "Encouraging new contributors" msgstr "新しいコントリビューターを奨励する" -#: ../../rst/community/maintainers_guidelines.rst:105 -msgid "Easy fix items are the best way to attract and mentor new contributors. You should triage incoming issues to mark them with labels such as ``easyfix``, ``waiting_on_contributor``, and ``docs``. where appropriate. Do not fix these trivial non-critical bugs yourself. Instead, mentor a person who wants to contribute." +#: ../../rst/community/maintainers_guidelines.rst:121 +msgid "Easy-fix items are the best way to attract and mentor new contributors. You should triage incoming issues to mark them with labels such as ``easyfix``, ``waiting_on_contributor``, and ``docs``. where appropriate. Do not fix these trivial non-critical bugs yourself. Instead, mentor a person who wants to contribute." msgstr "簡単な修正項目は、新しいコントリビューターを引き付けて指導するための最良の方法です。入ってくる issue をトリアージして、必要に応じて ``easyfix``、``waiting_on_contributor``、および ``docs`` などのラベルでマークする必要があります。これらの重要ではない些細なバグを自分で修正しないでください。代わりに、貢献したい人に指導してください。" -#: ../../rst/community/maintainers_guidelines.rst:107 -msgid "For some easy fix issues, you could ask the issue reporter whether they want to fix the issue themselves providing the link to a quickstart guide for creating PRs." +#: ../../rst/community/maintainers_guidelines.rst:123 +msgid "For some easy-fix issues, you could ask the issue reporter whether they want to fix the issue themselves providing the link to a quick start guide for creating PRs." msgstr "簡単に修正できる問題については、PR を作成するためのクイックスタートガイドへのリンクを提供して、issue を自分で修正するかどうかを issue レポーターに尋ねることができます。" -#: ../../rst/community/maintainers_guidelines.rst:109 -msgid "Conduct pull request days regularly. You could plan PR days, for example, in the last Friday of every month when you and other maintainers go through all open issues and pull requests focusing on old ones, asking people if you can help, and so on. If there are pull requests that look abandoned (for example, there is no response on your help offers since the previous PR day), announce that anyone else interested can complete the pull request." +#: ../../rst/community/maintainers_guidelines.rst:125 +msgid "Conduct pull request days regularly. You could plan PR days, for example, on the last Friday of every month when you and other maintainers go through all open issues and pull requests focusing on old ones, asking people if you can help, and so on. If there are pull requests that look abandoned (for example, there is no response on your help offers since the previous PR day), announce that anyone else interested can complete the pull request." msgstr "プルリクエストデーを定期的に実施してください。たとえば、毎月の最終金曜日に PR デーを計画し、あなたと他のメンテナーがすべての未解決の issue や古い issue に焦点を当てたプルリクエストに目を通し、手伝えるかどうかを人々に尋ねる、などといったことが考えられます。もし放置されているようなプルリクエストがあれば (たとえば、前回のPR デー以降、あなたがヘルプに対して反応がない場合など)、興味のある人なら誰でもそのプルリクエストを完了できるようにアナウンスしてください。" -#: ../../rst/community/maintainers_guidelines.rst:111 -msgid "Promote active contributors satisfying :ref:`requirements` to maintainers. Revise contributors activity regularly." -msgstr ":ref:`要件` を満たすアクティブなコントリビューターをメンテナーに昇進させます。コントリビューターの活動を定期的に見直します。" +#: ../../rst/community/maintainers_guidelines.rst:127 +msgid "Promote active contributors satisfying :ref:`requirements` to maintainers. Revise contributors' activity regularly." +msgstr ":ref:`requirements` を満たすアクティブなコントリビューターをメンテナーに昇進させます。コントリビューターの活動を定期的に見直します。" -#: ../../rst/community/maintainers_guidelines.rst:113 +#: ../../rst/community/maintainers_guidelines.rst:129 msgid "If your collection found new maintainers, announce that fact in the `Bullhorn newsletter `_ and during the next Contributor Summit congratulating and thanking them for the work done. You can mention all the people promoted since the previous summit. Remember to invite the other maintainers to the Summit in advance." msgstr "コレクションが新しいメンテナーを見つけた場合は、`Bullhorn ニュースレター `_ および次回のコントリビューターサミットでそのことをアナウンスし、貢献してくれたことを祝福し、感謝します。前回のサミット以降に昇進したすべての人に言及することができます。事前に他のメンテナーをサミットに招待することを忘れないでください" -#: ../../rst/community/maintainers_guidelines.rst:115 +#: ../../rst/community/maintainers_guidelines.rst:131 msgid "Some other general guidelines to encourage contributors:" msgstr "コントリビューターを奨励するための他の一般的なガイドラインを以下に示します。" -#: ../../rst/community/maintainers_guidelines.rst:117 +#: ../../rst/community/maintainers_guidelines.rst:133 msgid "Welcome the author and thank them for the issue or pull request." msgstr "作成者を歓迎し、issue またはプル要求に謝意を示します。" -#: ../../rst/community/maintainers_guidelines.rst:118 +#: ../../rst/community/maintainers_guidelines.rst:134 msgid "If there is a non-crucial easy-fix bug reported, politely ask the author to fix it themselves providing a link to :ref:`collection_quickstart`." msgstr "重要ではない簡単に修正できるバグが報告された場合は、作成者に自分で修正するように丁寧に依頼し、:ref:`collection_quickstart` のリンクを提供します。" -#: ../../rst/community/maintainers_guidelines.rst:119 +#: ../../rst/community/maintainers_guidelines.rst:135 msgid "When suggesting changes, try to use questions, not statements." msgstr "変更を提案する場合は、意見ではなく質問で対応するようにします。" -#: ../../rst/community/maintainers_guidelines.rst:120 +#: ../../rst/community/maintainers_guidelines.rst:136 msgid "When suggesting mandatory changes, do it as politely as possible providing documentation references." msgstr "必須の変更を提案する場合は、参照ドキュメントを提示しつつ、可能な限り丁寧に行います。" -#: ../../rst/community/maintainers_guidelines.rst:121 -msgid "If your suggestion is optional or a matter of personal preferences, please say it explicitly." +#: ../../rst/community/maintainers_guidelines.rst:137 +msgid "If your suggestion is optional or a matter of personal preference, please say it explicitly." msgstr "任意の提案や、個人の好みによる提案は、その旨を明確に示します。" -#: ../../rst/community/maintainers_guidelines.rst:122 -msgid "When asking for adding tests or for complex code refactoring, say that the author is welcome to ask for clarifications and help if they need." +#: ../../rst/community/maintainers_guidelines.rst:138 +msgid "When asking for adding tests or for complex code refactoring, say that the author is welcome to ask for clarifications and help if they need it." msgstr "追加テストや複雑なコードリファクタリングを求める場合は、作成者がさらに明確な説明や助力を提供できるこに言及します。" -#: ../../rst/community/maintainers_guidelines.rst:123 +#: ../../rst/community/maintainers_guidelines.rst:139 msgid "If somebody suggests a good idea, mention it or put a thumbs up." msgstr "誰かが良いアイデアを提案していれば、メンションまたはサムズアップを行います。" -#: ../../rst/community/maintainers_guidelines.rst:124 +#: ../../rst/community/maintainers_guidelines.rst:140 msgid "After merging, thank the author and reviewers for their time and effort." msgstr "マージした後、時間と手間をかけて対応した作成者とレビュー担当者に謝意を示します。" -#: ../../rst/community/maintainers_guidelines.rst:126 +#: ../../rst/community/maintainers_guidelines.rst:142 msgid "See the :ref:`review_checklist` for a list of items to check before you merge a PR." msgstr "PR をマージする前に確認する項目一覧は、:ref:`review_checklist` を参照してください。" -#: ../../rst/community/maintainers_guidelines.rst:131 +#: ../../rst/community/maintainers_guidelines.rst:147 msgid "Maintaining good collection documentation" msgstr "優れたコレクションドキュメントの維持" -#: ../../rst/community/maintainers_guidelines.rst:133 +#: ../../rst/community/maintainers_guidelines.rst:149 msgid "Maintainers look after the collection documentation to ensure it matches the :ref:`style_guide`. This includes keeping the following documents accurate and updated regularly:" msgstr "メンテナーは、コレクションのドキュメントを管理して、:ref:`style_guide` と一致することを確認します。これには、以下のドキュメントを正確に維持し、定期的に更新することが含まれます。" -#: ../../rst/community/maintainers_guidelines.rst:135 +#: ../../rst/community/maintainers_guidelines.rst:151 msgid "Collection module and plugin documentation that adheres to the :ref:`Ansible documentation format `." msgstr ":ref:`Ansible documentation format ` に準拠するコレクションモジュールとプラグインドキュメント。" -#: ../../rst/community/maintainers_guidelines.rst:136 +#: ../../rst/community/maintainers_guidelines.rst:152 msgid "Collection user guides that follow the :ref:`Collection documentation format `." msgstr ":ref:`Collection のドキュメント形式 ` に従うコレクションユーザーガイド。" -#: ../../rst/community/maintainers_guidelines.rst:137 +#: ../../rst/community/maintainers_guidelines.rst:153 msgid "Repository files that includes at least a ``README`` and ``CONTRIBUTING`` file." msgstr "少なくとも ``README`` および ``CONTRIBUTING`` ファイルが含まれるリポジトリーファイル。" -#: ../../rst/community/maintainers_guidelines.rst:139 +#: ../../rst/community/maintainers_guidelines.rst:155 msgid "A good ``README`` includes a description of the collection, a link to the :ref:`code_of_conduct`, and details on how to contribute or a pointer to the ``CONTRIBUTING`` file. If your collection is a part of Ansible (is shipped with Ansible package), highlight that fact at the top of the collection's ``README``." msgstr "適切な ``README`` には、コレクションの説明、:ref:`code_of_conduct` へのリンク、および貢献する方法の詳細または ``CONTRIBUTING`` ファイルへのポインターが含まれています。コレクションが Ansible の一部 (Ansible パッケージに同梱) である場合は、その事実をコレクションの ``README`` の上部で強調表示します。" -#: ../../rst/community/maintainers_guidelines.rst:141 +#: ../../rst/community/maintainers_guidelines.rst:157 msgid "The ``CONTRIBUTING`` file includes all the details or links to the details on how a new or continuing contributor can contribute to this collection. The ``CONTRIBUTING`` file should include:" msgstr "``CONTRIBUTING`` ファイルには、新規または継続的なコントリビューターが、このコレクションに貢献する方法に関するすべての詳細または詳細へのリンクが含まれています。``CONTRIBUTING`` ファイルには以下が含まれている必要があります。" -#: ../../rst/community/maintainers_guidelines.rst:143 -msgid "Information or links to new contributor guidelines, such as a quickstart on opening PRs." +#: ../../rst/community/maintainers_guidelines.rst:159 +msgid "Information or links to new contributor guidelines, such as a quick start on opening PRs." msgstr "PR を作成するためのクイックスタートなど、新しいコントリビューターガイドラインの情報またはリンク先。" -#: ../../rst/community/maintainers_guidelines.rst:144 +#: ../../rst/community/maintainers_guidelines.rst:160 msgid "Information or links to contributor requirements, such as unit and integration test requirements." msgstr "ユニットおよび統合テストの要件など、コントリビューターの要件の情報またはリンク先。" -#: ../../rst/community/maintainers_guidelines.rst:146 +#: ../../rst/community/maintainers_guidelines.rst:162 msgid "You can optionally include a ``CONTRIBUTORS`` and ``MAINTAINERS`` file to list the collection contributors and maintainers." msgstr "オプションで、``CONTRIBUTORS`` および ``MAINTAINERS`` ファイルを追加して、コレクションのコントリビューターおよびメンテナーを一覧表示できます。" @@ -4704,11 +4848,11 @@ msgid "Module maintainers" msgstr "モジュールメンテナー" #: ../../rst/community/maintainers_workflow.rst:33 -msgid "Module-scope maintainers exist in collections that have the `collection bot `_, for example `community.general `_ and `community.network `_." +msgid "Module-scope maintainers exist in collections that have the `collection bot `_, for example, `community.general `_ and `community.network `_." msgstr "モジュールスコープのメンテナーは、`collection bot `_ のあるコレクションに存在します (例: `community.general `_ および `community.network `_)。" #: ../../rst/community/maintainers_workflow.rst:37 -msgid "Being a module maintainer is the stage prior to becoming a collection maintainer. Module maintainers are contributors who are listed in ``.github/BOTMETA.yml``. The scope can be any file (for example, a module or plugin), directory, or repository. Because in most cases the scope is a module or group of modules, we call these contributors module maintainers. The collection bot notifies module maintainers when issues / pull requests related to files they maintain are created." +msgid "Being a module maintainer is the stage prior to becoming a collection maintainer. Module maintainers are contributors who are listed in ``.github/BOTMETA.yml``. The scope can be any file (for example, a module or plugin), directory, or repository. Because in most cases the scope is a module or group of modules, we call these contributors module maintainers. The collection bot notifies module maintainers when issues/pull requests related to files they maintain are created." msgstr "モジュールメンテナーになることは、コレクションメンテナーになる前の段階になります。モジュールメンテナーは、``.github/BOTMETA.yml`` にリストされているコントリビューターです。スコープは、任意のファイル (たとえば、モジュールまたはプラグイン)、ディレクトリー、またはリポジトリーにすることができます。ほとんどの場合、スコープはモジュールまたはモジュールのグループであるため、これらのコントリビューターをモジュールメンテナーと呼びます。コレクションボットは、モジュールメンテナーが維持するファイルに関連する issue/プルリクエストが作成されると、モジュールメンテナーに通知します。" #: ../../rst/community/maintainers_workflow.rst:39 @@ -4724,8 +4868,8 @@ msgid "Releasing a collection" msgstr "コレクションのリリース" #: ../../rst/community/maintainers_workflow.rst:50 -msgid "Collection maintainers are responsible for releasing new versions of a collection. Generally, releasing in the collections consists of:" -msgstr "コレクションのメンテナーは、コレクションの新しいバージョンをリリースする責任があります。通常、コレクションでのリリースは、以下で構成されます。" +msgid "Collection maintainers are responsible for releasing new versions of a collection. Generally, releasing a collection consists of:" +msgstr "コレクションのメンテナーは、コレクションの新しいバージョンをリリースする責任があります。通常、コレクションのリリースは、以下で構成されます。" #: ../../rst/community/maintainers_workflow.rst:52 msgid "Planning and announcement." @@ -4776,8 +4920,8 @@ msgid "Including a collection in Ansible" msgstr "Ansible へのコレクションの追加" #: ../../rst/community/maintainers_workflow.rst:79 -msgid "If a collection is not included in Ansible (not shipped with Ansible package), maintainers can submit the collection for inclusion by creating a discussion under `ansible-collections/ansible-inclusion repository `_. For more information, see the `repository's README `_, and the `Ansible community package collections requirements `." -msgstr "コレクションが Ansible に含まれていない (Ansible パッケージに同梱されていない) 場合、メンテナーは、`ansible-collections/ansible-inclusion repository `_ の下にディスカッションを作成して、インクルージョンのコレクションを送信できます。詳細は、`repository's README `_ および `Ansible コミュニティーのパッケージコレクションの要件 ` を参照してください。" +msgid "If a collection is not included in Ansible (not shipped with Ansible package), maintainers can submit the collection for inclusion by creating a discussion under the `ansible-collections/ansible-inclusion repository `_. For more information, see the `repository's README `_, and the `Ansible community package collections requirements `." +msgstr "コレクションが Ansible に含まれていない (Ansible パッケージに同梱されていない) 場合、メンテナーは、`ansible-collections/ansible-inclusion repository `_ の下にディスカッションを作成して、インクルージョンのコレクションを送信できます。詳細は、`repository's README `_ および `Ansible community package collections requirements ` を参照してください。" #: ../../rst/community/maintainers_workflow.rst:82 msgid "Stepping down as a collection maintainer" @@ -4788,7 +4932,7 @@ msgid "Times change, and so may your ability to continue as a collection maintai msgstr "時は変わり、コレクションのメンテナーとして続行する能力も変わります。辞任する際は一言お知らせください。" #: ../../rst/community/maintainers_workflow.rst:86 -msgid "If you feel you don't have time to maintain your collection any more, you should:" +msgid "If you feel you don't have time to maintain your collection anymore, you should:" msgstr "コレクションを維持する時間がなくなったと感じる場合は、以下を行う必要があります。" #: ../../rst/community/maintainers_workflow.rst:88 @@ -5113,7 +5257,7 @@ msgstr "ベータ版では、機能の提出は受け付けなくなります。 #: ../../rst/community/release_managers.rst:47 msgid "Release candidates" -msgstr "Release Candidate (リリースの候補)" +msgstr "リリースの候補 (Release Candidate)" #: ../../rst/community/release_managers.rst:49 msgid "In a release candidate, we've fixed all known blockers. Any remaining bugfixes are ones that we are willing to leave out of the release. At this point we need user testing to determine if there are any other blocker bugs lurking." @@ -5291,11 +5435,11 @@ msgid "If you are not sure whether a bug is in ansible-core or in a collection, msgstr "バグが ansible-core またはコレクションのどちらにあるかわからない場合は、:ref:`mailing list or community chat channel first ` に動作を報告できます。" #: ../../rst/community/reporting_collections.rst:33 -msgid "Before you request a feature, check what is :ref:`planned for future Ansible Releases `. The best way to get a feature into an Ansible collection is to :ref:`submit a pull request `, either against ansible-core or against a collection. See also :ref:`ansible_collection_merge_requirements`." -msgstr "機能をリクエストする前に、:ref:`今後の Ansible リリースの予定 ` を確認してください。Ansible コレクションに機能を取り組むための最良の方法は、ansible-core またはコレクションのいずれかに対して :ref:`プルリクエストを送信 ` することです。:ref:`ansible_collection_merge_requirements` も参照してください。" +msgid "Before you request a feature, check what is :ref:`planned for future Ansible Releases `. The best way to get a feature into an Ansible collection is to :ref:`submit a pull request `, either against ansible-core or against a collection. See also the :ref:`ansible_collection_merge_requirements`." +msgstr "機能をリクエストする前に、:ref:`planned for future Ansible Releases ` を確認してください。Ansible コレクションに機能を取り組むための最良の方法は、ansible-core またはコレクションのいずれかに対して :ref:`submit a pull request ` することです。:ref:`ansible_collection_merge_requirements` も参照してください。" #: ../../rst/community/reporting_collections.rst:36 -msgid "You can also submit a feature request through opening an issue in the collection repository." +msgid "You can also submit a feature request by opening an issue in the collection repository." msgstr "コレクションリポジトリーで issue を作成し、機能リクエストを送信することもできます。" #: ../../rst/community/steering/community_steering_committee.rst:5 @@ -5379,6 +5523,7 @@ msgstr "russoz" #: ../../rst/community/steering/community_steering_committee.rst:44 #: ../../rst/community/steering/community_steering_committee.rst:54 #: ../../rst/community/steering/community_steering_committee.rst:56 +#: ../../rst/community/steering/community_steering_committee.rst:58 msgid "2022" msgstr "2022" @@ -5397,7 +5542,7 @@ msgstr "acozine" #: ../../rst/community/steering/community_steering_committee.rst:48 #: ../../rst/community/steering/community_steering_committee.rst:50 #: ../../rst/community/steering/community_steering_committee.rst:52 -#: ../../rst/community/steering/community_steering_committee.rst:58 +#: ../../rst/community/steering/community_steering_committee.rst:60 #: ../../rst/community/steering/steering_committee_past_members.rst:19 msgid "2021" msgstr "2021" @@ -5475,234 +5620,242 @@ msgid "markuman" msgstr "markuman" #: ../../rst/community/steering/community_steering_committee.rst:58 +msgid "Maxwell G" +msgstr "Maxwell G" + +#: ../../rst/community/steering/community_steering_committee.rst:58 +msgid "gotmax23" +msgstr "gotmax23" + +#: ../../rst/community/steering/community_steering_committee.rst:60 msgid "Sorin Sbarnea" msgstr "Sorin Sbarnea" -#: ../../rst/community/steering/community_steering_committee.rst:58 +#: ../../rst/community/steering/community_steering_committee.rst:60 msgid "ssbarnea" msgstr "ssbarnea" -#: ../../rst/community/steering/community_steering_committee.rst:62 +#: ../../rst/community/steering/community_steering_committee.rst:64 msgid "John Barker (`gundalow `_) has been elected by the Committee as its :ref:`chairperson`." msgstr "John Barker (`gundalow `_) は、Committee により :ref:`チェアパーソン` として選出されています。" -#: ../../rst/community/steering/community_steering_committee.rst:64 +#: ../../rst/community/steering/community_steering_committee.rst:66 msgid "Committee members are selected based on their active contribution to the Ansible Project and its community. See :ref:`community_steering_guidelines` to learn details." msgstr "Committee のメンバーは、Ansible プロジェクトとそのコミュニティーへのアクティブな貢献に基づいて選出されます。詳細は、:ref:`community_steering_guidelines` を参照してください。" -#: ../../rst/community/steering/community_steering_committee.rst:67 +#: ../../rst/community/steering/community_steering_committee.rst:69 msgid "Creating new policy proposals & inclusion requests" msgstr "新しいポリシーのプロポーザルとインクルージョンリクエストの作成" -#: ../../rst/community/steering/community_steering_committee.rst:69 +#: ../../rst/community/steering/community_steering_committee.rst:71 msgid "The Committee uses the `community-topics repository `_ to asynchronously discuss with the Community and vote on Community topics in corresponding issues." msgstr "Committee は `community-topics repository `_ を使用して、コミュニティーと非同期で議論し、対応する issue のコミュニティーのトピックについて投票します。" -#: ../../rst/community/steering/community_steering_committee.rst:71 +#: ../../rst/community/steering/community_steering_committee.rst:73 msgid "You can create a new issue in the `community-topics repository `_ as a discussion topic if you want to discuss an idea that impacts any of the following:" msgstr "以下のいずれかに影響を与えるアイデアについて話し合いたい場合は、ディスカッションのトピックとして、`community-topics repository `_ に新しい issue を作成することができます。" -#: ../../rst/community/steering/community_steering_committee.rst:74 +#: ../../rst/community/steering/community_steering_committee.rst:76 msgid "Community collection best practices and requirements" msgstr "コミュニティーコレクションのベストプラクティスおよび要件" -#: ../../rst/community/steering/community_steering_committee.rst:75 +#: ../../rst/community/steering/community_steering_committee.rst:77 msgid "Community collection inclusion policy" msgstr "コミュニティーコレクションのインクルージョンポリシー" -#: ../../rst/community/steering/community_steering_committee.rst:76 +#: ../../rst/community/steering/community_steering_committee.rst:78 msgid "The Community governance" msgstr "コミュニティーガバナンス" -#: ../../rst/community/steering/community_steering_committee.rst:77 +#: ../../rst/community/steering/community_steering_committee.rst:79 msgid "Other proposals of importance that need the Committee's or overall Ansible community attention" msgstr "Committee または Ansible コミュニティー全体の注意を必要とするその他の重要な提案" -#: ../../rst/community/steering/community_steering_committee.rst:80 +#: ../../rst/community/steering/community_steering_committee.rst:82 msgid "To request changes to the inclusion policy and collection requirements:" msgstr "インクルージョンポリシーおよびコレクション要件の変更をリクエストするには、以下を実行します。" -#: ../../rst/community/steering/community_steering_committee.rst:82 +#: ../../rst/community/steering/community_steering_committee.rst:84 msgid "Submit a new pull request to the `ansible-collections/overview `_ repository." msgstr "`ansible-collections/overview `_ リポジトリーに新しいプルリクエストを送信します。" -#: ../../rst/community/steering/community_steering_committee.rst:84 +#: ../../rst/community/steering/community_steering_committee.rst:86 msgid "Create a corresponding issue containing the rationale behind these changes in the `community-topics repository `_ repository." msgstr "これらの変更の背後にある理論的根拠を含む対応する issue を `community-topics repository `_ リポジトリーに作成します。" -#: ../../rst/community/steering/community_steering_committee.rst:86 +#: ../../rst/community/steering/community_steering_committee.rst:88 msgid "To submit new collections for inclusion into the Ansible package:" msgstr "Ansible パッケージのインクルージョン用の新しいコレクションを送信するには、以下を行います。" -#: ../../rst/community/steering/community_steering_committee.rst:88 +#: ../../rst/community/steering/community_steering_committee.rst:90 msgid "Submit the new collection inclusion requests through a new discussion in the `ansible-inclusion `_ repository." msgstr "`ansible-inclusion `_ リポジトリーの新しいディスカッションを通じて、新しいコレクションのインクルージョンリクエストを送信します。" -#: ../../rst/community/steering/community_steering_committee.rst:90 +#: ../../rst/community/steering/community_steering_committee.rst:92 msgid "Depending on a topic you want to discuss with the Community and the Committee, as you prepare your proposal, please consider the requirements established by:" msgstr "コミュニティーおよび Committee と話し合いたいトピックに応じて、提案を準備する際に、以下によって確立された要件を考慮してください。" -#: ../../rst/community/steering/community_steering_committee.rst:92 +#: ../../rst/community/steering/community_steering_committee.rst:94 msgid ":ref:`code_of_conduct`." -msgstr ":ref:`code_of_conduct`." +msgstr ":ref:`code_of_conduct`。" -#: ../../rst/community/steering/community_steering_committee.rst:93 +#: ../../rst/community/steering/community_steering_committee.rst:95 msgid "`Ansible Collection Requirements `_." -msgstr "`Ansible Collection Requirements `_" +msgstr "`Ansible Collection Requirements `_。" -#: ../../rst/community/steering/community_steering_committee.rst:94 +#: ../../rst/community/steering/community_steering_committee.rst:96 msgid "`Ansible Collection Inclusion Checklist `_." -msgstr "`Ansible Collection Inclusion Checklist `_" +msgstr "`Ansible Collection Inclusion Checklist `_。" -#: ../../rst/community/steering/community_steering_committee.rst:97 +#: ../../rst/community/steering/community_steering_committee.rst:99 msgid "Community topics workflow" msgstr "コミュニティーのトピックワークフロー" -#: ../../rst/community/steering/community_steering_committee.rst:99 +#: ../../rst/community/steering/community_steering_committee.rst:101 msgid "The Committee uses the `Community-topics workflow `_ to asynchronously discuss and vote on the `community-topics `_." msgstr "Committee は `Community-topics workflow `_ を使用して、`community-topics `_ について非同期的に議論し、投票します。" -#: ../../rst/community/steering/community_steering_committee.rst:101 +#: ../../rst/community/steering/community_steering_committee.rst:103 msgid "The quorum, the minimum number of Committee members who must vote on a topic in order for a decision to be officially made, is half of the whole number of the Committee members. If the quorum number contains a fractional part, it is rounded up to the next whole number. For example, if there are thirteen members currently in the committee, the quorum will be seven." msgstr "正式に決定を下すためにトピックに投票しなければならない Committee メンバーの最小数であるクォーラムは、Committee メンバーの総数の半分です。クォーラム番号に小数部分が含まれている場合は、次の整数に切り上げられます。たとえば、現在 Committee に 13 人のメンバーがいる場合、クォーラムは 7 人になります。" -#: ../../rst/community/steering/community_steering_committee.rst:103 +#: ../../rst/community/steering/community_steering_committee.rst:105 msgid "Votes must always have \"no change\" as an option." msgstr "投票には、オプションとして常に \"no change\" が必要です。" -#: ../../rst/community/steering/community_steering_committee.rst:105 +#: ../../rst/community/steering/community_steering_committee.rst:107 msgid "In case of equal numbers of votes for and against a topic, the chairperson's vote will break the tie. For example, if there are six votes for and six votes against a topic, and the chairperson's vote is among those six which are for the topic, the final decision will be positive. If the chairperson has not voted yet, other members ask them to vote." msgstr "トピックに対する賛成票と反対票が同数の場合は、チェアパーソンの票により同数ではなくなります。たとえば、トピックに賛成 6 票、反対 6 票があり、チェアパーソンの票が賛成 6 票の中にある場合は、最終決定は賛成となります。チェアパーソンがまだ投票していない場合は、他のメンバーが投票を依頼します。" -#: ../../rst/community/steering/community_steering_committee.rst:107 +#: ../../rst/community/steering/community_steering_committee.rst:109 msgid "For votes with more than two options, one choice must have at least half of the votes. If two choices happen to both have half of the votes, the chairperson's vote will break the tie. If no choice has at least half of the votes, the vote choices have to be adjusted so that a majority can be found for a choice in a new vote." msgstr "3 つ以上のオプションがある投票の場合、1 つの選択肢に少なくとも半分の票が必要です。2 つの選択肢の両方に半分の票がある場合、チェアパーソンの票により同数票ではなくなります。半分以上の票がある選択肢がない場合は、新しい投票で、1 つの選択肢が過半数となるように、投票の選択肢を調整する必要があります。" -#: ../../rst/community/steering/community_steering_committee.rst:110 +#: ../../rst/community/steering/community_steering_committee.rst:112 msgid "Community topics triage" msgstr "コミュニティートピックのトリアージ" -#: ../../rst/community/steering/community_steering_committee.rst:112 +#: ../../rst/community/steering/community_steering_committee.rst:114 msgid "The Committee conducts a triage of `community topics `_ periodically (every three to six months)." msgstr "委員会は定期的に `community topics `_ のトリアージ (3 年から 6 カ月まで) を実施します。" -#: ../../rst/community/steering/community_steering_committee.rst:114 +#: ../../rst/community/steering/community_steering_committee.rst:116 msgid "The triage goals are:" msgstr "トリアージの目標は次のとおりです。" -#: ../../rst/community/steering/community_steering_committee.rst:116 +#: ../../rst/community/steering/community_steering_committee.rst:118 msgid "Sparking interest for forgotten topics." msgstr "アクセスのないトピックに対する関心を集める" -#: ../../rst/community/steering/community_steering_committee.rst:117 +#: ../../rst/community/steering/community_steering_committee.rst:119 msgid "Identifying and closing irrelevant topics, for example, when the reason of the topic does not exist anymore or the topic is out of the Committee responsibilities scope." msgstr "トピックの存在意義がなくなった場合や、トピックの内容が委員会の責任範囲外となった場合など、関連のないトピックを特定して終了する" -#: ../../rst/community/steering/community_steering_committee.rst:118 +#: ../../rst/community/steering/community_steering_committee.rst:120 msgid "Identifying and closing topics that the Community are not interested in discussing. As indicators, it can be absence of comments or no activity in comments, at least, for the last six months." msgstr "コミュニティーが議論しないトピックを特定して終了する。過去 6ヶ月間コメントがない場合や、コメント内で活動がない場合などを目安とします。" -#: ../../rst/community/steering/community_steering_committee.rst:119 +#: ../../rst/community/steering/community_steering_committee.rst:121 msgid "Identifying and closing topics that were solved and implemented but not closed (in this case, such a topic can be closed on the spot with a comment that it has been implemented)." msgstr "解決済み、実装済みであるにも拘らず終了されていないトピックを特定して終了する (このような場合には、実装済みとコメントをつけて、トピックをその場で終了できるものとする)。" -#: ../../rst/community/steering/community_steering_committee.rst:120 +#: ../../rst/community/steering/community_steering_committee.rst:122 msgid "Identifying topics that have been in pending state for a long time, for example, when it is waiting for actions from someone for several months or when the topics were solved but not implemented." msgstr "数ヶ月間誰かのアクションを待っている場合や、トピックが解決されているが、実装されていない場合など、長期間、保留状態のトピックを特定する。" -#: ../../rst/community/steering/community_steering_committee.rst:122 +#: ../../rst/community/steering/community_steering_committee.rst:124 msgid "A person starting the triage:" msgstr "トリアージを開始した人:" -#: ../../rst/community/steering/community_steering_committee.rst:124 +#: ../../rst/community/steering/community_steering_committee.rst:126 msgid "Identifies the topics mentioned above." msgstr "上記のトピックを特定する。" -#: ../../rst/community/steering/community_steering_committee.rst:125 +#: ../../rst/community/steering/community_steering_committee.rst:127 msgid "Creates a special triage topic containing an enumerated list of the topics-candidates for closing." msgstr "クローズするトピック候補の列挙リストを含む、特別なトリアージトピックを作成する。" -#: ../../rst/community/steering/community_steering_committee.rst:126 +#: ../../rst/community/steering/community_steering_committee.rst:128 msgid "Establishes a vote date considering a number of topics, their complexity and comment-history size giving the Community sufficient time to go through and discuss them." msgstr "トピックの数、複雑さ、コメント履歴のサイズを考慮して投票日を設定し、コミュニティーが検討して議論するのに十分な時間を設定する。" -#: ../../rst/community/steering/community_steering_committee.rst:127 +#: ../../rst/community/steering/community_steering_committee.rst:129 msgid "The Community and the Committee vote on each topic-candidate listed in the triage topic whether to close it or keep it open." msgstr "コミュニティーおよび委員会がトリアージトピックに含まれるトピック候補ごとに、終了するか、オープンのままにするかの投票を行う。" -#: ../../rst/community/steering/community_steering_committee.rst:130 +#: ../../rst/community/steering/community_steering_committee.rst:132 msgid "Collection inclusion requests workflow" msgstr "コレクションのインクルージョンリクエストのワークフロー" -#: ../../rst/community/steering/community_steering_committee.rst:132 +#: ../../rst/community/steering/community_steering_committee.rst:134 msgid "When reviewing community collection `inclusion requests `_, the Committee members check if a collection adheres to the `Community collection requirements `_." msgstr "コミュニティーコレクションの `インクルージョンリクエスト `_ を確認する場合、Committee メンバーはコレクションが `コミュニティーのコレクション要件 `_ に準拠しているかどうかを確認します。" -#: ../../rst/community/steering/community_steering_committee.rst:134 +#: ../../rst/community/steering/community_steering_committee.rst:136 msgid "A Committee member who conducts the inclusion review copies the `Ansible community collection checklist `_ into a corresponding `discussion `_." msgstr "インクルージョンのレビューを実行する Committee メンバーは、`Ansible コミュニティーのコレクションチェックリスト `_ を対応する `ディスカッション `_ にコピーします。" -#: ../../rst/community/steering/community_steering_committee.rst:136 +#: ../../rst/community/steering/community_steering_committee.rst:138 msgid "In the course of the review, the Committee member marks items as completed or leaves a comment saying whether the reviewer expects an issue to be addressed or whether it is optional (for example, it could be **MUST FIX:** or **SHOULD FIX:** under an item)." msgstr "レビューの過程で、Committee のメンバーは項目に完了のマークを付けるか、レビュー担当者が issue の解決を期待しているかどうか、またはオプションであるかどうかをコメントで残します (たとえば、項目の下で **MUST FIX:** または **SHOULD FIX:** となります)。" -#: ../../rst/community/steering/community_steering_committee.rst:138 +#: ../../rst/community/steering/community_steering_committee.rst:140 msgid "For a collection to be included in the Ansible community package, the collection:" msgstr "Ansible コミュニティーパッケージに含めるコレクションには以下が適用されます。" -#: ../../rst/community/steering/community_steering_committee.rst:140 +#: ../../rst/community/steering/community_steering_committee.rst:142 msgid "MUST be reviewed and approved by at least two persons, where at least one person is a Steering Committee member." msgstr "2 人以上のユーザーがレビューして承認する必要があります。そのうちの少なくとも 1 人は Steering Committee メンバーです。" -#: ../../rst/community/steering/community_steering_committee.rst:141 +#: ../../rst/community/steering/community_steering_committee.rst:143 msgid "For a Non-Steering Committee review to be counted for inclusion, it MUST be checked and approved by *another* Steering Committee member." msgstr "Steering Committee 以外のレビューが含まれると認められるためには、*別の* Steering Committee メンバーによって確認および承認される必要があります。" -#: ../../rst/community/steering/community_steering_committee.rst:142 +#: ../../rst/community/steering/community_steering_committee.rst:144 msgid "Reviewers must not be involved significantly in development of the collection. They must declare any potential conflict of interest (for example, being friends/relatives/coworkers of the maintainers/authors, being users of the collection, or having contributed to that collection recently or in the past)." msgstr "レビュー担当者は、コレクションの開発に大きく関係してはいけません。レビュー担当者は、あらゆる潜在的な利害の対立を宣言する必要があります (たとえば、メンテナー/作成者の友人、親戚、同僚である場合、コレクションのユーザーである場合、最近または過去にそのコレクションに貢献したことがある場合など)。" -#: ../../rst/community/steering/community_steering_committee.rst:144 +#: ../../rst/community/steering/community_steering_committee.rst:146 msgid "After the collection gets two or more Committee member approvals, a Committee member creates a `community topic `_ linked to the corresponding inclusion request. The issue's description says that the collection has been approved by two or more Committee members and establishes a date (a week by default) when the inclusion decision will be considered made. This time period can be used to raise concerns." msgstr "コレクションが 2 人以上の Committee メンバーの承認を取得したら、1 人の Committee メンバーが、対応するインクルージョンリクエストにリンクされた `コミュニティートピック `_ を作成します。issue の説明には、コレクションが 2 人以上の Committee メンバーによって承認され、インクルージョンの決定が行われると見なされる日付 (デフォルトでは 1 週間) が設定されています。この期間は、懸念を提起するために使用できます。" -#: ../../rst/community/steering/community_steering_committee.rst:146 +#: ../../rst/community/steering/community_steering_committee.rst:148 msgid "If no objections are raised up to the established date, the inclusion request is considered successfully resolved. In this case, a Committee member:" msgstr "設定された日付まで異議が提起されなかった場合、インクルージョンリクエストは正常に解決されたと見なされます。この場合、Committee のメンバーは以下を行います。" -#: ../../rst/community/steering/community_steering_committee.rst:148 +#: ../../rst/community/steering/community_steering_committee.rst:150 msgid "Declares the decision in the topic and in the inclusion request." msgstr "トピックおよびインクルージョンリクエストで決定を宣言します。" -#: ../../rst/community/steering/community_steering_committee.rst:149 +#: ../../rst/community/steering/community_steering_committee.rst:151 msgid "Moves the request to the ``Resolved reviews`` category." msgstr "リクエストを ``Resolved reviews`` カテゴリーに移動します。" -#: ../../rst/community/steering/community_steering_committee.rst:150 +#: ../../rst/community/steering/community_steering_committee.rst:152 msgid "Adds the collection to the ``ansible.in`` file in a corresponding directory of the `ansible-build-data repository `_." msgstr "`ansible-build-data repository `_ の対応するディレクトリーの ``ansible.in`` ファイルにコレクションを追加します。" -#: ../../rst/community/steering/community_steering_committee.rst:151 +#: ../../rst/community/steering/community_steering_committee.rst:153 msgid "Announces the inclusion through the `Bullhorn newsletter `_." msgstr "`Bullhorn ニュースレター `_ からインクルージョンについて発表します。" -#: ../../rst/community/steering/community_steering_committee.rst:152 +#: ../../rst/community/steering/community_steering_committee.rst:154 msgid "Closes the topic." msgstr "トピックを終了します。" -#: ../../rst/community/steering/community_steering_committee.rst:155 +#: ../../rst/community/steering/community_steering_committee.rst:157 msgid "Community Working Group meetings" msgstr "コミュニティーワーキンググループのミーティング" -#: ../../rst/community/steering/community_steering_committee.rst:157 +#: ../../rst/community/steering/community_steering_committee.rst:159 msgid "See the Community Working Group meeting `schedule `_. Meeting summaries are posted in the `Community Working Group Meeting Agenda `_ issue." msgstr "コミュニティーワーキンググループのミーティングの `スケジュール `_.を確認してください。ミーティングのサマリーは、`コミュニティーのワーキンググループのミーティングアジェンダ `_ issue に投稿されます。" -#: ../../rst/community/steering/community_steering_committee.rst:161 +#: ../../rst/community/steering/community_steering_committee.rst:163 msgid "Participation in the Community Working Group meetings is optional for Committee members. Decisions on community topics are made asynchronously in the `community-topics `_ repository." msgstr "Committee メンバーが、コミュニティーワーキンググループのミーティングに参加することは任意となっています。コミュニティーのトピックに関する決定は、`community-topics `_ リポジトリーで非同期的に行われます。" -#: ../../rst/community/steering/community_steering_committee.rst:163 +#: ../../rst/community/steering/community_steering_committee.rst:165 msgid "The meeting minutes can be found at the `fedora meetbot site `_ and the same is posted to `Ansible Devel Mailing List `_ after every meeting." msgstr "ミーティングの議事録は、`fedora meetbot サイト `_ で確認できます。また、この議事録は、ミーティング終了後は毎回 `Ansible Devel メーリングリスト `_ に投稿されています。" @@ -6563,4 +6716,40 @@ msgstr "本セクションでは、Ansible コミュニティーの Steering Com #~ msgid "For details on how Ansibot manages the triage process, please consult the `Ansibot Issue Guide `_." #~ msgstr "Ansibot によるトリアージプロセスの管理方法に関する詳細は、「`Ansibot 問題ガイド `_」を参照してください。" +#~ msgid "If you are going to release the ``community.general`` and ``community.network`` collections, create new ``backport-X`` and ``needs_backport_to_stable_X`` labels in the corresponding repositories. Copy the styles and descriptions from the corresponding existing labels." +#~ msgstr "``community.general`` および ``community.network`` コレクションをリリースする場合は、対応するリポジトリーに新しい ``backport-X`` および ``needs_backport_to_stable_X`` ラベルを作成します。対応する既存ラベルからスタイルおよび説明をコピーします。" + +#~ msgid "Most changelog entries are ``bugfixes`` or ``minor_changes``. You can also use ``trivial`` for any collection that requires a changelog fragment for each pull request. ``trivial`` changelog fragments are excluded from the changelog output." +#~ msgstr "ほとんどの changelog エントリーは、``bugfixes`` または ``minor_changes`` です。プル要求ごとに changelog フラグメントを必要とするコレクションに ``trivial`` を使用することもできます。``trivial`` changelog フラグメントは changelog 出力から除外されます。" + +#~ msgid "`Ansible Lockdown List `_ is for all things related to Ansible Lockdown projects, including DISA STIG automation and CIS Benchmarks." +#~ msgstr "`Ansible Lockdown リスト `_ は、DISA STIG オートメーションや CIS ベンチマークなど、Ansible Lockdown プロジェクトに関連するものを対象としています。" + +#~ msgid "edits (so you can fix your typos)" +#~ msgstr "編集(タイプミスを修正できます)" + +#~ msgid "`Ansible Lockdown Working Group `_ (`Security playbooks/roles `_) - Matrix: `#lockdown:ansible.com `_ | IRC: ``#ansible-lockdown``" +#~ msgstr "`Ansible Lockdown Working Group `_ (`Security playbooks/roles `_) - Matrix: `#lockdown:ansible.com `_ | IRC: ``#ansible-lockdown``" + +#~ msgid "You can also look for GitHub issues labeled with the ``easyfix``, ``good_first_issue``, and ``docs`` labels. Add a comment on the GitHub issue to say you are looking at it and to ask for help if you need it." +#~ msgstr "``easyfix``、``good_first_issue``、``docs`` でラベル付けされた GitHub issue を見つけることもできます。GitHub issue に閲覧したことを示すコメントを追加し、必要に応じて助言を依頼してください。" + +#~ msgid "You can use the ``-vv`` or ``-vvv`` argument, if you need more detailed output." +#~ msgstr "より詳細な出力が必要な場合は、``-vv`` 引数または ``-vvv`` 引数を使用できます。" + +#~ msgid "You can also contribute by reviewing open documentation `issues `_ and `PRs `_. To add a helpful review, please:" +#~ msgstr "開いているドキュメントの `問題 (issue) `_ および `プル要求 `_ を確認することで貢献することもできます。役に立つレビューを追加するには、以下を参照してください。" + +#~ msgid "Include a comment - \"looks good to me\" only helps if we know why." +#~ msgstr "「looks good to me (私には良さそうに見える)」というコメントは、他の人にもその理由が明らかな場合にのみ使用してください。" + +#~ msgid "For issues, reproduce the problem." +#~ msgstr "問題については、問題を再現します。" + +#~ msgid "For PRs, test the change." +#~ msgstr "プル要求については、変更をテストします。" + +#~ msgid "The Community and the Steering Committee come together at weekly meetings in the ``#ansible-community`` :ref:`Matrix/Libera.Chat ` channel to discuss important project-scale questions. See the `schedule `_ and join." +#~ msgstr "コミュニティーと Steering Committee は、``#ansible-community`` :ref:`Matrix/Libera.Chat ` チャンネルで毎週ミーティングを行い、プロジェクト規模の重要な質問について話し合います。`schedule `_ を参照して参加してください。" + diff --git a/docs/docsite/rst/locales/ja/LC_MESSAGES/dev_guide.po b/docs/docsite/rst/locales/ja/LC_MESSAGES/dev_guide.po index 58733fa3..b6abc3e5 100644 --- a/docs/docsite/rst/locales/ja/LC_MESSAGES/dev_guide.po +++ b/docs/docsite/rst/locales/ja/LC_MESSAGES/dev_guide.po @@ -7,14 +7,14 @@ msgid "" msgstr "" "Project-Id-Version: Ansible devel\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-10-05 09:34+0200\n" +"POT-Creation-Date: 2023-03-01 20:16+0100\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.8.1\n" +"Generated-By: Babel 2.9.0\n" #: ../../rst/dev_guide/ansible_index.rst:5 ../../rst/dev_guide/core_index.rst:5 msgid "Developer Guide" @@ -104,7 +104,7 @@ msgstr ":ref:`Python 開発環境をセットアップ ` し msgid "I want to :ref:`get started writing a module `." msgstr ":ref:`モジュールの記述を開始 ` したいです。" -#: ../../rst/dev_guide/ansible_index.rst:40 +#: ../../rst/dev_guide/ansible_index.rst:39 #: ../../rst/dev_guide/core_index.rst:36 msgid "I want to write a specific kind of module:" msgstr "特定のモジュールを作成したいです。" @@ -124,98 +124,94 @@ msgid "an :ref:`Amazon module `." #: ../../rst/dev_guide/ansible_index.rst:39 -msgid "an :ref:`OpenStack module `." -msgstr ":ref:`OpenStack モジュール `" +msgid "an :ref:`oVirt/RHV module `." +msgstr ":ref:`oVirt/RHV module `" #: ../../rst/dev_guide/ansible_index.rst:40 -msgid "an :ref:`oVirt/RHV module `." -msgstr ":ref:`oVirt/RHV モジュール `" - -#: ../../rst/dev_guide/ansible_index.rst:41 msgid "a :ref:`VMware module `." msgstr ":ref:`VMware module `" -#: ../../rst/dev_guide/ansible_index.rst:42 +#: ../../rst/dev_guide/ansible_index.rst:41 #: ../../rst/dev_guide/core_index.rst:38 msgid "I want to :ref:`write a series of related modules ` that integrate Ansible with a new product (for example, a database, cloud provider, network platform, and so on)." msgstr "Ansible を新規製品 (例: データベース、クラウドプロバイダー、ネットワークプラットフォーム) と統合する :ref:`一連の関連モジュールを記述 ` したいです。" -#: ../../rst/dev_guide/ansible_index.rst:44 +#: ../../rst/dev_guide/ansible_index.rst:43 #: ../../rst/dev_guide/core_index.rst:40 msgid "I want to refine my code:" msgstr "コードを改良したいです。" -#: ../../rst/dev_guide/ansible_index.rst:46 +#: ../../rst/dev_guide/ansible_index.rst:45 #: ../../rst/dev_guide/core_index.rst:42 msgid "I want to :ref:`debug my module code `." msgstr ":ref:`モジュールコードをデバッグ ` したいです。" -#: ../../rst/dev_guide/ansible_index.rst:47 +#: ../../rst/dev_guide/ansible_index.rst:46 #: ../../rst/dev_guide/core_index.rst:43 msgid "I want to :ref:`add tests `." msgstr ":ref:`テストを追加 ` したいです。" -#: ../../rst/dev_guide/ansible_index.rst:48 +#: ../../rst/dev_guide/ansible_index.rst:47 #: ../../rst/dev_guide/core_index.rst:44 msgid "I want to :ref:`document my module `." msgstr ":ref:`モジュールをドキュメント化 ` したいです。" -#: ../../rst/dev_guide/ansible_index.rst:49 +#: ../../rst/dev_guide/ansible_index.rst:48 #: ../../rst/dev_guide/core_index.rst:45 msgid "I want to :ref:`document my set of modules for a network platform `." msgstr ":ref:`ネットワークプラットフォームのモジュールセットを文書化 ` したいです。" -#: ../../rst/dev_guide/ansible_index.rst:50 +#: ../../rst/dev_guide/ansible_index.rst:49 #: ../../rst/dev_guide/core_index.rst:46 msgid "I want to follow :ref:`conventions and tips for clean, usable module code `." msgstr ":ref:`クリーンで使いやすいモジュールコードのための規則とヒント ` を適用したいです。" -#: ../../rst/dev_guide/ansible_index.rst:51 +#: ../../rst/dev_guide/ansible_index.rst:50 #: ../../rst/dev_guide/core_index.rst:47 msgid "I want to :ref:`make sure my code runs on Python 2 and Python 3 `." msgstr ":ref:`作成したコードが Python 2 および Python 3 で実行する ` ようにしたいです。" -#: ../../rst/dev_guide/ansible_index.rst:53 +#: ../../rst/dev_guide/ansible_index.rst:52 #: ../../rst/dev_guide/core_index.rst:49 msgid "I want to work on other development projects:" msgstr "他の開発プロジェクトで作業したいです。" -#: ../../rst/dev_guide/ansible_index.rst:55 +#: ../../rst/dev_guide/ansible_index.rst:54 #: ../../rst/dev_guide/core_index.rst:51 msgid "I want to :ref:`write a plugin `." msgstr ":ref:`プラグインを記述 ` したいです。" -#: ../../rst/dev_guide/ansible_index.rst:56 +#: ../../rst/dev_guide/ansible_index.rst:55 #: ../../rst/dev_guide/core_index.rst:52 msgid "I want to :ref:`connect Ansible to a new source of inventory `." msgstr ":ref:`Ansible を新しいインベントリーソースに接続 ` したいです。" -#: ../../rst/dev_guide/ansible_index.rst:57 +#: ../../rst/dev_guide/ansible_index.rst:56 #: ../../rst/dev_guide/core_index.rst:53 msgid "I want to :ref:`deprecate an outdated module `." msgstr ":ref:`古いモジュールを非推奨 ` にしたいです。" -#: ../../rst/dev_guide/ansible_index.rst:59 +#: ../../rst/dev_guide/ansible_index.rst:58 #: ../../rst/dev_guide/core_index.rst:55 msgid "I want to contribute back to the Ansible project:" msgstr "Ansible プロジェクトに貢献したいです。" -#: ../../rst/dev_guide/ansible_index.rst:61 +#: ../../rst/dev_guide/ansible_index.rst:60 #: ../../rst/dev_guide/core_index.rst:57 msgid "I want to :ref:`understand how to contribute to Ansible `." msgstr ":ref:`Ansible への貢献方法を理解 ` したいです。" -#: ../../rst/dev_guide/ansible_index.rst:62 +#: ../../rst/dev_guide/ansible_index.rst:61 #: ../../rst/dev_guide/core_index.rst:58 msgid "I want to :ref:`contribute my module or plugin `." msgstr ":ref:`モジュールまたはプラグインに貢献 ` したいです。" -#: ../../rst/dev_guide/ansible_index.rst:63 +#: ../../rst/dev_guide/ansible_index.rst:62 #: ../../rst/dev_guide/core_index.rst:59 msgid "I want to :ref:`understand the license agreement ` for contributions to Ansible." msgstr "Ansible に参加するための :ref:`使用許諾契約を理解 ` したいです。" -#: ../../rst/dev_guide/ansible_index.rst:65 +#: ../../rst/dev_guide/ansible_index.rst:64 #: ../../rst/dev_guide/core_index.rst:61 msgid "If you prefer to read the entire guide, here's a list of the pages in order." msgstr "本ガイドをすべて読む場合は、以下に示す順番でページを表示してください。" @@ -482,7 +478,7 @@ msgstr "\\ :literal:`galaxy.yml`\\、\\ :literal:`\\*.pyc`\\、\\ :literal:`\\*. #: ../../rst/dev_guide/collections_galaxy_meta.rst:301 msgid "Mutually exclusive with \\ :literal:`manifest`\\" -msgstr " \\ :literal:`manifest`\\ と併用できません。" +msgstr "\\ :literal:`manifest`\\ と併用できません。" #: ../../rst/dev_guide/collections_galaxy_meta.rst:307 msgid "manifest |br|" @@ -526,14 +522,16 @@ msgstr "コレクションを開発するか、または変更します。" #: ../../rst/dev_guide/collections_galaxy_meta.rst:357 #: ../../rst/dev_guide/developing_api.rst:40 -#: ../../rst/dev_guide/developing_inventory.rst:475 -#: ../../rst/dev_guide/developing_plugins.rst:544 +#: ../../rst/dev_guide/developing_inventory.rst:505 +#: ../../rst/dev_guide/developing_plugins.rst:548 +#: ../../rst/dev_guide/sidecar.rst:95 #: ../../rst/dev_guide/testing_units_modules.rst:571 msgid ":ref:`developing_modules_general`" msgstr ":ref:`developing_modules_general`" #: ../../rst/dev_guide/collections_galaxy_meta.rst:358 -#: ../../rst/dev_guide/developing_plugins.rst:545 +#: ../../rst/dev_guide/developing_plugins.rst:549 +#: ../../rst/dev_guide/sidecar.rst:96 msgid "Learn about how to write Ansible modules" msgstr "Ansible モジュールの作成方法について" @@ -542,7 +540,7 @@ msgstr "Ansible モジュールの作成方法について" #: ../../rst/dev_guide/developing_collections_changelogs.rst:75 #: ../../rst/dev_guide/developing_collections_contributing.rst:58 #: ../../rst/dev_guide/developing_collections_creating.rst:54 -#: ../../rst/dev_guide/developing_collections_distributing.rst:397 +#: ../../rst/dev_guide/developing_collections_distributing.rst:399 #: ../../rst/dev_guide/developing_collections_migrating.rst:129 #: ../../rst/dev_guide/developing_collections_shared.rst:87 msgid ":ref:`collections`" @@ -552,7 +550,7 @@ msgstr ":ref:`collections`" #: ../../rst/dev_guide/developing_collections_changelogs.rst:76 #: ../../rst/dev_guide/developing_collections_contributing.rst:59 #: ../../rst/dev_guide/developing_collections_creating.rst:55 -#: ../../rst/dev_guide/developing_collections_distributing.rst:398 +#: ../../rst/dev_guide/developing_collections_distributing.rst:400 #: ../../rst/dev_guide/developing_collections_migrating.rst:130 #: ../../rst/dev_guide/developing_collections_shared.rst:88 msgid "Learn how to install and use collections." @@ -563,29 +561,31 @@ msgstr "コレクションのインストール方法および使用方法はこ #: ../../rst/dev_guide/developing_collections_changelogs.rst:79 #: ../../rst/dev_guide/developing_collections_contributing.rst:62 #: ../../rst/dev_guide/developing_collections_creating.rst:58 -#: ../../rst/dev_guide/developing_collections_distributing.rst:401 +#: ../../rst/dev_guide/developing_collections_distributing.rst:403 #: ../../rst/dev_guide/developing_collections_migrating.rst:133 #: ../../rst/dev_guide/developing_collections_shared.rst:91 #: ../../rst/dev_guide/developing_collections_structure.rst:290 #: ../../rst/dev_guide/developing_collections_testing.rst:96 #: ../../rst/dev_guide/developing_core.rst:19 #: ../../rst/dev_guide/developing_modules.rst:48 -#: ../../rst/dev_guide/developing_plugins.rst:546 +#: ../../rst/dev_guide/developing_plugins.rst:550 +#: ../../rst/dev_guide/sidecar.rst:97 msgid "`Mailing List `_" -msgstr "`メーリングリスト `_" +msgstr "`Mailing List `_" #: ../../rst/dev_guide/collections_galaxy_meta.rst:362 #: ../../rst/dev_guide/developing_collections.rst:47 #: ../../rst/dev_guide/developing_collections_changelogs.rst:80 #: ../../rst/dev_guide/developing_collections_contributing.rst:63 #: ../../rst/dev_guide/developing_collections_creating.rst:59 -#: ../../rst/dev_guide/developing_collections_distributing.rst:402 +#: ../../rst/dev_guide/developing_collections_distributing.rst:404 #: ../../rst/dev_guide/developing_collections_migrating.rst:134 #: ../../rst/dev_guide/developing_collections_shared.rst:92 #: ../../rst/dev_guide/developing_collections_structure.rst:291 #: ../../rst/dev_guide/developing_collections_testing.rst:97 #: ../../rst/dev_guide/developing_core.rst:20 -#: ../../rst/dev_guide/developing_plugins.rst:547 +#: ../../rst/dev_guide/developing_plugins.rst:551 +#: ../../rst/dev_guide/sidecar.rst:98 msgid "The development mailing list" msgstr "開発メーリングリスト" @@ -714,8 +714,8 @@ msgid "Once you edit the code or arguments in the exploded tree, use the ``execu msgstr "展開されたツリーのコードまたは引数を編集したら、``execute`` サブコマンドを使用してこれを実行します。" #: ../../rst/dev_guide/debugging.rst:97 -msgid "This subcommand inserts the absolute path to ``debug_dir`` as the first item in ``sys.path`` and invokes the script using the arguments in the ``args`` file. You can continue to run the module like this until you understand the problem. Then you can copy the changes back into your real module file and test that the real module works via ``ansible`` or ``ansible-playbook``." -msgstr "このサブコマンドは、``sys.path`` の最初の項目として ``debug_dir`` に絶対パスを挿入し、``args`` ファイルの引数を使用してスクリプトを呼び出します。問題を理解するまで、このモジュールの実行を継続できます。変更を実際のモジュールファイルにコピーし、実際のモジュールが ``ansible`` または ``ansible-playbook`` で動作することをテストすることができます。" +msgid "This subcommand inserts the absolute path to ``debug_dir`` as the first item in ``sys.path`` and invokes the script using the arguments in the ``args`` file. You can continue to run the module like this until you understand the problem. Then you can copy the changes back into your real module file and test that the real module works by using the ``ansible`` or ``ansible-playbook``." +msgstr "このサブコマンドは、``sys.path`` の最初の項目として ``debug_dir`` に絶対パスを挿入し、``args`` ファイルの引数を使用してスクリプトを呼び出します。問題を把握するまで、このようにモジュールの実行を継続できます。次に、変更を実際のモジュールファイルにコピーし、実際のモジュールが ``ansible`` または ``ansible-playbook`` で動作することをテストすることができます。" #: ../../rst/dev_guide/debugging.rst:103 msgid "Simple debugging" @@ -744,15 +744,11 @@ msgstr "Python API" #: ../../rst/dev_guide/developing_api.rst:7 #: ../../rst/dev_guide/developing_inventory.rst:17 #: ../../rst/dev_guide/developing_modules_best_practices.rst:9 -#: ../../rst/dev_guide/testing_compile.rst:9 #: ../../rst/dev_guide/testing_httptester.rst:7 #: ../../rst/dev_guide/testing_integration.rst:9 -#: ../../rst/dev_guide/testing_integration_legacy.rst:9 -#: ../../rst/dev_guide/testing_pep8.rst:9 #: ../../rst/dev_guide/testing_sanity.rst:9 #: ../../rst/dev_guide/testing_units.rst:14 #: ../../rst/dev_guide/testing_units_modules.rst:11 -#: ../../rst/dev_guide/testing_validate-modules.rst:9 msgid "Topics" msgstr "トピック" @@ -781,7 +777,7 @@ msgid "This example is a simple demonstration that shows how to minimally run a msgstr "この例は、いくつかのタスクを最小限に実行する方法を示す簡単なデモです。" #: ../../rst/dev_guide/developing_api.rst:31 -msgid "Ansible emits warnings and errors via the display object, which prints directly to stdout, stderr and the Ansible log." +msgid "Ansible emits warnings and errors through the display object, which prints directly to stdout, stderr and the Ansible log." msgstr "Ansible は、表示オブジェクトを介して警告とエラーを出力します。標準出力 (stdout)、標準エラー (stderr)、Ansible ログに直接出力します。" #: ../../rst/dev_guide/developing_api.rst:33 @@ -789,7 +785,8 @@ msgid "The source code for the ``ansible`` command line tools (``lib/ansible/cli msgstr "``ansible`` コマンドラインツールのソースコード (``lib/ansible/cli/``) は `GitHub で利用 `_ できます。" #: ../../rst/dev_guide/developing_api.rst:38 -#: ../../rst/dev_guide/developing_plugins.rst:542 +#: ../../rst/dev_guide/developing_plugins.rst:546 +#: ../../rst/dev_guide/sidecar.rst:93 msgid ":ref:`developing_inventory`" msgstr ":ref:`developing_inventory`" @@ -803,23 +800,23 @@ msgstr "モジュール開発を始める" #: ../../rst/dev_guide/developing_api.rst:42 #: ../../rst/dev_guide/developing_core.rst:17 -#: ../../rst/dev_guide/developing_inventory.rst:477 +#: ../../rst/dev_guide/developing_inventory.rst:507 msgid ":ref:`developing_plugins`" msgstr ":ref:`developing_plugins`" #: ../../rst/dev_guide/developing_api.rst:43 -#: ../../rst/dev_guide/developing_inventory.rst:478 +#: ../../rst/dev_guide/developing_inventory.rst:508 msgid "How to develop plugins" msgstr "プラグインの開発方法" #: ../../rst/dev_guide/developing_api.rst:44 -#: ../../rst/dev_guide/developing_inventory.rst:481 +#: ../../rst/dev_guide/developing_inventory.rst:511 #: ../../rst/dev_guide/testing_units_modules.rst:579 msgid "`Development Mailing List `_" msgstr "`Development Mailing List `_" #: ../../rst/dev_guide/developing_api.rst:45 -#: ../../rst/dev_guide/developing_inventory.rst:482 +#: ../../rst/dev_guide/developing_inventory.rst:512 #: ../../rst/dev_guide/testing_units_modules.rst:580 msgid "Mailing list for development topics" msgstr "開発トピックのメーリングリスト" @@ -829,14 +826,15 @@ msgstr "開発トピックのメーリングリスト" #: ../../rst/dev_guide/developing_collections_changelogs.rst:81 #: ../../rst/dev_guide/developing_collections_contributing.rst:64 #: ../../rst/dev_guide/developing_collections_creating.rst:60 -#: ../../rst/dev_guide/developing_collections_distributing.rst:403 +#: ../../rst/dev_guide/developing_collections_distributing.rst:405 #: ../../rst/dev_guide/developing_collections_migrating.rst:135 #: ../../rst/dev_guide/developing_collections_shared.rst:93 #: ../../rst/dev_guide/developing_collections_structure.rst:292 #: ../../rst/dev_guide/developing_collections_testing.rst:98 -#: ../../rst/dev_guide/developing_inventory.rst:483 +#: ../../rst/dev_guide/developing_inventory.rst:513 #: ../../rst/dev_guide/developing_modules.rst:50 -#: ../../rst/dev_guide/developing_plugins.rst:548 +#: ../../rst/dev_guide/developing_plugins.rst:552 +#: ../../rst/dev_guide/sidecar.rst:99 msgid ":ref:`communication_irc`" msgstr ":ref:`communication_irc`" @@ -845,14 +843,15 @@ msgstr ":ref:`communication_irc`" #: ../../rst/dev_guide/developing_collections_changelogs.rst:82 #: ../../rst/dev_guide/developing_collections_contributing.rst:65 #: ../../rst/dev_guide/developing_collections_creating.rst:61 -#: ../../rst/dev_guide/developing_collections_distributing.rst:404 +#: ../../rst/dev_guide/developing_collections_distributing.rst:406 #: ../../rst/dev_guide/developing_collections_migrating.rst:136 #: ../../rst/dev_guide/developing_collections_shared.rst:94 #: ../../rst/dev_guide/developing_collections_structure.rst:293 #: ../../rst/dev_guide/developing_collections_testing.rst:99 -#: ../../rst/dev_guide/developing_inventory.rst:484 +#: ../../rst/dev_guide/developing_inventory.rst:514 #: ../../rst/dev_guide/developing_modules.rst:51 -#: ../../rst/dev_guide/developing_plugins.rst:549 +#: ../../rst/dev_guide/developing_plugins.rst:553 +#: ../../rst/dev_guide/sidecar.rst:100 msgid "How to join Ansible chat channels" msgstr "Ansible チャットチャンネルへの参加方法" @@ -1030,7 +1029,7 @@ msgstr "最初の 2 つのオプションの場合、Ansible は変更ログの #: ../../rst/dev_guide/developing_collections_changelogs.rst:73 msgid ":ref:`collection_changelogs`" -msgstr ":ref:`collections`" +msgstr ":ref:`collection_changelogs`" #: ../../rst/dev_guide/developing_collections_changelogs.rst:74 msgid "Learn how to create good changelog fragments." @@ -1256,12 +1255,12 @@ msgid "Building your collection tarball" msgstr "コレクション tarball のビルド" #: ../../rst/dev_guide/developing_collections_distributing.rst:24 -#: ../../rst/dev_guide/developing_collections_distributing.rst:289 +#: ../../rst/dev_guide/developing_collections_distributing.rst:291 msgid "Preparing to publish your collection" msgstr "コレクション公開の準備" #: ../../rst/dev_guide/developing_collections_distributing.rst:25 -#: ../../rst/dev_guide/developing_collections_distributing.rst:356 +#: ../../rst/dev_guide/developing_collections_distributing.rst:358 msgid "Publishing your collection" msgstr "コレクションの公開" @@ -1378,7 +1377,7 @@ msgid "setting a server in configuration by creating a :ref:`GALAXY_SERVER` sett msgstr ":file:`ansible.cfg` ファイルへの :ref:`GALAXY_SERVER` 設定の作成によるコンフィギュレーションでのサーバーの設定" #: ../../rst/dev_guide/developing_collections_distributing.rst:111 -#: ../../rst/dev_guide/style_guide/index.rst:222 +#: ../../rst/dev_guide/style_guide/index.rst:224 #: ../../rst/shared_snippets/installing_collections_git_repo.txt:10 msgid "For example:" msgstr "例:" @@ -1400,190 +1399,190 @@ msgid "Run ``ansible-galaxy collection build`` from inside the top-level directo msgstr "コレクションの最上位ディレクトリの中から``ansible-galaxy collection build`` を実行します。例えば、以下のようになります。" #: ../../rst/dev_guide/developing_collections_distributing.rst:135 -msgid "This command builds a tarball of the collection in the current directory, which you can upload to your selected distribution server::" +msgid "This command builds a tarball of the collection in the current directory, which you can upload to your selected distribution server:" msgstr "このコマンドにより、現在のディレクトリーにコレクションの tarball がビルドされます。これを希望する配信サーバーにアップロードできます。" -#: ../../rst/dev_guide/developing_collections_distributing.rst:144 +#: ../../rst/dev_guide/developing_collections_distributing.rst:146 msgid "To reduce the size of collections, certain files and folders are excluded from the collection tarball by default. See :ref:`ignoring_files_and_folders_collections` if your collection directory contains other files you want to exclude." msgstr "コレクションのサイズを小さくするために、デフォルトではコレクションのtarballから特定のファイルやフォルダが除外されています。コレクションディレクトリに除外したい他のファイルがある場合は、:ref:`ignoring_files_and_folders_collections` を参照してください。" -#: ../../rst/dev_guide/developing_collections_distributing.rst:145 +#: ../../rst/dev_guide/developing_collections_distributing.rst:147 msgid "The current Galaxy maximum tarball size is 2 MB." msgstr "現在の Galaxy の tarball の最大サイズは 2 MB です。" -#: ../../rst/dev_guide/developing_collections_distributing.rst:147 +#: ../../rst/dev_guide/developing_collections_distributing.rst:149 msgid "You can upload your tarball to one or more distribution servers. You can also distribute your collection locally by copying the tarball to install your collection directly on target systems." msgstr "tarballは、1つまたは複数の配信サーバーにアップロードすることができます。また、コレクションをローカルに配布するには、tarballをコピーしてターゲットシステムにコレクションを直接インストールします。" -#: ../../rst/dev_guide/developing_collections_distributing.rst:153 +#: ../../rst/dev_guide/developing_collections_distributing.rst:155 msgid "Ignoring files and folders" msgstr "ファイルやフォルダーを無視する" -#: ../../rst/dev_guide/developing_collections_distributing.rst:155 +#: ../../rst/dev_guide/developing_collections_distributing.rst:157 msgid "You can exclude files from your collection with either :ref:`build_ignore ` or :ref:`manifest_directives`. For more information on the :file:`galaxy.yml` file, see :ref:`collections_galaxy_meta`." msgstr ":ref:`build_ignore ` または :ref:`manifest_directives` のいずれかを使用してコレクションからファイルを除外できます。:file:`galaxy.yml` ファイルの詳細は、 :ref:`collections_galaxy_meta` を参照してください。" -#: ../../rst/dev_guide/developing_collections_distributing.rst:161 +#: ../../rst/dev_guide/developing_collections_distributing.rst:163 msgid "Include all, with explicit ignores" msgstr "明示的に無視してすべてを含める" -#: ../../rst/dev_guide/developing_collections_distributing.rst:163 +#: ../../rst/dev_guide/developing_collections_distributing.rst:165 msgid "By default the build step includes all the files in the collection directory in the tarball except for the following:" msgstr "デフォルトでは、ビルドステップでは、tarball内のコレクションディレクトリにある、以下を除くすべてのファイルが含まれます。" -#: ../../rst/dev_guide/developing_collections_distributing.rst:165 +#: ../../rst/dev_guide/developing_collections_distributing.rst:167 msgid "``galaxy.yml``" msgstr "``galaxy.yml``" -#: ../../rst/dev_guide/developing_collections_distributing.rst:166 +#: ../../rst/dev_guide/developing_collections_distributing.rst:168 msgid "``*.pyc``" msgstr "``*.pyc``" -#: ../../rst/dev_guide/developing_collections_distributing.rst:167 +#: ../../rst/dev_guide/developing_collections_distributing.rst:169 msgid "``*.retry``" msgstr "``*.retry``" -#: ../../rst/dev_guide/developing_collections_distributing.rst:168 +#: ../../rst/dev_guide/developing_collections_distributing.rst:170 msgid "``tests/output``" msgstr "``tests/output``" -#: ../../rst/dev_guide/developing_collections_distributing.rst:169 +#: ../../rst/dev_guide/developing_collections_distributing.rst:171 msgid "previously built tarballs in the root directory" msgstr "ルートディレクトリーに以前にビルドされたtarball" -#: ../../rst/dev_guide/developing_collections_distributing.rst:170 +#: ../../rst/dev_guide/developing_collections_distributing.rst:172 msgid "various version control directories such as ``.git/``" msgstr "``.git/`` などのさまざまなバージョン管理ディレクトリー" -#: ../../rst/dev_guide/developing_collections_distributing.rst:172 +#: ../../rst/dev_guide/developing_collections_distributing.rst:174 msgid "To exclude other files and folders from your collection tarball, set a list of file glob-like patterns in the ``build_ignore`` key in the collection's ``galaxy.yml`` file. These patterns use the following special characters for wildcard matching:" msgstr "コレクションのtarballから他のファイルおよびディレクトリーを除外するには、コレクションの ``galaxy.yml`` ファイルの ``build_ignore`` キーに、ファイルグロブのようなパターンの一覧を設定します。これらのパターンはワイルドカードの一致に以下の特殊文字を使用します。" -#: ../../rst/dev_guide/developing_collections_distributing.rst:174 +#: ../../rst/dev_guide/developing_collections_distributing.rst:176 msgid "``*``: Matches everything" msgstr "``*``: すべてに一致します。" -#: ../../rst/dev_guide/developing_collections_distributing.rst:175 +#: ../../rst/dev_guide/developing_collections_distributing.rst:177 msgid "``?``: Matches any single character" msgstr "``?``: 任意の単一文字に一致します。" -#: ../../rst/dev_guide/developing_collections_distributing.rst:176 +#: ../../rst/dev_guide/developing_collections_distributing.rst:178 msgid "``[seq]``: Matches any character in sequence" msgstr "``[seq]``:任意の連続した文字に一致します。" -#: ../../rst/dev_guide/developing_collections_distributing.rst:177 +#: ../../rst/dev_guide/developing_collections_distributing.rst:179 msgid "``[!seq]``:Matches any character not in sequence" msgstr "``[!seq]``:連続していない任意の文字に一致します。" -#: ../../rst/dev_guide/developing_collections_distributing.rst:179 +#: ../../rst/dev_guide/developing_collections_distributing.rst:181 msgid "For example, to exclude the :file:`sensitive` folder within the ``playbooks`` folder as well any ``.tar.gz`` archives, set the following in your ``galaxy.yml`` file:" msgstr "たとえば、``playbooks`` ディレクトリー内の :file:`sensitive` ディレクトリーや ``.tar.gz`` アーカイブを除外する場合は、``galaxy.yml`` ファイルに以下を設定します。" -#: ../../rst/dev_guide/developing_collections_distributing.rst:188 +#: ../../rst/dev_guide/developing_collections_distributing.rst:190 msgid "The ``build_ignore`` feature is only supported with ``ansible-galaxy collection build`` in Ansible 2.10 or newer." msgstr "``build_ignore`` 機能は、Ansible 2.10 以降の``ansible-galaxy collection build`` でのみサポートされています。" -#: ../../rst/dev_guide/developing_collections_distributing.rst:194 +#: ../../rst/dev_guide/developing_collections_distributing.rst:196 msgid "Manifest Directives" msgstr "マニフェストディレクティブ" -#: ../../rst/dev_guide/developing_collections_distributing.rst:198 +#: ../../rst/dev_guide/developing_collections_distributing.rst:200 msgid "The :file:`galaxy.yml` file supports manifest directives that are historically used in Python packaging, as described in `MANIFEST.in commands `_." msgstr ":file:`galaxy.yml` ファイルは、`MANIFEST.in commands `_ で説明されているように、Python パッケージでこれまで使用されていたマニフェストディレクティブをサポートします。" -#: ../../rst/dev_guide/developing_collections_distributing.rst:201 +#: ../../rst/dev_guide/developing_collections_distributing.rst:203 msgid "The use of ``manifest`` requires installing the optional ``distlib`` Python dependency." msgstr "``manifest`` を使用するには、オプションの ``distlib`` Python 依存関係をインストールする必要があります。" -#: ../../rst/dev_guide/developing_collections_distributing.rst:204 +#: ../../rst/dev_guide/developing_collections_distributing.rst:206 msgid "The ``manifest`` feature is only supported with ``ansible-galaxy collection build`` in ``ansible-core`` 2.14 or newer, and is mutually exclusive with ``build_ignore``." msgstr "``manifest`` 機能は、``ansible-core`` 2.14 以降の ``ansible-galaxy collection build`` でのみサポートされ、``build_ignore`` と合わせて使用できません。" -#: ../../rst/dev_guide/developing_collections_distributing.rst:206 +#: ../../rst/dev_guide/developing_collections_distributing.rst:208 msgid "For example, to exclude the :file:`sensitive` folder within the ``playbooks`` folder as well as any ``.tar.gz`` archives, set the following in your :file:`galaxy.yml` file:" msgstr "たとえば、``playbooks`` ディレクトリー内の :file:`sensitive` ディレクトリーや ``.tar.gz`` アーカイブを除外する場合は、:file:`galaxy.yml` ファイルに以下を設定します。" -#: ../../rst/dev_guide/developing_collections_distributing.rst:215 +#: ../../rst/dev_guide/developing_collections_distributing.rst:217 msgid "By default, the ``MANIFEST.in`` style directives would exclude all files by default, but there are default directives in place. Those default directives are described below. To see the directives in use during build, pass ``-vvv`` with the ``ansible-galaxy collection build`` command." msgstr "デフォルトでは、``MANIFEST.in`` スタイルのディレクティブはデフォルトですべてのファイルを除外しますが、デフォルトのディレクティブが配置されています。これらのデフォルトのディレクティブについて以下で説明します。ビルド時に使用するディレクティブを表示するには、``ansible-galaxy collection build`` コマンドで ``-vvv`` を指定します。" -#: ../../rst/dev_guide/developing_collections_distributing.rst:249 +#: ../../rst/dev_guide/developing_collections_distributing.rst:251 msgid "``--*.tar.gz`` is expanded with the actual ``namespace`` and ``name``." msgstr "``--*.tar.gz`` は、実際の ``namespace`` および ``name`` で展開されます。" -#: ../../rst/dev_guide/developing_collections_distributing.rst:251 +#: ../../rst/dev_guide/developing_collections_distributing.rst:253 msgid "The ``manifest.directives`` supplied in :file:`galaxy.yml` are inserted after the default includes and before the default excludes." msgstr ":file:`galaxy.yml` で指定される ``manifest.directives`` は、デフォルトの includes およびデフォルトの excludes の前に挿入されます。" -#: ../../rst/dev_guide/developing_collections_distributing.rst:253 +#: ../../rst/dev_guide/developing_collections_distributing.rst:255 msgid "To enable the use of manifest directives without supplying your own, insert either ``manifest: {}`` or ``manifest: null`` in the :file:`galaxy.yml` file and remove any use of ``build_ignore``." msgstr "独自のディレクティブを指定せずにマニフェストディレクティブを使用できるようにするには、:file:`galaxy.yml` ファイルに ``manifest: {}`` または ``manifest: null`` を挿入し、使用されている ``build_ignore`` を削除します。" -#: ../../rst/dev_guide/developing_collections_distributing.rst:255 +#: ../../rst/dev_guide/developing_collections_distributing.rst:257 msgid "If the default manifest directives do not meet your needs, you can set ``manifest.omit_default_directives`` to a value of ``true`` in :file:`galaxy.yml`. You then must specify a full compliment of manifest directives in :file:`galaxy.yml`. The defaults documented above are a good starting point." msgstr "デフォルトのマニフェストディレクティブが要件に合わない場合には、:file:`galaxy.yml` で ``manifest.omit_default_directives`` の値を ``true`` に指定できます。次に :file:`galaxy.yml` で完全に補完したマニフェストディレクティブを指定する必要があります。出発点として、上記に記載されているようにデフォルトを使用することが適切です。" -#: ../../rst/dev_guide/developing_collections_distributing.rst:257 +#: ../../rst/dev_guide/developing_collections_distributing.rst:259 msgid "Below is an example where the default directives are not included." msgstr "以下は、デフォルトのディレクティブが含まれていない例です。" -#: ../../rst/dev_guide/developing_collections_distributing.rst:274 +#: ../../rst/dev_guide/developing_collections_distributing.rst:276 msgid "Signing a collection" msgstr "コレクションの署名" -#: ../../rst/dev_guide/developing_collections_distributing.rst:276 +#: ../../rst/dev_guide/developing_collections_distributing.rst:278 msgid "You can include a GnuPG signature with your collection on a :term:`Pulp 3 Galaxy` server. See `Enabling collection signing `_ for details." msgstr ":term:`Pulp 3 Galaxy` のご使用のコレクションに GnuPG署名を追加できます。詳細は、`Enabling collection signing `_ を参照してください。" -#: ../../rst/dev_guide/developing_collections_distributing.rst:278 +#: ../../rst/dev_guide/developing_collections_distributing.rst:280 msgid "You can manually generate detached signatures for a collection using the ``gpg`` CLI using the following step. This step assume you have generated a GPG private key, but do not cover this process." msgstr "以下の手順の ``gpg`` CLI を使用してコレクションのデタッチされた署名を手動で生成できます。この手順では GPG 秘密鍵を生成していることを前提としていますが、このプロセスについては説明しません。" -#: ../../rst/dev_guide/developing_collections_distributing.rst:291 +#: ../../rst/dev_guide/developing_collections_distributing.rst:293 msgid "Each time you publish your collection, you must create a :ref:`new version ` on the distribution server. After you publish a version of a collection, you cannot delete or modify that version. To avoid unnecessary extra versions, check your collection for bugs, typos, and other issues locally before publishing:" msgstr "コレクションを公開するたびに、配信サーバーに:ref:`new version ` を作成する必要があります。コレクションのあるバージョンを公開した後は、そのバージョンを削除したり変更したりすることはできません。不要な追加バージョンを避けるために、コレクションを公開する前にローカルでバグやタイプミスなどの問題をチェックしてください。" -#: ../../rst/dev_guide/developing_collections_distributing.rst:293 +#: ../../rst/dev_guide/developing_collections_distributing.rst:295 msgid "Install the collection locally." msgstr "コレクションをローカルにインストールします。" -#: ../../rst/dev_guide/developing_collections_distributing.rst:294 +#: ../../rst/dev_guide/developing_collections_distributing.rst:296 msgid "Review the locally installed collection before publishing a new version." msgstr "新しいバージョンを公開する前に、ローカルにインストールされているコレクションを確認してください。" -#: ../../rst/dev_guide/developing_collections_distributing.rst:297 +#: ../../rst/dev_guide/developing_collections_distributing.rst:299 msgid "Installing your collection locally" msgstr "コレクションのローカルインストール" -#: ../../rst/dev_guide/developing_collections_distributing.rst:299 +#: ../../rst/dev_guide/developing_collections_distributing.rst:301 msgid "You have two options for installing your collection locally:" msgstr "コレクションをローカルにインストールするには、2つの方法があります。" -#: ../../rst/dev_guide/developing_collections_distributing.rst:301 +#: ../../rst/dev_guide/developing_collections_distributing.rst:303 msgid "Install your collection locally from the tarball." msgstr "コレクションをtarballからローカルにインストールする。" -#: ../../rst/dev_guide/developing_collections_distributing.rst:302 +#: ../../rst/dev_guide/developing_collections_distributing.rst:304 msgid "Install your collection locally from your git repository." msgstr "gitリポジトリからコレクションをローカルにインストールする。" -#: ../../rst/dev_guide/developing_collections_distributing.rst:305 +#: ../../rst/dev_guide/developing_collections_distributing.rst:307 msgid "Installing your collection locally from the tarball" msgstr "tarballからのコレクションのローカルインストール" -#: ../../rst/dev_guide/developing_collections_distributing.rst:307 +#: ../../rst/dev_guide/developing_collections_distributing.rst:309 msgid "To install your collection locally from the tarball, run ``ansible-galaxy collection install`` and specify the collection tarball. You can optionally specify a location using the ``-p`` flag. For example:" msgstr "コレクションをtarballからローカルにインストールするには、``ansible-galaxy collection install`` を実行し、コレクションのtarballを指定します。オプションで``-p`` フラグを使って場所を指定することもできます。例えば、以下のようになります。" -#: ../../rst/dev_guide/developing_collections_distributing.rst:313 +#: ../../rst/dev_guide/developing_collections_distributing.rst:315 msgid "Install the tarball into a directory configured in :ref:`COLLECTIONS_PATHS` so Ansible can easily find and load the collection. If you do not specify a path value, ``ansible-galaxy collection install`` installs the collection in the first path defined in :ref:`COLLECTIONS_PATHS`." msgstr "Ansibleがコレクションを簡単に見つけてロードできるように、:ref:`COLLECTIONS_PATHS` で設定したディレクトリにtarballをインストールします。パスの値を指定しない場合、``ansible-galaxy collection install`` は、:ref:`COLLECTIONS_PATHS` で定義された最初のパスにコレクションをインストールします。" -#: ../../rst/dev_guide/developing_collections_distributing.rst:318 +#: ../../rst/dev_guide/developing_collections_distributing.rst:320 msgid "Installing your collection locally from a git repository" msgstr "git リポジトリーからのコレクションのローカルインストール" -#: ../../rst/dev_guide/developing_collections_distributing.rst:320 +#: ../../rst/dev_guide/developing_collections_distributing.rst:322 msgid "To install your collection locally from a git repository, specify the repository and the branch you want to install:" msgstr "コレクションをgitリポジトリからローカルにインストールするには、インストールしたいリポジトリとブランチを指定します。" @@ -1659,115 +1658,115 @@ msgstr "リポジトリーによっては、メインのディレクトリーは msgid "You can install all collections in this repository, or install one collection from a specific commit:" msgstr "このリポジトリーのすべてのコレクションをインストールするか、特定のコミットから 1 つのコレクションをインストールできます。" -#: ../../rst/dev_guide/developing_collections_distributing.rst:329 +#: ../../rst/dev_guide/developing_collections_distributing.rst:331 msgid "Reviewing your collection" msgstr "コレクションの確認" -#: ../../rst/dev_guide/developing_collections_distributing.rst:331 +#: ../../rst/dev_guide/developing_collections_distributing.rst:333 msgid "Review the collection:" msgstr "コレクションを確認します。" -#: ../../rst/dev_guide/developing_collections_distributing.rst:333 +#: ../../rst/dev_guide/developing_collections_distributing.rst:335 msgid "Run a playbook that uses the modules and plugins in your collection. Verify that new features and functionality work as expected. For examples and more details see :ref:`Using collections `." msgstr "コレクションのモジュールやプラグインを使用するPlaybookを実行します。新しい機能が期待通りに動作するかどうかを検証します。例や詳細については、:ref:`Using collections ` をご覧ください。" -#: ../../rst/dev_guide/developing_collections_distributing.rst:334 +#: ../../rst/dev_guide/developing_collections_distributing.rst:336 msgid "Check the documentation for typos." msgstr "ドキュメントに誤字脱字がないか確認します。" -#: ../../rst/dev_guide/developing_collections_distributing.rst:335 +#: ../../rst/dev_guide/developing_collections_distributing.rst:337 msgid "Check that the version number of your tarball is higher than the latest published version on the distribution server or servers." msgstr "tarballのバージョン番号が、配信サーバーで公開されている最新のバージョンよりも高いことを確認してください。" -#: ../../rst/dev_guide/developing_collections_distributing.rst:336 +#: ../../rst/dev_guide/developing_collections_distributing.rst:338 msgid "If you find any issues, fix them and rebuild the collection tarball." msgstr "問題が見つかった場合は、それを修正してコレクションのtarballを再ビルドします。" -#: ../../rst/dev_guide/developing_collections_distributing.rst:341 +#: ../../rst/dev_guide/developing_collections_distributing.rst:343 msgid "Understanding collection versioning" msgstr "コレクションのバージョニングについて" -#: ../../rst/dev_guide/developing_collections_distributing.rst:343 +#: ../../rst/dev_guide/developing_collections_distributing.rst:345 msgid "The only way to change a collection is to release a new version. The latest version of a collection (by highest version number) is the version displayed everywhere in Galaxy and Automation Hub. Users can still download older versions." msgstr "コレクションを変更する唯一の方法は、新しいバージョンをリリースすることです。(最大バージョン番号による) コレクションの最新バージョンは、Galaxy およびAutomation Hubのあらゆる場所に表示されるバージョンになります。ユーザーは、古いバージョンを引き続きダウンロードできます。" -#: ../../rst/dev_guide/developing_collections_distributing.rst:345 +#: ../../rst/dev_guide/developing_collections_distributing.rst:347 msgid "Follow semantic versioning when setting the version for your collection. In summary:" msgstr "コレクションのバージョンを設定する際は、セマンティックバージョニングに従ってください。要約すると、以下のとおりです。" -#: ../../rst/dev_guide/developing_collections_distributing.rst:347 +#: ../../rst/dev_guide/developing_collections_distributing.rst:349 msgid "Increment the major version number, ``x`` of ``x.y.z``, for an incompatible API change." msgstr "互換性のない API 変更の場合:メジャーバージョンのバージョン番号 (例: ``x.y.z`` の ``x``) を増やします。" -#: ../../rst/dev_guide/developing_collections_distributing.rst:348 +#: ../../rst/dev_guide/developing_collections_distributing.rst:350 msgid "Increment the minor version number, ``y`` of ``x.y.z``, for new functionality in a backwards compatible manner (for example new modules/plugins, parameters, return values)." msgstr "下位互換性のある新機能(例えば、新しいモジュール/プラグイン、パラメータ、戻り値など)の場合:マイナーバージョン番号(``x.y.z`` の``y``)を増やします。" -#: ../../rst/dev_guide/developing_collections_distributing.rst:349 +#: ../../rst/dev_guide/developing_collections_distributing.rst:351 msgid "Increment the patch version number, ``z`` of ``x.y.z``, for backwards compatible bug fixes." msgstr "後方互換性のあるバグ修正の場合:パッチのバージョン番号(``x.y.z`` の``z``)を増やします。" -#: ../../rst/dev_guide/developing_collections_distributing.rst:351 +#: ../../rst/dev_guide/developing_collections_distributing.rst:353 msgid "Read the official `Semantic Versioning `_ documentation for details and examples." msgstr "詳細や例については、`Semantic Versioning `_の公式ドキュメントをお読みください。" -#: ../../rst/dev_guide/developing_collections_distributing.rst:358 +#: ../../rst/dev_guide/developing_collections_distributing.rst:360 msgid "The last step in distributing your collection is publishing the tarball to Ansible Galaxy, Red Hat Automation Hub, or a privately hosted Automation Hub instance. You can publish your collection in two ways:" msgstr "コレクションを配布する最後のステップは、Ansible Galaxy、Red Hat Automation Hub、またはプライベートにホストされているオートメーションハブインスタンスに tarball を公開することです。コレクションの公開には2つの方法があります。" -#: ../../rst/dev_guide/developing_collections_distributing.rst:360 +#: ../../rst/dev_guide/developing_collections_distributing.rst:362 msgid "from the command line using the ``ansible-galaxy collection publish`` command" msgstr "コマンドラインから(``ansible-galaxy collection publish`` コマンドの使用)" -#: ../../rst/dev_guide/developing_collections_distributing.rst:361 +#: ../../rst/dev_guide/developing_collections_distributing.rst:363 msgid "from the website of the distribution server (Galaxy, Automation Hub) itself" msgstr "配信サーバー(Galaxy、Automation Hub)自体のWebサイトから" -#: ../../rst/dev_guide/developing_collections_distributing.rst:367 +#: ../../rst/dev_guide/developing_collections_distributing.rst:369 msgid "Publishing a collection from the command line" msgstr "コマンドラインからのコレクションの公開" -#: ../../rst/dev_guide/developing_collections_distributing.rst:369 +#: ../../rst/dev_guide/developing_collections_distributing.rst:371 msgid "To upload the collection tarball from the command line using ``ansible-galaxy``:" msgstr "``ansible-galaxy`` を使って、コマンドラインからコレクションの tarball をアップロードするには、以下のコマンドを実行します。" -#: ../../rst/dev_guide/developing_collections_distributing.rst:377 +#: ../../rst/dev_guide/developing_collections_distributing.rst:379 msgid "This ansible-galaxy command assumes you have retrieved and stored your API token in configuration. See :ref:`galaxy_specify_token` for details." msgstr "このansible-galaxyコマンドは、APIトークンを取得してコンフィグレーションに保存していることを前提としています。詳細は:ref:`galaxy_specify_token` を参照してください。" -#: ../../rst/dev_guide/developing_collections_distributing.rst:379 +#: ../../rst/dev_guide/developing_collections_distributing.rst:381 msgid "The ``ansible-galaxy collection publish`` command triggers an import process, just as if you uploaded the collection through the Galaxy website. The command waits until the import process completes before reporting the status back. If you want to continue without waiting for the import result, use the ``--no-wait`` argument and manually look at the import progress in your `My Imports `_ page." msgstr "``ansible-galaxy collection publish`` コマンドは、Galaxy の Web サイトでコレクションをアップロードしているのと同様に、インポートプロセスを発生させます。コマンドは、ステータスを報告する前にインポートプロセスが完了するまで待ちます。インポート結果を待たずに続行する場合は、``--no-wait`` 引数を使用して、`My Imports `_ ページで手動でインポートの進行状況を確認します。" -#: ../../rst/dev_guide/developing_collections_distributing.rst:384 +#: ../../rst/dev_guide/developing_collections_distributing.rst:386 msgid "Publishing a collection from the website" msgstr "Web サイトからのコレクションの公開" -#: ../../rst/dev_guide/developing_collections_distributing.rst:386 +#: ../../rst/dev_guide/developing_collections_distributing.rst:388 msgid "To publish your collection directly on the Galaxy website:" msgstr "コレクションを Galaxy の Web サイトに直接公開するには、以下を実行します。" -#: ../../rst/dev_guide/developing_collections_distributing.rst:388 +#: ../../rst/dev_guide/developing_collections_distributing.rst:390 msgid "Go to the `My Content `_ page, and click the **Add Content** button on one of your namespaces." msgstr "`My Content `_ ページに移動し、名前空間のいずれかの **コンテンツを追加** ボタンをクリックします。" -#: ../../rst/dev_guide/developing_collections_distributing.rst:389 +#: ../../rst/dev_guide/developing_collections_distributing.rst:391 msgid "From the **Add Content** dialogue, click **Upload New Collection**, and select the collection archive file from your local filesystem." msgstr "**コンテンツの追加** ダイアログから、**新規コレクションのアップロード** をクリックして、ローカルファイルシステムからコレクションのアーカイブファイルを選択します。" -#: ../../rst/dev_guide/developing_collections_distributing.rst:391 +#: ../../rst/dev_guide/developing_collections_distributing.rst:393 msgid "When you upload a collection, Ansible always uploads the tarball to the namespace specified in the collection metadata in the ``galaxy.yml`` file, no matter which namespace you select on the website. If you are not an owner of the namespace specified in your collection metadata, the upload request fails." msgstr "コレクションをアップロードする際、Web サイトで選択した名前空間に関係なく、Ansibleは``galaxy.yml`` ファイルのコレクションメタデータで指定された名前空間にtarballをアップロードします。コレクションメタデータで指定された名前空間の所有者でない場合、アップロードリクエストは失敗します。" -#: ../../rst/dev_guide/developing_collections_distributing.rst:393 +#: ../../rst/dev_guide/developing_collections_distributing.rst:395 msgid "After Galaxy uploads and accepts a collection, the website shows you the **My Imports** page. This page shows import process information. You can review any errors or warnings about your upload there." msgstr "Galaxyがコレクションをアップロードして受理すると、Web サイトでは**My Imports**ページが表示されます。このページには、インポートプロセス情報が表示されます。ここでは、アップロードに関するエラーや警告を確認することができます。" -#: ../../rst/dev_guide/developing_collections_distributing.rst:399 +#: ../../rst/dev_guide/developing_collections_distributing.rst:401 msgid ":ref:`collections_galaxy_meta`" msgstr ":ref:`collections_galaxy_meta`" -#: ../../rst/dev_guide/developing_collections_distributing.rst:400 +#: ../../rst/dev_guide/developing_collections_distributing.rst:402 msgid "Table of fields used in the :file:`galaxy.yml` file" msgstr ":file:`galaxy.yml` ファイルで使用されるフィールドの表" @@ -1781,7 +1780,7 @@ msgstr "ドキュメントのモジュールおよびプラグイン" #: ../../rst/dev_guide/developing_collections_documenting.rst:10 msgid "Documenting modules is thoroughly documented in :ref:`module_documenting`. Plugins can be documented the same way as modules, that is with ``DOCUMENTATION``, ``EXAMPLES``, and ``RETURN`` blocks." -msgstr "モジュールの文書化については、:ref: で詳しく説明しています。プラグインはモジュールと同じように記載されています (``DOCUMENTATION``、``EXAMPLES`` および ``RETURN`` のブロック)。" +msgstr "モジュールの文書化については、:ref:`module_documenting` で詳しく説明しています。プラグインはモジュールと同じように記載されています (``DOCUMENTATION``、``EXAMPLES`` および ``RETURN`` のブロック)。" #: ../../rst/dev_guide/developing_collections_documenting.rst:13 msgid "Documenting roles" @@ -2033,7 +2032,7 @@ msgstr "Ansibulbot は、既存の問題と PR を新しいリポジトリーに #: ../../rst/dev_guide/developing_collections_migrating.rst:110 msgid "`Example PR `_" -msgstr "`PR の例 `_" +msgstr "`Example PR `_" #: ../../rst/dev_guide/developing_collections_migrating.rst:112 msgid "The ``migrated_to:`` key must be added explicitly for every *file*. You cannot add ``migrated_to`` at the directory level. This is to allow module and plugin webdocs to be redirected to the new collection docs." @@ -2150,6 +2149,10 @@ msgstr "コレクションはスタンドアロンの独立したユニットと msgid "You can use git repositories for collection dependencies during local development and testing. For example:" msgstr "ローカルでの開発やテストの際に、コレクションの依存関係用にgitリポジトリを使用することができます。以下に例を示します。" +#: ../../rst/dev_guide/developing_collections_shared.rst:83 +msgid "Do not use git repositories as dependencies for published collections. Dependencies for published collections must be other published collections." +msgstr "公開されたコレクションの依存関係として git リポジトリーを使用しないでください。公開されたコレクションの依存関係は、他の公開されたコレクションでなければなりません。" + #: ../../rst/dev_guide/developing_collections_structure.rst:5 msgid "Collection structure" msgstr "コレクション構造" @@ -2303,32 +2306,32 @@ msgid "Also, playbooks within a collection follow the same guidelines as any pla msgstr "また、コレクション内の Playbook は、次のいくつかの調整を除いて、他の Playbook と同じガイドラインに従います。" #: ../../rst/dev_guide/developing_collections_structure.rst:192 -msgid "Directory: It must be in ``/playbooks directory``." -msgstr "ディレクトリー: ``/playbooks directory`` になければなりません。" +msgid "Directory: It must be in the ``playbooks/`` directory." +msgstr "ディレクトリー: ``playbooks/`` ディレクトリーになければなりません。" #: ../../rst/dev_guide/developing_collections_structure.rst:193 msgid "Hosts: The host should be defined as a variable so the users of a playbook do not mistakenly run the plays against their entire inventory (if the host is set to all). For example - ``hosts: '{{target|default(\"all\")}}'``." msgstr "ホスト: Playbook のユーザーがインベントリー全体 (ホストがすべてに設定されている場合) に対して誤ってプレイを実行することを防止するため、ホストは変数として定義する必要があります。例: -``hosts: '{{target|default(\"all\")}}'``。" #: ../../rst/dev_guide/developing_collections_structure.rst:195 -msgid "To run the plays, users can now use such commands as ``ansible-playbook --e 'targets=webservers'`` or ``ansible-playbook --limit webservers``. Either way, the collection owner should document their playbooks and how to use them in the ``/docs`` folder or ``README`` file." -msgstr "ユーザーは、``ansible-playbook --e 'targets=webservers'`` や ``ansible-playbook --limit webservers`` などのコマンドを使用してプレイを実行できるようになりました。いずれの方法でも、コレクション所有者は Playbook と、``/docs`` フォルダーまたは ``README`` ファイルでの使用方法を文書化する必要があります。" +msgid "To run the plays, users can now use such commands as ``ansible-playbook --e 'targets=webservers'`` or ``ansible-playbook --limit webservers``. Either way, the collection owner should document their playbooks and how to use them in the ``docs/`` folder or ``README`` file." +msgstr "ユーザーは、``ansible-playbook --e 'targets=webservers'`` や ``ansible-playbook --limit webservers`` などのコマンドを使用してプレイを実行できるようになりました。いずれの方法でも、コレクション所有者は Playbook と、``docs/`` フォルダーまたは ``README`` ファイルでの使用方法を文書化する必要があります。" #: ../../rst/dev_guide/developing_collections_structure.rst:200 msgid "tests directory" msgstr "tests ディレクトリー" #: ../../rst/dev_guide/developing_collections_structure.rst:202 -msgid "Ansible Collections are tested much like Ansible itself, by using the `ansible-test` utility which is released as part of Ansible, version 2.9.0 and newer. Because Ansible Collections are tested using the same tooling as Ansible itself, via `ansible-test`, all Ansible developer documentation for testing is applicable for authoring Collections Tests with one key concept to keep in mind." -msgstr "Ansible Collection は、Ansible 自体と同じように、Ansible バージョン 2.9.0 以降に同梱される `ansible-test` ユーティリティーを使用してテストされます。Ansible コレクションは Ansible 自体と同じツールを使用してテストされるため、`ansible-test` を介して、テスト用のすべての Ansible 開発者向けドキュメントは、覚えておくべき 1 つの重要な概念を使用してコレクションテストを作成するために適用できます。" +msgid "Ansible Collections are tested much like Ansible itself, by using the `ansible-test` utility which is released as part of Ansible, version 2.9.0 and newer. Because Ansible Collections are tested using the same tooling as Ansible itself, by using the `ansible-test`, all Ansible developer documentation for testing is applicable for authoring Collections Tests with one key concept to keep in mind." +msgstr "Ansible Collection は、Ansible 自体と同じように、Ansible バージョン 2.9.0 以降に同梱される `ansible-test` ユーティリティーを使用してテストされます。Ansible Collection は Ansible 自体と同じツールを使用してテストされるため、`ansible-test` を介して、テスト用のすべての Ansible 開発者向けドキュメントは、覚えておくべき 1 つの重要な概念を使用してコレクションテストを作成するために適用できます。" #: ../../rst/dev_guide/developing_collections_structure.rst:204 msgid "See :ref:`testing_collections` for specific information on how to test collections with ``ansible-test``." msgstr "``ansible-test`` でコレクションをテストする方法は、「:ref:`testing_collections`」を参照してください。" #: ../../rst/dev_guide/developing_collections_structure.rst:206 -msgid "When reading the :ref:`developing_testing` documentation, there will be content that applies to running Ansible from source code via a git clone, which is typical of an Ansible developer. However, it's not always typical for an Ansible Collection author to be running Ansible from source but instead from a stable release, and to create Collections it is not necessary to run Ansible from source. Therefore, when references of dealing with `ansible-test` binary paths, command completion, or environment variables are presented throughout the :ref:`developing_testing` documentation; keep in mind that it is not needed for Ansible Collection Testing because the act of installing the stable release of Ansible containing `ansible-test` is expected to setup those things for you." -msgstr ":ref:`developing_testing` のドキュメントを読む際、Ansible 開発者の典型的な git clone を使用して、ソースコードから Ansible を実行するコンテンツがあります。ただし、Ansible Collection の作成者がソースから Ansible を実行することは常に一般的ではなく、安定したリリースからではなく、コレクションを作成するには、ソースから Ansible を実行する必要はありません。そのため、`ansible-test` バイナリーパス、コマンド補完、または環境変数については、:ref:`developing_testing` ドキュメントで提示されます。Ansible Collection Testing ではこれが必要ありません。`ansible-test` を含む Ansible の安定したリリースをインストールするには、これらをセットアップすることが予想されるためです。" +msgid "When reading the :ref:`developing_testing` documentation, there will be content that applies to running Ansible from source code through a git clone, which is typical of an Ansible developer. However, it's not always typical for an Ansible Collection author to be running Ansible from source but instead from a stable release, and to create Collections it is not necessary to run Ansible from source. Therefore, when references of dealing with `ansible-test` binary paths, command completion, or environment variables are presented throughout the :ref:`developing_testing` documentation; keep in mind that it is not needed for Ansible Collection Testing because the act of installing the stable release of Ansible containing `ansible-test` is expected to setup those things for you." +msgstr ":ref:`developing_testing` のドキュメントを読む際、Ansible 開発者の典型的な git clone を使用して、ソースコードからの Ansible の実行に適用されるコンテンツがあります。しかし、Ansible Collection の作者が Ansible をソースからではなく、安定したリリースから実行することは必ずしも一般的ではなく、Collection を作成するためには、Ansible をソースから実行する必要はありません。そのため、`ansible-test` バイナリーパス、コマンド補完、または環境変数の扱いに関する参照については、:ref:`developing_testing` ドキュメントで提示されます。Ansible Collection Testing ではこれが必要ありません。`ansible-test` を含む Ansible の安定したリリースをインストールするには、これらをセットアップすることが予想されるためです。" #: ../../rst/dev_guide/developing_collections_structure.rst:211 msgid "meta directory and runtime.yml" @@ -2387,8 +2390,8 @@ msgid "Testing collections" msgstr "コレクションのテスト" #: ../../rst/dev_guide/developing_collections_testing.rst:7 -msgid "Testing your collection ensures that your code works well and integrates well with the rest of the Ansible ecosystem. Your collection should pass the general compile and sanity tests for Ansible code. You should also add unit tests to cover the code in your collection and integration tests to cover the interactions between your collection and ansible-core." -msgstr "コレクションのテストにより、コードが適切に機能し、Ansible エコシステムの他の部分との統合性が向上します。コレクションでは、Ansible コードの一般的なコンパイルおよび健全性テストを渡します。また、コレクションのコードに対応するユニットテストと、コレクションと ansible-core との間の対話に対応する統合テストを追加する必要があります。" +msgid "Testing your collection ensures that your code works well and integrates well with the rest of the Ansible ecosystem. Your collection should pass the sanity tests for Ansible code. You should also add unit tests to cover the code in your collection and integration tests to cover the interactions between your collection and ansible-core." +msgstr "コレクションのテストにより、コードが適切に機能し、Ansible エコシステムの他の部分との統合性が向上します。コレクションでは、Ansible コードの健全性テストを渡します。また、コレクションのコードに対応するユニットテストと、コレクションと ansible-core との間の対話に対応する統合テストを追加する必要があります。" #: ../../rst/dev_guide/developing_collections_testing.rst:14 msgid "Testing tools" @@ -2399,24 +2402,24 @@ msgid "The main tool for testing collections is ``ansible-test``, Ansible's test msgstr "コレクションをテストする主なツールは、:ref:`developing_testing` で説明されている Ansible のテストツール ``ansible-test`` です。これは、``ansible`` パッケージと ``ansible-core`` パッケージの両方で提供されます。" #: ../../rst/dev_guide/developing_collections_testing.rst:18 -msgid "You can run several compile and sanity checks, as well as run unit and integration tests for plugins using ``ansible-test``. When you test collections, test against the ansible-core version(s) you are targeting." -msgstr "また、複数のコンパイルチェックと健全性チェックを実行したり、``ansible-test`` を使用してプラグイン用にユニットテストや統合テストを実行できます。コレクションをテストする場合に、使用する ansible-core バージョンに対してテストすることができます。" +msgid "You can run several sanity tests, as well as run unit and integration tests for plugins using ``ansible-test``. When you test collections, test against the ansible-core version(s) you are targeting." +msgstr "また、複数の健全性チェックを実行したり、``ansible-test`` を使用してプラグイン用にユニットテストや統合テストを実行できます。コレクションをテストする場合に、使用する ansible-core バージョンに対してテストすることができます。" #: ../../rst/dev_guide/developing_collections_testing.rst:20 msgid "You must always execute ``ansible-test`` from the root directory of a collection. You can run ``ansible-test`` in Docker containers without installing any special requirements. The Ansible team uses this approach in Azure Pipelines both in the ansible/ansible GitHub repository and in the large community collections such as `community.general `_ and `community.network `_. The examples below demonstrate running tests in Docker containers." msgstr "常に、コレクションのルートディレクトリーから、``ansible-test`` を実行する必要があります。特別な要件をインストールせずに Docker コンテナーの ``ansible-test`` を実行できます。Ansible チームは、ansible/ansible GitHub リポジトリーと、`community.general `_ や `community.network `_ ような大規模なコミュニティーコレクションの両方の Azure Pipeline で、このアプローチを使用します。以下の例では、Docker コンテナーでテストの実行方法を示しています。" #: ../../rst/dev_guide/developing_collections_testing.rst:23 -msgid "Compile and sanity tests" -msgstr "コンパイルと健全性テスト" +msgid "Sanity tests" +msgstr "健全性テスト" #: ../../rst/dev_guide/developing_collections_testing.rst:25 -msgid "To run all compile and sanity tests:" -msgstr "すべてのコンパイルおよび健全性テストを実行するには、以下を実行します。" +msgid "To run all sanity tests:" +msgstr "すべての健全性テストを実行する場合:" #: ../../rst/dev_guide/developing_collections_testing.rst:31 -msgid "See :ref:`testing_compile` and :ref:`testing_sanity` for more information. See the :ref:`full list of sanity tests ` for details on the sanity tests and how to fix identified issues." -msgstr "詳細は、:ref:`testing_compile` および :ref:`testing_sanity` を参照してください。健全性テストの詳細と、特定された問題を修正する方法は、「:ref:`健全性テストの完全リスト `」を参照してください。" +msgid "See :ref:`testing_sanity` for more information. See the :ref:`full list of sanity tests ` for details on the sanity tests and how to fix identified issues." +msgstr "詳細は、:ref:`testing_sanity` を参照してください。健全性テストの詳細と、特定された問題を修正する方法は、:ref:`full list of sanity tests ` を参照してください。" #: ../../rst/dev_guide/developing_collections_testing.rst:34 msgid "Adding unit tests" @@ -2499,17 +2502,19 @@ msgid "Developing ``ansible-core``" msgstr "``ansible-core`` の開発" #: ../../rst/dev_guide/developing_core.rst:5 -msgid "Although ``ansible-core`` (the code hosted in the `ansible/ansible repository `_ on GitHub) includes a few plugins that can be swapped out via playbook directives or configuration, much of the code there is not modular. The documents here give insight into how the parts of ``ansible-core`` work together." -msgstr "``ansible-core`` (GitHub の `ansible/ansible リポジトリー `_ でホストされるコード) には、Playbook ディレクティブまたは設定を介してスワップできるプラグインが含まれていますが、モジュール化されないコードが多くあります。また、``ansible-core`` の一部が連携する方法に関するドキュメントです。" +msgid "Although ``ansible-core`` (the code hosted in the `ansible/ansible repository `_ on GitHub) includes a few plugins that can be swapped out by the playbook directives or configuration, much of the code there is not modular. The documents here give insight into how the parts of ``ansible-core`` work together." +msgstr "``ansible-core`` (GitHub の `ansible/ansible repository `_ でホストされるコード) には、Playbook ディレクティブまたは設定を介してスワップできるプラグインが含まれていますが、モジュール化されないコードが多くあります。また、このドキュメントは、``ansible-core`` の一部が連携する方法に関する洞察を与えてくれます。" #: ../../rst/dev_guide/developing_core.rst:15 -#: ../../rst/dev_guide/developing_inventory.rst:473 -#: ../../rst/dev_guide/developing_plugins.rst:540 +#: ../../rst/dev_guide/developing_inventory.rst:503 +#: ../../rst/dev_guide/developing_plugins.rst:544 +#: ../../rst/dev_guide/sidecar.rst:91 msgid ":ref:`developing_api`" msgstr ":ref:`developing_api`" #: ../../rst/dev_guide/developing_core.rst:16 -#: ../../rst/dev_guide/developing_plugins.rst:541 +#: ../../rst/dev_guide/developing_plugins.rst:545 +#: ../../rst/dev_guide/sidecar.rst:92 msgid "Learn about the Python API for task execution" msgstr "タスク実行用の Python API について" @@ -2518,7 +2523,7 @@ msgid "Learn about developing plugins" msgstr "プラグインの開発について" #: ../../rst/dev_guide/developing_core.rst:21 -#: ../../rst/dev_guide/style_guide/index.rst:337 +#: ../../rst/dev_guide/style_guide/index.rst:339 msgid "`irc.libera.chat `_" msgstr "`irc.libera.chat `_" @@ -2535,8 +2540,8 @@ msgid "Ansible can pull inventory information from dynamic sources, including cl msgstr "Ansible は、指定された :ref:`インベントリープラグイン ` を使用して、クラウドソースを含む動的ソースからインベントリー情報をプルすることができます。インベントリー情報のプル方法の詳細は、「:ref:`dynamic_inventory`」を参照してください。現在、既存のプラグインで対象としていないソースについては、他のプラグインタイプで独自のインベントリープラグインを作成できます。" #: ../../rst/dev_guide/developing_inventory.rst:9 -msgid "In previous versions, you had to create a script or program that could output JSON in the correct format when invoked with the proper arguments. You can still use and write inventory scripts, as we ensured backwards compatibility via the :ref:`script inventory plugin ` and there is no restriction on the programming language used. If you choose to write a script, however, you will need to implement some features yourself such as caching, configuration management, dynamic variable and group composition, and so on. If you use :ref:`inventory plugins ` instead, you can use the Ansible codebase and add these common features automatically." -msgstr "以前のバージョンでは、適切な引数で呼び出されたときに正しい形式で JSON を出力できるスクリプトやプログラムを作成する必要がありました。:ref:`script inventory plugin ` を通じて後方互換性を確保しており、使用するプログラミング言語にも制限がないため、インベントリースクリプトを使用したり書いたりすることができます。ただし、スクリプトを書く場合は、キャッシュ、設定管理、動的な変数、グループの構成など、いくつかの機能を自分で実装する必要があります。代わりに :ref:`inventory plugins ` を使用すれば、Ansible のコードベースを使用し、これらの共通機能を自動的に追加することができます。" +msgid "In previous versions, you had to create a script or program that could output JSON in the correct format when invoked with the proper arguments. You can still use and write inventory scripts, as we ensured backwards compatibility through the :ref:`script inventory plugin ` and there is no restriction on the programming language used. If you choose to write a script, however, you will need to implement some features yourself such as caching, configuration management, dynamic variable and group composition, and so on. If you use :ref:`inventory plugins ` instead, you can use the Ansible codebase and add these common features automatically." +msgstr "以前のバージョンでは、適切な引数で呼び出されたときに正しい形式で JSON を出力できるスクリプトやプログラムを作成する必要がありました。:ref:`script inventory plugin ` を通じて後方互換性を確保しており、使用するプログラミング言語にも制限がないため、インベントリースクリプトを引き続き使用したり書いたりすることができます。ただし、スクリプトを書く場合は、キャッシュ、設定管理、動的な変数、グループの構成など、いくつかの機能を自分で実装する必要があります。代わりに :ref:`inventory plugins ` を使用すれば、Ansible のコードベースを使用し、これらの共通機能を自動的に追加することができます。" #: ../../rst/dev_guide/developing_inventory.rst:22 msgid "Inventory sources" @@ -2604,7 +2609,7 @@ msgid "Path to an executable that outputs JSON" msgstr "JSON を出力する実行可能ファイルへのパス" #: ../../rst/dev_guide/developing_inventory.rst:49 -#: ../../rst/dev_guide/developing_plugins.rst:334 +#: ../../rst/dev_guide/developing_plugins.rst:338 msgid "Inventory plugins" msgstr "inventory プラグイン" @@ -2705,150 +2710,202 @@ msgid "For examples on how to implement an inventory plugin, see the source code msgstr "インベントリープラグインの実装方法の例は、ソースコード (`lib/ansible/plugins/inventory `_) を参照してください。" #: ../../rst/dev_guide/developing_inventory.rst:195 +msgid "inventory object" +msgstr "インベントリーオブジェクト" + +#: ../../rst/dev_guide/developing_inventory.rst:197 +msgid "The ``inventory`` object passed to ``parse`` has helpful methods for populating inventory." +msgstr "``parse`` に渡された ``inventory`` オブジェクトには、インベントリーに入力するための便利な方法があります。" + +#: ../../rst/dev_guide/developing_inventory.rst:199 +msgid "``add_group`` adds a group to inventory if it doesn't already exist. It takes the group name as the only positional argument." +msgstr "``add_group`` は、まだ存在しない場合にグループをインベントリーに追加します。唯一の位置引数としてグループ名を取ります。" + +#: ../../rst/dev_guide/developing_inventory.rst:201 +msgid "``add_child`` adds a group or host that exists in inventory to a parent group in inventory. It takes two positional arguments, the name of the parent group and the name of the child group or host." +msgstr "``add_child`` は、インベントリーに存在するグループまたはホストをインベントリーの親グループに追加します。2 つの位置引数 (親グループの名前と子グループまたはホストの名前) を取ります。" + +#: ../../rst/dev_guide/developing_inventory.rst:203 +msgid "``add_host`` adds a host to inventory if it doesn't already exist, optionally to a specific group. It takes the host name as the first argument and accepts two optional keyword arguments, ``group`` and ``port``. ``group`` is the name of a group in inventory, and ``port`` is an integer." +msgstr "``add_host`` は、まだ存在しない場合にホストをインベントリー (オプションで特定のグループ) に追加します。最初の引数としてホスト名を取り、オプションで 2 つのキーワード引数 (``group``と``port``) を受け入れます。``group`` はインベントリー内のグループの名前、``port`` は整数です。" + +#: ../../rst/dev_guide/developing_inventory.rst:205 +msgid "``set_variable`` adds a variable to a group or host in inventory. It takes three positional arguments: the name of the group or host, the name of the variable, and the value of the variable." +msgstr "``set_variable`` は、インベントリー内のグループまたはホストに変数を追加します。3 つの位置引数 (グループまたはホストの名前、変数の名前、変数の値) を取ります。" + +#: ../../rst/dev_guide/developing_inventory.rst:207 +msgid "To create groups and variables using Jinja2 expressions, see the section on implementing ``constructed`` features below." +msgstr "Jinja2 式を使用してグループと変数を作成する場合は、後述の ``constructed`` 機能の実装に関するセクションを参照してください。" + +#: ../../rst/dev_guide/developing_inventory.rst:209 +msgid "To see other inventory object methods, see the source code here: `lib/ansible/inventory/data.py `_." +msgstr "他のインベントリーオブジェクトメソッドを確認するには、`lib/ansible/inventory/data.py `_ でソースコードを参照してください。" + +#: ../../rst/dev_guide/developing_inventory.rst:215 msgid "inventory cache" msgstr "インベントリーキャッシュ" -#: ../../rst/dev_guide/developing_inventory.rst:197 +#: ../../rst/dev_guide/developing_inventory.rst:217 msgid "To cache the inventory, extend the inventory plugin documentation with the inventory_cache documentation fragment and use the Cacheable base class." msgstr "インベントリーをキャッシュするには、インベントリープラグインのドキュメントを inventory_cache ドキュメントフラグメントで拡張し、cacheable 基本クラスを使用します。" -#: ../../rst/dev_guide/developing_inventory.rst:210 +#: ../../rst/dev_guide/developing_inventory.rst:230 msgid "Next, load the cache plugin specified by the user to read from and update the cache. If your inventory plugin uses YAML-based configuration files and the ``_read_config_data`` method, the cache plugin is loaded within that method. If your inventory plugin does not use ``_read_config_data``, you must load the cache explicitly with ``load_cache_plugin``." msgstr "次に、ユーザーが指定したキャッシュプラグインを読み込み、キャッシュの読み取りと更新を行います。インベントリープラグインが YAML ベースの構成ファイルを使用していて、``_read_config_data`` メソッドの場合、キャッシュプラグインはそのメソッド内に読み込まれます。インベントリープラグインが ``_read_config_data`` を使用しない場合は、``load_cache_plugin`` を使用してキャッシュを明示的に読み込む必要があります。" -#: ../../rst/dev_guide/developing_inventory.rst:221 +#: ../../rst/dev_guide/developing_inventory.rst:241 msgid "Before using the cache plugin, you must retrieve a unique cache key by using the ``get_cache_key`` method. This task needs to be done by all inventory modules using the cache, so that you don't use/overwrite other parts of the cache." msgstr "キャッシュプラグインを使用する前に、``get_cache_key`` メソッドを使用して一意のキャッシュキーを取得する必要があります。このタスクは、キャッシュを使用するすべてのインベントリーモジュールで実行する必要があります。これにより、キャッシュの他の部分を使用/上書きしないようになります。" -#: ../../rst/dev_guide/developing_inventory.rst:231 -msgid "Now that you've enabled caching, loaded the correct plugin, and retrieved a unique cache key, you can set up the flow of data between the cache and your inventory using the ``cache`` parameter of the ``parse`` method. This value comes from the inventory manager and indicates whether the inventory is being refreshed (such as via ``--flush-cache`` or the meta task ``refresh_inventory``). Although the cache shouldn't be used to populate the inventory when being refreshed, the cache should be updated with the new inventory if the user has enabled caching. You can use ``self._cache`` like a dictionary. The following pattern allows refreshing the inventory to work in conjunction with caching." -msgstr "これでキャッシュを有効にし、正しいプラグインを読み込み、一意のキャッシュキーを取得し、``parse`` メソッドの ``cache`` パラメーターを使用して、キャッシュとインベントリーの間でデータのフローを設定できるようになりました。この値は、インベントリーマネージャーから取得され、インベントリーを更新するか (例: ``--flush-cache``、メタタスク ``refresh_inventory`` など) を示します。キャッシュは、更新時にインベントリーを入力するために使用しますが、キャッシュを有効にした場合は、キャッシュを新しいインベントリーで更新する必要があります。ディクショナリーのような ``self._cache`` を使用できます。以下のパターンを使用すると、インベントリーをキャッシュとともに動作させることができます。" +#: ../../rst/dev_guide/developing_inventory.rst:251 +msgid "Now that you've enabled caching, loaded the correct plugin, and retrieved a unique cache key, you can set up the flow of data between the cache and your inventory using the ``cache`` parameter of the ``parse`` method. This value comes from the inventory manager and indicates whether the inventory is being refreshed (such as by the ``--flush-cache`` or the meta task ``refresh_inventory``). Although the cache shouldn't be used to populate the inventory when being refreshed, the cache should be updated with the new inventory if the user has enabled caching. You can use ``self._cache`` like a dictionary. The following pattern allows refreshing the inventory to work in conjunction with caching." +msgstr "これでキャッシュを有効にし、正しいプラグインを読み込み、一意のキャッシュキーを取得したことで、``parse`` メソッドの ``cache`` パラメーターを使用して、キャッシュとインベントリーの間でデータのフローを設定できるようになりました。この値は、インベントリーマネージャーから取得され、インベントリーを更新するか (例: ``--flush-cache``、メタタスク ``refresh_inventory`` など) を示します。キャッシュは、更新時にインベントリーを入力するために使用すべきではありませんが、キャッシュを有効にした場合は、キャッシュを新しいインベントリーで更新する必要があります。ディクショナリーのような ``self._cache`` を使用できます。以下のパターンを使用すると、インベントリーをキャッシュとともに動作させることができます。" -#: ../../rst/dev_guide/developing_inventory.rst:266 +#: ../../rst/dev_guide/developing_inventory.rst:286 msgid "After the ``parse`` method is complete, the contents of ``self._cache`` is used to set the cache plugin if the contents of the cache have changed." msgstr "``parse`` メソッドが完了すると、``self._cache`` の内容は、キャッシュの内容が変更された場合にキャッシュプラグインを設定するために使用されます。" -#: ../../rst/dev_guide/developing_inventory.rst:271 +#: ../../rst/dev_guide/developing_inventory.rst:291 msgid "You have three other cache methods available:" msgstr "利用可能な 3 つのキャッシュメソッド:" -#: ../../rst/dev_guide/developing_inventory.rst:269 +#: ../../rst/dev_guide/developing_inventory.rst:289 msgid "``set_cache_plugin`` forces the cache plugin to be set with the contents of ``self._cache``, before the ``parse`` method completes" msgstr "``set_cache_plugin`` は、``parse`` メソッドの完了前に、キャッシュプラグインを ``self._cache`` の内容で強制的に設定します。" -#: ../../rst/dev_guide/developing_inventory.rst:270 +#: ../../rst/dev_guide/developing_inventory.rst:290 msgid "``update_cache_if_changed`` sets the cache plugin only if ``self._cache`` has been modified, before the ``parse`` method completes" msgstr "``update_cache_if_changed`` は、``parse`` メソッドが完了する前に ``self._cache`` が変更された場合のみキャッシュプラグインを設定します。" -#: ../../rst/dev_guide/developing_inventory.rst:271 +#: ../../rst/dev_guide/developing_inventory.rst:291 msgid "``clear_cache`` flushes the cache, ultimately by calling the cache plugin's ``flush()`` method, whose implementation is dependent upon the particular cache plugin in use. Note that if the user is using the same cache backend for facts and inventory, both will get flushed. To avoid this, the user can specify a distinct cache backend in their inventory plugin configuration." msgstr "``clear_cache`` キャッシュをフラッシュし、キャッシュプラグインの ``flush()`` メソッドを呼び出すことで、これらの実装は使用中の特定のキャッシュプラグインに依存します。ファクトとインベントリーで同じキャッシュバックエンドを使用している場合は、両方のキャッシュバックエンドをフラッシュします。これを回避するために、インベントリープラグイン設定で個別のキャッシュバックエンドを指定できます。" -#: ../../rst/dev_guide/developing_inventory.rst:274 +#: ../../rst/dev_guide/developing_inventory.rst:294 msgid "constructed features" msgstr "constructed 機能" -#: ../../rst/dev_guide/developing_inventory.rst:276 +#: ../../rst/dev_guide/developing_inventory.rst:296 msgid "Inventory plugins can create host variables and groups from Jinja2 expressions and variables by using features from the ``constructed`` inventory plugin. To do this, use the ``Constructable`` base class and extend the inventory plugin's documentation with the ``constructed`` documentation fragment." msgstr "インベントリープラグインは、``constructed`` インベントリープラグインの機能を使用して、Jinja2 式および変数からホスト変数およびグループを作成できます。これを行うには、``Constructable`` ベースクラスを使用し、``constructed`` ドキュメントフラグメントでドキュメントを拡張することができます。" -#: ../../rst/dev_guide/developing_inventory.rst:289 -msgid "The three main options from the ``constructed`` documentation fragment are ``compose``, ``keyed_groups``, and ``groups``. See the ``constructed`` inventory plugin for examples on using these. ``compose`` is a dictionary of variable names and Jinja2 expressions. Once a host is added to inventory and any initial variables have been set, call the method ``_set_composite_vars`` to add composed host variables. If this is done before adding ``keyed_groups`` and ``groups``, the group generation will be able to use the composed variables." -msgstr "``constructed`` ドキュメントフラグの 3 つの主要なオプションは、``compose``、``keyed_groups``、および ``groups`` です。これらの使用例は、``constructed`` インベントリープラグインを参照してください。``compose`` は、変数名および Jinja2 式のディクショナリーです。ホストがインベントリーに追加され、初期変数が設定されると、``_set_composite_vars`` メソッドを呼び出して構成されたホスト変数を追加します。``keyed_groups`` および ``groups`` を追加する前にこれを行うと、グループの生成は構成された変数を使用できます。" +#: ../../rst/dev_guide/developing_inventory.rst:309 +msgid "There are three main options in the ``constructed`` documentation fragment:" +msgstr "``constructed`` ドキュメントフラグメントには、主に 3 つのオプションがあります。" + +#: ../../rst/dev_guide/developing_inventory.rst:311 +msgid "``compose`` creates variables using Jinja2 expressions. This is implemented by calling the ``_set_composite_vars`` method. ``keyed_groups`` creates groups of hosts based on variable values. This is implemented by calling the ``_add_host_to_keyed_groups`` method. ``groups`` creates groups based on Jinja2 conditionals. This is implemented by calling the ``_add_host_to_composed_groups`` method." +msgstr "``compose`` は、Jinja2 式を使用して変数を作成します。これは、``_set_composite_vars`` メソッドを呼び出すことで実装されます。``keyed_groups`` は、変数値に基づいてホストのグループを作成します。これは、``_add_host_to_keyed_groups`` メソッドを呼び出すことで実装されます。``groups`` は、Jinja2 条件に基づいてグループを作成します。これは、``_add_host_to_composed_groups`` メソッドを呼び出すことで実装されます。" + +#: ../../rst/dev_guide/developing_inventory.rst:315 +msgid "Each method should be called for every host added to inventory. Three positional arguments are required: the constructed option, a dictionary of variables, and a host name. Calling the method ``_set_composite_vars`` first will allow ``keyed_groups`` and ``groups`` to use the composed variables." +msgstr "各メソッドは、インベントリーに追加されたホストごとに呼び出す必要があります。 3 つの位置引数 (構築済みオプション、変数のディクショナリー、ホスト名) が必要です。最初に ``_set_composite_vars`` メソッドを呼び出すと、``keyed_groups`` と ``groups`` は構築済み変数を使用できます。" -#: ../../rst/dev_guide/developing_inventory.rst:310 +#: ../../rst/dev_guide/developing_inventory.rst:317 +msgid "By default, undefined variables are ignored. This is permitted by default for ``compose`` so you can make the variable definitions depend on variables that will be populated later in a play from other sources. For groups, it allows using variables that are not always present without having to use the ``default`` filter. To support configuring undefined variables to be an error, pass the constructed option ``strict`` to each of the methods as a keyword argument." +msgstr "デフォルトでは、未定義の変数は無視されます。``compose`` ではデフォルトで許可されているため、後で他のソースからプレイで入力される変数に依存する変数定義を作成できます。グループの場合、``default`` フィルターを使用しなくても、常に存在するとは限らない変数を使用できます。未定義の変数をエラーにする設定をサポートするには、構築されたオプション ``strict`` をキーワード引数として各メソッドに渡します。" + +#: ../../rst/dev_guide/developing_inventory.rst:319 +msgid "``keyed_groups`` and ``groups`` use any variables already associated with the host (for example, from an earlier inventory source). ``_add_host_to_keyed_groups`` and ``add_host_to_composed_groups`` can turn this off by passing the keyword argument ``fetch_hostvars``." +msgstr "``keyed_groups`` と``groups`` は、すでにホストに関連付けられている変数を使用します (たとえば、以前のインベントリーソースから)。``_add_host_to_keyed_groups`` と ``add_host_to_composed_groups`` は、キーワード引数 ``fetch_hostvars`` を渡すことでこれをオフにできます。" + +#: ../../rst/dev_guide/developing_inventory.rst:321 +msgid "Here is an example using all three methods:" +msgstr "以下は、3 つの方法すべてを使用した例です。" + +#: ../../rst/dev_guide/developing_inventory.rst:340 msgid "By default, group names created with ``_add_host_to_composed_groups()`` and ``_add_host_to_keyed_groups()`` are valid Python identifiers. Invalid characters are replaced with an underscore ``_``. A plugin can change the sanitization used for the constructed features by setting ``self._sanitize_group_name`` to a new function. The core engine also does sanitization, so if the custom function is less strict it should be used in conjunction with the configuration setting ``TRANSFORM_INVALID_GROUP_CHARS``." msgstr "デフォルトでは、``_add_host_to_composed_groups()`` および ``_add_host_to_keyed_groups()`` で作成されたグループ名は有効な Python 識別子です。無効な文字はアンダースコア ``_`` に置き換えられます。プラグインは、``self._sanitize_group_name`` を新しい機能に設定することで、constructed 機能に使用されるサニタイゼーションを変更できます。コアエンジンもサニタイゼーションを実行するため、カスタム機能がそれほど厳密でない場合は、構成設定 ``TRANSFORM_INVALID_GROUP_CHARS`` と組み合わせて使用する必要があります。" -#: ../../rst/dev_guide/developing_inventory.rst:332 +#: ../../rst/dev_guide/developing_inventory.rst:362 msgid "Common format for inventory sources" msgstr "インベントリーソースの共通形式" -#: ../../rst/dev_guide/developing_inventory.rst:334 +#: ../../rst/dev_guide/developing_inventory.rst:364 msgid "To simplify development, most plugins use a standard YAML-based configuration file as the inventory source. The file has only one required field ``plugin``, which should contain the name of the plugin that is expected to consume the file. Depending on other common features used, you might need other fields, and you can add custom options in each plugin as required. For example, if you use the integrated caching, ``cache_plugin``, ``cache_timeout`` and other cache-related fields could be present." msgstr "開発を簡単にするために、ほとんどのプラグインはインベントリーソースとして標準的な YAML ベースの設定ファイルを使用しています。このファイルには、必須フィールドが 1 つしかありません (``plugin``)。このフィールドには、このファイルを使用することが期待されるプラグインの名前を入れる必要があります。使用する他の共通機能によっては、他のフィールドが必要になる場合があり、必要に応じて各プラグインにカスタムオプションを追加することができます。たとえば、統合キャッシングを使用する場合は、``cache_plugin``、``cache_timeout`` などのキャッシュ関連のフィールドが存在する可能性があります。" -#: ../../rst/dev_guide/developing_inventory.rst:341 +#: ../../rst/dev_guide/developing_inventory.rst:371 msgid "The 'auto' plugin" msgstr "「auto」プラグイン" -#: ../../rst/dev_guide/developing_inventory.rst:343 +#: ../../rst/dev_guide/developing_inventory.rst:373 msgid "From Ansible 2.5 onwards, we include the :ref:`auto inventory plugin ` and enable it by default. If the ``plugin`` field in your standard configuration file matches the name of your inventory plugin, the ``auto`` inventory plugin will load your plugin. The 'auto' plugin makes it easier to use your plugin without having to update configurations." msgstr "Ansible 2.5 以降では、:ref:`auto inventory plugin ` を追加し、これをデフォルトで有効化します。標準設定ファイルの ``plugin`` フィールドがインベントリープラグインの名前と一致する場合、``auto`` インベントリープラグインはプラグインを読み込みます。「auto」プラグインは、設定を更新せずにプラグインを簡単に使用できます。" -#: ../../rst/dev_guide/developing_inventory.rst:350 +#: ../../rst/dev_guide/developing_inventory.rst:380 msgid "Inventory scripts" msgstr "インベントリースクリプト" -#: ../../rst/dev_guide/developing_inventory.rst:352 +#: ../../rst/dev_guide/developing_inventory.rst:382 msgid "Even though we now have inventory plugins, we still support inventory scripts, not only for backwards compatibility but also to allow users to use other programming languages." msgstr "inventory プラグインはそのままですが、後方互換性だけでなく、ユーザーが他のプログラミング言語を使用できるように、引き続きインベントリースクリプトをサポートします。" -#: ../../rst/dev_guide/developing_inventory.rst:358 +#: ../../rst/dev_guide/developing_inventory.rst:388 msgid "Inventory script conventions" msgstr "インベントリースクリプトの規則" -#: ../../rst/dev_guide/developing_inventory.rst:360 +#: ../../rst/dev_guide/developing_inventory.rst:390 msgid "Inventory scripts must accept the ``--list`` and ``--host `` arguments. Although other arguments are allowed, Ansible will not use them. Such arguments might still be useful for executing the scripts directly." msgstr "インベントリースクリプトでは、引数 ``--list`` および ``--host `` を使用する必要があります。他の引数は設定できますが、Ansible はそれらを使用しません。このような引数は、スクリプトを直接実行するのに役立つ場合があります。" -#: ../../rst/dev_guide/developing_inventory.rst:363 +#: ../../rst/dev_guide/developing_inventory.rst:393 msgid "When the script is called with the single argument ``--list``, the script must output to stdout a JSON object that contains all the groups to be managed. Each group's value should be either an object containing a list of each host, any child groups, and potential group variables, or simply a list of hosts:" msgstr "スクリプトが単一の引数 ``--list`` で呼び出されると、スクリプトは、標準出力に、管理するすべてのグループが含まれる JSON オブジェクトを出力する必要があります。各グループの値は、各ホスト、子グループ、および潜在的なグループ変数の一覧を含むオブジェクト、または簡単にホストの一覧にする必要があります。" -#: ../../rst/dev_guide/developing_inventory.rst:386 +#: ../../rst/dev_guide/developing_inventory.rst:416 msgid "If any of the elements of a group are empty, they may be omitted from the output." msgstr "グループのいずれかの要素が空の場合は、出力から省略される可能性があります。" -#: ../../rst/dev_guide/developing_inventory.rst:388 +#: ../../rst/dev_guide/developing_inventory.rst:418 msgid "When called with the argument ``--host `` (where is a host from above), the script must print a JSON object, either empty or containing variables to make them available to templates and playbooks. For example:" msgstr "引数 ``--host `` で呼び出される場合 ( は上記のホスト) で呼び出されると、スクリプトは、空か、変数を含む JSON オブジェクトを出力して、テンプレートと Playbook で利用可能にする必要があります。以下に例を示します。" -#: ../../rst/dev_guide/developing_inventory.rst:397 +#: ../../rst/dev_guide/developing_inventory.rst:427 msgid "Printing variables is optional. If the script does not print variables, it should print an empty JSON object." msgstr "変数の出力は任意です。スクリプトが変数を出力しない場合は、空の JSON オブジェクトを出力する必要があります。" -#: ../../rst/dev_guide/developing_inventory.rst:402 +#: ../../rst/dev_guide/developing_inventory.rst:432 msgid "Tuning the external inventory script" msgstr "外部インベントリースクリプトのチューニング" -#: ../../rst/dev_guide/developing_inventory.rst:406 +#: ../../rst/dev_guide/developing_inventory.rst:436 msgid "The stock inventory script system mentioned above works for all versions of Ansible, but calling ``--host`` for every host can be rather inefficient, especially if it involves API calls to a remote subsystem." msgstr "上記のストックのインベントリースクリプトシステムは、すべてのバージョンの Ansible に対して動作しますが、特にリモートサブシステムへの API 呼び出しが必要になる場合は、すべてのホストに対して ``--host`` を呼び出すこともできます。" -#: ../../rst/dev_guide/developing_inventory.rst:408 +#: ../../rst/dev_guide/developing_inventory.rst:438 msgid "To avoid this inefficiency, if the inventory script returns a top-level element called \"_meta\", it is possible to return all the host variables in a single script execution. When this meta element contains a value for \"hostvars\", the inventory script will not be invoked with ``--host`` for each host. This behavior results in a significant performance increase for large numbers of hosts." msgstr "これを回避するには、インベントリースクリプトが「_meta」という最上位の要素を返す場合には、単一スクリプトの実行ですべてのホスト変数を返すことができます。このメタ要素に「hostvars」の値が含まれていると、インベントリースクリプトは各ホストに対して ``--host`` で呼び出されません。この動作は、多数のホストのパフォーマンスを大幅に向上します。" -#: ../../rst/dev_guide/developing_inventory.rst:410 +#: ../../rst/dev_guide/developing_inventory.rst:440 msgid "The data to be added to the top-level JSON object looks like this:" msgstr "レベルの JSON オブジェクトに追加するデータは次のようになります。" -#: ../../rst/dev_guide/developing_inventory.rst:431 +#: ../../rst/dev_guide/developing_inventory.rst:461 msgid "To satisfy the requirements of using ``_meta``, to prevent ansible from calling your inventory with ``--host`` you must at least populate ``_meta`` with an empty ``hostvars`` object. For example:" msgstr "Ansible が ``--host`` でインベントリーを呼び出すのを防ぐために ``_meta`` を使用する要件を満たすには、少なくとも空の ``hostvars`` オブジェクトで ``_meta`` を埋めなければなりません。以下に例を示します。" -#: ../../rst/dev_guide/developing_inventory.rst:449 +#: ../../rst/dev_guide/developing_inventory.rst:479 msgid "If you intend to replace an existing static inventory file with an inventory script, it must return a JSON object which contains an 'all' group that includes every host in the inventory as a member and every group in the inventory as a child. It should also include an 'ungrouped' group which contains all hosts which are not members of any other group. A skeleton example of this JSON object is:" msgstr "既存の静的インベントリーファイルをインベントリースクリプトに置き換える場合は、インベントリー内のすべてのホストをメンバーとして、インベントリー内のすべてのグループを子として含む「すべて」のグループを含む JSON オブジェクトを返す必要があります。また、他のグループのメンバーではないすべてのホストを含む「グループ化されていない」グループも含める必要があります。この JSON オブジェクトのスケルトンの例は次のとおりです。" -#: ../../rst/dev_guide/developing_inventory.rst:469 +#: ../../rst/dev_guide/developing_inventory.rst:499 msgid "An easy way to see how this should look is using :ref:`ansible-inventory`, which also supports ``--list`` and ``--host`` parameters like an inventory script would." msgstr "これがどのように見えるかを確認する簡単な方法は、:ref:`ansible-inventory` を使用することです。これにより、インベントリースクリプトのように ``--list`` パラメーターおよび ``--host`` パラメーターがサポートされます。" -#: ../../rst/dev_guide/developing_inventory.rst:474 +#: ../../rst/dev_guide/developing_inventory.rst:504 msgid "Python API to Playbooks and Ad Hoc Task Execution" msgstr "Playbook およびアドホックタスク実行のための Python API" -#: ../../rst/dev_guide/developing_inventory.rst:476 +#: ../../rst/dev_guide/developing_inventory.rst:506 msgid "Get started with developing a module" msgstr "モジュールの開発を始める" -#: ../../rst/dev_guide/developing_inventory.rst:479 +#: ../../rst/dev_guide/developing_inventory.rst:509 msgid "`AWX `_" msgstr "`AWX `_" -#: ../../rst/dev_guide/developing_inventory.rst:480 +#: ../../rst/dev_guide/developing_inventory.rst:510 msgid "REST API endpoint and GUI for Ansible, syncs with dynamic inventory" msgstr "Ansible の REST API エンドポイントおよび GUI (動的インベントリーと同期)" @@ -2901,12 +2958,12 @@ msgid "If you are looking to add functionality to Ansible, you might wonder whet msgstr "Ansible に機能を追加する場合は、モジュールまたはプラグインのどちらが必要か疑問に思う場合があります。以下に、必要なものを理解するのに役立つ概要を示します。" #: ../../rst/dev_guide/developing_locally.rst:31 -msgid "Modules are reusable, standalone scripts that can be used by the Ansible API, the :command:`ansible` command, or the :command:`ansible-playbook` command. Modules provide a defined interface. Each module accepts arguments and returns information to Ansible by printing a JSON string to stdout before exiting. Modules execute on the target system (usually that means on a remote system) in separate processes. Modules are technically plugins, but for historical reasons we do not usually talk about \"module plugins\"." -msgstr "モジュールは、Ansible API、:command:`ansible` コマンド、または :command:`ansible-playbook` コマンドで使用できる再利用可能なスタンドアロンスクリプトです。モジュールは、定義されたインターフェースを提供します。各モジュールは引数を受け入れ、終了する前に JSON 文字列を stdout に出力して Ansible に情報を返します。モジュールは、別のプロセスでターゲットシステム (通常はリモートシステム上) で実行されます。モジュールは技術的にはプラグインですが、過去の経緯から、通常「モジュールプラグイン」とは呼びません。" +msgid ":ref:`Plugins ` extend Ansible's core functionality. Most plugin types execute on the control node within the ``/usr/bin/ansible`` process. Plugins offer options and extensions for the core features of Ansible: transforming data, logging output, connecting to inventory, and more." +msgstr ":ref:`Plugins ` は、Ansible のコア機能を拡張します。ほとんどのプラグインタイプは、``/usr/bin/ansible`` プロセス内のコントロールノードで実行します。プラグインは、Ansible のコア機能のオプションおよび拡張機能 (データの変換、ログ出力、インベントリーへの接続など) を提供します。" #: ../../rst/dev_guide/developing_locally.rst:32 -msgid ":ref:`Plugins ` extend Ansible's core functionality and execute on the control node within the ``/usr/bin/ansible`` process. Plugins offer options and extensions for the core features of Ansible - transforming data, logging output, connecting to inventory, and more." -msgstr ":ref:`Plugins ` は、Ansible のコア機能を拡張し、``/usr/bin/ansible`` プロセス内のコントロールノードで実行します。プラグインは、Ansible のコア機能のオプションおよび拡張機能 (データの変換、ログ出力、インベントリーへの接続など) を提供します。" +msgid "Modules are a type of plugin that execute automation tasks on a 'target' (usually a remote system). Modules work as standalone scripts that Ansible executes in their own process outside of the controller. Modules interface with Ansible mostly via JSON, accepting arguments and returning information by printing a JSON string to stdout before exiting. Unlike the other plugins (which must be written in Python), modules can be written in any language; although Ansible provides modules in Python and Powershell only." +msgstr "モジュールは、'target' (通常はリモートシステム) で自動化タスクを実行するプラグインの一種です。モジュールは、Ansible がコントローラー外の独自のプロセスで実行するスタンドアロンスクリプトとして機能します。モジュールは主に JSON を介して Ansible とやり取りし、終了する前に JSON 文字列を stdout に出力して引数を受け取り、情報を返します。他の (Python で書かれる必要がある) プラグインとは異なり、モジュールは任意の言語で書くことができます。ただし、Ansible は Python と Powershell でのみモジュールを提供します。" #: ../../rst/dev_guide/developing_locally.rst:37 msgid "Adding modules and plugins in collections" @@ -2921,12 +2978,12 @@ msgid "The rest of this page describes other methods of using local, standalone msgstr "このページの残りの部分では、ローカルのスタンドアロンのモジュールやプラグインを使用する他の方法について説明します。" #: ../../rst/dev_guide/developing_locally.rst:46 -msgid "Adding a module outside of a collection" -msgstr "コレクション外のモジュールの追加" +msgid "Adding a module or plugin outside of a collection" +msgstr "コレクション外のモジュールやプラグインの追加" #: ../../rst/dev_guide/developing_locally.rst:48 -msgid "You can configure Ansible to load standalone local modules in a specified location or locations and make them available to all playbooks and roles. Alternatively, you can make a non-collection local module available only to specific playbooks or roles." -msgstr "指定した場所のスタンドアロンのローカルモジュールを読みこむようにAnsibleを設定し、すべてのPlaybookやロールで利用できるようにすることができます。また、コレクションではないローカルモジュールを特定のPlaybookやロールでのみ利用できるようにすることもできます。" +msgid "You can configure Ansible to load standalone local modules or plugins in specific locations and make them available to all playbooks and roles (using configured paths). Alternatively, you can make a non-collection local module or plugin available only to certain playbooks or roles (via adjacent paths)." +msgstr "Ansible を設定して、スタンドアロンのローカルモジュールまたはプラグインを特定の場所にロードし、それらを (設定済みのパスを使用して) すべての Playbook およびロールで利用可能にできます。または、コレクションではないローカルモジュールまたはプラグインを (隣接するパスを介して) 特定の Playbook またはロールのみで利用可能にすることもできます。" #: ../../rst/dev_guide/developing_locally.rst:51 msgid "Adding standalone local modules for all playbooks and roles" @@ -2972,111 +3029,116 @@ msgstr "``ansible localhost -m my_local_module`` と入力すると、そのモ msgid "type ``ansible-doc -t module my_local_module`` to see the documentation for that module" msgstr "``ansible-doc -t module my_local_module`` と入力すると、そのモジュールのドキュメントが表示されます。" -#: ../../rst/dev_guide/developing_locally.rst:75 -msgid "Currently, the ``ansible-doc`` command can parse module documentation only from modules written in Python. If you have a module written in a programming language other than Python, please write the documentation in a Python file adjacent to the module file." -msgstr "現在、``ansible-doc`` コマンドは、Python で記述されたモジュールからのみモジュールドキュメントを解析できます。Python 以外のプログラミング言語で記述されたモジュールがある場合は、モジュールファイルの横の Python ファイルにドキュメントを作成してください。" +#: ../../rst/dev_guide/developing_locally.rst:73 +#: ../../rst/dev_guide/developing_locally.rst:86 +msgid "This applies to all plugin types but requires specific configuration and/or adjacent directories for each plugin type, see below." +msgstr "これはすべてのプラグインタイプに適用されますが、プラグインタイプごとに特定の設や隣接ディレクトリーが必要です。以下を参照してください。" + +#: ../../rst/dev_guide/developing_locally.rst:76 +msgid "The ``ansible-doc`` command can parse module documentation from modules written in Python or an adjacent YAML file. If you have a module written in a programming language other than Python, you should write the documentation in a Python or YAML file adjacent to the module file. :ref:`adjacent_yaml_doc`" +msgstr "``ansible-doc`` コマンドは、Python または隣接 YAML ファイルで記述されたモジュールからモジュールドキュメントを解析できます。Python 以外のプログラミング言語で記述されたモジュールがある場合は、モジュールファイルに隣接する Python または YAML ファイルにドキュメントを記述する必要があります。:ref:`adjacent_yaml_doc`" -#: ../../rst/dev_guide/developing_locally.rst:78 +#: ../../rst/dev_guide/developing_locally.rst:79 msgid "Adding standalone local modules for selected playbooks or a single role" msgstr "選択したプレイブックや単一のロールへのスタンドアロンのローカルモジュールの追加" -#: ../../rst/dev_guide/developing_locally.rst:80 +#: ../../rst/dev_guide/developing_locally.rst:81 msgid "Ansible automatically loads all executable files from certain directories adjacent to your playbook or role as modules. Standalone modules in these locations are available only to the specific playbook, playbooks, or role in the parent directory." msgstr "Ansibleは、Playbookやロールに隣接する特定のディレクトリにあるすべての実行可能ファイルをモジュールとして自動的に読み込みます。これらの場所にあるスタンドアロンのモジュールは、親ディレクトリにある特定のPlaybookまたはロールでのみ利用できます。" -#: ../../rst/dev_guide/developing_locally.rst:82 +#: ../../rst/dev_guide/developing_locally.rst:83 msgid "To use a standalone module only in a selected playbook or playbooks, store the module in a subdirectory called ``library`` in the directory that contains the playbook or playbooks." msgstr "スタンドアロンモジュールを特定のプレイブックでのみ使用するには、Playbookを含むディレクトリ内の``library`` というサブディレクトリにモジュールを保存します。" -#: ../../rst/dev_guide/developing_locally.rst:83 +#: ../../rst/dev_guide/developing_locally.rst:84 msgid "To use a standalone module only in a single role, store the module in a subdirectory called ``library`` within that role." msgstr "スタンドアロンモジュールを単一のロールでのみ使用するには、そのロール内の``library`` というサブディレクトリにモジュールを保存します。" -#: ../../rst/dev_guide/developing_locally.rst:87 +#: ../../rst/dev_guide/developing_locally.rst:90 msgid "Roles contained in collections cannot contain any modules or other plugins. All plugins in a collection must live in the collection ``plugins`` directory tree. All plugins in that tree are accessible to all roles in the collection. If you are developing new modules, we recommend distributing them in :ref:`collections `, not in roles." msgstr "コレクションに含まれるロールは、モジュールや他のプラグインを含むことができません。コレクション内のすべてのプラグインは、コレクションの``plugins`` ディレクトリツリーに格納されている必要があります。そのツリー内のすべてのプラグインは、コレクション内のすべてのロールからアクセス可能です。新しいモジュールを開発している場合は、ロールではなく、:ref:`collections ` で配布することをお勧めします。" -#: ../../rst/dev_guide/developing_locally.rst:93 +#: ../../rst/dev_guide/developing_locally.rst:96 msgid "Adding a non-module plugin locally outside of a collection" msgstr "モジュール以外のプラグインのコレクション外でのローカルでの追加" -#: ../../rst/dev_guide/developing_locally.rst:95 +#: ../../rst/dev_guide/developing_locally.rst:98 msgid "You can configure Ansible to load standalone local plugins in a specified location or locations and make them available to all playbooks and roles. Alternatively, you can make a standalone local plugin available only to specific playbooks or roles." msgstr "指定した場所のスタンドアロンのローカルプラグインを読みこむようにAnsibleを設定し、すべてのPlaybookやロールで利用できるようにすることができます。また、スタンドアロンのローカルプラグインを特定のPlaybookやロールでのみ利用できるようにすることもできます。" -#: ../../rst/dev_guide/developing_locally.rst:99 +#: ../../rst/dev_guide/developing_locally.rst:102 msgid "Although modules are plugins, the naming patterns for directory names and environment variables that apply to other plugin types do not apply to modules. See :ref:`local_modules`." msgstr "モジュールはプラグインですが、他のプラグインタイプに適用されるディレクトリ名や環境変数のネーミングパターンは、モジュールには適用されません。:ref:`local_modules` をご覧ください。" -#: ../../rst/dev_guide/developing_locally.rst:102 +#: ../../rst/dev_guide/developing_locally.rst:105 msgid "Adding local non-module plugins for all playbooks and roles" msgstr "すべてのPlaybookとロールへのローカルのモジュール以外のプラグインの追加" -#: ../../rst/dev_guide/developing_locally.rst:104 +#: ../../rst/dev_guide/developing_locally.rst:107 msgid "To load standalone local plugins automatically and make them available to all playbooks and roles, use the configuration setting or environment variable for the type of plugin you are adding. These configuration settings and environment variables take a colon-separated list, similar to ``$PATH``. You have two options:" msgstr "スタンドアロンのローカルプラグインを自動的に読み込み、すべてのPlaybookとロールで利用できるようにするには、追加するプラグインのタイプの構成設定または環境変数を使用します。``$PATH`` と同様に、これらの構成設定や環境変数はコロンで区切られたリストを受け取ります。2つのオプションがあります。" -#: ../../rst/dev_guide/developing_locally.rst:106 +#: ../../rst/dev_guide/developing_locally.rst:109 msgid "Add your local plugin to one of the default configured locations. See :ref:`configuration settings ` for details on the correct configuration setting for the plugin type. Default locations may change without notice." msgstr "ローカルプラグインを、デフォルトで設定されている場所の1つに追加します。プラグインタイプの正しい構成設定の詳細については、:ref:`configuration settings ` をご覧ください。デフォルトのロケーションは予告なく変更されることがあります。" -#: ../../rst/dev_guide/developing_locally.rst:109 +#: ../../rst/dev_guide/developing_locally.rst:112 msgid "Add the location of your local plugin to an environment variable or configuration:" msgstr "ローカルプラグインの場所を、環境変数や設定に追加します。" -#: ../../rst/dev_guide/developing_locally.rst:108 +#: ../../rst/dev_guide/developing_locally.rst:111 msgid "the relevant ``ANSIBLE_plugin_type_PLUGINS`` environment variable - for example, ``$ANSIBLE_INVENTORY_PLUGINS`` or ``$ANSIBLE_VARS_PLUGINS``" msgstr "関連する``ANSIBLE_plugin_type_PLUGINS`` 環境変数 - 例えば、``$ANSIBLE_INVENTORY_PLUGINS`` または ``$ANSIBLE_VARS_PLUGINS``" -#: ../../rst/dev_guide/developing_locally.rst:109 +#: ../../rst/dev_guide/developing_locally.rst:112 msgid "the relevant ``plugin_type_PATH`` configuration setting, most of which begin with ``DEFAULT_`` - for example, ``DEFAULT_CALLBACK_PLUGIN_PATH`` or ``DEFAULT_FILTER_PLUGIN_PATH`` or ``BECOME_PLUGIN_PATH``" msgstr "関連する``plugin_type_PATH`` 構成設定(ほとんどが``DEFAULT_`` で始まる)- 例えば``DEFAULT_CALLBACK_PLUGIN_PATH`` や``DEFAULT_FILTER_PLUGIN_PATH`` や ``BECOME_PLUGIN_PATH``" -#: ../../rst/dev_guide/developing_locally.rst:111 +#: ../../rst/dev_guide/developing_locally.rst:114 msgid "To view your current configuration settings for non-module plugins:" msgstr "モジュール以外のプラグインの現在の構成設定を表示するには:" -#: ../../rst/dev_guide/developing_locally.rst:117 +#: ../../rst/dev_guide/developing_locally.rst:120 msgid "After your plugin file is added to one of these locations, Ansible loads it and you can use it in any local module, task, playbook, or role. For more information on environment variables and configuration settings, see :ref:`ansible_configuration_settings`." msgstr "プラグインファイルがこれらの場所のいずれかに追加されると、Ansible はそのファイルをロードし、任意のローカルモジュール、タスク、Playbook、ロールで使用できるようになります。環境変数および構成設定の詳細については、:ref:`ansible_configuration_settings` を参照してください。" -#: ../../rst/dev_guide/developing_locally.rst:119 +#: ../../rst/dev_guide/developing_locally.rst:122 msgid "To confirm that ``plugins/plugin_type/my_local_plugin`` is available:" msgstr "``plugins/plugin_type/my_local_plugin`` が利用可能であることを確認するには:" -#: ../../rst/dev_guide/developing_locally.rst:121 +#: ../../rst/dev_guide/developing_locally.rst:124 msgid "type ``ansible-doc -t my_local_lookup_plugin`` to see the documentation for that plugin - for example, ``ansible-doc -t lookup my_local_lookup_plugin``" msgstr "``ansible-doc -t my_local_lookup_plugin`` と入力すると、そのプラグインのドキュメントが表示されます (例:``ansible-doc -t lookup my_local_lookup_plugin``)。" -#: ../../rst/dev_guide/developing_locally.rst:123 +#: ../../rst/dev_guide/developing_locally.rst:126 msgid "The ``ansible-doc`` command works for most plugin types, but not for action, filter, or test plugins. See :ref:`ansible-doc` for more details." msgstr "``ansible-doc`` コマンドは、ほとんどの種類のプラグインで動作しますが、アクション、フィルター、テストプラグインでは動作しません。詳しくは:ref:`ansible-doc` をご覧ください。" -#: ../../rst/dev_guide/developing_locally.rst:126 +#: ../../rst/dev_guide/developing_locally.rst:129 msgid "Adding standalone local plugins for selected playbooks or a single role" msgstr "選択したプレイブックや単一のロールへのスタンドアロンのローカルプラグインの追加" -#: ../../rst/dev_guide/developing_locally.rst:128 +#: ../../rst/dev_guide/developing_locally.rst:131 msgid "Ansible automatically loads all plugins from certain directories adjacent to your playbook or role, loading each type of plugin separately from a directory named for the type of plugin. Standalone plugins in these locations are available only to the specific playbook, playbooks, or role in the parent directory." msgstr "Ansibleは、Playbookやロールに隣接する特定のディレクトリにあるすべてのプラグインを自動的に読み込みます。各タイプのプラグインは、プラグインのタイプの名前が付いたディレクトリーから個別に読み込まれます。これらの場所にあるスタンドアロンのプラグインは、親ディレクトリにある特定のPlaybookまたはロールでのみ利用できます。" -#: ../../rst/dev_guide/developing_locally.rst:130 +#: ../../rst/dev_guide/developing_locally.rst:133 msgid "To use a standalone plugin only in a selected playbook or playbooks, store the plugin in a subdirectory for the correct ``plugin_type`` (for example, ``callback_plugins`` or ``inventory_plugins``) in the directory that contains the playbooks. These directories must use the ``_plugins`` suffix. For a full list of plugin types, see :ref:`working_with_plugins`." msgstr "選択した Playbookでのみスタンドアロンのプラグインを使用するには、そのPlaybook を含むディレクトリーの正しい ``plugin_type``のサブディレクトリー (例: ``callback_plugins`` または ``inventory_plugins``) にプラグインを保存します。これらのディレクトリーは、``_plugins``の接尾辞を使用する必要があります。プラグインタイプの完全なリストは、:ref:`working_with_plugins`を参照してください。" -#: ../../rst/dev_guide/developing_locally.rst:131 +#: ../../rst/dev_guide/developing_locally.rst:134 msgid "To use a standalone plugin only in a single role, store the plugin in a subdirectory for the correct ``plugin_type`` (for example, ``cache_plugins`` or ``strategy_plugins``) within that role. When shipped as part of a role, the plugin is available as soon as the role is executed. These directories must use the ``_plugins`` suffix. For a full list of plugin types, see :ref:`working_with_plugins`." msgstr "単一のロールでのみスタンドアロンのプラグインを使用するには、そのロール内の正しい ``plugin_type`` のサブディレクトリー (例:``cache_plugins`` または ``strategy_plugins``) にプラグインを保存します。ロールの一部として提供された場合は、ロールが実行されるとすぐにプラグインが利用可能になります。これらのディレクトリーは、``_plugins``の接尾辞を使用する必要があります。プラグインタイプの完全なリストは、:ref:`working_with_plugins`を参照してください。" -#: ../../rst/dev_guide/developing_locally.rst:135 +#: ../../rst/dev_guide/developing_locally.rst:138 msgid "Roles contained in collections cannot contain any plugins. All plugins in a collection must live in the collection ``plugins`` directory tree. All plugins in that tree are accessible to all roles in the collection. If you are developing new plugins, we recommend distributing them in :ref:`collections `, not in roles." msgstr "コレクションに含まれるロールは、プラグインを含むことができません。コレクション内のすべてのプラグインは、コレクションの``plugins`` ディレクトリツリーに格納されている必要があります。そのツリー内のすべてのプラグインは、コレクション内のすべてのロールからアクセス可能です。新しいプラグインを開発している場合は、ロールではなく、:ref:`collections ` で配布することをお勧めします。" -#: ../../rst/dev_guide/developing_locally.rst:140 +#: ../../rst/dev_guide/developing_locally.rst:143 msgid "Using ``ansible.legacy`` to access custom versions of an ``ansible.builtin`` module" msgstr "``ansible.legacy`` を使用した ``ansible.builtin`` モジュールのカスタムバージョンへのアクセス" -#: ../../rst/dev_guide/developing_locally.rst:142 +#: ../../rst/dev_guide/developing_locally.rst:145 msgid "If you need to override one of the ``ansible.builtin`` modules and are using FQCN, you need to use ``ansible.legacy`` as part of the fully-qualified collection name (FQCN). For example, if you had your own ``copy`` module, you would access it as ``ansible.legacy.copy``. See :ref:`using_ansible_legacy` for details on how to use custom modules with roles within a collection." msgstr "``ansible.builtin`` モジュールのいずれかをオーバーライドする必要があり、FQCN を使用している場合は、完全修飾コレクション名 (FQCN) の一部として ``ansible.legacy`` を使用する必要があります。たとえば、独自の ``copy`` モジュールがある場合は、``ansible.legacy.copy`` としてアクセスします。コレクション内のロールでカスタムモジュールを使用する方法は、:ref:`using_ansible_legacy` を参照してください。" @@ -3093,42 +3155,42 @@ msgid "The ``ansible.module_utils`` namespace is not a plain Python package: it msgstr "``ansible.module_utils`` 名前空間は単純な Python パッケージではありません。これは、インポートを抽出し、アクティブな設定から派生する :ref:`検索パス ` に対して一致する名前空間を解決することで、各タスク呼び出し用に動的に構築されます。" #: ../../rst/dev_guide/developing_module_utilities.rst:22 -msgid "To reduce the maintenance burden in a collection or in local modules, you can extract duplicated code into one or more module utilities and import them into your modules. For example, if you have your own custom modules that import a ``my_shared_code`` library, you can place that into a ``./module_utils/my_shared_code.py`` file like this::" +msgid "To reduce the maintenance burden in a collection or in local modules, you can extract duplicated code into one or more module utilities and import them into your modules. For example, if you have your own custom modules that import a ``my_shared_code`` library, you can place that into a ``./module_utils/my_shared_code.py`` file like this:" msgstr "コレクションまたはローカルモジュールのメンテナンス負荷を軽減するには、重複コードを 1 つ以上のモジュールユーティリティーに抽出してモジュールにインポートすることができます。たとえば、``my_shared_code`` ライブラリーをインポートする独自のカスタムモジュールがある場合は、これを、以下のように ``./module_utils/my_shared_code.py`` ファイルに配置できます。" -#: ../../rst/dev_guide/developing_module_utilities.rst:27 +#: ../../rst/dev_guide/developing_module_utilities.rst:29 msgid "When you run ``ansible-playbook``, Ansible will merge any files in your local ``module_utils`` directories into the ``ansible.module_utils`` namespace in the order defined by the :ref:`Ansible search path `." msgstr "``ansible-playbook`` を実行すると、Ansible は :ref:`Ansible 検索パス ` で定義されている順序でローカルの ``module_utils`` ディレクトリーのファイルを ``ansible.module_utils`` 名前空間にマージします。" -#: ../../rst/dev_guide/developing_module_utilities.rst:30 +#: ../../rst/dev_guide/developing_module_utilities.rst:32 msgid "Naming and finding module utilities" msgstr "モジュールユーティリティーの命名および検索" -#: ../../rst/dev_guide/developing_module_utilities.rst:32 +#: ../../rst/dev_guide/developing_module_utilities.rst:34 msgid "You can generally tell what a module utility does from its name and/or its location. Generic utilities (shared code used by many different kinds of modules) live in the main ansible/ansible codebase, in the ``common`` subdirectory or in the root directory of ``lib/ansible/module_utils``. Utilities used by a particular set of modules generally live in the same collection as those modules. For example:" msgstr "通常、モジュールユーティリティーが名前やその場所から動作するようにできます。汎用ユーティリティー (さまざまな種類のモジュールで使用される共有コード) は、メインの ansible/ansible コードベースにあります。``common`` サブディレクトリー、または ``lib/ansible/module_utils`` のルートディレクトリーにあります。特定のモジュールセットで使用されるユーティリティーは、通常、それらのモジュールと同じコレクションに存在します。以下に例を示します。" -#: ../../rst/dev_guide/developing_module_utilities.rst:34 +#: ../../rst/dev_guide/developing_module_utilities.rst:36 msgid "``lib/ansible/module_utils/urls.py`` contains shared code for parsing URLs" msgstr "``lib/ansible/module_utils/urls.py`` は、URL を解析するための共有コードが含まれています。" -#: ../../rst/dev_guide/developing_module_utilities.rst:35 +#: ../../rst/dev_guide/developing_module_utilities.rst:37 msgid "``openstack.cloud.plugins.module_utils.openstack.py`` contains utilities for modules that work with OpenStack instances" msgstr "``openstack.cloud.plugins.module_utils.openstack.py`` には、OpenStack インスタンスと連携するモジュールのユーティリティーが含まれます。" -#: ../../rst/dev_guide/developing_module_utilities.rst:36 +#: ../../rst/dev_guide/developing_module_utilities.rst:38 msgid "``ansible.netcommon.plugins.module_utils.network.common.config.py`` contains utility functions for use by networking modules" msgstr "``ansible.netcommon.plugins.module_utils.network.common.config.py`` は、ネットワークモジュールによって使用される設定ユーティリティーの機能が含まれます。" -#: ../../rst/dev_guide/developing_module_utilities.rst:38 +#: ../../rst/dev_guide/developing_module_utilities.rst:40 msgid "Following this pattern with your own module utilities makes everything easy to find and use." msgstr "このパターンを独自のモジュールユーティリティーで行うと、あらゆるものを見つけ、使用することが容易になります。" -#: ../../rst/dev_guide/developing_module_utilities.rst:43 +#: ../../rst/dev_guide/developing_module_utilities.rst:45 msgid "Standard module utilities" msgstr "標準のモジュールユーティリティー" -#: ../../rst/dev_guide/developing_module_utilities.rst:45 +#: ../../rst/dev_guide/developing_module_utilities.rst:47 msgid "Ansible ships with an extensive library of ``module_utils`` files. You can find the module utility source code in the ``lib/ansible/module_utils`` directory under your main Ansible path. We describe the most widely used utilities below. For more details on any specific module utility, please see the `source code for module_utils `_." msgstr "Ansible には、``module_utils`` ファイルの広範なライブラリーが含まれています。モジュールユーティリティーのソースコードは、メインの Ansible パス下の ``lib/ansible/module_utils`` ディレクトリーにあります。また、以下で最も広く使用されているユーティリティーが含まれています。特定のモジュールユーティリティーの詳細は、「`モジュールユーティリティーのソースコード `_」を参照してください。" @@ -3168,85 +3230,85 @@ msgstr "コンテンツが過去に ansible/ansible またはコレクション msgid "Copyright entries by previous committers must also be kept in any moved files." msgstr "以前のコミット担当者による著作権エントリーも、移動したファイルに保持する必要があります。" -#: ../../rst/dev_guide/developing_module_utilities.rst:49 +#: ../../rst/dev_guide/developing_module_utilities.rst:51 msgid "``api.py`` - Supports generic API modules" msgstr "``api.py`` - 汎用 API モジュールのサポート" -#: ../../rst/dev_guide/developing_module_utilities.rst:50 +#: ../../rst/dev_guide/developing_module_utilities.rst:52 msgid "``basic.py`` - General definitions and helper utilities for Ansible modules" msgstr "``basic.py`` - Ansible モジュールの一般的な定義およびヘルパーユーティリティー" -#: ../../rst/dev_guide/developing_module_utilities.rst:51 +#: ../../rst/dev_guide/developing_module_utilities.rst:53 msgid "``common/dict_transformations.py`` - Helper functions for dictionary transformations" msgstr "``common/dict_transformations.py`` - ディクショナリー変換のヘルパー関数" -#: ../../rst/dev_guide/developing_module_utilities.rst:52 +#: ../../rst/dev_guide/developing_module_utilities.rst:54 msgid "``common/file.py`` - Helper functions for working with files" msgstr "``common/file.py`` - ファイルを操作するヘルパー関数" -#: ../../rst/dev_guide/developing_module_utilities.rst:53 +#: ../../rst/dev_guide/developing_module_utilities.rst:55 msgid "``common/text/`` - Helper functions for converting and formatting text" msgstr "``common/text/`` - テキストの変換およびフォーマットを行うためのヘルパー関数" -#: ../../rst/dev_guide/developing_module_utilities.rst:54 +#: ../../rst/dev_guide/developing_module_utilities.rst:56 msgid "``common/parameters.py`` - Helper functions for dealing with module parameters" msgstr "``common/parameters.py`` - モジュールパラメーターを処理するヘルパー関数" -#: ../../rst/dev_guide/developing_module_utilities.rst:55 +#: ../../rst/dev_guide/developing_module_utilities.rst:57 msgid "``common/sys_info.py`` - Functions for getting distribution and platform information" msgstr "``common/sys_info.py`` - ディストリビューションおよびプラットフォーム情報を取得する機能" -#: ../../rst/dev_guide/developing_module_utilities.rst:56 +#: ../../rst/dev_guide/developing_module_utilities.rst:58 msgid "``common/validation.py`` - Helper functions for validating module parameters against a module argument spec" msgstr "``common/validation.py`` - モジュール引数仕様に対してモジュールパラメーターを検証するためのヘルパー関数" -#: ../../rst/dev_guide/developing_module_utilities.rst:57 +#: ../../rst/dev_guide/developing_module_utilities.rst:59 msgid "``facts/`` - Directory of utilities for modules that return facts. See `PR 23012 `_ for more information" msgstr "``facts/`` - ファクトを返すモジュールのユーティリティーのディレクトリー。詳細は、`PR 23012 `_ を参照してください。" -#: ../../rst/dev_guide/developing_module_utilities.rst:58 +#: ../../rst/dev_guide/developing_module_utilities.rst:60 msgid "``json_utils.py`` - Utilities for filtering unrelated output around module JSON output, like leading and trailing lines" msgstr "``json_utils.py`` - 先頭行や末尾行など、モジュール JSON 出力に関する関連のない出力をフィルターを設定するユーティリティー" -#: ../../rst/dev_guide/developing_module_utilities.rst:59 +#: ../../rst/dev_guide/developing_module_utilities.rst:61 msgid "``powershell/`` - Directory of definitions and helper functions for Windows PowerShell modules" msgstr "``powershell/`` - Windows PowerShell モジュールの定義およびヘルパー関数のディレクトリー" -#: ../../rst/dev_guide/developing_module_utilities.rst:60 +#: ../../rst/dev_guide/developing_module_utilities.rst:62 msgid "``pycompat24.py`` - Exception workaround for Python 2.4" msgstr "``pycompat24.py`` - Python 2.4 の例外回避策" -#: ../../rst/dev_guide/developing_module_utilities.rst:61 +#: ../../rst/dev_guide/developing_module_utilities.rst:63 msgid "``service.py`` - Utilities to enable modules to work with Linux services (placeholder, not in use)" msgstr "``service.py`` - モジュールが Linux サービスと連携できるようにするユーティリティー (未使用のプレースホルダー)" -#: ../../rst/dev_guide/developing_module_utilities.rst:62 +#: ../../rst/dev_guide/developing_module_utilities.rst:64 msgid "``six/__init__.py`` - Bundled copy of the `Six Python library `_ to aid in writing code compatible with both Python 2 and Python 3" msgstr "``six/__init__.py`` - Python 2 と Python 3 の両方と互換性のあるコードを書き込む際に助けとなる `Six Python ライブラリー `_ のバンドルコピー" -#: ../../rst/dev_guide/developing_module_utilities.rst:63 +#: ../../rst/dev_guide/developing_module_utilities.rst:65 msgid "``splitter.py`` - String splitting and manipulation utilities for working with Jinja2 templates" msgstr "``splitter.py`` - Jinja2 テンプレートを使用する文字列分割および操作ユーティリティー" -#: ../../rst/dev_guide/developing_module_utilities.rst:64 +#: ../../rst/dev_guide/developing_module_utilities.rst:66 msgid "``urls.py`` - Utilities for working with http and https requests" msgstr "``urls.py`` - http および https リクエストを操作するユーティリティー" -#: ../../rst/dev_guide/developing_module_utilities.rst:66 +#: ../../rst/dev_guide/developing_module_utilities.rst:68 msgid "Several commonly-used utilities migrated to collections in Ansible 2.10, including:" msgstr "一般的に使用されるいくつかのユーティリティーは、Ansible 2.10 では以下のようなコレクションに移行されています。" -#: ../../rst/dev_guide/developing_module_utilities.rst:68 +#: ../../rst/dev_guide/developing_module_utilities.rst:70 msgid "``ismount.py`` migrated to ``ansible.posix.plugins.module_utils.mount.py`` - Single helper function that fixes os.path.ismount" msgstr "``ansible.posix.plugins.module_utils.mount.py`` に移行した ``ismount.py`` - os.path.ismount を修正する単一のヘルパー関数" -#: ../../rst/dev_guide/developing_module_utilities.rst:69 +#: ../../rst/dev_guide/developing_module_utilities.rst:71 msgid "``known_hosts.py`` migrated to ``community.general.plugins.module_utils.known_hosts.py`` - utilities for working with known_hosts file" msgstr "``community.general.plugins.module_utils.known_hosts.py`` に移行した ``known_hosts.py`` - known_hosts ファイルで作業するためのユーティリティー" -#: ../../rst/dev_guide/developing_module_utilities.rst:71 -msgid "For a list of migrated content with destination collections, see https://github.com/ansible/ansible/blob/devel/lib/ansible/config/ansible_builtin_runtime.yml." -msgstr "宛先コレクションで移行されたコンテンツの一覧は、https://github.com/ansible/ansible/blob/devel/lib/ansible/config/ansible_builtin_runtime.yml を参照してください。" +#: ../../rst/dev_guide/developing_module_utilities.rst:73 +msgid "For a list of migrated content with destination collections, see the `runtime.yml file `_." +msgstr "宛先コレクションで移行されたコンテンツの一覧は、`runtime.yml file ` を参照してください。" #: ../../rst/dev_guide/developing_modules.rst:6 msgid "Should you develop a module?" @@ -3341,12 +3403,14 @@ msgid "I want to :ref:`write multiple modules `." msgstr ":ref:`複数モジュールを作成 ` したいです。" #: ../../rst/dev_guide/developing_modules.rst:46 -#: ../../rst/dev_guide/developing_plugins.rst:538 +#: ../../rst/dev_guide/developing_plugins.rst:542 +#: ../../rst/dev_guide/sidecar.rst:89 msgid ":ref:`list_of_collections`" msgstr ":ref:`list_of_collections`" #: ../../rst/dev_guide/developing_modules.rst:47 -#: ../../rst/dev_guide/developing_plugins.rst:539 +#: ../../rst/dev_guide/developing_plugins.rst:543 +#: ../../rst/dev_guide/sidecar.rst:90 msgid "Browse existing collections, modules, and plugins" msgstr "既存のコレクション、モジュール、およびプラグインの閲覧" @@ -3795,8 +3859,8 @@ msgid "Additional requirements may apply for certain collections. Review the ind msgstr "追加の要件は、特定のコレクションに適用される可能性があります。詳細は、個別のコレクションリポジトリーを参照してください。" #: ../../rst/dev_guide/developing_modules_checklist.rst:34 -msgid "Please make sure your module meets these requirements before you submit your PR/proposal. If you have questions, reach out via the ``#ansible-devel`` chat channel (using Matrix at ansible.im or using IRC at `irc.libera.chat `_) or the `Ansible development mailing list `_." -msgstr "PR/提案を送信する前に、お使いのモジュールがこれらの要件を満たしていることを確認してください。ご質問がある場合は、``#ansible-devel``チャットチャンネル(ansible.imでMatrixを使用、もしくは`irc.libera.chat `でIRCを使用)または `Ansible development mailing list ` までお問い合わせください。" +msgid "Please make sure your module meets these requirements before you submit your PR/proposal. If you have questions, reach out by using the ``#ansible-devel`` chat channel (using Matrix at ansible.im or using IRC at `irc.libera.chat `_) or the `Ansible development mailing list `_." +msgstr "PR/提案を送信する前に、お使いのモジュールがこれらの要件を満たしていることを確認してください。ご不明な点がございましたら、``#ansible-devel``チャットチャンネル (ansible.im で Matrix を使用、もしくは `irc.libera.chat `_ で IRC を使用) または `Ansible development mailing list `_ を使用してお問い合わせください。" #: ../../rst/dev_guide/developing_modules_checklist.rst:37 msgid "Contributing to Ansible: subjective requirements" @@ -3812,11 +3876,11 @@ msgstr "その他のチェックリスト" #: ../../rst/dev_guide/developing_modules_checklist.rst:44 msgid ":ref:`Tips for module development `." -msgstr ":ref:`モジュール開発のヒント `" +msgstr ":ref:`Tips for module development `。" #: ../../rst/dev_guide/developing_modules_checklist.rst:45 msgid ":ref:`Windows development checklist `." -msgstr ":ref:`Windows 開発チェックリスト `" +msgstr ":ref:`Windows development checklist `。" #: ../../rst/dev_guide/developing_modules_documenting.rst:6 msgid "Module format and documentation" @@ -3846,104 +3910,120 @@ msgstr "**古いモジュールは注意してコピーしてください。**" msgid "Some older Ansible modules have ``imports`` at the bottom of the file, ``Copyright`` notices with the full GPL prefix, and/or ``DOCUMENTATION`` fields in the wrong order. These are legacy files that need updating - do not copy them into new modules. Over time we are updating and correcting older modules. Please follow the guidelines on this page!" msgstr "一部の古い Ansible モジュールでは、ファイルの下部に ``imports`` があるため、``Copyright`` は完全な GPL プレフィックス、または ``DOCUMENTATION`` フィールドを間違った順序で持つことに注意してください。これらは更新が必要なレガシーファイルです。新しいモジュールにコピーしないでください。時間の経過とともに、古いモジュールを更新および修正しています。このページにはガイドラインに従うようにしてください。" -#: ../../rst/dev_guide/developing_modules_documenting.rst:27 +#: ../../rst/dev_guide/developing_modules_documenting.rst:24 +msgid "For non-Python modules you still create a ``.py`` file for documentation purposes. Starting at ansible-core 2.14 you can instead choose to create a ``.yml`` file that has the same data structure, but in pure YAML. With YAML files, the examples below are easy to use by removing Python quoting and substituting ``=`` for ``:``, for example ``DOCUMENTATION = r''' ... '''` ` to ``DOCUMENTATION: ...`` and removing closing quotes. :ref:`adjacent_yaml_doc`" +msgstr "非 Python モジュールの場合、引き続きドキュメント用に ``.py`` ファイルを作成します。ansible-core 2.14 以降では、同じデータ構造を持つ ``.yml`` ファイルを替わりに作成できますが、これは純粋な YAML です。YAML ファイルの場合、Python の引用符を削除して ``:`` を ``=`` に置き換えることで、以下の例が使いやすくなります (例: ``DOCUMENTATION = r''' ... '''` ` to ``DOCUMENTATION: ...`` and removing closing quotes. :ref:`adjacent_yaml_doc`)" + +#: ../../rst/dev_guide/developing_modules_documenting.rst:31 msgid "Python shebang & UTF-8 coding" msgstr "Python シバンおよび UTF-8 コーディング" -#: ../../rst/dev_guide/developing_modules_documenting.rst:29 +#: ../../rst/dev_guide/developing_modules_documenting.rst:33 msgid "Begin your Ansible module with ``#!/usr/bin/python`` - this \"shebang\" allows ``ansible_python_interpreter`` to work. Follow the shebang immediately with ``# -*- coding: utf-8 -*-`` to clarify that the file is UTF-8 encoded." msgstr "``#!/usr/bin/python`` で Ansible モジュールを開始します (この「シバン」では ``ansible_python_interpreter`` が機能します)。ファイルが UTF-8 でエンコードされていることを明確にするために、シバンの直後に ``# -*- coding: utf-8 -*-`` を使用します。" -#: ../../rst/dev_guide/developing_modules_documenting.rst:34 +#: ../../rst/dev_guide/developing_modules_documenting.rst:35 +msgid "Using ``#!/usr/bin/env``, makes ``env`` the interpreter and bypasses ``ansible__interpreter`` logic." +msgstr "``#!/usr/bin/env`` を使用すると、``env`` がインタープリターとなり ``ansible__interpreter`` 論理をバイパスします。" + +#: ../../rst/dev_guide/developing_modules_documenting.rst:36 +msgid "If you develop the module using a different scripting language, adjust the interpreter accordingly (``#!/usr/bin/``) so ``ansible__interpreter`` can work for that specific language." +msgstr "別のスクリプト言語を使用してモジュールを開発する場合は、インタープリターを適宜調整し (``#!/usr/bin/``)、その言語で ``ansible__interpreter`` が機能するようにします。" + +#: ../../rst/dev_guide/developing_modules_documenting.rst:37 +msgid "Binary modules do not require a shebang or an interpreter." +msgstr "バイナリーモジュールに shebang やインタープリターは必要ありません。" + +#: ../../rst/dev_guide/developing_modules_documenting.rst:42 msgid "Copyright and license" msgstr "著作権およびライセンス" -#: ../../rst/dev_guide/developing_modules_documenting.rst:36 +#: ../../rst/dev_guide/developing_modules_documenting.rst:44 msgid "After the shebang and UTF-8 coding, add a `copyright line `_ with the original copyright holder and a license declaration. The license declaration should be ONLY one line, not the full GPL prefix.:" msgstr "シバンおよび UTF-8 コーディングの後に、元の著作権所有者およびライセンス宣言を含む `copyright line `_ を追加します。ライセンス宣言は、完全な GPL プレフィックスではなく、1 行のみにする必要があります。" -#: ../../rst/dev_guide/developing_modules_documenting.rst:46 +#: ../../rst/dev_guide/developing_modules_documenting.rst:54 msgid "Additions to the module (for instance, rewrites) are not permitted to add additional copyright lines other than the default copyright statement if missing:" msgstr "モジュールを追加するときに、以下が欠けている場合に、デフォルトの著作権ステートメント以外に、著作権の行を追加できません。" -#: ../../rst/dev_guide/developing_modules_documenting.rst:52 +#: ../../rst/dev_guide/developing_modules_documenting.rst:60 msgid "Any legal review will include the source control history, so an exhaustive copyright header is not necessary. Please do not include a copyright year. If the existing copyright statement includes a year, do not edit the existing copyright year. Any existing copyright header should not be modified without permission from the copyright author." msgstr "法的レビューにはソース管理履歴が含まれるため、完全な著作権ヘッダーは必要ありません。著作権の年は含めないでください。既存の著作権ステートメントに年が含まれている場合は、既存の著作権の年を編集しないでください。既存の著作権ヘッダーは、著作権者の許可なしに変更しないでください。" -#: ../../rst/dev_guide/developing_modules_documenting.rst:58 +#: ../../rst/dev_guide/developing_modules_documenting.rst:66 msgid "ANSIBLE_METADATA block" msgstr "ANSIBLE_METADATA ブロック" -#: ../../rst/dev_guide/developing_modules_documenting.rst:60 +#: ../../rst/dev_guide/developing_modules_documenting.rst:68 msgid "Since we moved to collections we have deprecated the METADATA functionality, it is no longer required for modules, but it will not break anything if present." msgstr "コレクションに移行しても METADATA 機能は非推奨になり、モジュールには必要なくなりましたが、存在しても何も破損しません。" -#: ../../rst/dev_guide/developing_modules_documenting.rst:66 +#: ../../rst/dev_guide/developing_modules_documenting.rst:74 msgid "DOCUMENTATION block" msgstr "DOCUMENTATION ブロック" -#: ../../rst/dev_guide/developing_modules_documenting.rst:68 +#: ../../rst/dev_guide/developing_modules_documenting.rst:76 msgid "After the shebang, the UTF-8 coding, the copyright line, and the license section comes the ``DOCUMENTATION`` block. Ansible's online module documentation is generated from the ``DOCUMENTATION`` blocks in each module's source code. The ``DOCUMENTATION`` block must be valid YAML. You may find it easier to start writing your ``DOCUMENTATION`` string in an :ref:`editor with YAML syntax highlighting ` before you include it in your Python file. You can start by copying our `example documentation string `_ into your module file and modifying it. If you run into syntax issues in your YAML, you can validate it on the `YAML Lint `_ website." msgstr "shebang、UTF-8 コーディング、著作権行、ライセンスセクションの後には、``DOCUMENTATION`` ブロックがあります。Ansible のオンラインモジュールドキュメントは、各モジュールのソースコード内の ``DOCUMENTATION`` ブロックから生成されます。``DOCUMENTATION`` ブロックは有効な YAML でなければなりません。Python ファイルに含める前に、``DOCUMENTATION`` の文字列を :ref:`YAML 構文の強調表示を使用したエディター ` に書き始めた方が簡単だと思うかもしれません。提供している `サンプルのドキュメントの文字列 `_ を自身のモジュールファイルにコピーして、それを修正することから始めることができます。YAML の構文に問題がある場合は、`YAML Lint `_ の Web サイトで検証することができます。" -#: ../../rst/dev_guide/developing_modules_documenting.rst:76 +#: ../../rst/dev_guide/developing_modules_documenting.rst:84 msgid "Module documentation should briefly and accurately define what each module and option does, and how it works with others in the underlying system. Documentation should be written for broad audience--readable both by experts and non-experts." msgstr "モジュールのドキュメントでは、各モジュールとオプションの動作について簡単かつ正確に定義し、基礎となるシステムで他のモジュールとどのように連携するかを説明します。ドキュメントは、専門家と非専門家の両方が読むことができるように、幅広い読者に向けて作成する必要があります。" -#: ../../rst/dev_guide/developing_modules_documenting.rst:71 +#: ../../rst/dev_guide/developing_modules_documenting.rst:79 msgid "Descriptions should always start with a capital letter and end with a full stop. Consistency always helps." msgstr "説明は常に大文字で始め、完全に終了する必要があります。一貫性は常に役立ちます。" -#: ../../rst/dev_guide/developing_modules_documenting.rst:72 +#: ../../rst/dev_guide/developing_modules_documenting.rst:80 msgid "Verify that arguments in doc and module spec dict are identical." msgstr "ドキュメントの引数と、モジュール仕様のディクショナリーが同じであることを確認します。" -#: ../../rst/dev_guide/developing_modules_documenting.rst:73 +#: ../../rst/dev_guide/developing_modules_documenting.rst:81 msgid "For password / secret arguments ``no_log=True`` should be set." msgstr "パスワード/シークレット引数 ``no_log=True`` を設定する必要があります。" -#: ../../rst/dev_guide/developing_modules_documenting.rst:74 +#: ../../rst/dev_guide/developing_modules_documenting.rst:82 msgid "For arguments that seem to contain sensitive information but **do not** contain secrets, such as \"password_length\", set ``no_log=False`` to disable the warning message." msgstr "機密情報が含まれているように見えても「password_length」などのシークレットが **含まれていない** ように表示される引数には、``no_log=False`` を設定して警告メッセージを無効にします。" -#: ../../rst/dev_guide/developing_modules_documenting.rst:75 -#: ../../rst/dev_guide/developing_modules_documenting.rst:143 +#: ../../rst/dev_guide/developing_modules_documenting.rst:83 +#: ../../rst/dev_guide/developing_modules_documenting.rst:152 msgid "If an option is only sometimes required, describe the conditions. For example, \"Required when I(state=present).\"" msgstr "オプションのみが必要な場合は、条件を記述してください。たとえば、「Required when I(state=present)」です。" -#: ../../rst/dev_guide/developing_modules_documenting.rst:76 +#: ../../rst/dev_guide/developing_modules_documenting.rst:84 msgid "If your module allows ``check_mode``, reflect this fact in the documentation." msgstr "モジュールで ``check_mode`` が許可されている場合は、これをドキュメントに反映させます。" -#: ../../rst/dev_guide/developing_modules_documenting.rst:78 +#: ../../rst/dev_guide/developing_modules_documenting.rst:86 msgid "To create clear, concise, consistent, and useful documentation, follow the :ref:`style guide `." msgstr "明確かつ簡潔で一貫性があり、便利なドキュメントは :ref:`スタイルガイド ` に従います。" -#: ../../rst/dev_guide/developing_modules_documenting.rst:80 +#: ../../rst/dev_guide/developing_modules_documenting.rst:88 msgid "Each documentation field is described below. Before committing your module documentation, please test it at the command line and as HTML:" msgstr "各ドキュメントフィールドの説明は次のとおりです。モジュールのドキュメントをコミットする前に、コマンドラインおよび HTML でテストしてください。" -#: ../../rst/dev_guide/developing_modules_documenting.rst:82 +#: ../../rst/dev_guide/developing_modules_documenting.rst:90 msgid "As long as your module file is :ref:`available locally `, you can use ``ansible-doc -t module my_module_name`` to view your module documentation at the command line. Any parsing errors will be obvious - you can view details by adding ``-vvv`` to the command." msgstr "モジュールファイルが :ref:`ローカルで利用可能 ` な場合に限り、``ansible-doc -t module my_module_name`` を使用して、コマンドラインでモジュールのドキュメントを表示します。構文解析エラーは明確になります。コマンドに ``-vvv`` を追加すると、詳細を表示できます。" -#: ../../rst/dev_guide/developing_modules_documenting.rst:83 +#: ../../rst/dev_guide/developing_modules_documenting.rst:91 msgid "You should also :ref:`test the HTML output ` of your module documentation." msgstr "モジュールのドキュメントにおける :ref:`HTML 出力のテスト ` も必要です。" -#: ../../rst/dev_guide/developing_modules_documenting.rst:86 +#: ../../rst/dev_guide/developing_modules_documenting.rst:95 msgid "Documentation fields" msgstr "ドキュメントフィールド" -#: ../../rst/dev_guide/developing_modules_documenting.rst:88 +#: ../../rst/dev_guide/developing_modules_documenting.rst:97 msgid "All fields in the ``DOCUMENTATION`` block are lower-case. All fields are required unless specified otherwise:" msgstr "``DOCUMENTATION`` ブロックのフィールドはすべて小文字になります。特に指定がない場合は、すべてのフィールドが必要になります。" -#: ../../rst/dev_guide/developing_modules_documenting.rst:92 +#: ../../rst/dev_guide/developing_modules_documenting.rst:101 msgid "The name of the module." msgstr "モジュールの名前。" -#: ../../rst/dev_guide/developing_modules_documenting.rst:93 +#: ../../rst/dev_guide/developing_modules_documenting.rst:102 msgid "Must be the same as the filename, without the ``.py`` extension." msgstr "ファイル名と同じ (``.py`` 拡張子なし) である必要があります。" @@ -3951,15 +4031,15 @@ msgstr "ファイル名と同じ (``.py`` 拡張子なし) である必要があ msgid "short_description" msgstr "short_description" -#: ../../rst/dev_guide/developing_modules_documenting.rst:97 +#: ../../rst/dev_guide/developing_modules_documenting.rst:106 msgid "A short description which is displayed on the :ref:`list_of_collections` page and ``ansible-doc -l``." msgstr ":ref:`list_of_collections` ページと ``ansible-doc -l`` に表示される簡単な説明です。" -#: ../../rst/dev_guide/developing_modules_documenting.rst:98 +#: ../../rst/dev_guide/developing_modules_documenting.rst:107 msgid "The ``short_description`` is displayed by ``ansible-doc -l`` without any category grouping, so it needs enough detail to explain the module's purpose without the context of the directory structure in which it lives." msgstr "``short_description`` は、カテゴリーをグループ化せずに、``ansible-doc -l`` によって表示されます。そのため、モジュールが存在するディレクトリー構造のコンテキストなしでモジュールの目的を説明するのに十分な詳細が必要です。" -#: ../../rst/dev_guide/developing_modules_documenting.rst:100 +#: ../../rst/dev_guide/developing_modules_documenting.rst:109 msgid "Unlike ``description:``, ``short_description`` should not have a trailing period/full stop." msgstr "``description:`` とは異なり、``short_description`` のピリオド (文末) は設定しないでください。" @@ -3967,23 +4047,23 @@ msgstr "``description:`` とは異なり、``short_description`` のピリオド msgid "description" msgstr "description" -#: ../../rst/dev_guide/developing_modules_documenting.rst:104 +#: ../../rst/dev_guide/developing_modules_documenting.rst:113 msgid "A detailed description (generally two or more sentences)." msgstr "詳細な説明 (通常は 2 文以上)。" -#: ../../rst/dev_guide/developing_modules_documenting.rst:105 +#: ../../rst/dev_guide/developing_modules_documenting.rst:114 msgid "Must be written in full sentences, in other words, with capital letters and periods/full stops." msgstr "文章の形、つまり冒頭の大文字やピリオド (文末) などを使用して記述する必要があります。" -#: ../../rst/dev_guide/developing_modules_documenting.rst:106 +#: ../../rst/dev_guide/developing_modules_documenting.rst:115 msgid "Shouldn't mention the module name." msgstr "モジュール名について言及すべきではありません。" -#: ../../rst/dev_guide/developing_modules_documenting.rst:107 +#: ../../rst/dev_guide/developing_modules_documenting.rst:116 msgid "Make use of multiple entries rather than using one long paragraph." msgstr "1 つの長い段落にせず、複数の文章に分けます。" -#: ../../rst/dev_guide/developing_modules_documenting.rst:108 +#: ../../rst/dev_guide/developing_modules_documenting.rst:117 msgid "Don't quote complete values unless it is required by YAML." msgstr "YAML で必要な場合を除き、完全な値を引用符で囲まないでください。" @@ -3991,15 +4071,15 @@ msgstr "YAML で必要な場合を除き、完全な値を引用符で囲まな msgid "version_added" msgstr "version_added" -#: ../../rst/dev_guide/developing_modules_documenting.rst:112 +#: ../../rst/dev_guide/developing_modules_documenting.rst:121 msgid "The version of Ansible when the module was added." msgstr "モジュールが追加された Ansible のバージョン。" -#: ../../rst/dev_guide/developing_modules_documenting.rst:113 +#: ../../rst/dev_guide/developing_modules_documenting.rst:122 msgid "This is a string, and not a float, for example, ``version_added: '2.1'``." msgstr "これは浮動小数点ではなく文字列です (例: ``version_added: '2.1'``)。" -#: ../../rst/dev_guide/developing_modules_documenting.rst:114 +#: ../../rst/dev_guide/developing_modules_documenting.rst:123 msgid "In collections, this must be the collection version the module was added to, not the Ansible version. For example, ``version_added: 1.0.0``." msgstr "コレクションでは、これは Ansible バージョンではなく、モジュールが追加されたコレクションバージョンでなければなりません (例: ``version_added: 1.0.0``)。" @@ -4007,15 +4087,15 @@ msgstr "コレクションでは、これは Ansible バージョンではなく msgid "author" msgstr "author" -#: ../../rst/dev_guide/developing_modules_documenting.rst:118 +#: ../../rst/dev_guide/developing_modules_documenting.rst:127 msgid "Name of the module author in the form ``First Last (@GitHubID)``." msgstr "``First Last (@GitHubID)`` 形式のモジュール作成者の名前。" -#: ../../rst/dev_guide/developing_modules_documenting.rst:119 +#: ../../rst/dev_guide/developing_modules_documenting.rst:128 msgid "Use a multi-line list if there is more than one author." msgstr "作成者が複数になる場合は、複数行のリストを使用します。" -#: ../../rst/dev_guide/developing_modules_documenting.rst:120 +#: ../../rst/dev_guide/developing_modules_documenting.rst:129 msgid "Don't use quotes as it should not be required by YAML." msgstr "YAML では必要ないため、引用符は使用しないでください。" @@ -4023,7 +4103,7 @@ msgstr "YAML では必要ないため、引用符は使用しないでくださ msgid "deprecated" msgstr "deprecated" -#: ../../rst/dev_guide/developing_modules_documenting.rst:124 +#: ../../rst/dev_guide/developing_modules_documenting.rst:133 msgid "Marks modules that will be removed in future releases. See also :ref:`module_lifecycle`." msgstr "将来のリリースで削除されるモジュールにマークを付けします。「:ref:`module_lifecycle`」も併せて参照してください。" @@ -4032,15 +4112,15 @@ msgstr "将来のリリースで削除されるモジュールにマークを付 msgid "options" msgstr "options" -#: ../../rst/dev_guide/developing_modules_documenting.rst:128 +#: ../../rst/dev_guide/developing_modules_documenting.rst:137 msgid "Options are often called `parameters` or `arguments`. Because the documentation field is called `options`, we will use that term." msgstr "オプションは、多くの場合、`パラメーター` または `引数` と呼ばれます。ドキュメントフィールドは `オプション` を呼ばれるため、ここではその用語を使用します。" -#: ../../rst/dev_guide/developing_modules_documenting.rst:129 +#: ../../rst/dev_guide/developing_modules_documenting.rst:138 msgid "If the module has no options (for example, it's a ``_facts`` module), all you need is one line: ``options: {}``." msgstr "モジュールにオプションがない (例: ``_facts`` モジュール) 場合、必要なのは 1 行 (``options: {}``) だけです。" -#: ../../rst/dev_guide/developing_modules_documenting.rst:130 +#: ../../rst/dev_guide/developing_modules_documenting.rst:139 msgid "If your module has options (in other words, accepts arguments), each option should be documented thoroughly. For each module option, include:" msgstr "モジュールにオプションがある (つまり引数を受け入れる) 場合、各オプションは詳細に文書化される必要があります。各モジュールオプションについて、以下を記載します。" @@ -4048,39 +4128,39 @@ msgstr "モジュールにオプションがある (つまり引数を受け入 msgid "option-name" msgstr "option-name" -#: ../../rst/dev_guide/developing_modules_documenting.rst:134 +#: ../../rst/dev_guide/developing_modules_documenting.rst:143 msgid "Declarative operation (not CRUD), to focus on the final state, for example `online:`, rather than `is_online:`." msgstr "(CRUD ではなく) 宣言操作は、「`is_online:`」ではなく、「`online:`」などの最終状態に焦点をあてます。" -#: ../../rst/dev_guide/developing_modules_documenting.rst:135 +#: ../../rst/dev_guide/developing_modules_documenting.rst:144 msgid "The name of the option should be consistent with the rest of the module, as well as other modules in the same category." msgstr "オプションの名前は、そのモジュールの残りの部分、および同じカテゴリーの他のモジュールと一貫性を持たせる必要があります。" -#: ../../rst/dev_guide/developing_modules_documenting.rst:136 +#: ../../rst/dev_guide/developing_modules_documenting.rst:145 msgid "When in doubt, look for other modules to find option names that are used for the same purpose, we like to offer consistency to our users." msgstr "不明な場合は、他のモジュールを探して、同じ目的で使用されているオプション名を見つけてください。ユーザーに一貫性を提供できるようにしています。" -#: ../../rst/dev_guide/developing_modules_documenting.rst:140 +#: ../../rst/dev_guide/developing_modules_documenting.rst:149 msgid "Detailed explanation of what this option does. It should be written in full sentences." msgstr "このオプションの機能の詳細な説明。これは、完全な文章で記述する必要があります。" -#: ../../rst/dev_guide/developing_modules_documenting.rst:141 +#: ../../rst/dev_guide/developing_modules_documenting.rst:150 msgid "The first entry is a description of the option itself; subsequent entries detail its use, dependencies, or format of possible values." msgstr "最初のエントリーは、オプションそのものの説明です。後続のエントリーは、その使用、依存関係、または使用できる値の形式の詳細を説明します。" -#: ../../rst/dev_guide/developing_modules_documenting.rst:142 +#: ../../rst/dev_guide/developing_modules_documenting.rst:151 msgid "Should not list the possible values (that's what ``choices:`` is for, though it should explain what the values do if they aren't obvious)." msgstr "可能な値を列挙しないでください (``choices:`` はそのためにあります。値が明らかでない場合は、その値が何を示すのかを説明してください)。" -#: ../../rst/dev_guide/developing_modules_documenting.rst:144 +#: ../../rst/dev_guide/developing_modules_documenting.rst:153 msgid "Mutually exclusive options must be documented as the final sentence on each of the options." msgstr "相互に排他的なオプションは、各オプションの最後の文で文書化する必要があります。" -#: ../../rst/dev_guide/developing_modules_documenting.rst:148 +#: ../../rst/dev_guide/developing_modules_documenting.rst:157 msgid "Only needed if ``true``." msgstr "``true`` の場合にのみ必要です。" -#: ../../rst/dev_guide/developing_modules_documenting.rst:149 +#: ../../rst/dev_guide/developing_modules_documenting.rst:158 msgid "If missing, we assume the option is not required." msgstr "見つからない場合は、オプションが不要であると仮定します。" @@ -4089,19 +4169,19 @@ msgstr "見つからない場合は、オプションが不要であると仮定 msgid "default" msgstr "default" -#: ../../rst/dev_guide/developing_modules_documenting.rst:153 +#: ../../rst/dev_guide/developing_modules_documenting.rst:162 msgid "If ``required`` is false/missing, ``default`` may be specified (assumed 'null' if missing)." msgstr "``required`` が false もしくは指定されていない場合は、``default`` を指定できます (見つからない場合は「null」と見なされます)。" -#: ../../rst/dev_guide/developing_modules_documenting.rst:154 +#: ../../rst/dev_guide/developing_modules_documenting.rst:163 msgid "Ensure that the default value in the docs matches the default value in the code." msgstr "ドキュメントのデフォルト値が、コードのデフォルト値と一致していることを確認してください。" -#: ../../rst/dev_guide/developing_modules_documenting.rst:155 +#: ../../rst/dev_guide/developing_modules_documenting.rst:164 msgid "The default field must not be listed as part of the description, unless it requires additional information or conditions." msgstr "追加の情報や条件が必要な場合を除き、デフォルトのフィールドは、説明の一部として記載しないでください。" -#: ../../rst/dev_guide/developing_modules_documenting.rst:156 +#: ../../rst/dev_guide/developing_modules_documenting.rst:165 msgid "If the option is a boolean value, you can use any of the boolean values recognized by Ansible: (such as true/false or yes/no). Choose the one that reads better in the context of the option." msgstr "オプションがブール値の場合は、Ansible が認識する任意のブール値 (true/false、yes/no など) を使用できます。オプションのコンテキストで読み取りが適切であればこれを選択します。" @@ -4110,28 +4190,28 @@ msgstr "オプションがブール値の場合は、Ansible が認識する任 msgid "choices" msgstr "choices" -#: ../../rst/dev_guide/developing_modules_documenting.rst:161 +#: ../../rst/dev_guide/developing_modules_documenting.rst:170 msgid "List of option values." msgstr "オプション値のリスト。" -#: ../../rst/dev_guide/developing_modules_documenting.rst:162 +#: ../../rst/dev_guide/developing_modules_documenting.rst:171 msgid "Should be absent if empty." msgstr "空欄の場合は指定なしになります。" #: ../../rst/dev_guide/developing_modules_documenting.rst #: ../../rst/dev_guide/developing_program_flow_modules.rst msgid "type" -msgstr "type" +msgstr "タイプ" -#: ../../rst/dev_guide/developing_modules_documenting.rst:166 +#: ../../rst/dev_guide/developing_modules_documenting.rst:175 msgid "Specifies the data type that option accepts, must match the ``argspec``." msgstr "オプションで使用できるデータ型を指定します。``argspec`` と一致させる必要があります。" -#: ../../rst/dev_guide/developing_modules_documenting.rst:167 +#: ../../rst/dev_guide/developing_modules_documenting.rst:176 msgid "If an argument is ``type='bool'``, this field should be set to ``type: bool`` and no ``choices`` should be specified." msgstr "引数が ``type='bool'`` の場合、このフィールドは ``type: bool`` に設定されます。``choices`` は指定しないでください。" -#: ../../rst/dev_guide/developing_modules_documenting.rst:168 +#: ../../rst/dev_guide/developing_modules_documenting.rst:177 msgid "If an argument is ``type='list'``, ``elements`` should be specified." msgstr "引数が ``type='list'`` の場合は、``elements`` を指定する必要があります。" @@ -4140,7 +4220,7 @@ msgstr "引数が ``type='list'`` の場合は、``elements`` を指定する必 msgid "elements" msgstr "elements" -#: ../../rst/dev_guide/developing_modules_documenting.rst:172 +#: ../../rst/dev_guide/developing_modules_documenting.rst:181 msgid "Specifies the data type for list elements in case ``type='list'``." msgstr "``type='list'`` の場合に、リスト要素のデータ型を指定します。" @@ -4149,23 +4229,23 @@ msgstr "``type='list'`` の場合に、リスト要素のデータ型を指定 msgid "aliases" msgstr "aliases" -#: ../../rst/dev_guide/developing_modules_documenting.rst:175 +#: ../../rst/dev_guide/developing_modules_documenting.rst:184 msgid "List of optional name aliases." msgstr "任意の名前エイリアスのリスト。" -#: ../../rst/dev_guide/developing_modules_documenting.rst:176 +#: ../../rst/dev_guide/developing_modules_documenting.rst:185 msgid "Generally not needed." msgstr "一般的には必要ありません。" -#: ../../rst/dev_guide/developing_modules_documenting.rst:180 +#: ../../rst/dev_guide/developing_modules_documenting.rst:189 msgid "Only needed if this option was extended after initial Ansible release, in other words, this is greater than the top level `version_added` field." msgstr "このオプションが Ansible の初回リリース後に拡張されている場合にのみ必要です。つまり、これは最上位レベルの `version_added` フィールドよりも大きくなります。" -#: ../../rst/dev_guide/developing_modules_documenting.rst:181 +#: ../../rst/dev_guide/developing_modules_documenting.rst:190 msgid "This is a string, and not a float, for example, ``version_added: '2.3'``." msgstr "これは浮動小数点ではなく文字列です (例: ``version_added: '2.3'``)。" -#: ../../rst/dev_guide/developing_modules_documenting.rst:182 +#: ../../rst/dev_guide/developing_modules_documenting.rst:191 msgid "In collections, this must be the collection version the option was added to, not the Ansible version. For example, ``version_added: 1.0.0``." msgstr "コレクションでは、これは Ansible バージョンではなく、オプションが追加されたコレクションバージョンでなければなりません (例: ``version_added: 1.0.0``)。" @@ -4173,11 +4253,11 @@ msgstr "コレクションでは、これは Ansible バージョンではなく msgid "suboptions" msgstr "suboptions" -#: ../../rst/dev_guide/developing_modules_documenting.rst:186 +#: ../../rst/dev_guide/developing_modules_documenting.rst:195 msgid "If this option takes a dict or list of dicts, you can define the structure here." msgstr "このオプションがディクショナリーまたはディクショナリーのリストを取る場合は、ここで構造を定義できます。" -#: ../../rst/dev_guide/developing_modules_documenting.rst:187 +#: ../../rst/dev_guide/developing_modules_documenting.rst:196 msgid "See :ref:`ansible_collections.azure.azcollection.azure_rm_securitygroup_module`, :ref:`ansible_collections.azure.azcollection.azure_rm_azurefirewall_module`, and :ref:`ansible_collections.openstack.cloud.baremetal_node_action_module` for examples." msgstr "例は、「:ref:`ansible_collections.azure.azcollection.azure_rm_securitygroup_module`」、「:ref:`ansible_collections.azure.azcollection.azure_rm_azurefirewall_module`」、および「:ref:`ansible_collections.openstack.cloud.baremetal_node_action_module`」を参照してください。" @@ -4185,11 +4265,11 @@ msgstr "例は、「:ref:`ansible_collections.azure.azcollection.azure_rm_securi msgid "requirements" msgstr "requirements" -#: ../../rst/dev_guide/developing_modules_documenting.rst:191 +#: ../../rst/dev_guide/developing_modules_documenting.rst:200 msgid "List of requirements (if applicable)." msgstr "要件のリスト (該当する場合)。" -#: ../../rst/dev_guide/developing_modules_documenting.rst:192 +#: ../../rst/dev_guide/developing_modules_documenting.rst:201 msgid "Include minimum versions." msgstr "最小バージョンを指定します。" @@ -4197,23 +4277,23 @@ msgstr "最小バージョンを指定します。" msgid "seealso" msgstr "seealso" -#: ../../rst/dev_guide/developing_modules_documenting.rst:196 +#: ../../rst/dev_guide/developing_modules_documenting.rst:205 msgid "A list of references to other modules, documentation or Internet resources" msgstr "その他のモジュール、ドキュメント、またはインターネットリソースへの参照の一覧。" -#: ../../rst/dev_guide/developing_modules_documenting.rst:197 +#: ../../rst/dev_guide/developing_modules_documenting.rst:206 msgid "In Ansible 2.10 and later, references to modules must use the FQCN or ``ansible.builtin`` for modules in ``ansible-core``." msgstr "Ansible 2.10 以降では、モジュールへの参照が ``ansible-core`` のモジュールに FQCN または ``ansible.builtin`` を使用する必要があります。" -#: ../../rst/dev_guide/developing_modules_documenting.rst:198 +#: ../../rst/dev_guide/developing_modules_documenting.rst:207 msgid "A reference can be one of the following formats:" msgstr "参照には、以下の形式のいずれかを使用できます。" -#: ../../rst/dev_guide/developing_modules_documenting.rst:226 +#: ../../rst/dev_guide/developing_modules_documenting.rst:235 msgid "If you use ``ref:`` to link to an anchor that is not associated with a title, you must add a title to the ref for the link to work correctly." msgstr "``ref:`` を使用してタイトルと関連付けられていないアンカーにリンクする場合は、リンクが正しく機能するように ref にタイトルを追加する必要があります。" -#: ../../rst/dev_guide/developing_modules_documenting.rst:227 +#: ../../rst/dev_guide/developing_modules_documenting.rst:236 msgid "You can link to non-module plugins with ``ref:`` using the rST anchor, but plugin and module anchors are never associated with a title, so you must supply a title when you link to them. For example ``ref: namespace.collection.plugin_name lookup plugin ``." msgstr "rST アンカーを使用して ``ref:`` でモジュール以外のプラグインにリンクできますが、プラグインおよびモジュールアンカーはタイトルと関連付けられないため、リンクする際にタイトルを指定する必要があります。たとえば、``ref: namespace.collection.plugin_name lookup plugin `` となります。" @@ -4221,155 +4301,155 @@ msgstr "rST アンカーを使用して ``ref:`` でモジュール以外のプ msgid "notes" msgstr "notes" -#: ../../rst/dev_guide/developing_modules_documenting.rst:232 +#: ../../rst/dev_guide/developing_modules_documenting.rst:241 msgid "Details of any important information that doesn't fit in one of the above sections." msgstr "上記のセクションのいずれかに該当しない重要な情報の詳細です。" -#: ../../rst/dev_guide/developing_modules_documenting.rst:233 +#: ../../rst/dev_guide/developing_modules_documenting.rst:242 msgid "For example, whether ``check_mode`` is or is not supported." msgstr "たとえば、``check_mode`` がサポートされるかどうかなどです。" -#: ../../rst/dev_guide/developing_modules_documenting.rst:238 +#: ../../rst/dev_guide/developing_modules_documenting.rst:247 msgid "Linking and other format macros within module documentation" msgstr "モジュールドキュメント内のリンクおよびその他の形式マクロ" -#: ../../rst/dev_guide/developing_modules_documenting.rst:240 +#: ../../rst/dev_guide/developing_modules_documenting.rst:249 msgid "You can link from your module documentation to other module docs, other resources on docs.ansible.com, and resources elsewhere on the internet with the help of some pre-defined macros. The correct formats for these macros are:" msgstr "モジュールドキュメントから他のモジュールドキュメント、docs.ansible.com の他のリソース、一部の事前設定マクロでインターネット上の他のリソースにリンクできます。これらのマクロの正しい形式は次のとおりです。" -#: ../../rst/dev_guide/developing_modules_documenting.rst:242 +#: ../../rst/dev_guide/developing_modules_documenting.rst:251 msgid "``L()`` for links with a heading. For example: ``See L(Ansible Automation Platform,https://www.ansible.com/products/automation-platform).`` As of Ansible 2.10, do not use ``L()`` for relative links between Ansible documentation and collection documentation." msgstr "``L()`` 見出しへのリンク。たとえば、``See L(Ansible Automation Platform,https://www.ansible.com/products/automation-platform).`` となります。Ansible 2.10 以降、Ansible ドキュメントとコレクションのドキュメントの相対リンクには ``L()`` を使用しないでください。" -#: ../../rst/dev_guide/developing_modules_documenting.rst:243 +#: ../../rst/dev_guide/developing_modules_documenting.rst:252 msgid "``U()`` for URLs. For example: ``See U(https://www.ansible.com/products/automation-platform) for an overview.``" msgstr "URL の場合は ``U()``。たとえば、``See U(https://www.ansible.com/products/automation-platform) for an overview.`` となります。" -#: ../../rst/dev_guide/developing_modules_documenting.rst:244 +#: ../../rst/dev_guide/developing_modules_documenting.rst:253 msgid "``R()`` for cross-references with a heading (added in Ansible 2.10). For example: ``See R(Cisco IOS Platform Guide,ios_platform_options)``. Use the RST anchor for the cross-reference. See :ref:`adding_anchors_rst` for details." msgstr "(Ansible 2.10 に含まれる) 見出しと相互参照用 ``R()`` (例: ``See R(Cisco IOS Platform Guide,ios_platform_options)``)。クロス参照に RST アンカーを使用します。詳細は、:ref:`adding_anchors_rst` を参照してください。" -#: ../../rst/dev_guide/developing_modules_documenting.rst:245 +#: ../../rst/dev_guide/developing_modules_documenting.rst:254 msgid "``M()`` for module names. For example: ``See also M(ansible.builtin.yum) or M(community.general.apt_rpm)``." msgstr "``M()`` モジュール名。たとえば ``See also M(ansible.builtin.yum) or M(community.general.apt_rpm)`` になります。" -#: ../../rst/dev_guide/developing_modules_documenting.rst:247 +#: ../../rst/dev_guide/developing_modules_documenting.rst:256 msgid "There are also some macros which do not create links but we use them to display certain types of content in a uniform way:" msgstr "リンクを作成しないものの、そのマクロを使用して、特定のタイプのコンテンツを統一して表示します。" -#: ../../rst/dev_guide/developing_modules_documenting.rst:250 +#: ../../rst/dev_guide/developing_modules_documenting.rst:259 msgid "``I()`` for option names. For example: ``Required if I(state=present).`` This is italicized in the documentation." msgstr "オプション名の場合は ``I()``。たとえば ``Required if I(state=present).`` です。これは、ドキュメントではイタリック体で示されています。" -#: ../../rst/dev_guide/developing_modules_documenting.rst:252 +#: ../../rst/dev_guide/developing_modules_documenting.rst:261 msgid "``C()`` for files, option values, and inline code. For example: ``If not set the environment variable C(ACME_PASSWORD) will be used.`` or ``Use C(var | foo.bar.my_filter) to transform C(var) into the required format.`` This displays with a mono-space font in the documentation." msgstr "ファイル、オプション値、およびインラインコードの場合は ``C()`` (例 ``If not set the environment variable C(ACME_PASSWORD) will be used.`` または ``Use C(var | foo.bar.my_filter) to transform C(var) into the required format.``)。これは、ドキュメントでは Monospace フォントと表示されます。" -#: ../../rst/dev_guide/developing_modules_documenting.rst:253 +#: ../../rst/dev_guide/developing_modules_documenting.rst:262 msgid "``B()`` currently has no standardized usage. It is displayed in boldface in the documentation." msgstr "現時点で、``B()`` の標準化された使用方法はありません。このドキュメントでは太字で表示されます。" -#: ../../rst/dev_guide/developing_modules_documenting.rst:254 +#: ../../rst/dev_guide/developing_modules_documenting.rst:263 msgid "``HORIZONTALLINE`` is used sparingly as a separator in long descriptions. It becomes a horizontal rule (the ``
`` html tag) in the documentation." msgstr "``HORIZONTALLINE`` は、長い説明では、区切り文字として慎重に使用されており、ドキュメント内の水平ルール (``
`` html タグ) になります。" -#: ../../rst/dev_guide/developing_modules_documenting.rst:258 +#: ../../rst/dev_guide/developing_modules_documenting.rst:267 msgid "For links between modules and documentation within a collection, you can use any of the options above. For links outside of your collection, use ``R()`` if available. Otherwise, use ``U()`` or ``L()`` with full URLs (not relative links). For modules, use ``M()`` with the FQCN or ``ansible.builtin`` as shown in the example. If you are creating your own documentation site, you will need to use the `intersphinx extension `_ to convert ``R()`` and ``M()`` to the correct links." msgstr "コレクション内のモジュールとドキュメント間のリンクについては、上記のオプションのいずれかを使用することができます。コレクション外のリンクについては、利用可能な場合は ``R()`` を使用します。利用できない場合は、(相対リンクではなく) 完全な URL で ``U()`` または ``L()`` を使用します。モジュールの場合は、例のように、FQCN または ``ansible.builtin`` で ``M()`` を使用します。独自のドキュメントサイトを作成する場合は、`intersphinx 表現 `_ を使用して ``R()`` および ``M()`` を正しいリンクに変換する必要があります。" -#: ../../rst/dev_guide/developing_modules_documenting.rst:261 +#: ../../rst/dev_guide/developing_modules_documenting.rst:270 msgid "To refer to a group of modules in a collection, use ``R()``. When a collection is not the right granularity, use ``C(..)``:" msgstr "コレクション内のモジュールのグループを参照するには、``R()`` を使用します。コレクションが適切な粒度ではない場合は、``C(..)`` を使用します。" -#: ../../rst/dev_guide/developing_modules_documenting.rst:263 +#: ../../rst/dev_guide/developing_modules_documenting.rst:272 msgid "``Refer to the R(kubernetes.core collection, plugins_in_kubernetes.core) for information on managing kubernetes clusters.``" msgstr "``Refer to the R(kubernetes.core collection, plugins_in_kubernetes.core) for information on managing kubernetes clusters.``" -#: ../../rst/dev_guide/developing_modules_documenting.rst:264 +#: ../../rst/dev_guide/developing_modules_documenting.rst:273 msgid "``The C(win_*) modules (spread across several collections) allow you to manage various aspects of windows hosts.``" msgstr "``The C(win_*) modules (spread across several collections) allow you to manage various aspects of windows hosts.``" -#: ../../rst/dev_guide/developing_modules_documenting.rst:268 +#: ../../rst/dev_guide/developing_modules_documenting.rst:277 msgid "Because it stands out better, use ``seealso`` for general references over the use of notes or adding links to the description." msgstr "``seealso`` の方が目立つため、一般的な参照にはノートの使用や説明へのリンクよりも、``seealso`` を使用することが推奨されます。" -#: ../../rst/dev_guide/developing_modules_documenting.rst:273 +#: ../../rst/dev_guide/developing_modules_documenting.rst:282 msgid "Documentation fragments" msgstr "ドキュメントフラグメント" -#: ../../rst/dev_guide/developing_modules_documenting.rst:275 +#: ../../rst/dev_guide/developing_modules_documenting.rst:284 msgid "If you are writing multiple related modules, they may share common documentation, such as authentication details, file mode settings, ``notes:`` or ``seealso:`` entries. Rather than duplicate that information in each module's ``DOCUMENTATION`` block, you can save it once as a doc_fragment plugin and use it in each module's documentation. In Ansible, shared documentation fragments are contained in a ``ModuleDocFragment`` class in `lib/ansible/plugins/doc_fragments/ `_ or the equivalent directory in a collection. To include a documentation fragment, add ``extends_documentation_fragment: FRAGMENT_NAME`` in your module documentation. Use the fully qualified collection name for the FRAGMENT_NAME (for example, ``kubernetes.core.k8s_auth_options``)." msgstr "複数の関連モジュールを記述している場合は、認証の詳細やファイルモードの設定、``notes:`` や ``seealso:`` のエントリーなど、共通のドキュメントを共有していることがあります。そのような情報を各モジュールの ``DOCUMENTATION`` ブロックに複製するのではなく、doc_fragment プラグインとして一度保存し、各モジュールのドキュメントで使用することができます。Ansible では、共有ドキュメントフラグメントは、`lib/ansible/plugins/doc_fragments/ `_ の ``ModuleDocFragment`` クラス、またはコレクションの同等のディレクトリーに含まれています。ドキュメントフラグメントを含めるには、モジュールのドキュメントに ``extends_documentation_fragment: FRAGMENT_NAME`` を追加します。FRAGMENT_NAME には、完全修飾されたコレクション名を使用します (例: ``kubernetes.core.k8s_auth_options``)。" -#: ../../rst/dev_guide/developing_modules_documenting.rst:277 +#: ../../rst/dev_guide/developing_modules_documenting.rst:286 msgid "Modules should only use items from a doc fragment if the module will implement all of the interface documented there in a manner that behaves the same as the existing modules which import that fragment. The goal is that items imported from the doc fragment will behave identically when used in another module that imports the doc fragment." msgstr "モジュールがドキュメントフラグメントのアイテムを使用するのは、そのフラグメントをインポートする既存のモジュールと同じように動作して、ドキュメント化されたすべてのインターフェースをモジュールが実装する場合のみです。目標は、ドキュメントフラグメントからインポートされたアイテムが、ドキュメントフラグメントをインポートする別のモジュールで使用された場合と同じように動作することです。" -#: ../../rst/dev_guide/developing_modules_documenting.rst:279 +#: ../../rst/dev_guide/developing_modules_documenting.rst:288 msgid "By default, only the ``DOCUMENTATION`` property from a doc fragment is inserted into the module documentation. It is possible to define additional properties in the doc fragment in order to import only certain parts of a doc fragment or mix and match as appropriate. If a property is defined in both the doc fragment and the module, the module value overrides the doc fragment." msgstr "デフォルトでは、ドキュメントフラグメントの ``DOCUMENTATION`` プロパティーがモジュールのドキュメントに挿入されます。ドキュメントフラグメントの特定の部分のみをインポートするため、または必要に応じて組み合わせて一致させるために、ドキュメントフラグメントに追加のプロパティーを定義することができます。プロパティーがドキュメントフラグメントとモジュールの両方で定義されている場合、モジュール値はドキュメントフラグメントを上書きします。" -#: ../../rst/dev_guide/developing_modules_documenting.rst:281 +#: ../../rst/dev_guide/developing_modules_documenting.rst:290 msgid "Here is an example doc fragment named ``example_fragment.py``:" msgstr "以下は、``example_fragment.py`` という名前のドキュメントフラグメントの例です。" -#: ../../rst/dev_guide/developing_modules_documenting.rst:299 +#: ../../rst/dev_guide/developing_modules_documenting.rst:308 msgid "To insert the contents of ``OTHER`` in a module:" msgstr "``OTHER`` の内容をモジュールに挿入するには、以下を行います。" -#: ../../rst/dev_guide/developing_modules_documenting.rst:305 +#: ../../rst/dev_guide/developing_modules_documenting.rst:314 msgid "Or use both :" msgstr "または、以下の両方を使用してください。" -#: ../../rst/dev_guide/developing_modules_documenting.rst:318 +#: ../../rst/dev_guide/developing_modules_documenting.rst:327 msgid "Since Ansible 2.8, you can have user-supplied doc_fragments by using a ``doc_fragments`` directory adjacent to play or role, just like any other plugin." msgstr "Ansible 2.8 以降、その他のプラグインと同様に、プレイやロールに隣接する ``doc_fragments`` ディレクトリーを使用することで、ユーザーが提供するドキュメントフラグメントを設定できます。" -#: ../../rst/dev_guide/developing_modules_documenting.rst:320 +#: ../../rst/dev_guide/developing_modules_documenting.rst:329 msgid "For example, all AWS modules should include:" msgstr "たとえば、すべての AWS モジュールには以下を含める必要があります。" -#: ../../rst/dev_guide/developing_modules_documenting.rst:328 +#: ../../rst/dev_guide/developing_modules_documenting.rst:337 msgid ":ref:`docfragments_collections` describes how to incorporate documentation fragments in a collection." msgstr "「:ref:`docfragments_collections`」では、コレクションにドキュメントのフラグメントを組み込む方法を説明します。" -#: ../../rst/dev_guide/developing_modules_documenting.rst:333 +#: ../../rst/dev_guide/developing_modules_documenting.rst:342 msgid "EXAMPLES block" msgstr "EXAMPLES ブロック" -#: ../../rst/dev_guide/developing_modules_documenting.rst:335 +#: ../../rst/dev_guide/developing_modules_documenting.rst:344 msgid "After the shebang, the UTF-8 coding, the copyright line, the license section, and the ``DOCUMENTATION`` block comes the ``EXAMPLES`` block. Here you show users how your module works with real-world examples in multi-line plain-text YAML format. The best examples are ready for the user to copy and paste into a playbook. Review and update your examples with every change to your module." msgstr "シバンの後、UTF-8 コーディング、著作権表示、ライセンスセクション、および ``DOCUMENTATION`` ブロックの後に ``EXAMPLES`` ブロックが続きます。ここでは、モジュールが実際の例で複数行のプレーンテキスト YAML 形式でどのように機能するかをユーザーに示します。最良の例は、ユーザーがコピーして Playbook に貼り付ける準備ができています。モジュールに変更を加えるたびに、例を確認して更新してください。" -#: ../../rst/dev_guide/developing_modules_documenting.rst:337 +#: ../../rst/dev_guide/developing_modules_documenting.rst:346 msgid "Per playbook best practices, each example should include a ``name:`` line:" msgstr "Playbook のベストプラクティスに基づき、各例には ``name:`` 行が必要です。" -#: ../../rst/dev_guide/developing_modules_documenting.rst:348 +#: ../../rst/dev_guide/developing_modules_documenting.rst:357 msgid "The ``name:`` line should be capitalized and not include a trailing dot." msgstr "``name:`` 行は大文字にし、末尾のドットは含めないでください。" -#: ../../rst/dev_guide/developing_modules_documenting.rst:350 +#: ../../rst/dev_guide/developing_modules_documenting.rst:359 msgid "Use a fully qualified collection name (FQCN) as a part of the module's name like in the example above. For modules in ``ansible-core``, use the ``ansible.builtin.`` identifier, for example ``ansible.builtin.debug``." msgstr "上記の例のように、モジュール名の一部として完全修飾コレクション名 (FQCN) を使用します。``ansible-core`` のモジュールの場合は、``ansible.builtin.`` 識別子 (たとえば ``ansible.builtin.debug``) を使用します。" -#: ../../rst/dev_guide/developing_modules_documenting.rst:352 +#: ../../rst/dev_guide/developing_modules_documenting.rst:361 msgid "If your examples use boolean options, use yes/no values. Since the documentation generates boolean values as yes/no, having the examples use these values as well makes the module documentation more consistent." msgstr "サンプルでブール値オプションを使用する場合は、yes/no の値を使用します。ドキュメントによりブール値が yes/no として生成されるため、このサンプルではこれらの値が使用されており、モジュールドキュメントの一貫性が保たれます。" -#: ../../rst/dev_guide/developing_modules_documenting.rst:354 +#: ../../rst/dev_guide/developing_modules_documenting.rst:363 msgid "If your module returns facts that are often needed, an example of how to use them can be helpful." msgstr "モジュールが必要なファクトを返すと、その使用方法の例が便利です。" -#: ../../rst/dev_guide/developing_modules_documenting.rst:359 +#: ../../rst/dev_guide/developing_modules_documenting.rst:368 msgid "RETURN block" msgstr "RETURN ブロック" -#: ../../rst/dev_guide/developing_modules_documenting.rst:361 +#: ../../rst/dev_guide/developing_modules_documenting.rst:370 msgid "After the shebang, the UTF-8 coding, the copyright line, the license section, ``DOCUMENTATION`` and ``EXAMPLES`` blocks comes the ``RETURN`` block. This section documents the information the module returns for use by other modules." msgstr "シバン、UTF-8コーディング、著作権表示、ライセンスセクション、``DOCUMENTATION`` ブロックおよび ``EXAMPLES`` ブロックの後に、``RETURN`` ブロックが続きます。このセクションでは、モジュールが他のモジュールで使用するために返す情報を説明します。" -#: ../../rst/dev_guide/developing_modules_documenting.rst:363 +#: ../../rst/dev_guide/developing_modules_documenting.rst:372 msgid "If your module doesn't return anything (apart from the standard returns), this section of your module should read: ``RETURN = r''' # '''`` Otherwise, for each value returned, provide the following fields. All fields are required unless specified otherwise." msgstr "モジュールが何も返さない場合は (標準の戻り値とは異なり)、モジュールのこのセクションは ``RETURN = r''' # '''`` を読み取る必要があります。それ以外の場合は、返された各値に以下のフィールドを指定します。特に指定がない場合はすべてのフィールドが必要になります。" @@ -4377,11 +4457,11 @@ msgstr "モジュールが何も返さない場合は (標準の戻り値とは msgid "return name" msgstr "return name" -#: ../../rst/dev_guide/developing_modules_documenting.rst:367 +#: ../../rst/dev_guide/developing_modules_documenting.rst:376 msgid "Name of the returned field." msgstr "返されるフィールドの名前。" -#: ../../rst/dev_guide/developing_modules_documenting.rst:370 +#: ../../rst/dev_guide/developing_modules_documenting.rst:379 msgid "Detailed description of what this value represents. Capitalized and with trailing dot." msgstr "この値が表す内容の詳細な説明。大文字で、末尾のドットを使用します。" @@ -4389,15 +4469,15 @@ msgstr "この値が表す内容の詳細な説明。大文字で、末尾のド msgid "returned" msgstr "returned" -#: ../../rst/dev_guide/developing_modules_documenting.rst:372 +#: ../../rst/dev_guide/developing_modules_documenting.rst:381 msgid "When this value is returned, such as ``always``, ``changed`` or ``success``. This is a string and can contain any human-readable content." msgstr "``always``、``changed``、``success`` などのこの値が返されると、これは文字列となり、人間が判読できるコンテンツを含めることができます。" -#: ../../rst/dev_guide/developing_modules_documenting.rst:374 +#: ../../rst/dev_guide/developing_modules_documenting.rst:383 msgid "Data type." msgstr "データ型。" -#: ../../rst/dev_guide/developing_modules_documenting.rst:376 +#: ../../rst/dev_guide/developing_modules_documenting.rst:385 msgid "If ``type='list'``, specifies the data type of the list's elements." msgstr "``type='list'`` の場合は、リストの要素のデータタイプを指定します。" @@ -4405,11 +4485,11 @@ msgstr "``type='list'`` の場合は、リストの要素のデータタイプ msgid "sample" msgstr "sample" -#: ../../rst/dev_guide/developing_modules_documenting.rst:378 +#: ../../rst/dev_guide/developing_modules_documenting.rst:387 msgid "One or more examples." msgstr "1 つ以上の例。" -#: ../../rst/dev_guide/developing_modules_documenting.rst:380 +#: ../../rst/dev_guide/developing_modules_documenting.rst:389 msgid "Only needed if this return was extended after initial Ansible release, in other words, this is greater than the top level `version_added` field. This is a string, and not a float, for example, ``version_added: '2.3'``." msgstr "これは、最初の Ansible リリースの後にこの返された場合にのみ必要です。つまり、これは最上位レベルの `version_added` フィールドよりも大きくなります。これは浮動小数点ではなく、文字列です (例: ``version_added: '2.3'``)。" @@ -4417,32 +4497,31 @@ msgstr "これは、最初の Ansible リリースの後にこの返された場 msgid "contains" msgstr "contains" -#: ../../rst/dev_guide/developing_modules_documenting.rst:383 +#: ../../rst/dev_guide/developing_modules_documenting.rst:392 msgid "Optional. To describe nested return values, set ``type: dict``, or ``type: list``/``elements: dict``, or if you really have to, ``type: complex``, and repeat the elements above for each sub-field." msgstr "任意です。ネストされた戻り値を記述するには、``type: dict`` または ``type: list``/``elements: dict`` を設定するか、本当に必要であれば ``type: complex`` を設定し、各サブフィールドに対して上記の要素を繰り返します。" -#: ../../rst/dev_guide/developing_modules_documenting.rst:385 +#: ../../rst/dev_guide/developing_modules_documenting.rst:394 msgid "Here are two example ``RETURN`` sections, one with three simple fields and one with a complex nested field:" msgstr "以下の例は、``RETURN`` セクションを 3 つの単純なフィールドと、複雑なネストされたフィールドを持つ 2 つのセクションです。" -#: ../../rst/dev_guide/developing_modules_documenting.rst:435 +#: ../../rst/dev_guide/developing_modules_documenting.rst:444 msgid "Python imports" msgstr "Python のインポート" -#: ../../rst/dev_guide/developing_modules_documenting.rst:437 +#: ../../rst/dev_guide/developing_modules_documenting.rst:446 msgid "After the shebang, the UTF-8 coding, the copyright line, the license, and the sections for ``DOCUMENTATION``, ``EXAMPLES``, and ``RETURN``, you can finally add the python imports. All modules must use Python imports in the form:" msgstr "シバンの後には、UTF-8 コード行、著作権行、ライセンス、および ``DOCUMENTATION``、``EXAMPLES``、および ``RETURN`` のセクションが最後に python インポートを追加できます。すべてのモジュールは、この形式の Python インポートを使用する必要があります。" -#: ../../rst/dev_guide/developing_modules_documenting.rst:443 +#: ../../rst/dev_guide/developing_modules_documenting.rst:452 msgid "The use of \"wildcard\" imports such as ``from module_utils.basic import *`` is no longer allowed." msgstr "``from module_utils.basic import *`` などの「ワイルドカード」インポートの使用は許可されなくなりました。" -#: ../../rst/dev_guide/developing_modules_documenting.rst:448 -#: ../../rst/dev_guide/testing_documentation.rst:7 +#: ../../rst/dev_guide/developing_modules_documenting.rst:457 msgid "Testing module documentation" msgstr "モジュールドキュメンテーションのテスト" -#: ../../rst/dev_guide/developing_modules_documenting.rst:450 +#: ../../rst/dev_guide/developing_modules_documenting.rst:459 msgid "To test Ansible documentation locally please :ref:`follow instruction`. To test documentation in collections, please see :ref:`build_collection_docsite`." msgstr "Ansible ドキュメントをローカルでテストする方法は、:ref:`の指示に従います。`また、コレクションのドキュメントをテストする場合は、:ref:`build_collection_docsite` を参照してください。" @@ -4599,6 +4678,7 @@ msgid "Create a playbook in any directory: ``$ touch testmod.yml``" msgstr "任意のディレクトリーに Playbook を作成します (``$ touch testmod.yml``)。" #: ../../rst/dev_guide/developing_modules_general.rst:124 +#: ../../rst/dev_guide/developing_modules_general_windows.rst:566 msgid "Add the following to the new playbook file:" msgstr "以下を新しい Playbook ファイルに追加します。" @@ -4674,488 +4754,6 @@ msgstr "謝辞" msgid "Thank you to Thomas Stringer (`@trstringer `_) for contributing source material for this topic." msgstr "このトピックの元となる資料を提供していただいた Thomas Stringer (`@trstringer `_) 氏に感謝の意を示します。" -#: ../../rst/dev_guide/developing_modules_general_aci.rst:5 -msgid "Developing Cisco ACI modules" -msgstr "Cisco ACI モジュールの開発" - -#: ../../rst/dev_guide/developing_modules_general_aci.rst:6 -msgid "This is a brief walk-through of how to create new Cisco ACI modules for Ansible." -msgstr "Ansible 向けに新しい Cisco ACI モジュールを作成する方法に関する簡単なウォークスルーです。" - -#: ../../rst/dev_guide/developing_modules_general_aci.rst:8 -msgid "For more information about Cisco ACI, look at the :ref:`Cisco ACI user guide `." -msgstr "Cisco ACI の詳細は、「:ref:`Cisco ACI ユーザーガイド `」を参照してください。" - -#: ../../rst/dev_guide/developing_modules_general_aci.rst:10 -#: ../../rst/dev_guide/developing_modules_general_windows.rst:13 -msgid "What's covered in this section:" -msgstr "本項で取り上げられている内容:" - -#: ../../rst/dev_guide/developing_modules_general_aci.rst:20 -#: ../../rst/dev_guide/testing_units_modules.rst:14 -msgid "Introduction" -msgstr "はじめに" - -#: ../../rst/dev_guide/developing_modules_general_aci.rst:21 -msgid "The `cisco.aci collection `_ already includes a large number of Cisco ACI modules, however the ACI object model is huge and covering all possible functionality would easily cover more than 1500 individual modules." -msgstr "`cisco.aci collection `_ にはすでに多数の Cisco ACI モジュールが含まれていますが、ACI オブジェクトモデルは大きく、すべての機能に対応するため、1500 以上のモジュールを簡単に対応できます。" - -#: ../../rst/dev_guide/developing_modules_general_aci.rst:23 -msgid "If you need specific functionality, you have 2 options:" -msgstr "特定の機能が必要な場合は、2 つのオプションがあります。" - -#: ../../rst/dev_guide/developing_modules_general_aci.rst:25 -msgid "Learn the ACI object model and use the low-level APIC REST API using the :ref:`aci_rest ` module" -msgstr "ACI オブジェクトモデルを学習し、「:ref:`aci_rest `」モジュールを使用して低レベルの APIC REST API を使用します。" - -#: ../../rst/dev_guide/developing_modules_general_aci.rst:26 -msgid "Write your own dedicated modules, which is actually quite easy" -msgstr "独自の専用モジュールを作成することは、実際には非常に簡単です。" - -#: ../../rst/dev_guide/developing_modules_general_aci.rst:30 -#: ../../rst/dev_guide/developing_modules_general_aci.rst:413 -msgid "`Ansible ACI collection `_" -msgstr "`Ansible ACI collection `_" - -#: ../../rst/dev_guide/developing_modules_general_aci.rst:31 -#: ../../rst/dev_guide/developing_modules_general_aci.rst:414 -msgid "Github repository of the ansible ACI collection" -msgstr "Ansible ACI コレクションの GitHub リポジトリー" - -#: ../../rst/dev_guide/developing_modules_general_aci.rst:32 -#: ../../rst/dev_guide/developing_modules_general_aci.rst:409 -msgid ":ref:`hacking_collections`" -msgstr ":ref:`collections`" - -#: ../../rst/dev_guide/developing_modules_general_aci.rst:33 -msgid "Information on how to contribute to collections." -msgstr "コレクションへの貢献方法に関する情報。" - -#: ../../rst/dev_guide/developing_modules_general_aci.rst:34 -msgid "`ACI Fundamentals: ACI Policy Model `_" -msgstr "`ACI Fundamentals: ACI Policy Model `_" - -#: ../../rst/dev_guide/developing_modules_general_aci.rst:35 -msgid "A good introduction to the ACI object model." -msgstr "ACI オブジェクトモデルの優れた概要" - -#: ../../rst/dev_guide/developing_modules_general_aci.rst:36 -msgid "`APIC Management Information Model reference `_" -msgstr "`APIC Management Information Model reference `_" - -#: ../../rst/dev_guide/developing_modules_general_aci.rst:37 -msgid "Complete reference of the APIC object model." -msgstr "APIC オブジェクトモデルの完全なリファレンス" - -#: ../../rst/dev_guide/developing_modules_general_aci.rst:38 -msgid "`APIC REST API Configuration Guide `_" -msgstr "`APIC REST API Configuration Guide `_" - -#: ../../rst/dev_guide/developing_modules_general_aci.rst:39 -msgid "Detailed guide on how the APIC REST API is designed and used, incl. many examples." -msgstr "APIC REST API を設計および使用する方法についての詳細ガイド。多数の例があります。" - -#: ../../rst/dev_guide/developing_modules_general_aci.rst:42 -msgid "So let's look at how a typical ACI module is built up." -msgstr "それでは、典型的な ACI モジュールがどのように構築されるかを見てみましょう。" - -#: ../../rst/dev_guide/developing_modules_general_aci.rst:48 -msgid "ACI module structure" -msgstr "ACI モジュール構造" - -#: ../../rst/dev_guide/developing_modules_general_aci.rst:51 -msgid "Importing objects from Python libraries" -msgstr "Python ライブラリーからのオブジェクトのインポート" - -#: ../../rst/dev_guide/developing_modules_general_aci.rst:52 -msgid "The following imports are standard across ACI modules:" -msgstr "以下のインポートは、ACI モジュール全体で標準のものです。" - -#: ../../rst/dev_guide/developing_modules_general_aci.rst:61 -msgid "Defining the argument spec" -msgstr "引数仕様の定義" - -#: ../../rst/dev_guide/developing_modules_general_aci.rst:62 -msgid "The first line adds the standard connection parameters to the module. After that, the next section will update the ``argument_spec`` dictionary with module-specific parameters. The module-specific parameters should include:" -msgstr "最初の行は、標準の接続パラメーターをモジュールに追加します。その後、以下のセクションはモジュール固有のパラメーターで ``argument_spec`` ディクショナリーを更新します。モジュール固有のパラメーターには以下が含まれます。" - -#: ../../rst/dev_guide/developing_modules_general_aci.rst:64 -msgid "the object_id (usually the name)" -msgstr "object_id (通常は名前)" - -#: ../../rst/dev_guide/developing_modules_general_aci.rst:65 -msgid "the configurable properties of the object" -msgstr "オブジェクトの設定可能なプロパティー" - -#: ../../rst/dev_guide/developing_modules_general_aci.rst:66 -msgid "the parent object IDs (all parents up to the root)" -msgstr "親オブジェクト ID (ルートまでのすべての親)" - -#: ../../rst/dev_guide/developing_modules_general_aci.rst:67 -msgid "only child classes that are a 1-to-1 relationship (1-to-many/many-to-many require their own module to properly manage)" -msgstr "1 対 1 の関係である子クラスのみ (1 対多/多対多では、独自のモジュールを適切に管理する必要があります)" - -#: ../../rst/dev_guide/developing_modules_general_aci.rst:68 -msgid "the state" -msgstr "状態" - -#: ../../rst/dev_guide/developing_modules_general_aci.rst:70 -msgid "``state: absent`` to ensure object does not exist" -msgstr "``state: absent``: オブジェクトが存在しないことを確認する" - -#: ../../rst/dev_guide/developing_modules_general_aci.rst:71 -msgid "``state: present`` to ensure the object and configs exist; this is also the default" -msgstr "``state: present``: オブジェクトと設定が存在することを確認する (デフォルト)" - -#: ../../rst/dev_guide/developing_modules_general_aci.rst:72 -msgid "``state: query`` to retrieve information about objects in the class" -msgstr "``state: query``: クラスのオブジェクトに関する情報を取得する" - -#: ../../rst/dev_guide/developing_modules_general_aci.rst:90 -msgid "Do not provide default values for configuration arguments. Default values could cause unintended changes to the object." -msgstr "設定引数のデフォルト値を指定しないでください。デフォルト値により、オブジェクトへの意図しない変更が生じる可能性があります。" - -#: ../../rst/dev_guide/developing_modules_general_aci.rst:93 -msgid "Using the AnsibleModule object" -msgstr "AnsibleModule オブジェクトの使用" - -#: ../../rst/dev_guide/developing_modules_general_aci.rst:94 -msgid "The following section creates an AnsibleModule instance. The module should support check-mode, so we pass the ``argument_spec`` and ``supports_check_mode`` arguments. Since these modules support querying the APIC for all objects of the module's class, the object/parent IDs should only be required if ``state: absent`` or ``state: present``." -msgstr "次のセクションでは、AnsibleModule インスタンスを作成します。モジュールはチェックモードをサポートする必要があるため、``argument_spec`` 引数および ``supports_check_mode`` 引数を渡します。これらのモジュールは、モジュールのクラスのすべてのオブジェクトに対する APIC のクエリーをサポートするため、オブジェクト/親 ID は、``state: absent`` または ``state: present`` の場合に限り必要になります。" - -#: ../../rst/dev_guide/developing_modules_general_aci.rst:109 -msgid "Mapping variable definition" -msgstr "マッピング変数定義" - -#: ../../rst/dev_guide/developing_modules_general_aci.rst:110 -msgid "Once the AnsibleModule object has been initiated, the necessary parameter values should be extracted from ``params`` and any data validation should be done. Usually the only params that need to be extracted are those related to the ACI object configuration and its child configuration. If you have integer objects that you would like to validate, then the validation should be done here, and the ``ACIModule.payload()`` method will handle the string conversion." -msgstr "AnsibleModule オブジェクトが開始されたら、必要なパラメーターの値を ``params`` から抽出し、データの検証を行う必要があります。通常、抽出する必要がある唯一のパラメーターが ACI オブジェクトの設定およびその子設定に関連するパラメーターのみとなります。検証する整数オブジェクトがある場合は、検証を行う必要があります。データ検証はここで行う必要があり、``ACIModule.payload()`` メソッドは変換文字列を処理する必要があります。" - -#: ../../rst/dev_guide/developing_modules_general_aci.rst:126 -msgid "Using the ACIModule object" -msgstr "ACIModule オブジェクトの使用" - -#: ../../rst/dev_guide/developing_modules_general_aci.rst:127 -msgid "The ACIModule class handles most of the logic for the ACI modules. The ACIModule extends functionality to the AnsibleModule object, so the module instance must be passed into the class instantiation." -msgstr "ACIModule クラスは、ACI モジュールのロジックの大部分を処理します。ACIModule は機能を AnsibleModule オブジェクトに拡張するため、モジュールインスタンスをクラスのインスタンス化に渡す必要があります。" - -#: ../../rst/dev_guide/developing_modules_general_aci.rst:133 -msgid "The ACIModule has six main methods that are used by the modules:" -msgstr "ACIModule には、モジュールによって使用される 6 つの主なメソッドがあります。" - -#: ../../rst/dev_guide/developing_modules_general_aci.rst:135 -msgid "construct_url" -msgstr "construct_url" - -#: ../../rst/dev_guide/developing_modules_general_aci.rst:136 -msgid "get_existing" -msgstr "get_existing" - -#: ../../rst/dev_guide/developing_modules_general_aci.rst:137 -msgid "payload" -msgstr "payload" - -#: ../../rst/dev_guide/developing_modules_general_aci.rst:138 -msgid "get_diff" -msgstr "get_diff" - -#: ../../rst/dev_guide/developing_modules_general_aci.rst:139 -msgid "post_config" -msgstr "post_config" - -#: ../../rst/dev_guide/developing_modules_general_aci.rst:140 -msgid "delete_config" -msgstr "delete_config" - -#: ../../rst/dev_guide/developing_modules_general_aci.rst:142 -msgid "The first two methods are used regardless of what value is passed to the ``state`` parameter." -msgstr "最初の 2 つのメソッドは、``state`` パラメーターに渡される値に関係なく使用されます。" - -#: ../../rst/dev_guide/developing_modules_general_aci.rst:145 -msgid "Constructing URLs" -msgstr "URL の構築" - -#: ../../rst/dev_guide/developing_modules_general_aci.rst:146 -msgid "The ``construct_url()`` method is used to dynamically build the appropriate URL to interact with the object, and the appropriate filter string that should be appended to the URL to filter the results." -msgstr "``construct_url()`` メソッドは、オブジェクトと対話するために適切な URL と、URL に追加して結果にフィルターを設定する適切なフィルター文字列を動的に構築するのに使用されます。" - -#: ../../rst/dev_guide/developing_modules_general_aci.rst:148 -msgid "When the ``state`` is not ``query``, the URL is the base URL to access the APIC plus the distinguished name to access the object. The filter string will restrict the returned data to just the configuration data." -msgstr "``state`` が ``query`` でない場合、URL は APIC にアクセスするベース URL と、オブジェクトにアクセスするための識別名です。フィルター文字列は返されたデータを設定データにのみ制限します。" - -#: ../../rst/dev_guide/developing_modules_general_aci.rst:149 -msgid "When ``state`` is ``query``, the URL and filter string used depends on what parameters are passed to the object. This method handles the complexity so that it is easier to add new modules and so that all modules are consistent in what type of data is returned." -msgstr "``state`` が ``query`` される場合、使用される URL およびフィルター文字列は、オブジェクトに渡されるパラメーターによって異なります。この方法は複雑性を処理するため、新しいモジュールの追加が容易になります。また、すべてのモジュールがどのタイプのデータを返すかに一貫性を持たせるようにします。" - -#: ../../rst/dev_guide/developing_modules_general_aci.rst:151 -msgid "Our design goal is to take all ID parameters that have values, and return the most specific data possible. If you do not supply any ID parameters to the task, then all objects of the class will be returned. If your task does consist of ID parameters sed, then the data for the specific object is returned. If a partial set of ID parameters are passed, then the module will use the IDs that are passed to build the URL and filter strings appropriately." -msgstr "この設計の目的は、値があるすべての ID パラメーターを取り、最も具体的なデータを返すことです。ID パラメーターをタスクに指定しないと、クラスのすべてのオブジェクトが返されます。タスクが ID パラメーター sed で構成されている場合は、特定のオブジェクトのデータが返されます。ID パラメーターの一部が渡されると、モジュールは URL およびフィルター文字列を適切にビルドするために渡された ID を使用します。" - -#: ../../rst/dev_guide/developing_modules_general_aci.rst:153 -msgid "The ``construct_url()`` method takes 2 required arguments:" -msgstr "``construct_url()`` メソッドは、必要な引数を 2 つ取ります。" - -#: ../../rst/dev_guide/developing_modules_general_aci.rst:155 -msgid "**self** - passed automatically with the class instance" -msgstr "**self** - クラスインスタンスで自動的に渡されます。" - -#: ../../rst/dev_guide/developing_modules_general_aci.rst:156 -msgid "**root_class** - A dictionary consisting of ``aci_class``, ``aci_rn``, ``target_filter``, and ``module_object`` keys" -msgstr "**root_class**: ``aci_class`` キー、``aci_rn`` キー、``target_filter`` キー、および ``module_object`` キーで構成されるディクショナリー" - -#: ../../rst/dev_guide/developing_modules_general_aci.rst:158 -msgid "**aci_class**: The name of the class used by the APIC, for example ``fvTenant``" -msgstr "**aci_class**: APIC が使用するクラス名 (例: ``fvTenant``)" - -#: ../../rst/dev_guide/developing_modules_general_aci.rst:160 -msgid "**aci_rn**: The relative name of the object, for example ``tn-ACME``" -msgstr "**aci_rn**: オブジェクトの相対名 (例: ``tn-ACME``)" - -#: ../../rst/dev_guide/developing_modules_general_aci.rst:162 -msgid "**target_filter**: A dictionary with key-value pairs that make up the query string for selecting a subset of entries, for example ``{'name': 'ACME'}``" -msgstr "**target_filter**: エントリーのサブセットを選択するクエリー文字列を構成するキーと値のペアを持つディクショナリー (例: ``{'name': 'ACME'}``)" - -#: ../../rst/dev_guide/developing_modules_general_aci.rst:164 -msgid "**module_object**: The particular object for this class, for example ``ACME``" -msgstr "**module_object**: このクラスの特定のオブジェクト (例: ``ACME``)" - -#: ../../rst/dev_guide/developing_modules_general_aci.rst:166 -#: ../../rst/dev_guide/developing_program_flow_modules.rst:599 -#: ../../rst/dev_guide/developing_program_flow_modules.rst:638 -#: ../../rst/dev_guide/developing_program_flow_modules.rst:652 -#: ../../rst/dev_guide/developing_program_flow_modules.rst:752 -#: ../../rst/dev_guide/developing_program_flow_modules.rst:769 -#: ../../rst/dev_guide/developing_program_flow_modules.rst:783 -#: ../../rst/dev_guide/developing_program_flow_modules.rst:810 -#: ../../rst/dev_guide/developing_program_flow_modules.rst:827 -#: ../../rst/dev_guide/testing_units_modules.rst:90 -#: ../../rst/dev_guide/testing_units_modules.rst:109 -msgid "Example:" -msgstr "例: " - -#: ../../rst/dev_guide/developing_modules_general_aci.rst:179 -msgid "Some modules, like ``aci_tenant``, are the root class and so they would not need to pass any additional arguments to the method." -msgstr "``aci_tenant`` などの一部のモジュールは root クラスであるため、メソッドに追加の引数を渡す必要はありません。" - -#: ../../rst/dev_guide/developing_modules_general_aci.rst:181 -msgid "The ``construct_url()`` method takes 4 optional arguments, the first three imitate the root class as described above, but are for child objects:" -msgstr "``construct_url()`` メソッドは、4 つの任意の引数を取ります。最初の 3 つの引数が上記のように root クラスを模倣しますが、これは子オブジェクト用です。" - -#: ../../rst/dev_guide/developing_modules_general_aci.rst:183 -msgid "subclass_1 - A dictionary consisting of ``aci_class``, ``aci_rn``, ``target_filter``, and ``module_object`` keys" -msgstr "subclass_1 - ``aci_class`` キー、``aci_rn`` キー、``target_filter`` キー、および ``module_object`` キーで構成されるディクショナリー" - -#: ../../rst/dev_guide/developing_modules_general_aci.rst:185 -msgid "Example: Application Profile Class (AP)" -msgstr "例: Application Profile Class (AP)" - -#: ../../rst/dev_guide/developing_modules_general_aci.rst:187 -msgid "subclass_2 - A dictionary consisting of ``aci_class``, ``aci_rn``, ``target_filter``, and ``module_object`` keys" -msgstr "subclass_2 - ``aci_class`` キー、``aci_rn`` キー、``target_filter`` キー、および ``module_object`` キーで構成されるディクショナリー" - -#: ../../rst/dev_guide/developing_modules_general_aci.rst:189 -msgid "Example: End Point Group (EPG)" -msgstr "例: エンドポイントグループ (EPG)" - -#: ../../rst/dev_guide/developing_modules_general_aci.rst:191 -msgid "subclass_3 - A dictionary consisting of ``aci_class``, ``aci_rn``, ``target_filter``, and ``module_object`` keys" -msgstr "subclass_3 - ``aci_class`` キー、``aci_rn`` キー、``target_filter`` キー、および ``module_object`` キーで構成されるディクショナリー" - -#: ../../rst/dev_guide/developing_modules_general_aci.rst:193 -msgid "Example: Binding a Contract to an EPG" -msgstr "例: EPG への契約のバインド" - -#: ../../rst/dev_guide/developing_modules_general_aci.rst:195 -msgid "child_classes - The list of APIC names for the child classes supported by the modules." -msgstr "child_classes - モジュールがサポートする子クラスの APIC 名のリスト" - -#: ../../rst/dev_guide/developing_modules_general_aci.rst:197 -msgid "This is a list, even if it is a list of one" -msgstr "1 つのリストであっても、これはリストです。" - -#: ../../rst/dev_guide/developing_modules_general_aci.rst:198 -msgid "These are the unfriendly names used by the APIC" -msgstr "これらは、APIC が使用する分かりにくい名前です。" - -#: ../../rst/dev_guide/developing_modules_general_aci.rst:199 -msgid "These are used to limit the returned child_classes when possible" -msgstr "可能な場合は、返された child_classes を制限するのに使用されます。" - -#: ../../rst/dev_guide/developing_modules_general_aci.rst:200 -msgid "Example: ``child_classes=['fvRsBDSubnetToProfile', 'fvRsNdPfxPol']``" -msgstr "例: ``child_classes=['fvRsBDSubnetToProfile', 'fvRsNdPfxPol']``" - -#: ../../rst/dev_guide/developing_modules_general_aci.rst:202 -msgid "Sometimes the APIC will require special characters ([, ], and -) or will use object metadata in the name (\"vlanns\" for VLAN pools); the module should handle adding special characters or joining of multiple parameters in order to keep expected inputs simple." -msgstr "APIC は、特殊文字 ([, ]、および -) を要求したり、名前にオブジェクトのメタデータ (「VLAN」プールの場合は「vlanns」) を使用したりすることがあります。モジュールは、予想される入力の単純さに保つために、特殊文字の追加または複数のパラメーターの結合を処理する必要があります。" - -#: ../../rst/dev_guide/developing_modules_general_aci.rst:205 -msgid "Getting the existing configuration" -msgstr "既存設定の取得" - -#: ../../rst/dev_guide/developing_modules_general_aci.rst:206 -msgid "Once the URL and filter string have been built, the module is ready to retrieve the existing configuration for the object:" -msgstr "URL およびフィルター文字列が構築されると、モジュールはオブジェクトの既存の設定を取得できるようになります。" - -#: ../../rst/dev_guide/developing_modules_general_aci.rst:208 -msgid "``state: present`` retrieves the configuration to use as a comparison against what was entered in the task. All values that are different than the existing values will be updated." -msgstr "``state: present`` は、タスクに入力した値と比較として使用する設定を取得します。既存の値とは異なる値はすべて更新されます。" - -#: ../../rst/dev_guide/developing_modules_general_aci.rst:209 -msgid "``state: absent`` uses the existing configuration to see if the item exists and needs to be deleted." -msgstr "``state: absent`` は、既存の設定を使用して項目が存在し、削除する必要があるかどうかを確認します。" - -#: ../../rst/dev_guide/developing_modules_general_aci.rst:210 -msgid "``state: query`` uses this to perform the query for the task and report back the existing data." -msgstr "``state: query`` は、これを使用してタスクのクエリーを実行し、既存のデータを報告します。" - -#: ../../rst/dev_guide/developing_modules_general_aci.rst:218 -msgid "When state is present" -msgstr "state が present の場合" - -#: ../../rst/dev_guide/developing_modules_general_aci.rst:219 -msgid "When ``state: present``, the module needs to perform a diff against the existing configuration and the task entries. If any value needs to be updated, then the module will make a POST request with only the items that need to be updated. Some modules have children that are in a 1-to-1 relationship with another object; for these cases, the module can be used to manage the child objects." -msgstr "``state: present`` の場合、モジュールは既存の設定とタスクエントリーに対して diff を実行する必要があります。値を更新する必要がある場合、モジュールは更新が必要なアイテムのみが含まれる POST 要求を行います。モジュールによっては、別のオブジェクトと 1 対 1 の関係にある子があります。これらの場合、モジュールは子オブジェクトを管理するために使用できます。" - -#: ../../rst/dev_guide/developing_modules_general_aci.rst:222 -msgid "Building the ACI payload" -msgstr "ACI ペイロードの構築" - -#: ../../rst/dev_guide/developing_modules_general_aci.rst:223 -msgid "The ``aci.payload()`` method is used to build a dictionary of the proposed object configuration. All parameters that were not provided a value in the task will be removed from the dictionary (both for the object and its children). Any parameter that does have a value will be converted to a string and added to the final dictionary object that will be used for comparison against the existing configuration." -msgstr "``aci.payload()`` メソッドは、提案されたオブジェクト設定のディクショナリー構築に使用されます。タスクで値が提供されていないパラメーターはすべてディクショナリー (オブジェクトとその子の両方) から削除されます。値のあるパラメーターは文字列に変換され、既存の設定との比較に使用される最終ディクショナリーオブジェクトに追加されます。" - -#: ../../rst/dev_guide/developing_modules_general_aci.rst:225 -msgid "The ``aci.payload()`` method takes two required arguments and 1 optional argument, depending on if the module manages child objects." -msgstr "``aci.payload()`` メソッドは、モジュールが子オブジェクトを管理するかどうかに応じて、2 つの必須引数と、1 つの任意の引数を取ります。" - -#: ../../rst/dev_guide/developing_modules_general_aci.rst:227 -msgid "``aci_class`` is the APIC name for the object's class, for example ``aci_class='fvBD'``" -msgstr "``aci_class`` は、オブジェクトのクラスの APIC 名です。たとえば、``aci_class='fvBD'`` になります。" - -#: ../../rst/dev_guide/developing_modules_general_aci.rst:228 -msgid "``class_config`` is the appropriate dictionary to be used as the payload for the POST request" -msgstr "``class_config`` は POST 要求のペイロードとして使用する適切なディクショナリーです。" - -#: ../../rst/dev_guide/developing_modules_general_aci.rst:230 -msgid "The keys should match the names used by the APIC." -msgstr "キーは APIC で使用される名前と一致する必要があります。" - -#: ../../rst/dev_guide/developing_modules_general_aci.rst:231 -msgid "The values should be the corresponding value in ``module.params``; these are the variables defined above" -msgstr "``module.params`` の対応する値でなければなりません。これらは上で定義される変数です" - -#: ../../rst/dev_guide/developing_modules_general_aci.rst:233 -msgid "``child_configs`` is optional, and is a list of child config dictionaries." -msgstr "``child_configs`` は任意であり、子設定のディクショナリーの一覧です。" - -#: ../../rst/dev_guide/developing_modules_general_aci.rst:235 -msgid "The child configs include the full child object dictionary, not just the attributes configuration portion." -msgstr "子設定には、属性設定部分だけでなく、完全な子オブジェクトディクショナリーが含まれます。" - -#: ../../rst/dev_guide/developing_modules_general_aci.rst:236 -msgid "The configuration portion is built the same way as the object." -msgstr "設定部分は、オブジェクトと同じ方法で構築されます。" - -#: ../../rst/dev_guide/developing_modules_general_aci.rst:260 -msgid "Performing the request" -msgstr "要求の実行" - -#: ../../rst/dev_guide/developing_modules_general_aci.rst:261 -msgid "The ``get_diff()`` method is used to perform the diff, and takes only one required argument, ``aci_class``. Example: ``aci.get_diff(aci_class='fvBD')``" -msgstr "``get_diff()`` メソッドは diff を実行し、必要な引数 ``aci_class`` を 1 つだけ取ります。たとえば ``aci.get_diff(aci_class='fvBD')`` です。" - -#: ../../rst/dev_guide/developing_modules_general_aci.rst:264 -msgid "The ``post_config()`` method is used to make the POST request to the APIC if needed. This method doesn't take any arguments and handles check mode. Example: ``aci.post_config()``" -msgstr "``post_config()`` メソッドは、必要に応じて APIC への POST 要求を行うために使用されます。このメソッドは引数を受け付けず、チェックモードを処理します。以下に例を示します。たとえば、``aci.post_config()`` になります。" - -#: ../../rst/dev_guide/developing_modules_general_aci.rst:269 -msgid "Example code" -msgstr "サンプルコード" - -#: ../../rst/dev_guide/developing_modules_general_aci.rst:299 -msgid "When state is absent" -msgstr "state が absent の場合" - -#: ../../rst/dev_guide/developing_modules_general_aci.rst:300 -msgid "If the task sets the state to absent, then the ``delete_config()`` method is all that is needed. This method does not take any arguments, and handles check mode." -msgstr "タスクが state を absent に設定すると、``delete_config()`` メソッドのみが必要になります。このメソッドは引数を取らず、チェックモードを処理します。" - -#: ../../rst/dev_guide/developing_modules_general_aci.rst:309 -msgid "Exiting the module" -msgstr "モジュールの終了" - -#: ../../rst/dev_guide/developing_modules_general_aci.rst:310 -msgid "To have the module exit, call the ACIModule method ``exit_json()``. This method automatically takes care of returning the common return values for you." -msgstr "モジュールを終了するには、ACIModule メソッド ``exit_json()`` を呼び出します。このメソッドは、一般的な戻り値を返すことを自動的に行います。" - -#: ../../rst/dev_guide/developing_modules_general_aci.rst:323 -msgid "Testing ACI library functions" -msgstr "ACI ライブラリー関数のテスト" - -#: ../../rst/dev_guide/developing_modules_general_aci.rst:324 -msgid "You can test your ``construct_url()`` and ``payload()`` arguments without accessing APIC hardware by using the following python script:" -msgstr "以下の python スクリプトを使用して、APIC ハードウェアにアクセスせずに ``construct_url()`` 引数および ``payload()`` 引数をテストすることができます。" - -#: ../../rst/dev_guide/developing_modules_general_aci.rst:383 -msgid "This will result in:" -msgstr "これにより、以下が生成されます。" - -#: ../../rst/dev_guide/developing_modules_general_aci.rst:397 -msgid "Testing for sanity checks" -msgstr "健全性チェックのテスト" - -#: ../../rst/dev_guide/developing_modules_general_aci.rst:398 -msgid "For legacy versions of ansible, you can run from your fork something like:" -msgstr "Ansible のレガシーバージョンでは、次のようなフォークから実行できます。" - -#: ../../rst/dev_guide/developing_modules_general_aci.rst:404 -msgid "Meanwhile, the ACI modules have moved into a collection. Please refer to the links below, which provide detailed guidance how to setup your environment and test the collection." -msgstr "ACI モジュールはコレクションに移動しました。以下のリンクを参照してください。環境を設定してコレクションをテストする方法の詳細なガイダンスが記載されています。" - -#: ../../rst/dev_guide/developing_modules_general_aci.rst:410 -msgid "Information how to setup your environment to contribute to collections" -msgstr "環境を設定してコレクションに貢献する方法" - -#: ../../rst/dev_guide/developing_modules_general_aci.rst:411 -#: ../../rst/dev_guide/testing.rst:33 -msgid ":ref:`testing_sanity`" -msgstr ":ref:`testing_sanity`" - -#: ../../rst/dev_guide/developing_modules_general_aci.rst:412 -msgid "Information on how to build sanity tests." -msgstr "健全性テストを構築する方法に関する情報" - -#: ../../rst/dev_guide/developing_modules_general_aci.rst:418 -msgid "Testing ACI integration tests" -msgstr "ACI 統合テストのテスト" - -#: ../../rst/dev_guide/developing_modules_general_aci.rst:419 -#: ../../rst/dev_guide/developing_modules_general_aci.rst:449 -msgid "You can run this:" -msgstr "以下を実行できます。" - -#: ../../rst/dev_guide/developing_modules_general_aci.rst:425 -msgid "You may need to add ``--python 2.7`` or ``--python 3.6`` in order to use the correct python version for performing tests." -msgstr "テストの実行に適切な python バージョンを使用するには、``--python 2.7`` または ``--python 3.6`` を追加しないといけない場合があります。" - -#: ../../rst/dev_guide/developing_modules_general_aci.rst:427 -msgid "You may want to edit the used inventory at *test/integration/inventory.networking* and add something like:" -msgstr "*test/integration/inventory.networking* で使用されたインベントリーを編集し、以下のように追加することもできます。" - -#: ../../rst/dev_guide/developing_modules_general_aci.rst:443 -#: ../../rst/dev_guide/testing.rst:37 -msgid ":ref:`testing_integration`" -msgstr ":ref:`testing_integration`" - -#: ../../rst/dev_guide/developing_modules_general_aci.rst:444 -msgid "Information on how to build integration tests." -msgstr "統合テストの構築方法に関する情報。" - -#: ../../rst/dev_guide/developing_modules_general_aci.rst:448 -msgid "Testing for test coverage" -msgstr "テストカバレージのテスト" - #: ../../rst/dev_guide/developing_modules_general_windows.rst:5 msgid "Windows module development walkthrough" msgstr "Windows モジュール開発ウォークスルー" @@ -5168,6 +4766,10 @@ msgstr "本セクションでは、Ansible Windows モジュールの開発、 msgid "Because Windows modules are written in Powershell and need to be run on a Windows host, this guide differs from the usual development walkthrough guide." msgstr "Windows モジュールは Powershell で書かれており、Windows ホスト上で実行する必要があるため、このガイドは通常の開発ウォークスルーガイドとは異なります。" +#: ../../rst/dev_guide/developing_modules_general_windows.rst:13 +msgid "What's covered in this section:" +msgstr "本項で取り上げられている内容:" + #: ../../rst/dev_guide/developing_modules_general_windows.rst:20 msgid "Windows environment setup" msgstr "Windows 環境の設定" @@ -5235,11 +4837,11 @@ msgstr "`jborean93/WindowsServer2016 `_" -msgstr "`jborean93/WindowsServer2016 `_" +msgstr "`jborean93/WindowsServer2019 `_" #: ../../rst/dev_guide/developing_modules_general_windows.rst:91 msgid "`jborean93/WindowsServer2022 `_" -msgstr "`jborean93/WindowsServer2012R2 `_" +msgstr "`jborean93/WindowsServer2022 `_" #: ../../rst/dev_guide/developing_modules_general_windows.rst:93 msgid "When the host is online, it can accessible by RDP on ``127.0.0.1:3389`` but the port may differ depending if there was a conflict. To get rid of the host, run ``vagrant destroy --force`` and Vagrant will automatically remove the VM and any other files associated with that VM." @@ -5370,8 +4972,8 @@ msgid "Avoid using PSCustomObjects unless necessary" msgstr "必要な場合を除き PSCustomObject は使用しないでください。" #: ../../rst/dev_guide/developing_modules_general_windows.rst:171 -msgid "Look for common functions in ``./lib/ansible/module_utils/powershell/`` and use the code there instead of duplicating work. These can be imported by adding the line ``#Requires -Module *`` where * is the filename to import, and will be automatically included with the module code sent to the Windows target when run via Ansible" -msgstr "重複する作業を行わないように、``./lib/ansible/module_utils/powershell/`` にある共通の関数を探して、そこにあるコードを使用してください。これらの関数は ``#Requires -Module *`` という行を追加することでインポートすることができます。* はインポートするファイル名で、Ansible を介して実行する場合に、自動的に Windows ターゲットに送信されたモジュールコードが含まれています。" +msgid "Look for common functions in ``./lib/ansible/module_utils/powershell/`` and use the code there instead of duplicating work. These can be imported by adding the line ``#Requires -Module *`` where * is the filename to import, and will be automatically included with the module code sent to the Windows target when run through Ansible" +msgstr "重複する作業を行わないように、``./lib/ansible/module_utils/powershell/`` にある共通の関数を探して、そこにあるコードを使用してください。これらの関数は ``#Requires -Module *`` という行を追加することでインポートすることができます。* はインポートするファイル名で、Ansible を介して実行する場合に、Windows ターゲットに送信されたモジュールコードが自動的に含まれています。" #: ../../rst/dev_guide/developing_modules_general_windows.rst:172 msgid "As well as PowerShell module utils, C# module utils are stored in ``./lib/ansible/module_utils/csharp/`` and are automatically imported in a module execution if the line ``#AnsibleRequires -CSharpUtil *`` is present" @@ -5403,7 +5005,7 @@ msgstr "コマンドレットで名前付きパラメーターを使用します #: ../../rst/dev_guide/developing_modules_general_windows.rst:180 msgid "A very basic Powershell module `win_environment `_ incorporates best practices for Powershell modules. It demonstrates how to implement check-mode and diff-support, and also shows a warning to the user when a specific condition is met." -msgstr "非常に基本的な Powershell モジュール `win_environment `_ が、Powershell モジュールのベストプラクティスに組み込まれています。これは、check-mode および diff-support を実装する方法を示し、特定の条件が満たされるとユーザーに警告を表示します。" +msgstr "非常に基本的な Powershell モジュール `win_environment `_ が、Powershell モジュールのベストプラクティスを組み込んでいます。これは、check-mode および diff-support を実装する方法を示し、特定の条件が満たされるとユーザーに警告を表示します。" #: ../../rst/dev_guide/developing_modules_general_windows.rst:182 msgid "A slightly more advanced module is `win_uri `_ which additionally shows how to use different parameter types (bool, str, int, list, dict, path) and a selection of choices for parameters, how to fail a module and how to handle exceptions." @@ -5770,222 +5372,218 @@ msgid "C# module utilities can also be stored outside of the standard Ansible di msgstr "C# モジュールユーティリティーは、カスタムモジュールで使用するための標準の Ansible ディストリビューション外にも保存できます。PowerShellutils と同様、``module_utils`` ディレクトリーに格納され、ファイル名は拡張子 ``.cs`` で終わり、``Ansible.`` で始まる、ユーティリティーで定義された名前空間の後に名前を指定する必要があります。" #: ../../rst/dev_guide/developing_modules_general_windows.rst:413 -msgid "The below example is a role structure that contains two PowerShell custom module_utils called ``Ansible.ModuleUtils.ModuleUtil1``, ``Ansible.ModuleUtils.ModuleUtil2``, and a C# util containing the namespace ``Ansible.CustomUtil``::" -msgstr "次の例は、呼び出された 2 つの PowerShell のカスタムモジュールユーティリティー (``Ansible.ModuleUtils.ModuleUtil1``、``Ansible.ModuleUtils.ModuleUtil2``、および名前空間 ``Ansible.CustomUtil`` を含む C# ユーティリティー) を含むロール構造です。" +msgid "The below example is a role structure that contains two PowerShell custom module_utils called ``Ansible.ModuleUtils.ModuleUtil1``, ``Ansible.ModuleUtils.ModuleUtil2``, and a C# util containing the namespace ``Ansible.CustomUtil``:" +msgstr "次の例は、呼び出された 2 つの PowerShell のカスタム module_utils (``Ansible.ModuleUtils.ModuleUtil1``、``Ansible.ModuleUtils.ModuleUtil2``、および名前空間 ``Ansible.CustomUtil`` を含む C# ユーティリティー) を含むロール構造です。" -#: ../../rst/dev_guide/developing_modules_general_windows.rst:428 +#: ../../rst/dev_guide/developing_modules_general_windows.rst:430 msgid "Each PowerShell module_util must contain at least one function that has been exported with ``Export-ModuleMember`` at the end of the file. For example" msgstr "PowerShell の各モジュールユーティリティーには、ファイルの終わりに ``Export-ModuleMember`` でエクスポートされた関数が少なくとも 1 つ含まれている必要があります。以下に例を示します。" -#: ../../rst/dev_guide/developing_modules_general_windows.rst:437 +#: ../../rst/dev_guide/developing_modules_general_windows.rst:439 msgid "Exposing shared module options" msgstr "共有モジュールオプションの公開" -#: ../../rst/dev_guide/developing_modules_general_windows.rst:439 +#: ../../rst/dev_guide/developing_modules_general_windows.rst:441 msgid "PowerShell module utils can easily expose common module options that a module can use when building its argument spec. This allows common features to be stored and maintained in one location and have those features used by multiple modules with minimal effort. Any new features or bugfixes added to one of these utils are then automatically used by the various modules that call that util." msgstr "PowerShell モジュールユーティリティーは、引数仕様を構築する際にモジュールが使用できる共通のモジュールオプションを簡単に公開できます。これにより、共通の機能は 1 つの場所に保存および維持でき、最小限の作業で複数のモジュールによって使用される機能を利用できます。これらのユーティリティーのいずれかに追加された新機能またはバグ修正は、そのユーティリティーのいずれかを呼び出すさまざまなモジュールによって自動的に使用されます。" -#: ../../rst/dev_guide/developing_modules_general_windows.rst:444 +#: ../../rst/dev_guide/developing_modules_general_windows.rst:446 msgid "An example of this would be to have a module util that handles authentication and communication against an API This util can be used by multiple modules to expose a common set of module options like the API endpoint, username, password, timeout, cert validation, and so on without having to add those options to each module spec." msgstr "この例としては、API に対する認証と通信を処理するモジュールユーティリティーがあります。このユーティリティーは、API エンドポイント、ユーザー名、パスワード、タイムアウト、認定検証などの共通のモジュールオプションセットを公開するため、各モジュール仕様にそれらのオプションを追加しなくても、複数のモジュールによって使用できます。" -#: ../../rst/dev_guide/developing_modules_general_windows.rst:448 +#: ../../rst/dev_guide/developing_modules_general_windows.rst:450 msgid "The standard convention for a module util that has a shared argument spec would have" msgstr "共有引数仕様を持つモジュールユーティリティーの標準規則は次のようになります。" -#: ../../rst/dev_guide/developing_modules_general_windows.rst:451 +#: ../../rst/dev_guide/developing_modules_general_windows.rst:453 msgid "A ``Get-Spec`` function that outputs the common spec for a module" msgstr "モジュールの共通の仕様を出力する ``Get-Spec`` 関数" -#: ../../rst/dev_guide/developing_modules_general_windows.rst:451 +#: ../../rst/dev_guide/developing_modules_general_windows.rst:453 msgid "It is highly recommended to make this function name be unique to the module to avoid any conflicts with other utils that can be loaded" msgstr "読み込みできる他のユーティリティーとの競合を避けるために、この関数名をモジュールに固有のものに強く推奨します。" -#: ../../rst/dev_guide/developing_modules_general_windows.rst:452 +#: ../../rst/dev_guide/developing_modules_general_windows.rst:454 msgid "The format of the output spec is a Hashtable in the same format as the ``$spec`` used for normal modules" msgstr "出力仕様の形式は、通常のモジュールに使用される ``$spec`` と同じ形式のハッシュテーブルです。" -#: ../../rst/dev_guide/developing_modules_general_windows.rst:453 +#: ../../rst/dev_guide/developing_modules_general_windows.rst:455 msgid "A function that takes in an ``AnsibleModule`` object called under the ``-Module`` parameter which it can use to get the shared options" msgstr "``-Module`` パラメーター下で呼び出された ``AnsibleModule`` オブジェクトを取り入れた関数。これを使用して共有オプションを取得できます。" -#: ../../rst/dev_guide/developing_modules_general_windows.rst:455 +#: ../../rst/dev_guide/developing_modules_general_windows.rst:457 msgid "Because these options can be shared across various module it is highly recommended to keep the module option names and aliases in the shared spec as specific as they can be. For example do not have a util option called ``password``, rather you should prefix it with a unique name like ``acme_password``." msgstr "これらのオプションは各種モジュール間で共有できるため、モジュールオプション名とエイリアスを、可能な限り具体的な仕様に維持することが高く推奨されます。たとえば、``password`` ユーティリティーオプションがありません。たとえば、``acme_password`` などの一意の名前でプレフィックスを付けるべきではありません。" -#: ../../rst/dev_guide/developing_modules_general_windows.rst:460 +#: ../../rst/dev_guide/developing_modules_general_windows.rst:462 msgid "Failure to have a unique option name or alias can prevent the util being used by module that also use those names or aliases for its own options." msgstr "一意のオプション名またはエイリアスがないと、モジュールがユーティリティーを使用できなくなり、モジュールがそれらの名前またはエイリアスを独自のオプションに使用する可能性があります。" -#: ../../rst/dev_guide/developing_modules_general_windows.rst:463 +#: ../../rst/dev_guide/developing_modules_general_windows.rst:465 msgid "The following is an example module util called ``ServiceAuth.psm1`` in a collection that implements a common way for modules to authentication with a service." msgstr "以下は、コレクションで ``ServiceAuth.psm1`` モジュールユーティリティーの例になります。このモジュールは、サービスを使用した認証に共通の方法を実装します。" -#: ../../rst/dev_guide/developing_modules_general_windows.rst:519 +#: ../../rst/dev_guide/developing_modules_general_windows.rst:521 msgid "For a module to take advantage of this common argument spec it can be set out like" msgstr "モジュールがこの共通の引数仕様を利用できるようにするには、以下のように設定できます。" -#: ../../rst/dev_guide/developing_modules_general_windows.rst:546 +#: ../../rst/dev_guide/developing_modules_general_windows.rst:548 msgid "Options defined in the module spec will always have precedence over a util spec. Any list values under the same key in a util spec will be appended to the module spec for that same key. Dictionary values will add any keys that are missing from the module spec and merge any values that are lists or dictionaries. This is similar to how the doc fragment plugins work when extending module documentation." msgstr "モジュール仕様に定義されているオプションは常にユーティリティー仕様よりも優先されます。ユーティリティー仕様の同じキー下のリスト値は、同じキーのモジュール仕様に追加されます。ディクショナリーの値は、モジュール仕様に不足している鍵を追加し、リストまたはディクショナリーである値をマージします。これは、モジュールドキュメントを拡張するときにドキュメントフラグメントプラグインがどのように機能するかと似ています。" -#: ../../rst/dev_guide/developing_modules_general_windows.rst:551 +#: ../../rst/dev_guide/developing_modules_general_windows.rst:553 msgid "To document these shared util options for a module, create a doc fragment plugin that documents the options implemented by the module util and extend the module docs for every module that implements the util to include that fragment in its docs." msgstr "モジュールのこれらの共有ユーティリティーオプションを文書化するには、モジュールユーティリティーにより実装されたオプションを文書化するドキュメントフラグメントプラグインを作成し、ユーティリティーを実装するすべてのモジュールのモジュールドキュメントを拡張して、そのフラグメントをドキュメントに含めます。" -#: ../../rst/dev_guide/developing_modules_general_windows.rst:557 +#: ../../rst/dev_guide/developing_modules_general_windows.rst:559 msgid "Windows playbook module testing" msgstr "Windows Playbook モジュールのテスト" -#: ../../rst/dev_guide/developing_modules_general_windows.rst:559 +#: ../../rst/dev_guide/developing_modules_general_windows.rst:561 msgid "You can test a module with an Ansible playbook. For example:" msgstr "以下のように、Ansible Playbook でモジュールをテストできます。以下に例を示します。" -#: ../../rst/dev_guide/developing_modules_general_windows.rst:561 +#: ../../rst/dev_guide/developing_modules_general_windows.rst:563 msgid "Create a playbook in any directory ``touch testmodule.yml``." msgstr "任意のディレクトリーに Playbook を作成します (``touch testmodule.yml``)。" -#: ../../rst/dev_guide/developing_modules_general_windows.rst:562 +#: ../../rst/dev_guide/developing_modules_general_windows.rst:564 msgid "Create an inventory file in the same directory ``touch hosts``." msgstr "同じディレクトリー ``touch hosts`` にインベントリーファイルを作成します。" -#: ../../rst/dev_guide/developing_modules_general_windows.rst:563 +#: ../../rst/dev_guide/developing_modules_general_windows.rst:565 msgid "Populate the inventory file with the variables required to connect to a Windows host(s)." msgstr "Windows ホストへの接続に必要な変数を指定してインベントリーファイルを設定します。" -#: ../../rst/dev_guide/developing_modules_general_windows.rst:564 -msgid "Add the following to the new playbook file::" -msgstr "以下を新しい Playbook ファイルに追加します。" - -#: ../../rst/dev_guide/developing_modules_general_windows.rst:574 +#: ../../rst/dev_guide/developing_modules_general_windows.rst:578 msgid "Run the playbook ``ansible-playbook -i hosts testmodule.yml``" msgstr "Playbook ``ansible-playbook -i hosts testmodule.yml`` を実行します。" -#: ../../rst/dev_guide/developing_modules_general_windows.rst:576 +#: ../../rst/dev_guide/developing_modules_general_windows.rst:580 msgid "This can be useful for seeing how Ansible runs with the new module end to end. Other possible ways to test the module are shown below." msgstr "これは、Ansible が新しいモジュールでエンドツーエンドでどのように実行されるかを確認するのに役立ちます。モジュールをテストする他の可能な方法を以下に示します。" -#: ../../rst/dev_guide/developing_modules_general_windows.rst:582 +#: ../../rst/dev_guide/developing_modules_general_windows.rst:586 msgid "Windows debugging" msgstr "Windows のデバッグ" -#: ../../rst/dev_guide/developing_modules_general_windows.rst:584 +#: ../../rst/dev_guide/developing_modules_general_windows.rst:588 msgid "Debugging a module currently can only be done on a Windows host. This can be useful when developing a new module or implementing bug fixes. These are some steps that need to be followed to set this up:" msgstr "現在、モジュールのデバッグは Windows ホストでのみ実行できます。これは、新しいモジュールを開発したり、バグ修正を実装したりするときに役立ちます。これを設定するには、次の手順に従う必要があります。" -#: ../../rst/dev_guide/developing_modules_general_windows.rst:588 +#: ../../rst/dev_guide/developing_modules_general_windows.rst:592 msgid "Copy the module script to the Windows server" msgstr "モジュールスクリプトを Windows サーバーにコピーします。" -#: ../../rst/dev_guide/developing_modules_general_windows.rst:589 +#: ../../rst/dev_guide/developing_modules_general_windows.rst:593 msgid "Copy the folders ``./lib/ansible/module_utils/powershell`` and ``./lib/ansible/module_utils/csharp`` to the same directory as the script above" msgstr "``./lib/ansible/module_utils/powershell`` ディレクトリーと ``./lib/ansible/module_utils/csharp`` ディレクトリーを上記のスクリプトと同じディレクトリーにコピーします。" -#: ../../rst/dev_guide/developing_modules_general_windows.rst:590 +#: ../../rst/dev_guide/developing_modules_general_windows.rst:594 msgid "Add an extra ``#`` to the start of any ``#Requires -Module`` lines in the module code, this is only required for any lines starting with ``#Requires -Module``" msgstr "モジュールコードにあるすべての ``#Requires -Module`` 行の先頭に ``#`` を追加してください。これは、``#Requires -Module`` で始まる行にのみ必要です。" -#: ../../rst/dev_guide/developing_modules_general_windows.rst:591 +#: ../../rst/dev_guide/developing_modules_general_windows.rst:595 msgid "Add the following to the start of the module script that was copied to the server:" msgstr "以下を、サーバーにコピーされたモジュールスクリプトの先頭に追加します。" -#: ../../rst/dev_guide/developing_modules_general_windows.rst:623 +#: ../../rst/dev_guide/developing_modules_general_windows.rst:627 msgid "You can add more args to ``$complex_args`` as required by the module or define the module options through a JSON file with the structure:" msgstr "モジュールに必要な場合は ``$complex_args`` にさらに引数を追加したり、その構造を持つ JSON ファイルでモジュールオプションを定義することもできます。" -#: ../../rst/dev_guide/developing_modules_general_windows.rst:637 +#: ../../rst/dev_guide/developing_modules_general_windows.rst:641 msgid "There are multiple IDEs that can be used to debug a Powershell script, two of the most popular ones are" msgstr "Powershell スクリプトのデバッグに使用できる IDE が複数あり、以下の 2 つが最も一般的なものになります。" -#: ../../rst/dev_guide/developing_modules_general_windows.rst:640 +#: ../../rst/dev_guide/developing_modules_general_windows.rst:644 msgid "`Powershell ISE`_" msgstr "`Powershell ISE`_" -#: ../../rst/dev_guide/developing_modules_general_windows.rst:641 +#: ../../rst/dev_guide/developing_modules_general_windows.rst:645 msgid "`Visual Studio Code`_" msgstr "`Visual Studio Code`_" -#: ../../rst/dev_guide/developing_modules_general_windows.rst:646 +#: ../../rst/dev_guide/developing_modules_general_windows.rst:650 msgid "To be able to view the arguments as passed by Ansible to the module follow these steps." msgstr "Ansible がモジュールに渡した引数を表示するには、次の手順に従います。" -#: ../../rst/dev_guide/developing_modules_general_windows.rst:649 +#: ../../rst/dev_guide/developing_modules_general_windows.rst:653 msgid "Prefix the Ansible command with :envvar:`ANSIBLE_KEEP_REMOTE_FILES=1` to specify that Ansible should keep the exec files on the server." msgstr "Ansible コマンドの前に :envvar:`ANSIBLE_KEEP_REMOTE_FILES=1` を付けて、Ansible が exec ファイルをサーバ上に保持するように指定します。" -#: ../../rst/dev_guide/developing_modules_general_windows.rst:650 +#: ../../rst/dev_guide/developing_modules_general_windows.rst:654 msgid "Log onto the Windows server using the same user account that Ansible used to execute the module." msgstr "Ansible がモジュールの実行に使用したのと同じユーザーアカウントを使用して Windows サーバーにログインします。" -#: ../../rst/dev_guide/developing_modules_general_windows.rst:651 +#: ../../rst/dev_guide/developing_modules_general_windows.rst:655 msgid "Navigate to ``%TEMP%\\..``. It should contain a folder starting with ``ansible-tmp-``." msgstr "``%TEMP%\\..`` に移動します。これには、``ansible-tmp-`` で始まるディレクトリーが含まれるはずです。" -#: ../../rst/dev_guide/developing_modules_general_windows.rst:652 +#: ../../rst/dev_guide/developing_modules_general_windows.rst:656 msgid "Inside this folder, open the PowerShell script for the module." msgstr "このディレクトリー内で、モジュールの PowerShell スクリプトを開きます。" -#: ../../rst/dev_guide/developing_modules_general_windows.rst:653 +#: ../../rst/dev_guide/developing_modules_general_windows.rst:657 msgid "In this script is a raw JSON script under ``$json_raw`` which contains the module arguments under ``module_args``. These args can be assigned manually to the ``$complex_args`` variable that is defined on your debug script or put in the ``args.json`` file." msgstr "このスクリプトは、``$json_raw`` にある生の JSON スクリプトで、``module_args`` の下にモジュール引数が含まれています。これらの引数は、デバッグスクリプトで定義される ``$complex_args`` 変数に手動で割り当てたり、``args.json`` ファイルに置いたりできます。" -#: ../../rst/dev_guide/developing_modules_general_windows.rst:657 +#: ../../rst/dev_guide/developing_modules_general_windows.rst:661 msgid "Windows unit testing" msgstr "Windows ユニットテスト" -#: ../../rst/dev_guide/developing_modules_general_windows.rst:659 +#: ../../rst/dev_guide/developing_modules_general_windows.rst:663 msgid "Currently there is no mechanism to run unit tests for Powershell modules under Ansible CI." msgstr "現在、Ansible CI で Powershell モジュールのユニットテストを実行するメカニズムはありません。" -#: ../../rst/dev_guide/developing_modules_general_windows.rst:663 +#: ../../rst/dev_guide/developing_modules_general_windows.rst:667 msgid "Windows integration testing" msgstr "Windows 統合テスト" -#: ../../rst/dev_guide/developing_modules_general_windows.rst:665 +#: ../../rst/dev_guide/developing_modules_general_windows.rst:669 msgid "Integration tests for Ansible modules are typically written as Ansible roles. These test roles are located in ``./test/integration/targets``. You must first set up your testing environment, and configure a test inventory for Ansible to connect to." msgstr "Ansible モジュールの統合テストは通常 Ansible ロールとして記述されます。これらのテストロールは ``./test/integration/targets`` にあります。まず、テスト環境を設定して、Ansible が接続できるようにテストインベントリーを設定する必要があります。" -#: ../../rst/dev_guide/developing_modules_general_windows.rst:669 +#: ../../rst/dev_guide/developing_modules_general_windows.rst:673 msgid "In this example we will set up a test inventory to connect to two hosts and run the integration tests for win_stat:" msgstr "この例では、2 つのホストに接続し、win_stat の統合テストを実行するためのテストインベントリーを設定します。" -#: ../../rst/dev_guide/developing_modules_general_windows.rst:672 +#: ../../rst/dev_guide/developing_modules_general_windows.rst:676 msgid "Run the command ``source ./hacking/env-setup`` to prepare environment." msgstr "環境を準備するには、``source ./hacking/env-setup`` コマンドを実行します。" -#: ../../rst/dev_guide/developing_modules_general_windows.rst:673 +#: ../../rst/dev_guide/developing_modules_general_windows.rst:677 msgid "Create a copy of ``./test/integration/inventory.winrm.template`` and name it ``inventory.winrm``." msgstr "``./test/integration/inventory.winrm.template`` のコピーを作成し、``inventory.winrm`` という名前を指定します。" -#: ../../rst/dev_guide/developing_modules_general_windows.rst:674 +#: ../../rst/dev_guide/developing_modules_general_windows.rst:678 msgid "Fill in entries under ``[windows]`` and set the required variables that are needed to connect to the host." msgstr "``[windows]`` の下にエントリーを入力し、ホストへの接続に必要な変数を設定します。" -#: ../../rst/dev_guide/developing_modules_general_windows.rst:675 +#: ../../rst/dev_guide/developing_modules_general_windows.rst:679 msgid ":ref:`Install the required Python modules ` to support WinRM and a configured authentication method." msgstr "WinRM と、設定された認証方法をサポートするのに :ref:`必要な Python モジュールをインストール ` します。" -#: ../../rst/dev_guide/developing_modules_general_windows.rst:676 +#: ../../rst/dev_guide/developing_modules_general_windows.rst:680 msgid "To execute the integration tests, run ``ansible-test windows-integration win_stat``; you can replace ``win_stat`` with the role you want to test." msgstr "統合テストを実行するには、``ansible-test windows-integration win_stat`` を実行します。``win_stat`` は、テストするロールに置き換えることができます。" -#: ../../rst/dev_guide/developing_modules_general_windows.rst:678 +#: ../../rst/dev_guide/developing_modules_general_windows.rst:682 msgid "This will execute all the tests currently defined for that role. You can set the verbosity level using the ``-v`` argument just as you would with ansible-playbook." msgstr "これにより、そのロールに対して現在定義されているすべてのテストが実行されます。ansible-playbook の場合と同じように、``-v`` 引数を使用して詳細レベルを設定できます。" -#: ../../rst/dev_guide/developing_modules_general_windows.rst:682 +#: ../../rst/dev_guide/developing_modules_general_windows.rst:686 msgid "When developing tests for a new module, it is recommended to test a scenario once in check mode and twice not in check mode. This ensures that check mode does not make any changes but reports a change, as well as that the second run is idempotent and does not report changes. For example:" msgstr "新しいモジュールのテストを開発するときは、シナリオをチェックモードで 1 回、チェックモード以外で 2 回テストすることが推奨されます。これにより、チェックモードでは変更は行われず、変更が報告されます。また、2 回目の実行は冪等であり、変更は報告されません。以下に例を示します。" -#: ../../rst/dev_guide/developing_modules_general_windows.rst:735 +#: ../../rst/dev_guide/developing_modules_general_windows.rst:739 msgid "Windows communication and development support" msgstr "Windows の通信および開発サポート" -#: ../../rst/dev_guide/developing_modules_general_windows.rst:737 +#: ../../rst/dev_guide/developing_modules_general_windows.rst:741 msgid "Join the ``#ansible-devel`` or ``#ansible-windows`` chat channels (using Matrix at ansible.im or using IRC at `irc.libera.chat `_) for discussions about Ansible development for Windows." msgstr "``#ansible-devel`` または``#ansible-windows``チャットチャンネル(ansible.imでMatrixを使用、または`irc.libera.chat `でIRCを使用)に参加して、Windows向けのAnsible 開発に関する議論を行います。" -#: ../../rst/dev_guide/developing_modules_general_windows.rst:739 +#: ../../rst/dev_guide/developing_modules_general_windows.rst:743 msgid "For questions and discussions pertaining to using the Ansible product, use the ``#ansible`` channel." msgstr "Ansible 製品の使用に関する質問および貢献については、``#ansible`` チャンネルを使用します。" @@ -6230,286 +5828,307 @@ msgid "Configuration sources follow the precedence rules for values in Ansible. msgstr "設定ソースは、Ansibleの値の優先順位ルールに従います。同じカテゴリからの値が複数ある場合、最後に定義された値が優先されます。たとえば、上記の設定ブロックでは、``name_of_ansible_var`` と``name_of_second_var`` の両方が定義されている場合、``option_name`` オプションの値は``name_of_second_var`` の値になります。詳細は:ref:`general_precedence_rules` を参照してください。" #: ../../rst/dev_guide/developing_plugins.rst:82 -msgid "Plugins that support embedded documentation (see :ref:`ansible-doc` for the list) should include well-formed doc strings. If you inherit from a plugin, you must document the options it takes, either via a documentation fragment or as a copy. See :ref:`module_documenting` for more information on correct documentation. Thorough documentation is a good idea even if you're developing a plugin for local use." -msgstr "埋め込みドキュメントをサポートするプラグイン (:ref:`ansible-doc` リストの場合を参照) は、適切に構築されたドキュメント文字列を含める必要があります。プラグインから継承する場合は、ドキュメントフラグメントを介して、またはコピーとして、必要なオプションを記述する必要があります。正しいドキュメントに関する詳細は、「:ref:`module_documenting`」を参照してください。ローカルで使用するプラグインを開発している場合でも、完全なドキュメントを作成することが推奨されます。" +msgid "Plugins that support embedded documentation (see :ref:`ansible-doc` for the list) should include well-formed doc strings. If you inherit from a plugin, you must document the options it takes, either through a documentation fragment or as a copy. See :ref:`module_documenting` for more information on correct documentation. Thorough documentation is a good idea even if you're developing a plugin for local use." +msgstr "埋め込みドキュメントをサポートするプラグイン (リストは :ref:`ansible-doc` を参照) は、適切に構築されたドキュメント文字列を含める必要があります。プラグインから継承する場合は、ドキュメントフラグメントを介して、またはコピーとして、必要なオプションを記述する必要があります。正しいドキュメントに関する詳細は、「:ref:`module_documenting`」を参照してください。ローカルで使用するプラグインを開発している場合でも、完全なドキュメントを作成することが推奨されます。" + +#: ../../rst/dev_guide/developing_plugins.rst:86 +msgid "In ansible-core 2.14 we added support for documenting filter and test plugins. You have two options for providing documentation:" +msgstr "ansible-core 2.14 では、フィルターおよびテストプラグインのドキュメント化をサポートするようになりました。ドキュメントの提供には、次の 2 つのオプションがあります。" #: ../../rst/dev_guide/developing_plugins.rst:85 +msgid "Define a Python file that includes inline documentation for each plugin." +msgstr "各プラグインのインラインドキュメントを含む Python ファイルを定義します。" + +#: ../../rst/dev_guide/developing_plugins.rst:86 +msgid "Define a Python file for multiple plugins and create adjacent documentation files in YAML format." +msgstr "複数のプラグイン用の Python ファイルを定義し、隣接するドキュメントファイルを YAML 形式で作成します。" + +#: ../../rst/dev_guide/developing_plugins.rst:89 msgid "Developing particular plugin types" msgstr "特定のプラグインタイプの開発" -#: ../../rst/dev_guide/developing_plugins.rst:90 +#: ../../rst/dev_guide/developing_plugins.rst:94 #: ../../rst/dev_guide/developing_program_flow_modules.rst:24 msgid "Action plugins" msgstr "action プラグイン" -#: ../../rst/dev_guide/developing_plugins.rst:92 +#: ../../rst/dev_guide/developing_plugins.rst:96 msgid "Action plugins let you integrate local processing and local data with module functionality." msgstr "action プラグインを使用すると、ローカル処理とローカルデータをモジュール機能に統合できます。" -#: ../../rst/dev_guide/developing_plugins.rst:94 +#: ../../rst/dev_guide/developing_plugins.rst:98 msgid "To create an action plugin, create a new class with the Base(ActionBase) class as the parent:" msgstr "action プラグインを作成するには、Base(ActionBase) クラスを親として新しいクラスを作成します。" -#: ../../rst/dev_guide/developing_plugins.rst:103 +#: ../../rst/dev_guide/developing_plugins.rst:107 msgid "From there, execute the module using the ``_execute_module`` method to call the original module. After successful execution of the module, you can modify the module return data." msgstr "そこから、``_execute_module`` メソッドを使用してモジュールを実行して、元のモジュールを呼び出します。モジュールの実行に成功すると、モジュールの戻り値データを変更できます。" -#: ../../rst/dev_guide/developing_plugins.rst:113 +#: ../../rst/dev_guide/developing_plugins.rst:117 msgid "For example, if you wanted to check the time difference between your Ansible controller and your target machine(s), you could write an action plugin to check the local time and compare it to the return data from Ansible's ``setup`` module:" msgstr "たとえば、Ansible コントローラーとターゲットマシン間の時間差を確認する場合は、action プラグインを作成してローカルタイムを確認し、それを Ansible の ``setup`` モジュールから返されるデータと比較できます。" -#: ../../rst/dev_guide/developing_plugins.rst:150 +#: ../../rst/dev_guide/developing_plugins.rst:154 msgid "This code checks the time on the controller, captures the date and time for the remote machine using the ``setup`` module, and calculates the difference between the captured time and the local time, returning the time delta in days, seconds and microseconds." msgstr "このコードはコントローラーの時間を確認し、``setup`` モジュールを使用してリモートマシンの日時を取得し、取得した時間とローカル時間の差異を算出し、その時間差を日数、秒、およびマイクロ秒で返します。" -#: ../../rst/dev_guide/developing_plugins.rst:153 +#: ../../rst/dev_guide/developing_plugins.rst:157 msgid "For practical examples of action plugins, see the source code for the `action plugins included with Ansible Core `_" msgstr "action プラグインの実際の例は、`Ansible Core に同梱される action プラグイン `_ のソースコードを参照してください。" -#: ../../rst/dev_guide/developing_plugins.rst:159 +#: ../../rst/dev_guide/developing_plugins.rst:163 msgid "Cache plugins" msgstr "Cache プラグイン" -#: ../../rst/dev_guide/developing_plugins.rst:161 +#: ../../rst/dev_guide/developing_plugins.rst:165 msgid "Cache plugins store gathered facts and data retrieved by inventory plugins." msgstr "dache プラグインは、inventory プラグインによって取得されるファクトおよびデータを格納します。" -#: ../../rst/dev_guide/developing_plugins.rst:163 -msgid "Import cache plugins using the cache_loader so you can use ``self.set_options()`` and ``self.get_option()``. If you import a cache plugin directly in the code base, you can only access options via ``ansible.constants``, and you break the cache plugin's ability to be used by an inventory plugin." +#: ../../rst/dev_guide/developing_plugins.rst:167 +msgid "Import cache plugins using the cache_loader so you can use ``self.set_options()`` and ``self.get_option()``. If you import a cache plugin directly in the code base, you can only access options by the ``ansible.constants``, and you break the cache plugin's ability to be used by an inventory plugin." msgstr "``self.set_options()`` および ``self.get_option()`` を使用できる cache_loader を使用する cache プラグインをインポートします。コードベースで cache プラグインを直接インポートする場合は、``ansible.constants`` からのみオプションにアクセスでき、inventory プラグインによって使用される cache プラグインの機能が壊れます。" -#: ../../rst/dev_guide/developing_plugins.rst:171 +#: ../../rst/dev_guide/developing_plugins.rst:175 msgid "There are two base classes for cache plugins, ``BaseCacheModule`` for database-backed caches, and ``BaseCacheFileModule`` for file-backed caches." msgstr "cache プラグインには、2 つのベースクラス (データベースベースのバックアップ用のキャッシュの場合は ``BaseCacheModule``、ファイルのバックアップ用のキャッシュの場合は ``BaseCacheFileModule``) があります。" -#: ../../rst/dev_guide/developing_plugins.rst:173 +#: ../../rst/dev_guide/developing_plugins.rst:177 msgid "To create a cache plugin, start by creating a new ``CacheModule`` class with the appropriate base class. If you're creating a plugin using an ``__init__`` method you should initialize the base class with any provided args and kwargs to be compatible with inventory plugin cache options. The base class calls ``self.set_options(direct=kwargs)``. After the base class ``__init__`` method is called ``self.get_option()`` should be used to access cache options." msgstr "キャッシュプラグインを作成するには、適切なベースクラスで新しい ``CacheModule`` クラスを作成して開始します。``__init__`` メソッドを使用してプラグインを作成する場合は、指定された arg および kwarg でベースクラスを初期化し、インベントリープラグインキャッシュオプションと互換性がある必要があります。ベースクラスは ``self.set_options(direct=kwargs)`` を呼び出します。ベースクラス ``__init__`` メソッドが呼び出されると、``self.get_option()`` を使用して、キャッシュオプションにアクセスする必要があります。" -#: ../../rst/dev_guide/developing_plugins.rst:175 +#: ../../rst/dev_guide/developing_plugins.rst:179 msgid "New cache plugins should take the options ``_uri``, ``_prefix``, and ``_timeout`` to be consistent with existing cache plugins." msgstr "新しい cache プラグインは、既存の cache プラグインとの整合性を保つために、``_uri`` オプション、``_prefix`` オプション、および ``_timeout`` オプションを使用する必要があります。" -#: ../../rst/dev_guide/developing_plugins.rst:188 +#: ../../rst/dev_guide/developing_plugins.rst:192 msgid "If you use the ``BaseCacheModule``, you must implement the methods ``get``, ``contains``, ``keys``, ``set``, ``delete``, ``flush``, and ``copy``. The ``contains`` method should return a boolean that indicates if the key exists and has not expired. Unlike file-based caches, the ``get`` method does not raise a KeyError if the cache has expired." msgstr "``BaseCacheModule`` を使用する場合は、メソッド ``get``、``contains``、``keys``、``set``、``delete``、``flush``、および ``copy`` を実装する必要があります。``contains`` メソッドは、キーが存在し、有効期限が切れていないことを示すブール値を返すはずです。ファイルベースのキャッシュとは異なり、キャッシュの有効期限が切れると、``get`` メソッドによって KeyError は発生しません。" -#: ../../rst/dev_guide/developing_plugins.rst:190 +#: ../../rst/dev_guide/developing_plugins.rst:194 msgid "If you use the ``BaseFileCacheModule``, you must implement ``_load`` and ``_dump`` methods that will be called from the base class methods ``get`` and ``set``." msgstr "``BaseFileCacheModule`` を使用する場合は、ベースクラスメソッド ``get`` および ``set`` から呼び出される ``_load`` メソッドおよび ``_dump`` メソッドを実装する必要があります。" -#: ../../rst/dev_guide/developing_plugins.rst:192 +#: ../../rst/dev_guide/developing_plugins.rst:196 msgid "If your cache plugin stores JSON, use ``AnsibleJSONEncoder`` in the ``_dump`` or ``set`` method and ``AnsibleJSONDecoder`` in the ``_load`` or ``get`` method." msgstr "キャッシュプラグインに JSON が保存されている場合は、``_dump`` メソッドまたは ``set`` メソッドの ``AnsibleJSONEncoder`` と、``_load`` メソッドまたは``get`` メソッドの ``AnsibleJSONDecoder`` を使用します。" -#: ../../rst/dev_guide/developing_plugins.rst:194 +#: ../../rst/dev_guide/developing_plugins.rst:198 msgid "For example cache plugins, see the source code for the `cache plugins included with Ansible Core `_." msgstr "cache プラグインの例は、`Ansible Core に同梱される cache プラグイン `_ のソースコードを参照してください。" -#: ../../rst/dev_guide/developing_plugins.rst:199 +#: ../../rst/dev_guide/developing_plugins.rst:203 msgid "Callback plugins" msgstr "callback プラグイン" -#: ../../rst/dev_guide/developing_plugins.rst:201 +#: ../../rst/dev_guide/developing_plugins.rst:205 msgid "Callback plugins add new behaviors to Ansible when responding to events. By default, callback plugins control most of the output you see when running the command line programs." msgstr "callback プラグインは、イベントに応答する際に新しい動作を Ansible に追加します。デフォルトでは、callback プラグインは、コマンドラインプログラムの実行時に表示されるほとんどの出力を制御します。" -#: ../../rst/dev_guide/developing_plugins.rst:203 +#: ../../rst/dev_guide/developing_plugins.rst:207 msgid "To create a callback plugin, create a new class with the Base(Callbacks) class as the parent:" msgstr "callback プラグインを作成するには、Base(Callbacks) クラスを親として使用して新規クラスを作成します。" -#: ../../rst/dev_guide/developing_plugins.rst:212 +#: ../../rst/dev_guide/developing_plugins.rst:216 msgid "From there, override the specific methods from the CallbackBase that you want to provide a callback for. For plugins intended for use with Ansible version 2.0 and later, you should only override methods that start with ``v2``. For a complete list of methods that you can override, please see ``__init__.py`` in the `lib/ansible/plugins/callback `_ directory." msgstr "そこから、コールバックを提供する CallbackBase から特定のメソッドを上書きします。Ansible バージョン 2.0 以降で使用するプラグインでは、``v2`` で始まる方法のみを上書きしてください。上書きできるメソッドの完全なリストは、`lib/ansible/plugins/callback `_ ディレクトリーの ``__init__.py`` を参照してください。" -#: ../../rst/dev_guide/developing_plugins.rst:217 +#: ../../rst/dev_guide/developing_plugins.rst:221 msgid "The following is a modified example of how Ansible's timer plugin is implemented, but with an extra option so you can see how configuration works in Ansible version 2.4 and later:" msgstr "以下は、Ansible の timer プラグインの実装方法の変更例です。ただし、追加のオプションを使用すると、Ansible バージョン 2.4 以降で構成がどのように機能するかを確認できます。" -#: ../../rst/dev_guide/developing_plugins.rst:286 +#: ../../rst/dev_guide/developing_plugins.rst:290 msgid "Note that the ``CALLBACK_VERSION`` and ``CALLBACK_NAME`` definitions are required for properly functioning plugins for Ansible version 2.0 and later. ``CALLBACK_TYPE`` is mostly needed to distinguish 'stdout' plugins from the rest, since you can only load one plugin that writes to stdout." msgstr "``CALLBACK_VERSION`` および ``CALLBACK_NAME`` の定義は、Ansible バージョン 2.0 以降のプラグインが正しく機能するために必要であることに注意してください。``CALLBACK_TYPE`` は、標準出力 (stdout) に書き込むプラグインを 1 つだけ読み込むことができるため、ほとんどの「stdout」プラグインをその他のものと区別するために必要です。" -#: ../../rst/dev_guide/developing_plugins.rst:288 +#: ../../rst/dev_guide/developing_plugins.rst:292 msgid "For example callback plugins, see the source code for the `callback plugins included with Ansible Core `_" msgstr "callback プラグインの例は、`Ansible Core に同梱される callback プラグイン `_ のソースコードを参照してください。" -#: ../../rst/dev_guide/developing_plugins.rst:290 -msgid "New in ansible-core 2.11, callback plugins are notified (via ``v2_playbook_on_task_start``) of :ref:`meta` tasks. By default, only explicit ``meta`` tasks that users list in their plays are sent to callbacks." +#: ../../rst/dev_guide/developing_plugins.rst:294 +msgid "New in ansible-core 2.11, callback plugins are notified (by the ``v2_playbook_on_task_start``) of :ref:`meta` tasks. By default, only explicit ``meta`` tasks that users list in their plays are sent to callbacks." msgstr "ansible-core 2.11 の新機能として、:ref:`meta` タスクのコールバックプラグインが (``v2_playbook_on_task_start`` を介して) 通知されます。デフォルトでは、プレイに追加する明示的な ``meta`` タスクのみが、コールバックに送信されます。" -#: ../../rst/dev_guide/developing_plugins.rst:292 +#: ../../rst/dev_guide/developing_plugins.rst:296 msgid "There are also some tasks which are generated internally and implicitly at various points in execution. Callback plugins can opt-in to receiving these implicit tasks as well, by setting ``self.wants_implicit_tasks = True``. Any ``Task`` object received by a callback hook will have an ``.implicit`` attribute, which can be consulted to determine whether the ``Task`` originated from within Ansible, or explicitly by the user." msgstr "実行のさまざまな時点で、内部的および暗黙的に生成されるタスクもいくつかあります。callback プラグインは、``self.wants_implicit_tasks = True`` を設定することにより、これらの暗黙的なタスクを受け取ることをオプトインできます。コールバックフックによって受信した ``Task`` オブジェクトには、``.implicit`` 属性があります。これを参照して、``Task`` が Ansible 内から、またはユーザーによって明示的に発信されたかどうかを決めるために参照します。" -#: ../../rst/dev_guide/developing_plugins.rst:297 +#: ../../rst/dev_guide/developing_plugins.rst:301 msgid "Connection plugins" msgstr "connection プラグイン" -#: ../../rst/dev_guide/developing_plugins.rst:299 +#: ../../rst/dev_guide/developing_plugins.rst:303 msgid "Connection plugins allow Ansible to connect to the target hosts so it can execute tasks on them. Ansible ships with many connection plugins, but only one can be used per host at a time. The most commonly used connection plugins are the ``paramiko`` SSH, native ssh (just called ``ssh``), and ``local`` connection types. All of these can be used in playbooks and with ``/usr/bin/ansible`` to connect to remote machines." msgstr "connection プラグインにより、Ansible はターゲットホストに接続してそのホストにあるタスクを実行できるようにします。Ansible には多くの connection プラグインが同梱されていますが、一度に使用できるのは 1 つのみとなります。最も一般的に使用される connection プラグインは、``paramiko`` SSH、ネイティブ ssh (単に ``ssh`` と呼ばれる)、および ``local`` 接続タイプです。これらはすべて Playbook で使用され、``/usr/bin/ansible`` を使用してリモートマシンに接続します。" -#: ../../rst/dev_guide/developing_plugins.rst:301 +#: ../../rst/dev_guide/developing_plugins.rst:305 msgid "Ansible version 2.1 introduced the ``smart`` connection plugin. The ``smart`` connection type allows Ansible to automatically select either the ``paramiko`` or ``openssh`` connection plugin based on system capabilities, or the ``ssh`` connection plugin if OpenSSH supports ControlPersist." msgstr "Ansible バージョン 2.1 では、``smart`` connection プラグインが導入されます。``smart`` 接続タイプにより、Ansible は、システム機能に基づいて、``paramiko`` または ``openssh`` connection プラグインのいずれかを自動的に選択できますが、OpenSSH が ControlPersist に対応している場合は connetion プラグイン ``ssh`` を選択します。" -#: ../../rst/dev_guide/developing_plugins.rst:303 +#: ../../rst/dev_guide/developing_plugins.rst:307 msgid "To create a new connection plugin (for example, to support SNMP, Message bus, or other transports), copy the format of one of the existing connection plugins and drop it into ``connection`` directory on your :ref:`local plugin path `." msgstr "新しい connetion プラグイン (SNMP、メッセージバス、またはその他のトランスポートをサポートする場合など) を作成するには、既存の connetion プラグインのいずれかの形式をコピーして、:ref:`ローカルプラグインパス ` にある ``connection`` ディレクトリーに置きます。" -#: ../../rst/dev_guide/developing_plugins.rst:305 +#: ../../rst/dev_guide/developing_plugins.rst:309 msgid "Connection plugins can support common options (such as the ``--timeout`` flag) by defining an entry in the documentation for the attribute name (in this case ``timeout``). If the common option has a non-null default, the plugin should define the same default since a different default would be ignored." msgstr "connection プラグインは、属性名 (ここでは ``timeout``) のドキュメントでエントリーを定義することで、一般的なオプション (``--timeout`` フラグなど) をサポートします。一般的なオプションには null 以外のデフォルトがある場合、別のデフォルトは無視されるため、プラグインは同じデフォルトを定義する必要があります。" -#: ../../rst/dev_guide/developing_plugins.rst:307 +#: ../../rst/dev_guide/developing_plugins.rst:311 msgid "For example connection plugins, see the source code for the `connection plugins included with Ansible Core `_." msgstr "選択プラグインの例は、`Ansible Core に同梱される接続プラグイン `_ のソースコードを参照してください。" -#: ../../rst/dev_guide/developing_plugins.rst:312 +#: ../../rst/dev_guide/developing_plugins.rst:316 msgid "Filter plugins" msgstr "filter プラグイン" -#: ../../rst/dev_guide/developing_plugins.rst:314 +#: ../../rst/dev_guide/developing_plugins.rst:318 msgid "Filter plugins manipulate data. They are a feature of Jinja2 and are also available in Jinja2 templates used by the ``template`` module. As with all plugins, they can be easily extended, but instead of having a file for each one you can have several per file. Most of the filter plugins shipped with Ansible reside in a ``core.py``." msgstr "filter プラグインはデータを操作します。これらは Jinja2 の機能であり、``template`` モジュールが使用する Jinja2 テンプレートで利用できます。すべてのプラグインと同様に、プラグインは簡単に拡張できますが、プラグインごとにファイルを作成する代わりに、ファイルごとに複数のプラグインを作成できます。Ansible に同梱されているフィルタープラグインのほとんどは、``core.py`` にあります。" -#: ../../rst/dev_guide/developing_plugins.rst:316 -msgid "Filter plugins do not use the standard configuration and documentation system described above." -msgstr "filter プラグインは、上記の標準設定およびドキュメントシステムを使用しません。" +#: ../../rst/dev_guide/developing_plugins.rst:320 +msgid "Filter plugins do not use the standard configuration system described above, but since ansible-core 2.14 can use it as plain documentation." +msgstr "フィルタープラグインは、上記の標準設定システムを使用しませんが、ansible-core 2.14 以降では単純なドキュメントとして使用できます。" -#: ../../rst/dev_guide/developing_plugins.rst:318 +#: ../../rst/dev_guide/developing_plugins.rst:322 msgid "Since Ansible evaluates variables only when they are needed, filter plugins should propagate the exceptions ``jinja2.exceptions.UndefinedError`` and ``AnsibleUndefinedVariable`` to ensure undefined variables are only fatal when necessary." msgstr "Ansibleは必要なときにのみ変数を評価するので、未定義の変数が必要なときにのみ致命的な問題を起こすように、フィルタープラグインは、例外``jinja2.exceptions.UndefinedError`` と``AnsibleUndefinedVariable`` を伝播させる必要があります。" -#: ../../rst/dev_guide/developing_plugins.rst:329 +#: ../../rst/dev_guide/developing_plugins.rst:333 msgid "For example filter plugins, see the source code for the `filter plugins included with Ansible Core `_." msgstr "filter プラグインの例は、`Ansible Core に同梱される filter プラグイン `_ のソースコードを参照してください。" -#: ../../rst/dev_guide/developing_plugins.rst:336 +#: ../../rst/dev_guide/developing_plugins.rst:340 msgid "Inventory plugins parse inventory sources and form an in-memory representation of the inventory. Inventory plugins were added in Ansible version 2.4." msgstr "inventory プラグインはインベントリーソースを解析し、インベントリーのインメモリー表示を形成します。inventory プラグインは Ansible バージョン 2.4 で追加されました。" -#: ../../rst/dev_guide/developing_plugins.rst:338 +#: ../../rst/dev_guide/developing_plugins.rst:342 msgid "You can see the details for inventory plugins in the :ref:`developing_inventory` page." msgstr "inventory プラグインの詳細は、:ref:`developing_inventory` ページを参照してください。" -#: ../../rst/dev_guide/developing_plugins.rst:343 +#: ../../rst/dev_guide/developing_plugins.rst:347 msgid "Lookup plugins" msgstr "lookup プラグイン" -#: ../../rst/dev_guide/developing_plugins.rst:345 -msgid "Lookup plugins pull in data from external data stores. Lookup plugins can be used within playbooks both for looping --- playbook language constructs like ``with_fileglob`` and ``with_items`` are implemented via lookup plugins --- and to return values into a variable or parameter." +#: ../../rst/dev_guide/developing_plugins.rst:349 +msgid "Lookup plugins pull in data from external data stores. Lookup plugins can be used within playbooks both for looping --- playbook language constructs like ``with_fileglob`` and ``with_items`` are implemented through lookup plugins --- and to return values into a variable or parameter." msgstr "lookup プラグインは、外部データストアからデータをプルします。lookup プラグインは Playbook 内でループするため (``with_fileglob`` や ``with_items`` などの Playbook 言語の構造は lookup プラグインを介して実装されています)、また変数やパラメーターに値を返すために使用することができます。" -#: ../../rst/dev_guide/developing_plugins.rst:347 +#: ../../rst/dev_guide/developing_plugins.rst:351 msgid "Lookup plugins are expected to return lists, even if just a single element." msgstr "lookup プラグインは、単一の要素のみであってもリストを返すことが想定されます。" -#: ../../rst/dev_guide/developing_plugins.rst:349 +#: ../../rst/dev_guide/developing_plugins.rst:353 msgid "Ansible includes many :ref:`filters ` which can be used to manipulate the data returned by a lookup plugin. Sometimes it makes sense to do the filtering inside the lookup plugin, other times it is better to return results that can be filtered in the playbook. Keep in mind how the data will be referenced when determining the appropriate level of filtering to be done inside the lookup plugin." msgstr "Ansible には、lookup プラグインが返すデータを操作するために使用できる :ref:`filters ` が多数含まれています。lookup プラグイン内でフィルタリングを行うことが理にかなっている場合もあれば、Playbook でフィルタリングできる結果を返す方がよい場合もあります。lookup プラグイン内で実行する適切なフィルタリングレベルを決定するときは、データがどのように参照されるかに留意してください。" -#: ../../rst/dev_guide/developing_plugins.rst:351 +#: ../../rst/dev_guide/developing_plugins.rst:355 msgid "Here's a simple lookup plugin implementation --- this lookup returns the contents of a text file as a variable:" msgstr "以下は簡単な lookup プラグインの実装です。この lookup は、テキストファイルの内容を変数として返します。" -#: ../../rst/dev_guide/developing_plugins.rst:428 +#: ../../rst/dev_guide/developing_plugins.rst:432 msgid "The following is an example of how this lookup is called:" msgstr "以下は、このルックアップがどのように呼び出されるかの例になります。" -#: ../../rst/dev_guide/developing_plugins.rst:443 +#: ../../rst/dev_guide/developing_plugins.rst:447 msgid "For example lookup plugins, see the source code for the `lookup plugins included with Ansible Core `_." msgstr "lookup プラグインの例は、`Ansible Core に同梱される lookup プラグイン `_ のソースコードを参照してください。" -#: ../../rst/dev_guide/developing_plugins.rst:445 +#: ../../rst/dev_guide/developing_plugins.rst:449 msgid "For more usage examples of lookup plugins, see :ref:`Using Lookups`." msgstr "lookup プラグインのその他の使用例については、「:ref:`検索の使用`」を参照してください。" -#: ../../rst/dev_guide/developing_plugins.rst:450 +#: ../../rst/dev_guide/developing_plugins.rst:454 msgid "Test plugins" msgstr "test プラグイン" -#: ../../rst/dev_guide/developing_plugins.rst:452 +#: ../../rst/dev_guide/developing_plugins.rst:456 msgid "Test plugins verify data. They are a feature of Jinja2 and are also available in Jinja2 templates used by the ``template`` module. As with all plugins, they can be easily extended, but instead of having a file for each one you can have several per file. Most of the test plugins shipped with Ansible reside in a ``core.py``. These are specially useful in conjunction with some filter plugins like ``map`` and ``select``; they are also available for conditional directives like ``when:``." msgstr "テストプラグインはデータを検証します。これは Jinja2 の機能で、``template`` モジュールが使用する Jinja2 テンプレートでも利用できます。他のすべてのプラグインと同様、このプラグインは簡単に拡張できますが、プラグインごとにファイルを作成する代わりに、ファイルごとに複数のプラグインを作成できます。Ansible に同梱されているテストプラグインのほとんどは、``core.py`` に格納されています。これらのプラグインは、``map`` や ``select`` などの filter プラグインと組み合わせて使うと特に便利です。また、``when:`` などの条件付きディレクティブにも利用できます。" -#: ../../rst/dev_guide/developing_plugins.rst:454 -msgid "Test plugins do not use the standard configuration and documentation system described above." -msgstr "test プラグインは、上記の標準設定およびドキュメントシステムを使用しません。" +#: ../../rst/dev_guide/developing_plugins.rst:458 +msgid "Test plugins do not use the standard configuration system described above. Since ansible-core 2.14 test plugins can use plain documentation." +msgstr "テストプラグインは、上記の標準設定システムを使用しません。ansible-core 2.14 以降において、テストプラグインは単純なドキュメントを使用できます。" -#: ../../rst/dev_guide/developing_plugins.rst:456 +#: ../../rst/dev_guide/developing_plugins.rst:460 msgid "Since Ansible evaluates variables only when they are needed, test plugins should propagate the exceptions ``jinja2.exceptions.UndefinedError`` and ``AnsibleUndefinedVariable`` to ensure undefined variables are only fatal when necessary." msgstr "Ansibleは必要なときにのみ変数を評価するので、未定義の変数が必要なときにのみ致命的な問題を起こすように、テストプラグインは、例外``jinja2.exceptions.UndefinedError`` と``AnsibleUndefinedVariable`` を伝播させる必要があります。" -#: ../../rst/dev_guide/developing_plugins.rst:467 +#: ../../rst/dev_guide/developing_plugins.rst:471 msgid "For example test plugins, see the source code for the `test plugins included with Ansible Core `_." msgstr "test プラグインの例は、`Ansible Core に同梱される test プラグイン `_ のソースコードを参照してください。" -#: ../../rst/dev_guide/developing_plugins.rst:472 +#: ../../rst/dev_guide/developing_plugins.rst:476 msgid "Vars plugins" msgstr "vars プラグイン" -#: ../../rst/dev_guide/developing_plugins.rst:474 +#: ../../rst/dev_guide/developing_plugins.rst:478 msgid "Vars plugins inject additional variable data into Ansible runs that did not come from an inventory source, playbook, or command line. Playbook constructs like 'host_vars' and 'group_vars' work using vars plugins." msgstr "vars プラグインは、インベントリーソース、Playbook、またはコマンドラインに組み込まれていない Ansible の実行に、変数データを追加します。「host_vars」や「group_vars」のような Playbook の構成要素は、vars プラグインを使用します。" -#: ../../rst/dev_guide/developing_plugins.rst:476 +#: ../../rst/dev_guide/developing_plugins.rst:480 msgid "Vars plugins were partially implemented in Ansible 2.0 and rewritten to be fully implemented starting with Ansible 2.4. Vars plugins are supported by collections starting with Ansible 2.10." msgstr "vars プラグインは Ansible 2.0 に部分的に実装され、Ansible 2.4 以降では、完全実装になるように書き直されました。vars プラグインはAnsible 2.10以降コレクションのサポート対象となります。" -#: ../../rst/dev_guide/developing_plugins.rst:478 +#: ../../rst/dev_guide/developing_plugins.rst:482 msgid "Older plugins used a ``run`` method as their main body/work:" msgstr "古いプラグインでは、``run`` メソッドを主要な本文/作業として使用していました。" -#: ../../rst/dev_guide/developing_plugins.rst:486 +#: ../../rst/dev_guide/developing_plugins.rst:490 msgid "Ansible 2.0 did not pass passwords to older plugins, so vaults were unavailable. Most of the work now happens in the ``get_vars`` method which is called from the VariableManager when needed." msgstr "Ansible 2.0 は古いプラグインにパスワードを渡さなかったため、vault は利用できませんでした。ほとんどの作業は、必要に応じて VariableManager から呼び出される ``get_vars`` メソッドで実行されるようになりました。" -#: ../../rst/dev_guide/developing_plugins.rst:494 +#: ../../rst/dev_guide/developing_plugins.rst:498 msgid "The parameters are:" msgstr "パラメーターは以下のとおりです。" -#: ../../rst/dev_guide/developing_plugins.rst:496 +#: ../../rst/dev_guide/developing_plugins.rst:500 msgid "loader: Ansible's DataLoader. The DataLoader can read files, auto-load JSON/YAML and decrypt vaulted data, and cache read files." msgstr "loader: Ansible の DataLoader。DataLoader は、ファイルの読み取り、JSON/YAML の自動読み込み、vault を使用したデータの復号、および読み取りファイルのキャッシュを行うことができます。" -#: ../../rst/dev_guide/developing_plugins.rst:497 +#: ../../rst/dev_guide/developing_plugins.rst:501 msgid "path: this is 'directory data' for every inventory source and the current play's playbook directory, so they can search for data in reference to them. ``get_vars`` will be called at least once per available path." msgstr "path: これはすべてのインベントリーソースと現在のプレイの Playbook ディレクトリーの「ディレクトリーデータ」であるため、それを参照するデータを検索することができます。``get_vars`` は、利用可能なパスごとに最低 1 回呼び出されます。" -#: ../../rst/dev_guide/developing_plugins.rst:498 +#: ../../rst/dev_guide/developing_plugins.rst:502 msgid "entities: these are host or group names that are pertinent to the variables needed. The plugin will get called once for hosts and again for groups." msgstr "entities: 必要な変数に関連付けられるホスト名またはグループ名です。プラグインはホストに対して 1 回呼び出され、グループに対して再度呼び出されます。" -#: ../../rst/dev_guide/developing_plugins.rst:500 +#: ../../rst/dev_guide/developing_plugins.rst:504 msgid "This ``get_vars`` method just needs to return a dictionary structure with the variables." msgstr "この ``get_vars`` メソッドは変数を含むディクショナリー構造を返す必要があります。" -#: ../../rst/dev_guide/developing_plugins.rst:502 +#: ../../rst/dev_guide/developing_plugins.rst:506 msgid "Since Ansible version 2.4, vars plugins only execute as needed when preparing to execute a task. This avoids the costly 'always execute' behavior that occurred during inventory construction in older versions of Ansible. Since Ansible version 2.10, vars plugin execution can be toggled by the user to run when preparing to execute a task or after importing an inventory source." msgstr "Ansible バージョン 2.4 以降、タスク実行の準備時に必要に応じて vars プラグインのみを実行します。これにより、古いバージョンの Ansible のインベントリー構築中に発生した、費用のかかる「常に実行」動作が回避されます。Ansible バージョン 2.10 以降、vars プラグインの実行は、タスクの実行準備時またはインベントリーソースのインポート後に実行するようにユーザーが切り替えることができます。" -#: ../../rst/dev_guide/developing_plugins.rst:504 +#: ../../rst/dev_guide/developing_plugins.rst:508 msgid "The user must explicitly enable vars plugins that reside in a collection. See :ref:`enable_vars` for details." msgstr "ユーザーは、コレクションにある vars プラグインを明示的に有効にする必要があります。詳細は、:ref:`enable_vars` を参照してください。" -#: ../../rst/dev_guide/developing_plugins.rst:506 +#: ../../rst/dev_guide/developing_plugins.rst:510 msgid "Legacy vars plugins are always loaded and run by default. You can prevent them from automatically running by setting ``REQUIRES_ENABLED`` to True." msgstr "レガシー vars プラグインは常に読み込まれ、実行されます。``REQUIRES_ENABLED`` を True に設定すると、自動的に実行しないようにできます。" -#: ../../rst/dev_guide/developing_plugins.rst:513 +#: ../../rst/dev_guide/developing_plugins.rst:517 msgid "Include the ``vars_plugin_staging`` documentation fragment to allow users to determine when vars plugins run." msgstr "``vars_plugin_staging`` ドキュメントフラグメントを追加して、ユーザーが when vars プラグインの実行を判別できるようにします。" -#: ../../rst/dev_guide/developing_plugins.rst:533 +#: ../../rst/dev_guide/developing_plugins.rst:537 msgid "For example vars plugins, see the source code for the `vars plugins included with Ansible Core `_." msgstr "vars プラグインの例は、`Ansible Core に含まれる vars プラグイン `_ のソースコードを参照してください。" -#: ../../rst/dev_guide/developing_plugins.rst:543 +#: ../../rst/dev_guide/developing_plugins.rst:547 +#: ../../rst/dev_guide/sidecar.rst:94 msgid "Learn about how to develop dynamic inventory sources" msgstr "動的インベントリーソースの開発方法について" +#: ../../rst/dev_guide/developing_plugins.rst:554 +msgid ":ref:`adjacent_yaml_doc`" +msgstr ":ref:`adjacent_yaml_doc`" + +#: ../../rst/dev_guide/developing_plugins.rst:555 +msgid "Alternate YAML files as documentation" +msgstr "ドキュメントとしての代替 YAML ファイル" + #: ../../rst/dev_guide/developing_program_flow_modules.rst:6 msgid "Ansible module architecture" msgstr "Ansible モジュールのアーキテクチャー" @@ -6595,7 +6214,7 @@ msgid "Non-native want JSON modules" msgstr "ネイティブ以外の JSON モジュール" #: ../../rst/dev_guide/developing_program_flow_modules.rst:116 -msgid "If a module has the string ``WANT_JSON`` in it anywhere, Ansible treats it as a non-native module that accepts a filename as its only command line parameter. The filename is for a temporary file containing a :term:`JSON` string containing the module's parameters. The module needs to open the file, read and parse the parameters, operate on the data, and print its return data as a JSON encoded dictionary to stdout before exiting." +msgid "If a module has the string ``WANT_JSON`` in it anywhere, Ansible treats it as a non-native module that accepts a filename as its only command-line parameter. The filename is for a temporary file containing a :term:`JSON` string containing the module's parameters. The module needs to open the file, read and parse the parameters, operate on the data, and print its return data as a JSON encoded dictionary to stdout before exiting." msgstr "モジュールに文字列 ``WANT_JSON`` があると、Ansible は、ファイル名をコマンドラインパラメーターとしてのみ許可する非ネイティブモジュールとして扱います。ファイル名は、モジュールのパラメーターを含む :term:`JSON` 文字列を含む一時的なファイル向けです。モジュールはファイルを開き、パラメーターを読み取りおよび解析し、データで操作し、終了する前にその戻り値を JSON エンコードディレクトリーとして stdout に出力する必要があります。" #: ../../rst/dev_guide/developing_program_flow_modules.rst:123 @@ -6643,8 +6262,8 @@ msgid "Executor/task_executor" msgstr "Executor/task_executor" #: ../../rst/dev_guide/developing_program_flow_modules.rst:175 -msgid "The TaskExecutor receives the module name and parameters that were parsed from the :term:`playbook ` (or from the command line in the case of :command:`/usr/bin/ansible`). It uses the name to decide whether it's looking at a module or an :ref:`Action Plugin `. If it's a module, it loads the :ref:`Normal Action Plugin ` and passes the name, variables, and other information about the task and play to that Action Plugin for further processing." -msgstr "TaskExecutor は、:term:`Playbook ` (:command:`/usr/bin/ansible` の場合はコマンドライン) から解析されたモジュール名とパラメーターを受け取ります。これは、モジュールを見て、または :ref:`action プラグイン ` を見ているかを判断するために名前を使用します。モジュールの場合は、:ref:`Normal action プラグイン ` を読み込み、タスクとプレイに関する名前、変数、およびその他の情報をそのアクションプラグインに渡して、さらに処理します。" +msgid "The TaskExecutor receives the module name and parameters that were parsed from the :term:`playbook ` (or from the command-line in the case of :command:`/usr/bin/ansible`). It uses the name to decide whether it's looking at a module or an :ref:`Action Plugin `. If it's a module, it loads the :ref:`Normal Action Plugin ` and passes the name, variables, and other information about the task and play to that Action Plugin for further processing." +msgstr "TaskExecutor は、:term:`playbook ` (:command:`/usr/bin/ansible` の場合はコマンドライン) から解析されたモジュール名とパラメーターを受け取ります。これは、モジュールを見て、または :ref:`Action Plugin ` を見ているかを判断するために名前を使用します。モジュールの場合は、:ref:`Normal Action Plugin ` を読み込み、タスクとプレイに関する名前、変数、およびその他の情報をそのアクションプラグインに渡して、さらに処理します。" #: ../../rst/dev_guide/developing_program_flow_modules.rst:186 msgid "The ``normal`` action plugin" @@ -6751,7 +6370,7 @@ msgid ":code:`\"<>\"` is substituted with a msgstr ":code:`\"<>\"` は、:term:`JSON` でエンコードされたモジュールパラメーターの Python ``repr`` の文字列に置き換えます。JSON 文字列で ``repr`` を使用すると、Python ファイルに安全に埋め込むことができます。Ansiballz フレームワークの新しいスタイル Python モジュールでは、`AnsibleModule` をインスタンス化してから :attr:`AnsibleModule.params` を使用することで、これはより適切にアクセスされます。" #: ../../rst/dev_guide/developing_program_flow_modules.rst:281 -msgid ":code:`<>` substitutes a string which is a comma separated list of file systems which have a file system dependent security context in SELinux. In new-style Python modules, if you really need this you should instantiate an `AnsibleModule` and then use :attr:`AnsibleModule._selinux_special_fs`. The variable has also changed from a comma separated string of file system names to an actual python list of filesystem names." +msgid ":code:`<>` substitutes a string which is a comma-separated list of file systems which have a file system dependent security context in SELinux. In new-style Python modules, if you really need this you should instantiate an `AnsibleModule` and then use :attr:`AnsibleModule._selinux_special_fs`. The variable has also changed from a comma-separated string of file system names to an actual python list of file system names." msgstr ":code:`<>` は、SELinux にファイルシステムに依存するセキュリティーコンテキストがあるファイルシステムのコンマ区切りの一覧である文字列を置き換えます。新しいスタイルの Python モジュールで `AnsibleModule` をインスタンス化してから、:attr:`AnsibleModule._selinux_special_fs` を使用してください。また、この変数は、ファイルシステム名のコンマ区切りの文字列から、ファイルシステム名の実際の python のリストに変更されています。" #: ../../rst/dev_guide/developing_program_flow_modules.rst:288 @@ -6775,7 +6394,7 @@ msgid "Ansible wraps the zipfile in the Python script for two reasons:" msgstr "Ansible が Python スクリプトで zip ファイルをラップするには、以下の 2 つの理由があります。" #: ../../rst/dev_guide/developing_program_flow_modules.rst:324 -msgid "for compatibility with Python 2.6 which has a less functional version of Python's ``-m`` command line switch." +msgid "for compatibility with Python 2.6 which has a less functional version of Python's ``-m`` command-line switch." msgstr "Python の ``-m`` コマンドラインスイッチの機能が少ない Python 2.6 との互換性のため。" #: ../../rst/dev_guide/developing_program_flow_modules.rst:327 @@ -6783,271 +6402,372 @@ msgid "so that pipelining will function properly. Pipelining needs to pipe the P msgstr "パイプ処理が適切に機能します。Pipelining は Python モジュールをリモートノード上の Python インタープリターにパイプする必要があります。Python は stdin のスクリプトを理解しますが、zip ファイルを理解しません。" #: ../../rst/dev_guide/developing_program_flow_modules.rst:331 -msgid "Prior to Ansible 2.7, the module was executed via a second Python interpreter instead of being executed inside of the same process. This change was made once Python-2.4 support was dropped to speed up module execution." -msgstr "Ansible 2.7 より前のバージョンでは、同じプロセス内で実行されるのではなく 2 つ目の Python インタープリター経由で実行されます。この変更は、Python-2.4 サポートが破棄され、モジュール実行のスピードを高めました。" +msgid "Prior to Ansible 2.7, the module was executed by a second Python interpreter instead of being executed inside of the same process. This change was made once Python-2.4 support was dropped to speed up module execution." +msgstr "Ansible 2.7 より前のバージョンでは、同じプロセス内で実行されるのではなく 2 つ目の Python インタープリター経由で実行されていました。この変更は、モジュールの実行を高速化するために、Python-2.4 のサポートが打ち切られた時点で行われました。" #: ../../rst/dev_guide/developing_program_flow_modules.rst:335 msgid "In Ansiballz, any imports of Python modules from the :py:mod:`ansible.module_utils` package trigger inclusion of that Python file into the zipfile. Instances of :code:`#<>` in the module are turned into :code:`from ansible.module_utils.basic import *` and :file:`ansible/module-utils/basic.py` is then included in the zipfile. Files that are included from :file:`module_utils` are themselves scanned for imports of other Python modules from :file:`module_utils` to be included in the zipfile as well." msgstr "Ansiballzでは、:py:mod:`ansible.module_utils` パッケージからの Python モジュールのインポートにより、その Python ファイルが zip ファイルに追加されます。モジュール内の :code:`#<>` のインスタンスは :code:`from ansible.module_utils.basic import *` に変換され、その後 :file:`ansible/module-utils/basic.py` が zip ファイルに追加されます。:file:`module_utils` から追加されるファイルは、それ自体が :file:`module_utils` からの他の Python モジュールのインポートをスキャンし、同じように zip ファイルに追加します。" -#: ../../rst/dev_guide/developing_program_flow_modules.rst:345 -msgid "At present, the Ansiballz Framework cannot determine whether an import should be included if it is a relative import. Always use an absolute import that has :py:mod:`ansible.module_utils` in it to allow Ansiballz to determine that the file should be included." -msgstr "現状、Aweraiballz Framework は、相対インポートの場合にインポートを含める必要があるかどうかを判別できません。常に、その中に :py:mod:`ansible.module_utils` がある絶対インポートを使用して、このファイルを同梱する必要があると判断することができます。" - -#: ../../rst/dev_guide/developing_program_flow_modules.rst:354 +#: ../../rst/dev_guide/developing_program_flow_modules.rst:348 msgid "Passing args" msgstr "引数を渡す" -#: ../../rst/dev_guide/developing_program_flow_modules.rst:356 +#: ../../rst/dev_guide/developing_program_flow_modules.rst:350 msgid "Arguments are passed differently by the two frameworks:" msgstr "以下の 2 つのフレームワークでは、引数の渡し方が異なります。" -#: ../../rst/dev_guide/developing_program_flow_modules.rst:358 +#: ../../rst/dev_guide/developing_program_flow_modules.rst:352 msgid "In :ref:`module_replacer`, module arguments are turned into a JSON-ified string and substituted into the combined module file." msgstr ":ref:`module_replacer` では、モジュールの引数は JSON 化された文字列に変換され、結合されたモジュールファイルに置き換えられます。" -#: ../../rst/dev_guide/developing_program_flow_modules.rst:359 +#: ../../rst/dev_guide/developing_program_flow_modules.rst:353 msgid "In :ref:`Ansiballz`, the JSON-ified string is part of the script which wraps the zipfile. Just before the wrapper script imports the Ansible module as ``__main__``, it monkey-patches the private, ``_ANSIBLE_ARGS`` variable in ``basic.py`` with the variable values. When a :class:`ansible.module_utils.basic.AnsibleModule` is instantiated, it parses this string and places the args into :attr:`AnsibleModule.params` where it can be accessed by the module's other code." msgstr ":ref:`Ansiballz` では、JSON 化された文字列は、zip ファイルをラップするスクリプトの一部です。ラッパースクリプトが Ansible モジュールを ``__main__`` としてインポートする直前に、``basic.py`` のプライベート変数 ``_ANSIBLE_ARGS`` を変数値でモンキーパッチしています。:class:`ansible.module_utils.basic.AnsibleModule` がインスタンス化されると、この文字列を解析し、引数を :attr:`AnsibleModule.params` に配置し、モジュールの他のコードがアクセスできる場所に置きます。" -#: ../../rst/dev_guide/developing_program_flow_modules.rst:362 +#: ../../rst/dev_guide/developing_program_flow_modules.rst:356 msgid "If you are writing modules, remember that the way we pass arguments is an internal implementation detail: it has changed in the past and will change again as soon as changes to the common module_utils code allow Ansible modules to forgo using :class:`ansible.module_utils.basic.AnsibleModule`. Do not rely on the internal global ``_ANSIBLE_ARGS`` variable." msgstr "モジュールを作成している場合は、引数を渡す方法は内部実装の詳細であることに注意してください。これは過去に変更されており、共通のモジュールユーティリティーコードを変更すると、Ansible モジュールが :class:`ansible.module_utils.basic.AnsibleModule` の使用をやめるとすぐに再び変更されます。内部グローバル変数 ``_ANSIBLE_ARGS`` に依存しないでください。" -#: ../../rst/dev_guide/developing_program_flow_modules.rst:365 +#: ../../rst/dev_guide/developing_program_flow_modules.rst:359 msgid "Very dynamic custom modules which need to parse arguments before they instantiate an ``AnsibleModule`` may use ``_load_params`` to retrieve those parameters. Although ``_load_params`` may change in breaking ways if necessary to support changes in the code, it is likely to be more stable than either the way we pass parameters or the internal global variable." msgstr "``AnsibleModule`` をインスタンス化する前に引数を解析する必要のある非常に動的なカスタムモジュールは、``_load_params`` を使用してこれらのパラメーターを取得する場合があります。コードの変更をサポートする必要がある場合は、``_load_params`` が破壊的な方法で変更する可能性がありますが、パラメーターまたは内部グローバル変数を渡す方法よりも安定している可能性があります。" -#: ../../rst/dev_guide/developing_program_flow_modules.rst:371 +#: ../../rst/dev_guide/developing_program_flow_modules.rst:365 msgid "Prior to Ansible 2.7, the Ansible module was invoked in a second Python interpreter and the arguments were then passed to the script over the script's stdin." msgstr "Ansible 2.7 より前のバージョンでは、Ansible モジュールは 2 番目の Python インタープリターで呼び出され、引数はスクリプトの標準入力 (stdin) を介してスクリプトに渡されていました。" -#: ../../rst/dev_guide/developing_program_flow_modules.rst:378 +#: ../../rst/dev_guide/developing_program_flow_modules.rst:372 msgid "Internal arguments" msgstr "内部引数" -#: ../../rst/dev_guide/developing_program_flow_modules.rst:380 -msgid "Both :ref:`module_replacer` and :ref:`Ansiballz` send additional arguments to the module beyond those which the user specified in the playbook. These additional arguments are internal parameters that help implement global Ansible features. Modules often do not need to know about these explicitly as the features are implemented in :py:mod:`ansible.module_utils.basic` but certain features need support from the module so it's good to know about them." -msgstr ":ref:`module_replacer` および :ref:`Ansiballz` の両方は、Playbook で指定したユーザー以外に追加の引数をモジュールに送信します。これらの追加の引数は、Ansible のグローバル機能の実装に役立つ内部パラメーターです。これらの機能は、:py:mod:`ansible.module_utils.basic` に実装されているため、モジュールが明示的に理解する必要がないことがしばしばありますが、機能についてある程度理解できるように、モジュールから特定の機能のサポートが必要になります。" +#: ../../rst/dev_guide/developing_program_flow_modules.rst:374 +msgid "Both :ref:`module_replacer` and :ref:`Ansiballz` send additional arguments to the Ansible module beyond those which the user specified in the playbook. These additional arguments are internal parameters that help implement global Ansible features. Modules often do not need to know about these explicitly because the features are implemented in :py:mod:`ansible.module_utils.basic`. However, certain features need support from modules and some knowledge of the internal arguments is useful." +msgstr ":ref:`module_replacer` および :ref:`Ansiballz` の両方は、Playbook で指定したユーザー以外に追加の引数を Ansible モジュールに送信します。これらの追加の引数は、Ansible のグローバル機能の実装に役立つ内部パラメーターです。これらの機能は、:py:mod:`ansible.module_utils.basic` に実装されているため、モジュールが明示的に理解する必要がないことがしばしばあります。ただし、特定の機能はモジュールからのサポートが必要であり、内部引数に関する知識は有用です。" -#: ../../rst/dev_guide/developing_program_flow_modules.rst:387 -msgid "The internal arguments listed here are global. If you need to add a local internal argument to a custom module, create an action plugin for that specific module - see ``_original_basename`` in the `copy action plugin `_ for an example." -msgstr "ここに記載されている内部引数はグローバルです。カスタムモジュールにローカルの内部引数を追加する必要がある場合は、その特定のモジュールに action プラグインを作成してください。例は、「`copy action plugin `_」の「``_original_basename``」を参照してください。" +#: ../../rst/dev_guide/developing_program_flow_modules.rst:381 +msgid "The internal arguments in this section are global. If you need to add a local internal argument to a custom module, create an action plugin for that specific module. See ``_original_basename`` in the `copy action plugin `_ for an example." +msgstr "このセクションに記載されている内部引数はグローバルです。カスタムモジュールにローカルの内部引数を追加する必要がある場合は、その特定のモジュールに action プラグインを作成してください。その例として、`copy action plugin `_ の ``_original_basename`` を参照してください。" -#: ../../rst/dev_guide/developing_program_flow_modules.rst:390 +#: ../../rst/dev_guide/developing_program_flow_modules.rst:385 msgid "_ansible_no_log" msgstr "_ansible_no_log" -#: ../../rst/dev_guide/developing_program_flow_modules.rst:392 -msgid "Boolean. Set to True whenever a parameter in a task or play specifies ``no_log``. Any module that calls :py:meth:`AnsibleModule.log` handles this automatically. If a module implements its own logging then it needs to check this value. To access in a module, instantiate an ``AnsibleModule`` and then check the value of :attr:`AnsibleModule.no_log`." -msgstr "ブール値。タスクまたはプレイのパラメーターを ``no_log`` に指定した場合は常に True に設定します。:py:meth:`AnsibleModule.log` を呼び出すモジュールが自動的にこれを処理します。モジュールがその独自のロギングを実装した場合は、この値を確認する必要があります。モジュールにアクセスするには、``AnsibleModule`` をインスタンス化して、:attr:`AnsibleModule.no_log` の値を確認します。" +#: ../../rst/dev_guide/developing_program_flow_modules.rst:387 +#: ../../rst/dev_guide/developing_program_flow_modules.rst:398 +#: ../../rst/dev_guide/developing_program_flow_modules.rst:406 +#: ../../rst/dev_guide/developing_program_flow_modules.rst:480 +#: ../../rst/dev_guide/developing_program_flow_modules.rst:493 +msgid "Type: ``bool``" +msgstr "タイプ: ``bool``" -#: ../../rst/dev_guide/developing_program_flow_modules.rst:397 -msgid "``no_log`` specified in a module's argument_spec is handled by a different mechanism." -msgstr "モジュールの argument_spec で指定された ``no_log`` は別のメカニズムで処理されます。" +#: ../../rst/dev_guide/developing_program_flow_modules.rst:389 +msgid "Set to ``True`` whenever an argument in a task or play specifies ``no_log``. Any module that calls the :py:meth:`AnsibleModule.log` function handles this action automatically. If you have a module that implements its own logging then you need to check the value of ``_ansible_no_log``. To access ``_ansible_no_log`` in a module, instantiate the ``AnsibleModule`` utility and then check the value of :attr:`AnsibleModule.no_log`." +msgstr "タスクまたはプレイの引数が ``no_log`` を指定した場合は ``True`` に設定します。:py:meth:`AnsibleModule.log` 関数を呼び出すモジュールは、このアクションを自動的に処理します。独自のロギングを実装するモジュールがある場合は、``_ansible_no_log`` の値を確認する必要があります。モジュール内の ``_ansible_no_log`` にアクセスするには、``AnsibleModule`` ユーティリティーをインスタンス化してから :attr:`AnsibleModule.no_log` の値を確認します。" -#: ../../rst/dev_guide/developing_program_flow_modules.rst:400 +#: ../../rst/dev_guide/developing_program_flow_modules.rst:392 +msgid "``no_log`` specified in a module's ``argument_spec`` is handled by a different mechanism." +msgstr "モジュールの ``argument_spec`` で指定された ``no_log`` は、別のメカニズムで処理されます。" + +#: ../../rst/dev_guide/developing_program_flow_modules.rst:396 msgid "_ansible_debug" msgstr "_ansible_debug" -#: ../../rst/dev_guide/developing_program_flow_modules.rst:402 -msgid "Boolean. Turns more verbose logging on or off and turns on logging of external commands that the module executes. If a module uses :py:meth:`AnsibleModule.debug` rather than :py:meth:`AnsibleModule.log` then the messages are only logged if ``_ansible_debug`` is set to ``True``. To set, add ``debug: True`` to :file:`ansible.cfg` or set the environment variable :envvar:`ANSIBLE_DEBUG`. To access in a module, instantiate an ``AnsibleModule`` and access :attr:`AnsibleModule._debug`." -msgstr "ブール値。詳細なロギングをオンまたはオフにし、モジュールが実行する外部コマンドのロギングを有効にします。モジュールが :py:meth:`AnsibleModule.log` ではなく :py:meth:`AnsibleModule.debug` を使用する場合は、``_ansible_debug`` が ``True`` に設定されている場合にのみメッセージがログに記録されます。設定するには、``debug: True`` を :file:`ansible.cfg` に追加するか、環境変数 :envvar:`ANSIBLE_DEBUG` を設定します。モジュールにアクセスするには、``AnsibleModule`` をインスタンス化し、:attr:`AnsibleModule._debug` にアクセスします。" +#: ../../rst/dev_guide/developing_program_flow_modules.rst:400 +msgid "Operates verbose logging and logging of external commands that a module executes. If the module uses the :py:meth:`AnsibleModule.debug` function rather than the :py:meth:`AnsibleModule.log` function then the messages are only logged if you set the ``_ansible_debug`` argument to ``True``. To access ``_ansible_debug`` in a module, instantiate the ``AnsibleModule`` utility and access :attr:`AnsibleModule._debug`. For more details, see :ref:`DEFAULT_DEBUG`." +msgstr "詳細ロギングと、モジュールが実行する外部コマンドのロギングを操作します。モジュールが、:py:meth:`AnsibleModule.log` 関数ではなく :py:meth:`AnsibleModule.debug` 関数を使用する場合、``_ansible_debug`` 引数を ``True`` に設定しなければメッセージはログに記録されません。モジュールの ``_ansible_debug`` にアクセスするには、``AnsibleModule`` ユーティリティーをインスタンス化し、:attr:`AnsibleModule._debug` にアクセスします。詳細は :ref:`DEFAULT_DEBUG` を参照してください。" -#: ../../rst/dev_guide/developing_program_flow_modules.rst:411 +#: ../../rst/dev_guide/developing_program_flow_modules.rst:404 msgid "_ansible_diff" msgstr "_ansible_diff" -#: ../../rst/dev_guide/developing_program_flow_modules.rst:413 -msgid "Boolean. If a module supports it, tells the module to show a unified diff of changes to be made to templated files. To set, pass the ``--diff`` command line option. To access in a module, instantiate an `AnsibleModule` and access :attr:`AnsibleModule._diff`." -msgstr "ブール値。モジュールがサポートする場合は、モジュールに対し、テンプレート化されたファイルに加えられた変更の差異を統合するようにモジュールに指示します。設定するには、``--diff`` コマンドラインオプションを渡します。モジュールにアクセスするには、`AnsibleModule` をインスタンス化して、:attr:`AnsibleModule._diff` にアクセスしてください。" +#: ../../rst/dev_guide/developing_program_flow_modules.rst:408 +msgid "With this parameter you can configure your module to show a unified diff of changes that will be applied to the templated files. To access ``_ansible_diff`` in a module, instantiate the ``AnsibleModule`` utility and access :attr:`AnsibleModule._diff`. You can also access this parameter using the ``diff`` keyword in your playbook, or the relevant environment variable. For more details, see :ref:`playbook_keywords` and the :ref:`DIFF_ALWAYS` configuration option." +msgstr "このパラメーターを使用すると、テンプレート化されたファイルに適用される変更の統合差分を表示するようにモジュールを設定できます。モジュールの ``_ansible_diff`` にアクセスするには、``AnsibleModule`` ユーティリティーをインスタンス化し、:attr:`AnsibleModule._diff` にアクセスします。このパラメーターには、Playbook の ``diff`` キーワードを使用するか、関連する環境変数を使用してもアクセスできます。詳細は、:ref:`playbook_keywords` および :ref:`DIFF_ALWAYS` 設定オプションを参照してください。" -#: ../../rst/dev_guide/developing_program_flow_modules.rst:419 +#: ../../rst/dev_guide/developing_program_flow_modules.rst:412 msgid "_ansible_verbosity" msgstr "_ansible_verbosity" -#: ../../rst/dev_guide/developing_program_flow_modules.rst:421 -msgid "Unused. This value could be used for finer grained control over logging." -msgstr "未使用。この値は、ログをより細かく制御するために使用できます。" +#: ../../rst/dev_guide/developing_program_flow_modules.rst:414 +msgid "Type: ``int``" +msgstr "タイプ: ``int``" + +#: ../../rst/dev_guide/developing_program_flow_modules.rst:416 +msgid "You can use this argument to control the level (0 for none) of verbosity in logging." +msgstr "この引数を使用して、ロギングの詳細レベル (なしの場合は 0) を制御できます。" -#: ../../rst/dev_guide/developing_program_flow_modules.rst:424 +#: ../../rst/dev_guide/developing_program_flow_modules.rst:420 msgid "_ansible_selinux_special_fs" msgstr "_ansible_selinux_special_fs" -#: ../../rst/dev_guide/developing_program_flow_modules.rst:426 -msgid "List. Names of filesystems which should have a special SELinux context. They are used by the `AnsibleModule` methods which operate on files (changing attributes, moving, and copying). To set, add a comma separated string of filesystem names in :file:`ansible.cfg`:" -msgstr "一覧。特別な SELinux コンテキストを持つ必要があるファイルシステムの名前。名前はファイル (属性の変更、移動、コピー) で操作する `AnsibleModule` メソッドによって使用されます。設定するには、:file:`ansible.cfg` に、ファイル名のコンマ区切りの文字列を追加します。" +#: ../../rst/dev_guide/developing_program_flow_modules.rst:422 +msgid "Type: ``list`` Elements: ``strings``" +msgstr "タイプ: ``list`` 要素: ``strings``" -#: ../../rst/dev_guide/developing_program_flow_modules.rst:436 -msgid "Most modules can use the built-in ``AnsibleModule`` methods to manipulate files. To access in a module that needs to know about these special context filesystems, instantiate an ``AnsibleModule`` and examine the list in :attr:`AnsibleModule._selinux_special_fs`." -msgstr "ほとんどのモジュールは、ファイルを操作する組み込み ``AnsibleModule`` メソッドを使用できます。これらの特別なコンテキストファイルシステムについて知る必要があるモジュールにアクセスするには、``AnsibleModule`` をインスタンス化し、:attr:`AnsibleModule._selinux_special_fs` でリストを調べます。" +#: ../../rst/dev_guide/developing_program_flow_modules.rst:425 +msgid "This argument provides modules with the names of file systems which should have a special SELinux context. They are used by the ``AnsibleModule`` methods which operate on files (changing attributes, moving, and copying)." +msgstr "この引数は、特別な SELinux コンテキストを持つ必要があるファイルシステムの名前をモジュールに提供します。それらは、ファイルで操作する ``AnsibleModule`` メソッド (属性の変更、移動、およびコピー) で使用されます。" -#: ../../rst/dev_guide/developing_program_flow_modules.rst:440 -msgid "This replaces :attr:`ansible.module_utils.basic.SELINUX_SPECIAL_FS` from :ref:`module_replacer`. In module replacer it was a comma separated string of filesystem names. Under Ansiballz it's an actual list." -msgstr "これにより、:ref:`module_replacer` の :attr:`ansible.module_utils.basic.SELINUX_SPECIAL_FS` を置き換えます。モジュール置換は、ファイル名のコンマ区切りの文字列でした。Ansiballz は、実際のリストになります。" +#: ../../rst/dev_guide/developing_program_flow_modules.rst:427 +msgid "Most modules can use the built-in ``AnsibleModule`` methods to manipulate files. To access in a module that needs to know about these special context file systems, instantiate ``AnsibleModule`` and examine the list in :attr:`AnsibleModule._selinux_special_fs`." +msgstr "ほとんどのモジュールは、ビルトイン ``AnsibleModule`` メソッドを使用してファイルを操作できます。これらの特別なコンテキストファイルシステムについて知る必要があるモジュールにアクセスするには、``AnsibleModule`` をインスタンス化し、:attr:`AnsibleModule._selinux_special_fs` でリストを調べます。" -#: ../../rst/dev_guide/developing_program_flow_modules.rst:447 +#: ../../rst/dev_guide/developing_program_flow_modules.rst:429 +msgid "This argument replaces :attr:`ansible.module_utils.basic.SELINUX_SPECIAL_FS` from :ref:`module_replacer`. In the module replacer framework the argument was formatted as a comma-separated string of file system names. Under the Ansiballz framework it is a list. You can access ``_ansible_selinux_special_fs`` using the corresponding environment variable. For more details, see the :ref:`DEFAULT_SELINUX_SPECIAL_FS` configuration option." +msgstr "この引数は、:ref:`module_replacer` から :attr:`ansible.module_utils.basic.SELINUX_SPECIAL_FS` を置き換えます。モジュール置換フレームワークでは、引数はファイルシステム名のコンマ区切り文字列としてフォーマットされていました。リストは Ansiballz フレームワークの下にあります。対応する環境変数を使用すると、``_ansible_selinux_special_fs`` にアクセスできます。詳細は、:ref:`DEFAULT_SELINUX_SPECIAL_FS` 設定オプションを参照してください。" + +#: ../../rst/dev_guide/developing_program_flow_modules.rst:435 msgid "_ansible_syslog_facility" msgstr "_ansible_syslog_facility" -#: ../../rst/dev_guide/developing_program_flow_modules.rst:449 -msgid "This parameter controls which syslog facility Ansible module logs to. To set, change the ``syslog_facility`` value in :file:`ansible.cfg`. Most modules should just use :meth:`AnsibleModule.log` which will then make use of this. If a module has to use this on its own, it should instantiate an `AnsibleModule` and then retrieve the name of the syslog facility from :attr:`AnsibleModule._syslog_facility`. The Ansiballz code is less hacky than the old :ref:`module_replacer` code:" -msgstr "このパラメーターは、Ansible モジュールがどの syslog 機能にログを記録するかを制御します。設定するには、:file:`ansible.cfg` の ``syslog_facility`` の値を変更します。多くのモジュールは、これを利用する :meth:`AnsibleModule.log` のみを使用する必要があります。モジュールが独自にこれを使用する必要がある場合は、`AnsibleModule` をインスタンス化して、:attr:`AnsibleModule._syslog_facility` から syslog 機能の名前を取得する必要があります。Ansiballz コードは古い :ref:`module_replacer` コードよりもハッキングされません。" +#: ../../rst/dev_guide/developing_program_flow_modules.rst:437 +msgid "This argument controls which syslog facility the module logs to. Most modules should just use the :meth:`AnsibleModule.log` function which will then make use of this. If a module has to use this on its own, it should instantiate the ``AnsibleModule`` method and then retrieve the name of the syslog facility from :attr:`AnsibleModule._syslog_facility`. The Ansiballz code is less elegant than the :ref:`module_replacer` code:" +msgstr "この引数は、どの syslog 機能にログを記録するかを制御します。ほとんどのモジュールは、これを使用する :meth:`AnsibleModule.log` 関数を使用する必要があります。モジュールがこれを独自に使用する必要がある場合は、``AnsibleModule`` メソッドをインスタンス化してから、:attr:`AnsibleModule._syslog_facility` から syslog ファシリティーの名前を取得します。Ansiballz コードは、:ref:`module_replacer`コードほど的確ではありません。" + +#: ../../rst/dev_guide/developing_program_flow_modules.rst:451 +msgid "For more details, see the :ref:`DEFAULT_SYSLOG_FACILITY` configuration option." +msgstr "詳細は、:ref:`DEFAULT_SYSLOG_FACILITY` 設定オプションを参照してください。" -#: ../../rst/dev_guide/developing_program_flow_modules.rst:470 +#: ../../rst/dev_guide/developing_program_flow_modules.rst:457 msgid "_ansible_version" msgstr "_ansible_version" -#: ../../rst/dev_guide/developing_program_flow_modules.rst:472 -msgid "This parameter passes the version of Ansible that runs the module. To access it, a module should instantiate an `AnsibleModule` and then retrieve it from :attr:`AnsibleModule.ansible_version`. This replaces :attr:`ansible.module_utils.basic.ANSIBLE_VERSION` from :ref:`module_replacer`." -msgstr "このパラメーターは、モジュールを実行する Ansible のバージョンを渡します。これにアクセスするために、モジュールは `AnsibleModule` をインスタンス化し、:attr:`AnsibleModule.ansible_version` から取得する必要があります。これは、:ref:`module_replacer` の :attr:`ansible.module_utils.basic.ANSIBLE_VERSION` を置き換えます。" +#: ../../rst/dev_guide/developing_program_flow_modules.rst:459 +msgid "This argument passes the version of Ansible to the module. To access it, a module should instantiate the ``AnsibleModule`` method and then retrieve the version from :attr:`AnsibleModule.ansible_version`. This replaces :attr:`ansible.module_utils.basic.ANSIBLE_VERSION` from :ref:`module_replacer`." +msgstr "この因数は、Ansible のバージョンをモジュールに渡します。これにアクセスする場合、モジュールは ``AnsibleModule`` メソッドをインスタンス化してから、:attr:`AnsibleModule.ansible_version` でバージョンを取得する必要があります。これは:ref:`module_replacer` の :attr:`ansible.module_utils.basic.ANSIBLE_VERSION` を置き換えます。" + +#: ../../rst/dev_guide/developing_program_flow_modules.rst:465 +msgid "_ansible_module_name" +msgstr "_ansible_module_name" + +#: ../../rst/dev_guide/developing_program_flow_modules.rst:467 +#: ../../rst/dev_guide/developing_program_flow_modules.rst:501 +msgid "Type: ``str``" +msgstr "タイプ: ``str``" -#: ../../rst/dev_guide/developing_program_flow_modules.rst:484 +#: ../../rst/dev_guide/developing_program_flow_modules.rst:469 +msgid "This argument passes the information to modules about their name. For more details see, the configuration option :ref:`DEFAULT_MODULE_NAME`." +msgstr "この引数は、名前に関する情報をモジュールに渡します。詳細は、設定オプション :ref:`DEFAULT_MODULE_NAME` を参照してください。" + +#: ../../rst/dev_guide/developing_program_flow_modules.rst:473 +msgid "_ansible_string_conversion_action" +msgstr "_ansible_string_conversion_action" + +#: ../../rst/dev_guide/developing_program_flow_modules.rst:474 +msgid "This argument provides instructions about what modules should do after the values of the user-specified module parameters are converted to strings. For more details, see the :ref:`STRING_CONVERSION_ACTION` configuration option." +msgstr "この引数は、ユーザーが指定したモジュールパラメーターの値が文字列に変換された後に、モジュールが何をすべきかについての指示を提供します。詳細は、:ref:`STRING_CONVERSION_ACTION` 設定オプションを参照してください。" + +#: ../../rst/dev_guide/developing_program_flow_modules.rst:478 +msgid "_ansible_keep_remote_files" +msgstr "_ansible_keep_remote_files" + +#: ../../rst/dev_guide/developing_program_flow_modules.rst:482 +msgid "This argument provides instructions that modules must be ready if they need to keep the remote files. For more details, see the :ref:`DEFAULT_KEEP_REMOTE_FILES` configuration option." +msgstr "この引数は、モジュールがリモートファイルを保持する必要がある場合に、モジュールを準備するための指示を提供します。詳細は :ref:`DEFAULT_KEEP_REMOTE_FILES` 設定オプションを参照してください。" + +#: ../../rst/dev_guide/developing_program_flow_modules.rst:486 +msgid "_ansible_socket" +msgstr "_ansible_socket" + +#: ../../rst/dev_guide/developing_program_flow_modules.rst:487 +msgid "This argument provides modules with a socket for persistent connections. The argument is created using the :ref:`PERSISTENT_CONTROL_PATH_DIR` configuration option." +msgstr "この因数は、永続的な接続のためのソケットをモジュールに提供します。この引数は、:ref:`PERSISTENT_CONTROL_PATH_DIR` 設定オプションを使用して作成されます。" + +#: ../../rst/dev_guide/developing_program_flow_modules.rst:491 +msgid "_ansible_shell_executable" +msgstr "_ansible_shell_executable" + +#: ../../rst/dev_guide/developing_program_flow_modules.rst:495 +msgid "This argument ensures that modules use the designated shell executable. For more details, see the :ref:`ansible_shell_executable` remote host environment parameter." +msgstr "この引数は、モジュールが指定されたシェル実行可能ファイルを使用することを保証します。詳細は、:ref:`ansible_shell_executable` リモートホスト環境パラメーターを参照してください。" + +#: ../../rst/dev_guide/developing_program_flow_modules.rst:499 +msgid "_ansible_tmpdir" +msgstr "_ansible_tmpdir" + +#: ../../rst/dev_guide/developing_program_flow_modules.rst:503 +msgid "This argument provides instructions to modules that all commands must use the designated temporary directory, if created. The action plugin designs this temporary directory." +msgstr "この引数は、作成された場合にすべてのコマンドが指定された一時ディレクトリーを使用する必要があるモジュールへの指示を提供します。アクションプラグインは、この一時ディレクトリーを設計します。" + +#: ../../rst/dev_guide/developing_program_flow_modules.rst:505 +msgid "Modules can access this parameter by using the public ``tmpdir`` property. The ``tmpdir`` property will create a temporary directory if the action plugin did not set the parameter." +msgstr "モジュールは、パブリック ``tmpdir`` プロパティーを使用してこのパラメーターにアクセスできます。アクションプラグインがこのパラメーターを設定しなかった場合、``tmpdir`` プロパティーは一時ディレクトリーを作成します。" + +#: ../../rst/dev_guide/developing_program_flow_modules.rst:507 +msgid "The directory name is generated randomly, and the the root of the directory is determined by one of these:" +msgstr "ディレクトリー名はランダムに生成され、ディレクトリーのルートは次のいずれかによって決定されます。" + +#: ../../rst/dev_guide/developing_program_flow_modules.rst:509 +msgid ":ref:`DEFAULT_LOCAL_TMP`" +msgstr ":ref:`DEFAULT_LOCAL_TMP`" + +#: ../../rst/dev_guide/developing_program_flow_modules.rst:510 +msgid "`remote_tmp `_" +msgstr "`remote_tmp `_" + +#: ../../rst/dev_guide/developing_program_flow_modules.rst:511 +msgid "`system_tmpdirs `_" +msgstr "`system_tmpdirs `_" + +#: ../../rst/dev_guide/developing_program_flow_modules.rst:513 +msgid "As a result, using the ``ansible.cfg`` configuration file to activate or customize this setting will not guarantee that you control the full value." +msgstr "そのため、``ansible.cfg`` 設定ファイルを使用してこの設定をアクティブ化またはカスタマイズしても、完全な値を制御できるとは限りません。" + +#: ../../rst/dev_guide/developing_program_flow_modules.rst:517 +msgid "_ansible_remote_tmp" +msgstr "_ansible_remote_tmp" + +#: ../../rst/dev_guide/developing_program_flow_modules.rst:519 +msgid "The module's ``tmpdir`` property creates a randomized directory name in this directory if the action plugin did not set ``_ansible_tmpdir``. For more details, see the `remote_tmp `_ parameter of the shell plugin." +msgstr "アクションプラグインが ``_ansible_tmpdir`` を設定しなかった場合、モジュールの ``tmpdir`` プロパティーは、このディレクトリー内でランダム化されたディレクトリー名を作成します。詳細は `remote_tmp `_ シェルプラグインのパラメーターを参照してください。" + +#: ../../rst/dev_guide/developing_program_flow_modules.rst:525 msgid "Module return values & Unsafe strings" msgstr "モジュール戻り値と安全でない文字列" -#: ../../rst/dev_guide/developing_program_flow_modules.rst:486 +#: ../../rst/dev_guide/developing_program_flow_modules.rst:527 msgid "At the end of a module's execution, it formats the data that it wants to return as a JSON string and prints the string to its stdout. The normal action plugin receives the JSON string, parses it into a Python dictionary, and returns it to the executor." msgstr "モジュールの実行の最後に、返したいデータを JSON 文字列として形式化し、その文字列を標準出力 (stdout) に出力します。通常の action プラグインは JSON 文字列を受け取り、Python ディクショナリーに解析してエクゼキューターに返します。" -#: ../../rst/dev_guide/developing_program_flow_modules.rst:488 +#: ../../rst/dev_guide/developing_program_flow_modules.rst:529 msgid "If Ansible templated every string return value, it would be vulnerable to an attack from users with access to managed nodes. If an unscrupulous user disguised malicious code as Ansible return value strings, and if those strings were then templated on the controller, Ansible could execute arbitrary code. To prevent this scenario, Ansible marks all strings inside returned data as ``Unsafe``, emitting any Jinja2 templates in the strings verbatim, not expanded by Jinja2." msgstr "Ansible がすべての文字列の戻り値をテンプレート化すると、管理ノードにアクセスできるユーザーからの攻撃に対して脆弱になります。悪意のあるユーザーが悪意のあるコードを Ansible の戻り値の文字列として偽装し、そのような文字列がコントローラー上でテンプレート化されると、Ansible が任意のコードを実行する可能性があります。このシナリオを防ぐために、Ansible は戻り値のデータ内のすべての文字列を ``Unsafe`` と表示し、文字列内の Jinja2 テンプレートを Jinja2 で展開せずにそのままエミットします。" -#: ../../rst/dev_guide/developing_program_flow_modules.rst:490 +#: ../../rst/dev_guide/developing_program_flow_modules.rst:531 msgid "Strings returned by invoking a module through ``ActionPlugin._execute_module()`` are automatically marked as ``Unsafe`` by the normal action plugin. If another action plugin retrieves information from a module through some other means, it must mark its return data as ``Unsafe`` on its own." msgstr "``ActionPlugin._execute_module()`` を介してモジュールを呼び出して返された文字列には、通常の action プラグインによって自動的に ``Unsafe`` というマークが付きます。別の action プラグインが他の方法でモジュールから情報を取得した場合は、その action プラグイン自身がその戻り値に ``Unsafe`` と表示する必要があります。" -#: ../../rst/dev_guide/developing_program_flow_modules.rst:492 +#: ../../rst/dev_guide/developing_program_flow_modules.rst:533 msgid "In case a poorly-coded action plugin fails to mark its results as \"Unsafe,\" Ansible audits the results again when they are returned to the executor, marking all strings as ``Unsafe``. The normal action plugin protects itself and any other code that it calls with the result data as a parameter. The check inside the executor protects the output of all other action plugins, ensuring that subsequent tasks run by Ansible will not template anything from those results either." msgstr "不適切にコーディングされた action プラグインが結果を「Unsafe」と表示しなかった場合、Ansible はエグゼキューターに返される際に結果を再度監査し、すべての文字列を ``Unsafe`` と表示します。通常の action プラグインは、自身と、結果データをパラメーターとして呼び出すその他のコードを保護します。エクゼキュータ内のチェックは、他のすべての action プラグインの出力を保護し、Ansible が実行する後続のタスクがこれらの結果から何かをテンプレート化することがないようにします。" -#: ../../rst/dev_guide/developing_program_flow_modules.rst:498 +#: ../../rst/dev_guide/developing_program_flow_modules.rst:539 msgid "Special considerations" msgstr "特別な考慮事項" -#: ../../rst/dev_guide/developing_program_flow_modules.rst:503 +#: ../../rst/dev_guide/developing_program_flow_modules.rst:544 msgid "Pipelining" msgstr "パイプライン" -#: ../../rst/dev_guide/developing_program_flow_modules.rst:505 +#: ../../rst/dev_guide/developing_program_flow_modules.rst:546 msgid "Ansible can transfer a module to a remote machine in one of two ways:" msgstr "Ansible は、以下のいずれかの方法で、モジュールをリモートマシンに転送できます。" -#: ../../rst/dev_guide/developing_program_flow_modules.rst:507 +#: ../../rst/dev_guide/developing_program_flow_modules.rst:548 msgid "it can write out the module to a temporary file on the remote host and then use a second connection to the remote host to execute it with the interpreter that the module needs" msgstr "これは、リモートホストの一時ファイルにモジュールを書き込むことができ、次にリモートホストへの 2 番目の接続を使用して、モジュールが必要とするインタープリターでこれを実行します。" -#: ../../rst/dev_guide/developing_program_flow_modules.rst:510 +#: ../../rst/dev_guide/developing_program_flow_modules.rst:551 msgid "or it can use what's known as pipelining to execute the module by piping it into the remote interpreter's stdin." msgstr "または、パイプラインと呼ばれるものを使用して、モジュールをリモートインタープリターの stdin にパイプすることでモジュールを実行できます。" -#: ../../rst/dev_guide/developing_program_flow_modules.rst:513 -msgid "Pipelining only works with modules written in Python at this time because Ansible only knows that Python supports this mode of operation. Supporting pipelining means that whatever format the module payload takes before being sent over the wire must be executable by Python via stdin." +#: ../../rst/dev_guide/developing_program_flow_modules.rst:554 +msgid "Pipelining only works with modules written in Python at this time because Ansible only knows that Python supports this mode of operation. Supporting pipelining means that whatever format the module payload takes before being sent over the wire must be executable by Python through stdin." msgstr "パイプライン処理は、現時点では Python で記述されたモジュールでのみ機能します。これは、Python がこの操作モードをサポートしていることのみを Ansible が認識しているためです。パイプライン化をサポートするということは、モジュールペイロードがネットワーク経由で送信される前に取る形式が何であれ、Python が stdin を介して実行可能でなければならないことを意味します。" -#: ../../rst/dev_guide/developing_program_flow_modules.rst:521 +#: ../../rst/dev_guide/developing_program_flow_modules.rst:562 msgid "Why pass args over stdin?" msgstr "標準入力 (stdin) で引数を渡す理由" -#: ../../rst/dev_guide/developing_program_flow_modules.rst:523 -msgid "Passing arguments via stdin was chosen for the following reasons:" +#: ../../rst/dev_guide/developing_program_flow_modules.rst:564 +msgid "Passing arguments through stdin was chosen for the following reasons:" msgstr "以下の理由により、標準入力で引数を渡すことが選択されました。" -#: ../../rst/dev_guide/developing_program_flow_modules.rst:525 +#: ../../rst/dev_guide/developing_program_flow_modules.rst:566 msgid "When combined with :ref:`ANSIBLE_PIPELINING`, this keeps the module's arguments from temporarily being saved onto disk on the remote machine. This makes it harder (but not impossible) for a malicious user on the remote machine to steal any sensitive information that may be present in the arguments." msgstr ":ref:`ANSIBLE_PIPELINING` と組み合わせると、モジュールの引数をリモートマシン上のディスクに一時的に保存したままにします。これにより、リモートマシン上の悪意のあるユーザーが引数に存在する可能性のある機密情報を盗むのが困難になります (不可能ではありません)。" -#: ../../rst/dev_guide/developing_program_flow_modules.rst:529 +#: ../../rst/dev_guide/developing_program_flow_modules.rst:570 msgid "Command line arguments would be insecure as most systems allow unprivileged users to read the full commandline of a process." msgstr "ほとんどのシステムでは、権限のないユーザーがプロセスのコマンドライン全体を読むことを許可されているため、コマンドライン引数は安全ではありません。" -#: ../../rst/dev_guide/developing_program_flow_modules.rst:531 +#: ../../rst/dev_guide/developing_program_flow_modules.rst:572 msgid "Environment variables are usually more secure than the commandline but some systems limit the total size of the environment. This could lead to truncation of the parameters if we hit that limit." msgstr "環境変数は通常コマンドラインより安全ですが、環境の合計サイズを制限するシステムもあります。これにより、パラメーターが上限に達すると、パラメーターが切り捨てられる可能性があります。" -#: ../../rst/dev_guide/developing_program_flow_modules.rst:539 +#: ../../rst/dev_guide/developing_program_flow_modules.rst:580 msgid "AnsibleModule" msgstr "AnsibleModule" -#: ../../rst/dev_guide/developing_program_flow_modules.rst:544 +#: ../../rst/dev_guide/developing_program_flow_modules.rst:585 msgid "Argument spec" msgstr "引数の仕様" -#: ../../rst/dev_guide/developing_program_flow_modules.rst:546 +#: ../../rst/dev_guide/developing_program_flow_modules.rst:587 msgid "The ``argument_spec`` provided to ``AnsibleModule`` defines the supported arguments for a module, as well as their type, defaults and more." msgstr "``AnsibleModule`` に提供される ``argument_spec`` は、モジュールでサポートされる引数、その型、デフォルトなどを定義します。" -#: ../../rst/dev_guide/developing_program_flow_modules.rst:548 +#: ../../rst/dev_guide/developing_program_flow_modules.rst:589 msgid "Example ``argument_spec``:" msgstr "``argument_spec`` の例:" -#: ../../rst/dev_guide/developing_program_flow_modules.rst:564 +#: ../../rst/dev_guide/developing_program_flow_modules.rst:605 msgid "This section will discuss the behavioral attributes for arguments:" msgstr "本セクションでは、引数の動作属性を説明します。" -#: ../../rst/dev_guide/developing_program_flow_modules.rst:568 +#: ../../rst/dev_guide/developing_program_flow_modules.rst:609 msgid "``type`` allows you to define the type of the value accepted for the argument. The default value for ``type`` is ``str``. Possible values are:" msgstr "``type`` では、引数に受け入れられる値の型を定義できます。``type`` のデフォルト値は ``str`` です。可能な値は次のとおりです。" -#: ../../rst/dev_guide/developing_program_flow_modules.rst:570 +#: ../../rst/dev_guide/developing_program_flow_modules.rst:611 msgid "str" msgstr "str" -#: ../../rst/dev_guide/developing_program_flow_modules.rst:571 +#: ../../rst/dev_guide/developing_program_flow_modules.rst:612 msgid "list" msgstr "list" -#: ../../rst/dev_guide/developing_program_flow_modules.rst:572 +#: ../../rst/dev_guide/developing_program_flow_modules.rst:613 msgid "dict" msgstr "dict" -#: ../../rst/dev_guide/developing_program_flow_modules.rst:573 +#: ../../rst/dev_guide/developing_program_flow_modules.rst:614 msgid "bool" msgstr "bool" -#: ../../rst/dev_guide/developing_program_flow_modules.rst:574 +#: ../../rst/dev_guide/developing_program_flow_modules.rst:615 msgid "int" msgstr "int" -#: ../../rst/dev_guide/developing_program_flow_modules.rst:575 +#: ../../rst/dev_guide/developing_program_flow_modules.rst:616 msgid "float" msgstr "float" -#: ../../rst/dev_guide/developing_program_flow_modules.rst:576 +#: ../../rst/dev_guide/developing_program_flow_modules.rst:617 msgid "path" msgstr "path" -#: ../../rst/dev_guide/developing_program_flow_modules.rst:577 +#: ../../rst/dev_guide/developing_program_flow_modules.rst:618 msgid "raw" msgstr "raw" -#: ../../rst/dev_guide/developing_program_flow_modules.rst:578 +#: ../../rst/dev_guide/developing_program_flow_modules.rst:619 msgid "jsonarg" msgstr "jsonarg" -#: ../../rst/dev_guide/developing_program_flow_modules.rst:579 +#: ../../rst/dev_guide/developing_program_flow_modules.rst:620 #: ../../rst/dev_guide/style_guide/index.rst:152 msgid "json" msgstr "json" -#: ../../rst/dev_guide/developing_program_flow_modules.rst:580 +#: ../../rst/dev_guide/developing_program_flow_modules.rst:621 msgid "bytes" msgstr "bytes" -#: ../../rst/dev_guide/developing_program_flow_modules.rst:581 +#: ../../rst/dev_guide/developing_program_flow_modules.rst:622 msgid "bits" msgstr "bits" -#: ../../rst/dev_guide/developing_program_flow_modules.rst:583 +#: ../../rst/dev_guide/developing_program_flow_modules.rst:624 msgid "The ``raw`` type, performs no type validation or type casting, and maintains the type of the passed value." msgstr "``raw`` 型で、型の検証や型キャストを行わず、渡された値の型を保持します。" -#: ../../rst/dev_guide/developing_program_flow_modules.rst:587 +#: ../../rst/dev_guide/developing_program_flow_modules.rst:628 msgid "``elements`` works in combination with ``type`` when ``type='list'``. ``elements`` can then be defined as ``elements='int'`` or any other type, indicating that each element of the specified list should be of that type." msgstr "``elements`` は、``type='list'`` の時に ``type`` と組み合わせて動作します。``elements`` は ``elements='int'`` などの型で定義することができ、指定されたリストの各要素がその型であることを示します。" -#: ../../rst/dev_guide/developing_program_flow_modules.rst:591 +#: ../../rst/dev_guide/developing_program_flow_modules.rst:632 msgid "The ``default`` option allows sets a default value for the argument for the scenario when the argument is not provided to the module. When not specified, the default value is ``None``." msgstr "``default`` オプションは、引数がモジュールに提供されていない場合のシナリオの引数のデフォルト値を設定します。指定しない場合、デフォルト値は ``None`` です。" @@ -7055,19 +6775,33 @@ msgstr "``default`` オプションは、引数がモジュールに提供され msgid "fallback" msgstr "fallback" -#: ../../rst/dev_guide/developing_program_flow_modules.rst:595 +#: ../../rst/dev_guide/developing_program_flow_modules.rst:636 msgid "``fallback`` accepts a ``tuple`` where the first argument is a callable (function) that will be used to perform the lookup, based on the second argument. The second argument is a list of values to be accepted by the callable." msgstr "``fallback`` は、第 1 引数に、第 2 引数に基づいて検索を実行するのに使用する callable (関数) の ``tuple`` を受け入れます。2 つ目の引数は、callable オブジェクトによって受け入れられる値のリストです。" -#: ../../rst/dev_guide/developing_program_flow_modules.rst:597 +#: ../../rst/dev_guide/developing_program_flow_modules.rst:638 msgid "The most common callable used is ``env_fallback`` which will allow an argument to optionally use an environment variable when the argument is not supplied." msgstr "最も一般的に使用されている callable は ``env_fallback`` で、これは引数が設定されていない場合に任意で環境変数を使用できるようにします。" -#: ../../rst/dev_guide/developing_program_flow_modules.rst:607 +#: ../../rst/dev_guide/developing_program_flow_modules.rst:640 +#: ../../rst/dev_guide/developing_program_flow_modules.rst:679 +#: ../../rst/dev_guide/developing_program_flow_modules.rst:693 +#: ../../rst/dev_guide/developing_program_flow_modules.rst:793 +#: ../../rst/dev_guide/developing_program_flow_modules.rst:810 +#: ../../rst/dev_guide/developing_program_flow_modules.rst:824 +#: ../../rst/dev_guide/developing_program_flow_modules.rst:851 +#: ../../rst/dev_guide/developing_program_flow_modules.rst:868 +#: ../../rst/dev_guide/testing.rst:206 +#: ../../rst/dev_guide/testing_units_modules.rst:90 +#: ../../rst/dev_guide/testing_units_modules.rst:109 +msgid "Example:" +msgstr "例:" + +#: ../../rst/dev_guide/developing_program_flow_modules.rst:648 msgid "``choices`` accepts a list of choices that the argument will accept. The types of ``choices`` should match the ``type``." msgstr "``choices`` は、引数が受け入れる選択肢のリストを受け入れます。``choices`` の型は、``type`` と一致している必要があります。" -#: ../../rst/dev_guide/developing_program_flow_modules.rst:611 +#: ../../rst/dev_guide/developing_program_flow_modules.rst:652 msgid "``required`` accepts a boolean, either ``True`` or ``False`` that indicates that the argument is required. When not specified, ``required`` defaults to ``False``. This should not be used in combination with ``default``." msgstr "``required`` ブール値 (``True`` または ``False`` のいずれか) も受け入れます。これは、引数が必要であることを示しています。指定しない場合、``required`` のデフォルトは ``False`` になります。これは、``default`` と組み合わせて使用しないでください。" @@ -7075,19 +6809,19 @@ msgstr "``required`` ブール値 (``True`` または ``False`` のいずれか) msgid "no_log" msgstr "no_log" -#: ../../rst/dev_guide/developing_program_flow_modules.rst:615 +#: ../../rst/dev_guide/developing_program_flow_modules.rst:656 msgid "``no_log`` accepts a boolean, either ``True`` or ``False``, that indicates explicitly whether or not the argument value should be masked in logs and output." msgstr "``no_log`` には、引数の値がログや出力でマスクされるべきかどうかを明示的に示すブール値 (``True`` または ``False``) を使用できます。" -#: ../../rst/dev_guide/developing_program_flow_modules.rst:618 +#: ../../rst/dev_guide/developing_program_flow_modules.rst:659 msgid "In the absence of ``no_log``, if the parameter name appears to indicate that the argument value is a password or passphrase (such as \"admin_password\"), a warning will be shown and the value will be masked in logs but **not** output. To disable the warning and masking for parameters that do not contain sensitive information, set ``no_log`` to ``False``." msgstr "``no_log`` がない場合は、パラメーター名が、引数の値がパスワードやパスフレーズであることを示しているように見える場合 (「admin_password」など)、警告が表示され、値はログでマスクされますが、**出力されません**。機密情報を含まないパラメーターの警告とマスキングを無効にするには、``no_log`` を ``False`` に設定します。" -#: ../../rst/dev_guide/developing_program_flow_modules.rst:622 +#: ../../rst/dev_guide/developing_program_flow_modules.rst:663 msgid "``aliases`` accepts a list of alternative argument names for the argument, such as the case where the argument is ``name`` but the module accepts ``aliases=['pkg']`` to allow ``pkg`` to be interchangeably with ``name``" msgstr "``aliases`` では、引数の代替引数名のリストが使用できます。たとえば、引数は ``name`` ですが、モジュールが ``aliases=['pkg']`` を受け付けて、``pkg`` を ``name`` と互換性を持たせるようにしています。" -#: ../../rst/dev_guide/developing_program_flow_modules.rst:626 +#: ../../rst/dev_guide/developing_program_flow_modules.rst:667 msgid "``options`` implements the ability to create a sub-argument_spec, where the sub options of the top level argument are also validated using the attributes discussed in this section. The example at the top of this section demonstrates use of ``options``. ``type`` or ``elements`` should be ``dict`` is this case." msgstr "``options`` は、上位レベルの引数のサブオプションもこのセクションで説明した属性を使用して検証される sub-argument_spec を作成する機能を実装しています。このセクションの冒頭にある例は、``options`` の使用を示しています。ここでは、``type`` または ``elements`` は ``dict`` である必要があります。" @@ -7095,11 +6829,11 @@ msgstr "``options`` は、上位レベルの引数のサブオプションもこ msgid "apply_defaults" msgstr "apply_defaults" -#: ../../rst/dev_guide/developing_program_flow_modules.rst:630 +#: ../../rst/dev_guide/developing_program_flow_modules.rst:671 msgid "``apply_defaults`` works alongside ``options`` and allows the ``default`` of the sub-options to be applied even when the top-level argument is not supplied." msgstr "``apply_defaults`` は、``options`` と並んで動作し、上位レベルの引数が指定されていない場合でもサブオプションの ``デフォルト`` を適用できるようにします。" -#: ../../rst/dev_guide/developing_program_flow_modules.rst:632 +#: ../../rst/dev_guide/developing_program_flow_modules.rst:673 msgid "In the example of the ``argument_spec`` at the top of this section, it would allow ``module.params['top_level']['second_level']`` to be defined, even if the user does not provide ``top_level`` when calling the module." msgstr "このセクションの冒頭にある ``argument_spec`` の例では、ユーザーがモジュールを呼び出すときに ``top_level`` を指定しなかった場合でも、``module.params['top_level']['second_level']`` を定義できるようにします。" @@ -7107,7 +6841,7 @@ msgstr "このセクションの冒頭にある ``argument_spec`` の例では msgid "removed_in_version" msgstr "removed_in_version" -#: ../../rst/dev_guide/developing_program_flow_modules.rst:636 +#: ../../rst/dev_guide/developing_program_flow_modules.rst:677 msgid "``removed_in_version`` indicates which version of ansible-core or a collection a deprecated argument will be removed in. Mutually exclusive with ``removed_at_date``, and must be used with ``removed_from_collection``." msgstr "``removed_in_version`` は、非推奨の引数が削除される ansible-core またはコレクションのバージョンを示します。``removed_at_date`` で相互に排他となり、``removed_from_collection`` で使用する必要があります。" @@ -7115,7 +6849,7 @@ msgstr "``removed_in_version`` は、非推奨の引数が削除される ansibl msgid "removed_at_date" msgstr "removed_at_date" -#: ../../rst/dev_guide/developing_program_flow_modules.rst:650 +#: ../../rst/dev_guide/developing_program_flow_modules.rst:691 msgid "``removed_at_date`` indicates that a deprecated argument will be removed in a minor ansible-core release or major collection release after this date. Mutually exclusive with ``removed_in_version``, and must be used with ``removed_from_collection``." msgstr "``removed_at_date`` は、非推奨の引数が、この日付以降のマイナーな ansible-core リリースまたはメジャーコレクションリリースで削除されることを示します。``removed_in_version`` と相互に排他的であり、``removed_from_collection`` と一緒に使用する必要があります。" @@ -7123,7 +6857,7 @@ msgstr "``removed_at_date`` は、非推奨の引数が、この日付以降の msgid "removed_from_collection" msgstr "removed_from_collection" -#: ../../rst/dev_guide/developing_program_flow_modules.rst:664 +#: ../../rst/dev_guide/developing_program_flow_modules.rst:705 msgid "Specifies which collection (or ansible-core) deprecates this deprecated argument. Specify ``ansible.builtin`` for ansible-core, or the collection's name (format ``foo.bar``). Must be used with ``removed_in_version`` or ``removed_at_date``." msgstr "この非推奨の引数を非推奨にするコレクション (または ansible-core) を指定します。ansible-core には ``ansible.builtin``、またはコレクションの名前 (``foo.bar`` の形式) を指定します。``removed_in_version`` または ``removed_at_date`` と共に使用する必要があります。" @@ -7131,15 +6865,15 @@ msgstr "この非推奨の引数を非推奨にするコレクション (また msgid "deprecated_aliases" msgstr "deprecated_aliases" -#: ../../rst/dev_guide/developing_program_flow_modules.rst:668 +#: ../../rst/dev_guide/developing_program_flow_modules.rst:709 msgid "Deprecates aliases of this argument. Must contain a list or tuple of dictionaries having some the following keys:" msgstr "この引数のエイリアスを非推奨にします。以下のキーを持つディクショナリーのリストまたはタプルが含まれます。" #: ../../rst/dev_guide/developing_program_flow_modules.rst msgid "name" -msgstr "name" +msgstr "名前" -#: ../../rst/dev_guide/developing_program_flow_modules.rst:672 +#: ../../rst/dev_guide/developing_program_flow_modules.rst:713 msgid "The name of the alias to deprecate. (Required.)" msgstr "非推奨にするエイリアスの名前 (必須)" @@ -7148,7 +6882,7 @@ msgstr "非推奨にするエイリアスの名前 (必須)" msgid "version" msgstr "version" -#: ../../rst/dev_guide/developing_program_flow_modules.rst:676 +#: ../../rst/dev_guide/developing_program_flow_modules.rst:717 msgid "The version of ansible-core or the collection this alias will be removed in. Either ``version`` or ``date`` must be specified." msgstr "ansible-core、またはこのエイリアスは削除されるコレクションのバージョン。``version`` または ``date`` のいずれかを指定する必要があります。" @@ -7156,7 +6890,7 @@ msgstr "ansible-core、またはこのエイリアスは削除されるコレク msgid "date" msgstr "date" -#: ../../rst/dev_guide/developing_program_flow_modules.rst:680 +#: ../../rst/dev_guide/developing_program_flow_modules.rst:721 msgid "The a date after which a minor release of ansible-core or a major collection release will no longer contain this alias.. Either ``version`` or ``date`` must be specified." msgstr "ansible-core のマイナーリリースまたはメジャーコレクションリリースにこのエイリアスが含まれなくなった日付。``version`` または ``date`` のいずれかを指定する必要があります。" @@ -7164,11 +6898,11 @@ msgstr "ansible-core のマイナーリリースまたはメジャーコレク msgid "collection_name" msgstr "collection_name" -#: ../../rst/dev_guide/developing_program_flow_modules.rst:684 +#: ../../rst/dev_guide/developing_program_flow_modules.rst:725 msgid "Specifies which collection (or ansible-core) deprecates this deprecated alias. Specify ``ansible.builtin`` for ansible-core, or the collection's name (format ``foo.bar``). Must be used with ``version`` or ``date``." msgstr "この非推奨のエイリアスを非推奨にするコレクション (または ansible-core) を指定します。ansible-core には ``ansible.builtin``、またはコレクションの名前 (``foo.bar`` の形式) を指定します。``version`` または ``date`` と共に使用する必要があります。" -#: ../../rst/dev_guide/developing_program_flow_modules.rst:686 +#: ../../rst/dev_guide/developing_program_flow_modules.rst:727 msgid "Examples:" msgstr "例:" @@ -7176,7 +6910,7 @@ msgstr "例:" msgid "mutually_exclusive" msgstr "mutually_exclusive" -#: ../../rst/dev_guide/developing_program_flow_modules.rst:710 +#: ../../rst/dev_guide/developing_program_flow_modules.rst:751 msgid "If ``options`` is specified, ``mutually_exclusive`` refers to the sub-options described in ``options`` and behaves as in :ref:`argument_spec_dependencies`." msgstr "``options`` を指定すると、``mutually_exclusive`` は ``options`` で説明されているサブオプションを参照し、:ref:`argument_spec_dependencies` のように動作します。" @@ -7184,7 +6918,7 @@ msgstr "``options`` を指定すると、``mutually_exclusive`` は ``options`` msgid "required_together" msgstr "required_together" -#: ../../rst/dev_guide/developing_program_flow_modules.rst:714 +#: ../../rst/dev_guide/developing_program_flow_modules.rst:755 msgid "If ``options`` is specified, ``required_together`` refers to the sub-options described in ``options`` and behaves as in :ref:`argument_spec_dependencies`." msgstr "``options`` を指定すると、``required_together`` は ``options`` で説明されているサブオプションを参照し、:ref:`argument_spec_dependencies` のように動作します。" @@ -7192,7 +6926,7 @@ msgstr "``options`` を指定すると、``required_together`` は ``options`` msgid "required_one_of" msgstr "required_one_of" -#: ../../rst/dev_guide/developing_program_flow_modules.rst:718 +#: ../../rst/dev_guide/developing_program_flow_modules.rst:759 msgid "If ``options`` is specified, ``required_one_of`` refers to the sub-options described in ``options`` and behaves as in :ref:`argument_spec_dependencies`." msgstr "``options`` を指定すると、``required_one_of`` は ``options`` で説明されているサブオプションを参照し、:ref:`argument_spec_dependencies` のように動作します。" @@ -7200,7 +6934,7 @@ msgstr "``options`` を指定すると、``required_one_of`` は ``options`` で msgid "required_if" msgstr "required_if" -#: ../../rst/dev_guide/developing_program_flow_modules.rst:722 +#: ../../rst/dev_guide/developing_program_flow_modules.rst:763 msgid "If ``options`` is specified, ``required_if`` refers to the sub-options described in ``options`` and behaves as in :ref:`argument_spec_dependencies`." msgstr "``options`` を指定すると、``required_if`` は ``options`` で説明されているサブオプションを参照し、:ref:`argument_spec_dependencies` のように動作します。" @@ -7208,103 +6942,103 @@ msgstr "``options`` を指定すると、``required_if`` は ``options`` で説 msgid "required_by" msgstr "required_by" -#: ../../rst/dev_guide/developing_program_flow_modules.rst:726 +#: ../../rst/dev_guide/developing_program_flow_modules.rst:767 msgid "If ``options`` is specified, ``required_by`` refers to the sub-options described in ``options`` and behaves as in :ref:`argument_spec_dependencies`." msgstr "``options`` を指定すると、``required_by`` は ``options`` で説明されているサブオプションを参照し、:ref:`argument_spec_dependencies` のように動作します。" -#: ../../rst/dev_guide/developing_program_flow_modules.rst:732 +#: ../../rst/dev_guide/developing_program_flow_modules.rst:773 msgid "Dependencies between module options" msgstr "モジュールオプションの依存関係" -#: ../../rst/dev_guide/developing_program_flow_modules.rst:734 +#: ../../rst/dev_guide/developing_program_flow_modules.rst:775 msgid "The following are optional arguments for ``AnsibleModule()``:" msgstr "以下は、``AnsibleModule()`` の任意の引数です。" -#: ../../rst/dev_guide/developing_program_flow_modules.rst:750 +#: ../../rst/dev_guide/developing_program_flow_modules.rst:791 msgid "Must be a sequence (list or tuple) of sequences of strings. Every sequence of strings is a list of option names which are mutually exclusive. If more than one options of a list are specified together, Ansible will fail the module with an error." msgstr "文字列シーケンスのシーケンス (リストまたはタプル) です。文字列のシーケンスは相互排他的なオプション名のリストです。リストの複数のオプションを指定すると、Ansible はエラーを出してモジュールに失敗します。" -#: ../../rst/dev_guide/developing_program_flow_modules.rst:761 +#: ../../rst/dev_guide/developing_program_flow_modules.rst:802 msgid "In this example, the options ``path`` and ``content`` must not specified at the same time. Also the options ``repository_url`` and ``repository_filename`` must not be specified at the same time. But specifying ``path`` and ``repository_url`` is accepted." msgstr "この例では、``path`` オプションと ``content`` オプションは同時に指定しないでください。``repository_url`` オプションと ``repository_filename`` オプションを同時に指定することはできません。ただし、``path`` および ``repository_url`` を指定することはできます。" -#: ../../rst/dev_guide/developing_program_flow_modules.rst:763 +#: ../../rst/dev_guide/developing_program_flow_modules.rst:804 msgid "To ensure that precisely one of two (or more) options is specified, combine ``mutually_exclusive`` with ``required_one_of``." msgstr "正確に 2 つのオプション (または複数の) オプションのいずれかを指定するようにするには、``mutually_exclusive`` と ``required_one_of`` を組み合わせます。" -#: ../../rst/dev_guide/developing_program_flow_modules.rst:767 +#: ../../rst/dev_guide/developing_program_flow_modules.rst:808 msgid "Must be a sequence (list or tuple) of sequences of strings. Every sequence of strings is a list of option names which are must be specified together. If at least one of these options are specified, the other ones from the same sequence must all be present." msgstr "文字列のシーケンスのシーケンス (リストまたはタプル) である必要があります。文字列のすべてのシーケンスは、一緒に指定する必要があるオプション名のリストです。これらのオプションが少なくとも 1 つ指定されている場合は、同じシーケンスの他のオプションがすべて存在している必要があります。" -#: ../../rst/dev_guide/developing_program_flow_modules.rst:777 +#: ../../rst/dev_guide/developing_program_flow_modules.rst:818 msgid "In this example, if one of the options ``file_path`` or ``file_hash`` is specified, Ansible will fail the module with an error if the other one is not specified." msgstr "この例では、``file_path`` または ``file_hash`` のいずれかのオプションを指定し、他のオプションが指定していないと、Ansible はエラーを出してモジュールに失敗します。" -#: ../../rst/dev_guide/developing_program_flow_modules.rst:781 +#: ../../rst/dev_guide/developing_program_flow_modules.rst:822 msgid "Must be a sequence (list or tuple) of sequences of strings. Every sequence of strings is a list of option names from which at least one must be specified. If none one of these options are specified, Ansible will fail module execution." msgstr "文字列のシーケンスのシーケンス (リストまたはタプル) である必要があります。文字列のすべてのシーケンスは、少なくとも 1 つを指定する必要があるオプション名のリストです。これらのオプションがいずれも指定されていない場合、Ansible はモジュールの実行に失敗します。" -#: ../../rst/dev_guide/developing_program_flow_modules.rst:791 +#: ../../rst/dev_guide/developing_program_flow_modules.rst:832 msgid "In this example, at least one of ``path`` and ``content`` must be specified. If none are specified, execution will fail. Specifying both is explicitly allowed; to prevent this, combine ``required_one_of`` with ``mutually_exclusive``." msgstr "この例では、``path`` および ``content`` のいずれかを指定する必要があります。指定しないと、実行が失敗します。両方の値を指定すると、明示的に許可されます。これを回避するには、``required_one_of`` と ``mutually_exclusive`` を組み合わせます。" -#: ../../rst/dev_guide/developing_program_flow_modules.rst:795 +#: ../../rst/dev_guide/developing_program_flow_modules.rst:836 msgid "Must be a sequence of sequences. Every inner sequence describes one conditional dependency. Every sequence must have three or four values. The first two values are the option's name and the option's value which describes the condition. The further elements of the sequence are only needed if the option of that name has precisely this value." msgstr "一連のシーケンスのシーケンスである必要があります。すべての内部シーケンスでは、条件の依存関係を 1 つ説明します。すべてのシーケンスには、値が 3 つまたは 4 つ必要です。最初の 2 つの値は、オプション名と、その条件を説明するオプションの値です。シーケンスの追加要素は、その名前のオプションが正確にこの値を持っている場合にのみ必要です。" -#: ../../rst/dev_guide/developing_program_flow_modules.rst:797 +#: ../../rst/dev_guide/developing_program_flow_modules.rst:838 msgid "If you want that all options in a list of option names are specified if the condition is met, use one of the following forms:" msgstr "条件が満たされた場合にオプション名のリスト内のオプションをすべて指定する場合は、次のいずれかの形式を使用します。" -#: ../../rst/dev_guide/developing_program_flow_modules.rst:804 +#: ../../rst/dev_guide/developing_program_flow_modules.rst:845 msgid "If you want that at least one option of a list of option names is specified if the condition is met, use the following form:" msgstr "条件が満たされた場合にオプション名の一覧のオプションを 1 つ以上指定する場合は、以下の形式を使用します。" -#: ../../rst/dev_guide/developing_program_flow_modules.rst:819 +#: ../../rst/dev_guide/developing_program_flow_modules.rst:860 msgid "In this example, if the user specifies ``state=present``, at least one of the options ``path`` and ``content`` must be supplied (or both). To make sure that precisely one can be specified, combine ``required_if`` with ``mutually_exclusive``." msgstr "この例では、ユーザーが ``state=present`` を指定している場合は、``path`` と ``content`` のいずれか (または両方) のオプションを指定する必要があります。必ず指定するようにするには、``required_if`` と ``mutually_exclusive`` を組み合わせます。" -#: ../../rst/dev_guide/developing_program_flow_modules.rst:821 -msgid "On the other hand, if ``force`` (a boolean parameter) is set to ``true``, ``yes`` etc., both ``force_reason`` and ``force_code`` must be specified." +#: ../../rst/dev_guide/developing_program_flow_modules.rst:862 +msgid "On the other hand, if ``force`` (a boolean parameter) is set to ``true``, ``yes`` and so on, both ``force_reason`` and ``force_code`` must be specified." msgstr "一方、``force`` (ブール値パラメーター) が ``true``、``yes`` などに設定されている場合は、``force_reason`` と ``force_code`` の両方を指定する必要があります。" -#: ../../rst/dev_guide/developing_program_flow_modules.rst:825 +#: ../../rst/dev_guide/developing_program_flow_modules.rst:866 msgid "Must be a dictionary mapping option names to sequences of option names. If the option name in a dictionary key is specified, the option names it maps to must all also be specified. Note that instead of a sequence of option names, you can also specify one single option name." msgstr "オプション名のシーケンスへのディクショナリーマッピングオプション名である必要があります。ディクショナリーキーでオプション名を指定すると、そのオプション名をすべて指定する必要があります。オプション名のシーケンスの代わりに、オプションの名前を 1 つ指定することもできます。" -#: ../../rst/dev_guide/developing_program_flow_modules.rst:836 +#: ../../rst/dev_guide/developing_program_flow_modules.rst:877 msgid "In the example, if ``force`` is specified, ``force_reason`` must also be specified. Also, if ``path`` is specified, then three three options ``mode``, ``owner`` and ``group`` also must be specified." msgstr "この例では、``force`` が指定されている場合は、``force_reason`` も指定する必要があります。また、``path`` が指定されている場合は、3 つのオプション ``mode``、``owner``、および ``group`` も指定する必要があります。" -#: ../../rst/dev_guide/developing_program_flow_modules.rst:839 +#: ../../rst/dev_guide/developing_program_flow_modules.rst:880 msgid "Declaring check mode support" msgstr "チェックモードのサポートの宣言" -#: ../../rst/dev_guide/developing_program_flow_modules.rst:841 +#: ../../rst/dev_guide/developing_program_flow_modules.rst:882 msgid "To declare that a module supports check mode, supply ``supports_check_mode=True`` to the ``AnsibleModule()`` call:" msgstr "モジュールが確認モードをサポートすることを宣言するには、``AnsibleModule()`` 呼び出しに ``supports_check_mode=True`` を指定します。" -#: ../../rst/dev_guide/developing_program_flow_modules.rst:847 +#: ../../rst/dev_guide/developing_program_flow_modules.rst:888 msgid "The module can determine whether it is called in check mode by checking the boolean value ``module.check_mode``. If it evaluates to ``True``, the module must take care not to do any modification." msgstr "モジュールは、ブール値 ``module.check_mode`` を確認することで、チェックモードで呼び出されるかどうかを判断できます。``True`` に評価する場合、モジュールは変更を行わないようにする必要があります。" -#: ../../rst/dev_guide/developing_program_flow_modules.rst:849 +#: ../../rst/dev_guide/developing_program_flow_modules.rst:890 msgid "If ``supports_check_mode=False`` is specified, which is the default value, the module will exit in check mode with ``skipped=True`` and message ``remote module () does not support check mode``." msgstr "``supports_check_mode=False`` が指定されている場合 (デフォルト値)、モジュールはチェックモードで ``skipped=True`` および ``remote module () does not support check mode`` メッセージで終了します。" -#: ../../rst/dev_guide/developing_program_flow_modules.rst:852 +#: ../../rst/dev_guide/developing_program_flow_modules.rst:893 msgid "Adding file options" msgstr "ファイルオプションの追加" -#: ../../rst/dev_guide/developing_program_flow_modules.rst:854 +#: ../../rst/dev_guide/developing_program_flow_modules.rst:895 msgid "To declare that a module should add support for all common file options, supply ``add_file_common_args=True`` to the ``AnsibleModule()`` call:" msgstr "モジュールがすべての共通ファイルオプションのサポートを追加することを宣言するには、``add_file_common_args=True`` を ``AnsibleModule()`` 呼び出しに指定します。" -#: ../../rst/dev_guide/developing_program_flow_modules.rst:860 +#: ../../rst/dev_guide/developing_program_flow_modules.rst:901 msgid "You can find `a list of all file options here `_. It is recommended that you make your ``DOCUMENTATION`` extend the doc fragment ``ansible.builtin.files`` (see :ref:`module_docs_fragments`) in this case, to make sure that all these fields are correctly documented." msgstr "`ここで、ファイルオプションの一覧 `_ を確認できます。今回は、``DOCUMENTATION`` がドキュメントフラグメント ``ansible.builtin.files`` (:ref:`module_docs_fragments` を参照) を拡張し、これらのフィールドがすべて正しく文書化されていることを確認することが推奨されます。" -#: ../../rst/dev_guide/developing_program_flow_modules.rst:862 +#: ../../rst/dev_guide/developing_program_flow_modules.rst:903 msgid "The helper functions ``module.load_file_common_arguments()`` and ``module.set_fs_attributes_if_different()`` can be used to handle these arguments for you:" msgstr "ヘルパー関数 ``module.load_file_common_arguments()`` および ``module.set_fs_attributes_if_different()`` を使用して、以下の引数を扱うことができます。" @@ -7393,7 +7127,7 @@ msgid "For compatibility reasons you will see a bunch of custom functions we dev msgstr "互換性の理由から、多くのカスタム関数(``to_text``/``to_bytes``/``to_native``) が開発されました。Python 2 に関する懸念はなくなったため、Unicode の処理が問題になるような別のケースに適用されるため、今後も引き続きこれを使用します。" #: ../../rst/dev_guide/developing_python_3.rst:91 -msgid "While we will not be using it most of it anymore, the documentation below is still useful for those developing modules that still need to support both Python 2 and 3 simultaneouslly." +msgid "While we will not be using it most of it anymore, the documentation below is still useful for those developing modules that still need to support both Python 2 and 3 simultaneously." msgstr "ほとんど使用しなくなりますが、以下のドキュメントは Python 2 と 3 の両方を同時にサポートする必要があるモジュールを開発している場合に役立ちます。" #: ../../rst/dev_guide/developing_python_3.rst:95 @@ -8125,7 +7859,7 @@ msgid "Changing a module or plugin name in the Ansible main repository" msgstr "Ansible メインリポジトリーのモジュールまたはプラグイン名の変更" #: ../../rst/dev_guide/module_lifecycle.rst:71 -msgid "You can also rename a module and keep a deprecated alias to the old name by using a symlink that starts with _. This example allows the ``stat`` module to be called with ``fileinfo``, making the following examples equivalent::" +msgid "You can also rename a module and keep a deprecated alias to the old name by using a symlink that starts with _. This example allows the ``stat`` module to be called with ``fileinfo``, making the following examples equivalent:" msgstr "_ で始まるシンボリックリンクを使用して、モジュールの名前を変更し、非推奨のエイリアスを古い名前に保つこともできます。この例では、``stat`` モジュールを ``fileinfo`` で呼び出すことができるため、次の例は同等になります。" #: ../../rst/dev_guide/module_lifecycle.rst:81 @@ -8237,7 +7971,7 @@ msgid "Here's what a plain text inventory file looks like:" msgstr "プレーンテキストのインベントリーファイルは次のようになります。" #: ../../rst/dev_guide/overview_architecture.rst:56 -msgid "Once inventory hosts are listed, variables can be assigned to them in simple text files (in a subdirectory called 'group_vars/' or 'host_vars/' or directly in the inventory file." +msgid "Once inventory hosts are listed, variables can be assigned to them in simple text files (in a subdirectory called 'group_vars/' or 'host_vars/') or directly in the inventory file." msgstr "インベントリーホストの一覧が作成されると、単純なテキストファイル形式で (「group_vars/」または「host_vars/」という名前のサブディレクトリー内、またはインベントリーファイルに直接) 割り当てることができます。" #: ../../rst/dev_guide/overview_architecture.rst:58 @@ -8304,45 +8038,61 @@ msgstr "ユーザーが指定したディレクトリーにあるモジュール msgid "If you have more than one module, module utility, or plugin with the same name in different user-specified directories, the order of commands at the command line and the order of includes and roles in each play will affect which one is found and used on that particular play." msgstr "同じ名前のモジュール、モジュールユーティリティー、またはプラグインが複数のユーザー指定ディレクトリーにある場合、コマンドラインでのコマンドの順序や、各プレイでのインクルードとロールの順序は、その特定のプレイでどのモジュールが見つかり、使用されるかによって異なります。" -#: ../../rst/dev_guide/platforms/aws_guidelines.rst:5 -msgid "Guidelines for Ansible Amazon AWS module development" -msgstr "Ansible Amazon AWS モジュール開発のガイドライン" +#: ../../rst/dev_guide/sidecar.rst:5 +msgid "Adjacent YAML documentation files" +msgstr "隣接 YAML ドキュメントファイル" + +#: ../../rst/dev_guide/sidecar.rst:11 +msgid "YAML documentation for plugins" +msgstr "プラグインの YAML ドキュメント" + +#: ../../rst/dev_guide/sidecar.rst:12 +msgid "For most Ansible plugins, the documentation is in the same file as the code. This approach does not work for cases when:" +msgstr "ほとんどの Ansible プラグインでは、ドキュメントはコードと同じファイルにあります。このアプローチは、次の場合には機能しません。" + +#: ../../rst/dev_guide/sidecar.rst:14 +msgid "Multiple plugins are defined in the same file, such as tests and filters." +msgstr "テストやフィルターなど、複数のプラグインが同じファイルで定義されている場合。" -#: ../../rst/dev_guide/platforms/aws_guidelines.rst:7 -msgid "This guide has moved to :ref:`ansible_collections.amazon.aws.docsite.dev_guide_intro`." -msgstr "このガイドは :ref:`ansible_collections.amazon.aws.docsite.dev_guide_intro` に移動しました。" +#: ../../rst/dev_guide/sidecar.rst:15 +msgid "Plugins are written in a language other than Python (modules)." +msgstr "プラグインが Python 以外の言語 (モジュール) で記述されている場合。" -#: ../../rst/dev_guide/platforms/openstack_guidelines.rst:4 -msgid "OpenStack Ansible Modules" -msgstr "OpenStack Ansible モジュール" +#: ../../rst/dev_guide/sidecar.rst:17 +msgid "These cases require plugins to provide documentation in an adjacent ``.py`` file. As of ansible-core 2.14, you can provide documentation as adjacent YAML files instead. The format of a YAML documentation file is nearly identical to its Python equivalent, except it is pure YAML." +msgstr "このような場合、隣接する ``.py`` ファイルでドキュメントを提供するプラグインが必要です。ansible-core 2.14 以降では、代わりに隣接 YAML ファイルとしてドキュメントを提供できます。YAML ドキュメントファイルの形式は、純粋な YAML であることを除いて Python の該当ファイルとほぼ同じです。" -#: ../../rst/dev_guide/platforms/openstack_guidelines.rst:6 -msgid "Please see the `OpenStack guidelines `_, for further information." -msgstr "詳細は、`OpenStack ガイドライン `_ を参照してください。" +#: ../../rst/dev_guide/sidecar.rst:22 +msgid "YAML format" +msgstr "YAML 形式" -#: ../../rst/dev_guide/platforms/ovirt_dev_guide.rst:4 -msgid "oVirt Ansible Modules" -msgstr "oVirt Ansible モジュール" +#: ../../rst/dev_guide/sidecar.rst:23 +msgid "In Python each section is a variable ``DOCUMENTATION = r\"\"\" ... \"\"\"`` while in YAML it is a mapping key ``DOCUMENTATION: ...``." +msgstr "Python では、各セクションは変数 ``DOCUMENTATION = r\"\"\" ... \"\"\"`` ですが、YAML ではマッピングキー ``DOCUMENTATION: ...`` です。" -#: ../../rst/dev_guide/platforms/ovirt_dev_guide.rst:7 -msgid "See the `ovirt.ovirt collection documentation `_ for details on how to contribute to this collection." -msgstr "このコレクションへの貢献方法は、`ovirt.ovirt collection documentation `_ を参照してください。" +#: ../../rst/dev_guide/sidecar.rst:25 +msgid "Here is a longer example that shows documentation as embedded in a Python file:" +msgstr "これは、ドキュメントが Python ファイルに埋め込まれていることを示す長い例です。" -#: ../../rst/dev_guide/platforms/vmware_guidelines.rst:5 -msgid "Guidelines for VMware module development" -msgstr "VMware モジュール開発のガイドライン" +#: ../../rst/dev_guide/sidecar.rst:53 +msgid "This example shows the same documentation in YAML format:" +msgstr "次の例は、同じドキュメントを YAML 形式で示しています。" -#: ../../rst/dev_guide/platforms/vmware_guidelines.rst:7 -msgid "This guide has moved to :ref:`ansible_collections.community.vmware.docsite.vmware_ansible_devguide`." -msgstr "このガイドは :ref:`ansible_collections.community.vmware.docsite.vmware_ansible_devguide` に移動しました。" +#: ../../rst/dev_guide/sidecar.rst:78 +msgid "As the examples above show, Python variables already contain YAML. The main change to use YAML documentation is to simply move the YAML out of such variables." +msgstr "上記の例が示すように、Python 変数にはすでに YAML が含まれています。YAML ドキュメントを使用するための主な変更点として、そのような変数から YAML を移動させます。" -#: ../../rst/dev_guide/platforms/vmware_rest_guidelines.rst:5 -msgid "Guidelines for VMware REST module development" -msgstr "VMware REST モジュール開発のガイドライン" +#: ../../rst/dev_guide/sidecar.rst:80 +msgid "Any adjacent YAML documentation files must be in the same directory as the plugin or module that they document. This means the documentation is available in any directory that contains the plugins or modules." +msgstr "隣接 YAML ドキュメントファイルは、ドキュメント化するプラグインまたはモジュールと同じディレクトリーにある必要があります。これは、プラグインまたはモジュールを含む任意のディレクトリーでドキュメントを利用できることを意味します。" -#: ../../rst/dev_guide/platforms/vmware_rest_guidelines.rst:7 -msgid "This guide has moved to :ref:`ansible_collections.vmware.vmware_rest.docsite.vmware_rest_devguide`." -msgstr "このガイドは :ref:`ansible_collections.vmware.vmware_rest.docsite.vmware_rest_devguide` に移動しました。" +#: ../../rst/dev_guide/sidecar.rst:84 +msgid "Supported plugin types" +msgstr "サポート対象のプラグインタイプ" + +#: ../../rst/dev_guide/sidecar.rst:85 +msgid "YAML documentation is mainly intended for filters, tests and modules. While it is possible to use with other plugin types, Ansible always recommends having documentation in the same file as the code for most cases." +msgstr "YAML ドキュメントは、主にフィルター、テスト、モジュールを対象としています。他のプラグインタイプで使用できますが、Ansible では可能な限りコードと同じファイルにドキュメントを含めることが推奨されます。" #: ../../rst/dev_guide/style_guide/basic_rules.rst:4 msgid "Basic rules" @@ -8399,7 +8149,7 @@ msgstr "たとえば、以下のように改善できます。" #: ../../rst/dev_guide/style_guide/basic_rules.rst:33 #: ../../rst/dev_guide/style_guide/basic_rules.rst:39 msgid "Bad:" -msgstr "問題がある文章: " +msgstr "問題がある文章:" #: ../../rst/dev_guide/style_guide/basic_rules.rst:33 msgid "The unwise walking about upon the area near the cliff edge may result in a dangerous fall and therefore it is recommended that one remains a safe distance to maintain personal safety." @@ -8408,7 +8158,7 @@ msgstr "The unwise walking about upon the area near the cliff edge may result in #: ../../rst/dev_guide/style_guide/basic_rules.rst:36 #: ../../rst/dev_guide/style_guide/basic_rules.rst:42 msgid "Better:" -msgstr "改善例: " +msgstr "改善例:" #: ../../rst/dev_guide/style_guide/basic_rules.rst:36 msgid "Danger! Stay away from the cliff." @@ -8475,8 +8225,8 @@ msgid "On the toolbar, click the **Open File** icon." msgstr "ツールバーで、**ファイルを開く** アイコンをクリックします。" #: ../../rst/dev_guide/style_guide/basic_rules.rst:64 -msgid "For code or command snippets, use the RST `code-block directive `_::" -msgstr "code または command スニペットの場合は、RST の `code-block ディレクティブ `_ を使用します。" +msgid "For code or command snippets, use the RST `code-block directive `_:" +msgstr "code または command スニペットの場合は、RST の `code-block directive `_ を使用します。" #: ../../rst/dev_guide/style_guide/grammar_punctuation.rst:3 msgid "Grammar and Punctuation" @@ -9109,178 +8859,178 @@ msgid "Place the main anchor above the main header" msgstr "メインヘッダーの上にメインアンカーを配置する。" #: ../../rst/dev_guide/style_guide/index.rst:195 -msgid "If the file has a unique title, use that for the main page anchor::" +msgid "If the file has a unique title, use that for the main page anchor:" msgstr "このファイルに一意のタイトルがある場合は、メインページのアンカーに使用します。" -#: ../../rst/dev_guide/style_guide/index.rst:199 +#: ../../rst/dev_guide/style_guide/index.rst:201 msgid "You may also add anchors elsewhere on the page" msgstr "ページにアンカーを追加することもできます。" -#: ../../rst/dev_guide/style_guide/index.rst:202 +#: ../../rst/dev_guide/style_guide/index.rst:204 msgid "Adding internal links" msgstr "内部リンクの追加" -#: ../../rst/dev_guide/style_guide/index.rst:204 +#: ../../rst/dev_guide/style_guide/index.rst:206 msgid "All internal links must use ``:ref:`` syntax. These links both point to the anchor defined above:" msgstr "すべての内部リンクには ``:ref:`` 構文を使用する必要があります。これらのリンクは共に、上で定義したアンカーを指定します。" -#: ../../rst/dev_guide/style_guide/index.rst:211 +#: ../../rst/dev_guide/style_guide/index.rst:213 msgid "The second example adds custom text for the link." msgstr "2 つ目の例は、リンクのカスタムテキストを追加します。" -#: ../../rst/dev_guide/style_guide/index.rst:214 +#: ../../rst/dev_guide/style_guide/index.rst:216 msgid "Adding links to modules and plugins" msgstr "モジュールおよびプラグインへのリンクの追加" -#: ../../rst/dev_guide/style_guide/index.rst:216 +#: ../../rst/dev_guide/style_guide/index.rst:218 msgid "Ansible 2.10 and later require the extended Fully Qualified Collection Name (FQCN) as part of the links:" msgstr "Ansible 2.10 以降は、リンクの一部として、拡張された完全修飾コレクション名 (FQCN) が必要です。" -#: ../../rst/dev_guide/style_guide/index.rst:228 +#: ../../rst/dev_guide/style_guide/index.rst:230 msgid "displays as :ref:`ansible.builtin.first_found lookup plugin `." msgstr ":ref:`ansible.builtin.first_found lookup plugin ` として表示します。" -#: ../../rst/dev_guide/style_guide/index.rst:230 +#: ../../rst/dev_guide/style_guide/index.rst:232 msgid "Modules require different suffixes from other plugins:" msgstr "モジュールには、他のプラグインとは異なるサフィックスが必要です。" -#: ../../rst/dev_guide/style_guide/index.rst:232 +#: ../../rst/dev_guide/style_guide/index.rst:234 msgid "Module links use this extended FQCN module name with ``_module`` for the anchor." msgstr "モジュールリンクでは、この広範な FQCN モジュール名に、アンカーに ``_module`` を使用します。" -#: ../../rst/dev_guide/style_guide/index.rst:233 +#: ../../rst/dev_guide/style_guide/index.rst:235 msgid "Plugin links use this extended FQCN plugin name with the plugin type (``_connection`` for example)." msgstr "プラグインのリンクは、この広範な FQCN プラグイン名をプラグインタイプ (``_connection`` など) で使用します。" -#: ../../rst/dev_guide/style_guide/index.rst:242 +#: ../../rst/dev_guide/style_guide/index.rst:244 msgid "``ansible.builtin`` is the FQCN for modules included in ``ansible.base``. Documentation links are the only place you prepend ``ansible_collections`` to the FQCN. This is used by the documentation build scripts to correctly fetch documentation from collections on Ansible Galaxy." msgstr "``ansible.builtin`` は、``ansible.base`` に含まれているモジュールの FQCN です。ドキュメントのリンクは、``ansible_collections`` を FQCN の前に付ける唯一の場所です。これは、Ansible Galaxy のコレクションからドキュメントを適切に取得するために、ドキュメントビルドスクリプトにより使用されます。" -#: ../../rst/dev_guide/style_guide/index.rst:247 +#: ../../rst/dev_guide/style_guide/index.rst:249 msgid "Adding local TOCs" msgstr "ページ内 (ローカル) 目次の追加" -#: ../../rst/dev_guide/style_guide/index.rst:249 +#: ../../rst/dev_guide/style_guide/index.rst:251 msgid "The page you're reading includes a `local TOC `_. If you include a local TOC:" msgstr "このページには `ローカル TOC `_ が含まれます。ローカルの TOC を追加する場合は、以下のようになります。" -#: ../../rst/dev_guide/style_guide/index.rst:252 +#: ../../rst/dev_guide/style_guide/index.rst:254 msgid "place it below, not above, the main heading and (optionally) introductory text" msgstr "目次の下に、主要な見出しと (任意で) 紹介文を追加します。目次の上には追加しないでください。" -#: ../../rst/dev_guide/style_guide/index.rst:253 +#: ../../rst/dev_guide/style_guide/index.rst:255 msgid "use the ``:local:`` directive so the page's main header is not included" msgstr "そのページの主要なヘッダーが含まれないように ``:local:`` ディレクティブを使用します。" -#: ../../rst/dev_guide/style_guide/index.rst:254 +#: ../../rst/dev_guide/style_guide/index.rst:256 msgid "do not include a title" msgstr "タイトルは除外します。" -#: ../../rst/dev_guide/style_guide/index.rst:256 +#: ../../rst/dev_guide/style_guide/index.rst:258 msgid "The syntax is:" msgstr "構文は以下のようになります。" -#: ../../rst/dev_guide/style_guide/index.rst:264 +#: ../../rst/dev_guide/style_guide/index.rst:266 msgid "Accessibility guidelines" msgstr "アクセシビリティのガイドライン" -#: ../../rst/dev_guide/style_guide/index.rst:266 +#: ../../rst/dev_guide/style_guide/index.rst:268 msgid "Ansible documentation has a goal to be more accessible. Use the following guidelines to help us reach this goal." msgstr "Ansible ドキュメントには、アクセスしやすくするという目標があります。次のガイドラインを使用することで、この目標を達成できます。" -#: ../../rst/dev_guide/style_guide/index.rst:276 +#: ../../rst/dev_guide/style_guide/index.rst:278 msgid "Images and alternative text" msgstr "イメージおよび代替テキスト" -#: ../../rst/dev_guide/style_guide/index.rst:269 +#: ../../rst/dev_guide/style_guide/index.rst:271 msgid "Ensure all icons, images, diagrams, and non text elements have a meaningful alternative-text description. Do not include screen captures of CLI output. Use ``code-block`` instead." msgstr "すべてのアイコン、イメージ、ダイアグラム、および非テキスト要素に意味のある代替テキストの説明があることを確認してください。CLI 出力のスクリーンキャプチャーは含めないでください。代わりに ``code-block`` を使用してください。" -#: ../../rst/dev_guide/style_guide/index.rst:279 +#: ../../rst/dev_guide/style_guide/index.rst:281 msgid "Links and hypertext" msgstr "リンクとハイパーテキスト" -#: ../../rst/dev_guide/style_guide/index.rst:279 +#: ../../rst/dev_guide/style_guide/index.rst:281 msgid "URLs and cross-reference links have descriptive text that conveys information about the content of the linked target. See :ref:`style_links` for how to format links." msgstr "URL と相互参照リンクには、リンク先のターゲットの内容に関する情報を伝える説明テキストがあります。リンクの形式については、:ref:`style_links` を参照してください。" -#: ../../rst/dev_guide/style_guide/index.rst:297 +#: ../../rst/dev_guide/style_guide/index.rst:299 msgid "Tables" msgstr "Tables" -#: ../../rst/dev_guide/style_guide/index.rst:282 +#: ../../rst/dev_guide/style_guide/index.rst:284 msgid "Tables have a simple, logical reading order from left to right, and top to bottom. Tables include a header row and avoid empty or blank table cells. Label tables with a descriptive title." msgstr "テーブルには、論理的な読み取り順序があり、左から右、上から下に読み取ります。テーブルにはヘッダー行が含まれ、空のテーブルセルや空白のテーブルセルを回避します。テーブルには説明的なタイトルをラベル付けします。" -#: ../../rst/dev_guide/style_guide/index.rst:303 +#: ../../rst/dev_guide/style_guide/index.rst:305 msgid "Colors and other visual information" msgstr "色やその他の視覚情報" -#: ../../rst/dev_guide/style_guide/index.rst:300 +#: ../../rst/dev_guide/style_guide/index.rst:302 msgid "Avoid instructions that rely solely on sensory characteristics. For example, do not use ``Click the square, blue button to continue.``" msgstr "感覚特性のみに依存する命令は回避します。たとえば、``Click the square, blue button to continue.`` は使用しないでください。" -#: ../../rst/dev_guide/style_guide/index.rst:301 +#: ../../rst/dev_guide/style_guide/index.rst:303 msgid "Convey information by methods and not by color alone." msgstr "色だけではなく、メソッドにより情報を伝えます。" -#: ../../rst/dev_guide/style_guide/index.rst:302 +#: ../../rst/dev_guide/style_guide/index.rst:304 msgid "Ensure there is sufficient contrast between foreground and background text or graphical elements in images and diagrams." msgstr "イメージや図の全景と背景のテキストやグラフィック要素の間に、十分なコントラストがあることを確認します。" -#: ../../rst/dev_guide/style_guide/index.rst:303 +#: ../../rst/dev_guide/style_guide/index.rst:305 msgid "Instructions for navigating through an interface make sense without directional indicators such as left, right, above, and below." msgstr "インターフェイス上を移動する順序は、左、右、上、下などの方向インジケーターがなくても理解できます。" -#: ../../rst/dev_guide/style_guide/index.rst:306 +#: ../../rst/dev_guide/style_guide/index.rst:308 msgid "Accessibility resources" msgstr "アクセシビリティーリソース" -#: ../../rst/dev_guide/style_guide/index.rst:308 +#: ../../rst/dev_guide/style_guide/index.rst:310 msgid "Use the following resources to help test your documentation changes:" msgstr "以下のリソースを使用して、ドキュメントの変更をテストします。" -#: ../../rst/dev_guide/style_guide/index.rst:310 +#: ../../rst/dev_guide/style_guide/index.rst:312 msgid "`axe DevTools browser extension `_ - Highlights accessibility issues on a website page." msgstr "`axe DevTools browser extension `_ - Web サイトのページ上でアクセシビリティーの問題を強調表示します。" -#: ../../rst/dev_guide/style_guide/index.rst:311 +#: ../../rst/dev_guide/style_guide/index.rst:313 msgid "`WAVE browser extension `_ from WebAIM - another accessibility tester." msgstr "WebAIM からの `WAVE browser extension `_ - 別のアクセシビリティーテスター。" -#: ../../rst/dev_guide/style_guide/index.rst:312 +#: ../../rst/dev_guide/style_guide/index.rst:314 msgid "`Orca screen reader `_ - Common tool used by people with vision impairments." msgstr "`Orca screen reader `_ - 視覚障害を持つユーザーが使用する一般的なツール。" -#: ../../rst/dev_guide/style_guide/index.rst:313 +#: ../../rst/dev_guide/style_guide/index.rst:315 msgid "`color filter `_ - For color-blind testing." msgstr "`color filter `_ - 色覚検査用。" -#: ../../rst/dev_guide/style_guide/index.rst:316 +#: ../../rst/dev_guide/style_guide/index.rst:318 msgid "More resources" msgstr "参考資料" -#: ../../rst/dev_guide/style_guide/index.rst:318 +#: ../../rst/dev_guide/style_guide/index.rst:320 msgid "These pages offer more help with grammatical, stylistic, and technical rules for documentation." msgstr "以下のページでは、ドキュメントに関する文法、スタイル、および技術的なルールを紹介しています。" -#: ../../rst/dev_guide/style_guide/index.rst:333 +#: ../../rst/dev_guide/style_guide/index.rst:335 msgid ":ref:`community_documentation_contributions`" msgstr ":ref:`community_documentation_contributions`" -#: ../../rst/dev_guide/style_guide/index.rst:334 +#: ../../rst/dev_guide/style_guide/index.rst:336 msgid "How to contribute to the Ansible documentation" msgstr "Ansible ドキュメントへの貢献方法" -#: ../../rst/dev_guide/style_guide/index.rst:335 +#: ../../rst/dev_guide/style_guide/index.rst:337 msgid ":ref:`testing_documentation_locally`" msgstr ":ref:`testing_documentation_locally`" -#: ../../rst/dev_guide/style_guide/index.rst:336 +#: ../../rst/dev_guide/style_guide/index.rst:338 msgid "How to build the Ansible documentation" msgstr "Ansible ドキュメントのビルド方法" -#: ../../rst/dev_guide/style_guide/index.rst:338 +#: ../../rst/dev_guide/style_guide/index.rst:340 msgid "#ansible-docs IRC chat channel" msgstr "IRC チャットチャンネル (#ansible-docs)" @@ -9426,7 +9176,7 @@ msgstr "アプリケーション" #: ../../rst/dev_guide/style_guide/spelling_word_choice.rst:15 msgid "When used as a proper name, use the capitalization of the product, such as GNUPro or Source-Navigator. When used as a command, use lowercase as appropriate, such as \"To start GCC, type ``gcc``.\"" -msgstr "固有名詞として使用する場合は、GNUPro または Source-Navigator のように製品の大文字を使用します。コマンドとして使用する場合は、「To start GCC, type ``gcc``.」(GCC を起動する場合は、``gcc`` を入力します) のように、適切な小文字を使用します。" +msgstr "固有名詞として使用する場合は、GNUPro または Source-Navigator のように製品の大文字を使用します。コマンドとして使用する場合は、\"To start GCC, type ``gcc``\" のように、適切な小文字を使用します。" #: ../../rst/dev_guide/style_guide/spelling_word_choice.rst:19 msgid "\"vi\" is always lowercase." @@ -9715,7 +9465,7 @@ msgstr "適切です。コマンドを参照している場合 (たとえば「T #: ../../rst/dev_guide/style_guide/spelling_word_choice.rst:169 msgid "Login" -msgstr "Login" +msgstr "ログイン" #: ../../rst/dev_guide/style_guide/spelling_word_choice.rst:170 msgid "A noun used to refer to the login prompt, such as \"At the login prompt, enter your username.\"" @@ -9904,7 +9654,7 @@ msgstr "US" #: ../../rst/dev_guide/style_guide/spelling_word_choice.rst:269 msgid "User" -msgstr "User" +msgstr "ユーザー" #: ../../rst/dev_guide/style_guide/spelling_word_choice.rst:270 msgid "When referring to the reader, use \"you\" instead of \"user.\" For example, \"The user must...\" is incorrect. Use \"You must...\" instead. If referring to more than one user, calling the collection \"users\" is acceptable, such as \"Other users may wish to access your database.\"" @@ -9912,7 +9662,7 @@ msgstr "読み手を示す場合は、「user」ではなく「you」を使用 #: ../../rst/dev_guide/style_guide/spelling_word_choice.rst:273 msgid "Username" -msgstr "Username" +msgstr "ユーザー名" #: ../../rst/dev_guide/style_guide/spelling_word_choice.rst:274 msgid "Correct. Do not use \"user name.\"" @@ -9960,7 +9710,7 @@ msgstr "適切です。「webserver」は使用しないでください。たと #: ../../rst/dev_guide/style_guide/spelling_word_choice.rst:297 msgid "Website" -msgstr "Website" +msgstr "Web サイト" #: ../../rst/dev_guide/style_guide/spelling_word_choice.rst:298 msgid "Correct. Do not use \"web site\" or \"Web site.\" For example, \"The Ansible website contains ...\"" @@ -10275,7 +10025,6 @@ msgid "This style guide incorporates current Ansible resources and information s msgstr "このスタイルガイドには、現在の Ansible リソースと情報が組み込まれているため、サイトとドキュメント全体の一貫性を保つことができます。" #: ../../rst/dev_guide/testing.rst:5 -#: ../../rst/dev_guide/testing_running_locally.rst:7 msgid "Testing Ansible" msgstr "Ansible のテスト" @@ -10308,27 +10057,18 @@ msgid "At a high level we have the following classifications of tests:" msgstr "テストは、大きく分けて以下のように分類されます。" #: ../../rst/dev_guide/testing.rst -#: ../../rst/dev_guide/testing/sanity/compile.rst:2 -msgid "compile" -msgstr "コンパイル" +msgid "sanity" +msgstr "健全性" #: ../../rst/dev_guide/testing.rst:30 -msgid ":ref:`testing_compile`" -msgstr ":ref:`testing_compile`" +msgid ":ref:`testing_sanity`" +msgstr ":ref:`testing_sanity`" #: ../../rst/dev_guide/testing.rst:31 -msgid "Test python code against a variety of Python versions." -msgstr "さまざまな Python バージョンに対して python コードをテストします。" - -#: ../../rst/dev_guide/testing.rst -msgid "sanity" -msgstr "健全性" - -#: ../../rst/dev_guide/testing.rst:34 msgid "Sanity tests are made up of scripts and tools used to perform static code analysis." msgstr "健全性テストは、静的コード分析の実行に使用されるスクリプトおよびツールで構成されています。" -#: ../../rst/dev_guide/testing.rst:35 +#: ../../rst/dev_guide/testing.rst:32 msgid "The primary purpose of these tests is to enforce Ansible coding standards and requirements." msgstr "これらのテストの主な目的は、Ansible コーディングの仕様および要件を適用することです。" @@ -10336,7 +10076,11 @@ msgstr "これらのテストの主な目的は、Ansible コーディングの msgid "integration" msgstr "統合" -#: ../../rst/dev_guide/testing.rst:38 +#: ../../rst/dev_guide/testing.rst:34 +msgid ":ref:`testing_integration`" +msgstr ":ref:`testing_integration`" + +#: ../../rst/dev_guide/testing.rst:35 msgid "Functional tests of modules and Ansible core functionality." msgstr "モジュールおよび Ansible コア機能の機能テスト" @@ -10344,228 +10088,224 @@ msgstr "モジュールおよび Ansible コア機能の機能テスト" msgid "units" msgstr "ユニット" -#: ../../rst/dev_guide/testing.rst:40 +#: ../../rst/dev_guide/testing.rst:37 #: ../../rst/dev_guide/testing_units_modules.rst:567 msgid ":ref:`testing_units`" msgstr ":ref:`testing_units`" -#: ../../rst/dev_guide/testing.rst:41 +#: ../../rst/dev_guide/testing.rst:38 msgid "Tests directly against individual parts of the code base." msgstr "コードベースの個々の部分に対して直接テストを行います。" -#: ../../rst/dev_guide/testing.rst:45 +#: ../../rst/dev_guide/testing.rst:42 msgid "Testing within GitHub & Azure Pipelines" msgstr "GitHub および Azure Pipeline でのテスト" -#: ../../rst/dev_guide/testing.rst:49 +#: ../../rst/dev_guide/testing.rst:46 msgid "Organization" msgstr "組織" -#: ../../rst/dev_guide/testing.rst:51 +#: ../../rst/dev_guide/testing.rst:48 msgid "When Pull Requests (PRs) are created they are tested using Azure Pipelines, a Continuous Integration (CI) tool. Results are shown at the end of every PR." msgstr "プル要求 (PR: Pull Requests) が作成されると、継続的統合 (CI) ツールである Azure Pipeline を使用してテストが行われます。結果はすべての PR の最後に表示されます。" -#: ../../rst/dev_guide/testing.rst:53 +#: ../../rst/dev_guide/testing.rst:50 msgid "When Azure Pipelines detects an error and it can be linked back to a file that has been modified in the PR then the relevant lines will be added as a GitHub comment. For example:" msgstr "Azure Pipeline がエラーを検出し、それが PR で変更されたファイルにリンクされると、関連する行が GitHub のコメントとして追加されます。たとえば、以下のようになります。" -#: ../../rst/dev_guide/testing.rst:64 +#: ../../rst/dev_guide/testing.rst:61 msgid "From the above example we can see that ``--test pep8`` and ``--test validate-modules`` have identified an issue. The commands given allow you to run the same tests locally to ensure you've fixed all issues without having to push your changes to GitHub and wait for Azure Pipelines, for example:" msgstr "上記の例から、``--test pep8`` および ``--test validate-modules`` が問題を特定したことが分かります。指定されたコマンドを使用すると、同じテストをローカルで実行して、変更を GitHub にプッシュして Azure Pipeline を待つことなく、すべての問題を修正したことを確認できます。次に例を示します。" -#: ../../rst/dev_guide/testing.rst:66 +#: ../../rst/dev_guide/testing.rst:63 msgid "If you haven't already got Ansible available, use the local checkout by running:" msgstr "Ansible がまだ利用できるようになっていない場合は、ローカルでチェックアウトを実行してください。" -#: ../../rst/dev_guide/testing.rst:72 +#: ../../rst/dev_guide/testing.rst:69 msgid "Then run the tests detailed in the GitHub comment:" msgstr "次に、GitHub コメントで説明するテストを実行します。" -#: ../../rst/dev_guide/testing.rst:79 +#: ../../rst/dev_guide/testing.rst:76 msgid "If there isn't a GitHub comment stating what's failed you can inspect the results by clicking on the \"Details\" button under the \"checks have failed\" message at the end of the PR." msgstr "GitHub のコメントに何が失敗したかが書かれていない場合は、PR の末尾にある「checks have failed」というメッセージの下にある「Details」ボタンをクリックして結果を確認することができます。" -#: ../../rst/dev_guide/testing.rst:82 +#: ../../rst/dev_guide/testing.rst:79 msgid "Rerunning a failing CI job" msgstr "失敗した CI ジョブの再実行" -#: ../../rst/dev_guide/testing.rst:84 +#: ../../rst/dev_guide/testing.rst:81 msgid "Occasionally you may find your PR fails due to a reason unrelated to your change. This could happen for several reasons, including:" msgstr "時折、変更とは関係のない理由で PR が失敗することがあります。これには、以下のような理由が考えられます。" -#: ../../rst/dev_guide/testing.rst:86 +#: ../../rst/dev_guide/testing.rst:83 msgid "a temporary issue accessing an external resource, such as a yum or git repo" msgstr "yum や git リポジトリーなどの外部リソースにアクセスする際に一時的に問題が発生した場合。" -#: ../../rst/dev_guide/testing.rst:87 +#: ../../rst/dev_guide/testing.rst:84 msgid "a timeout creating a virtual machine to run the tests on" msgstr "テストを実行するための仮想マシンを作成するタイムアウト。" -#: ../../rst/dev_guide/testing.rst:89 +#: ../../rst/dev_guide/testing.rst:86 msgid "If either of these issues appear to be the case, you can rerun the Azure Pipelines test by:" msgstr "これらの問題のいずれかがケースとして表示される場合は、以下を実行して Azure Pipelines テストを再実行できます。" -#: ../../rst/dev_guide/testing.rst:91 +#: ../../rst/dev_guide/testing.rst:88 msgid "adding a comment with ``/rebuild`` (full rebuild) or ``/rebuild_failed`` (rebuild only failed CI nodes) to the PR" msgstr "``/rebuild`` (完全な再構築) または ``/rebuild_failed`` (構築に失敗した CI ノードのみの再構築) でのコメントを追加する" -#: ../../rst/dev_guide/testing.rst:92 +#: ../../rst/dev_guide/testing.rst:89 msgid "closing and re-opening the PR (full rebuild)" msgstr "PR を閉じて再度開く (完全な再構築)" -#: ../../rst/dev_guide/testing.rst:93 +#: ../../rst/dev_guide/testing.rst:90 msgid "making another change to the PR and pushing to GitHub" msgstr "PR に何らかの変更を加えて GitHub にプッシュする" -#: ../../rst/dev_guide/testing.rst:95 +#: ../../rst/dev_guide/testing.rst:92 msgid "If the issue persists, please contact us in the ``#ansible-devel`` chat channel (using Matrix at ansible.im or using IRC at `irc.libera.chat `_)." msgstr "それでも問題が解決しない場合は、``#ansible-devel`` チャットチャンネルでお問い合わせください(ansible.imでMatrixを使用、または`irc.libera.chat `_でIRCを使用)。" -#: ../../rst/dev_guide/testing.rst:99 +#: ../../rst/dev_guide/testing.rst:96 msgid "How to test a PR" msgstr "PR をテストする方法" -#: ../../rst/dev_guide/testing.rst:101 +#: ../../rst/dev_guide/testing.rst:98 msgid "Ideally, code should add tests that prove that the code works. That's not always possible and tests are not always comprehensive, especially when a user doesn't have access to a wide variety of platforms, or is using an API or web service. In these cases, live testing against real equipment can be more valuable than automation that runs against simulated interfaces. In any case, things should always be tested manually the first time as well." msgstr "理想的には、コードが機能することを証明するテストを追加することが推奨されます。特に、ユーザーがさまざまなプラットフォームにアクセスできない場合、または API や Web サービスを使用している場合は、これが必ずしも可能ではなく、テストも必ずしも包括的ではありません。このような場合は、シミュレーションされたインターフェースに対して実行される自動化よりも、実際の機器を使用したライブテストの方が有益となります。いずれにせよ、最初の段階でも常に手動でテストする必要があります。" -#: ../../rst/dev_guide/testing.rst:103 +#: ../../rst/dev_guide/testing.rst:100 msgid "Thankfully, helping to test Ansible is pretty straightforward, assuming you are familiar with how Ansible works." msgstr "Ansible の動作を熟知していれば、Ansible のテストを手伝うことは非常に簡単です。" -#: ../../rst/dev_guide/testing.rst:106 +#: ../../rst/dev_guide/testing.rst:103 msgid "Setup: Checking out a Pull Request" msgstr "設定: プル要求のチェックアウト" -#: ../../rst/dev_guide/testing.rst:108 +#: ../../rst/dev_guide/testing.rst:105 msgid "You can do this by:" msgstr "これは、以下の方法で実行できます。" -#: ../../rst/dev_guide/testing.rst:110 +#: ../../rst/dev_guide/testing.rst:107 msgid "checking out Ansible" msgstr "Ansible のチェックアウト" -#: ../../rst/dev_guide/testing.rst:111 +#: ../../rst/dev_guide/testing.rst:108 msgid "fetching the proposed changes into a test branch" msgstr "提案された変更をテストブランチに取得" -#: ../../rst/dev_guide/testing.rst:112 +#: ../../rst/dev_guide/testing.rst:109 msgid "testing" msgstr "テスト" -#: ../../rst/dev_guide/testing.rst:113 +#: ../../rst/dev_guide/testing.rst:110 msgid "commenting on that particular issue on GitHub" msgstr "GitHub に特定の問題についてのコメント" -#: ../../rst/dev_guide/testing.rst:115 +#: ../../rst/dev_guide/testing.rst:112 msgid "Here's how:" msgstr "以下に、実行する方法を説明します。" -#: ../../rst/dev_guide/testing.rst:118 +#: ../../rst/dev_guide/testing.rst:115 msgid "Testing source code from GitHub pull requests sent to us does have some inherent risk, as the source code sent may have mistakes or malicious code that could have a negative impact on your system. We recommend doing all testing on a virtual machine, whether a cloud instance, or locally. Some users like Vagrant or Docker for this, but they are optional. It is also useful to have virtual machines of different Linux or other flavors, since some features (for example, package managers such as apt or yum) are specific to those OS versions." msgstr "GitHub のプル要求から送られてきたソースコードをテストすることにはリスクが伴います。送られてきたソースコードには、間違いや悪意のあるコードが含まれていて、システムに影響を及ぼす可能性があるからです。すべてのテストは、仮想マシン上で行うことが推奨されます。クラウドインスタンスでもローカルでもかまいません。このために Vagrant や Docker を好むユーザーもいますが、これらは任意です。また、いくつかの機能 (たとえば、apt や yum などのパッケージマネージャー) は、それらの OS バージョンに固有のものであるため、異なる Linux やその他のフレーバーの仮想マシンを用意しておくと便利です。" -#: ../../rst/dev_guide/testing.rst:125 +#: ../../rst/dev_guide/testing.rst:122 msgid "Create a fresh area to work:" msgstr "作業用に新しい領域を作成します。" -#: ../../rst/dev_guide/testing.rst:132 -msgid "Next, find the pull request you'd like to test and make note of its number. It will look something like this::" +#: ../../rst/dev_guide/testing.rst:129 +msgid "Next, find the pull request you'd like to test and make note of its number. It will look something like this:" msgstr "次に、テストするプル要求を見つけて、その番号を書き留めます。次のようになります。" -#: ../../rst/dev_guide/testing.rst:136 +#: ../../rst/dev_guide/testing.rst:135 msgid "Only test ``ansible:devel``" msgstr "``ansible:devel`` のみをテストします。" -#: ../../rst/dev_guide/testing.rst:138 +#: ../../rst/dev_guide/testing.rst:137 msgid "It is important that the PR request target be ``ansible:devel``, as we do not accept pull requests into any other branch. Dot releases are cherry-picked manually by Ansible staff." msgstr "他のブランチへのプル要求は使用できないため、PR 要求のターゲットは ``ansible:devel`` にすることが重要です。ドットリリースは、Ansible のスタッフが入念に選択しています。" -#: ../../rst/dev_guide/testing.rst:140 +#: ../../rst/dev_guide/testing.rst:139 msgid "Use the pull request number when you fetch the proposed changes and create your branch for testing:" msgstr "提案された変更を取得し、テスト用にブランチを作成するときにプル要求番号を使用します。" -#: ../../rst/dev_guide/testing.rst:147 +#: ../../rst/dev_guide/testing.rst:146 msgid "The first command fetches the proposed changes from the pull request and creates a new branch named ``testing_PRXXXX``, where the XXXX is the actual number associated with the pull request (for example, 65381). The second command checks out the newly created branch." msgstr "1 つ目のコマンドはプル要求から提案された変更を取得し、``testing_PRXXXX`` という名前の新規ブランチを作成します。XXXX はプル要求に関連する実際の番号 (例: 65381) です。2 つ目のコマンドは、新たに作成されたブランチをチェックアウトします。" -#: ../../rst/dev_guide/testing.rst:150 +#: ../../rst/dev_guide/testing.rst:149 msgid "If the GitHub user interface shows that the pull request will not merge cleanly, we do not recommend proceeding if you are not somewhat familiar with git and coding, as you will have to resolve a merge conflict. This is the responsibility of the original pull request contributor." msgstr "GitHub ユーザーインターフェースで、プル要求が正常にマージされないと示された場合は、マージの競合を解決しなければならないため、git およびコーディングにあまり精通していない場合は、続行しないことが推奨されます。これは、元のプル要求の投稿者の責任です。" -#: ../../rst/dev_guide/testing.rst:153 +#: ../../rst/dev_guide/testing.rst:152 msgid "Some users do not create feature branches, which can cause problems when they have multiple, unrelated commits in their version of ``devel``. If the source looks like ``someuser:devel``, make sure there is only one commit listed on the pull request." msgstr "一部のユーザーは機能ブランチを作成しないため、``devel`` のバージョンに関連性のないコミットが複数ある場合に、問題が発生する可能性があります。ソースが ``someuser:devel`` のように表示される場合は、プル要求に記載されているコミットが 1 つだけであることを確認してください。" -#: ../../rst/dev_guide/testing.rst:155 +#: ../../rst/dev_guide/testing.rst:154 msgid "The Ansible source includes a script that allows you to use Ansible directly from source without requiring a full installation that is frequently used by developers on Ansible." msgstr "Ansible のソースには、Ansible の開発者が頻繁に使用するフルインストールを必要とせず、ソースから直接 Ansible を使用するようにするスクリプトが含まれています。" -#: ../../rst/dev_guide/testing.rst:158 +#: ../../rst/dev_guide/testing.rst:157 msgid "Simply source it (to use the Linux/Unix terminology) to begin using it immediately:" msgstr "ソースを作成するだけ (Linux/Unix の用語を使用するために) で、すぐに使い始めることができます。" -#: ../../rst/dev_guide/testing.rst:164 +#: ../../rst/dev_guide/testing.rst:163 msgid "This script modifies the ``PYTHONPATH`` environment variables (along with a few other things), which will be temporarily set as long as your shell session is open." msgstr "このスクリプトは、``PYTHONPATH`` 環境変数を変更します (他にもいくつかあります)。これは、シェルセッションが開いている間は一時的に設定されます。" -#: ../../rst/dev_guide/testing.rst:168 +#: ../../rst/dev_guide/testing.rst:167 msgid "Testing the Pull Request" msgstr "プル要求のテスト" -#: ../../rst/dev_guide/testing.rst:170 +#: ../../rst/dev_guide/testing.rst:169 msgid "At this point, you should be ready to begin testing!" msgstr "この時点でテストを開始する準備が整いました。" -#: ../../rst/dev_guide/testing.rst:172 +#: ../../rst/dev_guide/testing.rst:171 msgid "Some ideas of what to test are:" msgstr "何をテストするかのアイデアをいくつか挙げてみましょう。" -#: ../../rst/dev_guide/testing.rst:174 +#: ../../rst/dev_guide/testing.rst:173 msgid "Create a test Playbook with the examples in and check if they function correctly" msgstr "例題を含むテスト Playbook を作成し、それらが正しく機能するかどうかを確認します。" -#: ../../rst/dev_guide/testing.rst:175 +#: ../../rst/dev_guide/testing.rst:174 msgid "Test to see if any Python backtraces returned (that's a bug)" msgstr "Python のバックトレースが返されているかどうかをテストします (これはバグです)。" -#: ../../rst/dev_guide/testing.rst:176 +#: ../../rst/dev_guide/testing.rst:175 msgid "Test on different operating systems, or against different library versions" msgstr "異なるオペレーティングシステムで、または異なるバージョンのライブラリーに対してテストを行います。" -#: ../../rst/dev_guide/testing.rst:179 +#: ../../rst/dev_guide/testing.rst:178 msgid "Run sanity tests" msgstr "健全性テストの実行" -#: ../../rst/dev_guide/testing.rst:185 +#: ../../rst/dev_guide/testing.rst:184 msgid "More information: :ref:`testing_sanity`" msgstr "詳細情報: :ref:`testing_sanity`" -#: ../../rst/dev_guide/testing.rst:188 +#: ../../rst/dev_guide/testing.rst:187 msgid "Run unit tests" msgstr "ユニットテストの実行" -#: ../../rst/dev_guide/testing.rst:194 +#: ../../rst/dev_guide/testing.rst:193 msgid "More information: :ref:`testing_units`" msgstr "詳細情報: :ref:`testing_units`" -#: ../../rst/dev_guide/testing.rst:197 +#: ../../rst/dev_guide/testing.rst:196 msgid "Run integration tests" msgstr "統合テストの実行" -#: ../../rst/dev_guide/testing.rst:203 +#: ../../rst/dev_guide/testing.rst:202 msgid "More information: :ref:`testing_integration`" msgstr "詳細情報: :ref:`testing_integration`" -#: ../../rst/dev_guide/testing.rst:205 +#: ../../rst/dev_guide/testing.rst:204 msgid "Any potential issues should be added as comments on the pull request (and it's acceptable to comment if the feature works as well), remembering to include the output of ``ansible --version``" msgstr "潜在的な問題があれば、プル要求にコメントを追加する必要があります (機能が正常に動作する場合もコメントしてもかまいません)。忘れずに ``ansible --version`` の出力を転載してください。" -#: ../../rst/dev_guide/testing.rst:207 -msgid "Example::" -msgstr "例:" - -#: ../../rst/dev_guide/testing.rst:211 +#: ../../rst/dev_guide/testing.rst:212 msgid "If the PR does not resolve the issue, or if you see any failures from the unit/integration tests, just include that output instead:" msgstr "PR が問題を解決しない場合や、ユニット/統合テストでエラーが発生した場合は、代わりにその出力を転載してください。" @@ -10593,23 +10333,23 @@ msgstr "StackTrace" msgid "some other output" msgstr "some other output" -#: ../../rst/dev_guide/testing.rst:224 +#: ../../rst/dev_guide/testing.rst:225 msgid "Code Coverage Online" msgstr "オンラインのコードカバレージ" -#: ../../rst/dev_guide/testing.rst:226 +#: ../../rst/dev_guide/testing.rst:227 msgid "`The online code coverage reports `_ are a good way to identify areas for testing improvement in Ansible. By following red colors you can drill down through the reports to find files which have no tests at all. Adding both integration and unit tests which show clearly how code should work, verify important Ansible functions and increase testing coverage in areas where there is none is a valuable way to help improve Ansible." msgstr "`オンラインコードカバレージレポート `_ は、Ansible でテストが向上する領域を特定するのが適切な方法です。赤い色に従うことで、レポートを掘り下げて、テストがまったくないファイルを見つけることができます。コードがどのように機能するかを明確に示す統合テストとユニットテストの両方を追加し、重要な Ansible 関数を検証し、存在しない領域でテスト範囲を拡大することは、Ansible の改善に役立つ貴重な方法です。" -#: ../../rst/dev_guide/testing.rst:233 +#: ../../rst/dev_guide/testing.rst:234 msgid "The code coverage reports only cover the ``devel`` branch of Ansible where new feature development takes place. Pull requests and new code will be missing from the codecov.io coverage reports so local reporting is needed. Most ``ansible-test`` commands allow you to collect code coverage, this is particularly useful to indicate where to extend testing. See :ref:`testing_running_locally` for more information." msgstr "コードカバレッジレポートは、新しい機能開発が行われる Ansible の ``devel`` ブランチのみを対象とします。プル要求および新規コードは codecov.io のカバレッジレポートに含まれないため、ローカルレポートが必要になるようです。ほとんどの ``ansible-test`` コマンドでは、コードカバレッジを収集できます。これは、テストを拡張する場所を示すのに特に役に立ちます。詳細は、「:ref:`testing_running_locally`」を参照してください。" -#: ../../rst/dev_guide/testing.rst:241 +#: ../../rst/dev_guide/testing.rst:242 msgid "Want to know more about testing?" msgstr "テストに関する詳細情報" -#: ../../rst/dev_guide/testing.rst:243 +#: ../../rst/dev_guide/testing.rst:244 msgid "If you'd like to know more about the plans for improving testing Ansible then why not join the `Testing Working Group `_." msgstr "Ansible テストを改善する詳細な計画を確認したい場合は、`Testing Working Group `_ にご参加ください。" @@ -10746,23 +10486,75 @@ msgid "See :ref:`collection_changelogs` for details." msgstr "詳しくは、:ref:`collection_changelogs` を参照してください。" #: ../../rst/dev_guide/testing/sanity/compile.rst:4 -msgid "See :ref:`testing_compile` for more information." -msgstr "詳細は、「:ref:`testing_compile`」を参照してください。" +msgid "compile" +msgstr "コンパイル" -#: ../../rst/dev_guide/testing/sanity/configure-remoting-ps1.rst:2 -msgid "configure-remoting-ps1" -msgstr "configure-remoting-ps1" +#: ../../rst/dev_guide/testing/sanity/compile.rst:6 +msgid "All Python source files must successfully compile using all supported Python versions." +msgstr "すべての Python ソースファイルは、サポートされているすべての Python バージョンを使用して正常にコンパイルする必要があります。" -#: ../../rst/dev_guide/testing/sanity/configure-remoting-ps1.rst:4 -msgid "The file ``examples/scripts/ConfigureRemotingForAnsible.ps1`` is required and must be a regular file. It is used by external automated processes and cannot be moved, renamed or replaced with a symbolic link." -msgstr "``examples/scripts/ConfigureRemotingForAnsible.ps1`` ファイルは必須であり、通常のファイルである必要があります。これは外部の自動化プロセスによって使用され、移動したり、名前を変更したり、シンボリックリンクに置き換えたりすることはできません。" +#: ../../rst/dev_guide/testing/sanity/compile.rst:10 +msgid "The list of supported Python versions is dependent on the version of ``ansible-core`` that you are using. Make sure you consult the version of the documentation which matches your ``ansible-core`` version." +msgstr "サポートされている Python バージョンのリストは、使用している ``ansible-core`` のバージョンにより異なります。使用している ``ansible-core`` バージョンと一致するバージョンのドキュメントを参照してください。" -#: ../../rst/dev_guide/testing/sanity/deprecated-config.rst:4 -msgid "deprecated-config" -msgstr "非推奨の設定" +#: ../../rst/dev_guide/testing/sanity/compile.rst:13 +msgid "Controller code, including plugins in Ansible Collections, must support the following Python versions:" +msgstr "Ansible コレクションのプラグインを含め、コントローラーコードは次の Python バージョンをサポートする必要があります。" -#: ../../rst/dev_guide/testing/sanity/deprecated-config.rst:6 -msgid "``DOCUMENTATION`` config is scheduled for removal" +#: ../../rst/dev_guide/testing/sanity/compile.rst:15 +msgid "3.11" +msgstr "3.11" + +#: ../../rst/dev_guide/testing/sanity/compile.rst:16 +msgid "3.10" +msgstr "3.10" + +#: ../../rst/dev_guide/testing/sanity/compile.rst:17 +msgid "3.9" +msgstr "3.9" + +#: ../../rst/dev_guide/testing/sanity/compile.rst:19 +msgid "Code which runs on targets (``modules`` and ``module_utils``) must support all controller supported Python versions, as well as the additional Python versions supported only on targets:" +msgstr "ターゲット上で実行されるコード (``modules`` と ``module_utils``) は、コントローラーでサポートされているすべての Python バージョンと、ターゲットでのみサポートされている追加の Python バージョンをサポートする必要があります。" + +#: ../../rst/dev_guide/testing/sanity/compile.rst:22 +msgid "3.8" +msgstr "3.8" + +#: ../../rst/dev_guide/testing/sanity/compile.rst:23 +msgid "3.7" +msgstr "3.7" + +#: ../../rst/dev_guide/testing/sanity/compile.rst:24 +msgid "3.6" +msgstr "3.6" + +#: ../../rst/dev_guide/testing/sanity/compile.rst:25 +msgid "3.5" +msgstr "3.5" + +#: ../../rst/dev_guide/testing/sanity/compile.rst:26 +msgid "2.7" +msgstr "2.7" + +#: ../../rst/dev_guide/testing/sanity/compile.rst:30 +msgid "Ansible Collections can be `configured `_ to support a subset of the target-only Python versions." +msgstr "Ansible コレクションは、`configured `_ ターゲットのみの Python バージョンのサブセットをサポートします。" + +#: ../../rst/dev_guide/testing/sanity/configure-remoting-ps1.rst:2 +msgid "configure-remoting-ps1" +msgstr "configure-remoting-ps1" + +#: ../../rst/dev_guide/testing/sanity/configure-remoting-ps1.rst:4 +msgid "The file ``examples/scripts/ConfigureRemotingForAnsible.ps1`` is required and must be a regular file. It is used by external automated processes and cannot be moved, renamed or replaced with a symbolic link." +msgstr "``examples/scripts/ConfigureRemotingForAnsible.ps1`` ファイルは必須であり、通常のファイルである必要があります。これは外部の自動化プロセスによって使用され、移動したり、名前を変更したり、シンボリックリンクに置き換えたりすることはできません。" + +#: ../../rst/dev_guide/testing/sanity/deprecated-config.rst:4 +msgid "deprecated-config" +msgstr "非推奨の設定" + +#: ../../rst/dev_guide/testing/sanity/deprecated-config.rst:6 +msgid "``DOCUMENTATION`` config is scheduled for removal" msgstr "``DOCUMENTATION`` 設定は削除される予定です。" #: ../../rst/dev_guide/testing/sanity/docs-build.rst:2 @@ -10804,7 +10596,7 @@ msgid "Most Python files should include the following boilerplate at the top of msgstr "ほとんどの Python ファイルには、ファイルの上部、コメントヘッダーの直後に次の boilerplate を含める必要があります。" #: ../../rst/dev_guide/testing/sanity/future-import-boilerplate.rst:11 -msgid "This uses Python 3 semantics for absolute vs relative imports, division, and print. By doing this, we can write code which is portable between Python 2 and Python 3 by following the Python 3 semantics." +msgid "This uses Python 3 semantics for absolute versus relative imports, division, and print. By doing this, we can write code which is portable between Python 2 and Python 3 by following the Python 3 semantics." msgstr "ここでは、絶対的インポートと相対的インポート、除算、および出力に Python 3 セマンティクスを使用します。Python 3 セマンティクスに従って、Python 2 と Python 3 の間で移植可能なコードを作成できます。" #: ../../rst/dev_guide/testing/sanity/future-import-boilerplate.rst:18 @@ -10813,7 +10605,7 @@ msgstr "Python 2 は、``import copy`` のようなファイル名の「import #: ../../rst/dev_guide/testing/sanity/future-import-boilerplate.rst:28 msgid "`Absolute and relative imports `_" -msgstr "`絶対および相対のインポート `_" +msgstr "`Absolute and relative imports `_" #: ../../rst/dev_guide/testing/sanity/future-import-boilerplate.rst:33 msgid "In Python 2, the division operator (``/``) returns integer values when used with integers. If there was a remainder, this part would be left off (aka, `floor division`). In Python 3, the division operator (``/``) always returns a floating point number. Code that needs to calculate the integer portion of the quotient needs to switch to using the floor division operator (`//`) instead." @@ -10821,7 +10613,7 @@ msgstr "Python 2 では、除算演算子 (``/``) は、整数と共に使用す #: ../../rst/dev_guide/testing/sanity/future-import-boilerplate.rst:40 msgid "`Changing the division operator `_" -msgstr "`除算演算子の変更 `_" +msgstr "`Changing the division operator `_" #: ../../rst/dev_guide/testing/sanity/future-import-boilerplate.rst:45 msgid "In Python 2, :func:`python:print` is a keyword. In Python 3, :func:`python3:print` is a function with different parameters. Using this ``__future__`` allows using the Python 3 print semantics everywhere." @@ -10881,7 +10673,7 @@ msgstr "ignore ファイルの場所は、テストするコンテンツの種 #: ../../rst/dev_guide/testing/sanity/ignores.rst:41 msgid "Ansible Collections" -msgstr "Ansible コレクション" +msgstr "Ansible Collections" #: ../../rst/dev_guide/testing/sanity/ignores.rst:43 msgid "Since sanity tests change between Ansible releases, a separate ignore file is needed for each Ansible major release." @@ -10920,51 +10712,51 @@ msgid "The second column specifies the sanity test that the entry applies to. Th msgstr "2 列目は、エントリーが適用される健全性テストを指定します。これが健全性テストの名前になります。Python のバージョンに固有の健全性テストを使用する場合は、名前にダッシュ (``-``) と関連する Python バージョンが含まれます。名前付きテストがエラーコードを使用する場合は、無視するエラーコードをコロン (``:``) で区切ってテストの名前に追加する必要があります。" #: ../../rst/dev_guide/testing/sanity/ignores.rst:74 -msgid "Below are some example ignore entries for an Ansible collection::" -msgstr "以下の例は、Ansible コレクションの ignore エントリーの例です。" +msgid "Below are some example ignore entries for an Ansible collection:" +msgstr "以下は、Ansible コレクションの ignore エントリーの例です。" -#: ../../rst/dev_guide/testing/sanity/ignores.rst:80 +#: ../../rst/dev_guide/testing/sanity/ignores.rst:82 msgid "It is also possible to skip a sanity test for a specific file. This is done by adding ``!skip`` after the sanity test name in the second column. When this is done, no error code is included, even if the sanity test uses error codes." msgstr "特定ファイルの健全性テストをスキップすることもできます。これは、2 番目のコラムの健全性テスト名の後に ``!skip`` を追加することで行います。これを行うと、健全性テストでエラーコードを使用しても、エラーコードは含まれません。" -#: ../../rst/dev_guide/testing/sanity/ignores.rst:84 -msgid "Below are some example skip entries for an Ansible collection::" -msgstr "以下は、Ansible コレクションのエントリーをスキップする例です。" +#: ../../rst/dev_guide/testing/sanity/ignores.rst:86 +msgid "Below are some example skip entries for an Ansible collection:" +msgstr "以下は、Ansible コレクションの skip エントリーの例です。" -#: ../../rst/dev_guide/testing/sanity/ignores.rst:89 +#: ../../rst/dev_guide/testing/sanity/ignores.rst:93 #: ../../rst/dev_guide/testing_sanity.rst:56 msgid "See the full list of :ref:`sanity tests `, which details the various tests and details how to fix identified issues." msgstr "各種テストや特定された問題を解決する方法の詳細は、「:ref:`健全性テスト `」の一覧を参照してください。" -#: ../../rst/dev_guide/testing/sanity/ignores.rst:92 +#: ../../rst/dev_guide/testing/sanity/ignores.rst:96 msgid "Ignore File Errors" msgstr "ignore ファイルエラー" -#: ../../rst/dev_guide/testing/sanity/ignores.rst:94 +#: ../../rst/dev_guide/testing/sanity/ignores.rst:98 msgid "There are various errors that can be reported for the ignore file itself:" msgstr "ignore ファイル自体について報告できるさまざまなエラーがあります。" -#: ../../rst/dev_guide/testing/sanity/ignores.rst:96 +#: ../../rst/dev_guide/testing/sanity/ignores.rst:100 msgid "syntax errors parsing the ignore file" msgstr "ignore ファイルを解析する構文エラー" -#: ../../rst/dev_guide/testing/sanity/ignores.rst:97 +#: ../../rst/dev_guide/testing/sanity/ignores.rst:101 msgid "references a file path that does not exist" msgstr "存在しないファイルパスを参照" -#: ../../rst/dev_guide/testing/sanity/ignores.rst:98 +#: ../../rst/dev_guide/testing/sanity/ignores.rst:102 msgid "references to a sanity test that does not exist" msgstr "存在しない健全性テストへの参照" -#: ../../rst/dev_guide/testing/sanity/ignores.rst:99 +#: ../../rst/dev_guide/testing/sanity/ignores.rst:103 msgid "ignoring an error that does not occur" msgstr "発生しないエラーを無視" -#: ../../rst/dev_guide/testing/sanity/ignores.rst:100 +#: ../../rst/dev_guide/testing/sanity/ignores.rst:104 msgid "ignoring a file which is skipped" msgstr "スキップされたファイルを無視" -#: ../../rst/dev_guide/testing/sanity/ignores.rst:101 +#: ../../rst/dev_guide/testing/sanity/ignores.rst:105 msgid "duplicate entries" msgstr "重複エントリー" @@ -10973,58 +10765,103 @@ msgid "import" msgstr "import" #: ../../rst/dev_guide/testing/sanity/import.rst:4 -msgid "Ansible allows unchecked imports of some libraries from specific directories, listed at the bottom of this section. Import all other Python libraries in a try/except ImportError block to support sanity tests such as ``validate-modules`` and to allow Ansible to give better error messages to the user. To import a library in a try/except ImportError block:" -msgstr "Ansible では、このセクションの下部に記載されている特定のディレクトリーから、いくつかのライブラリーを確認せずにインポートすることができます。``validate-modules`` などの健全性テストをサポートし、Ansible がユーザーに適切なエラーメッセージを表示できるようにするため、try/except ImportError ブロックで他のすべての Python ライブラリーをインポートします。try/except ImportError ブロックでライブラリをインポートするには、次を行います。" +msgid "Ansible :ref:`allows unchecked imports` of some libraries from specific directories. Importing any other Python library requires :ref:`handling import errors`. This enables support for sanity tests such as :ref:`testing_validate-modules` and provides better error messages to the user." +msgstr "Ansible では、特定のディレクトリーからの一部ライブラリーの :ref:`allows unchecked imports` が可能です。他の Python ライブラリーをインポートするには、:ref:`handling import errors` が必要です。そのため、:ref:`testing_validate-modules` などの健全性テストへのサポートが可能になり、より適切なエラーメッセージをユーザーに提供できます。" + +#: ../../rst/dev_guide/testing/sanity/import.rst:11 +msgid "Handling import errors" +msgstr "インポートエラーの処理" + +#: ../../rst/dev_guide/testing/sanity/import.rst:14 +msgid "In modules" +msgstr "モジュールの場合" + +#: ../../rst/dev_guide/testing/sanity/import.rst:16 +#: ../../rst/dev_guide/testing/sanity/import.rst:51 +msgid "Instead of using ``import another_library``:" +msgstr "``import another_library`` の代わりとして:" + +#: ../../rst/dev_guide/testing/sanity/import.rst:35 +msgid "The ``missing_required_lib`` import above will be used below." +msgstr "上記の ``missing_required_lib`` インポートは以下で使用されます。" -#: ../../rst/dev_guide/testing/sanity/import.rst:6 -msgid "In modules:" -msgstr "モジュールの場合:" +#: ../../rst/dev_guide/testing/sanity/import.rst:37 +msgid "Then in the module code:" +msgstr "モジュールコードの場合:" -#: ../../rst/dev_guide/testing/sanity/import.rst:33 -msgid "In plugins:" -msgstr "プラグインの場合:" +#: ../../rst/dev_guide/testing/sanity/import.rst:49 +msgid "In plugins" +msgstr "プラグインの場合" -#: ../../rst/dev_guide/testing/sanity/import.rst:58 +#: ../../rst/dev_guide/testing/sanity/import.rst:62 +msgid "Then in the plugin code, for example in ``__init__`` of the plugin:" +msgstr "プラグインコード (例: プラグインの ``__init__``) の場合:" + +#: ../../rst/dev_guide/testing/sanity/import.rst:70 +msgid "When used as base classes" +msgstr "ベースクラスとして使用する場合" + +#: ../../rst/dev_guide/testing/sanity/import.rst:74 +msgid "This solution builds on the previous two examples. Make sure to pick the appropriate one before continuing with this solution." +msgstr "このソリューションは、前の 2 つの例に基づいています。このソリューションを続行する前に、必ず適切なものを選択してください。" + +#: ../../rst/dev_guide/testing/sanity/import.rst:77 +msgid "Sometimes an import is used in a base class, for example:" +msgstr "インポートは基本クラスで使用されることがあります。以下はその例です。" + +#: ../../rst/dev_guide/testing/sanity/import.rst:86 +msgid "One option is make the entire class definition conditional:" +msgstr "オプションの 1 つとして、クラス定義全体を条件付きにできます。" + +#: ../../rst/dev_guide/testing/sanity/import.rst:94 +msgid "Another option is to define a substitute base class by modifying the exception handler:" +msgstr "もう 1 つのオプションとして、例外ハンドラーを変更して代替のベースクラスを定義できます。" + +#: ../../rst/dev_guide/testing/sanity/import.rst:108 +msgid "Allowed unchecked imports" +msgstr "未確認インポートの許可" + +#: ../../rst/dev_guide/testing/sanity/import.rst:110 msgid "Ansible allows the following unchecked imports from these specific directories:" msgstr "Ansible では、これらの特定のディレクトリーから次の未確認インポートを許可します。" -#: ../../rst/dev_guide/testing/sanity/import.rst:60 +#: ../../rst/dev_guide/testing/sanity/import.rst:112 msgid "ansible-core:" msgstr "ansible-core:" -#: ../../rst/dev_guide/testing/sanity/import.rst:62 +#: ../../rst/dev_guide/testing/sanity/import.rst:114 msgid "For ``lib/ansible/modules/`` and ``lib/ansible/module_utils/``, unchecked imports are only allowed from the Python standard library;" msgstr "``lib/ansible/modules/`` および ``lib/ansible/module_utils/`` の場合、未確認インポートは Python 標準ライブラリーでのみ利用可能です。" -#: ../../rst/dev_guide/testing/sanity/import.rst:63 +#: ../../rst/dev_guide/testing/sanity/import.rst:115 msgid "For ``lib/ansible/plugins/``, unchecked imports are only allowed from the Python standard library, from public dependencies of ansible-core, and from ansible-core itself;" msgstr "``lib/ansible/plugins/`` では、未確認インポートは、Python 標準ライブラリー、ansible-core のパブリック依存関係、および ansible-core 自体からのみ許可されます。" -#: ../../rst/dev_guide/testing/sanity/import.rst:65 +#: ../../rst/dev_guide/testing/sanity/import.rst:117 msgid "collections:" msgstr "コレクション:" -#: ../../rst/dev_guide/testing/sanity/import.rst:67 +#: ../../rst/dev_guide/testing/sanity/import.rst:119 msgid "For ``plugins/modules/`` and ``plugins/module_utils/``, unchecked imports are only allowed from the Python standard library;" msgstr "``plugins/modules/`` および ``plugins/module_utils/`` の場合、未確認インポートは Python 標準ライブラリーでのみ利用可能です。" -#: ../../rst/dev_guide/testing/sanity/import.rst:68 +#: ../../rst/dev_guide/testing/sanity/import.rst:120 msgid "For other directories in ``plugins/`` (see `the community collection requirements `_ for a list), unchecked imports are only allowed from the Python standard library, from public dependencies of ansible-core, and from ansible-core itself." msgstr "``plugins/`` のその他のディレクトリー (一覧は「`the community collection requirements `_」を参照) では、未確認インポートは Python 標準ライブラリー、ansible-core のパブリック依存関係、および ansible-core 自体からのみ許可されます。" -#: ../../rst/dev_guide/testing/sanity/import.rst:70 +#: ../../rst/dev_guide/testing/sanity/import.rst:122 msgid "Public dependencies of ansible-core are:" msgstr "ansible-core のパブリック依存関係は次のとおりです。" -#: ../../rst/dev_guide/testing/sanity/import.rst:72 +#: ../../rst/dev_guide/testing/sanity/import.rst:124 msgid "Jinja2" msgstr "Jinja2" -#: ../../rst/dev_guide/testing/sanity/import.rst:73 +#: ../../rst/dev_guide/testing/sanity/import.rst:125 msgid "PyYAML" msgstr "PyYAML" -#: ../../rst/dev_guide/testing/sanity/import.rst:74 +#: ../../rst/dev_guide/testing/sanity/import.rst:126 msgid "MarkupSafe (as a dependency of Jinja2)" msgstr "MarkupSafe (Jinja2 の依存関係として)" @@ -11094,6 +10931,7 @@ msgid "When selecting a group for a new test, use the same group as existing tes msgstr "新規テスト用にグループを選択する場合は、追加する既存のテストと同様のグループを使用します。複数のグループが利用可能な場合は、ランダムに 1 つのグループを選択します。" #: ../../rst/dev_guide/testing/sanity/integration-aliases.rst:29 +#: ../../rst/dev_guide/testing_running_locally.rst:15 msgid "Setup" msgstr "設定" @@ -11110,7 +10948,6 @@ msgid "``setup/always/TARGET`` - Run the target ``TARGET`` before each target th msgstr "``setup/always/TARGET`` - 必要な各ターゲットの前にターゲット ``TARGET`` を実行します。" #: ../../rst/dev_guide/testing/sanity/integration-aliases.rst:37 -#: ../../rst/dev_guide/testing_running_locally.rst:18 msgid "Requirements" msgstr "要件" @@ -11246,175 +11083,179 @@ msgstr "``destructive`` - ``--docker`` または ``--remote`` なしで ``--allo msgid "``hidden`` - Target is ignored. Usable as a dependency. Automatic for ``setup_`` and ``prepare_`` prefixed targets." msgstr "``hidden`` - ターゲットは無視されます。依存関係として使用できます。プレフィックス ``setup_`` および ``prepare_`` が付けられたターゲットに対する自動化。" -#: ../../rst/dev_guide/testing/sanity/integration-aliases.rst:101 +#: ../../rst/dev_guide/testing/sanity/integration-aliases.rst:99 +msgid "``retry/never`` - Target is excluded from retries enabled by the ``--retry-on-error`` option." +msgstr "``retry/never`` - ターゲットは、``--retry-on-error`` オプションによって有効化された再試行から除外されます。" + +#: ../../rst/dev_guide/testing/sanity/integration-aliases.rst:102 msgid "Unstable" msgstr "Unstable" -#: ../../rst/dev_guide/testing/sanity/integration-aliases.rst:103 +#: ../../rst/dev_guide/testing/sanity/integration-aliases.rst:104 msgid "Tests which fail sometimes should be marked with the ``unstable`` alias until the instability has been fixed. These tests will continue to run for pull requests which modify the test or the module under test." msgstr "時々失敗するテストは、不安定性が修正されるまで、``unstable`` エイリアスでマークする必要があります。これらのテストは、テストまたはテスト対象のモジュールを変更するプル要求に対して引き続き実行します。" -#: ../../rst/dev_guide/testing/sanity/integration-aliases.rst:106 +#: ../../rst/dev_guide/testing/sanity/integration-aliases.rst:107 msgid "This avoids unnecessary test failures for other pull requests, as well as tests on merge runs and nightly CI jobs." msgstr "これにより、他のプル要求に対する不要なテストの失敗や、マージの実行および毎夜の CI ジョブのテストも回避されます。" -#: ../../rst/dev_guide/testing/sanity/integration-aliases.rst:108 +#: ../../rst/dev_guide/testing/sanity/integration-aliases.rst:109 msgid "There are two ways to run unstable tests manually:" msgstr "不安定なテストを手動で実行する方法は 2 つあります。" -#: ../../rst/dev_guide/testing/sanity/integration-aliases.rst:110 +#: ../../rst/dev_guide/testing/sanity/integration-aliases.rst:111 msgid "Use the ``--allow-unstable`` option for ``ansible-test``" msgstr "``ansible-test`` には ``--allow-unstable`` オプションを使用します。" -#: ../../rst/dev_guide/testing/sanity/integration-aliases.rst:111 +#: ../../rst/dev_guide/testing/sanity/integration-aliases.rst:112 msgid "Prefix the test name with ``unstable/`` when passing it to ``ansible-test``." msgstr "それを ``ansible-test`` に渡す場合は、テスト名の前にプレフィックス ``unstable/`` を付けます。" -#: ../../rst/dev_guide/testing/sanity/integration-aliases.rst:113 +#: ../../rst/dev_guide/testing/sanity/integration-aliases.rst:114 msgid "Tests will be marked as unstable by a member of the Ansible Core Team. GitHub issues_ will be created to track each unstable test." msgstr "テストは、Ansible Core Team のメンバーによって Unstable と表示されます。GitHub 問題_ が作成され、不安定な各テストを追跡します。" -#: ../../rst/dev_guide/testing/sanity/integration-aliases.rst:117 +#: ../../rst/dev_guide/testing/sanity/integration-aliases.rst:118 msgid "Disabled" -msgstr "Disabled" +msgstr "無効化" -#: ../../rst/dev_guide/testing/sanity/integration-aliases.rst:119 +#: ../../rst/dev_guide/testing/sanity/integration-aliases.rst:120 msgid "Tests which always fail should be marked with the ``disabled`` alias until they can be fixed." msgstr "常に失敗するテストでは、修正されるまで、``disabled`` なエイリアスでマークされる必要があります。" -#: ../../rst/dev_guide/testing/sanity/integration-aliases.rst:121 +#: ../../rst/dev_guide/testing/sanity/integration-aliases.rst:122 msgid "Disabled tests are automatically skipped." msgstr "無効にされたテストは自動的にスキップされます。" -#: ../../rst/dev_guide/testing/sanity/integration-aliases.rst:123 +#: ../../rst/dev_guide/testing/sanity/integration-aliases.rst:124 msgid "There are two ways to run disabled tests manually:" msgstr "無効にされたテストを手動で実行する方法は 2 つあります。" -#: ../../rst/dev_guide/testing/sanity/integration-aliases.rst:125 +#: ../../rst/dev_guide/testing/sanity/integration-aliases.rst:126 msgid "Use the ``--allow-disabled`` option for ``ansible-test``" msgstr "``ansible-test`` には ``--allow-disabled`` オプションを使用します。" -#: ../../rst/dev_guide/testing/sanity/integration-aliases.rst:126 +#: ../../rst/dev_guide/testing/sanity/integration-aliases.rst:127 msgid "Prefix the test name with ``disabled/`` when passing it to ``ansible-test``." msgstr "それを ``ansible-test`` に渡す場合は、テスト名の前にプレフィックス ``disabled/`` を付けます。" -#: ../../rst/dev_guide/testing/sanity/integration-aliases.rst:128 +#: ../../rst/dev_guide/testing/sanity/integration-aliases.rst:129 msgid "Tests will be marked as disabled by a member of the Ansible Core Team. GitHub issues_ will be created to track each disabled test." msgstr "テストは、Ansible Core Team のメンバーによって無効とマークされます。GitHub 問題_ が作成され、無効にされた各テストを追跡します。" -#: ../../rst/dev_guide/testing/sanity/integration-aliases.rst:132 +#: ../../rst/dev_guide/testing/sanity/integration-aliases.rst:133 msgid "Unsupported" msgstr "Unsupported" -#: ../../rst/dev_guide/testing/sanity/integration-aliases.rst:134 +#: ../../rst/dev_guide/testing/sanity/integration-aliases.rst:135 msgid "Tests which cannot be run in CI should be marked with the ``unsupported`` alias. Most tests can be supported through the use of simulators and/or cloud plugins." msgstr "CI で実行できないテストには、``unsupported`` エイリアスのマークを付ける必要があります。ほとんどのテストはシミュレーターやクラウドプラグインを使用することでサポートされます。" -#: ../../rst/dev_guide/testing/sanity/integration-aliases.rst:137 +#: ../../rst/dev_guide/testing/sanity/integration-aliases.rst:138 msgid "However, if that is not possible then marking a test as unsupported will prevent it from running in CI." msgstr "ただし、テストが使用できない場合は、テストを unsupported と表示すると、CI でテストを実行できなくなります。" -#: ../../rst/dev_guide/testing/sanity/integration-aliases.rst:139 +#: ../../rst/dev_guide/testing/sanity/integration-aliases.rst:140 msgid "There are two ways to run unsupported tests manually:" msgstr "サポート対象外のテストを手動で実行する方法は 2 つあります。" -#: ../../rst/dev_guide/testing/sanity/integration-aliases.rst:141 +#: ../../rst/dev_guide/testing/sanity/integration-aliases.rst:142 msgid "Use the ``--allow-unsupported`` option for ``ansible-test``" msgstr "``ansible-test`` には ``--allow-unsupported`` オプションを使用します。" -#: ../../rst/dev_guide/testing/sanity/integration-aliases.rst:142 +#: ../../rst/dev_guide/testing/sanity/integration-aliases.rst:143 msgid "Prefix the test name with ``unsupported/`` when passing it to ``ansible-test``." msgstr "それを ``ansible-test`` に渡す場合は、テスト名の前にプレフィックス ``unsupported/`` を付けます。" -#: ../../rst/dev_guide/testing/sanity/integration-aliases.rst:144 +#: ../../rst/dev_guide/testing/sanity/integration-aliases.rst:145 msgid "Tests will be marked as unsupported by the contributor of the test." msgstr "テストは、テストの貢献者によって unsupported とマークされます。" -#: ../../rst/dev_guide/testing/sanity/integration-aliases.rst:147 +#: ../../rst/dev_guide/testing/sanity/integration-aliases.rst:148 msgid "Cloud" msgstr "クラウド" -#: ../../rst/dev_guide/testing/sanity/integration-aliases.rst:149 +#: ../../rst/dev_guide/testing/sanity/integration-aliases.rst:150 msgid "Tests for cloud services and other modules that require access to external APIs usually require special support for testing in CI." msgstr "通常、外部 API へのアクセスを必要とするクラウドサービスおよびその他のモジュールのテストには、CI でのテストに特別なサポートが必要です。" -#: ../../rst/dev_guide/testing/sanity/integration-aliases.rst:151 +#: ../../rst/dev_guide/testing/sanity/integration-aliases.rst:152 msgid "These require an additional alias to indicate the required test plugin." msgstr "これらには、必要なテストプラグインを指定するために追加のエイリアスが必要です。" -#: ../../rst/dev_guide/testing/sanity/integration-aliases.rst:153 +#: ../../rst/dev_guide/testing/sanity/integration-aliases.rst:154 msgid "Some of the available aliases are:" msgstr "利用可能なエイリアスには、以下のものがあります。" -#: ../../rst/dev_guide/testing/sanity/integration-aliases.rst:155 +#: ../../rst/dev_guide/testing/sanity/integration-aliases.rst:156 msgid "``cloud/aws``" msgstr "``cloud/aws``" -#: ../../rst/dev_guide/testing/sanity/integration-aliases.rst:156 +#: ../../rst/dev_guide/testing/sanity/integration-aliases.rst:157 msgid "``cloud/azure``" msgstr "``cloud/azure``" -#: ../../rst/dev_guide/testing/sanity/integration-aliases.rst:157 +#: ../../rst/dev_guide/testing/sanity/integration-aliases.rst:158 msgid "``cloud/cs``" msgstr "``cloud/cs``" -#: ../../rst/dev_guide/testing/sanity/integration-aliases.rst:158 +#: ../../rst/dev_guide/testing/sanity/integration-aliases.rst:159 msgid "``cloud/digitalocean``" msgstr "``cloud/digitalocean``" -#: ../../rst/dev_guide/testing/sanity/integration-aliases.rst:159 +#: ../../rst/dev_guide/testing/sanity/integration-aliases.rst:160 msgid "``cloud/foreman``" msgstr "``cloud/foreman``" -#: ../../rst/dev_guide/testing/sanity/integration-aliases.rst:160 +#: ../../rst/dev_guide/testing/sanity/integration-aliases.rst:161 msgid "``cloud/openshift``" msgstr "``cloud/openshift``" -#: ../../rst/dev_guide/testing/sanity/integration-aliases.rst:161 +#: ../../rst/dev_guide/testing/sanity/integration-aliases.rst:162 msgid "``cloud/tower``" msgstr "``cloud/tower``" -#: ../../rst/dev_guide/testing/sanity/integration-aliases.rst:162 +#: ../../rst/dev_guide/testing/sanity/integration-aliases.rst:163 msgid "``cloud/vcenter``" msgstr "``cloud/vcenter``" -#: ../../rst/dev_guide/testing/sanity/integration-aliases.rst:165 +#: ../../rst/dev_guide/testing/sanity/integration-aliases.rst:166 msgid "Untested" msgstr "未テスト" -#: ../../rst/dev_guide/testing/sanity/integration-aliases.rst:167 +#: ../../rst/dev_guide/testing/sanity/integration-aliases.rst:168 msgid "Every module and plugin should have integration tests, even if the tests cannot be run in CI." msgstr "テストを CI で実行できない場合でも、すべてのモジュールおよびプラグインに統合テストが含まれる必要があります。" -#: ../../rst/dev_guide/testing/sanity/integration-aliases.rst:170 +#: ../../rst/dev_guide/testing/sanity/integration-aliases.rst:171 msgid "Issues" msgstr "問題" -#: ../../rst/dev_guide/testing/sanity/integration-aliases.rst:172 +#: ../../rst/dev_guide/testing/sanity/integration-aliases.rst:173 msgid "Tests that are marked as unstable_ or disabled_ will have an issue created to track the status of the test. Each issue will be assigned to one of the following projects:" msgstr "unstable_ または disabled_ としてマークされているテストには、テストのステータスを追跡する問題が作成されます。それぞれの問題は以下のプロジェクトのいずれかに割り当てられます。" -#: ../../rst/dev_guide/testing/sanity/integration-aliases.rst:175 +#: ../../rst/dev_guide/testing/sanity/integration-aliases.rst:176 msgid "`AWS `_" msgstr "`AWS `_" -#: ../../rst/dev_guide/testing/sanity/integration-aliases.rst:176 +#: ../../rst/dev_guide/testing/sanity/integration-aliases.rst:177 msgid "`Azure `_" msgstr "`Azure `_" -#: ../../rst/dev_guide/testing/sanity/integration-aliases.rst:177 +#: ../../rst/dev_guide/testing/sanity/integration-aliases.rst:178 msgid "`Windows `_" msgstr "`Windows `_" -#: ../../rst/dev_guide/testing/sanity/integration-aliases.rst:178 +#: ../../rst/dev_guide/testing/sanity/integration-aliases.rst:179 msgid "`General `_" msgstr "`General `_" -#: ../../rst/dev_guide/testing/sanity/integration-aliases.rst:181 +#: ../../rst/dev_guide/testing/sanity/integration-aliases.rst:182 msgid "Questions" msgstr "ご質問はございますか。" -#: ../../rst/dev_guide/testing/sanity/integration-aliases.rst:183 +#: ../../rst/dev_guide/testing/sanity/integration-aliases.rst:184 msgid "For questions about integration tests reach out to @mattclay or @gundalow on GitHub or the ``#ansible-devel`` chat channel (using Matrix at ansible.im or using IRC at `irc.libera.chat `_)." msgstr "統合テストに関する質問は、GitHub で @mattclay もしくは @gundalow、または``#ansible-devel``チャットチャンネル(ansible.imでMatrixを使用、または`irc.libera.chat `_でIRCを使用)にお問い合わせください。" @@ -11461,8 +11302,8 @@ msgid "Additionally, the following code is checked against Python versions suppo msgstr "また、以下のコードは、管理対象ノードでのみサポートされる Python バージョンに対して確認されます。" #: ../../rst/dev_guide/testing/sanity/mypy.rst:14 -msgid "See https://mypy.readthedocs.io/en/stable/ for additional details." -msgstr "詳細は https://mypy.readthedocs.io/en/stable/ を参照してください。" +msgid "See `the mypy documentation `_" +msgstr "「`the mypy documentation `_」を参照してください。" #: ../../rst/dev_guide/testing/sanity/no-assert.rst:2 msgid "no-assert" @@ -11770,7 +11611,7 @@ msgid "It makes it so one can't jump into the middle of a file and know whether msgstr "これにより、ファイルの途中にジャンプして、裸のリテラル文字列がバイト文字列なのかテキスト文字列なのかを知ることができなくなります。プログラマーは、最初にファイルの先頭をチェックして、インポートが存在するかどうかを確認する必要があります。" #: ../../rst/dev_guide/testing/sanity/no-unicode-literals.rst:10 -msgid "It removes the ability to define native strings (a string which should be a byte string on python2 and a text string on python3) via a string literal." +msgid "It removes the ability to define native strings (a string which should be a byte string on python2 and a text string on python3) by a string literal." msgstr "これにより、文字列リテラルを介してネイティブ文字列 (python2 ではバイト文字列、python3 ではテキスト文字列である必要がある文字列) を定義する機能が削除されます。" #: ../../rst/dev_guide/testing/sanity/no-unicode-literals.rst:12 @@ -11857,17 +11698,25 @@ msgstr "package-data" msgid "Verifies that the combination of ``MANIFEST.in`` and ``package_data`` from ``setup.py`` properly installs data files from within ``lib/ansible``" msgstr "``setup.py`` から ``MANIFEST.in`` と ``package_data`` を組み合わせて、``lib/ansible`` 内からデータファイルが適切にインストールされていることを確認します。" -#: ../../rst/dev_guide/testing/sanity/pep8.rst:2 +#: ../../rst/dev_guide/testing/sanity/pep8.rst:4 msgid "pep8" msgstr "pep8" -#: ../../rst/dev_guide/testing/sanity/pep8.rst:4 +#: ../../rst/dev_guide/testing/sanity/pep8.rst:6 msgid "Python static analysis for PEP 8 style guideline compliance." msgstr "PEP 8 スタイルのガイドラインコンプライアンスに対する Python 静的分析です。" -#: ../../rst/dev_guide/testing/sanity/pep8.rst:6 -msgid "See :ref:`testing_pep8` for more information." -msgstr "詳細は、「:ref:`testing_pep8`」を参照してください。" +#: ../../rst/dev_guide/testing/sanity/pep8.rst:8 +msgid "`PEP 8`_ style guidelines are enforced by `pycodestyle`_ on all python files in the repository by default." +msgstr "`PEP 8`_ スタイルのガイドラインは、デフォルトでリポジトリーにあるすべての python ファイルで `pycodestyle`_ によって強制されます。" + +#: ../../rst/dev_guide/testing/sanity/pep8.rst:11 +msgid "Running locally" +msgstr "ローカルでの実行" + +#: ../../rst/dev_guide/testing/sanity/pep8.rst:13 +msgid "The `PEP 8`_ check can be run locally as follows:" +msgstr "`PEP 8`_ チェックは、次のようにローカルで実行できます。" #: ../../rst/dev_guide/testing/sanity/pslint.rst:2 msgid "pslint" @@ -12086,2383 +11935,2532 @@ msgstr "use-compat-six" msgid "Use ``six`` from ``module_utils`` instead of ``six``." msgstr "``six`` の代わりに ``module_utils`` から ``six`` を使用します。" -#: ../../rst/dev_guide/testing/sanity/validate-modules.rst:2 -#: ../../rst/dev_guide/testing_validate-modules.rst:7 +#: ../../rst/dev_guide/testing/sanity/validate-modules.rst:4 +#: ../../rst/dev_guide/testing_validate-modules.rst:5 msgid "validate-modules" msgstr "validate-modules" -#: ../../rst/dev_guide/testing/sanity/validate-modules.rst:4 +#: ../../rst/dev_guide/testing/sanity/validate-modules.rst:6 msgid "Analyze modules for common issues in code and documentation." msgstr "コードおよびドキュメントの一般的な問題についてモジュールを分析します。" -#: ../../rst/dev_guide/testing/sanity/validate-modules.rst:6 -msgid "See :ref:`testing_validate-modules` for more information." -msgstr "詳細は、「:ref:`testing_validate-modules`」を参照してください。" +#: ../../rst/dev_guide/testing/sanity/validate-modules.rst:12 +msgid "Usage" +msgstr "使用法" -#: ../../rst/dev_guide/testing/sanity/yamllint.rst:2 -msgid "yamllint" -msgstr "yamllint" +#: ../../rst/dev_guide/testing/sanity/validate-modules.rst:21 +msgid "Help" +msgstr "ヘルプ" -#: ../../rst/dev_guide/testing/sanity/yamllint.rst:4 -msgid "Check YAML files for syntax and formatting issues." -msgstr "YAML ファイルにおける構文およびフォーマットの問題を確認します。" +#: ../../rst/dev_guide/testing/sanity/validate-modules.rst:23 +msgid "Type ``ansible-test sanity validate-modules -h`` to display help for using this sanity test." +msgstr "``ansible-test sanity validate-modules -h`` を入力すると、この健全性テストを使用するためのヘルプが表示されます。" -#: ../../rst/dev_guide/testing_compile.rst:7 -msgid "Compile Tests" -msgstr "コンパイルテスト" +#: ../../rst/dev_guide/testing/sanity/validate-modules.rst:28 +msgid "Extending validate-modules" +msgstr "validate-modules の拡張" -#: ../../rst/dev_guide/testing_compile.rst:12 -#: ../../rst/dev_guide/testing_httptester.rst:10 -msgid "Overview" -msgstr "概要" +#: ../../rst/dev_guide/testing/sanity/validate-modules.rst:30 +msgid "The ``validate-modules`` tool has a `schema.py `_ that is used to validate the YAML blocks, such as ``DOCUMENTATION`` and ``RETURNS``." +msgstr "``validate-modules`` ツールには、``DOCUMENTATION``、``RETURNS`` などの YAML ブロックの検証に使用される `schema.py `_ があります。" -#: ../../rst/dev_guide/testing_compile.rst:14 -msgid "Compile tests check source files for valid syntax on all supported python versions:" -msgstr "コンパイルテストでは、サポートされているすべての python バージョンで、ソースファイルの構文が有効かどうかを確認します。" +#: ../../rst/dev_guide/testing/sanity/validate-modules.rst:34 +msgid "Codes" +msgstr "コード" -#: ../../rst/dev_guide/testing_compile.rst:16 -msgid "2.4 (Ansible 2.3 only)" -msgstr "2.4 (Ansible 2.3 のみ)" +#: ../../rst/dev_guide/testing/sanity/validate-modules.rst:37 +msgid "**Error Code**" +msgstr "**エラーコード**" -#: ../../rst/dev_guide/testing_compile.rst:17 -msgid "2.6" -msgstr "2.6" +#: ../../rst/dev_guide/testing/sanity/validate-modules.rst:37 +msgid "**Type**" +msgstr "**タイプ**" -#: ../../rst/dev_guide/testing_compile.rst:18 -msgid "2.7" -msgstr "2.7" +#: ../../rst/dev_guide/testing/sanity/validate-modules.rst:37 +msgid "**Level**" +msgstr "**レベル**" -#: ../../rst/dev_guide/testing_compile.rst:19 -msgid "3.5" -msgstr "3.5" +#: ../../rst/dev_guide/testing/sanity/validate-modules.rst:37 +msgid "**Sample Message**" +msgstr "**開始メッセージ**" -#: ../../rst/dev_guide/testing_compile.rst:20 -msgid "3.6" -msgstr "3.6" +#: ../../rst/dev_guide/testing/sanity/validate-modules.rst:39 +msgid "ansible-deprecated-module" +msgstr "ansible-deprecated-module" -#: ../../rst/dev_guide/testing_compile.rst:21 -msgid "3.7" -msgstr "3.7" +#: ../../rst/dev_guide/testing/sanity/validate-modules.rst:39 +#: ../../rst/dev_guide/testing/sanity/validate-modules.rst:40 +#: ../../rst/dev_guide/testing/sanity/validate-modules.rst:41 +#: ../../rst/dev_guide/testing/sanity/validate-modules.rst:43 +#: ../../rst/dev_guide/testing/sanity/validate-modules.rst:44 +#: ../../rst/dev_guide/testing/sanity/validate-modules.rst:45 +#: ../../rst/dev_guide/testing/sanity/validate-modules.rst:46 +#: ../../rst/dev_guide/testing/sanity/validate-modules.rst:47 +#: ../../rst/dev_guide/testing/sanity/validate-modules.rst:48 +#: ../../rst/dev_guide/testing/sanity/validate-modules.rst:49 +#: ../../rst/dev_guide/testing/sanity/validate-modules.rst:50 +#: ../../rst/dev_guide/testing/sanity/validate-modules.rst:51 +#: ../../rst/dev_guide/testing/sanity/validate-modules.rst:52 +#: ../../rst/dev_guide/testing/sanity/validate-modules.rst:53 +#: ../../rst/dev_guide/testing/sanity/validate-modules.rst:54 +#: ../../rst/dev_guide/testing/sanity/validate-modules.rst:55 +#: ../../rst/dev_guide/testing/sanity/validate-modules.rst:56 +#: ../../rst/dev_guide/testing/sanity/validate-modules.rst:59 +#: ../../rst/dev_guide/testing/sanity/validate-modules.rst:62 +#: ../../rst/dev_guide/testing/sanity/validate-modules.rst:63 +#: ../../rst/dev_guide/testing/sanity/validate-modules.rst:64 +#: ../../rst/dev_guide/testing/sanity/validate-modules.rst:65 +#: ../../rst/dev_guide/testing/sanity/validate-modules.rst:66 +#: ../../rst/dev_guide/testing/sanity/validate-modules.rst:67 +#: ../../rst/dev_guide/testing/sanity/validate-modules.rst:68 +#: ../../rst/dev_guide/testing/sanity/validate-modules.rst:69 +#: ../../rst/dev_guide/testing/sanity/validate-modules.rst:70 +#: ../../rst/dev_guide/testing/sanity/validate-modules.rst:72 +#: ../../rst/dev_guide/testing/sanity/validate-modules.rst:73 +#: ../../rst/dev_guide/testing/sanity/validate-modules.rst:75 +#: ../../rst/dev_guide/testing/sanity/validate-modules.rst:76 +#: ../../rst/dev_guide/testing/sanity/validate-modules.rst:77 +#: ../../rst/dev_guide/testing/sanity/validate-modules.rst:78 +#: ../../rst/dev_guide/testing/sanity/validate-modules.rst:79 +#: ../../rst/dev_guide/testing/sanity/validate-modules.rst:84 +#: ../../rst/dev_guide/testing/sanity/validate-modules.rst:85 +#: ../../rst/dev_guide/testing/sanity/validate-modules.rst:86 +#: ../../rst/dev_guide/testing/sanity/validate-modules.rst:87 +#: ../../rst/dev_guide/testing/sanity/validate-modules.rst:88 +#: ../../rst/dev_guide/testing/sanity/validate-modules.rst:92 +#: ../../rst/dev_guide/testing/sanity/validate-modules.rst:94 +#: ../../rst/dev_guide/testing/sanity/validate-modules.rst:95 +#: ../../rst/dev_guide/testing/sanity/validate-modules.rst:96 +#: ../../rst/dev_guide/testing/sanity/validate-modules.rst:97 +#: ../../rst/dev_guide/testing/sanity/validate-modules.rst:98 +#: ../../rst/dev_guide/testing/sanity/validate-modules.rst:99 +#: ../../rst/dev_guide/testing/sanity/validate-modules.rst:100 +#: ../../rst/dev_guide/testing/sanity/validate-modules.rst:103 +#: ../../rst/dev_guide/testing/sanity/validate-modules.rst:107 +#: ../../rst/dev_guide/testing/sanity/validate-modules.rst:108 +#: ../../rst/dev_guide/testing/sanity/validate-modules.rst:109 +#: ../../rst/dev_guide/testing/sanity/validate-modules.rst:112 +#: ../../rst/dev_guide/testing/sanity/validate-modules.rst:114 +#: ../../rst/dev_guide/testing/sanity/validate-modules.rst:120 +#: ../../rst/dev_guide/testing/sanity/validate-modules.rst:121 +#: ../../rst/dev_guide/testing/sanity/validate-modules.rst:122 +#: ../../rst/dev_guide/testing/sanity/validate-modules.rst:123 +#: ../../rst/dev_guide/testing/sanity/validate-modules.rst:124 +#: ../../rst/dev_guide/testing/sanity/validate-modules.rst:125 +#: ../../rst/dev_guide/testing/sanity/validate-modules.rst:126 +#: ../../rst/dev_guide/testing/sanity/validate-modules.rst:127 +#: ../../rst/dev_guide/testing/sanity/validate-modules.rst:128 +#: ../../rst/dev_guide/testing/sanity/validate-modules.rst:129 +#: ../../rst/dev_guide/testing/sanity/validate-modules.rst:130 +#: ../../rst/dev_guide/testing/sanity/validate-modules.rst:131 +#: ../../rst/dev_guide/testing/sanity/validate-modules.rst:132 +#: ../../rst/dev_guide/testing/sanity/validate-modules.rst:133 +#: ../../rst/dev_guide/testing/sanity/validate-modules.rst:134 +#: ../../rst/dev_guide/testing/sanity/validate-modules.rst:135 +#: ../../rst/dev_guide/testing/sanity/validate-modules.rst:136 +#: ../../rst/dev_guide/testing/sanity/validate-modules.rst:137 +#: ../../rst/dev_guide/testing/sanity/validate-modules.rst:138 +#: ../../rst/dev_guide/testing/sanity/validate-modules.rst:139 +msgid "Documentation" +msgstr "ドキュメント" -#: ../../rst/dev_guide/testing_compile.rst:22 -msgid "3.8" -msgstr "3.8" +#: ../../rst/dev_guide/testing/sanity/validate-modules.rst:39 +#: ../../rst/dev_guide/testing/sanity/validate-modules.rst:40 +#: ../../rst/dev_guide/testing/sanity/validate-modules.rst:41 +#: ../../rst/dev_guide/testing/sanity/validate-modules.rst:42 +#: ../../rst/dev_guide/testing/sanity/validate-modules.rst:43 +#: ../../rst/dev_guide/testing/sanity/validate-modules.rst:44 +#: ../../rst/dev_guide/testing/sanity/validate-modules.rst:45 +#: ../../rst/dev_guide/testing/sanity/validate-modules.rst:46 +#: ../../rst/dev_guide/testing/sanity/validate-modules.rst:47 +#: ../../rst/dev_guide/testing/sanity/validate-modules.rst:48 +#: ../../rst/dev_guide/testing/sanity/validate-modules.rst:49 +#: ../../rst/dev_guide/testing/sanity/validate-modules.rst:50 +#: ../../rst/dev_guide/testing/sanity/validate-modules.rst:51 +#: ../../rst/dev_guide/testing/sanity/validate-modules.rst:52 +#: ../../rst/dev_guide/testing/sanity/validate-modules.rst:53 +#: ../../rst/dev_guide/testing/sanity/validate-modules.rst:54 +#: ../../rst/dev_guide/testing/sanity/validate-modules.rst:55 +#: ../../rst/dev_guide/testing/sanity/validate-modules.rst:56 +#: ../../rst/dev_guide/testing/sanity/validate-modules.rst:57 +#: ../../rst/dev_guide/testing/sanity/validate-modules.rst:58 +#: ../../rst/dev_guide/testing/sanity/validate-modules.rst:59 +#: ../../rst/dev_guide/testing/sanity/validate-modules.rst:61 +#: ../../rst/dev_guide/testing/sanity/validate-modules.rst:62 +#: ../../rst/dev_guide/testing/sanity/validate-modules.rst:63 +#: ../../rst/dev_guide/testing/sanity/validate-modules.rst:64 +#: ../../rst/dev_guide/testing/sanity/validate-modules.rst:65 +#: ../../rst/dev_guide/testing/sanity/validate-modules.rst:66 +#: ../../rst/dev_guide/testing/sanity/validate-modules.rst:67 +#: ../../rst/dev_guide/testing/sanity/validate-modules.rst:68 +#: ../../rst/dev_guide/testing/sanity/validate-modules.rst:69 +#: ../../rst/dev_guide/testing/sanity/validate-modules.rst:70 +#: ../../rst/dev_guide/testing/sanity/validate-modules.rst:71 +#: ../../rst/dev_guide/testing/sanity/validate-modules.rst:72 +#: ../../rst/dev_guide/testing/sanity/validate-modules.rst:73 +#: ../../rst/dev_guide/testing/sanity/validate-modules.rst:74 +#: ../../rst/dev_guide/testing/sanity/validate-modules.rst:75 +#: ../../rst/dev_guide/testing/sanity/validate-modules.rst:77 +#: ../../rst/dev_guide/testing/sanity/validate-modules.rst:78 +#: ../../rst/dev_guide/testing/sanity/validate-modules.rst:79 +#: ../../rst/dev_guide/testing/sanity/validate-modules.rst:81 +#: ../../rst/dev_guide/testing/sanity/validate-modules.rst:82 +#: ../../rst/dev_guide/testing/sanity/validate-modules.rst:83 +#: ../../rst/dev_guide/testing/sanity/validate-modules.rst:84 +#: ../../rst/dev_guide/testing/sanity/validate-modules.rst:86 +#: ../../rst/dev_guide/testing/sanity/validate-modules.rst:87 +#: ../../rst/dev_guide/testing/sanity/validate-modules.rst:88 +#: ../../rst/dev_guide/testing/sanity/validate-modules.rst:89 +#: ../../rst/dev_guide/testing/sanity/validate-modules.rst:90 +#: ../../rst/dev_guide/testing/sanity/validate-modules.rst:91 +#: ../../rst/dev_guide/testing/sanity/validate-modules.rst:92 +#: ../../rst/dev_guide/testing/sanity/validate-modules.rst:93 +#: ../../rst/dev_guide/testing/sanity/validate-modules.rst:94 +#: ../../rst/dev_guide/testing/sanity/validate-modules.rst:95 +#: ../../rst/dev_guide/testing/sanity/validate-modules.rst:96 +#: ../../rst/dev_guide/testing/sanity/validate-modules.rst:97 +#: ../../rst/dev_guide/testing/sanity/validate-modules.rst:98 +#: ../../rst/dev_guide/testing/sanity/validate-modules.rst:99 +#: ../../rst/dev_guide/testing/sanity/validate-modules.rst:100 +#: ../../rst/dev_guide/testing/sanity/validate-modules.rst:101 +#: ../../rst/dev_guide/testing/sanity/validate-modules.rst:102 +#: ../../rst/dev_guide/testing/sanity/validate-modules.rst:103 +#: ../../rst/dev_guide/testing/sanity/validate-modules.rst:104 +#: ../../rst/dev_guide/testing/sanity/validate-modules.rst:105 +#: ../../rst/dev_guide/testing/sanity/validate-modules.rst:106 +#: ../../rst/dev_guide/testing/sanity/validate-modules.rst:107 +#: ../../rst/dev_guide/testing/sanity/validate-modules.rst:108 +#: ../../rst/dev_guide/testing/sanity/validate-modules.rst:109 +#: ../../rst/dev_guide/testing/sanity/validate-modules.rst:110 +#: ../../rst/dev_guide/testing/sanity/validate-modules.rst:112 +#: ../../rst/dev_guide/testing/sanity/validate-modules.rst:113 +#: ../../rst/dev_guide/testing/sanity/validate-modules.rst:115 +#: ../../rst/dev_guide/testing/sanity/validate-modules.rst:116 +#: ../../rst/dev_guide/testing/sanity/validate-modules.rst:117 +#: ../../rst/dev_guide/testing/sanity/validate-modules.rst:118 +#: ../../rst/dev_guide/testing/sanity/validate-modules.rst:119 +#: ../../rst/dev_guide/testing/sanity/validate-modules.rst:120 +#: ../../rst/dev_guide/testing/sanity/validate-modules.rst:121 +#: ../../rst/dev_guide/testing/sanity/validate-modules.rst:122 +#: ../../rst/dev_guide/testing/sanity/validate-modules.rst:123 +#: ../../rst/dev_guide/testing/sanity/validate-modules.rst:124 +#: ../../rst/dev_guide/testing/sanity/validate-modules.rst:125 +#: ../../rst/dev_guide/testing/sanity/validate-modules.rst:126 +#: ../../rst/dev_guide/testing/sanity/validate-modules.rst:127 +#: ../../rst/dev_guide/testing/sanity/validate-modules.rst:128 +#: ../../rst/dev_guide/testing/sanity/validate-modules.rst:129 +#: ../../rst/dev_guide/testing/sanity/validate-modules.rst:130 +#: ../../rst/dev_guide/testing/sanity/validate-modules.rst:131 +#: ../../rst/dev_guide/testing/sanity/validate-modules.rst:132 +#: ../../rst/dev_guide/testing/sanity/validate-modules.rst:133 +#: ../../rst/dev_guide/testing/sanity/validate-modules.rst:134 +#: ../../rst/dev_guide/testing/sanity/validate-modules.rst:135 +#: ../../rst/dev_guide/testing/sanity/validate-modules.rst:136 +#: ../../rst/dev_guide/testing/sanity/validate-modules.rst:137 +#: ../../rst/dev_guide/testing/sanity/validate-modules.rst:138 +#: ../../rst/dev_guide/testing/sanity/validate-modules.rst:139 +msgid "Error" +msgstr "エラー" -#: ../../rst/dev_guide/testing_compile.rst:23 -msgid "3.9" -msgstr "3.9" +#: ../../rst/dev_guide/testing/sanity/validate-modules.rst:39 +msgid "A module is deprecated and supposed to be removed in the current or an earlier Ansible version" +msgstr "モジュールは非推奨となり、現行またはそれ以前の Ansible バージョンで削除される予定です。" -#: ../../rst/dev_guide/testing_compile.rst:25 -msgid "NOTE: In Ansible 2.4 and earlier the compile test was provided by a dedicated sub-command ``ansible-test compile`` instead of a sanity test using ``ansible-test sanity --test compile``." -msgstr "注記: Ansible 2.4 以前では、``ansible-test sanity --test compile`` を使用する健全性テストの代わりに、コンパイルテストが専用のサブコマンド ``ansible-test compile`` によって提供されていました。" +#: ../../rst/dev_guide/testing/sanity/validate-modules.rst:40 +msgid "collection-deprecated-module" +msgstr "collection-deprecated-module" -#: ../../rst/dev_guide/testing_compile.rst:28 -msgid "Running compile tests locally" -msgstr "ローカルでのコンパイルテストの実行" +#: ../../rst/dev_guide/testing/sanity/validate-modules.rst:40 +msgid "A module is deprecated and supposed to be removed in the current or an earlier collection version" +msgstr "モジュールは非推奨となり、現行またはそれ以前のバージョンのコレクションで削除される予定です。" -#: ../../rst/dev_guide/testing_compile.rst:30 -msgid "Compile tests can be run across the whole code base by doing:" -msgstr "コンパイルテストを実行するには、次のように、コードベース全体でテストを実行できます。" +#: ../../rst/dev_guide/testing/sanity/validate-modules.rst:41 +msgid "ansible-deprecated-version" +msgstr "ansible-deprecated-version" -#: ../../rst/dev_guide/testing_compile.rst:38 -#: ../../rst/dev_guide/testing_units.rst:38 -msgid "Against a single file by doing:" -msgstr "1 つのファイルに対して以下を行います。" +#: ../../rst/dev_guide/testing/sanity/validate-modules.rst:41 +msgid "A feature is deprecated and supposed to be removed in the current or an earlier Ansible version" +msgstr "機能は非推奨となり、現行またはそれ以前の Ansible バージョンで削除される予定です。" -#: ../../rst/dev_guide/testing_compile.rst:44 -#: ../../rst/dev_guide/testing_units.rst:44 -msgid "Or against a specific Python version by doing:" -msgstr "または、特定の Python バージョンに対して以下を実行します。" +#: ../../rst/dev_guide/testing/sanity/validate-modules.rst:42 +msgid "ansible-module-not-initialized" +msgstr "ansible-module-not-initialized" -#: ../../rst/dev_guide/testing_compile.rst:50 -msgid "For advanced usage see the help:" -msgstr "高度な使用方法は、ヘルプを参照してください。" +#: ../../rst/dev_guide/testing/sanity/validate-modules.rst:42 +#: ../../rst/dev_guide/testing/sanity/validate-modules.rst:82 +#: ../../rst/dev_guide/testing/sanity/validate-modules.rst:83 +#: ../../rst/dev_guide/testing/sanity/validate-modules.rst:106 +#: ../../rst/dev_guide/testing/sanity/validate-modules.rst:113 +msgid "Syntax" +msgstr "構文" -#: ../../rst/dev_guide/testing_compile.rst:58 -#: ../../rst/dev_guide/testing_units.rst:68 -msgid "Installing dependencies" -msgstr "依存関係のインストール" +#: ../../rst/dev_guide/testing/sanity/validate-modules.rst:42 +msgid "Execution of the module did not result in initialization of AnsibleModule" +msgstr "モジュールを実行しても、AnsibleModule は初期化されなかった。" -#: ../../rst/dev_guide/testing_compile.rst:60 -msgid "``ansible-test`` has a number of dependencies , for ``compile`` tests we suggest running the tests with ``--local``, which is the default" -msgstr "``ansible-test`` にはいくつかの依存関係があります。``compile`` テストでは、デフォルトである ``--local`` を使用してテストを実行することが推奨されます。" +#: ../../rst/dev_guide/testing/sanity/validate-modules.rst:43 +msgid "collection-deprecated-version" +msgstr "collection-deprecated-version" -#: ../../rst/dev_guide/testing_compile.rst:62 -msgid "The dependencies can be installed using the ``--requirements`` argument. For example:" -msgstr "依存関係は、``--requirements`` 引数を使用してインストールできます。以下に例を示します。" +#: ../../rst/dev_guide/testing/sanity/validate-modules.rst:43 +msgid "A feature is deprecated and supposed to be removed in the current or an earlier collection version" +msgstr "機能は非推奨となり、現行またはそれ以前のバージョンのコレクションで削除される予定です。" -#: ../../rst/dev_guide/testing_compile.rst:70 -msgid "The full list of requirements can be found at `test/lib/ansible_test/_data/requirements `_. Requirements files are named after their respective commands. See also the `constraints `_ applicable to all commands." -msgstr "要件の一覧は `test/lib/ansible_test/_data/requirements `_ に記載されています。要件ファイルには、各コマンドにちなんで名前が付けられています。全コマンドに適用される `制約 `_ も参照してください。" +#: ../../rst/dev_guide/testing/sanity/validate-modules.rst:44 +msgid "deprecated-date" +msgstr "deprecated-date" -#: ../../rst/dev_guide/testing_compile.rst:74 -msgid "Extending compile tests" -msgstr "コンパイルテストの拡張" +#: ../../rst/dev_guide/testing/sanity/validate-modules.rst:44 +msgid "A date before today appears as ``removed_at_date`` or in ``deprecated_aliases``" +msgstr "今日より前の日付は、``removed_at_date`` ように表示されるか、``deprecated_aliases`` に表示されます。" -#: ../../rst/dev_guide/testing_compile.rst:76 -msgid "If you believe changes are needed to the compile tests please add a comment on the `Testing Working Group Agenda `_ so it can be discussed." -msgstr "コンパイルテストに変更が必要な場合は、`Testing Working Group Agenda `_ にコメントを追加してください。その内容について話し合うことができます。" +#: ../../rst/dev_guide/testing/sanity/validate-modules.rst:45 +msgid "deprecation-mismatch" +msgstr "deprecation-mismatch" -#: ../../rst/dev_guide/testing_documentation.rst:9 -msgid "Before you submit a module for inclusion in the main Ansible repo, you must test your module documentation for correct HTML rendering and to ensure that the argspec matches the documentation in your Python file. The community pages offer more information on :ref:`testing reStructuredText documentation `." -msgstr "メインの Ansible リポジトリーに組み込むモジュールを送信する前に、正しい HTML レンダリングついてモジュールドキュメントをテストする必要があります。また、argspec が Python ファイルのドキュメントと一致することを確認する必要があります。コミュニティーページでは、「:ref:`reStructuredText ドキュメントのテスト `」の詳細が提供されています。" +#: ../../rst/dev_guide/testing/sanity/validate-modules.rst:45 +msgid "Module marked as deprecated or removed in at least one of the filename, its metadata, or in DOCUMENTATION (setting DOCUMENTATION.deprecated for deprecation or removing all Documentation for removed) but not in all three places." +msgstr "ファイル名、そのメタデータ、または DOCUMENTATION の少なくとも 1 つ (全箇所ではない) で非推奨または削除済みとしてマークされたモジュール (非推奨の場合は DOCUMENTATION.deprecated を設定し、削除の場合はすべてのドキュメントを削除する) します。" -#: ../../rst/dev_guide/testing_documentation.rst:11 -msgid "To check the HTML output of your module documentation:" -msgstr "モジュールドキュメントの HTML 出力を確認するには、次のコマンドを実行します。" +#: ../../rst/dev_guide/testing/sanity/validate-modules.rst:46 +msgid "doc-choices-do-not-match-spec" +msgstr "doc-choices-do-not-match-spec" -#: ../../rst/dev_guide/testing_documentation.rst:13 -msgid "Ensure working :ref:`development environment `." -msgstr ":ref:`開発環境 ` が稼働していることを確認します。" +#: ../../rst/dev_guide/testing/sanity/validate-modules.rst:46 +msgid "Value for \"choices\" from the argument_spec does not match the documentation" +msgstr "argument_spec の「choices」の値がドキュメントと一致しない。" -#: ../../rst/dev_guide/testing_documentation.rst:14 -#: ../../rst/dev_guide/testing_documentation.rst:28 -msgid "Install required Python packages (drop '--user' in venv/virtualenv):" -msgstr "必要な Python パッケージをインストールします (venv/virtualenv に「--user」をドロップします)。" +#: ../../rst/dev_guide/testing/sanity/validate-modules.rst:47 +msgid "doc-choices-incompatible-type" +msgstr "doc-choices-incompatible-type" -#: ../../rst/dev_guide/testing_documentation.rst:21 -msgid "Ensure your module is in the correct directory: ``lib/ansible/modules/$CATEGORY/mymodule.py``." -msgstr "モジュールが正しいディレクトリー (``lib/ansible/modules/$CATEGORY/mymodule.py``) にあることを確認します。" +#: ../../rst/dev_guide/testing/sanity/validate-modules.rst:47 +msgid "Choices value from the documentation is not compatible with type defined in the argument_spec" +msgstr "ドキュメンテーションの選択値は、argument_spec で定義されたタイプと互換性がありません。" -#: ../../rst/dev_guide/testing_documentation.rst:22 -msgid "Build HTML from your module documentation: ``MODULES=mymodule make webdocs``." -msgstr "モジュールドキュメント ``MODULES=mymodule make webdocs`` から HTML を構築します。" +#: ../../rst/dev_guide/testing/sanity/validate-modules.rst:48 +msgid "doc-default-does-not-match-spec" +msgstr "doc-default-does-not-match-spec" -#: ../../rst/dev_guide/testing_documentation.rst:23 -msgid "To build the HTML documentation for multiple modules, use a comma-separated list of module names: ``MODULES=mymodule,mymodule2 make webdocs``." -msgstr "複数のモジュールの HTML ドキュメントを作成するには、モジュール名のコンマ区切りリストを使用します (``MODULES=mymodule,mymodule2 make webdocs``)。" +#: ../../rst/dev_guide/testing/sanity/validate-modules.rst:48 +msgid "Value for \"default\" from the argument_spec does not match the documentation" +msgstr "argument_spec の「default」の値がドキュメントと一致しない。" -#: ../../rst/dev_guide/testing_documentation.rst:24 -msgid "View the HTML page at ``file:///path/to/docs/docsite/_build/html/modules/mymodule_module.html``." -msgstr "``file:///path/to/docs/docsite/_build/html/modules/mymodule_module.html`` で HTML ページを表示します。" +#: ../../rst/dev_guide/testing/sanity/validate-modules.rst:49 +msgid "doc-default-incompatible-type" +msgstr "doc-default-incompatible-type" -#: ../../rst/dev_guide/testing_documentation.rst:26 -msgid "To ensure that your module documentation matches your ``argument_spec``:" -msgstr "モジュールのドキュメントが ``argument_spec`` と適合するようにするには、以下を行います。" +#: ../../rst/dev_guide/testing/sanity/validate-modules.rst:49 +msgid "Default value from the documentation is not compatible with type defined in the argument_spec" +msgstr "ドキュメンテーションのデフォルト値は、argument_spec で定義されたタイプと互換性がありません。" -#: ../../rst/dev_guide/testing_documentation.rst:34 -msgid "run the ``validate-modules`` test::" -msgstr "``validate-modules`` テストを実行します。" +#: ../../rst/dev_guide/testing/sanity/validate-modules.rst:50 +msgid "doc-elements-invalid" +msgstr "doc-elements-invalid" -#: ../../rst/dev_guide/testing_httptester.rst:5 -msgid "httptester" -msgstr "httptester" +#: ../../rst/dev_guide/testing/sanity/validate-modules.rst:50 +msgid "Documentation specifies elements for argument, when \"type\" is not ``list``." +msgstr "ドキュメントでは、「type」が ``list`` ではない場合に、引数の要素を指定します。" -#: ../../rst/dev_guide/testing_httptester.rst:12 -msgid "``httptester`` is a docker container used to host certain resources required by :ref:`testing_integration`. This is to avoid CI tests requiring external resources (such as git or package repos) which, if temporarily unavailable, would cause tests to fail." -msgstr "``httptester`` は、:ref:`testing_integration` で必要な特定のリソースをホストするのに使用される docker コンテナーです。これにより、(git やパッケージリポジトリーなどの) 外部リソースを必要とする CI テストが回避され、一時的に利用できなくなるとテストが失敗します。" +#: ../../rst/dev_guide/testing/sanity/validate-modules.rst:51 +msgid "doc-elements-mismatch" +msgstr "doc-elements-mismatch" -#: ../../rst/dev_guide/testing_httptester.rst:14 -msgid "HTTP Testing endpoint which provides the following capabilities:" -msgstr "以下の機能を提供する HTTP テストエンドポイントです。" +#: ../../rst/dev_guide/testing/sanity/validate-modules.rst:51 +msgid "Argument_spec defines elements different than documentation does" +msgstr "argument_spec はドキュメントとは異なるタイプを定義します。" -#: ../../rst/dev_guide/testing_httptester.rst:16 -msgid "httpbin" -msgstr "httpbin" +#: ../../rst/dev_guide/testing/sanity/validate-modules.rst:52 +msgid "doc-missing-type" +msgstr "doc-missing-type" -#: ../../rst/dev_guide/testing_httptester.rst:17 -msgid "nginx" -msgstr "nginx" +#: ../../rst/dev_guide/testing/sanity/validate-modules.rst:52 +msgid "Documentation doesn't specify a type but argument in ``argument_spec`` use default type (``str``)" +msgstr "ドキュメントではタイプをしていませんが、``argument_spec`` の引数がデフォルト型 (``str``) を使用しています。" -#: ../../rst/dev_guide/testing_httptester.rst:18 -msgid "SSL" -msgstr "SSL" +#: ../../rst/dev_guide/testing/sanity/validate-modules.rst:53 +msgid "doc-required-mismatch" +msgstr "doc-required-mismatch" -#: ../../rst/dev_guide/testing_httptester.rst:19 -msgid "SNI" -msgstr "SNI" +#: ../../rst/dev_guide/testing/sanity/validate-modules.rst:53 +msgid "argument in argument_spec is required but documentation says it is not, or vice versa" +msgstr "arguments_spec の引数は必須ですが、ドキュメントには必須ではない (または arguments_spec の引数は必須ではありませんが、ドキュメントには必須) と記載されています。" -#: ../../rst/dev_guide/testing_httptester.rst:20 -msgid "Negotiate Authentication" -msgstr "認証のネゴシエート" +#: ../../rst/dev_guide/testing/sanity/validate-modules.rst:54 +msgid "doc-type-does-not-match-spec" +msgstr "doc-type-does-not-match-spec" -#: ../../rst/dev_guide/testing_httptester.rst:23 -msgid "Source files can be found in the `http-test-container `_ repository." -msgstr "ソースファイルは `http-test-container `_ リポジトリーにあります。" +#: ../../rst/dev_guide/testing/sanity/validate-modules.rst:54 +msgid "Argument_spec defines type different than documentation does" +msgstr "argument_spec がドキュメントとは異なるタイプを定義します。" -#: ../../rst/dev_guide/testing_httptester.rst:26 -msgid "Extending httptester" -msgstr "httptester の拡張" +#: ../../rst/dev_guide/testing/sanity/validate-modules.rst:55 +msgid "documentation-error" +msgstr "documentation-error" -#: ../../rst/dev_guide/testing_httptester.rst:28 -msgid "If you have sometime to improve ``httptester`` please add a comment on the `Testing Working Group Agenda `_ to avoid duplicated effort." -msgstr "``httptester`` を改善するタイミングがある場合は、重複作業を回避するために、`Testing Working Group Agenda `_ にコメントを追加します。" +#: ../../rst/dev_guide/testing/sanity/validate-modules.rst:55 +msgid "Unknown ``DOCUMENTATION`` error" +msgstr "不明な ``DOCUMENTATION`` エラー" -#: ../../rst/dev_guide/testing_integration.rst:11 -msgid "The Ansible integration Test system." -msgstr "Ansible 統合テストシステム。" +#: ../../rst/dev_guide/testing/sanity/validate-modules.rst:56 +msgid "documentation-syntax-error" +msgstr "documentation-syntax-error" -#: ../../rst/dev_guide/testing_integration.rst:13 -msgid "Tests for playbooks, by playbooks." -msgstr "Playbook による Playbook のテスト" +#: ../../rst/dev_guide/testing/sanity/validate-modules.rst:56 +msgid "Invalid ``DOCUMENTATION`` schema" +msgstr "無効な ``DOCUMENTATION`` スキーマ" -#: ../../rst/dev_guide/testing_integration.rst:15 -msgid "Some tests may require credentials. Credentials may be specified with `credentials.yml`." -msgstr "テストによっては認証情報が必要になる場合があります。認証情報は `credentials.yml` で指定できます。" +#: ../../rst/dev_guide/testing/sanity/validate-modules.rst:57 +msgid "illegal-future-imports" +msgstr "illegal-future-imports" -#: ../../rst/dev_guide/testing_integration.rst:17 -msgid "Some tests may require root." -msgstr "テストによっては root が必要になる場合があります。" +#: ../../rst/dev_guide/testing/sanity/validate-modules.rst:57 +#: ../../rst/dev_guide/testing/sanity/validate-modules.rst:58 +#: ../../rst/dev_guide/testing/sanity/validate-modules.rst:61 +#: ../../rst/dev_guide/testing/sanity/validate-modules.rst:80 +#: ../../rst/dev_guide/testing/sanity/validate-modules.rst:81 +#: ../../rst/dev_guide/testing/sanity/validate-modules.rst:89 +#: ../../rst/dev_guide/testing/sanity/validate-modules.rst:90 +#: ../../rst/dev_guide/testing/sanity/validate-modules.rst:91 +#: ../../rst/dev_guide/testing/sanity/validate-modules.rst:111 +#: ../../rst/dev_guide/testing/sanity/validate-modules.rst:115 +#: ../../rst/dev_guide/testing/sanity/validate-modules.rst:116 +#: ../../rst/dev_guide/testing/sanity/validate-modules.rst:117 +#: ../../rst/dev_guide/testing/sanity/validate-modules.rst:118 +#: ../../rst/dev_guide/testing/sanity/validate-modules.rst:119 +msgid "Imports" +msgstr "インポート" -#: ../../rst/dev_guide/testing_integration.rst:20 -msgid "Every new module and plugin should have integration tests, even if the tests cannot be run on Ansible CI infrastructure. In this case, the tests should be marked with the ``unsupported`` alias in `aliases file `_." -msgstr "テストを Ansible CI インフラストラクチャーで実行できない場合でも、新しいモジュールとプラグインには統合テストが必要です。この場合、テストは `aliases ファイル `_ の ``unsupported`` エイリアスでマーク付けする必要があります。" +#: ../../rst/dev_guide/testing/sanity/validate-modules.rst:57 +msgid "Only the following ``from __future__`` imports are allowed: ``absolute_import``, ``division``, and ``print_function``." +msgstr "``absolute_import``、``division``、および ``print_function`` の ``from __future__`` インポートのみが許可されます。" -#: ../../rst/dev_guide/testing_integration.rst:24 -msgid "Quick Start" -msgstr "クイックスタート" +#: ../../rst/dev_guide/testing/sanity/validate-modules.rst:58 +msgid "import-before-documentation" +msgstr "import-before-documentation" -#: ../../rst/dev_guide/testing_integration.rst:26 -msgid "It is highly recommended that you install and activate the ``argcomplete`` python package. It provides tab completion in ``bash`` for the ``ansible-test`` test runner." -msgstr "python パッケージ ``argcomplete`` をインストールし、アクティベートすることが強く推奨されます。これにより、テストランナー ``ansible-test`` に ``bash`` のタブ補完が提供されます。" +#: ../../rst/dev_guide/testing/sanity/validate-modules.rst:58 +msgid "Import found before documentation variables. All imports must appear below ``DOCUMENTATION``/``EXAMPLES``/``RETURN``" +msgstr "ドキュメント変数の前にインポートが見つかりました。すべてのインポートは、``DOCUMENTATION``/``EXAMPLES``/``RETURN`` の下に表示される必要があります。" -#: ../../rst/dev_guide/testing_integration.rst:30 -msgid "Configuration" -msgstr "設定" +#: ../../rst/dev_guide/testing/sanity/validate-modules.rst:59 +msgid "import-error" +msgstr "import-error" -#: ../../rst/dev_guide/testing_integration.rst:33 -msgid "ansible-test command" -msgstr "ansible-test コマンド" +#: ../../rst/dev_guide/testing/sanity/validate-modules.rst:59 +msgid "``Exception`` attempting to import module for ``argument_spec`` introspection" +msgstr "``Exception`` が、``argument_spec`` イントロスペクションのモジュールのインポートを試行中" -#: ../../rst/dev_guide/testing_integration.rst:35 -msgid "The example below assumes ``bin/`` is in your ``$PATH``. An easy way to achieve that is to initialize your environment with the ``env-setup`` command:" -msgstr "以下の例では、``bin/`` が ``$PATH`` であることを前提としています。これは、``env-setup`` コマンドで環境を初期化する簡単な方法になります。" +#: ../../rst/dev_guide/testing/sanity/validate-modules.rst:60 +msgid "import-placement" +msgstr "import-placement" -#: ../../rst/dev_guide/testing_integration.rst:43 -msgid "You can also call ``ansible-test`` with the full path:" -msgstr "完全パスで ``ansible-test`` を呼び出すこともできます。" +#: ../../rst/dev_guide/testing/sanity/validate-modules.rst:60 +msgid "Locations" +msgstr "場所" -#: ../../rst/dev_guide/testing_integration.rst:50 -msgid "integration_config.yml" -msgstr "integration_config.yml" +#: ../../rst/dev_guide/testing/sanity/validate-modules.rst:60 +#: ../../rst/dev_guide/testing/sanity/validate-modules.rst:76 +#: ../../rst/dev_guide/testing/sanity/validate-modules.rst:80 +#: ../../rst/dev_guide/testing/sanity/validate-modules.rst:85 +#: ../../rst/dev_guide/testing/sanity/validate-modules.rst:111 +#: ../../rst/dev_guide/testing/sanity/validate-modules.rst:114 +msgid "Warning" +msgstr "警告" -#: ../../rst/dev_guide/testing_integration.rst:52 -msgid "Making your own version of ``integration_config.yml`` can allow for setting some tunable parameters to help run the tests better in your environment. Some tests (for example, cloud tests) will only run when access credentials are provided. For more information about supported credentials, refer to the various ``cloud-config-*.template`` files in the ``test/integration/`` directory." -msgstr "自身で作成した ``integration_config.yml`` があると、一部の調整可能なパラメーターを設定して、環境により適切にテストを実行できます。一部のテスト (クラウドテストなど) は、アクセス認証情報が提供されている場合にのみ実行されます。サポート対象の認証情報の詳細は、``test/integration/`` ディレクトリーでさまざまな ``cloud-config-*.template`` ファイルを参照してください。" +#: ../../rst/dev_guide/testing/sanity/validate-modules.rst:60 +#: ../../rst/dev_guide/testing/sanity/validate-modules.rst:61 +msgid "Imports should be directly below ``DOCUMENTATION``/``EXAMPLES``/``RETURN``" +msgstr "インポートは、``DOCUMENTATION``/``EXAMPLES``/``RETURN`` のすぐ後に配置しなければなりません。" -#: ../../rst/dev_guide/testing_integration.rst:61 -msgid "Some tests assume things like hg, svn, and git are installed, and in path. Some tests (such as those for Amazon Web Services) need separate definitions, which will be covered later in this document." -msgstr "一部のテストでは、hg、svn、git などがインストールされ、パスにあることを前提としています。一部のテスト (Amazon Web Services のテストなど) には個別の定義が必要です。これについては、このドキュメントの後半で説明します。" +#: ../../rst/dev_guide/testing/sanity/validate-modules.rst:61 +msgid "imports-improper-location" +msgstr "imports-improper-location" -#: ../../rst/dev_guide/testing_integration.rst:65 -msgid "(Complete list pending)" -msgstr "(完全はリストは後日追加されます)" +#: ../../rst/dev_guide/testing/sanity/validate-modules.rst:62 +msgid "incompatible-choices" +msgstr "incompatible-choices" -#: ../../rst/dev_guide/testing_integration.rst:68 -msgid "Non-destructive Tests" -msgstr "非破壊テスト" +#: ../../rst/dev_guide/testing/sanity/validate-modules.rst:62 +msgid "Choices value from the argument_spec is not compatible with type defined in the argument_spec" +msgstr "argument_spec の選択値は、argument_spec で定義されたタイプと互換性がありません" -#: ../../rst/dev_guide/testing_integration.rst:70 -msgid "These tests will modify files in subdirectories, but will not do things that install or remove packages or things outside of those test subdirectories. They will also not reconfigure or bounce system services." -msgstr "これらのテストはサブディレクトリー内のファイルを修正しますが、パッケージやテストのサブディレクトリー以外にあるものをインストールしたり削除したりするようなことはしません。また、システムサービスの再設定やバウンスも行いません。" +#: ../../rst/dev_guide/testing/sanity/validate-modules.rst:63 +msgid "incompatible-default-type" +msgstr "incompatible-default-type" -#: ../../rst/dev_guide/testing_integration.rst:73 -msgid "Running integration tests within containers" -msgstr "コンテナー内での統合テストの実行" +#: ../../rst/dev_guide/testing/sanity/validate-modules.rst:63 +msgid "Default value from the argument_spec is not compatible with type defined in the argument_spec" +msgstr "argument_spec のデフォルト値は、argument_spec で定義されたタイプと互換性がありません。" -#: ../../rst/dev_guide/testing_integration.rst:75 -msgid "To protect your system from any potential changes caused by integration tests, and to ensure a sensible set of dependencies are available we recommend that you always run integration tests with the ``--docker`` option, for example ``--docker ubuntu2004``. See the `list of supported container images `_ for options (the ``default`` image is used for sanity and unit tests, as well as for platform independent integration tests such as those for cloud modules)." -msgstr "統合テストによる潜在的な変更からシステムを守り、適切な依存関係セットが利用可能になるようにするには、常に ``--docker`` オプションをつけて統合テストを実行することが推奨されます (``--docker ubuntu2004`` など)。オプションについては、`list of supported container images `_を参照してください (``default`` イメージは、健全性テストとユニットテスト、およびクラウドモジュールなどのプラットフォームに依存しない統合テストに使用されます)。" +#: ../../rst/dev_guide/testing/sanity/validate-modules.rst:64 +msgid "invalid-argument-name" +msgstr "invalid-argument-name" -#: ../../rst/dev_guide/testing_integration.rst:77 -msgid "Run as follows for all POSIX platform tests executed by our CI system in a Fedora 34 container:" -msgstr "Fedora 34 コンテナーで CI システムによって実行されるすべての POSIX プラットフォームテストに対して次のように実行します。" +#: ../../rst/dev_guide/testing/sanity/validate-modules.rst:64 +msgid "Argument in argument_spec must not be one of 'message', 'syslog_facility' as it is used internally by Ansible Core Engine" +msgstr "argument_spec の引数は、Ansible Core Engine によって内部で使用されるため、「message」、「syslog_facility」のいずれかにすることはできません。" -#: ../../rst/dev_guide/testing_integration.rst:83 -msgid "You can target a specific tests as well, such as for individual modules:" -msgstr "個々のモジュールなど、特定のテストを対象とすることもできます。" +#: ../../rst/dev_guide/testing/sanity/validate-modules.rst:65 +msgid "invalid-argument-spec" +msgstr "invalid-argument-spec" -#: ../../rst/dev_guide/testing_integration.rst:89 -msgid "You can use the ``-v`` option to make the output more verbose:" -msgstr "``-v`` オプションを使用すると、出力をさらに詳細にすることができます。" +#: ../../rst/dev_guide/testing/sanity/validate-modules.rst:65 +msgid "Argument in argument_spec must be a dictionary/hash when used" +msgstr "argument_spec の引数を使用する場合は、ディクショナリーまたはハッシュである必要があります。" -#: ../../rst/dev_guide/testing_integration.rst:95 -msgid "Use the following command to list all the available targets:" -msgstr "利用可能なターゲットの一覧を表示するには、以下のコマンドを実行します。" +#: ../../rst/dev_guide/testing/sanity/validate-modules.rst:66 +msgid "invalid-argument-spec-options" +msgstr "invalid-argument-spec-options" -#: ../../rst/dev_guide/testing_integration.rst:101 -msgid "Bash users" -msgstr "Bash ユーザー" +#: ../../rst/dev_guide/testing/sanity/validate-modules.rst:66 +msgid "Suboptions in argument_spec are invalid" +msgstr "argument_spec のサブオプションは無効です。" -#: ../../rst/dev_guide/testing_integration.rst:103 -msgid "If you use ``bash`` with ``argcomplete``, obtain a full list by doing: ``ansible-test integration ``" -msgstr "``bash`` を ``argcomplete`` とともに使用する場合は、``ansible-test integration `` を実行して完全な一覧を取得します。" +#: ../../rst/dev_guide/testing/sanity/validate-modules.rst:67 +msgid "invalid-documentation" +msgstr "invalid-documentation" -#: ../../rst/dev_guide/testing_integration.rst:106 -msgid "Destructive Tests" -msgstr "破壊テスト" +#: ../../rst/dev_guide/testing/sanity/validate-modules.rst:67 +msgid "``DOCUMENTATION`` is not valid YAML" +msgstr "``DOCUMENTATION`` は、有効な YAML ではありません" -#: ../../rst/dev_guide/testing_integration.rst:108 -msgid "These tests are allowed to install and remove some trivial packages. You will likely want to devote these to a virtual environment, such as Docker. They won't reformat your filesystem:" -msgstr "これらのテストでは、いくつかの簡単なパッケージをインストールおよび削除できます。これらを Docker などの仮想環境専用にすることが推奨されます。これらは、ファイルシステムを再フォーマットしません。" +#: ../../rst/dev_guide/testing/sanity/validate-modules.rst:68 +msgid "invalid-documentation-markup" +msgstr "invalid-documentation-markup" -#: ../../rst/dev_guide/testing_integration.rst:116 -msgid "Windows Tests" -msgstr "Windows テスト" +#: ../../rst/dev_guide/testing/sanity/validate-modules.rst:68 +msgid "``DOCUMENTATION`` or ``RETURN`` contains invalid markup" +msgstr "``DOCUMENTATION`` または、``RETURN`` に無効なマークアップが含まれています" -#: ../../rst/dev_guide/testing_integration.rst:118 -msgid "These tests exercise the ``winrm`` connection plugin and Windows modules. You'll need to define an inventory with a remote Windows Server to use for testing, and enable PowerShell Remoting to continue." -msgstr "これらのテストは、``winrm`` connection プラグインと Windows モジュールに従います。テストに使用するリモート Windows Server を持つインベントリーを定義し、PowerShell Remoting を継続できるようにする必要があります。" +#: ../../rst/dev_guide/testing/sanity/validate-modules.rst:69 +msgid "invalid-documentation-options" +msgstr "invalid-documentation-options" -#: ../../rst/dev_guide/testing_integration.rst:122 -msgid "Running these tests may result in changes to your Windows host, so don't run them against a production/critical Windows environment." -msgstr "これらのテストを実行すると、Windows ホストが変更になる可能性があるため、実稼働環境や重要な Windows 環境では実行しないでください。" +#: ../../rst/dev_guide/testing/sanity/validate-modules.rst:69 +msgid "``DOCUMENTATION.options`` must be a dictionary/hash when used" +msgstr "``DOCUMENTATION.options`` を使用する場合は、ディクショナリー/ハッシュでなければなりません" -#: ../../rst/dev_guide/testing_integration.rst:125 -msgid "Enable PowerShell Remoting (run on the Windows host via Remote Desktop):" -msgstr "PowerShell Remoting を有効にします (リモートデスクトップを介して Windows ホストで実行します)。" +#: ../../rst/dev_guide/testing/sanity/validate-modules.rst:70 +msgid "invalid-examples" +msgstr "invalid-examples" -#: ../../rst/dev_guide/testing_integration.rst:131 -msgid "Define Windows inventory:" -msgstr "Windows インベントリーを定義します。" +#: ../../rst/dev_guide/testing/sanity/validate-modules.rst:70 +msgid "``EXAMPLES`` is not valid YAML" +msgstr "``EXAMPLES`` は、有効な YAML ではありません" -#: ../../rst/dev_guide/testing_integration.rst:138 -msgid "Run the Windows tests executed by our CI system:" -msgstr "CI システムで実行する Windows テストを実行します。" +#: ../../rst/dev_guide/testing/sanity/validate-modules.rst:71 +msgid "invalid-extension" +msgstr "invalid-extension" -#: ../../rst/dev_guide/testing_integration.rst:145 -msgid "Tests in containers" -msgstr "コンテナーでのテスト" +#: ../../rst/dev_guide/testing/sanity/validate-modules.rst:71 +#: ../../rst/dev_guide/testing/sanity/validate-modules.rst:74 +#: ../../rst/dev_guide/testing/sanity/validate-modules.rst:110 +msgid "Naming" +msgstr "命名規則" -#: ../../rst/dev_guide/testing_integration.rst:147 -msgid "If you have a Linux system with Docker or Podman installed, running integration tests using the same containers used by the Ansible continuous integration (CI) system is recommended." -msgstr "DockerまたはPodman がインストールされた Linux システムをお持ちの場合は、Ansible の継続的統合 (CI) システムで使用されているものと同じコンテナーを使用して統合テストを実行することが推奨されます。" +#: ../../rst/dev_guide/testing/sanity/validate-modules.rst:71 +msgid "Official Ansible modules must have a ``.py`` extension for python modules or a ``.ps1`` for powershell modules" +msgstr "公式の Ansible モジュールでは、python モジュールの拡張子は ``.py`` で、powershell モジュールの拡張子は ``.ps1`` にする必要があります。" -#: ../../rst/dev_guide/testing_integration.rst:150 -msgid "Podman" -msgstr "Podman" +#: ../../rst/dev_guide/testing/sanity/validate-modules.rst:72 +msgid "invalid-module-schema" +msgstr "invalid-module-schema" -#: ../../rst/dev_guide/testing_integration.rst:152 -msgid "By default, Podman will only be used if the Docker CLI is not installed. If you have Docker installed but want to use Podman, you can change this behavior by setting the environment variable ``ANSIBLE_TEST_PREFER_PODMAN``." -msgstr "デフォルトで、Podman は Docker CLI がインストールされていない場合にのみ使用されます。Docker がインストールされていて Podman を使用する必要がある場合は、環境変数 ``ANSIBLE_TEST_PREFER_PODMAN`` を設定してこの動作を変更できます。" +#: ../../rst/dev_guide/testing/sanity/validate-modules.rst:72 +msgid "``AnsibleModule`` schema validation error" +msgstr "``AnsibleModule`` スキーマ検証エラー" -#: ../../rst/dev_guide/testing_integration.rst:155 -msgid "Docker on non-Linux" -msgstr "Linux 以外の Docker" +#: ../../rst/dev_guide/testing/sanity/validate-modules.rst:73 +msgid "invalid-removal-version" +msgstr "invalid-removal-version" -#: ../../rst/dev_guide/testing_integration.rst:157 -msgid "Using Docker Engine to run Docker on a non-Linux host (such as macOS) is not recommended. Some tests may fail, depending on the image used for testing. Using the ``--docker-privileged`` option when running ``integration`` (not ``network-integration`` or ``windows-integration``) may resolve the issue." -msgstr "Docker Engine を使用して (macOS などの) Linux 以外のホストで Docker を実行することは推奨されません。テストに使用されるイメージによっては、一部のテストが失敗する可能性があります。(``network-integration`` または ``windows-integration``ではなく) ``integration`` の実行時に ``--docker-privileged`` オプションを使用すると問題が解決する可能性があります。" +#: ../../rst/dev_guide/testing/sanity/validate-modules.rst:73 +msgid "The version at which a feature is supposed to be removed cannot be parsed (for collections, it must be a `semantic version `_)" +msgstr "機能が削除されることになっているバージョンは解析できません (コレクションの場合、`semantic version ` である必要があります)。" -#: ../../rst/dev_guide/testing_integration.rst:162 -msgid "Running Integration Tests" -msgstr "統合テストの実行" +#: ../../rst/dev_guide/testing/sanity/validate-modules.rst:74 +msgid "invalid-requires-extension" +msgstr "invalid-requires-extension" -#: ../../rst/dev_guide/testing_integration.rst:164 -msgid "To run all CI integration test targets for POSIX platforms in a Ubuntu 18.04 container:" -msgstr "Ubuntu 18.04 コンテナー内の POSIX プラットフォームに CI 統合テストターゲットすべてを実行するには、次のコマンドを実行します。" +#: ../../rst/dev_guide/testing/sanity/validate-modules.rst:74 +msgid "Module ``#AnsibleRequires -CSharpUtil`` should not end in .cs, Module ``#Requires`` should not end in .psm1" +msgstr "モジュール ``#AnsibleRequires -CSharpUtil`` の末尾を .cs にしないでください。モジュール ``#Requires`` の末尾を .psm1 にしないでください。" -#: ../../rst/dev_guide/testing_integration.rst:170 -msgid "You can also run specific tests or select a different Linux distribution. For example, to run tests for the ``ping`` module on a Ubuntu 18.04 container:" -msgstr "特定のテストを実行することも、別の Linux ディストリビューションを選択することもできます。たとえば、Ubuntu 18.04 コンテナーで ``ping`` モジュールのテストを実行するには、次を実行します。" +#: ../../rst/dev_guide/testing/sanity/validate-modules.rst:75 +msgid "missing-doc-fragment" +msgstr "missing-doc-fragment" -#: ../../rst/dev_guide/testing_integration.rst:180 -msgid "Container Images" -msgstr "コンテナーイメージ" +#: ../../rst/dev_guide/testing/sanity/validate-modules.rst:75 +msgid "``DOCUMENTATION`` fragment missing" +msgstr "``DOCUMENTATION`` フラグメントがありません" -#: ../../rst/dev_guide/testing_integration.rst:182 -msgid "Container images are updated regularly. To see the current list of container images:" -msgstr "コンテナーイメージは定期的に更新されます。現在のコンテナーイメージ一覧を表示するには、以下を実行します。" +#: ../../rst/dev_guide/testing/sanity/validate-modules.rst:76 +msgid "missing-existing-doc-fragment" +msgstr "missing-existing-doc-fragment" -#: ../../rst/dev_guide/testing_integration.rst:188 -msgid "The list is under the **target docker images and supported python version** heading." -msgstr "この一覧は、**target docker images and supported python version** の見出しの下にあります。" +#: ../../rst/dev_guide/testing/sanity/validate-modules.rst:76 +msgid "Pre-existing ``DOCUMENTATION`` fragment missing" +msgstr "既存の ``DOCUMENTATION`` フラグメントがありません" -#: ../../rst/dev_guide/testing_integration.rst:191 -msgid "Legacy Cloud Tests" -msgstr "レガシーのクラウドテスト" +#: ../../rst/dev_guide/testing/sanity/validate-modules.rst:77 +msgid "missing-documentation" +msgstr "missing-documentation" -#: ../../rst/dev_guide/testing_integration.rst:193 -msgid "Some of the cloud tests run as normal integration tests, and others run as legacy tests; see the :ref:`testing_integration_legacy` page for more information." -msgstr "一部のクラウドテストは通常の統合テストとして実行し、その他はレガシーテストとして実行します。詳細は、「:ref:`testing_integration_legacy`」のドキュメントを参照してください。" +#: ../../rst/dev_guide/testing/sanity/validate-modules.rst:77 +msgid "No ``DOCUMENTATION`` provided" +msgstr "``DOCUMENTATION`` が提供されていません" -#: ../../rst/dev_guide/testing_integration.rst:198 -msgid "Other configuration for Cloud Tests" -msgstr "クラウドテストのその他の設定" +#: ../../rst/dev_guide/testing/sanity/validate-modules.rst:78 +msgid "missing-examples" +msgstr "missing-examples" -#: ../../rst/dev_guide/testing_integration.rst:200 -msgid "In order to run some tests, you must provide access credentials in a file named ``cloud-config-aws.yml`` or ``cloud-config-cs.ini`` in the test/integration directory. Corresponding .template files are available for for syntax help. The newer AWS tests now use the file test/integration/cloud-config-aws.yml" -msgstr "test/integration ディレクトリーにある ``cloud-config-aws.yml`` または ``cloud-config-cs.ini`` という名前のファイルにあるアクセス認証情報を指定する必要があります。構文ヘルプでは、対応する .template ファイルを利用できます。新しい AWS テストでは、test/integration/cloud-config-aws.yml ファイルが使用されるようになりました。" +#: ../../rst/dev_guide/testing/sanity/validate-modules.rst:78 +msgid "No ``EXAMPLES`` provided" +msgstr "``EXAMPLES`` が提供されていません" -#: ../../rst/dev_guide/testing_integration.rst:206 -#: ../../rst/dev_guide/testing_integration_legacy.rst:60 -msgid "IAM policies for AWS" -msgstr "AWS の IAM ポリシー" +#: ../../rst/dev_guide/testing/sanity/validate-modules.rst:79 +msgid "missing-gplv3-license" +msgstr "missing-gplv3-license" -#: ../../rst/dev_guide/testing_integration.rst:208 -msgid "Ansible needs fairly wide ranging powers to run the tests in an AWS account. This rights can be provided to a dedicated user. These need to be configured before running the test." -msgstr "Ansible は、AWS アカウントでテストを実行するために非常に幅広い権限が必要になります。この権限は専用のユーザーに提供できます。これらの権限は、テストを実行する前に設定する必要があります。" +#: ../../rst/dev_guide/testing/sanity/validate-modules.rst:79 +msgid "GPLv3 license header not found" +msgstr "GPLv3 ライセンスヘッダーが見つかりませんでした" -#: ../../rst/dev_guide/testing_integration.rst:211 -msgid "testing-policies" -msgstr "testing-policies" +#: ../../rst/dev_guide/testing/sanity/validate-modules.rst:80 +msgid "missing-module-utils-basic-import" +msgstr "missing-module-utils-basic-import" -#: ../../rst/dev_guide/testing_integration.rst:213 -msgid "The GitHub repository `mattclay/aws-terminator `_ contains two sets of policies used for all existing AWS module integratoin tests. The `hacking/aws_config/setup_iam.yml` playbook can be used to setup two groups:" -msgstr "GitHub リポジトリー `mattclay/aws-terminator `_ には、既存の AWS モジュールの統合テストに使用するポリシーのセットが 2 つ含まれます。Playbook `hacking/aws_config/setup_iam.yml` を使用すると、2 つのグループを設定できます。" +#: ../../rst/dev_guide/testing/sanity/validate-modules.rst:80 +msgid "Did not find ``ansible.module_utils.basic`` import" +msgstr "``ansible.module_utils.basic`` インポートが見つかりませんでした" -#: ../../rst/dev_guide/testing_integration.rst:217 -msgid "`ansible-integration-ci` will have the policies applied necessary to run any integration tests not marked as `unsupported` and are designed to mirror those used by Ansible's CI." -msgstr "`ansible-integration-ci` は、統合テストの実行に必要となるポリシーを適用すると共に、`unsupported` と識別されず、Ansible の CI で使用されるミラーリング用に設計されています。" +#: ../../rst/dev_guide/testing/sanity/validate-modules.rst:81 +msgid "missing-module-utils-import-csharp-requirements" +msgstr "missing-module-utils-import-csharp-requirements" -#: ../../rst/dev_guide/testing_integration.rst:220 -msgid "`ansible-integration-unsupported` will have the additional policies applied necessary to run the integration tests marked as `unsupported` including tests for managing IAM roles, users and groups." -msgstr "`ansible-integration-unsupported` は、IAM ロール、ユーザー、およびグループを管理するためのテストを含む `unsupported` とマークされた統合テストの実行に必要な追加のポリシーが適用されます。" +#: ../../rst/dev_guide/testing/sanity/validate-modules.rst:81 +msgid "No ``Ansible.ModuleUtils`` or C# Ansible util requirements/imports found" +msgstr "``Ansible.ModuleUtils`` または C# Ansible ユーティリティーの 要件/インポートがあります" -#: ../../rst/dev_guide/testing_integration.rst:224 -msgid "Once the groups have been created, you'll need to create a user and make the user a member of these groups. The policies are designed to minimize the rights of that user. Please note that while this policy does limit the user to one region, this does not fully restrict the user (primarily due to the limitations of the Amazon ARN notation). The user will still have wide privileges for viewing account definitions, and will also able to manage some resources that are not related to testing (for example, AWS lambdas with different names). Tests should not be run in a primary production account in any case." -msgstr "グループが作成されたら、ユーザーを作成して、そのユーザーをこれらのグループのメンバーにする必要があります。ポリシーは、そのユーザーの権利を最小限にするためのものです。このポリシーでは、ユーザーを 1 つの地域に限定していますが、これはユーザーを完全には制限していないことに注意してください (主に Amazon ARN 表記の制限によるものです)。このユーザーは、アカウント定義を閲覧するための広い権限を持っており、テストに関係のないいくつかのリソース (たとえば、異なる名前の AWS ラムダ) を管理することもできます。どのような場合でも、テストを実稼働環境用のプライマリーアカウントで実行すべきではありません。" +#: ../../rst/dev_guide/testing/sanity/validate-modules.rst:82 +msgid "missing-powershell-interpreter" +msgstr "missing-powershell-interpreter" -#: ../../rst/dev_guide/testing_integration.rst:232 -#: ../../rst/dev_guide/testing_integration_legacy.rst:78 -msgid "Other Definitions required" -msgstr "その他に必要な定義" +#: ../../rst/dev_guide/testing/sanity/validate-modules.rst:82 +msgid "Interpreter line is not ``#!powershell``" +msgstr "インタープリター行は ``#!powershell`` ではありません" -#: ../../rst/dev_guide/testing_integration.rst:234 -#: ../../rst/dev_guide/testing_integration_legacy.rst:80 -msgid "Apart from installing the policy and giving it to the user identity running the tests, a lambda role `ansible_integration_tests` has to be created which has lambda basic execution privileges." -msgstr "ポリシーをインストールして、テストを実行しているユーザ ID にそれを付与することとは別に、ラムダロール `ansible_integration_tests` を作成する必要があります。これは、ラムダの基本的な実行権限を持ちます。" +#: ../../rst/dev_guide/testing/sanity/validate-modules.rst:83 +msgid "missing-python-interpreter" +msgstr "missing-python-interpreter" -#: ../../rst/dev_guide/testing_integration.rst:240 -msgid "Network Tests" -msgstr "ネットワークテスト" +#: ../../rst/dev_guide/testing/sanity/validate-modules.rst:83 +msgid "Interpreter line is not ``#!/usr/bin/python``" +msgstr "インタープリター行は ``#!/usr/bin/python`` ではありません" -#: ../../rst/dev_guide/testing_integration.rst:242 -msgid "For guidance on writing network test see :ref:`testing_resource_modules`." -msgstr "ネットワークテストの書き込みに関する情報は、「:ref:`testing_resource_modules`」を参照してください。" +#: ../../rst/dev_guide/testing/sanity/validate-modules.rst:84 +msgid "missing-return" +msgstr "missing-return" -#: ../../rst/dev_guide/testing_integration.rst:246 -msgid "Where to find out more" -msgstr "その他の詳細情報" +#: ../../rst/dev_guide/testing/sanity/validate-modules.rst:84 +msgid "No ``RETURN`` documentation provided" +msgstr "``RETURN`` のドキュメントは提供されていません" -#: ../../rst/dev_guide/testing_integration.rst:248 -msgid "If you'd like to know more about the plans for improving testing Ansible, join the `Testing Working Group `_." -msgstr "Ansible テストを改善する詳細な計画を確認したい場合は、`Testing Working Group `_ にご参加ください。" +#: ../../rst/dev_guide/testing/sanity/validate-modules.rst:85 +msgid "missing-return-legacy" +msgstr "missing-return-legacy" -#: ../../rst/dev_guide/testing_integration_legacy.rst:7 -msgid "Testing using the Legacy Integration system" -msgstr "レガシー統合システムを使用したテスト" +#: ../../rst/dev_guide/testing/sanity/validate-modules.rst:85 +msgid "No ``RETURN`` documentation provided for legacy module" +msgstr "レガシーモジュールには ``RETURN`` のドキュメントがありません" -#: ../../rst/dev_guide/testing_integration_legacy.rst:11 -msgid "This page details how to run the integration tests that haven't been ported to the new ``ansible-test`` framework." -msgstr "このページでは、新しい ``ansible-test`` フレームワークに移植されていない統合テストの実行方法を説明します。" +#: ../../rst/dev_guide/testing/sanity/validate-modules.rst:86 +msgid "missing-suboption-docs" +msgstr "missing-suboption-docs" -#: ../../rst/dev_guide/testing_integration_legacy.rst:13 -msgid "The following areas are still tested using the legacy ``make tests`` command:" -msgstr "以下のエリアは、レガシーの ``make tests`` コマンドを使用してテストされます。" +#: ../../rst/dev_guide/testing/sanity/validate-modules.rst:86 +msgid "Argument in argument_spec has sub-options but documentation does not define sub-options" +msgstr "argument_spec の引数にはサブオプションョンがありますが、ドキュメントではサブオプションが定義されていません" -#: ../../rst/dev_guide/testing_integration_legacy.rst:15 -msgid "amazon (some)" -msgstr "amazon (一部)" +#: ../../rst/dev_guide/testing/sanity/validate-modules.rst:87 +msgid "module-incorrect-version-added" +msgstr "module-incorrect-version-added" -#: ../../rst/dev_guide/testing_integration_legacy.rst:16 -msgid "azure" -msgstr "azure" +#: ../../rst/dev_guide/testing/sanity/validate-modules.rst:87 +msgid "Module level ``version_added`` is incorrect" +msgstr "モジュールレベル ``version_added`` は正しくありません" -#: ../../rst/dev_guide/testing_integration_legacy.rst:17 -msgid "cloudflare" -msgstr "cloudflare" +#: ../../rst/dev_guide/testing/sanity/validate-modules.rst:88 +msgid "module-invalid-version-added" +msgstr "module-invalid-version-added" -#: ../../rst/dev_guide/testing_integration_legacy.rst:18 -msgid "cloudscale" -msgstr "cloudscale" +#: ../../rst/dev_guide/testing/sanity/validate-modules.rst:88 +msgid "Module level ``version_added`` is not a valid version number" +msgstr "モジュールレベルの ``version_added`` は、有効なバージョン番号ではありません" -#: ../../rst/dev_guide/testing_integration_legacy.rst:19 -msgid "cloudstack" -msgstr "cloudstack" +#: ../../rst/dev_guide/testing/sanity/validate-modules.rst:89 +msgid "module-utils-specific-import" +msgstr "module-utils-specific-import" -#: ../../rst/dev_guide/testing_integration_legacy.rst:20 -msgid "consul" -msgstr "consul" +#: ../../rst/dev_guide/testing/sanity/validate-modules.rst:89 +msgid "``module_utils`` imports should import specific components, not ``*``" +msgstr "``module_utils`` は、``*`` ではなく、特定のコンポーネントをインポートする必要があります" -#: ../../rst/dev_guide/testing_integration_legacy.rst:21 -msgid "exoscale" -msgstr "exoscale" +#: ../../rst/dev_guide/testing/sanity/validate-modules.rst:90 +msgid "multiple-utils-per-requires" +msgstr "multiple-utils-per-requires" -#: ../../rst/dev_guide/testing_integration_legacy.rst:22 -msgid "gce" -msgstr "gce" +#: ../../rst/dev_guide/testing/sanity/validate-modules.rst:90 +msgid "``Ansible.ModuleUtils`` requirements do not support multiple modules per statement" +msgstr "``Ansible.ModuleUtils`` 要件は、ステートメントごとに複数のモジュールをサポートしません。" -#: ../../rst/dev_guide/testing_integration_legacy.rst:23 -msgid "jenkins" -msgstr "jenkins" +#: ../../rst/dev_guide/testing/sanity/validate-modules.rst:91 +msgid "multiple-csharp-utils-per-requires" +msgstr "multiple-csharp-utils-per-requires" -#: ../../rst/dev_guide/testing_integration_legacy.rst:24 -msgid "rackspace" -msgstr "rackspace" +#: ../../rst/dev_guide/testing/sanity/validate-modules.rst:91 +msgid "Ansible C# util requirements do not support multiple utils per statement" +msgstr "C# ユーティリティー要件は、ステートメントごとに複数のモジュールをサポートしません。" -#: ../../rst/dev_guide/testing_integration_legacy.rst:26 -msgid "Over time the above list will be reduced as tests are ported to the ``ansible-test`` framework." -msgstr "テストが ``ansible-test`` フレームワークに移植されると、上記のリストは徐々に少なくなっていきます。" +#: ../../rst/dev_guide/testing/sanity/validate-modules.rst:92 +msgid "no-default-for-required-parameter" +msgstr "no-default-for-required-parameter" -#: ../../rst/dev_guide/testing_integration_legacy.rst:30 -msgid "Running Cloud Tests" -msgstr "クラウドテストの実行" +#: ../../rst/dev_guide/testing/sanity/validate-modules.rst:92 +msgid "Option is marked as required but specifies a default. Arguments with a default should not be marked as required" +msgstr "オプションは必須と識別されますが、デフォルトの引数を指定します。デフォルトの引数は必須と識別しないでください。" -#: ../../rst/dev_guide/testing_integration_legacy.rst:32 -msgid "Cloud tests exercise capabilities of cloud modules (for example, ec2_key). These are not 'tests run in the cloud' so much as tests that use the cloud modules and are organized by cloud provider." -msgstr "クラウドテストは、クラウドモジュール (ec2_key など) の機能を実行します。これらは、「クラウドで実行されるテスト」ではなく、クラウドモジュールを使用し、クラウドプロバイダーによって編成されたテストです。" +#: ../../rst/dev_guide/testing/sanity/validate-modules.rst:93 +msgid "no-log-needed" +msgstr "no-log-needed" -#: ../../rst/dev_guide/testing_integration_legacy.rst:36 -msgid "Some AWS tests may use environment variables. It is recommended to either unset any AWS environment variables( such as ``AWS_DEFAULT_PROFILE``, ``AWS_SECRET_ACCESS_KEY``, and so on) or be sure that the environment variables match the credentials provided in ``credentials.yml`` to ensure the tests run with consistency to their full capability on the expected account. See `AWS CLI docs `_ for information on creating a profile." -msgstr "AWS テストによっては、環境変数を使用するものもあります。AWS 環境変数 (``AWS_DEFAULT_PROFILE``、``AWS_SECRET_ACCESS_KEY`` など) の設定を解除するか、環境変数が ``credentials.yml`` で提供される認証情報と一致することを確認して、予想されるアカウントの完全な機能に一貫性のあるテストが実行されるようにすることが推奨されます。プロファイルの作成に関する情報は、`AWS CLI ドキュメント `_ を参照してください。" +#: ../../rst/dev_guide/testing/sanity/validate-modules.rst:93 +#: ../../rst/dev_guide/testing/sanity/validate-modules.rst:101 +#: ../../rst/dev_guide/testing/sanity/validate-modules.rst:102 +#: ../../rst/dev_guide/testing/sanity/validate-modules.rst:104 +#: ../../rst/dev_guide/testing/sanity/validate-modules.rst:105 +msgid "Parameters" +msgstr "パラメーター" -#: ../../rst/dev_guide/testing_integration_legacy.rst:38 -msgid "Subsets of tests may be run by ``#commenting`` out unnecessary roles in the appropriate playbook, such as ``test/integration/amazon.yml``." -msgstr "テストのサブセットは、適切な Playbook の 不要なロールを ``#commenting`` でコメントアウトすることで実行できます (例: ``test/integration/amazon.yml``)。" +#: ../../rst/dev_guide/testing/sanity/validate-modules.rst:93 +msgid "Option name suggests that the option contains a secret value, while ``no_log`` is not specified for this option in the argument spec. If this is a false positive, explicitly set ``no_log=False``" +msgstr "オプション名は、オプションにシークレット値が含まれていることを示唆していますが、引数仕様ではこのオプションに対して ``no_log`` が指定されていません。このオプションが誤検出の場合は明示的に ``no_log=False`` に設定します。" -#: ../../rst/dev_guide/testing_integration_legacy.rst:40 -msgid "In order to run cloud tests, you must provide access credentials in a file named ``credentials.yml``. A sample credentials file named ``credentials.template`` is available for syntax help." -msgstr "クラウドテストを実行するには、``credentials.yml`` という名前のファイルでアクセス認証情報を指定する必要があります。構文ヘルプには、``credentials.template`` と名前の付いたサンプル認証情報ファイルを利用できます。" +#: ../../rst/dev_guide/testing/sanity/validate-modules.rst:94 +msgid "nonexistent-parameter-documented" +msgstr "nonexistent-parameter-documented" -#: ../../rst/dev_guide/testing_integration_legacy.rst:44 -msgid "Provide cloud credentials:" -msgstr "クラウド認証を提供します。" +#: ../../rst/dev_guide/testing/sanity/validate-modules.rst:94 +msgid "Argument is listed in DOCUMENTATION.options, but not accepted by the module" +msgstr "引数は DOCUMENTATION.options に一覧表示されますが、モジュールでは受け入れられません。" -#: ../../rst/dev_guide/testing_integration_legacy.rst:53 -msgid "Other configuration" -msgstr "その他の設定" +#: ../../rst/dev_guide/testing/sanity/validate-modules.rst:95 +msgid "option-incorrect-version-added" +msgstr "option-incorrect-version-added" -#: ../../rst/dev_guide/testing_integration_legacy.rst:55 -msgid "In order to run some tests, you must provide access credentials in a file named ``credentials.yml``. A sample credentials file named ``credentials.template`` is available for syntax help." -msgstr "いくつかのテストを実行するには、``credentials.yml`` という名前のファイルでアクセス認証情報を指定する必要があります。構文ヘルプには、``credentials.template`` と名前の付いたサンプル認証情報ファイルを利用できます。" +#: ../../rst/dev_guide/testing/sanity/validate-modules.rst:95 +msgid "``version_added`` for new option is incorrect" +msgstr "新しいオプションの ``version_added`` は正しくありません" -#: ../../rst/dev_guide/testing_integration_legacy.rst:62 -msgid "In order to run the tests in an AWS account ansible needs fairly wide ranging powers which can be provided to a dedicated user or temporary credentials using a specific policy configured in the AWS account." -msgstr "AWS アカウントでテストを実行するには、Ansible に、AWS アカウントで設定された特定のポリシーを使用して、専用のユーザや一時的な認証情報に提供できる、かなり広範囲の権限が必要となります。" +#: ../../rst/dev_guide/testing/sanity/validate-modules.rst:96 +msgid "option-invalid-version-added" +msgstr "option-invalid-version-added" -#: ../../rst/dev_guide/testing_integration_legacy.rst:67 -msgid "testing-iam-policy.json.j2" -msgstr "testing-iam-policy.json.j2" +#: ../../rst/dev_guide/testing/sanity/validate-modules.rst:96 +msgid "``version_added`` for option is not a valid version number" +msgstr "``version_added`` オプションが有効なバージョン番号ではありません" -#: ../../rst/dev_guide/testing_integration_legacy.rst:69 -msgid "The testing-iam-policy.json.j2 file contains a policy which can be given to the user running the tests to give close to minimum rights required to run the tests. Please note that this does not fully restrict the user; The user has wide privileges for viewing account definitions and is also able to manage some resources that are not related to testing (for example, AWS lambdas with different names) primarily due to the limitations of the Amazon ARN notation. At the very least the policy limits the user to one region, however tests should not be run in a primary production account in any case." -msgstr "testing-iam-policy.json.j2 ファイルには、テストを実行するユーザーに付与するポリシーが含まれており、テストの実行に必要な最低限の権限に近いものを付与することができます。なお、これは完全な制限ではないため注意してください。このユーザーは、アカウント定義を閲覧する幅広い権限を持ち、主に Amazon ARN 表記の制限により、テストに関係のない一部のリソース (たとえば、異なる名前の AWS ラムダ) を管理することもできます。少なくとも、このポリシーではユーザーを 1 つのリージョンに限定していますが、いかなる場合でも、テストは実稼働環境のプライマリーアカウントで実行すべきではありません。" +#: ../../rst/dev_guide/testing/sanity/validate-modules.rst:97 +msgid "parameter-invalid" +msgstr "parameter-invalid" -#: ../../rst/dev_guide/testing_integration_legacy.rst:86 -#: ../../rst/dev_guide/testing_units.rst:24 -msgid "Running Tests" -msgstr "テストの実行" +#: ../../rst/dev_guide/testing/sanity/validate-modules.rst:97 +msgid "Argument in argument_spec is not a valid python identifier" +msgstr "argument_spec の引数は有効な python 識別子ではありません" -#: ../../rst/dev_guide/testing_integration_legacy.rst:88 -msgid "The tests are invoked via a ``Makefile``." -msgstr "テストは ``Makefile`` 経由で呼び出されます。" +#: ../../rst/dev_guide/testing/sanity/validate-modules.rst:98 +msgid "parameter-invalid-elements" +msgstr "parameter-invalid-elements" -#: ../../rst/dev_guide/testing_integration_legacy.rst:90 -msgid "If you haven't already got Ansible available use the local checkout by doing:" -msgstr "Ansible がまだ利用可能でない場合は、以下の方法でローカルチェックアウトを使用します。" +#: ../../rst/dev_guide/testing/sanity/validate-modules.rst:98 +msgid "Value for \"elements\" is valid only when value of \"type\" is ``list``" +msgstr "「elements」の値は、「type」の値が ``list`` である場合に限り有効です" -#: ../../rst/dev_guide/testing_integration_legacy.rst:96 -msgid "Run the tests by doing:" -msgstr "以下を実行してテストを実行します。" +#: ../../rst/dev_guide/testing/sanity/validate-modules.rst:99 +msgid "implied-parameter-type-mismatch" +msgstr "implied-parameter-type-mismatch" -#: ../../rst/dev_guide/testing_integration_legacy.rst:108 -msgid "Possible cost of running cloud tests" -msgstr "クラウドテストにかかる可能性のあるコスト" +#: ../../rst/dev_guide/testing/sanity/validate-modules.rst:99 +msgid "Argument_spec implies ``type=\"str\"`` but documentation defines it as different data type" +msgstr "argument_spec には ``type=\"str\"`` の意が含まれますが、ドキュメントでは、別のデータ型として指定されています" -#: ../../rst/dev_guide/testing_integration_legacy.rst:110 -msgid "Running cloud integration tests will create and destroy cloud resources. Running these tests may result in additional fees associated with your cloud account. Care is taken to ensure that created resources are removed. However, it is advisable to inspect your AWS console to ensure no unexpected resources are running." -msgstr "クラウド統合テストを実行すると、クラウドリソースが作成および破棄されます。このようなテストを実行すると、クラウドアカウントに関連する追加料金が発生する可能性があります。作成されたリソースが確実に削除されるように注意が払われます。ただし、AWS コンソールを調べて、予期しないリソースが実行していないことを確認することが推奨されます。" +#: ../../rst/dev_guide/testing/sanity/validate-modules.rst:100 +msgid "parameter-type-not-in-doc" +msgstr "parameter-type-not-in-doc" -#: ../../rst/dev_guide/testing_pep8.rst:7 -msgid "PEP 8" -msgstr "PEP 8" +#: ../../rst/dev_guide/testing/sanity/validate-modules.rst:100 +msgid "Type value is defined in ``argument_spec`` but documentation doesn't specify a type" +msgstr "タイプ値は ``argument_spec`` で定義されていますが、ドキュメントはタイプを指定していません" -#: ../../rst/dev_guide/testing_pep8.rst:11 -msgid "`PEP 8`_ style guidelines are enforced by `pycodestyle`_ on all python files in the repository by default." -msgstr "`PEP 8`_ スタイルのガイドラインは、デフォルトでリポジトリーにあるすべての python ファイルで `pycodestyle`_ によって強制されます。" +#: ../../rst/dev_guide/testing/sanity/validate-modules.rst:101 +msgid "parameter-alias-repeated" +msgstr "parameter-alias-repeated" -#: ../../rst/dev_guide/testing_pep8.rst:14 -msgid "Running Locally" -msgstr "ローカルでの実行" +#: ../../rst/dev_guide/testing/sanity/validate-modules.rst:101 +msgid "argument in argument_spec has at least one alias specified multiple times in aliases" +msgstr "argument_spec の引数には、エイリアスに複数回指定されたエイリアスが 1 つ以上含まれます" -#: ../../rst/dev_guide/testing_pep8.rst:16 -msgid "The `PEP 8`_ check can be run locally with::" -msgstr "`PEP 8`_ チェックは、以下を使用してローカルで実行できます。" +#: ../../rst/dev_guide/testing/sanity/validate-modules.rst:102 +msgid "parameter-alias-self" +msgstr "parameter-alias-self" -#: ../../rst/dev_guide/testing_running_locally.rst:9 -msgid "This document describes how to:" -msgstr "本書では、以下を行う方法を説明します。" +#: ../../rst/dev_guide/testing/sanity/validate-modules.rst:102 +msgid "argument in argument_spec is specified as its own alias" +msgstr "argument_spec の引数は、独自のエイリアスとして指定されます" -#: ../../rst/dev_guide/testing_running_locally.rst:11 -msgid "Run tests locally using ``ansible-test``" -msgstr "``ansible-test`` を使用してテストをローカルで実行します。" +#: ../../rst/dev_guide/testing/sanity/validate-modules.rst:103 +msgid "parameter-documented-multiple-times" +msgstr "parameter-documented-multiple-times" -#: ../../rst/dev_guide/testing_running_locally.rst:12 -msgid "Extend" -msgstr "拡張" +#: ../../rst/dev_guide/testing/sanity/validate-modules.rst:103 +msgid "argument in argument_spec with aliases is documented multiple times" +msgstr "エイリアスを持つ argument_spec の引数が複数回文書化されています" -#: ../../rst/dev_guide/testing_running_locally.rst:20 -msgid "There are no special requirements for running ``ansible-test`` on Python 2.7 or later. The ``argparse`` package is required for Python 2.6. The requirements for each ``ansible-test`` command are covered later." -msgstr "Python 2.7 以降には、``ansible-test`` を実行するための特別な要件がありません。Python 2.6 には ``argparse`` パッケージが必要です。各 ``ansible-test`` コマンドの要件は、後で説明します。" +#: ../../rst/dev_guide/testing/sanity/validate-modules.rst:104 +msgid "parameter-list-no-elements" +msgstr "parameter-list-no-elements" -#: ../../rst/dev_guide/testing_running_locally.rst:26 -msgid "Test Environments" -msgstr "テスト環境" +#: ../../rst/dev_guide/testing/sanity/validate-modules.rst:104 +msgid "argument in argument_spec \"type\" is specified as ``list`` without defining \"elements\"" +msgstr "argument_spec「type」の引数は、「要素」を定義せずに ``list`` のように指定されます。" -#: ../../rst/dev_guide/testing_running_locally.rst:28 -msgid "Most ``ansible-test`` commands support running in one or more isolated test environments to simplify testing." -msgstr "ほとんどの ``ansible-test`` コマンドは、テストを簡単にするために、1 つ以上の分離テスト環境での実行をサポートします。" +#: ../../rst/dev_guide/testing/sanity/validate-modules.rst:105 +msgid "parameter-state-invalid-choice" +msgstr "parameter-state-invalid-choice" -#: ../../rst/dev_guide/testing_running_locally.rst:32 -msgid "Remote" -msgstr "リモート" +#: ../../rst/dev_guide/testing/sanity/validate-modules.rst:105 +msgid "Argument ``state`` includes ``get``, ``list`` or ``info`` as a choice. Functionality should be in an ``_info`` or (if further conditions apply) ``_facts`` module." +msgstr "引数 ``state`` には、``get``、``list``、または ``info`` が含まれています。機能性は ``_info`` または (追加の条件が適用される場合は) ``_facts`` モジュールである必要があります。" -#: ../../rst/dev_guide/testing_running_locally.rst:34 -msgid "The ``--remote`` option runs tests in a cloud hosted environment. An API key is required to use this feature." -msgstr "``--remote`` オプションは、クラウドホスト環境でテストを実行します。この機能を使用するには API キーが必要です。" +#: ../../rst/dev_guide/testing/sanity/validate-modules.rst:106 +msgid "python-syntax-error" +msgstr "python-syntax-error" -#: ../../rst/dev_guide/testing_running_locally.rst:37 -msgid "Recommended for integration tests." -msgstr "統合テストへ推奨事項" +#: ../../rst/dev_guide/testing/sanity/validate-modules.rst:106 +msgid "Python ``SyntaxError`` while parsing module" +msgstr "モジュールの解析中の Python ``SyntaxError``" -#: ../../rst/dev_guide/testing_running_locally.rst:39 -msgid "See the `list of supported platforms and versions `_ for additional details." -msgstr "詳細は、「`サポート対象のプラットフォームおよびバージョンの一覧 `_」を参照してください。" +#: ../../rst/dev_guide/testing/sanity/validate-modules.rst:107 +msgid "removal-version-must-be-major" +msgstr "removal-version-must-be-major" -#: ../../rst/dev_guide/testing_running_locally.rst:42 -msgid "Environment Variables" -msgstr "環境変数" +#: ../../rst/dev_guide/testing/sanity/validate-modules.rst:107 +msgid "According to the semantic versioning specification (https://semver.org/), the only versions in which features are allowed to be removed are major versions (x.0.0)" +msgstr "セマンティックバージョニング仕様 (https://semver.org/) によると、機能の削除が許可されているバージョンはメジャーバージョン (x.0.0) のみです。" -#: ../../rst/dev_guide/testing_running_locally.rst:44 -msgid "When using environment variables to manipulate tests there some limitations to keep in mind. Environment variables are:" -msgstr "環境変数を使用してテストを操作する際には、以下の制限事項に留意してください。環境変数は以下のようになります。" +#: ../../rst/dev_guide/testing/sanity/validate-modules.rst:108 +msgid "return-syntax-error" +msgstr "return-syntax-error" -#: ../../rst/dev_guide/testing_running_locally.rst:46 -msgid "Not propagated from the host to the test environment when using the ``--docker`` or ``--remote`` options." -msgstr "``--docker`` オプションまたは ``--remote`` オプションを使用する場合は、ホストからテスト環境に伝播されません。" +#: ../../rst/dev_guide/testing/sanity/validate-modules.rst:108 +msgid "``RETURN`` is not valid YAML, ``RETURN`` fragments missing or invalid" +msgstr "``RETURN`` は、有効な YAML ではありません。``RETURN`` フラグメントが見つからないか、無効です。" -#: ../../rst/dev_guide/testing_running_locally.rst:47 -msgid "Not exposed to the test environment unless enabled in ``test/lib/ansible_test/_internal/util.py`` in the ``common_environment`` function." -msgstr "``common_environment`` 関数の ``test/lib/ansible_test/_internal/util.py`` で有効にされていない限り、テスト環境には公開されません。" +#: ../../rst/dev_guide/testing/sanity/validate-modules.rst:109 +msgid "return-invalid-version-added" +msgstr "return-invalid-version-added" -#: ../../rst/dev_guide/testing_running_locally.rst:49 -msgid "Example: ``ANSIBLE_KEEP_REMOTE_FILES=1`` can be set when running ``ansible-test integration --venv``. However, using the ``--docker`` option would require running ``ansible-test shell`` to gain access to the Docker environment. Once at the shell prompt, the environment variable could be set and the tests executed. This is useful for debugging tests inside a container by following the :ref:`Debugging AnsibleModule-based modules ` instructions." -msgstr "例: ``ansible-test integration --venv`` の実行時に ``ANSIBLE_KEEP_REMOTE_FILES=1`` を設定できますが、``--docker`` オプションを使用すると、``ansible-test shell`` を実行し、Docker 環境へのアクセスが必要になります。シェルプロンプトでは、環境変数を設定してテストを行う可能性があります。これは、:ref:`Debugging AnsibleModule-based modules ` の指示に従って、コンテナー内でテストをデバッグする上で役立ちます。" +#: ../../rst/dev_guide/testing/sanity/validate-modules.rst:109 +msgid "``version_added`` for return value is not a valid version number" +msgstr "戻り値の ``version_added`` は、有効なバージョン番号ではありません" -#: ../../rst/dev_guide/testing_running_locally.rst:55 -msgid "Interactive Shell" -msgstr "インタラクティブシェル" +#: ../../rst/dev_guide/testing/sanity/validate-modules.rst:110 +msgid "subdirectory-missing-init" +msgstr "subdirectory-missing-init" -#: ../../rst/dev_guide/testing_running_locally.rst:57 -msgid "Use the ``ansible-test shell`` command to get an interactive shell in the same environment used to run tests. Examples:" -msgstr "``ansible-test shell`` コマンドを使用して、テストを実行するのに使用する同じ環境でインタラクティブシェルを取得します。以下は例になります。" +#: ../../rst/dev_guide/testing/sanity/validate-modules.rst:110 +msgid "Ansible module subdirectories must contain an ``__init__.py``" +msgstr "Ansible モジュールのサブディレクトリーには ``__init__.py`` が含まれている必要があります。" -#: ../../rst/dev_guide/testing_running_locally.rst:59 -msgid "``ansible-test shell --docker`` - Open a shell in the default docker container." -msgstr "``ansible-test shell --docker`` - デフォルトの docker コンテナーでシェルを開きます。" +#: ../../rst/dev_guide/testing/sanity/validate-modules.rst:111 +msgid "try-except-missing-has" +msgstr "try-except-missing-has" -#: ../../rst/dev_guide/testing_running_locally.rst:60 -msgid "``ansible-test shell --venv --python 3.6`` - Open a shell in a Python 3.6 virtual environment." -msgstr "``ansible-test shell --venv --python 3.6`` - Python 3.6 仮想環境でシェルを開きます。" +#: ../../rst/dev_guide/testing/sanity/validate-modules.rst:111 +msgid "Try/Except ``HAS_`` expression missing" +msgstr "try/Except ``HAS_`` 式がない" -#: ../../rst/dev_guide/testing_running_locally.rst:64 -msgid "Code Coverage" -msgstr "コードの対象範囲" +#: ../../rst/dev_guide/testing/sanity/validate-modules.rst:112 +msgid "undocumented-parameter" +msgstr "undocumented-parameter" -#: ../../rst/dev_guide/testing_running_locally.rst:66 -msgid "Code coverage reports make it easy to identify untested code for which more tests should be written. Online reports are available but only cover the ``devel`` branch (see :ref:`developing_testing`). For new code local reports are needed." -msgstr "コードの対象範囲レポートは、より多くのテストが記述されるべき未テストのコードを簡単に識別することができます。オンラインレポートが利用できますが、``devel`` ブランチのみを扱います (:ref:`developing_testing` を参照)。新規コードのローカルレポートが必要な場合は、以下を行います。" +#: ../../rst/dev_guide/testing/sanity/validate-modules.rst:112 +msgid "Argument is listed in the argument_spec, but not documented in the module" +msgstr "引数が argument_spec に記載されていますが、このモジュールでは文書化されていません。" -#: ../../rst/dev_guide/testing_running_locally.rst:70 -msgid "Add the ``--coverage`` option to any test command to collect code coverage data. If you aren't using the ``--venv`` or ``--docker`` options which create an isolated python environment then you may have to use the ``--requirements`` option to ensure that the correct version of the coverage module is installed:" -msgstr "コードカバレッジデータを収集するテストコマンドに ``--coverage`` オプションを追加します。分離した python 環境を作成する ``--venv`` オプションまたは ``--docker`` オプションを使用していない場合は、``--requirements`` オプションを使用してカバレッジモジュールの正しいバージョンがインストールされていることを確認する必要があります。" +#: ../../rst/dev_guide/testing/sanity/validate-modules.rst:113 +msgid "unidiomatic-typecheck" +msgstr "unidiomatic-typecheck" -#: ../../rst/dev_guide/testing_running_locally.rst:83 -#: ../../rst/dev_guide/testing_units.rst:197 -msgid "Reports can be generated in several different formats:" -msgstr "Report は、複数の形式で生成できます。" +#: ../../rst/dev_guide/testing/sanity/validate-modules.rst:113 +msgid "Type comparison using ``type()`` found. Use ``isinstance()`` instead" +msgstr "``type()`` を使用したタイプ比較。代わりに ``isinstance()`` を使用してください。" -#: ../../rst/dev_guide/testing_running_locally.rst:85 -#: ../../rst/dev_guide/testing_units.rst:199 -msgid "``ansible-test coverage report`` - Console report." -msgstr "``ansible-test coverage report`` - コンソールレポート。" +#: ../../rst/dev_guide/testing/sanity/validate-modules.rst:114 +msgid "unknown-doc-fragment" +msgstr "unknown-doc-fragment" -#: ../../rst/dev_guide/testing_running_locally.rst:86 -#: ../../rst/dev_guide/testing_units.rst:200 -msgid "``ansible-test coverage html`` - HTML report." -msgstr "``ansible-test coverage html`` - HTML レポート。" +#: ../../rst/dev_guide/testing/sanity/validate-modules.rst:114 +msgid "Unknown pre-existing ``DOCUMENTATION`` error" +msgstr "不明な既存の ``DOCUMENTATION`` エラー" -#: ../../rst/dev_guide/testing_running_locally.rst:87 -#: ../../rst/dev_guide/testing_units.rst:201 -msgid "``ansible-test coverage xml`` - XML report." -msgstr "``ansible-test coverage xml`` - XML レポート。" +#: ../../rst/dev_guide/testing/sanity/validate-modules.rst:115 +msgid "use-boto3" +msgstr "use-boto3" -#: ../../rst/dev_guide/testing_running_locally.rst:89 -msgid "To clear data between test runs, use the ``ansible-test coverage erase`` command. For a full list of features see the online help:" -msgstr "テスト実行間のデータを消去するには、``ansible-test coverage erase`` コマンドを使用します。機能の全一覧については、オンラインヘルプを参照してください。" +#: ../../rst/dev_guide/testing/sanity/validate-modules.rst:115 +msgid "``boto`` import found, new modules should use ``boto3``" +msgstr "``boto`` インポートが見つかりました。代わりに ``boto3`` を使用してください" -#: ../../rst/dev_guide/testing_sanity.rst:11 -msgid "Sanity tests are made up of scripts and tools used to perform static code analysis. The primary purpose of these tests is to enforce Ansible coding standards and requirements." -msgstr "健全性テストは、静的コード分析の実行に使用されるスクリプトおよびツールで構成されています。これらのテストの主な目的は、Ansible コーディングの仕様および要件を適用することです。" +#: ../../rst/dev_guide/testing/sanity/validate-modules.rst:116 +msgid "use-fail-json-not-sys-exit" +msgstr "use-fail-json-not-sys-exit" -#: ../../rst/dev_guide/testing_sanity.rst:14 -msgid "Tests are run with ``ansible-test sanity``. All available tests are run unless the ``--test`` option is used." -msgstr "テストは、``ansible-test sanity`` で実行します。``--test`` オプションを使用しない限り、利用可能なテストはすべて実行します。" +#: ../../rst/dev_guide/testing/sanity/validate-modules.rst:116 +msgid "``sys.exit()`` call found. Should be ``exit_json``/``fail_json``" +msgstr "``sys.exit()`` 呼び出しが見つかりました。``exit_json``/``fail_json`` でなければなりません。" -#: ../../rst/dev_guide/testing_sanity.rst:19 -msgid "How to run" -msgstr "実行方法" +#: ../../rst/dev_guide/testing/sanity/validate-modules.rst:117 +msgid "use-module-utils-urls" +msgstr "use-module-utils-urls" -#: ../../rst/dev_guide/testing_sanity.rst:22 -msgid "To run sanity tests using docker, always use the default docker image by passing the ``--docker`` or ``--docker default`` argument." -msgstr "docker を使用して健常性テストを実行するには、常に ``--docker`` 引数または ``--docker default`` 引数を渡すことでデフォルトの docker イメージを常に使用します。" +#: ../../rst/dev_guide/testing/sanity/validate-modules.rst:117 +msgid "``requests`` import found, should use ``ansible.module_utils.urls`` instead" +msgstr "``requests`` インポートしています。代わりに ``ansible.module_utils.urls`` を使用してください" -#: ../../rst/dev_guide/testing_sanity.rst:26 -msgid "When using docker and the ``--base-branch`` argument, also use the ``--keep-git`` argument to avoid git related errors." -msgstr "docker および ``--base-branch`` 引数を使用する場合は、git 関連のエラーを回避するために ``--keep-git`` 引数も使用します。" +#: ../../rst/dev_guide/testing/sanity/validate-modules.rst:118 +msgid "use-run-command-not-os-call" +msgstr "use-run-command-not-os-call" -#: ../../rst/dev_guide/testing_sanity.rst:52 -#: ../../rst/dev_guide/testing_units.rst:17 -msgid "Available Tests" -msgstr "利用可能なテスト" +#: ../../rst/dev_guide/testing/sanity/validate-modules.rst:118 +msgid "``os.call`` used instead of ``module.run_command``" +msgstr "``module.run_command`` の代わりに、``os.call`` を使用します。" -#: ../../rst/dev_guide/testing_sanity.rst:54 -msgid "Tests can be listed with ``ansible-test sanity --list-tests``." -msgstr "テストは ``ansible-test sanity --list-tests`` で一覧表示できます。" - -#: ../../rst/dev_guide/testing_units.rst:7 -msgid "Unit Tests" -msgstr "ユニットテスト" +#: ../../rst/dev_guide/testing/sanity/validate-modules.rst:119 +msgid "use-run-command-not-popen" +msgstr "use-run-command-not-popen" -#: ../../rst/dev_guide/testing_units.rst:9 -msgid "Unit tests are small isolated tests that target a specific library or module. Unit tests in Ansible are currently the only way of driving tests from python within Ansible's continuous integration process. This means that in some circumstances the tests may be a bit wider than just units." -msgstr "ユニットテストは、特定のライブラリーまたはモジュールを対象とする小規模の分離テストです。現在、Ansible のユニットテストは、Ansible の継続的統合プロセスの中で、python からテストを実行する唯一の方法です。つまり、状況によっては、テストにはユニット以外のものも含まれる場合があることを意味します。" +#: ../../rst/dev_guide/testing/sanity/validate-modules.rst:119 +msgid "``subprocess.Popen`` used instead of ``module.run_command``" +msgstr "``module.run_command`` の代わりに、``subprocess.Popen`` を使用します。" -#: ../../rst/dev_guide/testing_units.rst:19 -msgid "Unit tests can be found in `test/units `_. Notice that the directory structure of the tests matches that of ``lib/ansible/``." -msgstr "ユニットテストは `test/units `_ にあります。テストのディレクトリー構造が ``lib/ansible/`` と一致することに注意してください。" +#: ../../rst/dev_guide/testing/sanity/validate-modules.rst:120 +msgid "use-short-gplv3-license" +msgstr "use-short-gplv3-license" -#: ../../rst/dev_guide/testing_units.rst:27 -msgid "To run unit tests using docker, always use the default docker image by passing the ``--docker`` or ``--docker default`` argument." -msgstr "docker を使用してユニットテストを実行するには、``--docker`` 引数または ``--docker default`` 引数を渡すことで常にデフォルトの docker イメージを使用します。" +#: ../../rst/dev_guide/testing/sanity/validate-modules.rst:120 +msgid "GPLv3 license header should be the :ref:`short form ` for new modules" +msgstr "GPLv3 ライセンスヘッダーは、新しいモジュールの :ref:`短縮形 ` である必要があります" -#: ../../rst/dev_guide/testing_units.rst:30 -msgid "The Ansible unit tests can be run across the whole code base by doing:" -msgstr "Ansible のユニットテストは、以下の操作を実行してコードベース全体で実行できます。" +#: ../../rst/dev_guide/testing/sanity/validate-modules.rst:121 +msgid "mutually_exclusive-type" +msgstr "mutually_exclusive-type" -#: ../../rst/dev_guide/testing_units.rst:50 -msgid "If you are running unit tests against things other than modules, such as module utilities, specify the whole file path:" -msgstr "モジュールユーティリティーなどのモジュール以外のものに対してユニットテストを実行している場合は、ファイルパス全体を指定します。" +#: ../../rst/dev_guide/testing/sanity/validate-modules.rst:121 +msgid "mutually_exclusive entry contains non-string value" +msgstr "mutually_exclusive エントリーには文字列以外の値が含まれます" -#: ../../rst/dev_guide/testing_units.rst:56 -msgid "For advanced usage see the online help:" -msgstr "高度な使用方法は、オンラインヘルプを参照してください。" +#: ../../rst/dev_guide/testing/sanity/validate-modules.rst:122 +msgid "mutually_exclusive-collision" +msgstr "mutually_exclusive-collision" -#: ../../rst/dev_guide/testing_units.rst:62 -msgid "You can also run tests in Ansible's continuous integration system by opening a pull request. This will automatically determine which tests to run based on the changes made in your pull request." -msgstr "プル要求を開いて、Ansible の継続的統合システムでテストを実行することもできます。これにより、プル要求で実行された変更に基づいて、実行されるテストが自動的に決定されます。" +#: ../../rst/dev_guide/testing/sanity/validate-modules.rst:122 +msgid "mutually_exclusive entry has repeated terms" +msgstr "mutually_exclusive エントリーが繰り返し使用されます" -#: ../../rst/dev_guide/testing_units.rst:70 -msgid "If you are running ``ansible-test`` with the ``--docker`` or ``--venv`` option you do not need to install dependencies manually." -msgstr "``--docker`` オプションまたは ``--venv`` オプションを指定して ``ansible-test`` を実行している場合は、依存関係を手動でインストールする必要はありません。" +#: ../../rst/dev_guide/testing/sanity/validate-modules.rst:123 +msgid "mutually_exclusive-unknown" +msgstr "mutually_exclusive-unknown" -#: ../../rst/dev_guide/testing_units.rst:72 -msgid "Otherwise you can install dependencies using the ``--requirements`` option, which will install all the required dependencies needed for unit tests. For example:" -msgstr "それ以外の場合は、``--requirements`` オプションを使用して依存関係をインストールし、ユニットテストに必要な依存関係をすべてインストールします。以下に例を示します。" +#: ../../rst/dev_guide/testing/sanity/validate-modules.rst:123 +msgid "mutually_exclusive entry contains option which does not appear in argument_spec (potentially an alias of an option?)" +msgstr "mutually_exclusive エントリーには、argument_spec に表示されないオプションが含まれています (オプションのエイリアスである可能性がありますか?)" -#: ../../rst/dev_guide/testing_units.rst:80 -msgid "The list of unit test requirements can be found at `test/units/requirements.txt `_." -msgstr "ユニットテストの要件一覧は、`test/units/requirements.txt `_ を参照してください。" +#: ../../rst/dev_guide/testing/sanity/validate-modules.rst:124 +msgid "required_one_of-type" +msgstr "required_one_of-type" -#: ../../rst/dev_guide/testing_units.rst:83 -msgid "This does not include the list of unit test requirements for ``ansible-test`` itself, which can be found at `test/lib/ansible_test/_data/requirements/units.txt `_." -msgstr "これには、``ansible-test`` のユニットテスト要件のリストは含まれていません。それは、`test/lib/ansible_test/_data/requirements/units.txt `_ で見つけることができます。" +#: ../../rst/dev_guide/testing/sanity/validate-modules.rst:124 +msgid "required_one_of entry contains non-string value" +msgstr "required_one_of エントリーには文字列以外の値が含まれます" -#: ../../rst/dev_guide/testing_units.rst:87 -msgid "See also the `constraints `_ applicable to all test commands." -msgstr "すべてのコマンドに適用可能な「`制約 `_」も参照してください。" +#: ../../rst/dev_guide/testing/sanity/validate-modules.rst:125 +msgid "required_one_of-collision" +msgstr "required_one_of-collision" -#: ../../rst/dev_guide/testing_units.rst:93 -msgid "Extending unit tests" -msgstr "ユニットテストの拡張" +#: ../../rst/dev_guide/testing/sanity/validate-modules.rst:125 +msgid "required_one_of entry has repeated terms" +msgstr "required_one_of エントリーが繰り返し使用されます" -#: ../../rst/dev_guide/testing_units.rst:96 -msgid "What a unit test isn't" -msgstr "ユニットテスト以外のもの" +#: ../../rst/dev_guide/testing/sanity/validate-modules.rst:126 +msgid "required_one_of-unknown" +msgstr "required_one_of-unknown" -#: ../../rst/dev_guide/testing_units.rst:98 -msgid "If you start writing a test that requires external services then you may be writing an integration test, rather than a unit test." -msgstr "外部サービスを必要とするテストを書き始めると、ユニットテストではなく統合テストを書くことができます。" +#: ../../rst/dev_guide/testing/sanity/validate-modules.rst:126 +msgid "required_one_of entry contains option which does not appear in argument_spec (potentially an alias of an option?)" +msgstr "required_one_of エントリーには、argument_spec に表示されないオプションが含まれています (オプションのエイリアスである可能性がありますか?)" -#: ../../rst/dev_guide/testing_units.rst:103 -msgid "Structuring Unit Tests" -msgstr "ユニットテストの構造" +#: ../../rst/dev_guide/testing/sanity/validate-modules.rst:127 +msgid "required_together-type" +msgstr "required_together-type" -#: ../../rst/dev_guide/testing_units.rst:105 -msgid "Ansible drives unit tests through `pytest `_. This means that tests can either be written a simple functions which are included in any file name like ``test_.py`` or as classes." -msgstr "Ansible は、`pytest `_ でユニットテストを行います。これは、テストは、``test_.py`` のファイル名またはクラスとして含まれる単純な関数を記述できることを意味します。" +#: ../../rst/dev_guide/testing/sanity/validate-modules.rst:127 +msgid "required_together entry contains non-string value" +msgstr "required_together エントリーには文字列以外の値が含まれます" -#: ../../rst/dev_guide/testing_units.rst:109 -msgid "Here is an example of a function:" -msgstr "以下は、関数の例です。" +#: ../../rst/dev_guide/testing/sanity/validate-modules.rst:128 +msgid "required_together-collision" +msgstr "required_together-collision" -#: ../../rst/dev_guide/testing_units.rst:121 -msgid "Here is an example of a class:" -msgstr "以下はクラスの例です。" +#: ../../rst/dev_guide/testing/sanity/validate-modules.rst:128 +msgid "required_together entry has repeated terms" +msgstr "required_together エントリーが繰り返し使用されます" -#: ../../rst/dev_guide/testing_units.rst:143 -msgid "Both methods work fine in most circumstances; the function-based interface is simpler and quicker and so that's probably where you should start when you are just trying to add a few basic tests for a module. The class-based test allows more tidy set up and tear down of pre-requisites, so if you have many test cases for your module you may want to refactor to use that." -msgstr "どちらの方法も、ほとんどの状況で正常に機能します。関数ベースのインターフェースの方がシンプルで速いため、モジュールにいくつかの基本的なテストを追加しようとしている場合は、ここから始めることが推奨されます。クラスベースのテストでは、前提条件の設定や分解をより整然と行うことができるため、モジュールに多くのテストケースがある場合は、それを使用するようにリファクタリングすることが推奨されます。" +#: ../../rst/dev_guide/testing/sanity/validate-modules.rst:129 +msgid "required_together-unknown" +msgstr "required_together-unknown" -#: ../../rst/dev_guide/testing_units.rst:149 -msgid "Assertions using the simple ``assert`` function inside the tests will give full information on the cause of the failure with a trace-back of functions called during the assertion. This means that plain asserts are recommended over other external assertion libraries." -msgstr "テスト内の簡単な ``assert`` 関数を使用するアサーションにより、アサーション中に呼び出される関数のトレースバックで障害に関する完全な情報が表示されます。これは、他の外部アサーションライブラリーよりも、プレーンアサートが推奨されることを意味します。" +#: ../../rst/dev_guide/testing/sanity/validate-modules.rst:129 +msgid "required_together entry contains option which does not appear in argument_spec (potentially an alias of an option?)" +msgstr "required_together エントリーには、argument_spec に表示されないオプションが含まれています (オプションのエイリアスである可能性がありますか?)" -#: ../../rst/dev_guide/testing_units.rst:154 -msgid "A number of the unit test suites include functions that are shared between several modules, especially in the networking arena. In these cases a file is created in the same directory, which is then included directly." -msgstr "多くのユニットテストスイートには、特にネットワークの分野では、複数のモジュールで共有される関数が含まれています。この場合は、同じディレクトリーにファイルが作成されます。このファイルは、直接含まれます。" +#: ../../rst/dev_guide/testing/sanity/validate-modules.rst:130 +msgid "required_if-is_one_of-type" +msgstr "required_if-is_one_of-type" -#: ../../rst/dev_guide/testing_units.rst:160 -msgid "Module test case common code" -msgstr "モジュールテストケースの共通コード" +#: ../../rst/dev_guide/testing/sanity/validate-modules.rst:130 +msgid "required_if entry has a fourth value which is not a bool" +msgstr "required_if エントリーには bool ではない 4 つ目の値がある" -#: ../../rst/dev_guide/testing_units.rst:162 -msgid "Keep common code as specific as possible within the `test/units/` directory structure. Don't import common unit test code from directories outside the current or parent directories." -msgstr "`test/units/` ディレクトリー構造内で可能な限り具体的に共通コードを維持します。現在のディレクトリーまたは親ディレクトリー以外のディレクトリーから共通のユニットテストコードをインポートしないでください。" +#: ../../rst/dev_guide/testing/sanity/validate-modules.rst:131 +msgid "required_if-requirements-type" +msgstr "required_if-requirements-type" -#: ../../rst/dev_guide/testing_units.rst:165 -msgid "Don't import other unit tests from a unit test. Any common code should be in dedicated files that aren't themselves tests." -msgstr "ユニットテストから他のユニットテストをインポートしないでください。共通のコードは、テスト自体ではない専用のファイルに含める必要があります。" +#: ../../rst/dev_guide/testing/sanity/validate-modules.rst:131 +msgid "required_if entry has a third value (requirements) which is not a list or tuple" +msgstr "required_if エントリーには、リストまたはタプルではない 3 つの値 (必須) があります。" -#: ../../rst/dev_guide/testing_units.rst:170 -msgid "Fixtures files" -msgstr "Fixtures ファイル" +#: ../../rst/dev_guide/testing/sanity/validate-modules.rst:132 +msgid "required_if-requirements-collision" +msgstr "required_if-requirements-collision" -#: ../../rst/dev_guide/testing_units.rst:172 -msgid "To mock out fetching results from devices, or provide other complex data structures that come from external libraries, you can use ``fixtures`` to read in pre-generated data." -msgstr "デバイスからの結果の取得を模倣したり、外部ライブラリーから取得した他の複雑なデータ構造を提供するために、``fixtures`` を使用して事前に生成されたデータを読み込むことができます。" +#: ../../rst/dev_guide/testing/sanity/validate-modules.rst:132 +msgid "required_if entry has repeated terms in requirements" +msgstr "required_if エントリーが繰り返し使用されます" -#: ../../rst/dev_guide/testing_units.rst:175 -msgid "You can check how `fixtures `_ are used in `cpuinfo fact tests `_" -msgstr "`cpuinfo ファクトテスト `_ で、`fixtures `_ が使用される方法を確認することができます。" +#: ../../rst/dev_guide/testing/sanity/validate-modules.rst:133 +msgid "required_if-requirements-unknown" +msgstr "required_if-requirements-unknown" -#: ../../rst/dev_guide/testing_units.rst:178 -msgid "If you are simulating APIs you may find that Python placebo is useful. See :ref:`testing_units_modules` for more information." -msgstr "API のシミュレーションをしているのであれば、Python のプラシーボが役に立つかもしれません。詳細は、「:ref:`testing_units_modules`」を参照してください。" +#: ../../rst/dev_guide/testing/sanity/validate-modules.rst:133 +msgid "required_if entry's requirements contains option which does not appear in argument_spec (potentially an alias of an option?)" +msgstr "required_if エントリーの要件には、argument_spec に表示されないオプションが含まれています (オプションのエイリアスである可能性がありますか?)" -#: ../../rst/dev_guide/testing_units.rst:183 -msgid "Code Coverage For New or Updated Unit Tests" -msgstr "新規ユニットテストまたは更新されたユニットテスト用のコード対応" +#: ../../rst/dev_guide/testing/sanity/validate-modules.rst:134 +msgid "required_if-unknown-key" +msgstr "required_if-unknown-key" -#: ../../rst/dev_guide/testing_units.rst:184 -msgid "New code will be missing from the codecov.io coverage reports (see :ref:`developing_testing`), so local reporting is needed. Most ``ansible-test`` commands allow you to collect code coverage; this is particularly useful when to indicate where to extend testing." -msgstr "codecov.io カバレッジレポートから新しいコードが欠落し (:ref:`developing_testing`を参照)、ローカルレポートが必要です。ほとんどの ``ansible-test`` コマンドを使用すると、コードカバレッジを収集できます。これは、テストを拡張する場所を示すときに特に役立ちます。" +#: ../../rst/dev_guide/testing/sanity/validate-modules.rst:134 +msgid "required_if entry's key does not appear in argument_spec (potentially an alias of an option?)" +msgstr "required_if エントリーのキーが argument_spec に表示されません (オプションのエイリアスである可能性がありますか?)" -#: ../../rst/dev_guide/testing_units.rst:188 -msgid "To collect coverage data add the ``--coverage`` argument to your ``ansible-test`` command line:" -msgstr "カバレージデータを収集するには、``--coverage`` 引数を ``ansible-test`` コマンドラインに追加します。" +#: ../../rst/dev_guide/testing/sanity/validate-modules.rst:135 +msgid "required_if-key-in-requirements" +msgstr "required_if-key-in-requirements" -#: ../../rst/dev_guide/testing_units.rst:195 -msgid "Results will be written to ``test/results/reports/coverage/index.html``" -msgstr "結果は ``test/results/reports/coverage/index.html`` に書き込まれます。" +#: ../../rst/dev_guide/testing/sanity/validate-modules.rst:135 +msgid "required_if entry contains its key in requirements list/tuple" +msgstr "required_if エントリーには要件リスト/タプルのキーが含まれます" -#: ../../rst/dev_guide/testing_units.rst:203 -msgid "To clear data between test runs, use the ``ansible-test coverage erase`` command. See :ref:`testing_running_locally` for more information about generating coverage reports." -msgstr "テスト実行間のデータを消去するには、``ansible-test coverage erase`` コマンドを使用します。カバレッジレポートの生成の詳細は、「:ref:`testing_running_locally`」を参照してください。" +#: ../../rst/dev_guide/testing/sanity/validate-modules.rst:136 +msgid "required_if-value-type" +msgstr "required_if-value-type" -#: ../../rst/dev_guide/testing_units.rst:210 -msgid ":ref:`testing_units_modules`" -msgstr ":ref:`testing_units_modules`" +#: ../../rst/dev_guide/testing/sanity/validate-modules.rst:136 +msgid "required_if entry's value is not of the type specified for its key" +msgstr "required_if エントリーの値は、キーに指定されたタイプではありません" -#: ../../rst/dev_guide/testing_units.rst:211 -msgid "Special considerations for unit testing modules" -msgstr "ユニットテストモジュールに関する特別な考慮事項" +#: ../../rst/dev_guide/testing/sanity/validate-modules.rst:137 +msgid "required_by-collision" +msgstr "required_by-collision" -#: ../../rst/dev_guide/testing_units.rst:212 -#: ../../rst/dev_guide/testing_units_modules.rst:569 -msgid ":ref:`testing_running_locally`" -msgstr ":ref:`testing_running_locally`" +#: ../../rst/dev_guide/testing/sanity/validate-modules.rst:137 +msgid "required_by entry has repeated terms" +msgstr "required_by エントリーが繰り返し使用されます" -#: ../../rst/dev_guide/testing_units.rst:213 -#: ../../rst/dev_guide/testing_units_modules.rst:570 -msgid "Running tests locally including gathering and reporting coverage data" -msgstr "カバレージデータの収集とレポートを含む、ローカルでのテストの実行" +#: ../../rst/dev_guide/testing/sanity/validate-modules.rst:138 +msgid "required_by-unknown" +msgstr "required_by-unknown" -#: ../../rst/dev_guide/testing_units.rst:214 -#: ../../rst/dev_guide/testing_units_modules.rst:573 -msgid "`Python 3 documentation - 26.4. unittest — Unit testing framework `_" -msgstr "`Python 3 documentation - 26.4. unittest — Unit testing framework `_" +#: ../../rst/dev_guide/testing/sanity/validate-modules.rst:138 +msgid "required_by entry contains option which does not appear in argument_spec (potentially an alias of an option?)" +msgstr "required_by エントリーには、argument_spec に表示されないオプションが含まれます (オプションのエイリアスである可能性がありますか?)" -#: ../../rst/dev_guide/testing_units.rst:215 -#: ../../rst/dev_guide/testing_units_modules.rst:574 -msgid "The documentation of the unittest framework in python 3" -msgstr "Python 3 におけるユニットテストフレームワークのドキュメント" +#: ../../rst/dev_guide/testing/sanity/validate-modules.rst:139 +msgid "version-added-must-be-major-or-minor" +msgstr "version-added-must-be-major-or-minor" -#: ../../rst/dev_guide/testing_units.rst:216 -#: ../../rst/dev_guide/testing_units_modules.rst:575 -msgid "`Python 2 documentation - 25.3. unittest — Unit testing framework `_" -msgstr "`Python 2 documentation - 25.3. unittest — Unit testing framework `_" +#: ../../rst/dev_guide/testing/sanity/validate-modules.rst:139 +msgid "According to the semantic versioning specification (https://semver.org/), the only versions in which features are allowed to be added are major and minor versions (x.y.0)" +msgstr "セマンティックバージョニング仕様 (https://semver.org/) によると、機能の追加が許可されているバージョンはメジャーバージョンおよびマイナーバージョン (x.y.0) のみです" -#: ../../rst/dev_guide/testing_units.rst:217 -#: ../../rst/dev_guide/testing_units_modules.rst:576 -msgid "The documentation of the earliest supported unittest framework - from Python 2.6" -msgstr "サポートされている初期のユニットテストフレームワークのドキュメント (Python 2.6)" +#: ../../rst/dev_guide/testing/sanity/yamllint.rst:2 +msgid "yamllint" +msgstr "yamllint" -#: ../../rst/dev_guide/testing_units.rst:218 -#: ../../rst/dev_guide/testing_units_modules.rst:577 -msgid "`pytest: helps you write better programs `_" -msgstr "`pytest: helps you write better programs `_" +#: ../../rst/dev_guide/testing/sanity/yamllint.rst:4 +msgid "Check YAML files for syntax and formatting issues." +msgstr "YAML ファイルにおける構文およびフォーマットの問題を確認します。" -#: ../../rst/dev_guide/testing_units.rst:219 -#: ../../rst/dev_guide/testing_units_modules.rst:578 -msgid "The documentation of pytest - the framework actually used to run Ansible unit tests" -msgstr "pytest のドキュメント - Ansible ユニットテストの実行に実際に使用されているフレームワーク" +#: ../../rst/dev_guide/testing_compile.rst:6 +msgid "Compile Tests" +msgstr "コンパイルテスト" -#: ../../rst/dev_guide/testing_units_modules.rst:7 -msgid "Unit Testing Ansible Modules" -msgstr "Ansible モジュールのユニットテスト" +#: ../../rst/dev_guide/testing_compile.rst:8 +msgid "This page has moved to :ref:`testing_compile`." +msgstr "このページは :ref:`testing_compile` に移動しました。" -#: ../../rst/dev_guide/testing_units_modules.rst:16 -msgid "This document explains why, how and when you should use unit tests for Ansible modules. The document doesn't apply to other parts of Ansible for which the recommendations are normally closer to the Python standard. There is basic documentation for Ansible unit tests in the developer guide :ref:`testing_units`. This document should be readable for a new Ansible module author. If you find it incomplete or confusing, please open a bug or ask for help on the #ansible-devel chat channel (using Matrix at ansible.im or using IRC at `irc.libera.chat `_)." -msgstr "このドキュメントでは、Ansible モジュールにユニットテストを使用する理由、方法、タイミングを説明します。このドキュメントは、通常 Python の標準に近い推奨事項を持つ Ansible の他の部分には適用されません。Ansible のユニットテストに関する基本的なドキュメントは、開発者ガイドの「:ref:`testing_units`」にあります。このドキュメントは、新しい Ansible モジュールの作成者にとって読みやすいものでなければなりません。不完全だったり、分かりにくかったりした場合は、バグを報告したり、#ansible-develチャットチャンネル で助けを求めたりしてください(ansible.imでMatrixを使用、または`irc.libera.chat `_でIRCを使用)。" +#: ../../rst/dev_guide/testing_documentation.rst:8 +msgid "Testing plugin documentation" +msgstr "プラグインドキュメントのテスト" -#: ../../rst/dev_guide/testing_units_modules.rst:24 -msgid "What Are Unit Tests?" -msgstr "ユニットテストとは" +#: ../../rst/dev_guide/testing_documentation.rst:10 +msgid "A quick test while developing is to use ``ansible-doc -t `` to see if it renders, you might need to add ``-M /path/to/module`` if the module is not somewhere Ansible expects to find it." +msgstr "開発中の簡単なテストとして、``ansible-doc -t `` を使用してレンダリングされるかどうかを確認できます。Ansible が期待する場所にモジュールがない場合、``-M /path/to/module`` を追加する必要があることもあります。" -#: ../../rst/dev_guide/testing_units_modules.rst:26 -msgid "Ansible includes a set of unit tests in the :file:`test/units` directory. These tests primarily cover the internals but can also cover Ansible modules. The structure of the unit tests matches the structure of the code base, so the tests that reside in the :file:`test/units/modules/` directory are organized by module groups." -msgstr "Ansible には、:file:`test/units` ディレクトリーにユニットテストのセットが含まれています。これらのテストは、主に内部に対応していますが、Ansible モジュールにも対応します。ユニットテストの構造はコードベースのベースの構造に一致し、:file:`test/units/modules/` ディレクトリーに含まれるテストはモジュールグループごとに編成されます。" +#: ../../rst/dev_guide/testing_documentation.rst:12 +msgid "Before you submit a plugin for inclusion in Ansible, you must test your documentation for correct HTML rendering and for modules to ensure that the argspec matches the documentation in your Python file. The community pages offer more information on :ref:`testing reStructuredText documentation `." +msgstr "Ansible に組み込むプラグインを送信する前に、正しい HTML レンダリングとモジュールについてドキュメントをテストし、argspec が Python ファイルのドキュメントと一致することを確認する必要があります。詳細は、コミュニティーページの :ref:`testing reStructuredText documentation ` を参照してください。" -#: ../../rst/dev_guide/testing_units_modules.rst:31 -msgid "Integration tests can be used for most modules, but there are situations where cases cannot be verified using integration tests. This means that Ansible unit test cases may extend beyond testing only minimal units and in some cases will include some level of functional testing." -msgstr "統合テストはほとんどのモジュールで使用できますが、統合テストではケースを検証できない場合もあります。つまり、Ansible ユニットテストケースは、最小限のユニットのみのテストにとどまらず、場合によっては、ある程度の機能テストが含まれることもあります。" +#: ../../rst/dev_guide/testing_documentation.rst:15 +msgid "For example, to check the HTML output of your module documentation:" +msgstr "たとえば、モジュールドキュメントの HTML 出力を確認するには、次のコマンドを実行します。" -#: ../../rst/dev_guide/testing_units_modules.rst:38 -msgid "Why Use Unit Tests?" -msgstr "ユニットテストを使用する理由" +#: ../../rst/dev_guide/testing_documentation.rst:17 +msgid "Ensure working :ref:`development environment `." +msgstr ":ref:`開発環境 ` が稼働していることを確認します。" -#: ../../rst/dev_guide/testing_units_modules.rst:40 -msgid "Ansible unit tests have advantages and disadvantages. It is important to understand these. Advantages include:" -msgstr "Ansible ユニットテストには長所と短所があり、その点を理解することは重要です。以下が挙げられます。" +#: ../../rst/dev_guide/testing_documentation.rst:18 +#: ../../rst/dev_guide/testing_documentation.rst:32 +msgid "Install required Python packages (drop '--user' in venv/virtualenv):" +msgstr "必要な Python パッケージをインストールします (venv/virtualenv に「--user」をドロップします)。" -#: ../../rst/dev_guide/testing_units_modules.rst:43 -msgid "Most unit tests are much faster than most Ansible integration tests. The complete suite of unit tests can be run regularly by a developer on their local system." -msgstr "ほとんどのユニットテストは、ほとんどの Ansible 統合テストよりもはるかに高速です。ユニットテストの完全なスイートは、ローカルシステムで開発者が定期的に実行できます。" +#: ../../rst/dev_guide/testing_documentation.rst:25 +msgid "Ensure your module is in the correct directory: ``lib/ansible/modules/mymodule.py`` or in a configured path." +msgstr "モジュールが正しいディレクトリー (``lib/ansible/modules/mymodule.py``)、または設定されたパスにあることを確認します。" -#: ../../rst/dev_guide/testing_units_modules.rst:45 -msgid "Unit tests can be run by developers who don't have access to the system which the module is designed to work on, allowing a level of verification that changes to core functions haven't broken module expectations." -msgstr "ユニットテストは、モジュールが動作するように設計されているシステムにアクセスできない開発者が実行することができ、コア機能への変更がモジュールの期待どおりであることをある程度検証できます。" +#: ../../rst/dev_guide/testing_documentation.rst:26 +msgid "Build HTML from your module documentation: ``MODULES=mymodule make webdocs``." +msgstr "モジュールドキュメント ``MODULES=mymodule make webdocs`` から HTML を構築します。" -#: ../../rst/dev_guide/testing_units_modules.rst:48 -msgid "Unit tests can easily substitute system functions allowing testing of software that would be impractical. For example, the ``sleep()`` function can be replaced and we check that a ten minute sleep was called without actually waiting ten minutes." -msgstr "ユニットテストは、システム関数を簡単に置換でき、実現するソフトウェアのテストを簡単に指定することができます。たとえば、``sleep()`` 関数を置き換えることができ、実際に 10 分待たずに 10 分のスリープが呼び出されたことを確認します。" +#: ../../rst/dev_guide/testing_documentation.rst:27 +msgid "To build the HTML documentation for multiple modules, use a comma-separated list of module names: ``MODULES=mymodule,mymodule2 make webdocs``." +msgstr "複数のモジュールの HTML ドキュメントを作成するには、モジュール名のコンマ区切りリストを使用します (``MODULES=mymodule,mymodule2 make webdocs``)。" -#: ../../rst/dev_guide/testing_units_modules.rst:51 -msgid "Unit tests are run on different Python versions. This allows us to ensure that the code behaves in the same way on different Python versions." -msgstr "ユニットテストは、Python の各バージョンで実行されます。これにより、コードが異なる Python のバージョンでも同じように動作することを確認できます。" +#: ../../rst/dev_guide/testing_documentation.rst:28 +msgid "View the HTML page at ``file:///path/to/docs/docsite/_build/html/modules/mymodule_module.html``." +msgstr "``file:///path/to/docs/docsite/_build/html/modules/mymodule_module.html`` で HTML ページを表示します。" -#: ../../rst/dev_guide/testing_units_modules.rst:54 -msgid "There are also some potential disadvantages of unit tests. Unit tests don't normally directly test actual useful valuable features of software, instead just internal implementation" -msgstr "ユニットテストには、いくつかの潜在的な欠点もあります。通常、実際に便利で価値のある機能を直接テストせず、代わりに内部実装をテストします。" +#: ../../rst/dev_guide/testing_documentation.rst:30 +msgid "To ensure that your module documentation matches your ``argument_spec``:" +msgstr "モジュールのドキュメントが ``argument_spec`` と適合するようにするには、以下を行います。" -#: ../../rst/dev_guide/testing_units_modules.rst:58 -msgid "Unit tests that test the internal, non-visible features of software may make refactoring difficult if those internal features have to change (see also naming in How below)" -msgstr "ソフトウェア内部にある、目に見えない機能をテストするユニットテストは、それらの内部機能を変更する必要がある場合、リファクタリングを困難にする可能性があります (以下の「方法」の命名も参照)。" +#: ../../rst/dev_guide/testing_documentation.rst:38 +msgid "run the ``validate-modules`` test:" +msgstr "``validate-modules`` テストを実行します。" -#: ../../rst/dev_guide/testing_units_modules.rst:61 -msgid "Even if the internal feature is working correctly it is possible that there will be a problem between the internal code tested and the actual result delivered to the user" -msgstr "内部機能が正しく機能している場合でも、テストされた内部コードとユーザーに配信される実際の結果との間に問題が発生する可能性があります。" +#: ../../rst/dev_guide/testing_documentation.rst:44 +msgid "For other plugin types the steps are similar, just adjusting names and paths to the specific type." +msgstr "他のプラグインタイプの場合も手順は同じですが、名前とパスのタイプのみ適宜調整する必要があります。" -#: ../../rst/dev_guide/testing_units_modules.rst:64 -msgid "Normally the Ansible integration tests (which are written in Ansible YAML) provide better testing for most module functionality. If those tests already test a feature and perform well there may be little point in providing a unit test covering the same area as well." -msgstr "通常、(Ansible YAML で記述される) Ansible 統合テストは、ほとんどのモジュール機能に対してより良いテストを提供します。これらのテストがすでに機能をテストしていて、うまく機能している場合は、同じ領域をカバーするユニットテストを提供する意味はほとんどないかもしれません。" +#: ../../rst/dev_guide/testing_httptester.rst:5 +msgid "httptester" +msgstr "httptester" -#: ../../rst/dev_guide/testing_units_modules.rst:69 -msgid "When To Use Unit Tests" -msgstr "ユニットテストを使用するタイミング" +#: ../../rst/dev_guide/testing_httptester.rst:10 +msgid "Overview" +msgstr "概要" -#: ../../rst/dev_guide/testing_units_modules.rst:71 -msgid "There are a number of situations where unit tests are a better choice than integration tests. For example, testing things which are impossible, slow or very difficult to test with integration tests, such as:" -msgstr "統合テストよりもユニットテストの方が適している状況は数多くあります。たとえば、次のような統合テストでテストすることが不可能で、遅い、または非常に難しいものをテストします。" +#: ../../rst/dev_guide/testing_httptester.rst:12 +msgid "``httptester`` is a docker container used to host certain resources required by :ref:`testing_integration`. This is to avoid CI tests requiring external resources (such as git or package repos) which, if temporarily unavailable, would cause tests to fail." +msgstr "``httptester`` は、:ref:`testing_integration` で必要な特定のリソースをホストするのに使用される docker コンテナーです。これにより、(git やパッケージリポジトリーなどの) 外部リソースを必要とする CI テストが回避され、一時的に利用できなくなるとテストが失敗します。" -#: ../../rst/dev_guide/testing_units_modules.rst:75 -msgid "Forcing rare / strange / random situations that can't be forced, such as specific network failures and exceptions" -msgstr "特定のネットワーク障害や例外のような、強制することができない稀な、奇妙な、およびランダムな状況を強制。" +#: ../../rst/dev_guide/testing_httptester.rst:14 +msgid "HTTP Testing endpoint which provides the following capabilities:" +msgstr "以下の機能を提供する HTTP テストエンドポイントです。" -#: ../../rst/dev_guide/testing_units_modules.rst:77 -msgid "Extensive testing of slow configuration APIs" -msgstr "遅い設定 API の広範なテスト" +#: ../../rst/dev_guide/testing_httptester.rst:16 +msgid "httpbin" +msgstr "httpbin" -#: ../../rst/dev_guide/testing_units_modules.rst:78 -msgid "Situations where the integration tests cannot be run as part of the main Ansible continuous integration running in Azure Pipelines." -msgstr "Azure Pipeline で実行されているメインの Ansible 継続的統合の一部として、統合テストを実行できない状況。" +#: ../../rst/dev_guide/testing_httptester.rst:17 +msgid "nginx" +msgstr "nginx" -#: ../../rst/dev_guide/testing_units_modules.rst:84 -msgid "Providing quick feedback" -msgstr "迅速なフィードバックの提供" +#: ../../rst/dev_guide/testing_httptester.rst:18 +msgid "SSL" +msgstr "SSL" -#: ../../rst/dev_guide/testing_units_modules.rst:87 -msgid "A single step of the rds_instance test cases can take up to 20 minutes (the time to create an RDS instance in Amazon). The entire test run can last for well over an hour. All 16 of the unit tests complete execution in less than 2 seconds." -msgstr "rds_instance のテストケースの 1 つのステップには、最大 20 分 (Amazonで RDS インスタンスを作成する時間) かかる場合があります。テストの実行は、全体で 1 時間以上かかることもあります。16 個のユニットテストは、すべて 2 秒以内に実行を完了します。" +#: ../../rst/dev_guide/testing_httptester.rst:19 +msgid "SNI" +msgstr "SNI" -#: ../../rst/dev_guide/testing_units_modules.rst:92 -msgid "The time saving provided by being able to run the code in a unit test makes it worth creating a unit test when bug fixing a module, even if those tests do not often identify problems later. As a basic goal, every module should have at least one unit test which will give quick feedback in easy cases without having to wait for the integration tests to complete." -msgstr "ユニットテストでコードを実行できることによって提供される時間の節約により、モジュールのバグ修正時にユニットテストを作成する価値があります。これらのテストで後で問題が特定されることはあまりありません。基本的な目標として、すべてのモジュールには少なくとも 1 つのユニットテストが必要です。これにより、統合テストが完了するのを待たずに、簡単なケースで迅速なフィードバックが得られます。" +#: ../../rst/dev_guide/testing_httptester.rst:20 +msgid "Negotiate Authentication" +msgstr "認証のネゴシエート" -#: ../../rst/dev_guide/testing_units_modules.rst:99 -msgid "Ensuring correct use of external interfaces" -msgstr "外部インターフェースを正しく使用すること" +#: ../../rst/dev_guide/testing_httptester.rst:23 +msgid "Source files can be found in the `http-test-container `_ repository." +msgstr "ソースファイルは `http-test-container `_ リポジトリーにあります。" -#: ../../rst/dev_guide/testing_units_modules.rst:101 -msgid "Unit tests can check the way in which external services are run to ensure that they match specifications or are as efficient as possible *even when the final output will not be changed*." -msgstr "ユニットテストは、*最終的な出力が変更されない場合でも*、外部サービスの実行方法が仕様に合致しているか、あるいは可能な限り効率的であるかを確認できます。" +#: ../../rst/dev_guide/testing_httptester.rst:26 +msgid "Extending httptester" +msgstr "httptester の拡張" -#: ../../rst/dev_guide/testing_units_modules.rst:105 -msgid "Package managers are often far more efficient when installing multiple packages at once rather than each package separately. The final result is the same: the packages are all installed, so the efficiency is difficult to verify through integration tests. By providing a mock package manager and verifying that it is called once, we can build a valuable test for module efficiency." -msgstr "パッケージマネージャーは、各パッケージを個別にインストールするよりも、複数のパッケージを一度にインストールする方がはるかに効率的であることがよくあります。最終結果は同じです。すべてのパッケージがインストールされるため、統合テストで効率を検証することは困難です。模擬パッケージマネージャを提供し、それが一度に呼ばれることを検証するため、モジュール効率について貴重なテストを構築できます。" +#: ../../rst/dev_guide/testing_httptester.rst:28 +msgid "If you have sometime to improve ``httptester`` please add a comment on the `Testing Working Group Agenda `_ to avoid duplicated effort." +msgstr "``httptester`` を改善するタイミングがある場合は、重複作業を回避するために、`Testing Working Group Agenda `_ にコメントを追加してください。" -#: ../../rst/dev_guide/testing_units_modules.rst:111 -msgid "Another related use is in the situation where an API has versions which behave differently. A programmer working on a new version may change the module to work with the new API version and unintentionally break the old version. A test case which checks that the call happens properly for the old version can help avoid the problem. In this situation it is very important to include version numbering in the test case name (see `Naming unit tests`_ below)." -msgstr "別の関連する使用法は、API の動作が異なるバージョンがある状況です。新しいバージョンで作業しているプログラマーは、新しい API バージョンで動作するようにモジュールを変更し、意図せずに古いバージョンを壊してしまう可能性があります。古いバージョンで呼び出しが適切に行われることを確認するテストケースは、問題を回避するのに役立ちます。この状況では、テストケース名にバージョン番号を含めることが非常に重要です (以下 `Naming unit tests`_ を参照)。" +#: ../../rst/dev_guide/testing_integration.rst:11 +msgid "The Ansible integration Test system." +msgstr "Ansible 統合テストシステム。" -#: ../../rst/dev_guide/testing_units_modules.rst:119 -msgid "Providing specific design tests" -msgstr "特定の設計テストの提供" +#: ../../rst/dev_guide/testing_integration.rst:13 +msgid "Tests for playbooks, by playbooks." +msgstr "Playbook による Playbook のテスト" -#: ../../rst/dev_guide/testing_units_modules.rst:121 -msgid "By building a requirement for a particular part of the code and then coding to that requirement, unit tests _can_ sometimes improve the code and help future developers understand that code." -msgstr "コードの特定の部分に対する要件を構築し、その要件に合わせてコーディングすることで、ユニットテストは、時にはコードを改善し、将来の開発者がそのコードを理解する助けとなります。" +#: ../../rst/dev_guide/testing_integration.rst:15 +msgid "Some tests may require credentials. Credentials may be specified with `credentials.yml`." +msgstr "テストによっては認証情報が必要になる場合があります。認証情報は `credentials.yml` で指定できます。" -#: ../../rst/dev_guide/testing_units_modules.rst:125 -msgid "Unit tests that test internal implementation details of code, on the other hand, almost always do more harm than good. Testing that your packages to install are stored in a list would slow down and confuse a future developer who might need to change that list into a dictionary for efficiency. This problem can be reduced somewhat with clear test naming so that the future developer immediately knows to delete the test case, but it is often better to simply leave out the test case altogether and test for a real valuable feature of the code, such as installing all of the packages supplied as arguments to the module." -msgstr "一方、コードの内部実装の詳細をテストするユニットテストは、ほとんどの場合、益よりも害をもたらします。インストールするパッケージがリストに格納されているかどうかをテストすると、遅くなり、効率化のためにリストをディクショナリーに変更しないといけない将来の開発者を混乱させます。この問題は、将来の開発者がすぐにテストケースを削除することがわかるように、明確なテスト名をつけることで多少軽減できますが、単にテストケースを完全に除外して、モジュールの引数として与えられたすべてのパッケージをインストールするなど、コードの本当の価値ある機能をテストする方が良い場合が多いです。" +#: ../../rst/dev_guide/testing_integration.rst:17 +msgid "Some tests may require root." +msgstr "テストによっては root が必要になる場合があります。" -#: ../../rst/dev_guide/testing_units_modules.rst:135 -msgid "How to unit test Ansible modules" -msgstr "Ansible モジュールをユニットテストする方法" +#: ../../rst/dev_guide/testing_integration.rst:20 +msgid "Every new module and plugin should have integration tests, even if the tests cannot be run on Ansible CI infrastructure. In this case, the tests should be marked with the ``unsupported`` alias in `aliases file `_." +msgstr "テストを Ansible CI インフラストラクチャーで実行できない場合でも、新しいモジュールとプラグインには統合テストが必要です。この場合、テストは `aliases ファイル `_ の ``unsupported`` エイリアスでマーク付けする必要があります。" -#: ../../rst/dev_guide/testing_units_modules.rst:137 -msgid "There are a number of techniques for unit testing modules. Beware that most modules without unit tests are structured in a way that makes testing quite difficult and can lead to very complicated tests which need more work than the code. Effectively using unit tests may lead you to restructure your code. This is often a good thing and leads to better code overall. Good restructuring can make your code clearer and easier to understand." -msgstr "ユニットテストモジュールにはいくつかの手法があります。ユニットテストのないほとんどのモジュールでは、テストが非常に困難になり、コードよりも多くの作業が必要な、非常に複雑なテストにつながる可能性があることに注意してください。ユニットテストを効果的に使用するには、コードを再構築する可能性があります。これは多くの場合良いことであり、全体的に優れたコードにつながります。適切な再構築により、コードがより明確になり、理解しやすくなります。" +#: ../../rst/dev_guide/testing_integration.rst:24 +msgid "Quick Start" +msgstr "クイックスタート" -#: ../../rst/dev_guide/testing_units_modules.rst:145 -msgid "Naming unit tests" -msgstr "ユニットテストの命名" +#: ../../rst/dev_guide/testing_integration.rst:26 +msgid "It is highly recommended that you install and activate the ``argcomplete`` python package. It provides tab completion in ``bash`` for the ``ansible-test`` test runner." +msgstr "python パッケージ ``argcomplete`` をインストールし、アクティベートすることが強く推奨されます。これにより、テストランナー ``ansible-test`` に ``bash`` のタブ補完が提供されます。" -#: ../../rst/dev_guide/testing_units_modules.rst:147 -msgid "Unit tests should have logical names. If a developer working on the module being tested breaks the test case, it should be easy to figure what the unit test covers from the name. If a unit test is designed to verify compatibility with a specific software or API version then include the version in the name of the unit test." -msgstr "ユニットテストは論理名を付ける必要があります。テスト対象のモジュールで作業している開発者がテストケースを壊してしまった場合に、ユニットテストが何を対象としているのかが名前から簡単に分かるようにする必要があります。ユニットテストが特定のソフトウェアや API のバージョンとの互換性を検証するように設計されている場合は、ユニットテストの名前にそのバージョンを追加してください。" +#: ../../rst/dev_guide/testing_integration.rst:30 +msgid "Configuration" +msgstr "Configuration (構成)" -#: ../../rst/dev_guide/testing_units_modules.rst:152 -msgid "As an example, ``test_v2_state_present_should_call_create_server_with_name()`` would be a good name, ``test_create_server()`` would not be." -msgstr "たとえば、``test_v2_state_present_should_call_create_server_with_name()`` が適切な名前で、``test_create_server()`` は適切ではありません。" +#: ../../rst/dev_guide/testing_integration.rst:33 +msgid "ansible-test command" +msgstr "ansible-test コマンド" -#: ../../rst/dev_guide/testing_units_modules.rst:157 -msgid "Use of Mocks" -msgstr "モックの使用" +#: ../../rst/dev_guide/testing_integration.rst:35 +msgid "The example below assumes ``bin/`` is in your ``$PATH``. An easy way to achieve that is to initialize your environment with the ``env-setup`` command:" +msgstr "以下の例では、``bin/`` が ``$PATH`` であることを前提としています。これは、``env-setup`` コマンドで環境を初期化する簡単な方法になります。" -#: ../../rst/dev_guide/testing_units_modules.rst:159 -msgid "Mock objects (from https://docs.python.org/3/library/unittest.mock.html) can be very useful in building unit tests for special / difficult cases, but they can also lead to complex and confusing coding situations. One good use for mocks would be in simulating an API. As for 'six', the 'mock' python package is bundled with Ansible (use ``import units.compat.mock``)." -msgstr "(https://docs.python.org/3/library/unittest.mock.html_ からの) モックオブジェクトは、特殊なケースや困難なケースのユニットテストを構築するのに非常に便利ですが、複雑で理解しづらいコーディングになってしまうこともあります。モックの使用方法として適切なものの 1 つに、API のシミュレートがあります。Python パッケージの「six」、「mock」は、Ansible にバンドルされています (``import units.compat.mock`` を使用)。" +#: ../../rst/dev_guide/testing_integration.rst:43 +msgid "You can also call ``ansible-test`` with the full path:" +msgstr "完全パスで ``ansible-test`` を呼び出すこともできます。" -#: ../../rst/dev_guide/testing_units_modules.rst:166 -msgid "Ensuring failure cases are visible with mock objects" -msgstr "モックオブジェクトで障害ケースを確実に可視化" +#: ../../rst/dev_guide/testing_integration.rst:50 +msgid "integration_config.yml" +msgstr "integration_config.yml" -#: ../../rst/dev_guide/testing_units_modules.rst:168 -msgid "Functions like :meth:`module.fail_json` are normally expected to terminate execution. When you run with a mock module object this doesn't happen since the mock always returns another mock from a function call. You can set up the mock to raise an exception as shown above, or you can assert that these functions have not been called in each test. For example:" -msgstr ":meth:`module.fail_json` などの関数は、通常、実行を終了することが期待されます。モックモジュールオブジェクトを使用して実行すると、モックは常に関数呼び出しから別のモックを返すため、このようなことは起こりません。上記のように例外を発生させるようにモックを設定することもできますし、各テストでこれらの関数が呼び出されていないことをアサートすることもできます。以下に例を示します。" +#: ../../rst/dev_guide/testing_integration.rst:52 +msgid "Making your own version of ``integration_config.yml`` can allow for setting some tunable parameters to help run the tests better in your environment. Some tests (for example, cloud tests) will only run when access credentials are provided. For more information about supported credentials, refer to the various ``cloud-config-*.template`` files in the ``test/integration/`` directory." +msgstr "自身で作成した ``integration_config.yml`` があると、一部の調整可能なパラメーターを設定して、環境により適切にテストを実行できます。一部のテスト (クラウドテストなど) は、アクセス認証情報が提供されている場合にのみ実行されます。サポート対象の認証情報の詳細は、``test/integration/`` ディレクトリーでさまざまな ``cloud-config-*.template`` ファイルを参照してください。" -#: ../../rst/dev_guide/testing_units_modules.rst:179 -msgid "This applies not only to calling the main module but almost any other function in a module which gets the module object." -msgstr "これは、メインモジュールを呼び出す場合だけでなく、モジュールオブジェクトを取得するモジュール内の他のほとんどの関数を呼び出す場合にも適用されます。" +#: ../../rst/dev_guide/testing_integration.rst:61 +msgid "Some tests assume things like hg, svn, and git are installed, and in path. Some tests (such as those for Amazon Web Services) need separate definitions, which will be covered later in this document." +msgstr "一部のテストでは、hg、svn、git などがインストールされ、パスにあることを前提としています。一部のテスト (Amazon Web Services のテストなど) には個別の定義が必要です。これについては、このドキュメントの後半で説明します。" -#: ../../rst/dev_guide/testing_units_modules.rst:184 -msgid "Mocking of the actual module" -msgstr "実際のモジュールのモック化" +#: ../../rst/dev_guide/testing_integration.rst:65 +msgid "(Complete list pending)" +msgstr "(完全はリストは後日追加されます)" -#: ../../rst/dev_guide/testing_units_modules.rst:186 -msgid "The setup of an actual module is quite complex (see `Passing Arguments`_ below) and often isn't needed for most functions which use a module. Instead you can use a mock object as the module and create any module attributes needed by the function you are testing. If you do this, beware that the module exit functions need special handling as mentioned above, either by throwing an exception or ensuring that they haven't been called. For example:" -msgstr "実際のモジュールの設定は非常に複雑で (以下の `引数の渡し方`_ を参照)、モジュールを使用するほとんどの機能には必要ありません。モックオブジェクトをモジュールとして使用する代わりに、テストする関数で必要なモジュール属性を作成できます。この場合、モジュールの終了関数は、上述のように、例外を発生させるか、呼び出されていないことを確認するなど、特別な処理が必要になることに注意してください。以下に例を示します。" +#: ../../rst/dev_guide/testing_integration.rst:68 +msgid "Non-destructive Tests" +msgstr "非破壊テスト" -#: ../../rst/dev_guide/testing_units_modules.rst:207 -msgid "API definition with unit test cases" -msgstr "ユニットテストケースでの API 定義" +#: ../../rst/dev_guide/testing_integration.rst:70 +msgid "These tests will modify files in subdirectories, but will not do things that install or remove packages or things outside of those test subdirectories. They will also not reconfigure or bounce system services." +msgstr "これらのテストはサブディレクトリー内のファイルを修正しますが、パッケージやテストのサブディレクトリー以外にあるものをインストールしたり削除したりするようなことはしません。また、システムサービスの再設定やバウンスも行いません。" -#: ../../rst/dev_guide/testing_units_modules.rst:209 -msgid "API interaction is usually best tested with the function tests defined in Ansible's integration testing section, which run against the actual API. There are several cases where the unit tests are likely to work better." -msgstr "API の対話は通常、実際の API に対して実行する Ansible の統合テストセクションで定義された関数テストでテストを行うのが最適です。ユニットテストが適切に機能する可能性があります。" +#: ../../rst/dev_guide/testing_integration.rst:73 +msgid "Running integration tests within containers" +msgstr "コンテナー内での統合テストの実行" -#: ../../rst/dev_guide/testing_units_modules.rst:214 -msgid "Defining a module against an API specification" -msgstr "API の仕様に対してモジュールを定義" +#: ../../rst/dev_guide/testing_integration.rst:75 +msgid "To protect your system from any potential changes caused by integration tests, and to ensure a sensible set of dependencies are available we recommend that you always run integration tests with the ``--docker`` option, for example ``--docker ubuntu2004``. See the `list of supported container images `_ for options (the ``default`` image is used for sanity and unit tests, as well as for platform independent integration tests such as those for cloud modules)." +msgstr "統合テストによる潜在的な変更からシステムを守り、適切な依存関係セットが利用可能になるようにするには、常に ``--docker`` オプションをつけて統合テストを実行することが推奨されます (``--docker ubuntu2004`` など)。オプションについては、`list of supported container images `_を参照してください (``default`` イメージは、健全性テストとユニットテスト、およびクラウドモジュールなどのプラットフォームに依存しない統合テストに使用されます)。" -#: ../../rst/dev_guide/testing_units_modules.rst:216 -msgid "This case is especially important for modules interacting with web services, which provide an API that Ansible uses but which are beyond the control of the user." -msgstr "このケースは、Ansible が使用する API を提供しているが、ユーザーの制御が及ばない Web サービスと対話するモジュールにとって特に重要になります。" +#: ../../rst/dev_guide/testing_integration.rst:77 +msgid "Run as follows for all POSIX platform tests executed by our CI system in a Fedora 34 container:" +msgstr "Fedora 34 コンテナーで CI システムによって実行されるすべての POSIX プラットフォームテストに対して次のように実行します。" -#: ../../rst/dev_guide/testing_units_modules.rst:219 -msgid "By writing a custom emulation of the calls that return data from the API, we can ensure that only the features which are clearly defined in the specification of the API are present in the message. This means that we can check that we use the correct parameters and nothing else." -msgstr "API からデータを返す呼び出しのカスタムエミュレーションを書くことで、API の仕様で明確に定義されている機能のみがメッセージに含まれていることを確認できます。つまり、正しいパラメーターを使用しているかどうかを確認し、それ以外は何も使用していないことを確認することができます。" +#: ../../rst/dev_guide/testing_integration.rst:83 +msgid "You can target a specific tests as well, such as for individual modules:" +msgstr "個々のモジュールなど、特定のテストを対象とすることもできます。" + +#: ../../rst/dev_guide/testing_integration.rst:89 +msgid "You can use the ``-v`` option to make the output more verbose:" +msgstr "``-v`` オプションを使用すると、出力をさらに詳細にすることができます。" + +#: ../../rst/dev_guide/testing_integration.rst:95 +msgid "Use the following command to list all the available targets:" +msgstr "利用可能なターゲットの一覧を表示するには、以下のコマンドを実行します。" + +#: ../../rst/dev_guide/testing_integration.rst:101 +msgid "Bash users" +msgstr "Bash ユーザー" + +#: ../../rst/dev_guide/testing_integration.rst:103 +msgid "If you use ``bash`` with ``argcomplete``, obtain a full list by doing: ``ansible-test integration ``" +msgstr "``bash`` を ``argcomplete`` とともに使用する場合は、``ansible-test integration `` を実行して完全な一覧を取得します。" + +#: ../../rst/dev_guide/testing_integration.rst:106 +msgid "Destructive Tests" +msgstr "破壊テスト" + +#: ../../rst/dev_guide/testing_integration.rst:108 +msgid "These tests are allowed to install and remove some trivial packages. You will likely want to devote these to a virtual environment, such as Docker. They won't reformat your filesystem:" +msgstr "これらのテストでは、いくつかの簡単なパッケージをインストールおよび削除できます。これらを Docker などの仮想環境専用にすることが推奨されます。これらは、ファイルシステムを再フォーマットしません。" + +#: ../../rst/dev_guide/testing_integration.rst:116 +msgid "Windows Tests" +msgstr "Windows テスト" + +#: ../../rst/dev_guide/testing_integration.rst:118 +msgid "These tests exercise the ``winrm`` connection plugin and Windows modules. You'll need to define an inventory with a remote Windows Server to use for testing, and enable PowerShell Remoting to continue." +msgstr "これらのテストは、``winrm`` connection プラグインと Windows モジュールに従います。テストに使用するリモート Windows Server を持つインベントリーを定義し、PowerShell Remoting を継続できるようにする必要があります。" + +#: ../../rst/dev_guide/testing_integration.rst:122 +msgid "Running these tests may result in changes to your Windows host, so don't run them against a production/critical Windows environment." +msgstr "これらのテストを実行すると、Windows ホストが変更になる可能性があるため、実稼働環境や重要な Windows 環境では実行しないでください。" + +#: ../../rst/dev_guide/testing_integration.rst:125 +msgid "Enable PowerShell Remoting (run on the Windows host by a Remote Desktop):" +msgstr "PowerShell Remoting を有効にします (リモートデスクトップを介して Windows ホストで実行します)。" + +#: ../../rst/dev_guide/testing_integration.rst:131 +msgid "Define Windows inventory:" +msgstr "Windows インベントリーを定義します。" + +#: ../../rst/dev_guide/testing_integration.rst:138 +msgid "Run the Windows tests executed by our CI system:" +msgstr "CI システムで実行する Windows テストを実行します。" + +#: ../../rst/dev_guide/testing_integration.rst:145 +msgid "Tests in containers" +msgstr "コンテナーでのテスト" + +#: ../../rst/dev_guide/testing_integration.rst:147 +msgid "If you have a Linux system with Docker or Podman installed, running integration tests using the same containers used by the Ansible continuous integration (CI) system is recommended." +msgstr "DockerまたはPodman がインストールされた Linux システムをお持ちの場合は、Ansible の継続的統合 (CI) システムで使用されているものと同じコンテナーを使用して統合テストを実行することが推奨されます。" + +#: ../../rst/dev_guide/testing_integration.rst:150 +#: ../../rst/dev_guide/testing_running_locally.rst:279 +msgid "Podman" +msgstr "Podman" + +#: ../../rst/dev_guide/testing_integration.rst:152 +msgid "By default, Podman will only be used if the Docker CLI is not installed. If you have Docker installed but want to use Podman, you can change this behavior by setting the environment variable ``ANSIBLE_TEST_PREFER_PODMAN``." +msgstr "デフォルトで、Podman は Docker CLI がインストールされていない場合にのみ使用されます。Docker がインストールされていて Podman を使用する必要がある場合は、環境変数 ``ANSIBLE_TEST_PREFER_PODMAN`` を設定してこの動作を変更できます。" + +#: ../../rst/dev_guide/testing_integration.rst:155 +msgid "Docker on non-Linux" +msgstr "Linux 以外の Docker" + +#: ../../rst/dev_guide/testing_integration.rst:157 +msgid "Using Docker Engine to run Docker on a non-Linux host (such as macOS) is not recommended. Some tests may fail, depending on the image used for testing. Using the ``--docker-privileged`` option when running ``integration`` (not ``network-integration`` or ``windows-integration``) may resolve the issue." +msgstr "Docker Engine を使用して (macOS などの) Linux 以外のホストで Docker を実行することは推奨されません。テストに使用されるイメージによっては、一部のテストが失敗する可能性があります。(``network-integration`` または ``windows-integration``ではなく) ``integration`` の実行時に ``--docker-privileged`` オプションを使用すると問題が解決する可能性があります。" + +#: ../../rst/dev_guide/testing_integration.rst:162 +msgid "Running Integration Tests" +msgstr "統合テストの実行" + +#: ../../rst/dev_guide/testing_integration.rst:164 +msgid "To run all CI integration test targets for POSIX platforms in a Ubuntu 18.04 container:" +msgstr "Ubuntu 18.04 コンテナー内の POSIX プラットフォームに CI 統合テストターゲットすべてを実行するには、次のコマンドを実行します。" + +#: ../../rst/dev_guide/testing_integration.rst:170 +msgid "You can also run specific tests or select a different Linux distribution. For example, to run tests for the ``ping`` module on a Ubuntu 18.04 container:" +msgstr "特定のテストを実行することも、別の Linux ディストリビューションを選択することもできます。たとえば、Ubuntu 18.04 コンテナーで ``ping`` モジュールのテストを実行するには、次を実行します。" + +#: ../../rst/dev_guide/testing_integration.rst:180 +msgid "Container Images" +msgstr "コンテナーイメージ" + +#: ../../rst/dev_guide/testing_integration.rst:182 +msgid "Container images are updated regularly. To see the current list of container images:" +msgstr "コンテナーイメージは定期的に更新されます。現在のコンテナーイメージ一覧を表示するには、以下を実行します。" + +#: ../../rst/dev_guide/testing_integration.rst:188 +msgid "The list is under the **target docker images and supported python version** heading." +msgstr "この一覧は、**target docker images and supported python version** の見出しの下にあります。" + +#: ../../rst/dev_guide/testing_integration.rst:191 +msgid "Other configuration for Cloud Tests" +msgstr "クラウドテストのその他の設定" + +#: ../../rst/dev_guide/testing_integration.rst:193 +msgid "In order to run some tests, you must provide access credentials in a file named ``cloud-config-aws.yml`` or ``cloud-config-cs.ini`` in the test/integration directory. Corresponding .template files are available for for syntax help. The newer AWS tests now use the file test/integration/cloud-config-aws.yml" +msgstr "test/integration ディレクトリーにある ``cloud-config-aws.yml`` または ``cloud-config-cs.ini`` という名前のファイルにあるアクセス認証情報を指定する必要があります。構文ヘルプでは、対応する .template ファイルを利用できます。新しい AWS テストでは、test/integration/cloud-config-aws.yml ファイルが使用されるようになりました。" + +#: ../../rst/dev_guide/testing_integration.rst:199 +msgid "IAM policies for AWS" +msgstr "AWS の IAM ポリシー" + +#: ../../rst/dev_guide/testing_integration.rst:201 +msgid "Ansible needs fairly wide ranging powers to run the tests in an AWS account. This rights can be provided to a dedicated user. These need to be configured before running the test." +msgstr "Ansible は、AWS アカウントでテストを実行するために非常に幅広い権限が必要になります。この権限は専用のユーザーに提供できます。これらの権限は、テストを実行する前に設定する必要があります。" + +#: ../../rst/dev_guide/testing_integration.rst:204 +msgid "testing-policies" +msgstr "testing-policies" + +#: ../../rst/dev_guide/testing_integration.rst:206 +msgid "The GitHub repository `mattclay/aws-terminator `_ contains two sets of policies used for all existing AWS module integratoin tests. The `hacking/aws_config/setup_iam.yml` playbook can be used to setup two groups:" +msgstr "GitHub リポジトリー `mattclay/aws-terminator `_ には、既存の AWS モジュールの統合テストに使用するポリシーのセットが 2 つ含まれます。Playbook `hacking/aws_config/setup_iam.yml` を使用すると、2 つのグループを設定できます。" + +#: ../../rst/dev_guide/testing_integration.rst:210 +msgid "`ansible-integration-ci` will have the policies applied necessary to run any integration tests not marked as `unsupported` and are designed to mirror those used by Ansible's CI." +msgstr "`ansible-integration-ci` は、統合テストの実行に必要となるポリシーを適用すると共に、`unsupported` と識別されず、Ansible の CI で使用されるミラーリング用に設計されています。" + +#: ../../rst/dev_guide/testing_integration.rst:213 +msgid "`ansible-integration-unsupported` will have the additional policies applied necessary to run the integration tests marked as `unsupported` including tests for managing IAM roles, users and groups." +msgstr "`ansible-integration-unsupported` は、IAM ロール、ユーザー、およびグループを管理するためのテストを含む `unsupported` とマークされた統合テストの実行に必要な追加のポリシーが適用されます。" + +#: ../../rst/dev_guide/testing_integration.rst:217 +msgid "Once the groups have been created, you'll need to create a user and make the user a member of these groups. The policies are designed to minimize the rights of that user. Please note that while this policy does limit the user to one region, this does not fully restrict the user (primarily due to the limitations of the Amazon ARN notation). The user will still have wide privileges for viewing account definitions, and will also able to manage some resources that are not related to testing (for example, AWS lambdas with different names). Tests should not be run in a primary production account in any case." +msgstr "グループが作成されたら、ユーザーを作成して、そのユーザーをこれらのグループのメンバーにする必要があります。ポリシーは、そのユーザーの権利を最小限にするためのものです。このポリシーでは、ユーザーを 1 つの地域に限定していますが、これはユーザーを完全には制限していないことに注意してください (主に Amazon ARN 表記の制限によるものです)。このユーザーは、アカウント定義を閲覧するための広い権限を持っており、テストに関係のないいくつかのリソース (たとえば、異なる名前の AWS ラムダ) を管理することもできます。どのような場合でも、テストを実稼働環境用のプライマリーアカウントで実行すべきではありません。" + +#: ../../rst/dev_guide/testing_integration.rst:225 +msgid "Other Definitions required" +msgstr "その他に必要な定義" + +#: ../../rst/dev_guide/testing_integration.rst:227 +msgid "Apart from installing the policy and giving it to the user identity running the tests, a lambda role `ansible_integration_tests` has to be created which has lambda basic execution privileges." +msgstr "ポリシーをインストールして、テストを実行しているユーザ ID にそれを付与することとは別に、ラムダロール `ansible_integration_tests` を作成する必要があります。これは、ラムダの基本的な実行権限を持ちます。" + +#: ../../rst/dev_guide/testing_integration.rst:233 +msgid "Network Tests" +msgstr "ネットワークテスト" + +#: ../../rst/dev_guide/testing_integration.rst:235 +msgid "For guidance on writing network test see :ref:`testing_resource_modules`." +msgstr "ネットワークテストの書き込みに関する情報は、「:ref:`testing_resource_modules`」を参照してください。" -#: ../../rst/dev_guide/testing_units_modules.rst:225 -msgid "*Example: in rds_instance unit tests a simple instance state is defined*:" -msgstr "*例: rds_instance ユニットテストでは、単純なインスタンスの状態が定義されています*。" +#: ../../rst/dev_guide/testing_integration.rst:239 +msgid "Where to find out more" +msgstr "その他の詳細情報" -#: ../../rst/dev_guide/testing_units_modules.rst:235 -msgid "This is then used to create a list of states:" -msgstr "次に、これを使用して状態のリストを作成します。" +#: ../../rst/dev_guide/testing_integration.rst:241 +msgid "If you'd like to know more about the plans for improving testing Ansible, join the `Testing Working Group `_." +msgstr "Ansible テストを改善する詳細な計画を確認したい場合は、`Testing Working Group `_ にご参加ください。" -#: ../../rst/dev_guide/testing_units_modules.rst:252 -msgid "These states are then used as returns from a mock object to ensure that the ``await`` function waits through all of the states that would mean the RDS instance has not yet completed configuration:" -msgstr "これらの状態は、モックオブジェクトからの戻り値として使用され、``await`` 関数は、RDS インスタンスがまだ設定を完了しないことを意味するすべての状態を待機します。" +#: ../../rst/dev_guide/testing_pep8.rst:6 +msgid "PEP 8" +msgstr "PEP 8" -#: ../../rst/dev_guide/testing_units_modules.rst:262 -msgid "By doing this we check that the ``await`` function will keep waiting through potentially unusual that it would be impossible to reliably trigger through the integration tests but which happen unpredictably in reality." -msgstr "これを実行することで、統合テストでは確実に誘発させることができないにもかかわらず、現実には予測できないような、潜在的に異常なことが起こる可能性がある場合に ``await`` 関数が待機し続けるかどうかを確認します。" +#: ../../rst/dev_guide/testing_pep8.rst:8 +msgid "This page has moved to :ref:`testing_pep8`." +msgstr "このページは :ref:`testing_pep8` に移動しました。" -#: ../../rst/dev_guide/testing_units_modules.rst:267 -msgid "Defining a module to work against multiple API versions" -msgstr "複数の API バージョンに対して動作するモジュールの定義" +#: ../../rst/dev_guide/testing_running_locally.rst:7 +msgid "Testing Ansible and Collections" +msgstr "Ansible とコレクションのテスト" -#: ../../rst/dev_guide/testing_units_modules.rst:269 -msgid "This case is especially important for modules interacting with many different versions of software; for example, package installation modules that might be expected to work with many different operating system versions." -msgstr "このケースは、多くの異なるバージョンのソフトウェアと対話するモジュールにとって特に重要です。たとえば、さまざまなオペレーティングシステムのバージョンと動作することが想定されるパッケージインストールモジュールなどです。" +#: ../../rst/dev_guide/testing_running_locally.rst:9 +msgid "This document describes how to run tests using ``ansible-test``." +msgstr "このドキュメントでは、``ansible-test`` を使用してテストを実行する方法について説明します。" -#: ../../rst/dev_guide/testing_units_modules.rst:273 -msgid "By using previously stored data from various versions of an API we can ensure that the code is tested against the actual data which will be sent from that version of the system even when the version is very obscure and unlikely to be available during testing." -msgstr "さまざまなバージョンの API から、以前に保存されたデータを使用することで、バージョンが非常に曖昧でテスト中に利用できそうにない場合でも、そのバージョンのシステムから送信される実際のデータに対してコードがテストできるようになります。" +#: ../../rst/dev_guide/testing_running_locally.rst:17 +msgid "Before running ``ansible-test``, set up your environment for :ref:`testing_an_ansible_collection` or :ref:`testing_ansible_core`, depending on which scenario applies to you." +msgstr "``ansible-test`` を実行する前に、該当するシナリオに応じて :ref:`testing_an_ansible_collection` または :ref:`testing_ansible_core` の環境を設定します。" -#: ../../rst/dev_guide/testing_units_modules.rst:278 -msgid "Ansible special cases for unit testing" -msgstr "Ansible ユニットテストの特殊なケース" +#: ../../rst/dev_guide/testing_running_locally.rst:22 +msgid "If you use ``git`` for version control, make sure the files you are working with are not ignored by ``git``. If they are, ``ansible-test`` will ignore them as well." +msgstr "萬ジョン管理に ``git`` を使用する場合、``git`` が作業中のファイルを無視しないことを確認してください。無視する場合、``ansible-test`` も同様に無視します。" -#: ../../rst/dev_guide/testing_units_modules.rst:280 -msgid "There are a number of special cases for unit testing the environment of an Ansible module. The most common are documented below, and suggestions for others can be found by looking at the source code of the existing unit tests or asking on the Ansible chat channel or mailing lists. For more information on joining chat channels and subscribing to mailing lists, see :ref:`communication`." -msgstr "Ansible モジュールの環境に対してユニットテストを行うための特別なケースがいくつかあります。最も一般的なものを以下に示します。他の人への提案は、既存のユニットテストのソースコードを確認するか、Ansible チャットチャンネルまたはメーリングリストで質問することで見つけることができます。チャットチャンネルへの参加およびメーリングリストのサブスクライブの詳細については、:ref:`communication`を参照してください。" +#: ../../rst/dev_guide/testing_running_locally.rst:28 +msgid "Testing an Ansible Collection" +msgstr "Ansible コレクションのテスト" -#: ../../rst/dev_guide/testing_units_modules.rst:286 -msgid "Module argument processing" -msgstr "モジュール引数処理" +#: ../../rst/dev_guide/testing_running_locally.rst:30 +msgid "If you are testing an Ansible Collection, you need a copy of the collection, preferably a git clone. For example, to work with the ``community.windows`` collection, follow these steps:" +msgstr "Ansible コレクションをテストする場合は、コレクションの複製 (できれば git クローン) が必要です。たとえば ``community.windows`` コレクションで作業する場合、次の手順に従います。" -#: ../../rst/dev_guide/testing_units_modules.rst:288 -msgid "There are two problems with running the main function of a module:" -msgstr "モジュールの主な関数の実行には、以下の 2 つの問題があります。" +#: ../../rst/dev_guide/testing_running_locally.rst:33 +msgid "Clone the collection you want to test into a valid collection root:" +msgstr "テストするコレクションを有効なコレクションルートに複製します。" -#: ../../rst/dev_guide/testing_units_modules.rst:290 -msgid "Since the module is supposed to accept arguments on ``STDIN`` it is a bit difficult to set up the arguments correctly so that the module will get them as parameters." -msgstr "モジュールは ``STDIN`` で引数を受け入れる必要があるため、引数を正しく設定してモジュールがパラメーターとして受け取るようにするのは少し難しくなります。" +#: ../../rst/dev_guide/testing_running_locally.rst:41 +msgid "The path must end with ``/ansible_collections/{collection_namespace}/{collection_name}`` where ``{collection_namespace}`` is the namespace of the collection and ``{collection_name}`` is the collection name." +msgstr "パスは ``/ansible_collections/{collection_namespace}/{collection_name}`` で終わるものとします。この場合の ``{collection_namespace}`` はコレクションの名前空間、``{collection_name}`` はコレクション名です。" -#: ../../rst/dev_guide/testing_units_modules.rst:292 -msgid "All modules should finish by calling either the :meth:`module.fail_json` or :meth:`module.exit_json`, but these won't work correctly in a testing environment." -msgstr "すべてのモジュールは、:meth:`module.fail_json` または :meth:`module.exit_json` を呼び出して終了する必要がありますが、テスト環境では正常に動作しません。" +#: ../../rst/dev_guide/testing_running_locally.rst:44 +msgid "Clone any collections on which the collection depends:" +msgstr "コレクションが依存するコレクションを複製します。" -#: ../../rst/dev_guide/testing_units_modules.rst:296 -msgid "Passing Arguments" -msgstr "引数の渡し方" +#: ../../rst/dev_guide/testing_running_locally.rst:52 +msgid "If your collection has any dependencies on other collections, they must be in the same collection root, since ``ansible-test`` will not use your configured collection roots (or other Ansible configuration)." +msgstr "``ansible-test`` では設定されたコレクションルート (または他の Ansible 設定) は使用されないため、コレクションが他のコレクションに依存している場合、それらは同じコレクションルートにある必要があります。" -#: ../../rst/dev_guide/testing_units_modules.rst:301 -msgid "To pass arguments to a module correctly, use the ``set_module_args`` method which accepts a dictionary as its parameter. Module creation and argument processing is handled through the :class:`AnsibleModule` object in the basic section of the utilities. Normally this accepts input on ``STDIN``, which is not convenient for unit testing. When the special variable is set it will be treated as if the input came on ``STDIN`` to the module. Simply call that function before setting up your module:" -msgstr "モジュールに正しく引数を渡すには、ディクショナリーをパラメーターとして受け付ける ``set_module_args`` メソッドを使用します。モジュールの作成と引数の処理は、ユーティリティーの基本セクションにある :class:`AnsibleModule` オブジェクトによって処理されます。通常は ``STDIN`` で入力を受け付けますが、これはユニットテストには不便です。特殊変数が設定されると、あたかも入力が ``STDIN`` でモジュールに来たかのように扱われます。モジュールをセットアップする前にこの関数を呼び出すだけです。" +#: ../../rst/dev_guide/testing_running_locally.rst:57 +msgid "See the collection's ``galaxy.yml`` for a list of possible dependencies." +msgstr "可能性のある依存関係のリストは、コレクションの ``galaxy.yml`` で確認できます。" -#: ../../rst/dev_guide/testing_units_modules.rst:321 -msgid "Handling exit correctly" -msgstr "終了を適切に処理" +#: ../../rst/dev_guide/testing_running_locally.rst:59 +msgid "Switch to the directory where the collection to test resides:" +msgstr "テストするコレクションが存在するディレクトリーに切り替えます。" -#: ../../rst/dev_guide/testing_units_modules.rst:326 -msgid "The :meth:`module.exit_json` function won't work properly in a testing environment since it writes error information to ``STDOUT`` upon exit, where it is difficult to examine. This can be mitigated by replacing it (and :meth:`module.fail_json`) with a function that raises an exception:" -msgstr ":meth:`module.exit_json` 関数は、終了時にエラー情報を ``STDOUT`` に書き込むため、テスト環境で適切に動作しません。これは検証が困難です。これは、この関数 (および :meth:`module.fail_json`) を、例外を発生させる関数に置き換えることで軽減できます。" +#: ../../rst/dev_guide/testing_running_locally.rst:68 +msgid "Testing ``ansible-core``" +msgstr "``ansible-core`` のテスト" -#: ../../rst/dev_guide/testing_units_modules.rst:338 -msgid "Now you can ensure that the first function called is the one you expected simply by testing for the correct exception:" -msgstr "これで、正しい例外をテストするだけで、最初に呼び出された関数が期待したものであることを確認できるようになりました。" +#: ../../rst/dev_guide/testing_running_locally.rst:70 +msgid "If you are testing ``ansible-core`` itself, you need a copy of the ``ansible-core`` source code, preferably a git clone. Having an installed copy of ``ansible-core`` is not sufficient or required. For example, to work with the ``ansible-core`` source cloned from GitHub, follow these steps:" +msgstr "``ansible-core`` をテストしている場合、``ansible-core`` のソースコードのコピー (できれば git クローン) が必要です。``ansible-core`` のコピーがインストールされているだけでは不十分な場合があり、それが必須ではない場合もあります。たとえば、GitHub から複製された ``ansible-core``ソースを処理する場合、次の手順に従います。" -#: ../../rst/dev_guide/testing_units_modules.rst:353 -msgid "The same technique can be used to replace :meth:`module.fail_json` (which is used for failure returns from modules) and for the ``aws_module.fail_json_aws()`` (used in modules for Amazon Web Services)." -msgstr "同じテクニックを使用して、:meth:`module.fail_json` (モジュールから返る障害に使用) および ``aws_module.fail_json_aws()`` (Amazon Web Services のモジュールに使用) に置き換えることができます。" +#: ../../rst/dev_guide/testing_running_locally.rst:74 +msgid "Clone the ``ansible-core`` repository:" +msgstr "``ansible-core`` リポジトリーのクローンを作成します。" -#: ../../rst/dev_guide/testing_units_modules.rst:358 -msgid "Running the main function" -msgstr "主な関数の実行" +#: ../../rst/dev_guide/testing_running_locally.rst:80 +msgid "Switch to the directory where the ``ansible-core`` source resides:" +msgstr "``ansible-core`` ソースがあるディレクトリーに切り替えます。" -#: ../../rst/dev_guide/testing_units_modules.rst:360 -msgid "If you do want to run the actual main function of a module you must import the module, set the arguments as above, set up the appropriate exit exception and then run the module:" -msgstr "モジュールにおける主な実関数を実行する場合は、モジュールをインポートし、上記のように引数を設定し、適切な終了例外を設定してからモジュールを実行する必要があります。" +#: ../../rst/dev_guide/testing_running_locally.rst:86 +msgid "Add ``ansible-core`` programs to your ``PATH``:" +msgstr "``PATH`` に ``ansible-core`` プログラムを追加します。" -#: ../../rst/dev_guide/testing_units_modules.rst:380 -msgid "Handling calls to external executables" -msgstr "外部実行ファイルへの呼び出しの処理" +#: ../../rst/dev_guide/testing_running_locally.rst:94 +msgid "You can skip this step if you only need to run ``ansible-test``, and not other ``ansible-core`` programs. In that case, simply run ``bin/ansible-test`` from the root of the ``ansible-core`` source." +msgstr "実行する必要があるのが ``ansible-test`` のみで、その他の ``ansible-core`` プログラムは必要なければ、この手順は省略できます。その場合、``ansible-core`` ソースのルートから ``bin/ansible-test`` を実行します。" -#: ../../rst/dev_guide/testing_units_modules.rst:382 -msgid "Module must use :meth:`AnsibleModule.run_command` in order to execute an external command. This method needs to be mocked:" -msgstr "モジュールは、外部コマンドを実行するのに :meth:`AnsibleModule.run_command` を使用する必要があります。このメソッドをモックする必要があります。" +#: ../../rst/dev_guide/testing_running_locally.rst:99 +msgid "If you have an installed version of ``ansible-core`` and are trying to run ``ansible-test`` from your ``PATH``, make sure the program found by your shell is the one from the ``ansible-core`` source:" +msgstr "``ansible-core`` のインストール済みバージョンがあり、自分の ``PATH`` から ``ansible-test`` の実行を試みている場合、シェルによって検出されたプログラムが ``ansible-core`` ソースからのものと一致することを確認してください。" -#: ../../rst/dev_guide/testing_units_modules.rst:385 -msgid "Here is a simple mock of :meth:`AnsibleModule.run_command` (taken from :file:`test/units/modules/packaging/os/test_rhn_register.py`):" -msgstr "以下は、:meth:`AnsibleModule.run_command` (:file:`test/units/modules/packaging/os/test_rhn_register.py` から取得) の簡単なモックです。" +#: ../../rst/dev_guide/testing_running_locally.rst:107 +msgid "Commands" +msgstr "コマンド" -#: ../../rst/dev_guide/testing_units_modules.rst:401 -msgid "A Complete Example" -msgstr "完全な例" +#: ../../rst/dev_guide/testing_running_locally.rst:109 +msgid "The most commonly used test commands are:" +msgstr "最も一般的に使用されるテストコマンドは次のとおりです。" -#: ../../rst/dev_guide/testing_units_modules.rst:403 -msgid "The following example is a complete skeleton that reuses the mocks explained above and adds a new mock for :meth:`Ansible.get_bin_path`:" -msgstr "次の例は、上記で説明したモックを再利用し、:meth:`Ansible.get_bin_path` の新しいモックを追加する完全なスケルトンです。" +#: ../../rst/dev_guide/testing_running_locally.rst:111 +msgid "``ansible-test sanity`` - Run sanity tests (mostly linters and static analysis)." +msgstr "``ansible-test sanity`` - 健全性テスト (主にリンターと静的解析) を実行します。" -#: ../../rst/dev_guide/testing_units_modules.rst:491 -msgid "Restructuring modules to enable testing module set up and other processes" -msgstr "モジュールのセットアップやその他のプロセスのテストを可能にするモジュールの再構築" +#: ../../rst/dev_guide/testing_running_locally.rst:112 +msgid "``ansible-test integration`` - Run integration tests." +msgstr "``ansible-test integration`` - 統合テストを実行します。" -#: ../../rst/dev_guide/testing_units_modules.rst:493 -msgid "Often modules have a ``main()`` function which sets up the module and then performs other actions. This can make it difficult to check argument processing. This can be made easier by moving module configuration and initialization into a separate function. For example:" -msgstr "多くの場合、モジュールをセットアップし、他のアクションを実行する ``main()`` 関数があります。これにより、引数処理を確認するのが困難になる可能性があります。モジュールの設定と初期化を別の関数に移すことで簡単にできます。以下に例を示します。" +#: ../../rst/dev_guide/testing_running_locally.rst:113 +msgid "``ansible-test units`` - Run unit tests." +msgstr "``ansible-test units`` - ユニットテストを実行します。" -#: ../../rst/dev_guide/testing_units_modules.rst:525 -msgid "This now makes it possible to run tests against the module initiation function:" -msgstr "これにより、モジュールの開始関数に対してテストを実行できるようになりました。" +#: ../../rst/dev_guide/testing_running_locally.rst:115 +msgid "Run ``ansible-test --help`` to see a complete list of available commands." +msgstr "``ansible-test --help`` を実行して、使用可能なコマンドの完全なリストを表示します。" -#: ../../rst/dev_guide/testing_units_modules.rst:539 -msgid "See also ``test/units/module_utils/aws/test_rds.py``" -msgstr "「``test/units/module_utils/aws/test_rds.py``」も参照してください。" +#: ../../rst/dev_guide/testing_running_locally.rst:119 +msgid "For detailed help on a specific command, add the ``--help`` option after the command." +msgstr "特定コマンドの詳しいヘルプについては、コマンドの後に ``--help`` オプションを追加します。" -#: ../../rst/dev_guide/testing_units_modules.rst:541 -msgid "Note that the ``argument_spec`` dictionary is visible in a module variable. This has advantages, both in allowing explicit testing of the arguments and in allowing the easy creation of module objects for testing." -msgstr "``argument_spec`` ディクショナリーはモジュール変数に表示されます。これには、引数の明示的なテストを許可し、テスト用にモジュールオブジェクトの作成を簡単に行えるようにする利点があります。" +#: ../../rst/dev_guide/testing_running_locally.rst:122 +msgid "Environments" +msgstr "環境" -#: ../../rst/dev_guide/testing_units_modules.rst:545 -msgid "The same restructuring technique can be valuable for testing other functionality, such as the part of the module which queries the object that the module configures." -msgstr "この再構築の手法は、モジュールが設定したオブジェクトを問い合わせるモジュールの部分など、その他の機能をテストする場合にも役に立ちます。" +#: ../../rst/dev_guide/testing_running_locally.rst:124 +msgid "Most ``ansible-test`` commands support running in one or more isolated test environments to simplify testing." +msgstr "ほとんどの ``ansible-test`` コマンドは、テストを簡単にするために、1 つ以上の分離テスト環境での実行をサポートします。" -#: ../../rst/dev_guide/testing_units_modules.rst:548 -msgid "Traps for maintaining Python 2 compatibility" -msgstr "Python 2 の互換性を維持するためのトラップ" +#: ../../rst/dev_guide/testing_running_locally.rst:127 +msgid "Containers" +msgstr "コンテナー" -#: ../../rst/dev_guide/testing_units_modules.rst:550 -msgid "If you use the ``mock`` library from the Python 2.6 standard library, a number of the assert functions are missing but will return as if successful. This means that test cases should take great care *not* use functions marked as _new_ in the Python 3 documentation, since the tests will likely always succeed even if the code is broken when run on older versions of Python." -msgstr "Python 2.6 標準ライブラリーの ``mock`` ライブラリーを使用している場合は、多くの assert 関数が欠落していますが、成功したかのように返されます。これは、テストケースが、Python 3 のドキュメントで _new_ となっている関数を使用しないよう、細心の注意を払うべきであることを意味します。なぜなら、古いバージョンの Python で実行されたコードが壊れていても、テストは常に成功するからです。" +#: ../../rst/dev_guide/testing_running_locally.rst:129 +msgid "Containers are recommended for running sanity, unit and integration tests, since they provide consistent environments. Unit tests will be run with network isolation, which avoids unintentional dependencies on network resources." +msgstr "コンテナーは一貫した環境を提供するため、健全性テスト、ユニットテスト、統合テストの実行に推奨されます。ユニットテストは、ネットワークリソースへの意図しない依存を回避するため、ネットワークを分離して実行されます。" -#: ../../rst/dev_guide/testing_units_modules.rst:555 -msgid "A helpful development approach to this should be to ensure that all of the tests have been run under Python 2.6 and that each assertion in the test cases has been checked to work by breaking the code in Ansible to trigger that failure." -msgstr "これに役立つ開発アプローチは、すべてのテストが Python 2.6 で実行されていることと、テストケース内の各アサーションが Ansible でコードを壊してその失敗を誘発することで動作することが確認されているという点を確認することです。" +#: ../../rst/dev_guide/testing_running_locally.rst:132 +msgid "The ``--docker`` option runs tests in a container using either Docker or Podman." +msgstr "``--docker`` オプションは、Docker または Podman を使用してコンテナーでテストを実行します。" -#: ../../rst/dev_guide/testing_units_modules.rst:559 -msgid "Maintain Python 2.6 compatibility" -msgstr "Python 2.6 互換性の維持" +#: ../../rst/dev_guide/testing_running_locally.rst:136 +msgid "If both Docker and Podman are installed, Docker will be used. To override this, set the environment variable ``ANSIBLE_TEST_PREFER_PODMAN`` to any non-empty value." +msgstr "Docker と Podman の両方がインストールされている場合は、Docker が使用されます。これをオーバーライドするには、環境変数 ``ANSIBLE_TEST_PREFER_PODMAN`` を空でない任意の値に設定します。" -#: ../../rst/dev_guide/testing_units_modules.rst:561 -msgid "Please remember that modules need to maintain compatibility with Python 2.6 so the unittests for modules should also be compatible with Python 2.6." -msgstr "モジュールは Python 2.6 との互換性を維持する必要があるため、モジュールのユニットテストも、Python 2.6 との互換性を維持する必要があることに注意してください。" +#: ../../rst/dev_guide/testing_running_locally.rst:140 +msgid "Choosing a container" +msgstr "コンテナーの選択" -#: ../../rst/dev_guide/testing_units_modules.rst:568 -msgid "Ansible unit tests documentation" -msgstr "Ansible ユニットテストドキュメント" +#: ../../rst/dev_guide/testing_running_locally.rst:142 +msgid "Without an additional argument, the ``--docker`` option uses the ``default`` container. To use another container, specify it immediately after the ``--docker`` option." +msgstr "追加の引数がなければ、``--docker`` オプションは ``default`` コンテナーを使用します。別のコンテナーを使用するには、``--docker`` オプションのすぐ後に指定します。" -#: ../../rst/dev_guide/testing_units_modules.rst:572 -msgid "Get started developing a module" -msgstr "モジュール開発を始める" +#: ../../rst/dev_guide/testing_running_locally.rst:147 +msgid "The ``default`` container is recommended for all sanity and unit tests." +msgstr "``default`` コンテナーは、すべての健全性テストとユニットテストに推奨されます。" -#: ../../rst/dev_guide/testing_units_modules.rst:581 -msgid "`Testing Your Code (from The Hitchhiker's Guide to Python!) `_" -msgstr "`Testing Your Code (from The Hitchhiker's Guide to Python!) `_" +#: ../../rst/dev_guide/testing_running_locally.rst:149 +msgid "To see the list of supported containers, use the ``--help`` option with the ``ansible-test`` command you want to use." +msgstr "サポート対象コンテナーのリストを表示するには、使用する ``ansible-test`` コマンドで ``--help`` オプションを使用します。" -#: ../../rst/dev_guide/testing_units_modules.rst:582 -msgid "General advice on testing Python code" -msgstr "Python コードのテストに関する一般的なアドバイス" +#: ../../rst/dev_guide/testing_running_locally.rst:153 +msgid "The list of available containers is dependent on the ``ansible-test`` command you are using." +msgstr "利用可能なコンテナーのリストは、使用している ``ansible-test`` コマンドにより異なります。" -#: ../../rst/dev_guide/testing_units_modules.rst:584 -msgid "`Uncle Bob's many videos on YouTube `_" -msgstr "`Uncle Bob's many videos on YouTube `_" +#: ../../rst/dev_guide/testing_running_locally.rst:155 +msgid "You can also specify your own container. When doing so, you will need to indicate the Python version in the container with the ``--python`` option." +msgstr "独自のコンテナーを指定することもできます。その場合は、``--python`` オプションでコンテナー内の Python バージョンを示す必要があります。" -#: ../../rst/dev_guide/testing_units_modules.rst:584 -msgid "Unit testing is a part of the of various philosophies of software development, including Extreme Programming (XP), Clean Coding. Uncle Bob talks through how to benefit from this" -msgstr "ユニットテストは、Extreme Programming (XP)、クリーンコーディングを含むソフトウェア開発のさまざまな哲学の一部です。Uncle Bob は、どのようにしてこの恩恵を受けることができるのかを説明します。" +#: ../../rst/dev_guide/testing_running_locally.rst:159 +msgid "Custom containers" +msgstr "カスタムコンテナー" -#: ../../rst/dev_guide/testing_units_modules.rst:586 -msgid "`\"Why Most Unit Testing is Waste\" `_" -msgstr "`\"Why Most Unit Testing is Waste\" `_" +#: ../../rst/dev_guide/testing_running_locally.rst:161 +msgid "When building custom containers, keep in mind the following requirements:" +msgstr "カスタムコンテナーを構築する際には、次の要件に注意してください。" -#: ../../rst/dev_guide/testing_units_modules.rst:587 -msgid "An article warning against the costs of unit testing" -msgstr "ユニットテストの大半が無駄である理由" +#: ../../rst/dev_guide/testing_running_locally.rst:163 +msgid "The ``USER`` should be ``root``." +msgstr "``USER`` は ``root`` にする必要があります。" -#: ../../rst/dev_guide/testing_units_modules.rst:588 -msgid "`'A Response to \"Why Most Unit Testing is Waste\"' `_" -msgstr "`'A Response to \"Why Most Unit Testing is Waste\"' `_" +#: ../../rst/dev_guide/testing_running_locally.rst:164 +msgid "Use an ``init`` process, such as ``systemd``." +msgstr "``systemd`` などの ``init`` プロセスを使用します。" -#: ../../rst/dev_guide/testing_units_modules.rst:589 -msgid "An response pointing to how to maintain the value of unit tests" -msgstr "ユニットテストの価値を維持する方法を指摘した回答" +#: ../../rst/dev_guide/testing_running_locally.rst:165 +msgid "Include ``sshd`` and accept connections on the default port of ``22``." +msgstr "``sshd`` を含め、``22`` のデフォルトポートで接続を許可します。" -#: ../../rst/dev_guide/testing_validate-modules.rst:11 -msgid "Python program to help test or validate Ansible modules." -msgstr "Ansible モジュールのテストまたは検証に役立つ Python プログラム。" +#: ../../rst/dev_guide/testing_running_locally.rst:166 +msgid "Include a POSIX compatible ``sh`` shell which can be found on ``PATH``." +msgstr "``PATH`` で見つけることができる POSIX 五感 ``sh`` シェルを含めます。" -#: ../../rst/dev_guide/testing_validate-modules.rst:13 -msgid "``validate-modules`` is one of the ``ansible-test`` Sanity Tests, see :ref:`testing_sanity` for more information." -msgstr "``validate-modules`` は、健全性テスト ``ansible-test`` のいずれかです。詳細は、「:ref:`testing_sanity`」を参照してください。" +#: ../../rst/dev_guide/testing_running_locally.rst:167 +msgid "Include a ``sleep`` utility which runs as a subprocess." +msgstr "サブプロセスとして実行される ``sleep`` ユーティリティーを含めます。" -#: ../../rst/dev_guide/testing_validate-modules.rst:15 -msgid "Originally developed by Matt Martz (@sivel)" -msgstr "本プログラムは、元々 Matt Martz (@sivel) 氏により開発されました。" +#: ../../rst/dev_guide/testing_running_locally.rst:168 +msgid "Include a supported version of Python." +msgstr "サポート対象の Python バージョンを含めます。" -#: ../../rst/dev_guide/testing_validate-modules.rst:19 -msgid "Usage" -msgstr "使用法" +#: ../../rst/dev_guide/testing_running_locally.rst:169 +msgid "Avoid using the ``VOLUME`` statement." +msgstr "``VOLUME`` statement の使用は避けてください。" -#: ../../rst/dev_guide/testing_validate-modules.rst:28 -msgid "Help" -msgstr "ヘルプ" +#: ../../rst/dev_guide/testing_running_locally.rst:172 +msgid "Docker and SELinux" +msgstr "Docker と SELinux" -#: ../../rst/dev_guide/testing_validate-modules.rst:53 -msgid "Extending validate-modules" -msgstr "validate-modules の拡張" +#: ../../rst/dev_guide/testing_running_locally.rst:174 +msgid "Using Docker on a host with SELinux may require setting the system in permissive mode. Consider using Podman instead." +msgstr "SELinux を使用するホストで Docker を使用するには、システムを permissive モードに設定する必要がある場合があります。代わりに Podman の使用を検討してください。" -#: ../../rst/dev_guide/testing_validate-modules.rst:55 -msgid "The ``validate-modules`` tool has a `schema.py `_ that is used to validate the YAML blocks, such as ``DOCUMENTATION`` and ``RETURNS``." -msgstr "``validate-modules`` ツールには、``DOCUMENTATION``、``RETURNS`` などの YAML ブロックの検証に使用される `schema.py `_ があります。" +#: ../../rst/dev_guide/testing_running_locally.rst:178 +msgid "Docker Desktop with WSL2" +msgstr "Docker Desktop と WSL2" -#: ../../rst/dev_guide/testing_validate-modules.rst:59 -msgid "Codes" -msgstr "コード" +#: ../../rst/dev_guide/testing_running_locally.rst:180 +msgid "These instructions explain how to use ``ansible-test`` with WSL2 and Docker Desktop *without* ``systemd`` support." +msgstr "これらの指示は、``systemd`` サポート*なし*で、``ansible-test`` で WSL2 と Docker Desktop を使用する方法について説明しています。" -#: ../../rst/dev_guide/testing_validate-modules.rst:62 -msgid "**Error Code**" -msgstr "**エラーコード**" +#: ../../rst/dev_guide/testing_running_locally.rst:184 +msgid "If your WSL2 environment includes ``systemd`` support, these steps are not required." +msgstr "WSL2 環境に ``systemd`` サポートが含まれている場合、これらの手順は必要ありません。" -#: ../../rst/dev_guide/testing_validate-modules.rst:62 -msgid "**Type**" -msgstr "**タイプ**" +#: ../../rst/dev_guide/testing_running_locally.rst:189 +msgid "Configuration requirements" +msgstr "設定要件" -#: ../../rst/dev_guide/testing_validate-modules.rst:62 -msgid "**Level**" -msgstr "**レベル**" +#: ../../rst/dev_guide/testing_running_locally.rst:191 +msgid "Open Docker Desktop and go to the **Settings** screen." +msgstr "Docker Desktop を開き、**Settings** 画面に移動します。" -#: ../../rst/dev_guide/testing_validate-modules.rst:62 -msgid "**Sample Message**" -msgstr "**開始メッセージ**" +#: ../../rst/dev_guide/testing_running_locally.rst:192 +msgid "On the the **General** tab:" +msgstr "**General** タブで、以下を行います。" -#: ../../rst/dev_guide/testing_validate-modules.rst:64 -msgid "ansible-deprecated-module" -msgstr "ansible-deprecated-module" +#: ../../rst/dev_guide/testing_running_locally.rst:194 +msgid "Uncheck the **Start Docker Desktop when you log in** checkbox." +msgstr "**Start Docker Desktop when you log in** チェックボックスをオフにします。" -#: ../../rst/dev_guide/testing_validate-modules.rst:64 -#: ../../rst/dev_guide/testing_validate-modules.rst:65 -#: ../../rst/dev_guide/testing_validate-modules.rst:66 -#: ../../rst/dev_guide/testing_validate-modules.rst:68 -#: ../../rst/dev_guide/testing_validate-modules.rst:69 -#: ../../rst/dev_guide/testing_validate-modules.rst:70 -#: ../../rst/dev_guide/testing_validate-modules.rst:71 -#: ../../rst/dev_guide/testing_validate-modules.rst:72 -#: ../../rst/dev_guide/testing_validate-modules.rst:73 -#: ../../rst/dev_guide/testing_validate-modules.rst:74 -#: ../../rst/dev_guide/testing_validate-modules.rst:75 -#: ../../rst/dev_guide/testing_validate-modules.rst:76 -#: ../../rst/dev_guide/testing_validate-modules.rst:77 -#: ../../rst/dev_guide/testing_validate-modules.rst:78 -#: ../../rst/dev_guide/testing_validate-modules.rst:79 -#: ../../rst/dev_guide/testing_validate-modules.rst:80 -#: ../../rst/dev_guide/testing_validate-modules.rst:81 -#: ../../rst/dev_guide/testing_validate-modules.rst:84 -#: ../../rst/dev_guide/testing_validate-modules.rst:87 -#: ../../rst/dev_guide/testing_validate-modules.rst:88 -#: ../../rst/dev_guide/testing_validate-modules.rst:89 -#: ../../rst/dev_guide/testing_validate-modules.rst:90 -#: ../../rst/dev_guide/testing_validate-modules.rst:91 -#: ../../rst/dev_guide/testing_validate-modules.rst:92 -#: ../../rst/dev_guide/testing_validate-modules.rst:93 -#: ../../rst/dev_guide/testing_validate-modules.rst:94 -#: ../../rst/dev_guide/testing_validate-modules.rst:95 -#: ../../rst/dev_guide/testing_validate-modules.rst:97 -#: ../../rst/dev_guide/testing_validate-modules.rst:98 -#: ../../rst/dev_guide/testing_validate-modules.rst:100 -#: ../../rst/dev_guide/testing_validate-modules.rst:101 -#: ../../rst/dev_guide/testing_validate-modules.rst:102 -#: ../../rst/dev_guide/testing_validate-modules.rst:103 -#: ../../rst/dev_guide/testing_validate-modules.rst:104 -#: ../../rst/dev_guide/testing_validate-modules.rst:109 -#: ../../rst/dev_guide/testing_validate-modules.rst:110 -#: ../../rst/dev_guide/testing_validate-modules.rst:111 -#: ../../rst/dev_guide/testing_validate-modules.rst:112 -#: ../../rst/dev_guide/testing_validate-modules.rst:113 -#: ../../rst/dev_guide/testing_validate-modules.rst:117 -#: ../../rst/dev_guide/testing_validate-modules.rst:119 -#: ../../rst/dev_guide/testing_validate-modules.rst:120 -#: ../../rst/dev_guide/testing_validate-modules.rst:121 -#: ../../rst/dev_guide/testing_validate-modules.rst:122 -#: ../../rst/dev_guide/testing_validate-modules.rst:123 -#: ../../rst/dev_guide/testing_validate-modules.rst:124 -#: ../../rst/dev_guide/testing_validate-modules.rst:125 -#: ../../rst/dev_guide/testing_validate-modules.rst:128 -#: ../../rst/dev_guide/testing_validate-modules.rst:132 -#: ../../rst/dev_guide/testing_validate-modules.rst:133 -#: ../../rst/dev_guide/testing_validate-modules.rst:134 -#: ../../rst/dev_guide/testing_validate-modules.rst:137 -#: ../../rst/dev_guide/testing_validate-modules.rst:139 -#: ../../rst/dev_guide/testing_validate-modules.rst:145 -#: ../../rst/dev_guide/testing_validate-modules.rst:146 -#: ../../rst/dev_guide/testing_validate-modules.rst:147 -#: ../../rst/dev_guide/testing_validate-modules.rst:148 -#: ../../rst/dev_guide/testing_validate-modules.rst:149 -#: ../../rst/dev_guide/testing_validate-modules.rst:150 -#: ../../rst/dev_guide/testing_validate-modules.rst:151 -#: ../../rst/dev_guide/testing_validate-modules.rst:152 -#: ../../rst/dev_guide/testing_validate-modules.rst:153 -#: ../../rst/dev_guide/testing_validate-modules.rst:154 -#: ../../rst/dev_guide/testing_validate-modules.rst:155 -#: ../../rst/dev_guide/testing_validate-modules.rst:156 -#: ../../rst/dev_guide/testing_validate-modules.rst:157 -#: ../../rst/dev_guide/testing_validate-modules.rst:158 -#: ../../rst/dev_guide/testing_validate-modules.rst:159 -#: ../../rst/dev_guide/testing_validate-modules.rst:160 -#: ../../rst/dev_guide/testing_validate-modules.rst:161 -#: ../../rst/dev_guide/testing_validate-modules.rst:162 -#: ../../rst/dev_guide/testing_validate-modules.rst:163 -#: ../../rst/dev_guide/testing_validate-modules.rst:164 -msgid "Documentation" -msgstr "ドキュメント" +#: ../../rst/dev_guide/testing_running_locally.rst:195 +msgid "Check the **Use the WSL 2 based engine** checkbox." +msgstr "**Use the WSL 2 based engine** チェックボックスをオンにします。" -#: ../../rst/dev_guide/testing_validate-modules.rst:64 -#: ../../rst/dev_guide/testing_validate-modules.rst:65 -#: ../../rst/dev_guide/testing_validate-modules.rst:66 -#: ../../rst/dev_guide/testing_validate-modules.rst:67 -#: ../../rst/dev_guide/testing_validate-modules.rst:68 -#: ../../rst/dev_guide/testing_validate-modules.rst:69 -#: ../../rst/dev_guide/testing_validate-modules.rst:70 -#: ../../rst/dev_guide/testing_validate-modules.rst:71 -#: ../../rst/dev_guide/testing_validate-modules.rst:72 -#: ../../rst/dev_guide/testing_validate-modules.rst:73 -#: ../../rst/dev_guide/testing_validate-modules.rst:74 -#: ../../rst/dev_guide/testing_validate-modules.rst:75 -#: ../../rst/dev_guide/testing_validate-modules.rst:76 -#: ../../rst/dev_guide/testing_validate-modules.rst:77 -#: ../../rst/dev_guide/testing_validate-modules.rst:78 -#: ../../rst/dev_guide/testing_validate-modules.rst:79 -#: ../../rst/dev_guide/testing_validate-modules.rst:80 -#: ../../rst/dev_guide/testing_validate-modules.rst:81 -#: ../../rst/dev_guide/testing_validate-modules.rst:82 -#: ../../rst/dev_guide/testing_validate-modules.rst:83 -#: ../../rst/dev_guide/testing_validate-modules.rst:84 -#: ../../rst/dev_guide/testing_validate-modules.rst:86 -#: ../../rst/dev_guide/testing_validate-modules.rst:87 -#: ../../rst/dev_guide/testing_validate-modules.rst:88 -#: ../../rst/dev_guide/testing_validate-modules.rst:89 -#: ../../rst/dev_guide/testing_validate-modules.rst:90 -#: ../../rst/dev_guide/testing_validate-modules.rst:91 -#: ../../rst/dev_guide/testing_validate-modules.rst:92 -#: ../../rst/dev_guide/testing_validate-modules.rst:93 -#: ../../rst/dev_guide/testing_validate-modules.rst:94 -#: ../../rst/dev_guide/testing_validate-modules.rst:95 -#: ../../rst/dev_guide/testing_validate-modules.rst:96 -#: ../../rst/dev_guide/testing_validate-modules.rst:97 -#: ../../rst/dev_guide/testing_validate-modules.rst:98 -#: ../../rst/dev_guide/testing_validate-modules.rst:99 -#: ../../rst/dev_guide/testing_validate-modules.rst:100 -#: ../../rst/dev_guide/testing_validate-modules.rst:102 -#: ../../rst/dev_guide/testing_validate-modules.rst:103 -#: ../../rst/dev_guide/testing_validate-modules.rst:104 -#: ../../rst/dev_guide/testing_validate-modules.rst:106 -#: ../../rst/dev_guide/testing_validate-modules.rst:107 -#: ../../rst/dev_guide/testing_validate-modules.rst:108 -#: ../../rst/dev_guide/testing_validate-modules.rst:109 -#: ../../rst/dev_guide/testing_validate-modules.rst:111 -#: ../../rst/dev_guide/testing_validate-modules.rst:112 -#: ../../rst/dev_guide/testing_validate-modules.rst:113 -#: ../../rst/dev_guide/testing_validate-modules.rst:114 -#: ../../rst/dev_guide/testing_validate-modules.rst:115 -#: ../../rst/dev_guide/testing_validate-modules.rst:116 -#: ../../rst/dev_guide/testing_validate-modules.rst:117 -#: ../../rst/dev_guide/testing_validate-modules.rst:118 -#: ../../rst/dev_guide/testing_validate-modules.rst:119 -#: ../../rst/dev_guide/testing_validate-modules.rst:120 -#: ../../rst/dev_guide/testing_validate-modules.rst:121 -#: ../../rst/dev_guide/testing_validate-modules.rst:122 -#: ../../rst/dev_guide/testing_validate-modules.rst:123 -#: ../../rst/dev_guide/testing_validate-modules.rst:124 -#: ../../rst/dev_guide/testing_validate-modules.rst:125 -#: ../../rst/dev_guide/testing_validate-modules.rst:126 -#: ../../rst/dev_guide/testing_validate-modules.rst:127 -#: ../../rst/dev_guide/testing_validate-modules.rst:128 -#: ../../rst/dev_guide/testing_validate-modules.rst:129 -#: ../../rst/dev_guide/testing_validate-modules.rst:130 -#: ../../rst/dev_guide/testing_validate-modules.rst:131 -#: ../../rst/dev_guide/testing_validate-modules.rst:132 -#: ../../rst/dev_guide/testing_validate-modules.rst:133 -#: ../../rst/dev_guide/testing_validate-modules.rst:134 -#: ../../rst/dev_guide/testing_validate-modules.rst:135 -#: ../../rst/dev_guide/testing_validate-modules.rst:137 -#: ../../rst/dev_guide/testing_validate-modules.rst:138 -#: ../../rst/dev_guide/testing_validate-modules.rst:140 -#: ../../rst/dev_guide/testing_validate-modules.rst:141 -#: ../../rst/dev_guide/testing_validate-modules.rst:142 -#: ../../rst/dev_guide/testing_validate-modules.rst:143 -#: ../../rst/dev_guide/testing_validate-modules.rst:144 -#: ../../rst/dev_guide/testing_validate-modules.rst:145 -#: ../../rst/dev_guide/testing_validate-modules.rst:146 -#: ../../rst/dev_guide/testing_validate-modules.rst:147 -#: ../../rst/dev_guide/testing_validate-modules.rst:148 -#: ../../rst/dev_guide/testing_validate-modules.rst:149 -#: ../../rst/dev_guide/testing_validate-modules.rst:150 -#: ../../rst/dev_guide/testing_validate-modules.rst:151 -#: ../../rst/dev_guide/testing_validate-modules.rst:152 -#: ../../rst/dev_guide/testing_validate-modules.rst:153 -#: ../../rst/dev_guide/testing_validate-modules.rst:154 -#: ../../rst/dev_guide/testing_validate-modules.rst:155 -#: ../../rst/dev_guide/testing_validate-modules.rst:156 -#: ../../rst/dev_guide/testing_validate-modules.rst:157 -#: ../../rst/dev_guide/testing_validate-modules.rst:158 -#: ../../rst/dev_guide/testing_validate-modules.rst:159 -#: ../../rst/dev_guide/testing_validate-modules.rst:160 -#: ../../rst/dev_guide/testing_validate-modules.rst:161 -#: ../../rst/dev_guide/testing_validate-modules.rst:162 -#: ../../rst/dev_guide/testing_validate-modules.rst:163 -#: ../../rst/dev_guide/testing_validate-modules.rst:164 -msgid "Error" -msgstr "エラー" +#: ../../rst/dev_guide/testing_running_locally.rst:197 +msgid "On the **Resources** tab under the **WSL Integration** section:" +msgstr "**WSL Integration** セクションの **Resources** タブで、以下を行います。" -#: ../../rst/dev_guide/testing_validate-modules.rst:64 -msgid "A module is deprecated and supposed to be removed in the current or an earlier Ansible version" -msgstr "モジュールは非推奨となり、現行またはそれ以前の Ansible バージョンで削除される予定です。" +#: ../../rst/dev_guide/testing_running_locally.rst:199 +msgid "Enable distros you want to use under the **Enable integration with additional distros** section." +msgstr "**Enable integration with additional distros**セクションで、使用する distros を有効にします。" -#: ../../rst/dev_guide/testing_validate-modules.rst:65 -msgid "collection-deprecated-module" -msgstr "collection-deprecated-module" +#: ../../rst/dev_guide/testing_running_locally.rst:201 +msgid "Click **Apply and restart** if changes were made." +msgstr "変更した場合は **Apply and restart** をクリックします。" -#: ../../rst/dev_guide/testing_validate-modules.rst:65 -msgid "A module is deprecated and supposed to be removed in the current or an earlier collection version" -msgstr "モジュールは非推奨となり、現行またはそれ以前のバージョンのコレクションで削除される予定です。" +#: ../../rst/dev_guide/testing_running_locally.rst:206 +msgid "Setup instructions" +msgstr "設定手順" -#: ../../rst/dev_guide/testing_validate-modules.rst:66 -msgid "ansible-deprecated-version" -msgstr "ansible-deprecated-version" +#: ../../rst/dev_guide/testing_running_locally.rst:210 +msgid "If all WSL instances have been stopped, these changes will need to be re-applied." +msgstr "すべての WSL インスタンスが停止している場合は、これらの変更を再度適用する必要があります。" -#: ../../rst/dev_guide/testing_validate-modules.rst:66 -msgid "A feature is deprecated and supposed to be removed in the current or an earlier Ansible version" -msgstr "機能は非推奨となり、現行またはそれ以前の Ansible バージョンで削除される予定です。" +#: ../../rst/dev_guide/testing_running_locally.rst:212 +msgid "Verify Docker Desktop is properly configured (see :ref:`configuration_requirements`)." +msgstr "Docker Desktop が適切に設定されていることを確認します (:ref:`configuration_requirements` 参照)。" -#: ../../rst/dev_guide/testing_validate-modules.rst:67 -msgid "ansible-module-not-initialized" -msgstr "ansible-module-not-initialized" +#: ../../rst/dev_guide/testing_running_locally.rst:213 +msgid "Quit Docker Desktop if it is running:" +msgstr "実行中の場合は Docker Desktop を終了します。" -#: ../../rst/dev_guide/testing_validate-modules.rst:67 -#: ../../rst/dev_guide/testing_validate-modules.rst:107 -#: ../../rst/dev_guide/testing_validate-modules.rst:108 -#: ../../rst/dev_guide/testing_validate-modules.rst:131 -#: ../../rst/dev_guide/testing_validate-modules.rst:138 -msgid "Syntax" -msgstr "構文" +#: ../../rst/dev_guide/testing_running_locally.rst:215 +msgid "Right click the **Docker Desktop** taskbar icon." +msgstr "**Docker Desktop** タスクバーアイコンを右クリックします。" -#: ../../rst/dev_guide/testing_validate-modules.rst:67 -msgid "Execution of the module did not result in initialization of AnsibleModule" -msgstr "モジュールを実行しても、AnsibleModule は初期化されなかった。" +#: ../../rst/dev_guide/testing_running_locally.rst:216 +msgid "Click the **Quit Docker Desktop** option." +msgstr "**Quit Docker Desktop** オプションをクリックします。" -#: ../../rst/dev_guide/testing_validate-modules.rst:68 -msgid "collection-deprecated-version" -msgstr "collection-deprecated-version" +#: ../../rst/dev_guide/testing_running_locally.rst:218 +msgid "Stop any running WSL instances with the command:" +msgstr "次のコマンドを使用して、実行中の WSL インスタンスを停止します。" -#: ../../rst/dev_guide/testing_validate-modules.rst:68 -msgid "A feature is deprecated and supposed to be removed in the current or an earlier collection version" -msgstr "機能は非推奨となり、現行またはそれ以前のバージョンのコレクションで削除される予定です。" +#: ../../rst/dev_guide/testing_running_locally.rst:224 +msgid "Verify all WSL instances have stopped with the command:" +msgstr "次のコマンドを使用して、すべての WSL インスタンスが停止したことを確認します。" -#: ../../rst/dev_guide/testing_validate-modules.rst:69 -msgid "deprecated-date" -msgstr "deprecated-date" +#: ../../rst/dev_guide/testing_running_locally.rst:230 +msgid "Start a WSL instance and perform the following steps as ``root``:" +msgstr "WSL インスタンスを開始し、``root`` として次の手順を実行します。" -#: ../../rst/dev_guide/testing_validate-modules.rst:69 -msgid "A date before today appears as ``removed_at_date`` or in ``deprecated_aliases``" -msgstr "今日より前の日付は、``removed_at_date`` ように表示されるか、``deprecated_aliases`` に表示されます。" +#: ../../rst/dev_guide/testing_running_locally.rst:232 +msgid "Verify the ``systemd`` subsystem is not registered:" +msgstr "``systemd`` サブシステムが登録されていないことを検証します。" -#: ../../rst/dev_guide/testing_validate-modules.rst:70 -msgid "deprecation-mismatch" -msgstr "deprecation-mismatch" +#: ../../rst/dev_guide/testing_running_locally.rst:234 +msgid "Check for the ``systemd`` cgroup hierarchy with the following command:" +msgstr "次のコマンドを使用して、``systemd`` cgroup 階層を確認します。" -#: ../../rst/dev_guide/testing_validate-modules.rst:70 -msgid "Module marked as deprecated or removed in at least one of the filename, its metadata, or in DOCUMENTATION (setting DOCUMENTATION.deprecated for deprecation or removing all Documentation for removed) but not in all three places." -msgstr "ファイル名、そのメタデータ、または DOCUMENTATION の少なくとも 1 つ (全箇所ではない) で非推奨または削除済みとしてマークされたモジュール (非推奨の場合は DOCUMENTATION.deprecated を設定し、削除の場合はすべてのドキュメントを削除する) します。" +#: ../../rst/dev_guide/testing_running_locally.rst:240 +msgid "If any matches are found, re-check the :ref:`configuration_requirements` and follow the :ref:`setup_instructions` again." +msgstr "一致するものが見つかった場合は、:ref:`configuration_requirements` を再確認し、再度 :ref:`setup_instructions` に従います。" -#: ../../rst/dev_guide/testing_validate-modules.rst:71 -msgid "doc-choices-do-not-match-spec" -msgstr "doc-choices-do-not-match-spec" +#: ../../rst/dev_guide/testing_running_locally.rst:243 +msgid "Mount the ``systemd`` cgroup hierarchy with the following commands:" +msgstr "次のコマンドを使用して、``systemd`` cgroup 階層をマウントします。" -#: ../../rst/dev_guide/testing_validate-modules.rst:71 -msgid "Value for \"choices\" from the argument_spec does not match the documentation" -msgstr "argument_spec の「choices」の値がドキュメントと一致しない。" +#: ../../rst/dev_guide/testing_running_locally.rst:250 +msgid "Start Docker Desktop." +msgstr "Docker Desktop を起動します。" -#: ../../rst/dev_guide/testing_validate-modules.rst:72 -msgid "doc-choices-incompatible-type" -msgstr "doc-choices-incompatible-type" +#: ../../rst/dev_guide/testing_running_locally.rst:252 +msgid "You should now be able to use ``ansible-test`` with the ``--docker`` option." +msgstr "これで、``--docker`` オプションで ``ansible-test`` を使用できるようになりました。" -#: ../../rst/dev_guide/testing_validate-modules.rst:72 -msgid "Choices value from the documentation is not compatible with type defined in the argument_spec" -msgstr "ドキュメンテーションの選択値は、argument_spec で定義されたタイプと互換性がありません。" +#: ../../rst/dev_guide/testing_running_locally.rst:257 +msgid "Linux cgroup configuration" +msgstr "Linux cgroup 設定" -#: ../../rst/dev_guide/testing_validate-modules.rst:73 -msgid "doc-default-does-not-match-spec" -msgstr "doc-default-does-not-match-spec" +#: ../../rst/dev_guide/testing_running_locally.rst:261 +msgid "These changes will need to be re-applied each time the container host is booted." +msgstr "これらの変更は、コンテナーホストを起動するたびに再適用する必要があります。" -#: ../../rst/dev_guide/testing_validate-modules.rst:73 -msgid "Value for \"default\" from the argument_spec does not match the documentation" -msgstr "argument_spec の「default」の値がドキュメントと一致しない。" +#: ../../rst/dev_guide/testing_running_locally.rst:263 +msgid "For certain container hosts and container combinations, additional setup on the container host may be required. In these situations ``ansible-test`` will report an error and provide additional instructions to run as ``root``:" +msgstr "特定のコンテナーホストとコンテナーの組み合わせでは、コンテナーホストで追加のセットアップが必要になる場合があります。そのような状況では、``ansible-test`` がエラーを報告し、``root`` として実行するように追加の指示を出します。" -#: ../../rst/dev_guide/testing_validate-modules.rst:74 -msgid "doc-default-incompatible-type" -msgstr "doc-default-incompatible-type" +#: ../../rst/dev_guide/testing_running_locally.rst:271 +msgid "If you are using rootless Podman, an additional command must be run, also as ``root``. Make sure to substitute your user and group for ``{user}`` and ``{group}`` respectively:" +msgstr "rootless Podman を使用している場合は、同様に ``root`` として追加のコマンドを実行する必要があります。必ずユーザーとグループを、それぞれ ``{user}`` と ``{group}`` に置き換えてください。" -#: ../../rst/dev_guide/testing_validate-modules.rst:74 -msgid "Default value from the documentation is not compatible with type defined in the argument_spec" -msgstr "ドキュメンテーションのデフォルト値は、argument_spec で定義されたタイプと互換性がありません。" +#: ../../rst/dev_guide/testing_running_locally.rst:281 +msgid "When using Podman, you may need to stop existing Podman processes after following the :ref:`linux_cgroup_configuration` instructions. Otherwise Podman may be unable to see the new mount point." +msgstr "Podman を使用する場合、:ref:`linux_cgroup_configuration` の手順を実行した後に既存の Podman プロセスを停止する必要があることがあります。そうしなければ、Podman が新しいマウントポイントを認識できない可能性があります。" -#: ../../rst/dev_guide/testing_validate-modules.rst:75 -msgid "doc-elements-invalid" -msgstr "doc-elements-invalid" +#: ../../rst/dev_guide/testing_running_locally.rst:284 +msgid "You can check to see if Podman is running by looking for ``podman`` and ``catatonit`` processes." +msgstr "Podman が実行されているかどうかを確認するには、``podman`` と ``catatonit`` のプロセスを確認します。" -#: ../../rst/dev_guide/testing_validate-modules.rst:75 -msgid "Documentation specifies elements for argument, when \"type\" is not ``list``." -msgstr "ドキュメントでは、「type」が ``list`` ではない場合に、引数の要素を指定します。" +#: ../../rst/dev_guide/testing_running_locally.rst:287 +msgid "Remote virtual machines" +msgstr "リモート仮想マシン" -#: ../../rst/dev_guide/testing_validate-modules.rst:76 -msgid "doc-elements-mismatch" -msgstr "doc-elements-mismatch" +#: ../../rst/dev_guide/testing_running_locally.rst:289 +msgid "Remote virtual machines are recommended for running integration tests not suitable for execution in containers." +msgstr "コンテナーでの実行に適していない統合テストの実行には、リモート仮想マシンをお勧めします。" -#: ../../rst/dev_guide/testing_validate-modules.rst:76 -msgid "Argument_spec defines elements different than documentation does" -msgstr "argument_spec はドキュメントとは異なるタイプを定義します。" +#: ../../rst/dev_guide/testing_running_locally.rst:291 +msgid "The ``--remote`` option runs tests in a cloud hosted ephemeral virtual machine." +msgstr "``--remote`` オプションを使用すると、クラウドでホストされた一時的な仮想マシンでテストが実行されます。" -#: ../../rst/dev_guide/testing_validate-modules.rst:77 -msgid "doc-missing-type" -msgstr "doc-missing-type" +#: ../../rst/dev_guide/testing_running_locally.rst:295 +msgid "An API key is required to use this feature, unless running under an approved Azure Pipelines organization." +msgstr "承認された Azure Pipelines 組織下で実行されている場合を除き、この機能を使用するには API キーが必要です。" -#: ../../rst/dev_guide/testing_validate-modules.rst:77 -msgid "Documentation doesn't specify a type but argument in ``argument_spec`` use default type (``str``)" -msgstr "ドキュメントではタイプをしていませんが、``argument_spec`` の引数がデフォルト型 (``str``) を使用しています。" +#: ../../rst/dev_guide/testing_running_locally.rst:297 +msgid "To see the list of supported systems, use the ``--help`` option with the ``ansible-test`` command you want to use." +msgstr "サポート対象システムのリストを表示するには、使用する ``ansible-test`` コマンドで ``--help`` オプションを使用します。" -#: ../../rst/dev_guide/testing_validate-modules.rst:78 -msgid "doc-required-mismatch" -msgstr "doc-required-mismatch" +#: ../../rst/dev_guide/testing_running_locally.rst:301 +msgid "The list of available systems is dependent on the ``ansible-test`` command you are using." +msgstr "利用可能なシステムのリストは、使用している ``ansible-test`` コマンドにより異なります。" -#: ../../rst/dev_guide/testing_validate-modules.rst:78 -msgid "argument in argument_spec is required but documentation says it is not, or vice versa" -msgstr "arguments_spec の引数は必須ですが、ドキュメントには必須ではない (または arguments_spec の引数は必須ではありませんが、ドキュメントには必須) と記載されています。" +#: ../../rst/dev_guide/testing_running_locally.rst:304 +msgid "Python virtual environments" +msgstr "Python 仮想環境" -#: ../../rst/dev_guide/testing_validate-modules.rst:79 -msgid "doc-type-does-not-match-spec" -msgstr "doc-type-does-not-match-spec" +#: ../../rst/dev_guide/testing_running_locally.rst:306 +msgid "Python virtual environments provide a simple way to achieve isolation from the system and user Python environments. They are recommended for unit and integration tests when the ``--docker`` and ``--remote`` options cannot be used." +msgstr "Python 仮想環境を使用すると、システムおよびユーザーの Python 環境からの分離を簡単に実現できます。これは、``--docker`` および ``--remote`` オプションが使用できない場合のユニットテストと統合テストに推奨されます。" -#: ../../rst/dev_guide/testing_validate-modules.rst:79 -msgid "Argument_spec defines type different than documentation does" -msgstr "argument_spec がドキュメントとは異なるタイプを定義します。" +#: ../../rst/dev_guide/testing_running_locally.rst:309 +msgid "The ``--venv`` option runs tests in a virtual environment managed by ``ansible-test``. Requirements are automatically installed before tests are run." +msgstr "``--venv`` オプションは、``ansible-test`` によって管理される仮想環境でテストを実行します。テストが実行される前に、要件が自動的にインストールされます。" -#: ../../rst/dev_guide/testing_validate-modules.rst:80 -msgid "documentation-error" -msgstr "documentation-error" +#: ../../rst/dev_guide/testing_running_locally.rst:313 +msgid "Composite environment arguments" +msgstr "複合環境引数" -#: ../../rst/dev_guide/testing_validate-modules.rst:80 -msgid "Unknown ``DOCUMENTATION`` error" -msgstr "不明な ``DOCUMENTATION`` エラー" +#: ../../rst/dev_guide/testing_running_locally.rst:315 +msgid "The environment arguments covered in this document are sufficient for most use cases. However, some scenarios may require the additional flexibility offered by composite environment arguments." +msgstr "このドキュメントで説明されている環境引数は、ほとんどのユースケースで十分です。ただし、一部のシナリオでは、複合環境引数によって提供される追加の柔軟性が必要になる場合があります。" -#: ../../rst/dev_guide/testing_validate-modules.rst:81 -msgid "documentation-syntax-error" -msgstr "documentation-syntax-error" +#: ../../rst/dev_guide/testing_running_locally.rst:318 +msgid "The ``--controller`` and ``--target`` options are alternatives to the ``--docker``, ``--remote`` and ``--venv`` options." +msgstr "``--controller`` および ``--target`` オプションは、``--docker``、``--remote``、``--venv`` オプションの代わりです。" -#: ../../rst/dev_guide/testing_validate-modules.rst:81 -msgid "Invalid ``DOCUMENTATION`` schema" -msgstr "無効な ``DOCUMENTATION`` スキーマ" +#: ../../rst/dev_guide/testing_running_locally.rst:322 +msgid "When using the ``shell`` command, the ``--target`` option is replaced by three platform specific options." +msgstr "``shell`` コマンドを使用する場合、``--target`` オプションは、3 つのプラットフォーム固有オプションに置き換えられます。" -#: ../../rst/dev_guide/testing_validate-modules.rst:82 -msgid "illegal-future-imports" -msgstr "illegal-future-imports" +#: ../../rst/dev_guide/testing_running_locally.rst:324 +msgid "Add the ``--help`` option to your ``ansible-test`` command to learn more about the composite environment arguments." +msgstr "使用している ``ansible-test`` コマンドに ``--help`` オプションを追加すると、複合環境引数の詳細を確認できます。" + +#: ../../rst/dev_guide/testing_running_locally.rst:327 +msgid "Additional Requirements" +msgstr "追加要件" -#: ../../rst/dev_guide/testing_validate-modules.rst:82 -#: ../../rst/dev_guide/testing_validate-modules.rst:83 -#: ../../rst/dev_guide/testing_validate-modules.rst:86 -#: ../../rst/dev_guide/testing_validate-modules.rst:105 -#: ../../rst/dev_guide/testing_validate-modules.rst:106 -#: ../../rst/dev_guide/testing_validate-modules.rst:114 -#: ../../rst/dev_guide/testing_validate-modules.rst:115 -#: ../../rst/dev_guide/testing_validate-modules.rst:116 -#: ../../rst/dev_guide/testing_validate-modules.rst:136 -#: ../../rst/dev_guide/testing_validate-modules.rst:140 -#: ../../rst/dev_guide/testing_validate-modules.rst:141 -#: ../../rst/dev_guide/testing_validate-modules.rst:142 -#: ../../rst/dev_guide/testing_validate-modules.rst:143 -#: ../../rst/dev_guide/testing_validate-modules.rst:144 -msgid "Imports" -msgstr "インポート" +#: ../../rst/dev_guide/testing_running_locally.rst:329 +msgid "Some ``ansible-test`` commands have additional requirements. You can use the ``--requirements`` option to automatically install them." +msgstr "いくつかの ``ansible-test`` コマンドには、追加の要件があります。``--requirements`` オプションを使用して、それらの追加要件を自動的にインストールできます。" -#: ../../rst/dev_guide/testing_validate-modules.rst:82 -msgid "Only the following ``from __future__`` imports are allowed: ``absolute_import``, ``division``, and ``print_function``." -msgstr "``absolute_import``、``division``、および ``print_function`` の ``from __future__`` インポートのみが許可されます。" +#: ../../rst/dev_guide/testing_running_locally.rst:334 +msgid "When using a test environment managed by ``ansible-test`` the ``--requirements`` option is usually unnecessary." +msgstr "``ansible-test`` が管理するテスト環境を利用する場合、通常は ``--requirements`` オプションは必要ありません。" -#: ../../rst/dev_guide/testing_validate-modules.rst:83 -msgid "import-before-documentation" -msgstr "import-before-documentation" +#: ../../rst/dev_guide/testing_running_locally.rst:337 +msgid "Environment variables" +msgstr "環境変数" -#: ../../rst/dev_guide/testing_validate-modules.rst:83 -msgid "Import found before documentation variables. All imports must appear below ``DOCUMENTATION``/``EXAMPLES``/``RETURN``" -msgstr "ドキュメント変数の前にインポートが見つかりました。すべてのインポートは、``DOCUMENTATION``/``EXAMPLES``/``RETURN`` の下に表示される必要があります。" +#: ../../rst/dev_guide/testing_running_locally.rst:339 +msgid "When using environment variables to manipulate tests there some limitations to keep in mind. Environment variables are:" +msgstr "環境変数を使用してテストを操作する際には、以下の制限事項に留意してください。環境変数は以下のようになります。" -#: ../../rst/dev_guide/testing_validate-modules.rst:84 -msgid "import-error" -msgstr "import-error" +#: ../../rst/dev_guide/testing_running_locally.rst:341 +msgid "Not propagated from the host to the test environment when using the ``--docker`` or ``--remote`` options." +msgstr "``--docker`` オプションまたは ``--remote`` オプションを使用する場合は、ホストからテスト環境に伝播されません。" -#: ../../rst/dev_guide/testing_validate-modules.rst:84 -msgid "``Exception`` attempting to import module for ``argument_spec`` introspection" -msgstr "``Exception`` が、``argument_spec`` イントロスペクションのモジュールのインポートを試行中" +#: ../../rst/dev_guide/testing_running_locally.rst:342 +msgid "Not exposed to the test environment unless enabled in ``test/lib/ansible_test/_internal/util.py`` in the ``common_environment`` function." +msgstr "``common_environment`` 関数の ``test/lib/ansible_test/_internal/util.py`` で有効にされていない限り、テスト環境には公開されません。" -#: ../../rst/dev_guide/testing_validate-modules.rst:85 -msgid "import-placement" -msgstr "import-placement" +#: ../../rst/dev_guide/testing_running_locally.rst:344 +msgid "Example: ``ANSIBLE_KEEP_REMOTE_FILES=1`` can be set when running ``ansible-test integration --venv``. However, using the ``--docker`` option would require running ``ansible-test shell`` to gain access to the Docker environment. Once at the shell prompt, the environment variable could be set and the tests executed. This is useful for debugging tests inside a container by following the :ref:`debugging_modules` instructions." +msgstr "例: ``ansible-test integration --venv`` の実行時に ``ANSIBLE_KEEP_REMOTE_FILES=1`` を設定できますが、``--docker`` オプションを使用すると、``ansible-test shell`` を実行し、Docker 環境へのアクセスが必要になります。シェルプロンプトでは、環境変数を設定してテストを行う可能性があります。これは、:ref:`debugging_modules` の指示に従って、コンテナー内でテストをデバッグする上で役立ちます。" -#: ../../rst/dev_guide/testing_validate-modules.rst:85 -msgid "Locations" -msgstr "場所" +#: ../../rst/dev_guide/testing_running_locally.rst:350 +msgid "Interactive shell" +msgstr "インタラクティブシェル" -#: ../../rst/dev_guide/testing_validate-modules.rst:85 -#: ../../rst/dev_guide/testing_validate-modules.rst:101 -#: ../../rst/dev_guide/testing_validate-modules.rst:105 -#: ../../rst/dev_guide/testing_validate-modules.rst:110 -#: ../../rst/dev_guide/testing_validate-modules.rst:136 -#: ../../rst/dev_guide/testing_validate-modules.rst:139 -msgid "Warning" -msgstr "警告" +#: ../../rst/dev_guide/testing_running_locally.rst:352 +msgid "Use the ``ansible-test shell`` command to get an interactive shell in the same environment used to run tests. Examples:" +msgstr "``ansible-test shell`` コマンドを使用して、テストを実行するのに使用する同じ環境でインタラクティブシェルを取得します。以下は例になります。" -#: ../../rst/dev_guide/testing_validate-modules.rst:85 -#: ../../rst/dev_guide/testing_validate-modules.rst:86 -msgid "Imports should be directly below ``DOCUMENTATION``/``EXAMPLES``/``RETURN``" -msgstr "インポートは、``DOCUMENTATION``/``EXAMPLES``/``RETURN`` のすぐ後に配置しなければなりません。" +#: ../../rst/dev_guide/testing_running_locally.rst:354 +msgid "``ansible-test shell --docker`` - Open a shell in the default docker container." +msgstr "``ansible-test shell --docker`` - デフォルトの docker コンテナーでシェルを開きます。" -#: ../../rst/dev_guide/testing_validate-modules.rst:86 -msgid "imports-improper-location" -msgstr "imports-improper-location" +#: ../../rst/dev_guide/testing_running_locally.rst:355 +msgid "``ansible-test shell --venv --python 3.10`` - Open a shell in a Python 3.10 virtual environment." +msgstr "``ansible-test shell --venv --python 3.10`` - Python 3.10 仮想環境でシェルを開きます。" -#: ../../rst/dev_guide/testing_validate-modules.rst:87 -msgid "incompatible-choices" -msgstr "incompatible-choices" +#: ../../rst/dev_guide/testing_running_locally.rst:358 +msgid "Code coverage" +msgstr "コードの対象範囲" -#: ../../rst/dev_guide/testing_validate-modules.rst:87 -msgid "Choices value from the argument_spec is not compatible with type defined in the argument_spec" -msgstr "argument_spec の選択値は、argument_spec で定義されたタイプと互換性がありません" +#: ../../rst/dev_guide/testing_running_locally.rst:360 +msgid "Code coverage reports make it easy to identify untested code for which more tests should be written. Online reports are available but only cover the ``devel`` branch (see :ref:`developing_testing`). For new code local reports are needed." +msgstr "コードの対象範囲レポートは、より多くのテストが記述されるべき未テストのコードを簡単に識別することができます。オンラインレポートが利用できますが、``devel`` ブランチのみを扱います (:ref:`developing_testing` を参照)。新規コードのローカルレポートが必要な場合は、以下を行います。" -#: ../../rst/dev_guide/testing_validate-modules.rst:88 -msgid "incompatible-default-type" -msgstr "incompatible-default-type" +#: ../../rst/dev_guide/testing_running_locally.rst:364 +msgid "Add the ``--coverage`` option to any test command to collect code coverage data. If you aren't using the ``--venv`` or ``--docker`` options which create an isolated python environment then you may have to use the ``--requirements`` option to ensure that the correct version of the coverage module is installed:" +msgstr "コードカバレッジデータを収集するテストコマンドに ``--coverage`` オプションを追加します。分離した python 環境を作成する ``--venv`` オプションまたは ``--docker`` オプションを使用していない場合は、``--requirements`` オプションを使用してカバレッジモジュールの正しいバージョンがインストールされていることを確認する必要があります。" -#: ../../rst/dev_guide/testing_validate-modules.rst:88 -msgid "Default value from the argument_spec is not compatible with type defined in the argument_spec" -msgstr "argument_spec のデフォルト値は、argument_spec で定義されたタイプと互換性がありません。" +#: ../../rst/dev_guide/testing_running_locally.rst:376 +#: ../../rst/dev_guide/testing_units.rst:197 +msgid "Reports can be generated in several different formats:" +msgstr "Report は、複数の形式で生成できます。" -#: ../../rst/dev_guide/testing_validate-modules.rst:89 -msgid "invalid-argument-name" -msgstr "invalid-argument-name" +#: ../../rst/dev_guide/testing_running_locally.rst:378 +#: ../../rst/dev_guide/testing_units.rst:199 +msgid "``ansible-test coverage report`` - Console report." +msgstr "``ansible-test coverage report`` - コンソールレポート。" -#: ../../rst/dev_guide/testing_validate-modules.rst:89 -msgid "Argument in argument_spec must not be one of 'message', 'syslog_facility' as it is used internally by Ansible Core Engine" -msgstr "argument_spec の引数は、Ansible Core Engine によって内部で使用されるため、「message」、「syslog_facility」のいずれかにすることはできません。" +#: ../../rst/dev_guide/testing_running_locally.rst:379 +#: ../../rst/dev_guide/testing_units.rst:200 +msgid "``ansible-test coverage html`` - HTML report." +msgstr "``ansible-test coverage html`` - HTML レポート。" -#: ../../rst/dev_guide/testing_validate-modules.rst:90 -msgid "invalid-argument-spec" -msgstr "invalid-argument-spec" +#: ../../rst/dev_guide/testing_running_locally.rst:380 +#: ../../rst/dev_guide/testing_units.rst:201 +msgid "``ansible-test coverage xml`` - XML report." +msgstr "``ansible-test coverage xml`` - XML レポート。" -#: ../../rst/dev_guide/testing_validate-modules.rst:90 -msgid "Argument in argument_spec must be a dictionary/hash when used" -msgstr "argument_spec の引数を使用する場合は、ディクショナリーまたはハッシュである必要があります。" +#: ../../rst/dev_guide/testing_running_locally.rst:382 +msgid "To clear data between test runs, use the ``ansible-test coverage erase`` command." +msgstr "テストの実行間でデータをクリアするには、``ansible-test coverage erase`` コマンドを使用します。" -#: ../../rst/dev_guide/testing_validate-modules.rst:91 -msgid "invalid-argument-spec-options" -msgstr "invalid-argument-spec-options" +#: ../../rst/dev_guide/testing_sanity.rst:11 +msgid "Sanity tests are made up of scripts and tools used to perform static code analysis. The primary purpose of these tests is to enforce Ansible coding standards and requirements." +msgstr "健全性テストは、静的コード分析の実行に使用されるスクリプトおよびツールで構成されています。これらのテストの主な目的は、Ansible コーディングの仕様および要件を適用することです。" -#: ../../rst/dev_guide/testing_validate-modules.rst:91 -msgid "Suboptions in argument_spec are invalid" -msgstr "argument_spec のサブオプションは無効です。" +#: ../../rst/dev_guide/testing_sanity.rst:14 +msgid "Tests are run with ``ansible-test sanity``. All available tests are run unless the ``--test`` option is used." +msgstr "テストは、``ansible-test sanity`` で実行します。``--test`` オプションを使用しない限り、利用可能なテストはすべて実行します。" -#: ../../rst/dev_guide/testing_validate-modules.rst:92 -msgid "invalid-documentation" -msgstr "invalid-documentation" +#: ../../rst/dev_guide/testing_sanity.rst:19 +msgid "How to run" +msgstr "実行方法" -#: ../../rst/dev_guide/testing_validate-modules.rst:92 -msgid "``DOCUMENTATION`` is not valid YAML" -msgstr "``DOCUMENTATION`` は、有効な YAML ではありません" +#: ../../rst/dev_guide/testing_sanity.rst:22 +msgid "To run sanity tests using docker, always use the default docker image by passing the ``--docker`` or ``--docker default`` argument." +msgstr "docker を使用して健常性テストを実行するには、常に ``--docker`` 引数または ``--docker default`` 引数を渡すことでデフォルトの docker イメージを常に使用します。" -#: ../../rst/dev_guide/testing_validate-modules.rst:93 -msgid "invalid-documentation-markup" -msgstr "invalid-documentation-markup" +#: ../../rst/dev_guide/testing_sanity.rst:26 +msgid "When using docker and the ``--base-branch`` argument, also use the ``--keep-git`` argument to avoid git related errors." +msgstr "docker および ``--base-branch`` 引数を使用する場合は、git 関連のエラーを回避するために ``--keep-git`` 引数も使用します。" -#: ../../rst/dev_guide/testing_validate-modules.rst:93 -msgid "``DOCUMENTATION`` or ``RETURN`` contains invalid markup" -msgstr "``DOCUMENTATION`` または、``RETURN`` に無効なマークアップが含まれています" +#: ../../rst/dev_guide/testing_sanity.rst:52 +#: ../../rst/dev_guide/testing_units.rst:17 +msgid "Available Tests" +msgstr "利用可能なテスト" -#: ../../rst/dev_guide/testing_validate-modules.rst:94 -msgid "invalid-documentation-options" -msgstr "invalid-documentation-options" +#: ../../rst/dev_guide/testing_sanity.rst:54 +msgid "Tests can be listed with ``ansible-test sanity --list-tests``." +msgstr "テストは ``ansible-test sanity --list-tests`` で一覧表示できます。" -#: ../../rst/dev_guide/testing_validate-modules.rst:94 -msgid "``DOCUMENTATION.options`` must be a dictionary/hash when used" -msgstr "``DOCUMENTATION.options`` を使用する場合は、ディクショナリー/ハッシュでなければなりません" +#: ../../rst/dev_guide/testing_units.rst:7 +msgid "Unit Tests" +msgstr "ユニットテスト" -#: ../../rst/dev_guide/testing_validate-modules.rst:95 -msgid "invalid-examples" -msgstr "invalid-examples" +#: ../../rst/dev_guide/testing_units.rst:9 +msgid "Unit tests are small isolated tests that target a specific library or module. Unit tests in Ansible are currently the only way of driving tests from python within Ansible's continuous integration process. This means that in some circumstances the tests may be a bit wider than just units." +msgstr "ユニットテストは、特定のライブラリーまたはモジュールを対象とする小規模の分離テストです。現在、Ansible のユニットテストは、Ansible の継続的統合プロセスの中で、python からテストを実行する唯一の方法です。つまり、状況によっては、テストにはユニット以外のものも含まれる場合があることを意味します。" -#: ../../rst/dev_guide/testing_validate-modules.rst:95 -msgid "``EXAMPLES`` is not valid YAML" -msgstr "``EXAMPLES`` は、有効な YAML ではありません" +#: ../../rst/dev_guide/testing_units.rst:19 +msgid "Unit tests can be found in `test/units `_. Notice that the directory structure of the tests matches that of ``lib/ansible/``." +msgstr "ユニットテストは `test/units `_ にあります。テストのディレクトリー構造が ``lib/ansible/`` と一致することに注意してください。" -#: ../../rst/dev_guide/testing_validate-modules.rst:96 -msgid "invalid-extension" -msgstr "invalid-extension" +#: ../../rst/dev_guide/testing_units.rst:24 +msgid "Running Tests" +msgstr "テストの実行" -#: ../../rst/dev_guide/testing_validate-modules.rst:96 -#: ../../rst/dev_guide/testing_validate-modules.rst:99 -#: ../../rst/dev_guide/testing_validate-modules.rst:135 -msgid "Naming" -msgstr "命名規則" +#: ../../rst/dev_guide/testing_units.rst:27 +msgid "To run unit tests using docker, always use the default docker image by passing the ``--docker`` or ``--docker default`` argument." +msgstr "docker を使用してユニットテストを実行するには、``--docker`` 引数または ``--docker default`` 引数を渡すことで常にデフォルトの docker イメージを使用します。" -#: ../../rst/dev_guide/testing_validate-modules.rst:96 -msgid "Official Ansible modules must have a ``.py`` extension for python modules or a ``.ps1`` for powershell modules" -msgstr "公式の Ansible モジュールでは、python モジュールの拡張子は ``.py`` で、powershell モジュールの拡張子は ``.ps1`` にする必要があります。" +#: ../../rst/dev_guide/testing_units.rst:30 +msgid "The Ansible unit tests can be run across the whole code base by doing:" +msgstr "Ansible のユニットテストは、以下の操作を実行してコードベース全体で実行できます。" -#: ../../rst/dev_guide/testing_validate-modules.rst:97 -msgid "invalid-module-schema" -msgstr "invalid-module-schema" +#: ../../rst/dev_guide/testing_units.rst:38 +msgid "Against a single file by doing:" +msgstr "1 つのファイルに対して以下を行います。" -#: ../../rst/dev_guide/testing_validate-modules.rst:97 -msgid "``AnsibleModule`` schema validation error" -msgstr "``AnsibleModule`` スキーマ検証エラー" +#: ../../rst/dev_guide/testing_units.rst:44 +msgid "Or against a specific Python version by doing:" +msgstr "または、特定の Python バージョンに対して以下を実行します。" -#: ../../rst/dev_guide/testing_validate-modules.rst:98 -msgid "invalid-removal-version" -msgstr "invalid-removal-version" +#: ../../rst/dev_guide/testing_units.rst:50 +msgid "If you are running unit tests against things other than modules, such as module utilities, specify the whole file path:" +msgstr "モジュールユーティリティーなどのモジュール以外のものに対してユニットテストを実行している場合は、ファイルパス全体を指定します。" -#: ../../rst/dev_guide/testing_validate-modules.rst:98 -msgid "The version at which a feature is supposed to be removed cannot be parsed (for collections, it must be a semantic version, see https://semver.org/)" -msgstr "機能が削除されることになっているバージョンは解析できません (コレクションの場合、セマンティックバージョンである必要があります。https://semver.org/ を参照してください)。" +#: ../../rst/dev_guide/testing_units.rst:56 +msgid "For advanced usage see the online help:" +msgstr "高度な使用方法は、オンラインヘルプを参照してください。" -#: ../../rst/dev_guide/testing_validate-modules.rst:99 -msgid "invalid-requires-extension" -msgstr "invalid-requires-extension" +#: ../../rst/dev_guide/testing_units.rst:62 +msgid "You can also run tests in Ansible's continuous integration system by opening a pull request. This will automatically determine which tests to run based on the changes made in your pull request." +msgstr "プル要求を開いて、Ansible の継続的統合システムでテストを実行することもできます。これにより、プル要求で実行された変更に基づいて、実行されるテストが自動的に決定されます。" -#: ../../rst/dev_guide/testing_validate-modules.rst:99 -msgid "Module ``#AnsibleRequires -CSharpUtil`` should not end in .cs, Module ``#Requires`` should not end in .psm1" -msgstr "モジュール ``#AnsibleRequires -CSharpUtil`` の末尾を .cs にしないでください。モジュール ``#Requires`` の末尾を .psm1 にしないでください。" +#: ../../rst/dev_guide/testing_units.rst:68 +msgid "Installing dependencies" +msgstr "依存関係のインストール" -#: ../../rst/dev_guide/testing_validate-modules.rst:100 -msgid "missing-doc-fragment" -msgstr "missing-doc-fragment" +#: ../../rst/dev_guide/testing_units.rst:70 +msgid "If you are running ``ansible-test`` with the ``--docker`` or ``--venv`` option you do not need to install dependencies manually." +msgstr "``--docker`` オプションまたは ``--venv`` オプションを指定して ``ansible-test`` を実行している場合は、依存関係を手動でインストールする必要はありません。" -#: ../../rst/dev_guide/testing_validate-modules.rst:100 -msgid "``DOCUMENTATION`` fragment missing" -msgstr "``DOCUMENTATION`` フラグメントがありません" +#: ../../rst/dev_guide/testing_units.rst:72 +msgid "Otherwise you can install dependencies using the ``--requirements`` option, which will install all the required dependencies needed for unit tests. For example:" +msgstr "それ以外の場合は、``--requirements`` オプションを使用して依存関係をインストールし、ユニットテストに必要な依存関係をすべてインストールします。以下に例を示します。" -#: ../../rst/dev_guide/testing_validate-modules.rst:101 -msgid "missing-existing-doc-fragment" -msgstr "missing-existing-doc-fragment" +#: ../../rst/dev_guide/testing_units.rst:80 +msgid "The list of unit test requirements can be found at `test/units/requirements.txt `_." +msgstr "ユニットテストの要件一覧は、`test/units/requirements.txt `_ を参照してください。" -#: ../../rst/dev_guide/testing_validate-modules.rst:101 -msgid "Pre-existing ``DOCUMENTATION`` fragment missing" -msgstr "既存の ``DOCUMENTATION`` フラグメントがありません" +#: ../../rst/dev_guide/testing_units.rst:83 +msgid "This does not include the list of unit test requirements for ``ansible-test`` itself, which can be found at `test/lib/ansible_test/_data/requirements/units.txt `_." +msgstr "これには、``ansible-test`` のユニットテスト要件のリストは含まれていません。それは、`test/lib/ansible_test/_data/requirements/units.txt `_ で見つけることができます。" -#: ../../rst/dev_guide/testing_validate-modules.rst:102 -msgid "missing-documentation" -msgstr "missing-documentation" +#: ../../rst/dev_guide/testing_units.rst:87 +msgid "See also the `constraints `_ applicable to all test commands." +msgstr "すべてのコマンドに適用可能な「`制約 `_」も参照してください。" -#: ../../rst/dev_guide/testing_validate-modules.rst:102 -msgid "No ``DOCUMENTATION`` provided" -msgstr "``DOCUMENTATION`` が提供されていません" +#: ../../rst/dev_guide/testing_units.rst:93 +msgid "Extending unit tests" +msgstr "ユニットテストの拡張" -#: ../../rst/dev_guide/testing_validate-modules.rst:103 -msgid "missing-examples" -msgstr "missing-examples" +#: ../../rst/dev_guide/testing_units.rst:96 +msgid "What a unit test isn't" +msgstr "ユニットテスト以外のもの" -#: ../../rst/dev_guide/testing_validate-modules.rst:103 -msgid "No ``EXAMPLES`` provided" -msgstr "``EXAMPLES`` が提供されていません" +#: ../../rst/dev_guide/testing_units.rst:98 +msgid "If you start writing a test that requires external services then you may be writing an integration test, rather than a unit test." +msgstr "外部サービスを必要とするテストを書き始めると、ユニットテストではなく統合テストを書くことができます。" -#: ../../rst/dev_guide/testing_validate-modules.rst:104 -msgid "missing-gplv3-license" -msgstr "missing-gplv3-license" +#: ../../rst/dev_guide/testing_units.rst:103 +msgid "Structuring Unit Tests" +msgstr "ユニットテストの構造" -#: ../../rst/dev_guide/testing_validate-modules.rst:104 -msgid "GPLv3 license header not found" -msgstr "GPLv3 ライセンスヘッダーが見つかりませんでした" +#: ../../rst/dev_guide/testing_units.rst:105 +msgid "Ansible drives unit tests through `pytest `_. This means that tests can either be written a simple functions which are included in any file name like ``test_.py`` or as classes." +msgstr "Ansible は、`pytest `_ でユニットテストを行います。これは、テストは、``test_.py`` のファイル名またはクラスとして含まれる単純な関数を記述できることを意味します。" -#: ../../rst/dev_guide/testing_validate-modules.rst:105 -msgid "missing-module-utils-basic-import" -msgstr "missing-module-utils-basic-import" +#: ../../rst/dev_guide/testing_units.rst:109 +msgid "Here is an example of a function:" +msgstr "以下は、関数の例です。" -#: ../../rst/dev_guide/testing_validate-modules.rst:105 -msgid "Did not find ``ansible.module_utils.basic`` import" -msgstr "``ansible.module_utils.basic`` インポートが見つかりませんでした" +#: ../../rst/dev_guide/testing_units.rst:121 +msgid "Here is an example of a class:" +msgstr "以下はクラスの例です。" -#: ../../rst/dev_guide/testing_validate-modules.rst:106 -msgid "missing-module-utils-import-csharp-requirements" -msgstr "missing-module-utils-import-csharp-requirements" +#: ../../rst/dev_guide/testing_units.rst:143 +msgid "Both methods work fine in most circumstances; the function-based interface is simpler and quicker and so that's probably where you should start when you are just trying to add a few basic tests for a module. The class-based test allows more tidy set up and tear down of pre-requisites, so if you have many test cases for your module you may want to refactor to use that." +msgstr "どちらの方法も、ほとんどの状況で正常に機能します。関数ベースのインターフェースの方がシンプルで速いため、モジュールにいくつかの基本的なテストを追加しようとしている場合は、ここから始めることが推奨されます。クラスベースのテストでは、前提条件の設定や分解をより整然と行うことができるため、モジュールに多くのテストケースがある場合は、それを使用するようにリファクタリングすることが推奨されます。" -#: ../../rst/dev_guide/testing_validate-modules.rst:106 -msgid "No ``Ansible.ModuleUtils`` or C# Ansible util requirements/imports found" -msgstr "``Ansible.ModuleUtils`` または C# Ansible ユーティリティーの 要件/インポートがあります" +#: ../../rst/dev_guide/testing_units.rst:149 +msgid "Assertions using the simple ``assert`` function inside the tests will give full information on the cause of the failure with a trace-back of functions called during the assertion. This means that plain asserts are recommended over other external assertion libraries." +msgstr "テスト内の簡単な ``assert`` 関数を使用するアサーションにより、アサーション中に呼び出される関数のトレースバックで障害に関する完全な情報が表示されます。これは、他の外部アサーションライブラリーよりも、プレーンアサートが推奨されることを意味します。" -#: ../../rst/dev_guide/testing_validate-modules.rst:107 -msgid "missing-powershell-interpreter" -msgstr "missing-powershell-interpreter" +#: ../../rst/dev_guide/testing_units.rst:154 +msgid "A number of the unit test suites include functions that are shared between several modules, especially in the networking arena. In these cases a file is created in the same directory, which is then included directly." +msgstr "多くのユニットテストスイートには、特にネットワークの分野では、複数のモジュールで共有される関数が含まれています。この場合は、同じディレクトリーにファイルが作成されます。このファイルは、直接含まれます。" -#: ../../rst/dev_guide/testing_validate-modules.rst:107 -msgid "Interpreter line is not ``#!powershell``" -msgstr "インタープリター行は ``#!powershell`` ではありません" +#: ../../rst/dev_guide/testing_units.rst:160 +msgid "Module test case common code" +msgstr "モジュールテストケースの共通コード" -#: ../../rst/dev_guide/testing_validate-modules.rst:108 -msgid "missing-python-interpreter" -msgstr "missing-python-interpreter" +#: ../../rst/dev_guide/testing_units.rst:162 +msgid "Keep common code as specific as possible within the `test/units/` directory structure. Don't import common unit test code from directories outside the current or parent directories." +msgstr "`test/units/` ディレクトリー構造内で可能な限り具体的に共通コードを維持します。現在のディレクトリーまたは親ディレクトリー以外のディレクトリーから共通のユニットテストコードをインポートしないでください。" -#: ../../rst/dev_guide/testing_validate-modules.rst:108 -msgid "Interpreter line is not ``#!/usr/bin/python``" -msgstr "インタープリター行は ``#!/usr/bin/python`` ではありません" +#: ../../rst/dev_guide/testing_units.rst:165 +msgid "Don't import other unit tests from a unit test. Any common code should be in dedicated files that aren't themselves tests." +msgstr "ユニットテストから他のユニットテストをインポートしないでください。共通のコードは、テスト自体ではない専用のファイルに含める必要があります。" -#: ../../rst/dev_guide/testing_validate-modules.rst:109 -msgid "missing-return" -msgstr "missing-return" +#: ../../rst/dev_guide/testing_units.rst:170 +msgid "Fixtures files" +msgstr "Fixtures ファイル" -#: ../../rst/dev_guide/testing_validate-modules.rst:109 -msgid "No ``RETURN`` documentation provided" -msgstr "``RETURN`` のドキュメントは提供されていません" +#: ../../rst/dev_guide/testing_units.rst:172 +msgid "To mock out fetching results from devices, or provide other complex data structures that come from external libraries, you can use ``fixtures`` to read in pre-generated data." +msgstr "デバイスからの結果の取得を模倣したり、外部ライブラリーから取得した他の複雑なデータ構造を提供するために、``fixtures`` を使用して事前に生成されたデータを読み込むことができます。" -#: ../../rst/dev_guide/testing_validate-modules.rst:110 -msgid "missing-return-legacy" -msgstr "missing-return-legacy" +#: ../../rst/dev_guide/testing_units.rst:175 +msgid "You can check how `fixtures `_ are used in `cpuinfo fact tests `_" +msgstr "`cpuinfo ファクトテスト `_ で、`fixtures `_ が使用される方法を確認することができます。" -#: ../../rst/dev_guide/testing_validate-modules.rst:110 -msgid "No ``RETURN`` documentation provided for legacy module" -msgstr "レガシーモジュールには ``RETURN`` のドキュメントがありません" +#: ../../rst/dev_guide/testing_units.rst:178 +msgid "If you are simulating APIs you may find that Python placebo is useful. See :ref:`testing_units_modules` for more information." +msgstr "API のシミュレーションをしているのであれば、Python のプラシーボが役に立つかもしれません。詳細は、「:ref:`testing_units_modules`」を参照してください。" -#: ../../rst/dev_guide/testing_validate-modules.rst:111 -msgid "missing-suboption-docs" -msgstr "missing-suboption-docs" +#: ../../rst/dev_guide/testing_units.rst:183 +msgid "Code Coverage For New or Updated Unit Tests" +msgstr "新規ユニットテストまたは更新されたユニットテスト用のコード対応" -#: ../../rst/dev_guide/testing_validate-modules.rst:111 -msgid "Argument in argument_spec has sub-options but documentation does not define sub-options" -msgstr "argument_spec の引数にはサブオプションョンがありますが、ドキュメントではサブオプションが定義されていません" +#: ../../rst/dev_guide/testing_units.rst:184 +msgid "New code will be missing from the codecov.io coverage reports (see :ref:`developing_testing`), so local reporting is needed. Most ``ansible-test`` commands allow you to collect code coverage; this is particularly useful when to indicate where to extend testing." +msgstr "codecov.io カバレッジレポートから新しいコードが欠落し (:ref:`developing_testing`を参照)、ローカルレポートが必要です。ほとんどの ``ansible-test`` コマンドを使用すると、コードカバレッジを収集できます。これは、テストを拡張する場所を示すときに特に役立ちます。" -#: ../../rst/dev_guide/testing_validate-modules.rst:112 -msgid "module-incorrect-version-added" -msgstr "module-incorrect-version-added" +#: ../../rst/dev_guide/testing_units.rst:188 +msgid "To collect coverage data add the ``--coverage`` argument to your ``ansible-test`` command line:" +msgstr "カバレージデータを収集するには、``--coverage`` 引数を ``ansible-test`` コマンドラインに追加します。" -#: ../../rst/dev_guide/testing_validate-modules.rst:112 -msgid "Module level ``version_added`` is incorrect" -msgstr "モジュールレベル ``version_added`` は正しくありません" +#: ../../rst/dev_guide/testing_units.rst:195 +msgid "Results will be written to ``test/results/reports/coverage/index.html``" +msgstr "結果は ``test/results/reports/coverage/index.html`` に書き込まれます。" -#: ../../rst/dev_guide/testing_validate-modules.rst:113 -msgid "module-invalid-version-added" -msgstr "module-invalid-version-added" +#: ../../rst/dev_guide/testing_units.rst:203 +msgid "To clear data between test runs, use the ``ansible-test coverage erase`` command. See :ref:`testing_running_locally` for more information about generating coverage reports." +msgstr "テスト実行間のデータを消去するには、``ansible-test coverage erase`` コマンドを使用します。カバレッジレポートの生成の詳細は、「:ref:`testing_running_locally`」を参照してください。" -#: ../../rst/dev_guide/testing_validate-modules.rst:113 -msgid "Module level ``version_added`` is not a valid version number" -msgstr "モジュールレベルの ``version_added`` は、有効なバージョン番号ではありません" +#: ../../rst/dev_guide/testing_units.rst:210 +msgid ":ref:`testing_units_modules`" +msgstr ":ref:`testing_units_modules`" -#: ../../rst/dev_guide/testing_validate-modules.rst:114 -msgid "module-utils-specific-import" -msgstr "module-utils-specific-import" +#: ../../rst/dev_guide/testing_units.rst:211 +msgid "Special considerations for unit testing modules" +msgstr "ユニットテストモジュールに関する特別な考慮事項" -#: ../../rst/dev_guide/testing_validate-modules.rst:114 -msgid "``module_utils`` imports should import specific components, not ``*``" -msgstr "``module_utils`` は、``*`` ではなく、特定のコンポーネントをインポートする必要があります" +#: ../../rst/dev_guide/testing_units.rst:212 +#: ../../rst/dev_guide/testing_units_modules.rst:569 +msgid ":ref:`testing_running_locally`" +msgstr ":ref:`testing_running_locally`" -#: ../../rst/dev_guide/testing_validate-modules.rst:115 -msgid "multiple-utils-per-requires" -msgstr "multiple-utils-per-requires" +#: ../../rst/dev_guide/testing_units.rst:213 +#: ../../rst/dev_guide/testing_units_modules.rst:570 +msgid "Running tests locally including gathering and reporting coverage data" +msgstr "カバレージデータの収集とレポートを含む、ローカルでのテストの実行" -#: ../../rst/dev_guide/testing_validate-modules.rst:115 -msgid "``Ansible.ModuleUtils`` requirements do not support multiple modules per statement" -msgstr "``Ansible.ModuleUtils`` 要件は、ステートメントごとに複数のモジュールをサポートしません。" +#: ../../rst/dev_guide/testing_units.rst:214 +#: ../../rst/dev_guide/testing_units_modules.rst:573 +msgid "`Python 3 documentation - 26.4. unittest — Unit testing framework `_" +msgstr "`Python 3 documentation - 26.4. unittest — Unit testing framework `_" -#: ../../rst/dev_guide/testing_validate-modules.rst:116 -msgid "multiple-csharp-utils-per-requires" -msgstr "multiple-csharp-utils-per-requires" +#: ../../rst/dev_guide/testing_units.rst:215 +#: ../../rst/dev_guide/testing_units_modules.rst:574 +msgid "The documentation of the unittest framework in python 3" +msgstr "Python 3 におけるユニットテストフレームワークのドキュメント" -#: ../../rst/dev_guide/testing_validate-modules.rst:116 -msgid "Ansible C# util requirements do not support multiple utils per statement" -msgstr "C# ユーティリティー要件は、ステートメントごとに複数のモジュールをサポートしません。" +#: ../../rst/dev_guide/testing_units.rst:216 +#: ../../rst/dev_guide/testing_units_modules.rst:575 +msgid "`Python 2 documentation - 25.3. unittest — Unit testing framework `_" +msgstr "`Python 2 documentation - 25.3. unittest — Unit testing framework `_" -#: ../../rst/dev_guide/testing_validate-modules.rst:117 -msgid "no-default-for-required-parameter" -msgstr "no-default-for-required-parameter" +#: ../../rst/dev_guide/testing_units.rst:217 +#: ../../rst/dev_guide/testing_units_modules.rst:576 +msgid "The documentation of the earliest supported unittest framework - from Python 2.6" +msgstr "サポートされている初期のユニットテストフレームワークのドキュメント (Python 2.6)" -#: ../../rst/dev_guide/testing_validate-modules.rst:117 -msgid "Option is marked as required but specifies a default. Arguments with a default should not be marked as required" -msgstr "オプションは必須と識別されますが、デフォルトの引数を指定します。デフォルトの引数は必須と識別しないでください。" +#: ../../rst/dev_guide/testing_units.rst:218 +#: ../../rst/dev_guide/testing_units_modules.rst:577 +msgid "`pytest: helps you write better programs `_" +msgstr "`pytest: helps you write better programs `_" -#: ../../rst/dev_guide/testing_validate-modules.rst:118 -msgid "no-log-needed" -msgstr "no-log-needed" +#: ../../rst/dev_guide/testing_units.rst:219 +#: ../../rst/dev_guide/testing_units_modules.rst:578 +msgid "The documentation of pytest - the framework actually used to run Ansible unit tests" +msgstr "pytest のドキュメント - Ansible ユニットテストの実行に実際に使用されているフレームワーク" -#: ../../rst/dev_guide/testing_validate-modules.rst:118 -#: ../../rst/dev_guide/testing_validate-modules.rst:126 -#: ../../rst/dev_guide/testing_validate-modules.rst:127 -#: ../../rst/dev_guide/testing_validate-modules.rst:129 -#: ../../rst/dev_guide/testing_validate-modules.rst:130 -msgid "Parameters" -msgstr "パラメーター" +#: ../../rst/dev_guide/testing_units_modules.rst:7 +msgid "Unit Testing Ansible Modules" +msgstr "Ansible モジュールのユニットテスト" -#: ../../rst/dev_guide/testing_validate-modules.rst:118 -msgid "Option name suggests that the option contains a secret value, while ``no_log`` is not specified for this option in the argument spec. If this is a false positive, explicitly set ``no_log=False``" -msgstr "オプション名は、オプションにシークレット値が含まれていることを示唆していますが、引数仕様ではこのオプションに対して ``no_log`` が指定されていません。このオプションが誤検出の場合は明示的に ``no_log=False`` に設定します。" +#: ../../rst/dev_guide/testing_units_modules.rst:14 +msgid "Introduction" +msgstr "はじめに" -#: ../../rst/dev_guide/testing_validate-modules.rst:119 -msgid "nonexistent-parameter-documented" -msgstr "nonexistent-parameter-documented" +#: ../../rst/dev_guide/testing_units_modules.rst:16 +msgid "This document explains why, how and when you should use unit tests for Ansible modules. The document doesn't apply to other parts of Ansible for which the recommendations are normally closer to the Python standard. There is basic documentation for Ansible unit tests in the developer guide :ref:`testing_units`. This document should be readable for a new Ansible module author. If you find it incomplete or confusing, please open a bug or ask for help on the #ansible-devel chat channel (using Matrix at ansible.im or using IRC at `irc.libera.chat `_)." +msgstr "このドキュメントでは、Ansible モジュールにユニットテストを使用する理由、方法、タイミングを説明します。このドキュメントは、通常 Python の標準に近い推奨事項を持つ Ansible の他の部分には適用されません。Ansible のユニットテストに関する基本的なドキュメントは、開発者ガイドの「:ref:`testing_units`」にあります。このドキュメントは、新しい Ansible モジュールの作成者にとって読みやすいものでなければなりません。不完全だったり、分かりにくかったりした場合は、バグを報告したり、#ansible-develチャットチャンネル で助けを求めたりしてください(ansible.imでMatrixを使用、または`irc.libera.chat `_でIRCを使用)。" -#: ../../rst/dev_guide/testing_validate-modules.rst:119 -msgid "Argument is listed in DOCUMENTATION.options, but not accepted by the module" -msgstr "引数は DOCUMENTATION.options に一覧表示されますが、モジュールでは受け入れられません。" +#: ../../rst/dev_guide/testing_units_modules.rst:24 +msgid "What Are Unit Tests?" +msgstr "ユニットテストとは" -#: ../../rst/dev_guide/testing_validate-modules.rst:120 -msgid "option-incorrect-version-added" -msgstr "option-incorrect-version-added" +#: ../../rst/dev_guide/testing_units_modules.rst:26 +msgid "Ansible includes a set of unit tests in the :file:`test/units` directory. These tests primarily cover the internals but can also cover Ansible modules. The structure of the unit tests matches the structure of the code base, so the tests that reside in the :file:`test/units/modules/` directory are organized by module groups." +msgstr "Ansible には、:file:`test/units` ディレクトリーにユニットテストのセットが含まれています。これらのテストは、主に内部に対応していますが、Ansible モジュールにも対応します。ユニットテストの構造はコードベースのベースの構造に一致し、:file:`test/units/modules/` ディレクトリーに含まれるテストはモジュールグループごとに編成されます。" -#: ../../rst/dev_guide/testing_validate-modules.rst:120 -msgid "``version_added`` for new option is incorrect" -msgstr "新しいオプションの ``version_added`` は正しくありません" +#: ../../rst/dev_guide/testing_units_modules.rst:31 +msgid "Integration tests can be used for most modules, but there are situations where cases cannot be verified using integration tests. This means that Ansible unit test cases may extend beyond testing only minimal units and in some cases will include some level of functional testing." +msgstr "統合テストはほとんどのモジュールで使用できますが、統合テストではケースを検証できない場合もあります。つまり、Ansible ユニットテストケースは、最小限のユニットのみのテストにとどまらず、場合によっては、ある程度の機能テストが含まれることもあります。" -#: ../../rst/dev_guide/testing_validate-modules.rst:121 -msgid "option-invalid-version-added" -msgstr "option-invalid-version-added" +#: ../../rst/dev_guide/testing_units_modules.rst:38 +msgid "Why Use Unit Tests?" +msgstr "ユニットテストを使用する理由" -#: ../../rst/dev_guide/testing_validate-modules.rst:121 -msgid "``version_added`` for option is not a valid version number" -msgstr "``version_added`` オプションが有効なバージョン番号ではありません" +#: ../../rst/dev_guide/testing_units_modules.rst:40 +msgid "Ansible unit tests have advantages and disadvantages. It is important to understand these. Advantages include:" +msgstr "Ansible ユニットテストには長所と短所があり、その点を理解することは重要です。以下が挙げられます。" -#: ../../rst/dev_guide/testing_validate-modules.rst:122 -msgid "parameter-invalid" -msgstr "parameter-invalid" +#: ../../rst/dev_guide/testing_units_modules.rst:43 +msgid "Most unit tests are much faster than most Ansible integration tests. The complete suite of unit tests can be run regularly by a developer on their local system." +msgstr "ほとんどのユニットテストは、ほとんどの Ansible 統合テストよりもはるかに高速です。ユニットテストの完全なスイートは、ローカルシステムで開発者が定期的に実行できます。" -#: ../../rst/dev_guide/testing_validate-modules.rst:122 -msgid "Argument in argument_spec is not a valid python identifier" -msgstr "argument_spec の引数は有効な python 識別子ではありません" +#: ../../rst/dev_guide/testing_units_modules.rst:45 +msgid "Unit tests can be run by developers who don't have access to the system which the module is designed to work on, allowing a level of verification that changes to core functions haven't broken module expectations." +msgstr "ユニットテストは、モジュールが動作するように設計されているシステムにアクセスできない開発者が実行することができ、コア機能への変更がモジュールの期待どおりであることをある程度検証できます。" -#: ../../rst/dev_guide/testing_validate-modules.rst:123 -msgid "parameter-invalid-elements" -msgstr "parameter-invalid-elements" +#: ../../rst/dev_guide/testing_units_modules.rst:48 +msgid "Unit tests can easily substitute system functions allowing testing of software that would be impractical. For example, the ``sleep()`` function can be replaced and we check that a ten minute sleep was called without actually waiting ten minutes." +msgstr "ユニットテストは、システム関数を簡単に置換でき、実現するソフトウェアのテストを簡単に指定することができます。たとえば、``sleep()`` 関数を置き換えることができ、実際に 10 分待たずに 10 分のスリープが呼び出されたことを確認します。" -#: ../../rst/dev_guide/testing_validate-modules.rst:123 -msgid "Value for \"elements\" is valid only when value of \"type\" is ``list``" -msgstr "「elements」の値は、「type」の値が ``list`` である場合に限り有効です" +#: ../../rst/dev_guide/testing_units_modules.rst:51 +msgid "Unit tests are run on different Python versions. This allows us to ensure that the code behaves in the same way on different Python versions." +msgstr "ユニットテストは、Python の各バージョンで実行されます。これにより、コードが異なる Python のバージョンでも同じように動作することを確認できます。" -#: ../../rst/dev_guide/testing_validate-modules.rst:124 -msgid "implied-parameter-type-mismatch" -msgstr "implied-parameter-type-mismatch" +#: ../../rst/dev_guide/testing_units_modules.rst:54 +msgid "There are also some potential disadvantages of unit tests. Unit tests don't normally directly test actual useful valuable features of software, instead just internal implementation" +msgstr "ユニットテストには、いくつかの潜在的な欠点もあります。通常、実際に便利で価値のある機能を直接テストせず、代わりに内部実装をテストします。" -#: ../../rst/dev_guide/testing_validate-modules.rst:124 -msgid "Argument_spec implies ``type=\"str\"`` but documentation defines it as different data type" -msgstr "argument_spec には ``type=\"str\"`` の意が含まれますが、ドキュメントでは、別のデータ型として指定されています" +#: ../../rst/dev_guide/testing_units_modules.rst:58 +msgid "Unit tests that test the internal, non-visible features of software may make refactoring difficult if those internal features have to change (see also naming in How below)" +msgstr "ソフトウェア内部にある、目に見えない機能をテストするユニットテストは、それらの内部機能を変更する必要がある場合、リファクタリングを困難にする可能性があります (以下の「方法」の命名も参照)。" -#: ../../rst/dev_guide/testing_validate-modules.rst:125 -msgid "parameter-type-not-in-doc" -msgstr "parameter-type-not-in-doc" +#: ../../rst/dev_guide/testing_units_modules.rst:61 +msgid "Even if the internal feature is working correctly it is possible that there will be a problem between the internal code tested and the actual result delivered to the user" +msgstr "内部機能が正しく機能している場合でも、テストされた内部コードとユーザーに配信される実際の結果との間に問題が発生する可能性があります。" -#: ../../rst/dev_guide/testing_validate-modules.rst:125 -msgid "Type value is defined in ``argument_spec`` but documentation doesn't specify a type" -msgstr "タイプ値は ``argument_spec`` で定義されていますが、ドキュメントはタイプを指定していません" +#: ../../rst/dev_guide/testing_units_modules.rst:64 +msgid "Normally the Ansible integration tests (which are written in Ansible YAML) provide better testing for most module functionality. If those tests already test a feature and perform well there may be little point in providing a unit test covering the same area as well." +msgstr "通常、(Ansible YAML で記述される) Ansible 統合テストは、ほとんどのモジュール機能に対してより良いテストを提供します。これらのテストがすでに機能をテストしていて、うまく機能している場合は、同じ領域をカバーするユニットテストを提供する意味はほとんどないかもしれません。" -#: ../../rst/dev_guide/testing_validate-modules.rst:126 -msgid "parameter-alias-repeated" -msgstr "parameter-alias-repeated" +#: ../../rst/dev_guide/testing_units_modules.rst:69 +msgid "When To Use Unit Tests" +msgstr "ユニットテストを使用するタイミング" -#: ../../rst/dev_guide/testing_validate-modules.rst:126 -msgid "argument in argument_spec has at least one alias specified multiple times in aliases" -msgstr "argument_spec の引数には、エイリアスに複数回指定されたエイリアスが 1 つ以上含まれます" +#: ../../rst/dev_guide/testing_units_modules.rst:71 +msgid "There are a number of situations where unit tests are a better choice than integration tests. For example, testing things which are impossible, slow or very difficult to test with integration tests, such as:" +msgstr "統合テストよりもユニットテストの方が適している状況は数多くあります。たとえば、次のような統合テストでテストすることが不可能で、遅い、または非常に難しいものをテストします。" -#: ../../rst/dev_guide/testing_validate-modules.rst:127 -msgid "parameter-alias-self" -msgstr "parameter-alias-self" +#: ../../rst/dev_guide/testing_units_modules.rst:75 +msgid "Forcing rare / strange / random situations that can't be forced, such as specific network failures and exceptions" +msgstr "特定のネットワーク障害や例外のような、強制することができない稀な、奇妙な、およびランダムな状況を強制。" -#: ../../rst/dev_guide/testing_validate-modules.rst:127 -msgid "argument in argument_spec is specified as its own alias" -msgstr "argument_spec の引数は、独自のエイリアスとして指定されます" +#: ../../rst/dev_guide/testing_units_modules.rst:77 +msgid "Extensive testing of slow configuration APIs" +msgstr "遅い設定 API の広範なテスト" -#: ../../rst/dev_guide/testing_validate-modules.rst:128 -msgid "parameter-documented-multiple-times" -msgstr "parameter-documented-multiple-times" +#: ../../rst/dev_guide/testing_units_modules.rst:78 +msgid "Situations where the integration tests cannot be run as part of the main Ansible continuous integration running in Azure Pipelines." +msgstr "Azure Pipeline で実行されているメインの Ansible 継続的統合の一部として、統合テストを実行できない状況。" -#: ../../rst/dev_guide/testing_validate-modules.rst:128 -msgid "argument in argument_spec with aliases is documented multiple times" -msgstr "エイリアスを持つ argument_spec の引数が複数回文書化されています" +#: ../../rst/dev_guide/testing_units_modules.rst:84 +msgid "Providing quick feedback" +msgstr "迅速なフィードバックの提供" -#: ../../rst/dev_guide/testing_validate-modules.rst:129 -msgid "parameter-list-no-elements" -msgstr "parameter-list-no-elements" +#: ../../rst/dev_guide/testing_units_modules.rst:87 +msgid "A single step of the rds_instance test cases can take up to 20 minutes (the time to create an RDS instance in Amazon). The entire test run can last for well over an hour. All 16 of the unit tests complete execution in less than 2 seconds." +msgstr "rds_instance のテストケースの 1 つのステップには、最大 20 分 (Amazonで RDS インスタンスを作成する時間) かかる場合があります。テストの実行は、全体で 1 時間以上かかることもあります。16 個のユニットテストは、すべて 2 秒以内に実行を完了します。" -#: ../../rst/dev_guide/testing_validate-modules.rst:129 -msgid "argument in argument_spec \"type\" is specified as ``list`` without defining \"elements\"" -msgstr "argument_spec「type」の引数は、「要素」を定義せずに ``list`` のように指定されます。" +#: ../../rst/dev_guide/testing_units_modules.rst:92 +msgid "The time saving provided by being able to run the code in a unit test makes it worth creating a unit test when bug fixing a module, even if those tests do not often identify problems later. As a basic goal, every module should have at least one unit test which will give quick feedback in easy cases without having to wait for the integration tests to complete." +msgstr "ユニットテストでコードを実行できることによって提供される時間の節約により、モジュールのバグ修正時にユニットテストを作成する価値があります。これらのテストで後で問題が特定されることはあまりありません。基本的な目標として、すべてのモジュールには少なくとも 1 つのユニットテストが必要です。これにより、統合テストが完了するのを待たずに、簡単なケースで迅速なフィードバックが得られます。" -#: ../../rst/dev_guide/testing_validate-modules.rst:130 -msgid "parameter-state-invalid-choice" -msgstr "parameter-state-invalid-choice" +#: ../../rst/dev_guide/testing_units_modules.rst:99 +msgid "Ensuring correct use of external interfaces" +msgstr "外部インターフェースを正しく使用すること" -#: ../../rst/dev_guide/testing_validate-modules.rst:130 -msgid "Argument ``state`` includes ``get``, ``list`` or ``info`` as a choice. Functionality should be in an ``_info`` or (if further conditions apply) ``_facts`` module." -msgstr "引数 ``state`` には、``get``、``list``、または ``info`` が含まれています。機能性は ``_info`` または (追加の条件が適用される場合は) ``_facts`` モジュールである必要があります。" +#: ../../rst/dev_guide/testing_units_modules.rst:101 +msgid "Unit tests can check the way in which external services are run to ensure that they match specifications or are as efficient as possible *even when the final output will not be changed*." +msgstr "ユニットテストは、*最終的な出力が変更されない場合でも*、外部サービスの実行方法が仕様に合致しているか、あるいは可能な限り効率的であるかを確認できます。" -#: ../../rst/dev_guide/testing_validate-modules.rst:131 -msgid "python-syntax-error" -msgstr "python-syntax-error" +#: ../../rst/dev_guide/testing_units_modules.rst:105 +msgid "Package managers are often far more efficient when installing multiple packages at once rather than each package separately. The final result is the same: the packages are all installed, so the efficiency is difficult to verify through integration tests. By providing a mock package manager and verifying that it is called once, we can build a valuable test for module efficiency." +msgstr "パッケージマネージャーは、各パッケージを個別にインストールするよりも、複数のパッケージを一度にインストールする方がはるかに効率的であることがよくあります。最終結果は同じです。すべてのパッケージがインストールされるため、統合テストで効率を検証することは困難です。模擬パッケージマネージャを提供し、それが一度に呼ばれることを検証するため、モジュール効率について貴重なテストを構築できます。" -#: ../../rst/dev_guide/testing_validate-modules.rst:131 -msgid "Python ``SyntaxError`` while parsing module" -msgstr "モジュールの解析中の Python ``SyntaxError``" +#: ../../rst/dev_guide/testing_units_modules.rst:111 +msgid "Another related use is in the situation where an API has versions which behave differently. A programmer working on a new version may change the module to work with the new API version and unintentionally break the old version. A test case which checks that the call happens properly for the old version can help avoid the problem. In this situation it is very important to include version numbering in the test case name (see `Naming unit tests`_ below)." +msgstr "別の関連する使用法は、API の動作が異なるバージョンがある状況です。新しいバージョンで作業しているプログラマーは、新しい API バージョンで動作するようにモジュールを変更し、意図せずに古いバージョンを壊してしまう可能性があります。古いバージョンで呼び出しが適切に行われることを確認するテストケースは、問題を回避するのに役立ちます。この状況では、テストケース名にバージョン番号を含めることが非常に重要です (以下 `Naming unit tests`_ を参照)。" -#: ../../rst/dev_guide/testing_validate-modules.rst:132 -msgid "removal-version-must-be-major" -msgstr "removal-version-must-be-major" +#: ../../rst/dev_guide/testing_units_modules.rst:119 +msgid "Providing specific design tests" +msgstr "特定の設計テストの提供" -#: ../../rst/dev_guide/testing_validate-modules.rst:132 -msgid "According to the semantic versioning specification (https://semver.org/), the only versions in which features are allowed to be removed are major versions (x.0.0)" -msgstr "セマンティックバージョニング仕様 (https://semver.org/) によると、機能の削除が許可されているバージョンはメジャーバージョン (x.0.0) のみです。" +#: ../../rst/dev_guide/testing_units_modules.rst:121 +msgid "By building a requirement for a particular part of the code and then coding to that requirement, unit tests _can_ sometimes improve the code and help future developers understand that code." +msgstr "コードの特定の部分に対する要件を構築し、その要件に合わせてコーディングすることで、ユニットテストは、時にはコードを改善し、将来の開発者がそのコードを理解する助けとなります。" -#: ../../rst/dev_guide/testing_validate-modules.rst:133 -msgid "return-syntax-error" -msgstr "return-syntax-error" +#: ../../rst/dev_guide/testing_units_modules.rst:125 +msgid "Unit tests that test internal implementation details of code, on the other hand, almost always do more harm than good. Testing that your packages to install are stored in a list would slow down and confuse a future developer who might need to change that list into a dictionary for efficiency. This problem can be reduced somewhat with clear test naming so that the future developer immediately knows to delete the test case, but it is often better to simply leave out the test case altogether and test for a real valuable feature of the code, such as installing all of the packages supplied as arguments to the module." +msgstr "一方、コードの内部実装の詳細をテストするユニットテストは、ほとんどの場合、益よりも害をもたらします。インストールするパッケージがリストに格納されているかどうかをテストすると、遅くなり、効率化のためにリストをディクショナリーに変更しないといけない将来の開発者を混乱させます。この問題は、将来の開発者がすぐにテストケースを削除することがわかるように、明確なテスト名をつけることで多少軽減できますが、単にテストケースを完全に除外して、モジュールの引数として与えられたすべてのパッケージをインストールするなど、コードの本当の価値ある機能をテストする方が良い場合が多いです。" + +#: ../../rst/dev_guide/testing_units_modules.rst:135 +msgid "How to unit test Ansible modules" +msgstr "Ansible モジュールをユニットテストする方法" -#: ../../rst/dev_guide/testing_validate-modules.rst:133 -msgid "``RETURN`` is not valid YAML, ``RETURN`` fragments missing or invalid" -msgstr "``RETURN`` は、有効な YAML ではありません。``RETURN`` フラグメントが見つからないか、無効です。" +#: ../../rst/dev_guide/testing_units_modules.rst:137 +msgid "There are a number of techniques for unit testing modules. Beware that most modules without unit tests are structured in a way that makes testing quite difficult and can lead to very complicated tests which need more work than the code. Effectively using unit tests may lead you to restructure your code. This is often a good thing and leads to better code overall. Good restructuring can make your code clearer and easier to understand." +msgstr "ユニットテストモジュールにはいくつかの手法があります。ユニットテストのないほとんどのモジュールでは、テストが非常に困難になり、コードよりも多くの作業が必要な、非常に複雑なテストにつながる可能性があることに注意してください。ユニットテストを効果的に使用するには、コードを再構築する可能性があります。これは多くの場合良いことであり、全体的に優れたコードにつながります。適切な再構築により、コードがより明確になり、理解しやすくなります。" -#: ../../rst/dev_guide/testing_validate-modules.rst:134 -msgid "return-invalid-version-added" -msgstr "return-invalid-version-added" +#: ../../rst/dev_guide/testing_units_modules.rst:145 +msgid "Naming unit tests" +msgstr "ユニットテストの命名" -#: ../../rst/dev_guide/testing_validate-modules.rst:134 -msgid "``version_added`` for return value is not a valid version number" -msgstr "戻り値の ``version_added`` は、有効なバージョン番号ではありません" +#: ../../rst/dev_guide/testing_units_modules.rst:147 +msgid "Unit tests should have logical names. If a developer working on the module being tested breaks the test case, it should be easy to figure what the unit test covers from the name. If a unit test is designed to verify compatibility with a specific software or API version then include the version in the name of the unit test." +msgstr "ユニットテストは論理名を付ける必要があります。テスト対象のモジュールで作業している開発者がテストケースを壊してしまった場合に、ユニットテストが何を対象としているのかが名前から簡単に分かるようにする必要があります。ユニットテストが特定のソフトウェアや API のバージョンとの互換性を検証するように設計されている場合は、ユニットテストの名前にそのバージョンを追加してください。" -#: ../../rst/dev_guide/testing_validate-modules.rst:135 -msgid "subdirectory-missing-init" -msgstr "subdirectory-missing-init" +#: ../../rst/dev_guide/testing_units_modules.rst:152 +msgid "As an example, ``test_v2_state_present_should_call_create_server_with_name()`` would be a good name, ``test_create_server()`` would not be." +msgstr "たとえば、``test_v2_state_present_should_call_create_server_with_name()`` が適切な名前で、``test_create_server()`` は適切ではありません。" -#: ../../rst/dev_guide/testing_validate-modules.rst:135 -msgid "Ansible module subdirectories must contain an ``__init__.py``" -msgstr "Ansible モジュールのサブディレクトリーには ``__init__.py`` が含まれている必要があります。" +#: ../../rst/dev_guide/testing_units_modules.rst:157 +msgid "Use of Mocks" +msgstr "モックの使用" -#: ../../rst/dev_guide/testing_validate-modules.rst:136 -msgid "try-except-missing-has" -msgstr "try-except-missing-has" +#: ../../rst/dev_guide/testing_units_modules.rst:159 +msgid "Mock objects (from https://docs.python.org/3/library/unittest.mock.html) can be very useful in building unit tests for special / difficult cases, but they can also lead to complex and confusing coding situations. One good use for mocks would be in simulating an API. As for 'six', the 'mock' python package is bundled with Ansible (use ``import units.compat.mock``)." +msgstr "(https://docs.python.org/3/library/unittest.mock.html_ からの) モックオブジェクトは、特殊なケースや困難なケースのユニットテストを構築するのに非常に便利ですが、複雑で理解しづらいコーディングになってしまうこともあります。モックの使用方法として適切なものの 1 つに、API のシミュレートがあります。Python パッケージの「six」、「mock」は、Ansible にバンドルされています (``import units.compat.mock`` を使用)。" -#: ../../rst/dev_guide/testing_validate-modules.rst:136 -msgid "Try/Except ``HAS_`` expression missing" -msgstr "try/Except ``HAS_`` 式がない" +#: ../../rst/dev_guide/testing_units_modules.rst:166 +msgid "Ensuring failure cases are visible with mock objects" +msgstr "モックオブジェクトで障害ケースを確実に可視化" -#: ../../rst/dev_guide/testing_validate-modules.rst:137 -msgid "undocumented-parameter" -msgstr "undocumented-parameter" +#: ../../rst/dev_guide/testing_units_modules.rst:168 +msgid "Functions like :meth:`module.fail_json` are normally expected to terminate execution. When you run with a mock module object this doesn't happen since the mock always returns another mock from a function call. You can set up the mock to raise an exception as shown above, or you can assert that these functions have not been called in each test. For example:" +msgstr ":meth:`module.fail_json` などの関数は、通常、実行を終了することが期待されます。モックモジュールオブジェクトを使用して実行すると、モックは常に関数呼び出しから別のモックを返すため、このようなことは起こりません。上記のように例外を発生させるようにモックを設定することもできますし、各テストでこれらの関数が呼び出されていないことをアサートすることもできます。以下に例を示します。" -#: ../../rst/dev_guide/testing_validate-modules.rst:137 -msgid "Argument is listed in the argument_spec, but not documented in the module" -msgstr "引数が argument_spec に記載されていますが、このモジュールでは文書化されていません。" +#: ../../rst/dev_guide/testing_units_modules.rst:179 +msgid "This applies not only to calling the main module but almost any other function in a module which gets the module object." +msgstr "これは、メインモジュールを呼び出す場合だけでなく、モジュールオブジェクトを取得するモジュール内の他のほとんどの関数を呼び出す場合にも適用されます。" -#: ../../rst/dev_guide/testing_validate-modules.rst:138 -msgid "unidiomatic-typecheck" -msgstr "unidiomatic-typecheck" +#: ../../rst/dev_guide/testing_units_modules.rst:184 +msgid "Mocking of the actual module" +msgstr "実際のモジュールのモック化" -#: ../../rst/dev_guide/testing_validate-modules.rst:138 -msgid "Type comparison using ``type()`` found. Use ``isinstance()`` instead" -msgstr "``type()`` を使用したタイプ比較。代わりに ``isinstance()`` を使用してください。" +#: ../../rst/dev_guide/testing_units_modules.rst:186 +msgid "The setup of an actual module is quite complex (see `Passing Arguments`_ below) and often isn't needed for most functions which use a module. Instead you can use a mock object as the module and create any module attributes needed by the function you are testing. If you do this, beware that the module exit functions need special handling as mentioned above, either by throwing an exception or ensuring that they haven't been called. For example:" +msgstr "実際のモジュールの設定は非常に複雑で (以下の `引数の渡し方`_ を参照)、モジュールを使用するほとんどの機能には必要ありません。モックオブジェクトをモジュールとして使用する代わりに、テストする関数で必要なモジュール属性を作成できます。この場合、モジュールの終了関数は、上述のように、例外を発生させるか、呼び出されていないことを確認するなど、特別な処理が必要になることに注意してください。以下に例を示します。" -#: ../../rst/dev_guide/testing_validate-modules.rst:139 -msgid "unknown-doc-fragment" -msgstr "unknown-doc-fragment" +#: ../../rst/dev_guide/testing_units_modules.rst:207 +msgid "API definition with unit test cases" +msgstr "ユニットテストケースでの API 定義" -#: ../../rst/dev_guide/testing_validate-modules.rst:139 -msgid "Unknown pre-existing ``DOCUMENTATION`` error" -msgstr "不明な既存の ``DOCUMENTATION`` エラー" +#: ../../rst/dev_guide/testing_units_modules.rst:209 +msgid "API interaction is usually best tested with the function tests defined in Ansible's integration testing section, which run against the actual API. There are several cases where the unit tests are likely to work better." +msgstr "API の対話は通常、実際の API に対して実行する Ansible の統合テストセクションで定義された関数テストでテストを行うのが最適です。ユニットテストが適切に機能する可能性があります。" -#: ../../rst/dev_guide/testing_validate-modules.rst:140 -msgid "use-boto3" -msgstr "use-boto3" +#: ../../rst/dev_guide/testing_units_modules.rst:214 +msgid "Defining a module against an API specification" +msgstr "API の仕様に対してモジュールを定義" -#: ../../rst/dev_guide/testing_validate-modules.rst:140 -msgid "``boto`` import found, new modules should use ``boto3``" -msgstr "``boto`` インポートが見つかりました。代わりに ``boto3`` を使用してください" +#: ../../rst/dev_guide/testing_units_modules.rst:216 +msgid "This case is especially important for modules interacting with web services, which provide an API that Ansible uses but which are beyond the control of the user." +msgstr "このケースは、Ansible が使用する API を提供しているが、ユーザーの制御が及ばない Web サービスと対話するモジュールにとって特に重要になります。" -#: ../../rst/dev_guide/testing_validate-modules.rst:141 -msgid "use-fail-json-not-sys-exit" -msgstr "use-fail-json-not-sys-exit" +#: ../../rst/dev_guide/testing_units_modules.rst:219 +msgid "By writing a custom emulation of the calls that return data from the API, we can ensure that only the features which are clearly defined in the specification of the API are present in the message. This means that we can check that we use the correct parameters and nothing else." +msgstr "API からデータを返す呼び出しのカスタムエミュレーションを書くことで、API の仕様で明確に定義されている機能のみがメッセージに含まれていることを確認できます。つまり、正しいパラメーターを使用しているかどうかを確認し、それ以外は何も使用していないことを確認することができます。" -#: ../../rst/dev_guide/testing_validate-modules.rst:141 -msgid "``sys.exit()`` call found. Should be ``exit_json``/``fail_json``" -msgstr "``sys.exit()`` 呼び出しが見つかりました。``exit_json``/``fail_json`` でなければなりません。" +#: ../../rst/dev_guide/testing_units_modules.rst:225 +msgid "*Example: in rds_instance unit tests a simple instance state is defined*:" +msgstr "*例: rds_instance ユニットテストでは、単純なインスタンスの状態が定義されています*。" -#: ../../rst/dev_guide/testing_validate-modules.rst:142 -msgid "use-module-utils-urls" -msgstr "use-module-utils-urls" +#: ../../rst/dev_guide/testing_units_modules.rst:235 +msgid "This is then used to create a list of states:" +msgstr "次に、これを使用して状態のリストを作成します。" -#: ../../rst/dev_guide/testing_validate-modules.rst:142 -msgid "``requests`` import found, should use ``ansible.module_utils.urls`` instead" -msgstr "``requests`` インポートしています。代わりに ``ansible.module_utils.urls`` を使用してください" +#: ../../rst/dev_guide/testing_units_modules.rst:252 +msgid "These states are then used as returns from a mock object to ensure that the ``await`` function waits through all of the states that would mean the RDS instance has not yet completed configuration:" +msgstr "これらの状態は、モックオブジェクトからの戻り値として使用され、``await`` 関数は、RDS インスタンスがまだ設定を完了しないことを意味するすべての状態を待機します。" -#: ../../rst/dev_guide/testing_validate-modules.rst:143 -msgid "use-run-command-not-os-call" -msgstr "use-run-command-not-os-call" +#: ../../rst/dev_guide/testing_units_modules.rst:262 +msgid "By doing this we check that the ``await`` function will keep waiting through potentially unusual that it would be impossible to reliably trigger through the integration tests but which happen unpredictably in reality." +msgstr "これを実行することで、統合テストでは確実に誘発させることができないにもかかわらず、現実には予測できないような、潜在的に異常なことが起こる可能性がある場合に ``await`` 関数が待機し続けるかどうかを確認します。" -#: ../../rst/dev_guide/testing_validate-modules.rst:143 -msgid "``os.call`` used instead of ``module.run_command``" -msgstr "``module.run_command`` の代わりに、``os.call`` を使用します。" +#: ../../rst/dev_guide/testing_units_modules.rst:267 +msgid "Defining a module to work against multiple API versions" +msgstr "複数の API バージョンに対して動作するモジュールの定義" -#: ../../rst/dev_guide/testing_validate-modules.rst:144 -msgid "use-run-command-not-popen" -msgstr "use-run-command-not-popen" +#: ../../rst/dev_guide/testing_units_modules.rst:269 +msgid "This case is especially important for modules interacting with many different versions of software; for example, package installation modules that might be expected to work with many different operating system versions." +msgstr "このケースは、多くの異なるバージョンのソフトウェアと対話するモジュールにとって特に重要です。たとえば、さまざまなオペレーティングシステムのバージョンと動作することが想定されるパッケージインストールモジュールなどです。" -#: ../../rst/dev_guide/testing_validate-modules.rst:144 -msgid "``subprocess.Popen`` used instead of ``module.run_command``" -msgstr "``module.run_command`` の代わりに、``subprocess.Popen`` を使用します。" +#: ../../rst/dev_guide/testing_units_modules.rst:273 +msgid "By using previously stored data from various versions of an API we can ensure that the code is tested against the actual data which will be sent from that version of the system even when the version is very obscure and unlikely to be available during testing." +msgstr "さまざまなバージョンの API から、以前に保存されたデータを使用することで、バージョンが非常に曖昧でテスト中に利用できそうにない場合でも、そのバージョンのシステムから送信される実際のデータに対してコードがテストできるようになります。" -#: ../../rst/dev_guide/testing_validate-modules.rst:145 -msgid "use-short-gplv3-license" -msgstr "use-short-gplv3-license" +#: ../../rst/dev_guide/testing_units_modules.rst:278 +msgid "Ansible special cases for unit testing" +msgstr "Ansible ユニットテストの特殊なケース" -#: ../../rst/dev_guide/testing_validate-modules.rst:145 -msgid "GPLv3 license header should be the :ref:`short form ` for new modules" -msgstr "GPLv3 ライセンスヘッダーは、新しいモジュールの :ref:`短縮形 ` である必要があります" +#: ../../rst/dev_guide/testing_units_modules.rst:280 +msgid "There are a number of special cases for unit testing the environment of an Ansible module. The most common are documented below, and suggestions for others can be found by looking at the source code of the existing unit tests or asking on the Ansible chat channel or mailing lists. For more information on joining chat channels and subscribing to mailing lists, see :ref:`communication`." +msgstr "Ansible モジュールの環境に対してユニットテストを行うための特別なケースがいくつかあります。最も一般的なものを以下に示します。他の人への提案は、既存のユニットテストのソースコードを確認するか、Ansible チャットチャンネルまたはメーリングリストで質問することで見つけることができます。チャットチャンネルへの参加およびメーリングリストのサブスクライブの詳細については、:ref:`communication`を参照してください。" -#: ../../rst/dev_guide/testing_validate-modules.rst:146 -msgid "mutually_exclusive-type" -msgstr "mutually_exclusive-type" +#: ../../rst/dev_guide/testing_units_modules.rst:286 +msgid "Module argument processing" +msgstr "モジュール引数処理" -#: ../../rst/dev_guide/testing_validate-modules.rst:146 -msgid "mutually_exclusive entry contains non-string value" -msgstr "mutually_exclusive エントリーには文字列以外の値が含まれます" +#: ../../rst/dev_guide/testing_units_modules.rst:288 +msgid "There are two problems with running the main function of a module:" +msgstr "モジュールの主な関数の実行には、以下の 2 つの問題があります。" -#: ../../rst/dev_guide/testing_validate-modules.rst:147 -msgid "mutually_exclusive-collision" -msgstr "mutually_exclusive-collision" +#: ../../rst/dev_guide/testing_units_modules.rst:290 +msgid "Since the module is supposed to accept arguments on ``STDIN`` it is a bit difficult to set up the arguments correctly so that the module will get them as parameters." +msgstr "モジュールは ``STDIN`` で引数を受け入れる必要があるため、引数を正しく設定してモジュールがパラメーターとして受け取るようにするのは少し難しくなります。" -#: ../../rst/dev_guide/testing_validate-modules.rst:147 -msgid "mutually_exclusive entry has repeated terms" -msgstr "mutually_exclusive エントリーが繰り返し使用されます" +#: ../../rst/dev_guide/testing_units_modules.rst:292 +msgid "All modules should finish by calling either the :meth:`module.fail_json` or :meth:`module.exit_json`, but these won't work correctly in a testing environment." +msgstr "すべてのモジュールは、:meth:`module.fail_json` または :meth:`module.exit_json` を呼び出して終了する必要がありますが、テスト環境では正常に動作しません。" -#: ../../rst/dev_guide/testing_validate-modules.rst:148 -msgid "mutually_exclusive-unknown" -msgstr "mutually_exclusive-unknown" +#: ../../rst/dev_guide/testing_units_modules.rst:296 +msgid "Passing Arguments" +msgstr "引数の渡し方" -#: ../../rst/dev_guide/testing_validate-modules.rst:148 -msgid "mutually_exclusive entry contains option which does not appear in argument_spec (potentially an alias of an option?)" -msgstr "mutually_exclusive エントリーには、argument_spec に表示されないオプションが含まれています (オプションのエイリアスである可能性がありますか?)" +#: ../../rst/dev_guide/testing_units_modules.rst:301 +msgid "To pass arguments to a module correctly, use the ``set_module_args`` method which accepts a dictionary as its parameter. Module creation and argument processing is handled through the :class:`AnsibleModule` object in the basic section of the utilities. Normally this accepts input on ``STDIN``, which is not convenient for unit testing. When the special variable is set it will be treated as if the input came on ``STDIN`` to the module. Simply call that function before setting up your module:" +msgstr "モジュールに正しく引数を渡すには、ディクショナリーをパラメーターとして受け付ける ``set_module_args`` メソッドを使用します。モジュールの作成と引数の処理は、ユーティリティーの基本セクションにある :class:`AnsibleModule` オブジェクトによって処理されます。通常は ``STDIN`` で入力を受け付けますが、これはユニットテストには不便です。特殊変数が設定されると、あたかも入力が ``STDIN`` でモジュールに来たかのように扱われます。モジュールをセットアップする前にこの関数を呼び出すだけです。" -#: ../../rst/dev_guide/testing_validate-modules.rst:149 -msgid "required_one_of-type" -msgstr "required_one_of-type" +#: ../../rst/dev_guide/testing_units_modules.rst:321 +msgid "Handling exit correctly" +msgstr "終了を適切に処理" -#: ../../rst/dev_guide/testing_validate-modules.rst:149 -msgid "required_one_of entry contains non-string value" -msgstr "required_one_of エントリーには文字列以外の値が含まれます" +#: ../../rst/dev_guide/testing_units_modules.rst:326 +msgid "The :meth:`module.exit_json` function won't work properly in a testing environment since it writes error information to ``STDOUT`` upon exit, where it is difficult to examine. This can be mitigated by replacing it (and :meth:`module.fail_json`) with a function that raises an exception:" +msgstr ":meth:`module.exit_json` 関数は、終了時にエラー情報を ``STDOUT`` に書き込むため、テスト環境で適切に動作しません。これは検証が困難です。これは、この関数 (および :meth:`module.fail_json`) を、例外を発生させる関数に置き換えることで軽減できます。" -#: ../../rst/dev_guide/testing_validate-modules.rst:150 -msgid "required_one_of-collision" -msgstr "required_one_of-collision" +#: ../../rst/dev_guide/testing_units_modules.rst:338 +msgid "Now you can ensure that the first function called is the one you expected simply by testing for the correct exception:" +msgstr "これで、正しい例外をテストするだけで、最初に呼び出された関数が期待したものであることを確認できるようになりました。" -#: ../../rst/dev_guide/testing_validate-modules.rst:150 -msgid "required_one_of entry has repeated terms" -msgstr "required_one_of エントリーが繰り返し使用されます" +#: ../../rst/dev_guide/testing_units_modules.rst:353 +msgid "The same technique can be used to replace :meth:`module.fail_json` (which is used for failure returns from modules) and for the ``aws_module.fail_json_aws()`` (used in modules for Amazon Web Services)." +msgstr "同じテクニックを使用して、:meth:`module.fail_json` (モジュールから返る障害に使用) および ``aws_module.fail_json_aws()`` (Amazon Web Services のモジュールに使用) に置き換えることができます。" -#: ../../rst/dev_guide/testing_validate-modules.rst:151 -msgid "required_one_of-unknown" -msgstr "required_one_of-unknown" +#: ../../rst/dev_guide/testing_units_modules.rst:358 +msgid "Running the main function" +msgstr "主な関数の実行" -#: ../../rst/dev_guide/testing_validate-modules.rst:151 -msgid "required_one_of entry contains option which does not appear in argument_spec (potentially an alias of an option?)" -msgstr "required_one_of エントリーには、argument_spec に表示されないオプションが含まれています (オプションのエイリアスである可能性がありますか?)" +#: ../../rst/dev_guide/testing_units_modules.rst:360 +msgid "If you do want to run the actual main function of a module you must import the module, set the arguments as above, set up the appropriate exit exception and then run the module:" +msgstr "モジュールにおける主な実関数を実行する場合は、モジュールをインポートし、上記のように引数を設定し、適切な終了例外を設定してからモジュールを実行する必要があります。" -#: ../../rst/dev_guide/testing_validate-modules.rst:152 -msgid "required_together-type" -msgstr "required_together-type" +#: ../../rst/dev_guide/testing_units_modules.rst:380 +msgid "Handling calls to external executables" +msgstr "外部実行ファイルへの呼び出しの処理" -#: ../../rst/dev_guide/testing_validate-modules.rst:152 -msgid "required_together entry contains non-string value" -msgstr "required_together エントリーには文字列以外の値が含まれます" +#: ../../rst/dev_guide/testing_units_modules.rst:382 +msgid "Module must use :meth:`AnsibleModule.run_command` in order to execute an external command. This method needs to be mocked:" +msgstr "モジュールは、外部コマンドを実行するのに :meth:`AnsibleModule.run_command` を使用する必要があります。このメソッドをモックする必要があります。" -#: ../../rst/dev_guide/testing_validate-modules.rst:153 -msgid "required_together-collision" -msgstr "required_together-collision" +#: ../../rst/dev_guide/testing_units_modules.rst:385 +msgid "Here is a simple mock of :meth:`AnsibleModule.run_command` (taken from :file:`test/units/modules/packaging/os/test_rhn_register.py`):" +msgstr "以下は、:meth:`AnsibleModule.run_command` (:file:`test/units/modules/packaging/os/test_rhn_register.py` から取得) の簡単なモックです。" -#: ../../rst/dev_guide/testing_validate-modules.rst:153 -msgid "required_together entry has repeated terms" -msgstr "required_together エントリーが繰り返し使用されます" +#: ../../rst/dev_guide/testing_units_modules.rst:401 +msgid "A Complete Example" +msgstr "完全な例" -#: ../../rst/dev_guide/testing_validate-modules.rst:154 -msgid "required_together-unknown" -msgstr "required_together-unknown" +#: ../../rst/dev_guide/testing_units_modules.rst:403 +msgid "The following example is a complete skeleton that reuses the mocks explained above and adds a new mock for :meth:`Ansible.get_bin_path`:" +msgstr "次の例は、上記で説明したモックを再利用し、:meth:`Ansible.get_bin_path` の新しいモックを追加する完全なスケルトンです。" -#: ../../rst/dev_guide/testing_validate-modules.rst:154 -msgid "required_together entry contains option which does not appear in argument_spec (potentially an alias of an option?)" -msgstr "required_together エントリーには、argument_spec に表示されないオプションが含まれています (オプションのエイリアスである可能性がありますか?)" +#: ../../rst/dev_guide/testing_units_modules.rst:491 +msgid "Restructuring modules to enable testing module set up and other processes" +msgstr "モジュールのセットアップやその他のプロセスのテストを可能にするモジュールの再構築" -#: ../../rst/dev_guide/testing_validate-modules.rst:155 -msgid "required_if-is_one_of-type" -msgstr "required_if-is_one_of-type" +#: ../../rst/dev_guide/testing_units_modules.rst:493 +msgid "Often modules have a ``main()`` function which sets up the module and then performs other actions. This can make it difficult to check argument processing. This can be made easier by moving module configuration and initialization into a separate function. For example:" +msgstr "多くの場合、モジュールをセットアップし、他のアクションを実行する ``main()`` 関数があります。これにより、引数処理を確認するのが困難になる可能性があります。モジュールの設定と初期化を別の関数に移すことで簡単にできます。以下に例を示します。" -#: ../../rst/dev_guide/testing_validate-modules.rst:155 -msgid "required_if entry has a fourth value which is not a bool" -msgstr "required_if エントリーには bool ではない 4 つ目の値がある" +#: ../../rst/dev_guide/testing_units_modules.rst:525 +msgid "This now makes it possible to run tests against the module initiation function:" +msgstr "これにより、モジュールの開始関数に対してテストを実行できるようになりました。" -#: ../../rst/dev_guide/testing_validate-modules.rst:156 -msgid "required_if-requirements-type" -msgstr "required_if-requirements-type" +#: ../../rst/dev_guide/testing_units_modules.rst:539 +msgid "See also ``test/units/module_utils/aws/test_rds.py``" +msgstr "「``test/units/module_utils/aws/test_rds.py``」も参照してください。" -#: ../../rst/dev_guide/testing_validate-modules.rst:156 -msgid "required_if entry has a third value (requirements) which is not a list or tuple" -msgstr "required_if エントリーには、リストまたはタプルではない 3 つの値 (必須) があります。" +#: ../../rst/dev_guide/testing_units_modules.rst:541 +msgid "Note that the ``argument_spec`` dictionary is visible in a module variable. This has advantages, both in allowing explicit testing of the arguments and in allowing the easy creation of module objects for testing." +msgstr "``argument_spec`` ディクショナリーはモジュール変数に表示されます。これには、引数の明示的なテストを許可し、テスト用にモジュールオブジェクトの作成を簡単に行えるようにする利点があります。" -#: ../../rst/dev_guide/testing_validate-modules.rst:157 -msgid "required_if-requirements-collision" -msgstr "required_if-requirements-collision" +#: ../../rst/dev_guide/testing_units_modules.rst:545 +msgid "The same restructuring technique can be valuable for testing other functionality, such as the part of the module which queries the object that the module configures." +msgstr "この再構築の手法は、モジュールが設定したオブジェクトを問い合わせるモジュールの部分など、その他の機能をテストする場合にも役に立ちます。" -#: ../../rst/dev_guide/testing_validate-modules.rst:157 -msgid "required_if entry has repeated terms in requirements" -msgstr "required_if エントリーが繰り返し使用されます" +#: ../../rst/dev_guide/testing_units_modules.rst:548 +msgid "Traps for maintaining Python 2 compatibility" +msgstr "Python 2 の互換性を維持するためのトラップ" -#: ../../rst/dev_guide/testing_validate-modules.rst:158 -msgid "required_if-requirements-unknown" -msgstr "required_if-requirements-unknown" +#: ../../rst/dev_guide/testing_units_modules.rst:550 +msgid "If you use the ``mock`` library from the Python 2.6 standard library, a number of the assert functions are missing but will return as if successful. This means that test cases should take great care *not* use functions marked as _new_ in the Python 3 documentation, since the tests will likely always succeed even if the code is broken when run on older versions of Python." +msgstr "Python 2.6 標準ライブラリーの ``mock`` ライブラリーを使用している場合は、多くの assert 関数が欠落していますが、成功したかのように返されます。これは、テストケースが、Python 3 のドキュメントで _new_ となっている関数を使用しないよう、細心の注意を払うべきであることを意味します。なぜなら、古いバージョンの Python で実行されたコードが壊れていても、テストは常に成功するからです。" -#: ../../rst/dev_guide/testing_validate-modules.rst:158 -msgid "required_if entry's requirements contains option which does not appear in argument_spec (potentially an alias of an option?)" -msgstr "required_if エントリーの要件には、argument_spec に表示されないオプションが含まれています (オプションのエイリアスである可能性がありますか?)" +#: ../../rst/dev_guide/testing_units_modules.rst:555 +msgid "A helpful development approach to this should be to ensure that all of the tests have been run under Python 2.6 and that each assertion in the test cases has been checked to work by breaking the code in Ansible to trigger that failure." +msgstr "これに役立つ開発アプローチは、すべてのテストが Python 2.6 で実行されていることと、テストケース内の各アサーションが Ansible でコードを壊してその失敗を誘発することで動作することが確認されているという点を確認することです。" -#: ../../rst/dev_guide/testing_validate-modules.rst:159 -msgid "required_if-unknown-key" -msgstr "required_if-unknown-key" +#: ../../rst/dev_guide/testing_units_modules.rst:559 +msgid "Maintain Python 2.6 compatibility" +msgstr "Python 2.6 互換性の維持" -#: ../../rst/dev_guide/testing_validate-modules.rst:159 -msgid "required_if entry's key does not appear in argument_spec (potentially an alias of an option?)" -msgstr "required_if エントリーのキーが argument_spec に表示されません (オプションのエイリアスである可能性がありますか?)" +#: ../../rst/dev_guide/testing_units_modules.rst:561 +msgid "Please remember that modules need to maintain compatibility with Python 2.6 so the unittests for modules should also be compatible with Python 2.6." +msgstr "モジュールは Python 2.6 との互換性を維持する必要があるため、モジュールのユニットテストも、Python 2.6 との互換性を維持する必要があることに注意してください。" -#: ../../rst/dev_guide/testing_validate-modules.rst:160 -msgid "required_if-key-in-requirements" -msgstr "required_if-key-in-requirements" +#: ../../rst/dev_guide/testing_units_modules.rst:568 +msgid "Ansible unit tests documentation" +msgstr "Ansible ユニットテストドキュメント" -#: ../../rst/dev_guide/testing_validate-modules.rst:160 -msgid "required_if entry contains its key in requirements list/tuple" -msgstr "required_if エントリーには要件リスト/タプルのキーが含まれます" +#: ../../rst/dev_guide/testing_units_modules.rst:572 +msgid "Get started developing a module" +msgstr "モジュール開発を始める" -#: ../../rst/dev_guide/testing_validate-modules.rst:161 -msgid "required_if-value-type" -msgstr "required_if-value-type" +#: ../../rst/dev_guide/testing_units_modules.rst:581 +msgid "`Testing Your Code (from The Hitchhiker's Guide to Python!) `_" +msgstr "`Testing Your Code (from The Hitchhiker's Guide to Python!) `_" -#: ../../rst/dev_guide/testing_validate-modules.rst:161 -msgid "required_if entry's value is not of the type specified for its key" -msgstr "required_if エントリーの値は、キーに指定されたタイプではありません" +#: ../../rst/dev_guide/testing_units_modules.rst:582 +msgid "General advice on testing Python code" +msgstr "Python コードのテストに関する一般的なアドバイス" -#: ../../rst/dev_guide/testing_validate-modules.rst:162 -msgid "required_by-collision" -msgstr "required_by-collision" +#: ../../rst/dev_guide/testing_units_modules.rst:584 +msgid "`Uncle Bob's many videos on YouTube `_" +msgstr "`Uncle Bob's many videos on YouTube `_" -#: ../../rst/dev_guide/testing_validate-modules.rst:162 -msgid "required_by entry has repeated terms" -msgstr "required_by エントリーが繰り返し使用されます" +#: ../../rst/dev_guide/testing_units_modules.rst:584 +msgid "Unit testing is a part of the of various philosophies of software development, including Extreme Programming (XP), Clean Coding. Uncle Bob talks through how to benefit from this" +msgstr "ユニットテストは、Extreme Programming (XP)、クリーンコーディングを含むソフトウェア開発のさまざまな哲学の一部です。Uncle Bob は、どのようにしてこの恩恵を受けることができるのかを説明します。" -#: ../../rst/dev_guide/testing_validate-modules.rst:163 -msgid "required_by-unknown" -msgstr "required_by-unknown" +#: ../../rst/dev_guide/testing_units_modules.rst:586 +msgid "`\"Why Most Unit Testing is Waste\" `_" +msgstr "`\"Why Most Unit Testing is Waste\" `_" -#: ../../rst/dev_guide/testing_validate-modules.rst:163 -msgid "required_by entry contains option which does not appear in argument_spec (potentially an alias of an option?)" -msgstr "required_by エントリーには、argument_spec に表示されないオプションが含まれます (オプションのエイリアスである可能性がありますか?)" +#: ../../rst/dev_guide/testing_units_modules.rst:587 +msgid "An article warning against the costs of unit testing" +msgstr "ユニットテストの大半が無駄である理由" -#: ../../rst/dev_guide/testing_validate-modules.rst:164 -msgid "version-added-must-be-major-or-minor" -msgstr "version-added-must-be-major-or-minor" +#: ../../rst/dev_guide/testing_units_modules.rst:588 +msgid "`'A Response to \"Why Most Unit Testing is Waste\"' `_" +msgstr "`'A Response to \"Why Most Unit Testing is Waste\"' `_" -#: ../../rst/dev_guide/testing_validate-modules.rst:164 -msgid "According to the semantic versioning specification (https://semver.org/), the only versions in which features are allowed to be added are major and minor versions (x.y.0)" -msgstr "セマンティックバージョニング仕様 (https://semver.org/) によると、機能の追加が許可されているバージョンはメジャーバージョンおよびマイナーバージョン (x.y.0) のみです" +#: ../../rst/dev_guide/testing_units_modules.rst:589 +msgid "An response pointing to how to maintain the value of unit tests" +msgstr "ユニットテストの価値を維持する方法を指摘した回答" + +#: ../../rst/dev_guide/testing_validate-modules.rst:7 +msgid "This page has moved to :ref:`testing_validate-modules`." +msgstr "このページは :ref:`testing_validate-modules` に移動しました。" #~ msgid "All Python imports in ``lib/ansible/modules/`` and ``lib/ansible/module_utils/`` which are not from the Python standard library must be imported in a try/except ImportError block." #~ msgstr "" @@ -15835,4 +15833,586 @@ msgstr "セマンティックバージョニング仕様 (https://semver.org/) #~ msgid "missing-python-doc" #~ msgstr "missing-python-doc" +#~ msgid "an :ref:`OpenStack module `." +#~ msgstr ":ref:`OpenStack モジュール `" + +#~ msgid "an :ref:`oVirt/RHV module `." +#~ msgstr ":ref:`oVirt/RHV モジュール `" + +#~ msgid "When reading the :ref:`developing_testing` documentation, there will be content that applies to running Ansible from source code via a git clone, which is typical of an Ansible developer. However, it's not always typical for an Ansible Collection author to be running Ansible from source but instead from a stable release, and to create Collections it is not necessary to run Ansible from source. Therefore, when references of dealing with `ansible-test` binary paths, command completion, or environment variables are presented throughout the :ref:`developing_testing` documentation; keep in mind that it is not needed for Ansible Collection Testing because the act of installing the stable release of Ansible containing `ansible-test` is expected to setup those things for you." +#~ msgstr ":ref:`developing_testing` のドキュメントを読む際、Ansible 開発者の典型的な git clone を使用して、ソースコードから Ansible を実行するコンテンツがあります。ただし、Ansible Collection の作成者がソースから Ansible を実行することは常に一般的ではなく、安定したリリースからではなく、コレクションを作成するには、ソースから Ansible を実行する必要はありません。そのため、`ansible-test` バイナリーパス、コマンド補完、または環境変数については、:ref:`developing_testing` ドキュメントで提示されます。Ansible Collection Testing ではこれが必要ありません。`ansible-test` を含む Ansible の安定したリリースをインストールするには、これらをセットアップすることが予想されるためです。" + +#~ msgid "Testing your collection ensures that your code works well and integrates well with the rest of the Ansible ecosystem. Your collection should pass the general compile and sanity tests for Ansible code. You should also add unit tests to cover the code in your collection and integration tests to cover the interactions between your collection and ansible-core." +#~ msgstr "コレクションのテストにより、コードが適切に機能し、Ansible エコシステムの他の部分との統合性が向上します。コレクションでは、Ansible コードの一般的なコンパイルおよび健全性テストを渡します。また、コレクションのコードに対応するユニットテストと、コレクションと ansible-core との間の対話に対応する統合テストを追加する必要があります。" + +#~ msgid "Compile and sanity tests" +#~ msgstr "コンパイルと健全性テスト" + +#~ msgid "Although ``ansible-core`` (the code hosted in the `ansible/ansible repository `_ on GitHub) includes a few plugins that can be swapped out via playbook directives or configuration, much of the code there is not modular. The documents here give insight into how the parts of ``ansible-core`` work together." +#~ msgstr "``ansible-core`` (GitHub の `ansible/ansible リポジトリー `_ でホストされるコード) には、Playbook ディレクティブまたは設定を介してスワップできるプラグインが含まれていますが、モジュール化されないコードが多くあります。また、``ansible-core`` の一部が連携する方法に関するドキュメントです。" + +#~ msgid "The three main options from the ``constructed`` documentation fragment are ``compose``, ``keyed_groups``, and ``groups``. See the ``constructed`` inventory plugin for examples on using these. ``compose`` is a dictionary of variable names and Jinja2 expressions. Once a host is added to inventory and any initial variables have been set, call the method ``_set_composite_vars`` to add composed host variables. If this is done before adding ``keyed_groups`` and ``groups``, the group generation will be able to use the composed variables." +#~ msgstr "``constructed`` ドキュメントフラグの 3 つの主要なオプションは、``compose``、``keyed_groups``、および ``groups`` です。これらの使用例は、``constructed`` インベントリープラグインを参照してください。``compose`` は、変数名および Jinja2 式のディクショナリーです。ホストがインベントリーに追加され、初期変数が設定されると、``_set_composite_vars`` メソッドを呼び出して構成されたホスト変数を追加します。``keyed_groups`` および ``groups`` を追加する前にこれを行うと、グループの生成は構成された変数を使用できます。" + +#~ msgid "Modules are reusable, standalone scripts that can be used by the Ansible API, the :command:`ansible` command, or the :command:`ansible-playbook` command. Modules provide a defined interface. Each module accepts arguments and returns information to Ansible by printing a JSON string to stdout before exiting. Modules execute on the target system (usually that means on a remote system) in separate processes. Modules are technically plugins, but for historical reasons we do not usually talk about \"module plugins\"." +#~ msgstr "モジュールは、Ansible API、:command:`ansible` コマンド、または :command:`ansible-playbook` コマンドで使用できる再利用可能なスタンドアロンスクリプトです。モジュールは、定義されたインターフェースを提供します。各モジュールは引数を受け入れ、終了する前に JSON 文字列を stdout に出力して Ansible に情報を返します。モジュールは、別のプロセスでターゲットシステム (通常はリモートシステム上) で実行されます。モジュールは技術的にはプラグインですが、過去の経緯から、通常「モジュールプラグイン」とは呼びません。" + +#~ msgid "Currently, the ``ansible-doc`` command can parse module documentation only from modules written in Python. If you have a module written in a programming language other than Python, please write the documentation in a Python file adjacent to the module file." +#~ msgstr "現在、``ansible-doc`` コマンドは、Python で記述されたモジュールからのみモジュールドキュメントを解析できます。Python 以外のプログラミング言語で記述されたモジュールがある場合は、モジュールファイルの横の Python ファイルにドキュメントを作成してください。" + +#~ msgid "Developing Cisco ACI modules" +#~ msgstr "Cisco ACI モジュールの開発" + +#~ msgid "This is a brief walk-through of how to create new Cisco ACI modules for Ansible." +#~ msgstr "Ansible 向けに新しい Cisco ACI モジュールを作成する方法に関する簡単なウォークスルーです。" + +#~ msgid "For more information about Cisco ACI, look at the :ref:`Cisco ACI user guide `." +#~ msgstr "Cisco ACI の詳細は、「:ref:`Cisco ACI ユーザーガイド `」を参照してください。" + +#~ msgid "The `cisco.aci collection `_ already includes a large number of Cisco ACI modules, however the ACI object model is huge and covering all possible functionality would easily cover more than 1500 individual modules." +#~ msgstr "`cisco.aci collection `_ にはすでに多数の Cisco ACI モジュールが含まれていますが、ACI オブジェクトモデルは大きく、すべての機能に対応するため、1500 以上のモジュールを簡単に対応できます。" + +#~ msgid "If you need specific functionality, you have 2 options:" +#~ msgstr "特定の機能が必要な場合は、2 つのオプションがあります。" + +#~ msgid "Learn the ACI object model and use the low-level APIC REST API using the :ref:`aci_rest ` module" +#~ msgstr "ACI オブジェクトモデルを学習し、「:ref:`aci_rest `」モジュールを使用して低レベルの APIC REST API を使用します。" + +#~ msgid "Write your own dedicated modules, which is actually quite easy" +#~ msgstr "独自の専用モジュールを作成することは、実際には非常に簡単です。" + +#~ msgid "`Ansible ACI collection `_" +#~ msgstr "`Ansible ACI collection `_" + +#~ msgid "Github repository of the ansible ACI collection" +#~ msgstr "Ansible ACI コレクションの GitHub リポジトリー" + +#~ msgid ":ref:`hacking_collections`" +#~ msgstr ":ref:`collections`" + +#~ msgid "Information on how to contribute to collections." +#~ msgstr "コレクションへの貢献方法に関する情報。" + +#~ msgid "`ACI Fundamentals: ACI Policy Model `_" +#~ msgstr "`ACI Fundamentals: ACI Policy Model `_" + +#~ msgid "A good introduction to the ACI object model." +#~ msgstr "ACI オブジェクトモデルの優れた概要" + +#~ msgid "`APIC Management Information Model reference `_" +#~ msgstr "`APIC Management Information Model reference `_" + +#~ msgid "Complete reference of the APIC object model." +#~ msgstr "APIC オブジェクトモデルの完全なリファレンス" + +#~ msgid "`APIC REST API Configuration Guide `_" +#~ msgstr "`APIC REST API Configuration Guide `_" + +#~ msgid "Detailed guide on how the APIC REST API is designed and used, incl. many examples." +#~ msgstr "APIC REST API を設計および使用する方法についての詳細ガイド。多数の例があります。" + +#~ msgid "So let's look at how a typical ACI module is built up." +#~ msgstr "それでは、典型的な ACI モジュールがどのように構築されるかを見てみましょう。" + +#~ msgid "ACI module structure" +#~ msgstr "ACI モジュール構造" + +#~ msgid "Importing objects from Python libraries" +#~ msgstr "Python ライブラリーからのオブジェクトのインポート" + +#~ msgid "The following imports are standard across ACI modules:" +#~ msgstr "以下のインポートは、ACI モジュール全体で標準のものです。" + +#~ msgid "Defining the argument spec" +#~ msgstr "引数仕様の定義" + +#~ msgid "The first line adds the standard connection parameters to the module. After that, the next section will update the ``argument_spec`` dictionary with module-specific parameters. The module-specific parameters should include:" +#~ msgstr "最初の行は、標準の接続パラメーターをモジュールに追加します。その後、以下のセクションはモジュール固有のパラメーターで ``argument_spec`` ディクショナリーを更新します。モジュール固有のパラメーターには以下が含まれます。" + +#~ msgid "the object_id (usually the name)" +#~ msgstr "object_id (通常は名前)" + +#~ msgid "the configurable properties of the object" +#~ msgstr "オブジェクトの設定可能なプロパティー" + +#~ msgid "the parent object IDs (all parents up to the root)" +#~ msgstr "親オブジェクト ID (ルートまでのすべての親)" + +#~ msgid "only child classes that are a 1-to-1 relationship (1-to-many/many-to-many require their own module to properly manage)" +#~ msgstr "1 対 1 の関係である子クラスのみ (1 対多/多対多では、独自のモジュールを適切に管理する必要があります)" + +#~ msgid "the state" +#~ msgstr "状態" + +#~ msgid "``state: absent`` to ensure object does not exist" +#~ msgstr "``state: absent``: オブジェクトが存在しないことを確認する" + +#~ msgid "``state: present`` to ensure the object and configs exist; this is also the default" +#~ msgstr "``state: present``: オブジェクトと設定が存在することを確認する (デフォルト)" + +#~ msgid "``state: query`` to retrieve information about objects in the class" +#~ msgstr "``state: query``: クラスのオブジェクトに関する情報を取得する" + +#~ msgid "Do not provide default values for configuration arguments. Default values could cause unintended changes to the object." +#~ msgstr "設定引数のデフォルト値を指定しないでください。デフォルト値により、オブジェクトへの意図しない変更が生じる可能性があります。" + +#~ msgid "Using the AnsibleModule object" +#~ msgstr "AnsibleModule オブジェクトの使用" + +#~ msgid "The following section creates an AnsibleModule instance. The module should support check-mode, so we pass the ``argument_spec`` and ``supports_check_mode`` arguments. Since these modules support querying the APIC for all objects of the module's class, the object/parent IDs should only be required if ``state: absent`` or ``state: present``." +#~ msgstr "次のセクションでは、AnsibleModule インスタンスを作成します。モジュールはチェックモードをサポートする必要があるため、``argument_spec`` 引数および ``supports_check_mode`` 引数を渡します。これらのモジュールは、モジュールのクラスのすべてのオブジェクトに対する APIC のクエリーをサポートするため、オブジェクト/親 ID は、``state: absent`` または ``state: present`` の場合に限り必要になります。" + +#~ msgid "Mapping variable definition" +#~ msgstr "マッピング変数定義" + +#~ msgid "Once the AnsibleModule object has been initiated, the necessary parameter values should be extracted from ``params`` and any data validation should be done. Usually the only params that need to be extracted are those related to the ACI object configuration and its child configuration. If you have integer objects that you would like to validate, then the validation should be done here, and the ``ACIModule.payload()`` method will handle the string conversion." +#~ msgstr "AnsibleModule オブジェクトが開始されたら、必要なパラメーターの値を ``params`` から抽出し、データの検証を行う必要があります。通常、抽出する必要がある唯一のパラメーターが ACI オブジェクトの設定およびその子設定に関連するパラメーターのみとなります。検証する整数オブジェクトがある場合は、検証を行う必要があります。データ検証はここで行う必要があり、``ACIModule.payload()`` メソッドは変換文字列を処理する必要があります。" + +#~ msgid "Using the ACIModule object" +#~ msgstr "ACIModule オブジェクトの使用" + +#~ msgid "The ACIModule class handles most of the logic for the ACI modules. The ACIModule extends functionality to the AnsibleModule object, so the module instance must be passed into the class instantiation." +#~ msgstr "ACIModule クラスは、ACI モジュールのロジックの大部分を処理します。ACIModule は機能を AnsibleModule オブジェクトに拡張するため、モジュールインスタンスをクラスのインスタンス化に渡す必要があります。" + +#~ msgid "The ACIModule has six main methods that are used by the modules:" +#~ msgstr "ACIModule には、モジュールによって使用される 6 つの主なメソッドがあります。" + +#~ msgid "construct_url" +#~ msgstr "construct_url" + +#~ msgid "get_existing" +#~ msgstr "get_existing" + +#~ msgid "payload" +#~ msgstr "payload" + +#~ msgid "get_diff" +#~ msgstr "get_diff" + +#~ msgid "post_config" +#~ msgstr "post_config" + +#~ msgid "delete_config" +#~ msgstr "delete_config" + +#~ msgid "The first two methods are used regardless of what value is passed to the ``state`` parameter." +#~ msgstr "最初の 2 つのメソッドは、``state`` パラメーターに渡される値に関係なく使用されます。" + +#~ msgid "Constructing URLs" +#~ msgstr "URL の構築" + +#~ msgid "The ``construct_url()`` method is used to dynamically build the appropriate URL to interact with the object, and the appropriate filter string that should be appended to the URL to filter the results." +#~ msgstr "``construct_url()`` メソッドは、オブジェクトと対話するために適切な URL と、URL に追加して結果にフィルターを設定する適切なフィルター文字列を動的に構築するのに使用されます。" + +#~ msgid "When the ``state`` is not ``query``, the URL is the base URL to access the APIC plus the distinguished name to access the object. The filter string will restrict the returned data to just the configuration data." +#~ msgstr "``state`` が ``query`` でない場合、URL は APIC にアクセスするベース URL と、オブジェクトにアクセスするための識別名です。フィルター文字列は返されたデータを設定データにのみ制限します。" + +#~ msgid "When ``state`` is ``query``, the URL and filter string used depends on what parameters are passed to the object. This method handles the complexity so that it is easier to add new modules and so that all modules are consistent in what type of data is returned." +#~ msgstr "``state`` が ``query`` される場合、使用される URL およびフィルター文字列は、オブジェクトに渡されるパラメーターによって異なります。この方法は複雑性を処理するため、新しいモジュールの追加が容易になります。また、すべてのモジュールがどのタイプのデータを返すかに一貫性を持たせるようにします。" + +#~ msgid "Our design goal is to take all ID parameters that have values, and return the most specific data possible. If you do not supply any ID parameters to the task, then all objects of the class will be returned. If your task does consist of ID parameters sed, then the data for the specific object is returned. If a partial set of ID parameters are passed, then the module will use the IDs that are passed to build the URL and filter strings appropriately." +#~ msgstr "この設計の目的は、値があるすべての ID パラメーターを取り、最も具体的なデータを返すことです。ID パラメーターをタスクに指定しないと、クラスのすべてのオブジェクトが返されます。タスクが ID パラメーター sed で構成されている場合は、特定のオブジェクトのデータが返されます。ID パラメーターの一部が渡されると、モジュールは URL およびフィルター文字列を適切にビルドするために渡された ID を使用します。" + +#~ msgid "The ``construct_url()`` method takes 2 required arguments:" +#~ msgstr "``construct_url()`` メソッドは、必要な引数を 2 つ取ります。" + +#~ msgid "**self** - passed automatically with the class instance" +#~ msgstr "**self** - クラスインスタンスで自動的に渡されます。" + +#~ msgid "**root_class** - A dictionary consisting of ``aci_class``, ``aci_rn``, ``target_filter``, and ``module_object`` keys" +#~ msgstr "**root_class**: ``aci_class`` キー、``aci_rn`` キー、``target_filter`` キー、および ``module_object`` キーで構成されるディクショナリー" + +#~ msgid "**aci_class**: The name of the class used by the APIC, for example ``fvTenant``" +#~ msgstr "**aci_class**: APIC が使用するクラス名 (例: ``fvTenant``)" + +#~ msgid "**aci_rn**: The relative name of the object, for example ``tn-ACME``" +#~ msgstr "**aci_rn**: オブジェクトの相対名 (例: ``tn-ACME``)" + +#~ msgid "**target_filter**: A dictionary with key-value pairs that make up the query string for selecting a subset of entries, for example ``{'name': 'ACME'}``" +#~ msgstr "**target_filter**: エントリーのサブセットを選択するクエリー文字列を構成するキーと値のペアを持つディクショナリー (例: ``{'name': 'ACME'}``)" + +#~ msgid "**module_object**: The particular object for this class, for example ``ACME``" +#~ msgstr "**module_object**: このクラスの特定のオブジェクト (例: ``ACME``)" + +#~ msgid "Some modules, like ``aci_tenant``, are the root class and so they would not need to pass any additional arguments to the method." +#~ msgstr "``aci_tenant`` などの一部のモジュールは root クラスであるため、メソッドに追加の引数を渡す必要はありません。" + +#~ msgid "The ``construct_url()`` method takes 4 optional arguments, the first three imitate the root class as described above, but are for child objects:" +#~ msgstr "``construct_url()`` メソッドは、4 つの任意の引数を取ります。最初の 3 つの引数が上記のように root クラスを模倣しますが、これは子オブジェクト用です。" + +#~ msgid "subclass_1 - A dictionary consisting of ``aci_class``, ``aci_rn``, ``target_filter``, and ``module_object`` keys" +#~ msgstr "subclass_1 - ``aci_class`` キー、``aci_rn`` キー、``target_filter`` キー、および ``module_object`` キーで構成されるディクショナリー" + +#~ msgid "Example: Application Profile Class (AP)" +#~ msgstr "例: Application Profile Class (AP)" + +#~ msgid "subclass_2 - A dictionary consisting of ``aci_class``, ``aci_rn``, ``target_filter``, and ``module_object`` keys" +#~ msgstr "subclass_2 - ``aci_class`` キー、``aci_rn`` キー、``target_filter`` キー、および ``module_object`` キーで構成されるディクショナリー" + +#~ msgid "Example: End Point Group (EPG)" +#~ msgstr "例: エンドポイントグループ (EPG)" + +#~ msgid "subclass_3 - A dictionary consisting of ``aci_class``, ``aci_rn``, ``target_filter``, and ``module_object`` keys" +#~ msgstr "subclass_3 - ``aci_class`` キー、``aci_rn`` キー、``target_filter`` キー、および ``module_object`` キーで構成されるディクショナリー" + +#~ msgid "Example: Binding a Contract to an EPG" +#~ msgstr "例: EPG への契約のバインド" + +#~ msgid "child_classes - The list of APIC names for the child classes supported by the modules." +#~ msgstr "child_classes - モジュールがサポートする子クラスの APIC 名のリスト" + +#~ msgid "This is a list, even if it is a list of one" +#~ msgstr "1 つのリストであっても、これはリストです。" + +#~ msgid "These are the unfriendly names used by the APIC" +#~ msgstr "これらは、APIC が使用する分かりにくい名前です。" + +#~ msgid "These are used to limit the returned child_classes when possible" +#~ msgstr "可能な場合は、返された child_classes を制限するのに使用されます。" + +#~ msgid "Example: ``child_classes=['fvRsBDSubnetToProfile', 'fvRsNdPfxPol']``" +#~ msgstr "例: ``child_classes=['fvRsBDSubnetToProfile', 'fvRsNdPfxPol']``" + +#~ msgid "Sometimes the APIC will require special characters ([, ], and -) or will use object metadata in the name (\"vlanns\" for VLAN pools); the module should handle adding special characters or joining of multiple parameters in order to keep expected inputs simple." +#~ msgstr "APIC は、特殊文字 ([, ]、および -) を要求したり、名前にオブジェクトのメタデータ (「VLAN」プールの場合は「vlanns」) を使用したりすることがあります。モジュールは、予想される入力の単純さに保つために、特殊文字の追加または複数のパラメーターの結合を処理する必要があります。" + +#~ msgid "Getting the existing configuration" +#~ msgstr "既存設定の取得" + +#~ msgid "Once the URL and filter string have been built, the module is ready to retrieve the existing configuration for the object:" +#~ msgstr "URL およびフィルター文字列が構築されると、モジュールはオブジェクトの既存の設定を取得できるようになります。" + +#~ msgid "``state: present`` retrieves the configuration to use as a comparison against what was entered in the task. All values that are different than the existing values will be updated." +#~ msgstr "``state: present`` は、タスクに入力した値と比較として使用する設定を取得します。既存の値とは異なる値はすべて更新されます。" + +#~ msgid "``state: absent`` uses the existing configuration to see if the item exists and needs to be deleted." +#~ msgstr "``state: absent`` は、既存の設定を使用して項目が存在し、削除する必要があるかどうかを確認します。" + +#~ msgid "``state: query`` uses this to perform the query for the task and report back the existing data." +#~ msgstr "``state: query`` は、これを使用してタスクのクエリーを実行し、既存のデータを報告します。" + +#~ msgid "When state is present" +#~ msgstr "state が present の場合" + +#~ msgid "When ``state: present``, the module needs to perform a diff against the existing configuration and the task entries. If any value needs to be updated, then the module will make a POST request with only the items that need to be updated. Some modules have children that are in a 1-to-1 relationship with another object; for these cases, the module can be used to manage the child objects." +#~ msgstr "``state: present`` の場合、モジュールは既存の設定とタスクエントリーに対して diff を実行する必要があります。値を更新する必要がある場合、モジュールは更新が必要なアイテムのみが含まれる POST 要求を行います。モジュールによっては、別のオブジェクトと 1 対 1 の関係にある子があります。これらの場合、モジュールは子オブジェクトを管理するために使用できます。" + +#~ msgid "Building the ACI payload" +#~ msgstr "ACI ペイロードの構築" + +#~ msgid "The ``aci.payload()`` method is used to build a dictionary of the proposed object configuration. All parameters that were not provided a value in the task will be removed from the dictionary (both for the object and its children). Any parameter that does have a value will be converted to a string and added to the final dictionary object that will be used for comparison against the existing configuration." +#~ msgstr "``aci.payload()`` メソッドは、提案されたオブジェクト設定のディクショナリー構築に使用されます。タスクで値が提供されていないパラメーターはすべてディクショナリー (オブジェクトとその子の両方) から削除されます。値のあるパラメーターは文字列に変換され、既存の設定との比較に使用される最終ディクショナリーオブジェクトに追加されます。" + +#~ msgid "The ``aci.payload()`` method takes two required arguments and 1 optional argument, depending on if the module manages child objects." +#~ msgstr "``aci.payload()`` メソッドは、モジュールが子オブジェクトを管理するかどうかに応じて、2 つの必須引数と、1 つの任意の引数を取ります。" + +#~ msgid "``aci_class`` is the APIC name for the object's class, for example ``aci_class='fvBD'``" +#~ msgstr "``aci_class`` は、オブジェクトのクラスの APIC 名です。たとえば、``aci_class='fvBD'`` になります。" + +#~ msgid "``class_config`` is the appropriate dictionary to be used as the payload for the POST request" +#~ msgstr "``class_config`` は POST 要求のペイロードとして使用する適切なディクショナリーです。" + +#~ msgid "The keys should match the names used by the APIC." +#~ msgstr "キーは APIC で使用される名前と一致する必要があります。" + +#~ msgid "The values should be the corresponding value in ``module.params``; these are the variables defined above" +#~ msgstr "``module.params`` の対応する値でなければなりません。これらは上で定義される変数です" + +#~ msgid "``child_configs`` is optional, and is a list of child config dictionaries." +#~ msgstr "``child_configs`` は任意であり、子設定のディクショナリーの一覧です。" + +#~ msgid "The child configs include the full child object dictionary, not just the attributes configuration portion." +#~ msgstr "子設定には、属性設定部分だけでなく、完全な子オブジェクトディクショナリーが含まれます。" + +#~ msgid "The configuration portion is built the same way as the object." +#~ msgstr "設定部分は、オブジェクトと同じ方法で構築されます。" + +#~ msgid "Performing the request" +#~ msgstr "要求の実行" + +#~ msgid "The ``get_diff()`` method is used to perform the diff, and takes only one required argument, ``aci_class``. Example: ``aci.get_diff(aci_class='fvBD')``" +#~ msgstr "``get_diff()`` メソッドは diff を実行し、必要な引数 ``aci_class`` を 1 つだけ取ります。たとえば ``aci.get_diff(aci_class='fvBD')`` です。" + +#~ msgid "The ``post_config()`` method is used to make the POST request to the APIC if needed. This method doesn't take any arguments and handles check mode. Example: ``aci.post_config()``" +#~ msgstr "``post_config()`` メソッドは、必要に応じて APIC への POST 要求を行うために使用されます。このメソッドは引数を受け付けず、チェックモードを処理します。以下に例を示します。たとえば、``aci.post_config()`` になります。" + +#~ msgid "Example code" +#~ msgstr "サンプルコード" + +#~ msgid "When state is absent" +#~ msgstr "state が absent の場合" + +#~ msgid "If the task sets the state to absent, then the ``delete_config()`` method is all that is needed. This method does not take any arguments, and handles check mode." +#~ msgstr "タスクが state を absent に設定すると、``delete_config()`` メソッドのみが必要になります。このメソッドは引数を取らず、チェックモードを処理します。" + +#~ msgid "To have the module exit, call the ACIModule method ``exit_json()``. This method automatically takes care of returning the common return values for you." +#~ msgstr "モジュールを終了するには、ACIModule メソッド ``exit_json()`` を呼び出します。このメソッドは、一般的な戻り値を返すことを自動的に行います。" + +#~ msgid "Testing ACI library functions" +#~ msgstr "ACI ライブラリー関数のテスト" + +#~ msgid "You can test your ``construct_url()`` and ``payload()`` arguments without accessing APIC hardware by using the following python script:" +#~ msgstr "以下の python スクリプトを使用して、APIC ハードウェアにアクセスせずに ``construct_url()`` 引数および ``payload()`` 引数をテストすることができます。" + +#~ msgid "This will result in:" +#~ msgstr "これにより、以下が生成されます。" + +#~ msgid "Testing for sanity checks" +#~ msgstr "健全性チェックのテスト" + +#~ msgid "For legacy versions of ansible, you can run from your fork something like:" +#~ msgstr "Ansible のレガシーバージョンでは、次のようなフォークから実行できます。" + +#~ msgid "Meanwhile, the ACI modules have moved into a collection. Please refer to the links below, which provide detailed guidance how to setup your environment and test the collection." +#~ msgstr "ACI モジュールはコレクションに移動しました。以下のリンクを参照してください。環境を設定してコレクションをテストする方法の詳細なガイダンスが記載されています。" + +#~ msgid "Information how to setup your environment to contribute to collections" +#~ msgstr "環境を設定してコレクションに貢献する方法" + +#~ msgid "Information on how to build sanity tests." +#~ msgstr "健全性テストを構築する方法に関する情報" + +#~ msgid "You can run this:" +#~ msgstr "以下を実行できます。" + +#~ msgid "You may need to add ``--python 2.7`` or ``--python 3.6`` in order to use the correct python version for performing tests." +#~ msgstr "テストの実行に適切な python バージョンを使用するには、``--python 2.7`` または ``--python 3.6`` を追加しないといけない場合があります。" + +#~ msgid "You may want to edit the used inventory at *test/integration/inventory.networking* and add something like:" +#~ msgstr "*test/integration/inventory.networking* で使用されたインベントリーを編集し、以下のように追加することもできます。" + +#~ msgid "Information on how to build integration tests." +#~ msgstr "統合テストの構築方法に関する情報。" + +#~ msgid "Testing for test coverage" +#~ msgstr "テストカバレージのテスト" + +#~ msgid "Add the following to the new playbook file::" +#~ msgstr "以下を新しい Playbook ファイルに追加します。" + +#~ msgid "At present, the Ansiballz Framework cannot determine whether an import should be included if it is a relative import. Always use an absolute import that has :py:mod:`ansible.module_utils` in it to allow Ansiballz to determine that the file should be included." +#~ msgstr "現状、Aweraiballz Framework は、相対インポートの場合にインポートを含める必要があるかどうかを判別できません。常に、その中に :py:mod:`ansible.module_utils` がある絶対インポートを使用して、このファイルを同梱する必要があると判断することができます。" + +#~ msgid "Boolean. Set to True whenever a parameter in a task or play specifies ``no_log``. Any module that calls :py:meth:`AnsibleModule.log` handles this automatically. If a module implements its own logging then it needs to check this value. To access in a module, instantiate an ``AnsibleModule`` and then check the value of :attr:`AnsibleModule.no_log`." +#~ msgstr "ブール値。タスクまたはプレイのパラメーターを ``no_log`` に指定した場合は常に True に設定します。:py:meth:`AnsibleModule.log` を呼び出すモジュールが自動的にこれを処理します。モジュールがその独自のロギングを実装した場合は、この値を確認する必要があります。モジュールにアクセスするには、``AnsibleModule`` をインスタンス化して、:attr:`AnsibleModule.no_log` の値を確認します。" + +#~ msgid "Boolean. Turns more verbose logging on or off and turns on logging of external commands that the module executes. If a module uses :py:meth:`AnsibleModule.debug` rather than :py:meth:`AnsibleModule.log` then the messages are only logged if ``_ansible_debug`` is set to ``True``. To set, add ``debug: True`` to :file:`ansible.cfg` or set the environment variable :envvar:`ANSIBLE_DEBUG`. To access in a module, instantiate an ``AnsibleModule`` and access :attr:`AnsibleModule._debug`." +#~ msgstr "ブール値。詳細なロギングをオンまたはオフにし、モジュールが実行する外部コマンドのロギングを有効にします。モジュールが :py:meth:`AnsibleModule.log` ではなく :py:meth:`AnsibleModule.debug` を使用する場合は、``_ansible_debug`` が ``True`` に設定されている場合にのみメッセージがログに記録されます。設定するには、``debug: True`` を :file:`ansible.cfg` に追加するか、環境変数 :envvar:`ANSIBLE_DEBUG` を設定します。モジュールにアクセスするには、``AnsibleModule`` をインスタンス化し、:attr:`AnsibleModule._debug` にアクセスします。" + +#~ msgid "Boolean. If a module supports it, tells the module to show a unified diff of changes to be made to templated files. To set, pass the ``--diff`` command line option. To access in a module, instantiate an `AnsibleModule` and access :attr:`AnsibleModule._diff`." +#~ msgstr "ブール値。モジュールがサポートする場合は、モジュールに対し、テンプレート化されたファイルに加えられた変更の差異を統合するようにモジュールに指示します。設定するには、``--diff`` コマンドラインオプションを渡します。モジュールにアクセスするには、`AnsibleModule` をインスタンス化して、:attr:`AnsibleModule._diff` にアクセスしてください。" + +#~ msgid "Unused. This value could be used for finer grained control over logging." +#~ msgstr "未使用。この値は、ログをより細かく制御するために使用できます。" + +#~ msgid "List. Names of filesystems which should have a special SELinux context. They are used by the `AnsibleModule` methods which operate on files (changing attributes, moving, and copying). To set, add a comma separated string of filesystem names in :file:`ansible.cfg`:" +#~ msgstr "一覧。特別な SELinux コンテキストを持つ必要があるファイルシステムの名前。名前はファイル (属性の変更、移動、コピー) で操作する `AnsibleModule` メソッドによって使用されます。設定するには、:file:`ansible.cfg` に、ファイル名のコンマ区切りの文字列を追加します。" + +#~ msgid "This replaces :attr:`ansible.module_utils.basic.SELINUX_SPECIAL_FS` from :ref:`module_replacer`. In module replacer it was a comma separated string of filesystem names. Under Ansiballz it's an actual list." +#~ msgstr "これにより、:ref:`module_replacer` の :attr:`ansible.module_utils.basic.SELINUX_SPECIAL_FS` を置き換えます。モジュール置換は、ファイル名のコンマ区切りの文字列でした。Ansiballz は、実際のリストになります。" + +#~ msgid "This parameter controls which syslog facility Ansible module logs to. To set, change the ``syslog_facility`` value in :file:`ansible.cfg`. Most modules should just use :meth:`AnsibleModule.log` which will then make use of this. If a module has to use this on its own, it should instantiate an `AnsibleModule` and then retrieve the name of the syslog facility from :attr:`AnsibleModule._syslog_facility`. The Ansiballz code is less hacky than the old :ref:`module_replacer` code:" +#~ msgstr "このパラメーターは、Ansible モジュールがどの syslog 機能にログを記録するかを制御します。設定するには、:file:`ansible.cfg` の ``syslog_facility`` の値を変更します。多くのモジュールは、これを利用する :meth:`AnsibleModule.log` のみを使用する必要があります。モジュールが独自にこれを使用する必要がある場合は、`AnsibleModule` をインスタンス化して、:attr:`AnsibleModule._syslog_facility` から syslog 機能の名前を取得する必要があります。Ansiballz コードは古い :ref:`module_replacer` コードよりもハッキングされません。" + +#~ msgid "This parameter passes the version of Ansible that runs the module. To access it, a module should instantiate an `AnsibleModule` and then retrieve it from :attr:`AnsibleModule.ansible_version`. This replaces :attr:`ansible.module_utils.basic.ANSIBLE_VERSION` from :ref:`module_replacer`." +#~ msgstr "このパラメーターは、モジュールを実行する Ansible のバージョンを渡します。これにアクセスするために、モジュールは `AnsibleModule` をインスタンス化し、:attr:`AnsibleModule.ansible_version` から取得する必要があります。これは、:ref:`module_replacer` の :attr:`ansible.module_utils.basic.ANSIBLE_VERSION` を置き換えます。" + +#~ msgid "Guidelines for Ansible Amazon AWS module development" +#~ msgstr "Ansible Amazon AWS モジュール開発のガイドライン" + +#~ msgid "This guide has moved to :ref:`ansible_collections.amazon.aws.docsite.dev_guide_intro`." +#~ msgstr "このガイドは :ref:`ansible_collections.amazon.aws.docsite.dev_guide_intro` に移動しました。" + +#~ msgid "OpenStack Ansible Modules" +#~ msgstr "OpenStack Ansible モジュール" + +#~ msgid "Please see the `OpenStack guidelines `_, for further information." +#~ msgstr "詳細は、`OpenStack ガイドライン `_ を参照してください。" + +#~ msgid "oVirt Ansible Modules" +#~ msgstr "oVirt Ansible モジュール" + +#~ msgid "Guidelines for VMware module development" +#~ msgstr "VMware モジュール開発のガイドライン" + +#~ msgid "This guide has moved to :ref:`ansible_collections.community.vmware.docsite.vmware_ansible_devguide`." +#~ msgstr "このガイドは :ref:`ansible_collections.community.vmware.docsite.vmware_ansible_devguide` に移動しました。" + +#~ msgid "Guidelines for VMware REST module development" +#~ msgstr "VMware REST モジュール開発のガイドライン" + +#~ msgid "This guide has moved to :ref:`ansible_collections.vmware.vmware_rest.docsite.vmware_rest_devguide`." +#~ msgstr "このガイドは :ref:`ansible_collections.vmware.vmware_rest.docsite.vmware_rest_devguide` に移動しました。" + +#~ msgid "Test python code against a variety of Python versions." +#~ msgstr "さまざまな Python バージョンに対して python コードをテストします。" + +#~ msgid "Example::" +#~ msgstr "例:" + +#~ msgid "See :ref:`testing_compile` for more information." +#~ msgstr "詳細は、「:ref:`testing_compile`」を参照してください。" + +#~ msgid "Ansible allows unchecked imports of some libraries from specific directories, listed at the bottom of this section. Import all other Python libraries in a try/except ImportError block to support sanity tests such as ``validate-modules`` and to allow Ansible to give better error messages to the user. To import a library in a try/except ImportError block:" +#~ msgstr "Ansible では、このセクションの下部に記載されている特定のディレクトリーから、いくつかのライブラリーを確認せずにインポートすることができます。``validate-modules`` などの健全性テストをサポートし、Ansible がユーザーに適切なエラーメッセージを表示できるようにするため、try/except ImportError ブロックで他のすべての Python ライブラリーをインポートします。try/except ImportError ブロックでライブラリをインポートするには、次を行います。" + +#~ msgid "See :ref:`testing_pep8` for more information." +#~ msgstr "詳細は、「:ref:`testing_pep8`」を参照してください。" + +#~ msgid "Compile tests check source files for valid syntax on all supported python versions:" +#~ msgstr "コンパイルテストでは、サポートされているすべての python バージョンで、ソースファイルの構文が有効かどうかを確認します。" + +#~ msgid "2.4 (Ansible 2.3 only)" +#~ msgstr "2.4 (Ansible 2.3 のみ)" + +#~ msgid "2.6" +#~ msgstr "2.6" + +#~ msgid "NOTE: In Ansible 2.4 and earlier the compile test was provided by a dedicated sub-command ``ansible-test compile`` instead of a sanity test using ``ansible-test sanity --test compile``." +#~ msgstr "注記: Ansible 2.4 以前では、``ansible-test sanity --test compile`` を使用する健全性テストの代わりに、コンパイルテストが専用のサブコマンド ``ansible-test compile`` によって提供されていました。" + +#~ msgid "Running compile tests locally" +#~ msgstr "ローカルでのコンパイルテストの実行" + +#~ msgid "Compile tests can be run across the whole code base by doing:" +#~ msgstr "コンパイルテストを実行するには、次のように、コードベース全体でテストを実行できます。" + +#~ msgid "For advanced usage see the help:" +#~ msgstr "高度な使用方法は、ヘルプを参照してください。" + +#~ msgid "``ansible-test`` has a number of dependencies , for ``compile`` tests we suggest running the tests with ``--local``, which is the default" +#~ msgstr "``ansible-test`` にはいくつかの依存関係があります。``compile`` テストでは、デフォルトである ``--local`` を使用してテストを実行することが推奨されます。" + +#~ msgid "The dependencies can be installed using the ``--requirements`` argument. For example:" +#~ msgstr "依存関係は、``--requirements`` 引数を使用してインストールできます。以下に例を示します。" + +#~ msgid "The full list of requirements can be found at `test/lib/ansible_test/_data/requirements `_. Requirements files are named after their respective commands. See also the `constraints `_ applicable to all commands." +#~ msgstr "要件の一覧は `test/lib/ansible_test/_data/requirements `_ に記載されています。要件ファイルには、各コマンドにちなんで名前が付けられています。全コマンドに適用される `制約 `_ も参照してください。" + +#~ msgid "Extending compile tests" +#~ msgstr "コンパイルテストの拡張" + +#~ msgid "If you believe changes are needed to the compile tests please add a comment on the `Testing Working Group Agenda `_ so it can be discussed." +#~ msgstr "コンパイルテストに変更が必要な場合は、`Testing Working Group Agenda `_ にコメントを追加してください。その内容について話し合うことができます。" + +#~ msgid "Legacy Cloud Tests" +#~ msgstr "レガシーのクラウドテスト" + +#~ msgid "Some of the cloud tests run as normal integration tests, and others run as legacy tests; see the :ref:`testing_integration_legacy` page for more information." +#~ msgstr "一部のクラウドテストは通常の統合テストとして実行し、その他はレガシーテストとして実行します。詳細は、「:ref:`testing_integration_legacy`」のドキュメントを参照してください。" + +#~ msgid "Testing using the Legacy Integration system" +#~ msgstr "レガシー統合システムを使用したテスト" + +#~ msgid "This page details how to run the integration tests that haven't been ported to the new ``ansible-test`` framework." +#~ msgstr "このページでは、新しい ``ansible-test`` フレームワークに移植されていない統合テストの実行方法を説明します。" + +#~ msgid "The following areas are still tested using the legacy ``make tests`` command:" +#~ msgstr "以下のエリアは、レガシーの ``make tests`` コマンドを使用してテストされます。" + +#~ msgid "amazon (some)" +#~ msgstr "amazon (一部)" + +#~ msgid "azure" +#~ msgstr "azure" + +#~ msgid "cloudflare" +#~ msgstr "cloudflare" + +#~ msgid "cloudscale" +#~ msgstr "cloudscale" + +#~ msgid "cloudstack" +#~ msgstr "cloudstack" + +#~ msgid "consul" +#~ msgstr "consul" + +#~ msgid "exoscale" +#~ msgstr "exoscale" + +#~ msgid "gce" +#~ msgstr "gce" + +#~ msgid "jenkins" +#~ msgstr "jenkins" + +#~ msgid "rackspace" +#~ msgstr "rackspace" + +#~ msgid "Over time the above list will be reduced as tests are ported to the ``ansible-test`` framework." +#~ msgstr "テストが ``ansible-test`` フレームワークに移植されると、上記のリストは徐々に少なくなっていきます。" + +#~ msgid "Running Cloud Tests" +#~ msgstr "クラウドテストの実行" + +#~ msgid "Cloud tests exercise capabilities of cloud modules (for example, ec2_key). These are not 'tests run in the cloud' so much as tests that use the cloud modules and are organized by cloud provider." +#~ msgstr "クラウドテストは、クラウドモジュール (ec2_key など) の機能を実行します。これらは、「クラウドで実行されるテスト」ではなく、クラウドモジュールを使用し、クラウドプロバイダーによって編成されたテストです。" + +#~ msgid "Some AWS tests may use environment variables. It is recommended to either unset any AWS environment variables( such as ``AWS_DEFAULT_PROFILE``, ``AWS_SECRET_ACCESS_KEY``, and so on) or be sure that the environment variables match the credentials provided in ``credentials.yml`` to ensure the tests run with consistency to their full capability on the expected account. See `AWS CLI docs `_ for information on creating a profile." +#~ msgstr "AWS テストによっては、環境変数を使用するものもあります。AWS 環境変数 (``AWS_DEFAULT_PROFILE``、``AWS_SECRET_ACCESS_KEY`` など) の設定を解除するか、環境変数が ``credentials.yml`` で提供される認証情報と一致することを確認して、予想されるアカウントの完全な機能に一貫性のあるテストが実行されるようにすることが推奨されます。プロファイルの作成に関する情報は、`AWS CLI ドキュメント `_ を参照してください。" + +#~ msgid "Subsets of tests may be run by ``#commenting`` out unnecessary roles in the appropriate playbook, such as ``test/integration/amazon.yml``." +#~ msgstr "テストのサブセットは、適切な Playbook の 不要なロールを ``#commenting`` でコメントアウトすることで実行できます (例: ``test/integration/amazon.yml``)。" + +#~ msgid "In order to run cloud tests, you must provide access credentials in a file named ``credentials.yml``. A sample credentials file named ``credentials.template`` is available for syntax help." +#~ msgstr "クラウドテストを実行するには、``credentials.yml`` という名前のファイルでアクセス認証情報を指定する必要があります。構文ヘルプには、``credentials.template`` と名前の付いたサンプル認証情報ファイルを利用できます。" + +#~ msgid "Provide cloud credentials:" +#~ msgstr "クラウド認証を提供します。" + +#~ msgid "In order to run some tests, you must provide access credentials in a file named ``credentials.yml``. A sample credentials file named ``credentials.template`` is available for syntax help." +#~ msgstr "いくつかのテストを実行するには、``credentials.yml`` という名前のファイルでアクセス認証情報を指定する必要があります。構文ヘルプには、``credentials.template`` と名前の付いたサンプル認証情報ファイルを利用できます。" + +#~ msgid "In order to run the tests in an AWS account ansible needs fairly wide ranging powers which can be provided to a dedicated user or temporary credentials using a specific policy configured in the AWS account." +#~ msgstr "AWS アカウントでテストを実行するには、Ansible に、AWS アカウントで設定された特定のポリシーを使用して、専用のユーザや一時的な認証情報に提供できる、かなり広範囲の権限が必要となります。" + +#~ msgid "testing-iam-policy.json.j2" +#~ msgstr "testing-iam-policy.json.j2" + +#~ msgid "The testing-iam-policy.json.j2 file contains a policy which can be given to the user running the tests to give close to minimum rights required to run the tests. Please note that this does not fully restrict the user; The user has wide privileges for viewing account definitions and is also able to manage some resources that are not related to testing (for example, AWS lambdas with different names) primarily due to the limitations of the Amazon ARN notation. At the very least the policy limits the user to one region, however tests should not be run in a primary production account in any case." +#~ msgstr "testing-iam-policy.json.j2 ファイルには、テストを実行するユーザーに付与するポリシーが含まれており、テストの実行に必要な最低限の権限に近いものを付与することができます。なお、これは完全な制限ではないため注意してください。このユーザーは、アカウント定義を閲覧する幅広い権限を持ち、主に Amazon ARN 表記の制限により、テストに関係のない一部のリソース (たとえば、異なる名前の AWS ラムダ) を管理することもできます。少なくとも、このポリシーではユーザーを 1 つのリージョンに限定していますが、いかなる場合でも、テストは実稼働環境のプライマリーアカウントで実行すべきではありません。" + +#~ msgid "The tests are invoked via a ``Makefile``." +#~ msgstr "テストは ``Makefile`` 経由で呼び出されます。" + +#~ msgid "If you haven't already got Ansible available use the local checkout by doing:" +#~ msgstr "Ansible がまだ利用可能でない場合は、以下の方法でローカルチェックアウトを使用します。" + +#~ msgid "Run the tests by doing:" +#~ msgstr "以下を実行してテストを実行します。" + +#~ msgid "Possible cost of running cloud tests" +#~ msgstr "クラウドテストにかかる可能性のあるコスト" + +#~ msgid "Running cloud integration tests will create and destroy cloud resources. Running these tests may result in additional fees associated with your cloud account. Care is taken to ensure that created resources are removed. However, it is advisable to inspect your AWS console to ensure no unexpected resources are running." +#~ msgstr "クラウド統合テストを実行すると、クラウドリソースが作成および破棄されます。このようなテストを実行すると、クラウドアカウントに関連する追加料金が発生する可能性があります。作成されたリソースが確実に削除されるように注意が払われます。ただし、AWS コンソールを調べて、予期しないリソースが実行していないことを確認することが推奨されます。" + +#~ msgid "Run tests locally using ``ansible-test``" +#~ msgstr "``ansible-test`` を使用してテストをローカルで実行します。" + +#~ msgid "Extend" +#~ msgstr "拡張" + +#~ msgid "There are no special requirements for running ``ansible-test`` on Python 2.7 or later. The ``argparse`` package is required for Python 2.6. The requirements for each ``ansible-test`` command are covered later." +#~ msgstr "Python 2.7 以降には、``ansible-test`` を実行するための特別な要件がありません。Python 2.6 には ``argparse`` パッケージが必要です。各 ``ansible-test`` コマンドの要件は、後で説明します。" + +#~ msgid "Remote" +#~ msgstr "リモート" + +#~ msgid "Recommended for integration tests." +#~ msgstr "統合テストへ推奨事項" + +#~ msgid "See the `list of supported platforms and versions `_ for additional details." +#~ msgstr "詳細は、「`サポート対象のプラットフォームおよびバージョンの一覧 `_」を参照してください。" + +#~ msgid "Python program to help test or validate Ansible modules." +#~ msgstr "Ansible モジュールのテストまたは検証に役立つ Python プログラム。" + +#~ msgid "``validate-modules`` is one of the ``ansible-test`` Sanity Tests, see :ref:`testing_sanity` for more information." +#~ msgstr "``validate-modules`` は、健全性テスト ``ansible-test`` のいずれかです。詳細は、「:ref:`testing_sanity`」を参照してください。" + +#~ msgid "Originally developed by Matt Martz (@sivel)" +#~ msgstr "本プログラムは、元々 Matt Martz (@sivel) 氏により開発されました。" + diff --git a/docs/docsite/rst/locales/ja/LC_MESSAGES/galaxy.po b/docs/docsite/rst/locales/ja/LC_MESSAGES/galaxy.po index dbdb6757..246e8494 100644 --- a/docs/docsite/rst/locales/ja/LC_MESSAGES/galaxy.po +++ b/docs/docsite/rst/locales/ja/LC_MESSAGES/galaxy.po @@ -7,14 +7,14 @@ msgid "" msgstr "" "Project-Id-Version: Ansible devel\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-10-05 09:34+0200\n" +"POT-Creation-Date: 2023-03-01 20:16+0100\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.8.1\n" +"Generated-By: Babel 2.9.0\n" #: ../../rst/galaxy/dev_guide.rst:5 msgid "Galaxy Developer Guide" @@ -30,7 +30,7 @@ msgstr "Galaxy のコレクションの作成" #: ../../rst/galaxy/dev_guide.rst:19 msgid "Collections are a distribution format for Ansible content. You can use collections to package and distribute playbooks, roles, modules, and plugins. You can publish and use collections through `Ansible Galaxy `_." -msgstr "コレクションは、Ansible コンテンツのディストリビューション形式です。コレクションを使用して、Playbook、ロール、モジュール、プラグインをパッケージ化および配布できます。`Ansible Galaxy `_ を介してコレクションを公開および使用できます。" +msgstr "コレクションは、Ansible コンテンツのディストリビューション形式です。コレクションを使用して、Playbook、ロール、モジュール、およびプラグインをパッケージ化および配布できます。`Ansible Galaxy `_ を介してコレクションを公開および使用できます。" #: ../../rst/galaxy/dev_guide.rst:22 msgid "See :ref:`developing_collections` for details on how to create collections." @@ -101,154 +101,150 @@ msgid "Authenticate with Galaxy" msgstr "Galaxy での認証" #: ../../rst/galaxy/dev_guide.rst:98 -msgid "Using the ``import``, ``delete`` and ``setup`` commands to manage your roles on the Galaxy website requires authentication, and the ``login`` command can be used to do just that. Before you can use the ``login`` command, you must create an account on the Galaxy website." -msgstr "Galaxy Web サイトでロールを管理する ``import`` コマンド、``delete`` コマンド、および ``setup`` コマンドを使用するには認証が必要で、``login`` コマンドを使用してこれを行うことができます。``login`` コマンドを使用する前に、Galaxy の Web サイトでアカウントを作成する必要があります。" +msgid "Using the ``import``, ``delete`` and ``setup`` commands to manage your roles on the Galaxy website requires authentication in the form of an API key, you must create an account on the Galaxy website." +msgstr "Galaxy Web サイトでロールを管理する ``import`` および ``delete``、``setup`` コマンドを使用するには、API キーの形式での認証が必要です。Galaxy Web サイトでアカウントを作成する必要があります。" + +#: ../../rst/galaxy/dev_guide.rst:100 +msgid "Log in to the Galaxy website and open the `Preferences `_ view." +msgstr "Galaxy の Web サイトにログインし、`Preferences ` _ ビューを開きます。" #: ../../rst/galaxy/dev_guide.rst:101 -msgid "The ``login`` command requires using your GitHub credentials. You can use your username and password, or you can create a `personal access token `_. If you choose to create a token, grant minimal access to the token, as it is used just to verify identify." -msgstr "``login`` コマンドには、GitHub 認証情報を使用する必要があります。ユーザー名とパスワードを使用するか、`personal access token `_ を作成することができます。トークンの作成を選択した場合は、識別を確認するためにのみ使用されます。" +msgid "Select **Show API key** and then copy it." +msgstr "**Show API key** を選択してコピーします。" #: ../../rst/galaxy/dev_guide.rst:103 -msgid "The following shows authenticating with the Galaxy website using a GitHub username and password:" -msgstr "以下は、GitHub のユーザー名とパスワードを使用した Galaxy Web サイトでの認証を示しています。" - -#: ../../rst/galaxy/dev_guide.rst:119 -msgid "When you choose to use your username and password, your password is not sent to Galaxy. It is used to authenticates with GitHub and create a personal access token. It then sends the token to Galaxy, which in turn verifies that your identity and returns a Galaxy access token. After authentication completes the GitHub token is destroyed." -msgstr "ユーザー名とパスワードの使用を選択すると、パスワードは Galaxy に送信されません。これは GitHub で認証され、個人アクセストークンを作成するために使用されます。次にトークンを Galaxy に送信し、その ID を検証し、Galaxy アクセストークンを返します。認証が完了すると、GitHub トークンが破棄されます。" - -#: ../../rst/galaxy/dev_guide.rst:123 -msgid "If you do not want to use your GitHub password, or if you have two-factor authentication enabled with GitHub, use the ``--github-token`` option to pass a personal access token that you create." -msgstr "GitHub パスワードを使用しない場合や、GitHub で 2 段階認証を有効にしている場合は、``--github-token`` オプションを使用して、作成する個人用アクセストークンを渡します。" +msgid "Save your token in the path set in the :ref:`GALAXY_TOKEN_PATH`." +msgstr ":ref:`GALAXY_TOKEN_PATH` で設定したパスにトークンを保存します。" -#: ../../rst/galaxy/dev_guide.rst:127 +#: ../../rst/galaxy/dev_guide.rst:107 msgid "Import a role" msgstr "ロールのインポート" -#: ../../rst/galaxy/dev_guide.rst:129 +#: ../../rst/galaxy/dev_guide.rst:109 msgid "The ``import`` command requires that you first authenticate using the ``login`` command. Once authenticated you can import any GitHub repository that you own or have been granted access." msgstr "``import`` コマンドでは、最初に ``login`` コマンドを使用して認証する必要があります。認証されると、所有またはアクセスが付与された GitHub リポジトリーをすべてインポートできます。" -#: ../../rst/galaxy/dev_guide.rst:131 +#: ../../rst/galaxy/dev_guide.rst:111 msgid "Use the following to import to role:" msgstr "以下を使用してロールにインポートします。" -#: ../../rst/galaxy/dev_guide.rst:137 +#: ../../rst/galaxy/dev_guide.rst:117 msgid "By default the command will wait for Galaxy to complete the import process, displaying the results as the import progresses:" msgstr "デフォルトでは、コマンドは Galaxy がインポートプロセスを完了するまで待機し、インポートが進行するにつれて結果を表示します。" -#: ../../rst/galaxy/dev_guide.rst:155 +#: ../../rst/galaxy/dev_guide.rst:135 msgid "Branch" msgstr "ブランチ" -#: ../../rst/galaxy/dev_guide.rst:157 +#: ../../rst/galaxy/dev_guide.rst:137 msgid "Use the ``--branch`` option to import a specific branch. If not specified, the default branch for the repo will be used." msgstr "特定のブランチをインポートするには、``--branch`` オプションを使用します。指定しない場合は、リポジトリーのデフォルトブランチが使用されます。" -#: ../../rst/galaxy/dev_guide.rst:160 +#: ../../rst/galaxy/dev_guide.rst:140 msgid "Role name" msgstr "ロール名" -#: ../../rst/galaxy/dev_guide.rst:162 +#: ../../rst/galaxy/dev_guide.rst:142 msgid "By default the name given to the role will be derived from the GitHub repository name. However, you can use the ``--role-name`` option to override this and set the name." msgstr "デフォルトでは、ロールに指定された名前は GitHub リポジトリー名から派生しますが、``--role-name`` オプションを使用してこれを上書きして名前を設定できます。" -#: ../../rst/galaxy/dev_guide.rst:165 +#: ../../rst/galaxy/dev_guide.rst:145 msgid "No wait" msgstr "待機なし" -#: ../../rst/galaxy/dev_guide.rst:167 +#: ../../rst/galaxy/dev_guide.rst:147 msgid "If the ``--no-wait`` option is present, the command will not wait for results. Results of the most recent import for any of your roles is available on the Galaxy web site by visiting *My Imports*." msgstr "``--no-wait`` オプションが存在する場合は、結果を待ちません。すべてのロールに対する最新のインポートの結果は、*My Imports* に移動して Galaxy Web サイトで利用できるようになります。" -#: ../../rst/galaxy/dev_guide.rst:170 +#: ../../rst/galaxy/dev_guide.rst:150 msgid "Delete a role" msgstr "ロールの削除" -#: ../../rst/galaxy/dev_guide.rst:172 +#: ../../rst/galaxy/dev_guide.rst:152 msgid "The ``delete`` command requires that you first authenticate using the ``login`` command. Once authenticated you can remove a role from the Galaxy web site. You are only allowed to remove roles where you have access to the repository in GitHub." msgstr "``delete`` コマンドでは、最初に ``login`` コマンドを使用して認証する必要があります。認証されると、Galaxy Web サイトからロールを削除できます。GitHub のリポジトリーにアクセスできるロールのみを削除することができます。" -#: ../../rst/galaxy/dev_guide.rst:174 +#: ../../rst/galaxy/dev_guide.rst:154 msgid "Use the following to delete a role:" msgstr "ロールを削除するには、以下を使用します。" -#: ../../rst/galaxy/dev_guide.rst:180 +#: ../../rst/galaxy/dev_guide.rst:160 msgid "This only removes the role from Galaxy. It does not remove or alter the actual GitHub repository." msgstr "これにより、Galaxy からロールのみが削除されます。実際の GitHub リポジトリーを削除したり、変更したりしません。" -#: ../../rst/galaxy/dev_guide.rst:184 +#: ../../rst/galaxy/dev_guide.rst:164 msgid "Travis integrations" msgstr "Travis 統合" -#: ../../rst/galaxy/dev_guide.rst:186 +#: ../../rst/galaxy/dev_guide.rst:166 msgid "You can create an integration or connection between a role in Galaxy and `Travis `_. Once the connection is established, a build in Travis will automatically trigger an import in Galaxy, updating the search index with the latest information about the role." msgstr "Galaxy と `Travis `_ のロール間の統合またはコネクションを作成できます。コネクションが確立されると、Travis のビルドが自動的に Galaxy でインポートを発生させ、ロールに関する最新情報で検索インデックスを更新します。" -#: ../../rst/galaxy/dev_guide.rst:189 +#: ../../rst/galaxy/dev_guide.rst:169 msgid "You create the integration using the ``setup`` command, but before an integration can be created, you must first authenticate using the ``login`` command; you will also need an account in Travis, and your Travis token. Once you're ready, use the following command to create the integration:" msgstr "``setup`` コマンドを使用して統合を作成しますが、統合を作成する前に、最初に ``login`` コマンドを使用して認証する必要があります。Travis および Travis トークンにもアカウントが必要になります。準備が整ったら、以下のコマンドを使用して統合を作成します。" -#: ../../rst/galaxy/dev_guide.rst:196 +#: ../../rst/galaxy/dev_guide.rst:176 msgid "The setup command requires your Travis token, however the token is not stored in Galaxy. It is used along with the GitHub username and repo to create a hash as described in `the Travis documentation `_. The hash is stored in Galaxy and used to verify notifications received from Travis." msgstr "setup コマンドには Travis トークンが必要ですが、トークンは Galaxy に保存されていません。これは、`the Travis documentation `_ で説明されているように、GitHub ユーザー名およびリポジトリーとともに使用されます。ハッシュは Galaxy に格納され、Travis から受信した通知の検証に使用されます。" -#: ../../rst/galaxy/dev_guide.rst:199 +#: ../../rst/galaxy/dev_guide.rst:179 msgid "The setup command enables Galaxy to respond to notifications. To configure Travis to run a build on your repository and send a notification, follow the `Travis getting started guide `_." msgstr "setup コマンドを使用すると、Galaxy が通知に応答します。Travis がリポジトリーでビルドを実行し、通知を送信するように設定するには、`Travis getting started guide `_ に従います。" -#: ../../rst/galaxy/dev_guide.rst:202 +#: ../../rst/galaxy/dev_guide.rst:182 msgid "To instruct Travis to notify Galaxy when a build completes, add the following to your .travis.yml file:" msgstr "ビルドの完了時に Galaxy に通知するように Travis に指示するには、.travis.yml ファイルに以下を追加します。" -#: ../../rst/galaxy/dev_guide.rst:211 +#: ../../rst/galaxy/dev_guide.rst:191 msgid "List Travis integrations" msgstr "Travis 統合の一覧表示" -#: ../../rst/galaxy/dev_guide.rst:213 +#: ../../rst/galaxy/dev_guide.rst:193 msgid "Use the ``--list`` option to display your Travis integrations:" msgstr "``--list`` オプションを使用して、Travis 統合を表示します。" -#: ../../rst/galaxy/dev_guide.rst:227 +#: ../../rst/galaxy/dev_guide.rst:207 msgid "Remove Travis integrations" msgstr "Travis 統合の削除" -#: ../../rst/galaxy/dev_guide.rst:229 +#: ../../rst/galaxy/dev_guide.rst:209 msgid "Use the ``--remove`` option to disable and remove a Travis integration:" msgstr "``--remove`` オプションを使用して、Travis 統合を無効化および削除します。" -#: ../../rst/galaxy/dev_guide.rst:235 +#: ../../rst/galaxy/dev_guide.rst:215 msgid "Provide the ID of the integration to be disabled. You can find the ID by using the ``--list`` option." msgstr "無効にする統合の ID を指定します。``--list`` オプションを使用して ID を検索できます。" -#: ../../rst/galaxy/dev_guide.rst:239 ../../rst/galaxy/user_guide.rst:491 +#: ../../rst/galaxy/dev_guide.rst:219 ../../rst/galaxy/user_guide.rst:491 msgid ":ref:`collections`" msgstr ":ref:`collections`" -#: ../../rst/galaxy/dev_guide.rst:240 ../../rst/galaxy/user_guide.rst:492 +#: ../../rst/galaxy/dev_guide.rst:220 ../../rst/galaxy/user_guide.rst:492 msgid "Shareable collections of modules, playbooks and roles" msgstr "モジュール、Playbook、およびロールの共有可能なコレクション" -#: ../../rst/galaxy/dev_guide.rst:241 ../../rst/galaxy/user_guide.rst:493 +#: ../../rst/galaxy/dev_guide.rst:221 ../../rst/galaxy/user_guide.rst:493 msgid ":ref:`playbooks_reuse_roles`" msgstr ":ref:`playbooks_reuse_roles`" -#: ../../rst/galaxy/dev_guide.rst:242 +#: ../../rst/galaxy/dev_guide.rst:222 msgid "All about ansible roles" msgstr "Ansible ロールに関するすべて" -#: ../../rst/galaxy/dev_guide.rst:243 +#: ../../rst/galaxy/dev_guide.rst:223 msgid "`Mailing List `_" msgstr "`Mailing List `_" -#: ../../rst/galaxy/dev_guide.rst:244 +#: ../../rst/galaxy/dev_guide.rst:224 msgid "Questions? Help? Ideas? Stop by the list on Google Groups" msgstr "ご質問はございますか。サポートが必要ですか。ご提案はございますか。Google グループの一覧をご覧ください。" -#: ../../rst/galaxy/dev_guide.rst:245 +#: ../../rst/galaxy/dev_guide.rst:225 msgid ":ref:`communication_irc`" msgstr ":ref:`communication_irc`" -#: ../../rst/galaxy/dev_guide.rst:246 +#: ../../rst/galaxy/dev_guide.rst:226 msgid "How to join Ansible chat channels" msgstr "Ansible チャットチャンネルへの参加方法" @@ -472,15 +468,15 @@ msgstr "``type: git`` でコレクションをインストールする場合、` msgid "You can also add roles to a ``requirements.yml`` file, under the ``roles`` key. The values follow the same format as a requirements file used in older Ansible releases." msgstr "``roles``キーの下にある``requirements.yml``ファイルにロールを追加することもできます。この値は、古い Ansible リリースで使用される要件ファイルと同じ形式に従います。" -#: ../../rst/shared_snippets/installing_multiple_collections.txt:67 +#: ../../rst/shared_snippets/installing_multiple_collections.txt:68 msgid "To install both roles and collections at the same time with one command, run the following:" msgstr "1 つのコマンドで、ロールとコレクションを同時にインストールするには、以下のコマンドを実行します。" -#: ../../rst/shared_snippets/installing_multiple_collections.txt:73 +#: ../../rst/shared_snippets/installing_multiple_collections.txt:74 msgid "Running ``ansible-galaxy collection install -r`` or ``ansible-galaxy role install -r`` will only install collections, or roles respectively." msgstr "``ansible-galaxy collection install -r`` または ``ansible-galaxy role install -r`` を実行すると、それぞれコレクションまたはロールがインストールされます。" -#: ../../rst/shared_snippets/installing_multiple_collections.txt:76 +#: ../../rst/shared_snippets/installing_multiple_collections.txt:77 msgid "Installing both roles and collections from the same requirements file will not work when specifying a custom collection or role install path. In this scenario the collections will be skipped and the command will process each like ``ansible-galaxy role install`` would." msgstr "カスタムコレクションまたはロールインストールパスを指定する場合、同じ要件ファイルからロールとコレクションの両方をインストールすることはできません。今回の例では、コレクションは省略され、コマンドは ``ansible-galaxy role install`` のように処理されます。" @@ -1077,4 +1073,16 @@ msgstr "カタログ関連の操作を実行します。" #~ msgid "Once a collection is found, any of its requirements are only searched within the same Galaxy instance as the parent collection. The install process will not search for a collection requirement in a different Galaxy instance." #~ msgstr "コレクションが見つかると、その要件は親コレクションと同じ Galaxy インスタンス内でのみ検索されます。インストールプロセスでは、別の Galaxy インスタンスでコレクション要件を検索しません。" +#~ msgid "The ``login`` command requires using your GitHub credentials. You can use your username and password, or you can create a `personal access token `_. If you choose to create a token, grant minimal access to the token, as it is used just to verify identify." +#~ msgstr "``login`` コマンドには、GitHub 認証情報を使用する必要があります。ユーザー名とパスワードを使用するか、`personal access token `_ を作成することができます。トークンの作成を選択した場合は、識別を確認するためにのみ使用されます。" + +#~ msgid "The following shows authenticating with the Galaxy website using a GitHub username and password:" +#~ msgstr "以下は、GitHub のユーザー名とパスワードを使用した Galaxy Web サイトでの認証を示しています。" + +#~ msgid "When you choose to use your username and password, your password is not sent to Galaxy. It is used to authenticates with GitHub and create a personal access token. It then sends the token to Galaxy, which in turn verifies that your identity and returns a Galaxy access token. After authentication completes the GitHub token is destroyed." +#~ msgstr "ユーザー名とパスワードの使用を選択すると、パスワードは Galaxy に送信されません。これは GitHub で認証され、個人アクセストークンを作成するために使用されます。次にトークンを Galaxy に送信し、その ID を検証し、Galaxy アクセストークンを返します。認証が完了すると、GitHub トークンが破棄されます。" + +#~ msgid "If you do not want to use your GitHub password, or if you have two-factor authentication enabled with GitHub, use the ``--github-token`` option to pass a personal access token that you create." +#~ msgstr "GitHub パスワードを使用しない場合や、GitHub で 2 段階認証を有効にしている場合は、``--github-token`` オプションを使用して、作成する個人用アクセストークンを渡します。" + diff --git a/docs/docsite/rst/locales/ja/LC_MESSAGES/getting_started.po b/docs/docsite/rst/locales/ja/LC_MESSAGES/getting_started.po index bb8a403a..6675e2fd 100644 --- a/docs/docsite/rst/locales/ja/LC_MESSAGES/getting_started.po +++ b/docs/docsite/rst/locales/ja/LC_MESSAGES/getting_started.po @@ -7,14 +7,14 @@ msgid "" msgstr "" "Project-Id-Version: Ansible devel\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-10-05 09:34+0200\n" +"POT-Creation-Date: 2023-03-01 20:16+0100\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.8.1\n" +"Generated-By: Babel 2.9.0\n" #: ../../rst/getting_started/basic_concepts.rst:5 msgid "Ansible concepts" @@ -84,7 +84,7 @@ msgstr "管理ホストに適用される「アクション」の定義。タス #: ../../rst/shared_snippets/basic_concepts.txt:43 msgid "Handlers" -msgstr "ハンドラー" +msgstr "Handler (ハンドラー)" #: ../../rst/shared_snippets/basic_concepts.txt:44 msgid "A special form of a Task, that only executes when notified by a previous task which resulted in a 'changed' status." @@ -135,7 +135,7 @@ msgid "In the previous section, you added managed nodes directly to the ``/etc/a msgstr "前のセクションでは、管理対象ノードを ``/etc/ansible/hosts`` ファイルに直接追加しました。次は、柔軟性の向上、再利用、他のユーザーとの共有を可能にするため、ソース管理に追加できるインベントリーファイルを作成します。" #: ../../rst/getting_started/get_started_inventory.rst:16 -msgid "Inventory files can be in ``INI`` or ``YAML`` format. For demonstration purposes this section uses ``YAML`` format only." +msgid "Inventory files can be in ``INI`` or ``YAML`` format. For demonstration purposes, this section uses ``YAML`` format only." msgstr "インベントリーファイルは ``INI`` または ``YAML`` 形式を使用できます。デモンストレーションとして、ここでは ``YAML`` 形式のみを使用します。" #: ../../rst/getting_started/get_started_inventory.rst:19 @@ -404,6 +404,9 @@ msgstr "Ansible が制御するリモートシステムまたはホスト。" msgid "A list of managed nodes that are logically organized. You create an inventory on the control node to describe host deployments to Ansible." msgstr "論理的に編成される管理対象ノードの一覧。コントロールノードにインベントリーを作成し、Ansible にホストのデプロイメントを記述します。" +msgid "Basic components of an Ansible environment include a control node, an inventory of managed nodes, and a module copied to each managed node." +msgstr "Ansible 環境の基本コンポーネントには、コントロールノード、管理対象ノードのインベントリー、および各管理対象ノードにコピーされたモジュールが含まれます。" + #: ../../rst/getting_started/index.rst:28 msgid "Ready to start using Ansible? Complete the following steps to get up and running:" msgstr "Ansible の使用を開始する準備ができましたか。それでは、以下の手順を実行して起動しましょう。" @@ -453,8 +456,8 @@ msgid "Demonstrations of different Ansible usecases" msgstr "各種 Ansible のユースケースのデモ" #: ../../rst/getting_started/index.rst:87 -msgid "`RHEL Labs `_" -msgstr "`RHEL Labs `_" +msgid "`Ansible Labs `_" +msgstr "`Ansible Labs `_" #: ../../rst/getting_started/index.rst:88 msgid "Labs to provide further knowledge on different topics" @@ -476,4 +479,7 @@ msgstr ":ref:`communication_irc`" msgid "How to join Ansible chat channels" msgstr "Ansible チャットチャンネルへの参加方法" +#~ msgid "`RHEL Labs `_" +#~ msgstr "`RHEL Labs `_" + diff --git a/docs/docsite/rst/locales/ja/LC_MESSAGES/installation_guide.po b/docs/docsite/rst/locales/ja/LC_MESSAGES/installation_guide.po index da40e472..022119df 100644 --- a/docs/docsite/rst/locales/ja/LC_MESSAGES/installation_guide.po +++ b/docs/docsite/rst/locales/ja/LC_MESSAGES/installation_guide.po @@ -7,14 +7,14 @@ msgid "" msgstr "" "Project-Id-Version: Ansible devel\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-10-05 09:34+0200\n" +"POT-Creation-Date: 2023-03-01 20:16+0100\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.8.1\n" +"Generated-By: Babel 2.9.0\n" #: ../../rst/installation_guide/index.rst:3 msgid "Installation Guide" @@ -130,8 +130,8 @@ msgid "You cannot use a Windows system for the Ansible control node. See :ref:`w msgstr "Ansible コントロールノードに Windows システムは使用できません。:ref:`windows_faq_ansible` を参照してください。" #: ../../rst/installation_guide/installation_distros.rst:107 -msgid "`Installing Ansible on ARch Linux `_" -msgstr "`Installing Ansible on ARch Linux `_" +msgid "`Installing Ansible on Arch Linux `_" +msgstr "`Installing Ansible on Arch Linux `_" #: ../../rst/installation_guide/installation_distros.rst:108 msgid "Distro-specific installation on Arch Linux" @@ -214,7 +214,7 @@ msgid "The full list of options available is in :ref:`ansible-playbook` and :ref msgstr "利用可能なオプションの詳細な一覧は「:ref:`ansible-playbook`」および「:ref:`ansible`」にあります。" #: ../../rst/installation_guide/intro_installation.rst:6 -#: ../../rst/installation_guide/intro_installation.rst:109 +#: ../../rst/installation_guide/intro_installation.rst:110 msgid "Installing Ansible" msgstr "Ansible のインストール" @@ -235,319 +235,319 @@ msgid "Managed node requirements" msgstr "管理ノードの要件" #: ../../rst/installation_guide/intro_installation.rst:25 -msgid "The *managed* node (the machine that Ansible is managing) does not require Ansible to be installed, but requires Python 2.7, or Python 3.5 - 3.11 to run Ansible library code." -msgstr "*マネージド* ノード (Ansible が管理しているマシン) には Ansible をインストールする必要はありませんが、Ansible ライブラリーコードを実行するには Python 2.7 または Python 3.5 - 3.11 が必要です。" +msgid "The *managed* node (the machine that Ansible is managing) does not require Ansible to be installed, but requires Python 2.7, or Python 3.5 - 3.11 to run Ansible library code. The managed node also needs a user account that can SSH to the node with an interactive POSIX shell." +msgstr "*管理対象* ノード (Ansible が管理するマシン) は、Ansible のインストールは必要ありませんが、Ansible のライブラリーコードを実行するために Python 2.7、または Python 3.5〜3.11 が必要です。また、管理対象ノードには、対話型 POSIX シェルでノードに SSH 接続できるユーザーアカウントが必要です。" -#: ../../rst/installation_guide/intro_installation.rst:29 +#: ../../rst/installation_guide/intro_installation.rst:30 msgid "Network modules are an exception and do not require Python on the managed device. See :ref:`network_modules`." msgstr "ネットワークモジュールは例外で、管理デバイスに Python は必要ありません。:ref:`network_modules` を参照してください。" -#: ../../rst/installation_guide/intro_installation.rst:34 +#: ../../rst/installation_guide/intro_installation.rst:35 msgid "Node requirement summary" msgstr "ノード要件の概要" -#: ../../rst/installation_guide/intro_installation.rst:36 +#: ../../rst/installation_guide/intro_installation.rst:37 msgid "The table below lists the current and historical versions of Python required on control and managed nodes." msgstr "以下の表は、制御および管理ノードに必要な Python の現在のバージョンと過去のバージョンを示しています。" -#: ../../rst/installation_guide/intro_installation.rst:42 +#: ../../rst/installation_guide/intro_installation.rst:43 msgid "ansible-core Version" msgstr "ansible-core バージョン" -#: ../../rst/installation_guide/intro_installation.rst:43 +#: ../../rst/installation_guide/intro_installation.rst:44 msgid "Control node Python" msgstr "コントロールノード Python" -#: ../../rst/installation_guide/intro_installation.rst:44 +#: ../../rst/installation_guide/intro_installation.rst:45 msgid "Managed node Python" msgstr "管理対象ノード Python" -#: ../../rst/installation_guide/intro_installation.rst:45 +#: ../../rst/installation_guide/intro_installation.rst:46 msgid "2.11" msgstr "2.11" -#: ../../rst/installation_guide/intro_installation.rst:46 +#: ../../rst/installation_guide/intro_installation.rst:47 msgid "Python 2.7, Python 3.5 - 3.9 `[†]`_" msgstr "Python 2.7, Python 3.5 - 3.9 `[†]`_" -#: ../../rst/installation_guide/intro_installation.rst:47 +#: ../../rst/installation_guide/intro_installation.rst:48 msgid "Python 2.6 - 2.7, Python 3.5 - 3.9" msgstr "Python 2.6 - 2.7, Python 3.5 - 3.9" -#: ../../rst/installation_guide/intro_installation.rst:48 +#: ../../rst/installation_guide/intro_installation.rst:49 msgid "2.12" msgstr "2.12" -#: ../../rst/installation_guide/intro_installation.rst:49 -#: ../../rst/installation_guide/intro_installation.rst:52 +#: ../../rst/installation_guide/intro_installation.rst:50 +#: ../../rst/installation_guide/intro_installation.rst:53 msgid "Python 3.8 - 3.10" msgstr "Python 3.8 - 3.10" -#: ../../rst/installation_guide/intro_installation.rst:50 +#: ../../rst/installation_guide/intro_installation.rst:51 msgid "Python 2.6 - 2.7, Python 3.5 - 3.10" msgstr "Python 2.6 - 2.7, Python 3.5 - 3.10" -#: ../../rst/installation_guide/intro_installation.rst:51 +#: ../../rst/installation_guide/intro_installation.rst:52 msgid "2.13" msgstr "2.13" -#: ../../rst/installation_guide/intro_installation.rst:53 +#: ../../rst/installation_guide/intro_installation.rst:54 msgid "Python 2.7, Python 3.5 - 3.10" msgstr "Python 2.7, Python 3.5 - 3.10" -#: ../../rst/installation_guide/intro_installation.rst:54 +#: ../../rst/installation_guide/intro_installation.rst:55 msgid "2.14" msgstr "2.14" -#: ../../rst/installation_guide/intro_installation.rst:55 +#: ../../rst/installation_guide/intro_installation.rst:56 msgid "Python 3.9 - 3.11" msgstr "Python 3.9 - 3.11" -#: ../../rst/installation_guide/intro_installation.rst:56 +#: ../../rst/installation_guide/intro_installation.rst:57 msgid "Python 2.7, Python 3.5 - 3.11" msgstr "Python 2.7, Python 3.5 - 3.11" -#: ../../rst/installation_guide/intro_installation.rst:58 +#: ../../rst/installation_guide/intro_installation.rst:59 msgid "_`[†]`: Has a soft requirement of Python 3.8 as not packaged for older versions" msgstr "_`[†]`: 古いバージョンにはパッケージ化されていないため、Python 3.8 のソフト要件があります。" -#: ../../rst/installation_guide/intro_installation.rst:65 +#: ../../rst/installation_guide/intro_installation.rst:66 msgid "Selecting an Ansible package and version to install" msgstr "インストールする Ansible パッケージおよびバージョンの選択" -#: ../../rst/installation_guide/intro_installation.rst:67 +#: ../../rst/installation_guide/intro_installation.rst:68 msgid "Ansible's community packages are distributed in two ways: a minimalist language and runtime package called ``ansible-core``, and a much larger \"batteries included\" package called ``ansible``, which adds a community-curated selection of :ref:`Ansible Collections ` for automating a wide variety of devices. Choose the package that fits your needs; The following instructions use ``ansible``, but you can substitute ``ansible-core`` if you prefer to start with a more minimal package and separately install only the Ansible Collections you require. The ``ansible`` or ``ansible-core`` packages may be available in your operating systems package manager, and you are free to install these packages with your preferred method. These installation instructions only cover the officially supported means of installing the python package with ``pip``." msgstr "Ansible のコミュニティーパッケージは、``ansible-core`` と呼ばれる最小言語およびランタイムパッケージと、``ansible`` と呼ばれる大きな「バッテリー付き」パッケージの 2 つの方法で配布されています。これには、幅広いデバイスの自動化のためにコミュニティーが厳選した :ref:`Ansible Collections ` が追加されています。ニーズに合わせてパッケージを選択してください。以下の手順では ``ansible`` を使用していますが、最小限のパッケージで開始して必要な Ansible コレクションのみ個別にインストールする場合は ``ansible-core`` を使用できます。``ansible`` パッケージまたは ``ansible-core`` パッケージは、お使いのオペレーティングシステムパッケージマネージャーで使用できる場合があります。お好みの方法でパッケージをインストールしてください。これらのインストール手順は、``pip`` を使用して Python パッケージをインストールする、正式なサポート対象の方法に限定されています。" -#: ../../rst/installation_guide/intro_installation.rst:70 +#: ../../rst/installation_guide/intro_installation.rst:71 msgid "Installing and upgrading Ansible" msgstr "Ansible のインストールとアップグレード" -#: ../../rst/installation_guide/intro_installation.rst:73 +#: ../../rst/installation_guide/intro_installation.rst:74 msgid "Locating Python" msgstr "Python の検索" -#: ../../rst/installation_guide/intro_installation.rst:75 +#: ../../rst/installation_guide/intro_installation.rst:76 msgid "Locate and remember the path to the Python interpreter you wish to use to run Ansible. The following instructions refer to this Python as ``python3``. For example, if you've determined that you want the Python at ``/usr/bin/python3.9`` to be the one that you'll install Ansible under, specify that instead of ``python3``." msgstr "Ansible の実行に使用する Python インタープリターへのパスを見つけて覚えておいてください。以下の手順は、この Python を ``python3`` として参照します。たとえば、``/usr/bin/python3.9`` の Python に Ansible をインストールする場合は、``python3`` の代わりにその Python を指定します。" -#: ../../rst/installation_guide/intro_installation.rst:78 +#: ../../rst/installation_guide/intro_installation.rst:79 msgid "Ensuring ``pip`` is available" msgstr "``pip`` が利用可能か確認しています" -#: ../../rst/installation_guide/intro_installation.rst:80 +#: ../../rst/installation_guide/intro_installation.rst:81 msgid "To verify whether ``pip`` is already installed for your preferred Python:" msgstr "目的の Python 用に ``pip`` がすでにインストールされているか確認するには、以下を実行します。" -#: ../../rst/installation_guide/intro_installation.rst:86 +#: ../../rst/installation_guide/intro_installation.rst:87 msgid "If all is well, you should see something like the following:" msgstr "すべてが正常な場合は、以下のように表示されます。" -#: ../../rst/installation_guide/intro_installation.rst:93 +#: ../../rst/installation_guide/intro_installation.rst:94 msgid "If so, ``pip`` is available, and you can move on to the :ref:`next step `." msgstr "その場合は ``pip`` が利用可能です。:ref:`next step ` に進んでください。" -#: ../../rst/installation_guide/intro_installation.rst:95 +#: ../../rst/installation_guide/intro_installation.rst:96 msgid "If you see an error like ``No module named pip``, you'll need to install ``pip`` under your chosen Python interpreter before proceeding. This may mean installing an additional OS package (for example, ``python3-pip``), or installing the latest ``pip`` directly from the Python Packaging Authority by running the following:" msgstr "``No module named pip`` のようなエラーが表示された場合は、続行する前に、選択した Python インタープリターに ``pip`` をインストールする必要があります。そうなると、追加の OS パッケージ (例: ``python3-pip``) をインストールするか、以下を実行して Python Packaging Authority から直接最新の ``pip`` をインストールすることになります。" -#: ../../rst/installation_guide/intro_installation.rst:102 +#: ../../rst/installation_guide/intro_installation.rst:103 msgid "You may need to perform some additional configuration before you are able to run Ansible. See the Python documentation on `installing to the user site`_ for more information." msgstr "Ansible を実行する前に追加の設定が必要になる場合があります。詳細は、Python ドキュメント「`ユーザーサイトへのインストール`_」を参照してください。" -#: ../../rst/installation_guide/intro_installation.rst:111 +#: ../../rst/installation_guide/intro_installation.rst:112 msgid "Use ``pip`` in your selected Python environment to install the Ansible package of your choice for the current user:" msgstr "選択した Python 環境で ``pip`` を使用し、現在のユーザー用に選択した Ansible パッケージをインストールします。" -#: ../../rst/installation_guide/intro_installation.rst:117 +#: ../../rst/installation_guide/intro_installation.rst:118 msgid "Alternately, you can install a specific version of ``ansible-core`` in this Python environment:" msgstr "または、この Python 環境に特定のバージョンの ``ansible-core`` をインストールすることもできます。" -#: ../../rst/installation_guide/intro_installation.rst:126 +#: ../../rst/installation_guide/intro_installation.rst:127 msgid "Upgrading Ansible" msgstr "Ansible のアップグレード" -#: ../../rst/installation_guide/intro_installation.rst:128 +#: ../../rst/installation_guide/intro_installation.rst:129 msgid "To upgrade an existing Ansible installation in this Python environment to the latest released version, simply add ``--upgrade`` to the command above:" msgstr "この Python 環境の既存の Ansible インストールを最新のリリースバージョンにアップグレードするには、上記のコマンドに ``--upgrade`` を追加します。" -#: ../../rst/installation_guide/intro_installation.rst:135 +#: ../../rst/installation_guide/intro_installation.rst:136 msgid "Confirming your installation" msgstr "インストールの確認" -#: ../../rst/installation_guide/intro_installation.rst:137 +#: ../../rst/installation_guide/intro_installation.rst:138 msgid "You can test that Ansible is installed correctly by checking the version:" msgstr "バージョンを確認して、Ansible が正しくインストールされたことをテストできます。" -#: ../../rst/installation_guide/intro_installation.rst:143 +#: ../../rst/installation_guide/intro_installation.rst:144 msgid "The version displayed by this command is for the associated ``ansible-core`` package that has been installed." msgstr "このコマンドで表示されるバージョンは、関連するインストール済みの ``ansible-core`` パッケージです。" -#: ../../rst/installation_guide/intro_installation.rst:145 +#: ../../rst/installation_guide/intro_installation.rst:146 msgid "To check the version of the ``ansible`` package that has been installed:" msgstr "インストールされている ``ansible`` パッケージのバージョンを確認するには、以下を実行します。" -#: ../../rst/installation_guide/intro_installation.rst:154 +#: ../../rst/installation_guide/intro_installation.rst:155 msgid "Installing for development" msgstr "開発用のインストール" -#: ../../rst/installation_guide/intro_installation.rst:156 +#: ../../rst/installation_guide/intro_installation.rst:157 msgid "If you are testing new features, fixing bugs, or otherwise working with the development team on changes to the core code, you can install and run the source from GitHub." msgstr "新機能のテスト、バグの修正、またはコアコードへの変更に対して開発チームでの作業を行う場合は、GitHub からソースをインストールして実行できます。て実行できます。" -#: ../../rst/installation_guide/intro_installation.rst:160 +#: ../../rst/installation_guide/intro_installation.rst:161 msgid "You should only install and run the ``devel`` branch if you are modifying ``ansible-core`` or trying out features under development. This is a rapidly changing source of code and can become unstable at any point." msgstr "開発時に ``ansible-core`` を変更し、機能を試す場合は、``devel`` ブランチのみをインストールし、実行してください。このソースコードは急速に変化するため、いつでも不安定になる可能性があります。" -#: ../../rst/installation_guide/intro_installation.rst:162 +#: ../../rst/installation_guide/intro_installation.rst:163 msgid "For more information on getting involved in the Ansible project, see the :ref:`ansible_community_guide`. For more information on creating Ansible modules and Collections, see the :ref:`developer_guide`." msgstr "Ansible プロジェクトへの貢献の詳細は、「:ref:`ansible_community_guide`」を参照してください。Ansible モジュールおよびコレクションの作成方法は、「:ref:`developer_guide`」を参照してください。" -#: ../../rst/installation_guide/intro_installation.rst:167 +#: ../../rst/installation_guide/intro_installation.rst:168 msgid "Installing ``devel`` from GitHub with ``pip``" msgstr "``pip`` を使用した GitHub からの ``devel`` のインストール" -#: ../../rst/installation_guide/intro_installation.rst:169 +#: ../../rst/installation_guide/intro_installation.rst:170 msgid "You can install the ``devel`` branch of ``ansible-core`` directly from GitHub with ``pip``:" msgstr "``pip`` を使用して、``ansible-core`` の ``devel`` ブランチを直接 GitHub からインストールできます。" -#: ../../rst/installation_guide/intro_installation.rst:175 +#: ../../rst/installation_guide/intro_installation.rst:176 msgid "You can replace ``devel`` in the URL mentioned above, with any other branch or tag on GitHub to install older versions of Ansible, tagged alpha or beta versions, and release candidates." msgstr "上記の URL の ``devel`` を、他のブランチまたは GitHub のタグに置き換えて、古いバージョンの Ansible、タグ付けされた alpha または beta バージョン、およびリリース候補をインストールします。" -#: ../../rst/installation_guide/intro_installation.rst:180 +#: ../../rst/installation_guide/intro_installation.rst:181 msgid "Running the ``devel`` branch from a clone" msgstr "クローンからの ``devel`` ブランチの実行" -#: ../../rst/installation_guide/intro_installation.rst:182 +#: ../../rst/installation_guide/intro_installation.rst:183 msgid "``ansible-core`` is easy to run from source. You do not need ``root`` permissions to use it and there is no software to actually install. No daemons or database setup are required." msgstr "``ansible-core`` ソースからの実行は簡単です。``root`` パーミッションは必要ありません。実際にインストールするソフトウェアはありません。デーモンやデータベース設定は必要ありません。" -#: ../../rst/installation_guide/intro_installation.rst:184 +#: ../../rst/installation_guide/intro_installation.rst:185 msgid "Clone the ``ansible-core`` repository" msgstr "``ansible-core`` リポジトリーのクローンを作成します" -#: ../../rst/installation_guide/intro_installation.rst:191 +#: ../../rst/installation_guide/intro_installation.rst:192 msgid "Setup the Ansible environment" msgstr "Ansible 環境を設定します" -#: ../../rst/installation_guide/intro_installation.rst:193 +#: ../../rst/installation_guide/intro_installation.rst:194 msgid "Using Bash" msgstr "Bash の使用" -#: ../../rst/installation_guide/intro_installation.rst:199 +#: ../../rst/installation_guide/intro_installation.rst:200 msgid "Using Fish" msgstr "Fish の使用" -#: ../../rst/installation_guide/intro_installation.rst:205 +#: ../../rst/installation_guide/intro_installation.rst:206 msgid "To suppress spurious warnings/errors, use ``-q``" msgstr "誤った警告やエラーが表示されないようにするには、``-q`` を使用します" -#: ../../rst/installation_guide/intro_installation.rst:211 +#: ../../rst/installation_guide/intro_installation.rst:212 msgid "Install Python dependencies" msgstr "Python の依存関係をインストールします" -#: ../../rst/installation_guide/intro_installation.rst:217 +#: ../../rst/installation_guide/intro_installation.rst:218 msgid "Update the ``devel`` branch of ``ansible-core`` on your local machine" msgstr "ローカルマシンで ``ansible-core`` の ``devel`` ブランチを更新します" -#: ../../rst/installation_guide/intro_installation.rst:219 +#: ../../rst/installation_guide/intro_installation.rst:220 msgid "Use pull-with-rebase so any local changes are replayed." msgstr "pull-with-rebase を使用してローカルの変更がリプレイされるようにします。" -#: ../../rst/installation_guide/intro_installation.rst:228 +#: ../../rst/installation_guide/intro_installation.rst:229 msgid "Adding Ansible command shell completion" msgstr "Ansible コマンドシェル補完の追加" -#: ../../rst/installation_guide/intro_installation.rst:230 +#: ../../rst/installation_guide/intro_installation.rst:231 msgid "You can add shell completion of the Ansible command line utilities by installing an optional dependency called ``argcomplete``. ``argcomplete`` supports bash, and has limited support for zsh and tcsh." msgstr "``argcomplete`` と呼ばれる任意の依存関係をインストールして、Ansible コマンドラインユーティリティーのシェル補完を追加できます。``argcomplete`` は bash をサポートし、制限付きで zsh および tcsh のサポートをサポートします。" -#: ../../rst/installation_guide/intro_installation.rst:232 +#: ../../rst/installation_guide/intro_installation.rst:233 msgid "For more information about installation and configuration, see the `argcomplete documentation `_." msgstr "インストールと設定の詳細は、`argcomplete ドキュメント `_ を参照してください。" -#: ../../rst/installation_guide/intro_installation.rst:235 +#: ../../rst/installation_guide/intro_installation.rst:236 msgid "Installing ``argcomplete``" msgstr "``argcomplete`` のインストール" -#: ../../rst/installation_guide/intro_installation.rst:242 +#: ../../rst/installation_guide/intro_installation.rst:243 msgid "Configuring ``argcomplete``" msgstr "``argcomplete`` の設定" -#: ../../rst/installation_guide/intro_installation.rst:244 +#: ../../rst/installation_guide/intro_installation.rst:245 msgid "There are 2 ways to configure ``argcomplete`` to allow shell completion of the Ansible command line utilities: globally or per command." msgstr "Ansible コマンドラインユーティリティーのシェル補完を可能にする ``argcomplete`` の設定方法は、2 通りあります。" -#: ../../rst/installation_guide/intro_installation.rst:247 +#: ../../rst/installation_guide/intro_installation.rst:248 msgid "Global configuration" msgstr "グローバル設定" -#: ../../rst/installation_guide/intro_installation.rst:249 +#: ../../rst/installation_guide/intro_installation.rst:250 msgid "Global completion requires bash 4.2." msgstr "グローバル補完には bash 4.2 が必要です。" -#: ../../rst/installation_guide/intro_installation.rst:255 +#: ../../rst/installation_guide/intro_installation.rst:256 msgid "This will write a bash completion file to a user location. Use ``--dest`` to change the location or ``sudo`` to set up the completion globally." msgstr "これにより、bash 補完ファイルがユーザーのロケーションに書き込まれます。ロケーションを変更するには ``--dest`` を使用し、補完の設定は ``sudo`` を使用します。" -#: ../../rst/installation_guide/intro_installation.rst:258 +#: ../../rst/installation_guide/intro_installation.rst:259 msgid "Per command configuration" msgstr "コマンドごとの設定" -#: ../../rst/installation_guide/intro_installation.rst:260 +#: ../../rst/installation_guide/intro_installation.rst:261 msgid "If you do not have bash 4.2, you must register each script independently." msgstr "bash 4.2 がない場合は、各スクリプトを個別に登録する必要があります。" -#: ../../rst/installation_guide/intro_installation.rst:274 +#: ../../rst/installation_guide/intro_installation.rst:275 msgid "You should place the above commands into your shells profile file such as ``~/.profile`` or ``~/.bash_profile``." msgstr "上記のコマンドを、``~/.profile``、``~/.bash_profile`` などのシェルプロファイルファイルに置く必要があります。" -#: ../../rst/installation_guide/intro_installation.rst:277 +#: ../../rst/installation_guide/intro_installation.rst:278 msgid "Using ``argcomplete`` with zsh or tcsh" msgstr "zsh または tcsh で ``argcomplete`` を使用" -#: ../../rst/installation_guide/intro_installation.rst:279 +#: ../../rst/installation_guide/intro_installation.rst:280 msgid "See the `argcomplete documentation `_." msgstr "`argcomplete ドキュメント `_ を参照してください。" -#: ../../rst/installation_guide/intro_installation.rst:284 +#: ../../rst/installation_guide/intro_installation.rst:285 msgid ":ref:`intro_adhoc`" msgstr ":ref:`intro_adhoc`" -#: ../../rst/installation_guide/intro_installation.rst:285 +#: ../../rst/installation_guide/intro_installation.rst:286 msgid "Examples of basic commands" msgstr "基本コマンドの例" -#: ../../rst/installation_guide/intro_installation.rst:286 +#: ../../rst/installation_guide/intro_installation.rst:287 msgid ":ref:`working_with_playbooks`" msgstr ":ref:`working_with_playbooks`" -#: ../../rst/installation_guide/intro_installation.rst:287 +#: ../../rst/installation_guide/intro_installation.rst:288 msgid "Learning ansible's configuration management language" msgstr "Ansible の設定管理言語の概要" -#: ../../rst/installation_guide/intro_installation.rst:288 +#: ../../rst/installation_guide/intro_installation.rst:289 msgid ":ref:`installation_faqs`" msgstr ":ref:`installation_faqs`" -#: ../../rst/installation_guide/intro_installation.rst:289 +#: ../../rst/installation_guide/intro_installation.rst:290 msgid "Ansible Installation related to FAQs" msgstr "FAQ に関連する Ansible インストール" -#: ../../rst/installation_guide/intro_installation.rst:290 +#: ../../rst/installation_guide/intro_installation.rst:291 msgid "`Mailing List `_" -msgstr "`メーリングリスト `_" +msgstr "`Mailing List `_" -#: ../../rst/installation_guide/intro_installation.rst:291 +#: ../../rst/installation_guide/intro_installation.rst:292 msgid "Questions? Help? Ideas? Stop by the list on Google Groups" msgstr "ご質問はございますか。サポートが必要ですか。ご提案はございますか。Google グループの一覧をご覧ください。" -#: ../../rst/installation_guide/intro_installation.rst:292 +#: ../../rst/installation_guide/intro_installation.rst:293 msgid ":ref:`communication_irc`" msgstr ":ref:`communication_irc`" -#: ../../rst/installation_guide/intro_installation.rst:293 +#: ../../rst/installation_guide/intro_installation.rst:294 msgid "How to join Ansible chat channels" msgstr "Ansible チャットチャンネルへの参加方法" diff --git a/docs/docsite/rst/locales/ja/LC_MESSAGES/inventory.po b/docs/docsite/rst/locales/ja/LC_MESSAGES/inventory.po index 43adbb8c..460e557d 100644 --- a/docs/docsite/rst/locales/ja/LC_MESSAGES/inventory.po +++ b/docs/docsite/rst/locales/ja/LC_MESSAGES/inventory.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: Ansible devel\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2021-02-23 10:50+0100\n" +"POT-Creation-Date: 2022-11-03 09:23+0100\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -21,38 +21,39 @@ msgid "Implicit 'localhost'" msgstr "暗黙的な「localhost」" #: ../../rst/inventory/implicit_localhost.rst:8 -msgid "When you try to reference a ``localhost`` and you don't have it defined in inventory, Ansible will create an implicit one for you.::" -msgstr "``localhost`` を参照しようとしたにもかかわらず、インベントリーにその localhost が定義されていない場合は、Ansible により暗黙的 localhost が作成されます::" +msgid "When you try to reference a ``localhost`` and you don't have it defined in inventory, Ansible will create an implicit one for you.:" +msgstr "``localhost`` を参照しようとしたにもかかわらず、インベントリーにその localhost が定義されていない場合は、Ansible により暗黙的 localhost が作成されます。:" -#: ../../rst/inventory/implicit_localhost.rst:16 -msgid "In a case like this (or ``local_action``) when Ansible needs to contact a 'localhost' but you did not supply one, we create one for you. This host is defined with specific connection variables equivalent to this in an inventory::" -msgstr "上記のような場合 (または ``local_action``) で、Ansible が「localhost」に問い合わせをする必要があるにもかかわらず、localhost を作成していない場合には、Ansible で localhost が作成されます。このホストは、インベントリーにあるものと同等の特定の接続変数で定義されます::" +#: ../../rst/inventory/implicit_localhost.rst:18 +msgid "In a case like this (or ``local_action``) when Ansible needs to contact a 'localhost' but you did not supply one, we create one for you. This host is defined with specific connection variables equivalent to this in an inventory:" +msgstr "上記のような場合 (または ``local_action``) で、Ansible が「localhost」に問い合わせをする必要があるにもかかわらず、localhost を作成していない場合には、Ansible で localhost が作成されます。このホストは、インベントリーにあるものと同等の特定の接続変数で定義されます:" -#: ../../rst/inventory/implicit_localhost.rst:26 +#: ../../rst/inventory/implicit_localhost.rst:30 msgid "This ensures that the proper connection and Python are used to execute your tasks locally. You can override the built-in implicit version by creating a ``localhost`` host entry in your inventory. At that point, all implicit behaviors are ignored; the ``localhost`` in inventory is treated just like any other host. Group and host vars will apply, including connection vars, which includes the ``ansible_python_interpreter`` setting. This will also affect ``delegate_to: localhost`` and ``local_action``, the latter being an alias to the former." msgstr "この設定により、適切な接続と Python がローカルでタスクを実行するのに使用されるようにます。インベントリーに ``localhost`` ホストエントリーを作成すると、組み込みの暗黙的ホストのバージョンを上書きできます。この時点で、暗黙的な動作はすべて無視され、インベントリー内の ``localhost`` は他のホストと同じように処理されます。グループおよびホストの変数 (接続変数を含む) が適用されます。これには、``ansible_python_interpreter`` 設定が含まれます。グループおよびホスト変数の設定は、``delegate_to: localhost`` および ``local_action`` にも適用され、``local_action`` は ``delegate_to: localhost`` のエイリアスとなります。" -#: ../../rst/inventory/implicit_localhost.rst:30 +#: ../../rst/inventory/implicit_localhost.rst:35 msgid "This host is not targetable via any group, however it will use vars from ``host_vars`` and from the 'all' group." msgstr "このホストをターゲットにできるグループはありませんが、``host_vars`` と「all」グループの変数を使用します。" -#: ../../rst/inventory/implicit_localhost.rst:31 +#: ../../rst/inventory/implicit_localhost.rst:36 msgid "Implicit localhost does not appear in the ``hostvars`` magic variable unless demanded, such as by ``\"{{ hostvars['localhost'] }}\"``." msgstr "``\"{{ hostvars['localhost'] }}\"`` などの要求がない限り、暗黙的な localhost は ``hostvars`` マジック変数には表示されません。" -#: ../../rst/inventory/implicit_localhost.rst:32 +#: ../../rst/inventory/implicit_localhost.rst:37 msgid "The ``inventory_file`` and ``inventory_dir`` magic variables are not available for the implicit localhost as they are dependent on **each inventory host**." msgstr "マジック変数 ``inventory_file`` および ``inventory_dir`` は、**各インベントリーホスト** に依存しているため、暗黙的な localhost では利用できません。" -#: ../../rst/inventory/implicit_localhost.rst:33 +#: ../../rst/inventory/implicit_localhost.rst:38 msgid "This implicit host also gets triggered by using ``127.0.0.1`` or ``::1`` as they are the IPv4 and IPv6 representations of 'localhost'." msgstr "この暗黙的ホストは、「localhost」の IPv4 および IPv6 の表現であるため、``127.0.0.1`` または ``::1`` を使用しても発生しません。" -#: ../../rst/inventory/implicit_localhost.rst:34 +#: ../../rst/inventory/implicit_localhost.rst:39 msgid "Even though there are many ways to create it, there will only ever be ONE implicit localhost, using the name first used to create it." msgstr "それを作成する方法は多数ありますが、暗黙的な localhost は 1 つだけ存在することになります。最初に作成したときに使用した名前が使用されます。" -#: ../../rst/inventory/implicit_localhost.rst:35 +#: ../../rst/inventory/implicit_localhost.rst:40 msgid "Having ``connection: local`` does NOT trigger an implicit localhost, you are just changing the connection for the ``inventory_hostname``." msgstr "``connection: local`` があっても暗黙的な localhost が作成されない場合は、``inventory_hostname`` の接続を変更します。" + diff --git a/docs/docsite/rst/locales/ja/LC_MESSAGES/inventory_guide.po b/docs/docsite/rst/locales/ja/LC_MESSAGES/inventory_guide.po index 581da766..6507816f 100644 --- a/docs/docsite/rst/locales/ja/LC_MESSAGES/inventory_guide.po +++ b/docs/docsite/rst/locales/ja/LC_MESSAGES/inventory_guide.po @@ -7,14 +7,14 @@ msgid "" msgstr "" "Project-Id-Version: Ansible devel\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-10-05 09:34+0200\n" +"POT-Creation-Date: 2023-03-01 20:16+0100\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.8.1\n" +"Generated-By: Babel 2.9.0\n" #: ../../rst/inventory_guide/connection_details.rst:5 msgid "Connection methods and details" @@ -331,8 +331,8 @@ msgid "Other inventory scripts" msgstr "その他のインベントリースクリプト" #: ../../rst/inventory_guide/intro_dynamic_inventory.rst:211 -msgid "In Ansible 2.10 and later, inventory scripts moved to their associated collections. Many are now in the `community.general scripts/inventory directory `_. We recommend you use :ref:`inventory_plugins` instead." -msgstr "Ansible 2.10 以降では、インベントリースクリプトは関連するコレクションに移動しました。現在、多くのスクリプトは `community.general scripts/inventory directory `_ にあります。代わりに :ref:`inventory_plugins` を使用することが推奨されます。" +msgid "In Ansible 2.10 and later, inventory scripts moved to their associated collections. Many are now in the `ansible-community/contrib-scripts repository `_. We recommend you use :ref:`inventory_plugins` instead." +msgstr "Ansible 2.10 以降では、インベントリースクリプトは関連するコレクションに移動しました。現在、多くのスクリプトは `ansible-community/contrib-scripts repository `_ にあります。代わりに :ref:`inventory_plugins` を使用することが推奨されます。" #: ../../rst/inventory_guide/intro_dynamic_inventory.rst:216 msgid "Using inventory directories and multiple inventory sources" @@ -371,25 +371,25 @@ msgid "All about static inventory files" msgstr "静的インベントリーファイルの詳細" #: ../../rst/inventory_guide/intro_dynamic_inventory.rst:257 -#: ../../rst/inventory_guide/intro_inventory.rst:832 +#: ../../rst/inventory_guide/intro_inventory.rst:838 #: ../../rst/inventory_guide/intro_patterns.rst:250 msgid "`Mailing List `_" msgstr "`Mailing List `_" #: ../../rst/inventory_guide/intro_dynamic_inventory.rst:258 -#: ../../rst/inventory_guide/intro_inventory.rst:833 +#: ../../rst/inventory_guide/intro_inventory.rst:839 #: ../../rst/inventory_guide/intro_patterns.rst:251 msgid "Questions? Help? Ideas? Stop by the list on Google Groups" msgstr "ご質問はございますか。サポートが必要ですか。ご提案はございますか。Google グループの一覧をご覧ください。" #: ../../rst/inventory_guide/intro_dynamic_inventory.rst:259 -#: ../../rst/inventory_guide/intro_inventory.rst:834 +#: ../../rst/inventory_guide/intro_inventory.rst:840 #: ../../rst/inventory_guide/intro_patterns.rst:252 msgid ":ref:`communication_irc`" msgstr ":ref:`communication_irc`" #: ../../rst/inventory_guide/intro_dynamic_inventory.rst:260 -#: ../../rst/inventory_guide/intro_inventory.rst:835 +#: ../../rst/inventory_guide/intro_inventory.rst:841 #: ../../rst/inventory_guide/intro_patterns.rst:253 msgid "How to join Ansible chat channels" msgstr "Ansible チャットチャンネルへの参加方法" @@ -471,652 +471,670 @@ msgid "You can create parent/child relationships among groups. Parent groups are msgstr "グループ間で親/子関係を作成できます。親グループは、ネストされたグループまたはグループのグループとも呼ばれます。たとえば、すべての実稼働ホストが ``atlanta_prod`` や ``denver_prod`` などのグループにすでにある場合は、これらの小規模なグループを含む ``production`` グループを作成できます。この方法では、子グループを編集して親グループからホストを追加または削除できるため、メンテナンスが軽減されます。" #: ../../rst/inventory_guide/intro_inventory.rst:130 -msgid "To create parent/child relationships for groups: * in INI format, use the ``:children`` suffix * in YAML format, use the ``children:`` entry" -msgstr "グループの親/子の関係を作成するには、 * INI 形式の場合には ``:children`` の接尾辞を、 * YAML 形式の場合は ``children:`` エントリーを使用します。" +msgid "To create parent/child relationships for groups:" +msgstr "グループの親子関係を作成するには以下を実行します。" -#: ../../rst/inventory_guide/intro_inventory.rst:134 +#: ../../rst/inventory_guide/intro_inventory.rst:132 +msgid "in INI format, use the ``:children`` suffix" +msgstr "INI 形式の場合は、``:children`` 接尾辞を使用します。" + +#: ../../rst/inventory_guide/intro_inventory.rst:133 +msgid "in YAML format, use the ``children:`` entry" +msgstr "YAML 形式の場合は、``children:``エントリーを使用します。" + +#: ../../rst/inventory_guide/intro_inventory.rst:135 msgid "Here is the same inventory as shown above, simplified with parent groups for the ``prod`` and ``test`` groups. The two inventory files give you the same results:" msgstr "``prod`` および ``test`` グループの親グループを使用して簡素化された上記と同じインベントリーを示します。2 つのインベントリーファイルでは、同じ結果が得られます。" -#: ../../rst/inventory_guide/intro_inventory.rst:167 +#: ../../rst/inventory_guide/intro_inventory.rst:168 msgid "Child groups have a couple of properties to note:" msgstr "子グループには、注意すべき以下のプロパティーがあります。" -#: ../../rst/inventory_guide/intro_inventory.rst:169 +#: ../../rst/inventory_guide/intro_inventory.rst:170 msgid "Any host that is member of a child group is automatically a member of the parent group." msgstr "子グループのメンバーであるホストは、自動的に親グループのメンバーになります。" -#: ../../rst/inventory_guide/intro_inventory.rst:170 +#: ../../rst/inventory_guide/intro_inventory.rst:171 msgid "Groups can have multiple parents and children, but not circular relationships." msgstr "グループに複数の親と子を追加することはできますが、循環関係は設定できません。" -#: ../../rst/inventory_guide/intro_inventory.rst:171 +#: ../../rst/inventory_guide/intro_inventory.rst:172 msgid "Hosts can also be in multiple groups, but there will only be **one** instance of a host at runtime. Ansible merges the data from the multiple groups." msgstr "ホストは複数のグループに属することもできますが、ホストのインスタンスは **1 つ** だけであり、Ansible は複数のグループからのデータをマージします。" -#: ../../rst/inventory_guide/intro_inventory.rst:174 +#: ../../rst/inventory_guide/intro_inventory.rst:175 msgid "Adding ranges of hosts" msgstr "ホスト範囲の追加" -#: ../../rst/inventory_guide/intro_inventory.rst:176 +#: ../../rst/inventory_guide/intro_inventory.rst:177 msgid "If you have a lot of hosts with a similar pattern, you can add them as a range rather than listing each hostname separately:" msgstr "同様のパターンを持つホストが多数ある場合は、各ホスト名を個別に表示するのではなく、ホストを範囲として追加できます。" -#: ../../rst/inventory_guide/intro_inventory.rst:178 -#: ../../rst/inventory_guide/intro_inventory.rst:196 -#: ../../rst/inventory_guide/intro_inventory.rst:341 -#: ../../rst/inventory_guide/intro_inventory.rst:412 +#: ../../rst/inventory_guide/intro_inventory.rst:179 +#: ../../rst/inventory_guide/intro_inventory.rst:197 +#: ../../rst/inventory_guide/intro_inventory.rst:298 +#: ../../rst/inventory_guide/intro_inventory.rst:344 +#: ../../rst/inventory_guide/intro_inventory.rst:384 +#: ../../rst/inventory_guide/intro_inventory.rst:417 msgid "In INI:" msgstr "INI の場合は、以下のようになります。" -#: ../../rst/inventory_guide/intro_inventory.rst:185 -#: ../../rst/inventory_guide/intro_inventory.rst:203 -#: ../../rst/inventory_guide/intro_inventory.rst:303 -#: ../../rst/inventory_guide/intro_inventory.rst:347 -#: ../../rst/inventory_guide/intro_inventory.rst:391 -#: ../../rst/inventory_guide/intro_inventory.rst:440 +#: ../../rst/inventory_guide/intro_inventory.rst:186 +#: ../../rst/inventory_guide/intro_inventory.rst:204 +#: ../../rst/inventory_guide/intro_inventory.rst:306 +#: ../../rst/inventory_guide/intro_inventory.rst:350 +#: ../../rst/inventory_guide/intro_inventory.rst:396 +#: ../../rst/inventory_guide/intro_inventory.rst:445 msgid "In YAML:" msgstr "YAML の場合は、以下のようになります。" -#: ../../rst/inventory_guide/intro_inventory.rst:194 +#: ../../rst/inventory_guide/intro_inventory.rst:195 msgid "You can specify a stride (increments between sequence numbers) when defining a numeric range of hosts:" msgstr "ホストの数値範囲を定義する際に、stride (シーケンス番号間の増分) を指定することができます。" -#: ../../rst/inventory_guide/intro_inventory.rst:212 +#: ../../rst/inventory_guide/intro_inventory.rst:213 msgid "The example above would make the subdomains www01, www03, www05, ..., www49 match, but not www00, www02, www50 and so on, because the stride (increment) is 2 units each step." msgstr "上記の例では、stride (増分) はステップごとに 2 ユニットであるため、サブドメイン www01、www03、www05、..、www49 は一致しますが、www00、www02、www50 などは一致しません。" -#: ../../rst/inventory_guide/intro_inventory.rst:214 +#: ../../rst/inventory_guide/intro_inventory.rst:215 msgid "For numeric patterns, leading zeros can be included or removed, as desired. Ranges are inclusive. You can also define alphabetic ranges:" msgstr "数値のパターンでは、必要に応じて先頭にゼロを含めるか、または削除できます。範囲は包含的範囲も定義できます。また、アルファベットの範囲も定義できます。" -#: ../../rst/inventory_guide/intro_inventory.rst:224 +#: ../../rst/inventory_guide/intro_inventory.rst:225 msgid "Passing multiple inventory sources" msgstr "複数のインベントリーソースの指定" -#: ../../rst/inventory_guide/intro_inventory.rst:226 +#: ../../rst/inventory_guide/intro_inventory.rst:227 msgid "You can target multiple inventory sources (directories, dynamic inventory scripts or files supported by inventory plugins) at the same time by giving multiple inventory parameters from the command line or by configuring :envvar:`ANSIBLE_INVENTORY`. This can be useful when you want to target normally separate environments, like staging and production, at the same time for a specific action." msgstr "コマンドラインから複数のインベントリーパラメーターを指定するか、:envvar:`ANSIBLE_INVENTORY` を設定することで、複数のインベントリーリソース (ディレクトリー、動的インベントリースクリプト、またはインベントリープラグインによりサポートされるファイル) を同時に対象に指定できます。これは、ステージ環境や実稼働環境など、通常は異なる環境を同時に対象に指定にして特定のアクションを実行したい場合に便利です。" -#: ../../rst/inventory_guide/intro_inventory.rst:231 +#: ../../rst/inventory_guide/intro_inventory.rst:232 msgid "To target two inventory sources from the command line:" msgstr "コマンドラインから 2 つのソイベントリーソースを対象とするには以下を実行します。" -#: ../../rst/inventory_guide/intro_inventory.rst:240 +#: ../../rst/inventory_guide/intro_inventory.rst:241 msgid "Organizing inventory in a directory" msgstr "ディレクトリー内のインベントリーの整理" -#: ../../rst/inventory_guide/intro_inventory.rst:242 +#: ../../rst/inventory_guide/intro_inventory.rst:243 msgid "You can consolidate multiple inventory sources in a single directory. The simplest version of this is a directory with multiple files instead of a single inventory file. A single file gets difficult to maintain when it gets too long. If you have multiple teams and multiple automation projects, having one inventory file per team or project lets everyone easily find the hosts and groups that matter to them." msgstr "複数のインベントリーソースを 1 つのディレクトリーに統合できます。これの最も単純なバージョンは、単一のインベントリーファイルではなく、複数のファイルを含むディレクトリーです。1 つのファイルが長くなりすぎると、管理が難しくなります。複数のチームと複数の自動化プロジェクトがある場合、チームまたはプロジェクトごとに 1 つのインベントリーファイルを使用すると、誰でも重要なホストとグループを簡単に見つけることができます。" -#: ../../rst/inventory_guide/intro_inventory.rst:244 +#: ../../rst/inventory_guide/intro_inventory.rst:245 msgid "You can also combine multiple inventory source types in an inventory directory. This can be useful for combining static and dynamic hosts and managing them as one inventory. The following inventory directory combines an inventory plugin source, a dynamic inventory script, and a file with static hosts:" msgstr "また、複数のインベントリーソースやソースタイプを 1 つのディレクトリー下にインベントリーを統合できます。これは、静的ホストと動的ホストを組み合わせて、1 つのインベントリーとして管理するのに便利です。次のインベントリーディレクトリーは、インベントリープラグインソース、動的インベントリースクリプト、および静的ホストのファイルを組み合わせたものです。" -#: ../../rst/inventory_guide/intro_inventory.rst:256 +#: ../../rst/inventory_guide/intro_inventory.rst:257 msgid "You can target this inventory directory as follows:" msgstr "このインベントリーディレクトリーは、次のように簡単に対象に設定できます。" -#: ../../rst/inventory_guide/intro_inventory.rst:262 +#: ../../rst/inventory_guide/intro_inventory.rst:263 msgid "You can also configure the inventory directory in your ``ansible.cfg`` file. See :ref:`intro_configuration` for more details." msgstr "``ansible.cfg`` ファイルで inventory ディレクトリーを設定することもできます。詳細は、:ref:`intro_configuration` を参照してください。" -#: ../../rst/inventory_guide/intro_inventory.rst:265 +#: ../../rst/inventory_guide/intro_inventory.rst:266 msgid "Managing inventory load order" msgstr "インベントリーの読み込み順序の管理" -#: ../../rst/inventory_guide/intro_inventory.rst:267 +#: ../../rst/inventory_guide/intro_inventory.rst:268 msgid "Ansible loads inventory sources in ASCII order according to the filenames. If you define parent groups in one file or directory and child groups in other files or directories, the files that define the child groups must be loaded first. If the parent groups are loaded first, you will see the error ``Unable to parse /path/to/source_of_parent_groups as an inventory source``." msgstr "Ansible は、ファイル名に従って、インベントリーソースを ASCII 順に読み込みます。親グループを他のファイルまたはディレクトリーの 1 つまたはディレクトリーで定義し、子グループを定義するファイルを先に読み込む必要があります。親グループが最初に読み込まれると、``Unable to parse /path/to/source_of_parent_groups as an inventory source`` というエラーが表示されます。" -#: ../../rst/inventory_guide/intro_inventory.rst:269 +#: ../../rst/inventory_guide/intro_inventory.rst:270 msgid "For example, if you have a file called ``groups-of-groups`` that defines a ``production`` group with child groups defined in a file called ``on-prem``, Ansible cannot parse the ``production`` group. To avoid this problem, you can control the load order by adding prefixes to the files:" msgstr "たとえば、``on-prem`` というファイルで定義された子グループを持つ ``production`` グループを定義する ``groups-of-groups`` というファイルがある場合、Ansible は ``production`` グループを解析できません。この問題を回避するには、ファイルに接頭辞を追加して、読み込み順序を制御できます。" -#: ../../rst/inventory_guide/intro_inventory.rst:279 +#: ../../rst/inventory_guide/intro_inventory.rst:280 msgid "You can find examples of how to organize your inventories and group your hosts in :ref:`inventory_setup_examples`." msgstr "インベントリーを整理し、ホストをグループ化する方法は、:ref:`inventory_setup_examples` を参照してください。" -#: ../../rst/inventory_guide/intro_inventory.rst:284 +#: ../../rst/inventory_guide/intro_inventory.rst:285 msgid "Adding variables to inventory" msgstr "インベントリーへの変数の追加" -#: ../../rst/inventory_guide/intro_inventory.rst:286 +#: ../../rst/inventory_guide/intro_inventory.rst:287 msgid "You can store variable values that relate to a specific host or group in inventory. To start with, you may add variables directly to the hosts and groups in your main inventory file." msgstr "インベントリーの特定のホストまたはグループに関連する変数値を保存することができます。まずは、メインのインベントリーファイルのホストおよびグループに変数を直接追加できます。" -#: ../../rst/inventory_guide/intro_inventory.rst:288 +#: ../../rst/inventory_guide/intro_inventory.rst:289 msgid "We document adding variables in the main inventory file for simplicity. However, storing variables in separate host and group variable files is a more robust approach to describing your system policy. Setting variables in the main inventory file is only a shorthand. See :ref:`splitting_out_vars` for guidelines on storing variable values in individual files in the 'host_vars' directory. See :ref:`splitting_out_vars` for details." msgstr "簡略化の目的で、メインのインベントリーファイルに変数を追加する方法について説明します。ただし、変数を別々のホスト変数ファイルとグループ変数ファイルに格納する方が、より確実にシステムポリシーを記述できます。メインのインベントリーファイルに変数を設定することは、省略形に過ぎません。'host_vars' ディレクトリーの個別ファイルに変数を保存するガイドラインは、:ref:`splitting_out_vars` を参照してください。詳細は、:ref:`splitting_out_vars` を参照してください。" -#: ../../rst/inventory_guide/intro_inventory.rst:293 +#: ../../rst/inventory_guide/intro_inventory.rst:294 msgid "Assigning a variable to one machine: host variables" msgstr "あるマシンへの変数の割り当て: ホスト変数" -#: ../../rst/inventory_guide/intro_inventory.rst:295 -msgid "You can easily assign a variable to a single host, then use it later in playbooks. You can do this directly in your inventory file. In INI:" -msgstr "1 台のホストに変数を簡単に割り当てると、後で Playbook で使用できます。インベントリーファイルで直接これを実行できます。INI では、以下のようになります。" +#: ../../rst/inventory_guide/intro_inventory.rst:296 +msgid "You can easily assign a variable to a single host, then use it later in playbooks. You can do this directly in your inventory file." +msgstr "1 台のホストに変数を簡単に割り当てると、後で Playbook で使用できます。インベントリーファイルで直接これを実行できます。" -#: ../../rst/inventory_guide/intro_inventory.rst:316 +#: ../../rst/inventory_guide/intro_inventory.rst:319 msgid "Unique values like non-standard SSH ports work well as host variables. You can add them to your Ansible inventory by adding the port number after the hostname with a colon:" msgstr "非標準の SSH ポートのような一意な値は、ホスト変数としてうまく機能します。ホスト名の後にコロンを付けてポート番号を追加することで、Ansible インベントリーに追加することができます。" -#: ../../rst/inventory_guide/intro_inventory.rst:322 +#: ../../rst/inventory_guide/intro_inventory.rst:325 msgid "Connection variables also work well as host variables:" msgstr "接続変数もホスト変数として機能します。" -#: ../../rst/inventory_guide/intro_inventory.rst:332 +#: ../../rst/inventory_guide/intro_inventory.rst:335 msgid "If you list non-standard SSH ports in your SSH config file, the ``openssh`` connection will find and use them, but the ``paramiko`` connection will not." msgstr "SSH 設定ファイル内に非標準の SSH ポートの一覧を表示した場合、``openssh`` 接続はそのポートを見つけて使用しますが、``paramiko`` 接続は行われません。" -#: ../../rst/inventory_guide/intro_inventory.rst:337 +#: ../../rst/inventory_guide/intro_inventory.rst:340 msgid "Inventory aliases" msgstr "インベントリーエイリアス" -#: ../../rst/inventory_guide/intro_inventory.rst:339 +#: ../../rst/inventory_guide/intro_inventory.rst:342 msgid "You can also define aliases in your inventory using host variables:" msgstr "ホスト変数を使用してインベントリーでエイリアスを定義することもできます。" -#: ../../rst/inventory_guide/intro_inventory.rst:357 +#: ../../rst/inventory_guide/intro_inventory.rst:360 msgid "In this example, running Ansible against the host alias \"jumper\" will connect to 192.0.2.50 on port 5555. See :ref:`behavioral inventory parameters ` to further customize the connection to hosts." msgstr "この例では、ホストの別名「jumper」に対して Ansible を実行すると、ポート 5555 の 192.0.2.50 に接続されます。ホストへの接続をさらにカスタマイズするには、「:ref:`behavioral inventory parameters `」を参照してください。" -#: ../../rst/inventory_guide/intro_inventory.rst:360 +#: ../../rst/inventory_guide/intro_inventory.rst:363 msgid "Defining variables in INI format" msgstr "INI 形式での変数の定義" -#: ../../rst/inventory_guide/intro_inventory.rst:362 +#: ../../rst/inventory_guide/intro_inventory.rst:365 msgid "Values passed in the INI format using the ``key=value`` syntax are interpreted differently depending on where they are declared:" msgstr "``key=value`` 構文を使用して INI 形式で渡される値が解釈される方法は、宣言される場所に応じて異なります。" -#: ../../rst/inventory_guide/intro_inventory.rst:364 +#: ../../rst/inventory_guide/intro_inventory.rst:367 msgid "When declared inline with the host, INI values are interpreted as Python literal structures (strings, numbers, tuples, lists, dicts, booleans, None). Host lines accept multiple ``key=value`` parameters per line. Therefore they need a way to indicate that a space is part of a value rather than a separator. Values that contain whitespace can be quoted (single or double). See the `Python shlex parsing rules`_ for details." msgstr "ホストのインラインで宣言すると、INI 値は Pythonの リテラル構造 (文字列、数値、タプル、リスト、ディクショナリー、ブール値、なし) として解釈されます。ホストの行は、1 行につき複数の ``key=value`` パラメーターを受け付けます。そのため、スペースが区切り文字ではなく値の一部であることを示す方法が必要です。スペースが含まれる値を引用符(一重または二重)で囲むことができます。詳細は、 `Python shlex 解析ルール`_を参照してください。" -#: ../../rst/inventory_guide/intro_inventory.rst:366 +#: ../../rst/inventory_guide/intro_inventory.rst:369 msgid "When declared in a ``:vars`` section, INI values are interpreted as strings. For example ``var=FALSE`` would create a string equal to 'FALSE'. Unlike host lines, ``:vars`` sections accept only a single entry per line, so everything after the ``=`` must be the value for the entry." msgstr "``:vars`` セクションで宣言すると、INI の値は文字列として解釈されます。たとえば、``var=FALSE`` は FALSE と等しい文字列を作成します。ホスト行とは異なり、``:vars`` セクションは行ごとに 1 つのエントリーのみを許可するため、``=`` の後に続くすべてのものがエントリーの値である必要があります。" -#: ../../rst/inventory_guide/intro_inventory.rst:368 +#: ../../rst/inventory_guide/intro_inventory.rst:371 msgid "If a variable value set in an INI inventory must be a certain type (for example, a string or a boolean value), always specify the type with a filter in your task. Do not rely on types set in INI inventories when consuming variables." msgstr "INI インベントリーに設定されている変数の値が特定の型 (文字列やブール値など) でなければならない場合は、必ずタスクのフィルターで型を指定してください。変数を使用する際に、INI インベントリーに設定されている型に頼らないでください。" -#: ../../rst/inventory_guide/intro_inventory.rst:370 +#: ../../rst/inventory_guide/intro_inventory.rst:373 msgid "Consider using YAML format for inventory sources to avoid confusion on the actual type of a variable. The YAML inventory plugin processes variable values consistently and correctly." msgstr "変数の実際のタイプに関する混乱を回避するために、インベントリーソースに YAML 形式を使用することを検討してください。YAML インベントリープラグインは変数の値を一貫して、正しく処理します。" -#: ../../rst/inventory_guide/intro_inventory.rst:377 +#: ../../rst/inventory_guide/intro_inventory.rst:380 msgid "Assigning a variable to many machines: group variables" msgstr "多くのマシンへの変数の割り当て: グループ変数" -#: ../../rst/inventory_guide/intro_inventory.rst:379 -msgid "If all hosts in a group share a variable value, you can apply that variable to an entire group at once. In INI:" -msgstr "グループ内のすべてのホストが変数の値を共有している場合は、その変数をグループ全体に一度に適用することができます。INI の場合は以下のようになります。" +#: ../../rst/inventory_guide/intro_inventory.rst:382 +msgid "If all hosts in a group share a variable value, you can apply that variable to an entire group at once." +msgstr "グループ内のすべてのホストが変数の値を共有している場合は、その変数をグループ全体に一度に適用することができます。" -#: ../../rst/inventory_guide/intro_inventory.rst:403 +#: ../../rst/inventory_guide/intro_inventory.rst:408 msgid "Group variables are a convenient way to apply variables to multiple hosts at once. Before executing, however, Ansible always flattens variables, including inventory variables, to the host level. If a host is a member of multiple groups, Ansible reads variable values from all of those groups. If you assign different values to the same variable in different groups, Ansible chooses which value to use based on internal :ref:`rules for merging `." msgstr "グループ変数は、複数のホストに一度に変数を適用する便利な方法です。しかし、Ansible は実行前に、インベントリー変数を含む変数を常にホストレベルにフラット化します。ホストが複数のグループに属している場合、Ansible はそれらのグループのすべてから変数の値を読み取ります。異なるグループで同じ変数に異なる値を割り当てた場合、Ansible は内部 :ref:`マージのルール ` に基づいてどの値を使用するかを選択します。" -#: ../../rst/inventory_guide/intro_inventory.rst:408 +#: ../../rst/inventory_guide/intro_inventory.rst:413 msgid "Inheriting variable values: group variables for groups of groups" msgstr "変数値の継承: グループのグループ用グループ変数" -#: ../../rst/inventory_guide/intro_inventory.rst:410 +#: ../../rst/inventory_guide/intro_inventory.rst:415 msgid "You can apply variables to parent groups (nested groups or groups of groups) as well as to child groups. The syntax is the same: ``:vars`` for INI format and ``vars:`` for YAML format:" msgstr "子グループだけでなく、親グループ (ネストされたグループまたはグループのグループ) にも変数を適用できます。構文は同じです (INI 形式は ``:vars``、YAML 形式は ``vars:``)。" -#: ../../rst/inventory_guide/intro_inventory.rst:467 +#: ../../rst/inventory_guide/intro_inventory.rst:472 msgid "A child group's variables will have higher precedence (override) a parent group's variables." msgstr "子グループの変数は、親グループの変数よりも優先度が高くなります (オーバライド)。" -#: ../../rst/inventory_guide/intro_inventory.rst:472 +#: ../../rst/inventory_guide/intro_inventory.rst:477 msgid "Organizing host and group variables" msgstr "ホスト変数とグループ変数の整理" -#: ../../rst/inventory_guide/intro_inventory.rst:474 +#: ../../rst/inventory_guide/intro_inventory.rst:479 msgid "Although you can store variables in the main inventory file, storing separate host and group variables files may help you organize your variable values more easily. You can also use lists and hash data in host and group variables files, which you cannot do in your main inventory file." msgstr "変数はメインインベントリーファイルに保存できますが、ホスト変数ファイルとグループ変数ファイルを別々に保存すると、変数値をより簡単に整理できる場合があります。ホスト変数ファイルとグループ変数ファイルでリストとハッシュデータを使用することもできますが、これはメインのインベントリーファイルでは使用できません。" -#: ../../rst/inventory_guide/intro_inventory.rst:476 +#: ../../rst/inventory_guide/intro_inventory.rst:481 msgid "Host and group variable files must use YAML syntax. Valid file extensions include '.yml', '.yaml', '.json', or no file extension. See :ref:`yaml_syntax` if you are new to YAML." msgstr "ホストおよびグループ変数ファイルは、YAML 構文を使用する必要があります。有効なファイル拡張子には、.yml、.yaml、.json が含まれるか、ファイル拡張子がありません。YAML を使用したことがない場合には、:ref:`yaml_syntax` を参照してください。" -#: ../../rst/inventory_guide/intro_inventory.rst:478 +#: ../../rst/inventory_guide/intro_inventory.rst:483 msgid "Ansible loads host and group variable files by searching paths relative to the inventory file or the playbook file. If your inventory file at ``/etc/ansible/hosts`` contains a host named 'foosball' that belongs to two groups, 'raleigh' and 'webservers', that host will use variables in YAML files at the following locations:" msgstr "Ansible は、インベントリーファイルまたは Playbook ファイルからの相対パスを検索して、ホストおよびグループ変数ファイルを読み込みます。``/etc/ansible/hosts`` のインベントリーファイルに「foosball」という名前のホストがあり、それが「raleigh」と「webservers」という 2 つのグループに所属している場合、そのホストは以下の場所にある YAML ファイルの変数を使用します。" -#: ../../rst/inventory_guide/intro_inventory.rst:486 +#: ../../rst/inventory_guide/intro_inventory.rst:491 msgid "For example, if you group hosts in your inventory by datacenter, and each datacenter uses its own NTP server and database server, you can create a file called ``/etc/ansible/group_vars/raleigh`` to store the variables for the ``raleigh`` group:" msgstr "たとえば、インベントリー内のホストをデータセンターごとにまとめ、各データセンターが独自の NTP サーバーおよびデータベースサーバーを使用する場合は、``/etc/ansible/group_vars/raleigh`` という名前のファイルを作成して、``raleigh`` グループの変数を保存できます。" -#: ../../rst/inventory_guide/intro_inventory.rst:494 +#: ../../rst/inventory_guide/intro_inventory.rst:499 msgid "You can also create *directories* named after your groups or hosts. Ansible will read all the files in these directories in lexicographical order. An example with the 'raleigh' group:" msgstr "また、グループまたはホストの名前が付けられた *ディレクトリー* も作成できます。Ansible は、これらのディレクトリーに含まれるすべてのファイルをディクショナリーの順に読み込みます。例では、「raleigh」グループを使用しています。" -#: ../../rst/inventory_guide/intro_inventory.rst:501 +#: ../../rst/inventory_guide/intro_inventory.rst:506 msgid "All hosts in the 'raleigh' group will have the variables defined in these files available to them. This can be very useful to keep your variables organized when a single file gets too big, or when you want to use :ref:`Ansible Vault` on some group variables." msgstr "「raleigh」グループのすべてのホストは、これらのファイルで定義された変数を利用できるようになります。これは、1 つのファイルが大きくなりすぎたときに、変数を整理しておくのに非常に便利です。また、いくつかのグループ変数に :ref:`Ansible Vault` を使用したい場合にも便利です。" -#: ../../rst/inventory_guide/intro_inventory.rst:505 +#: ../../rst/inventory_guide/intro_inventory.rst:510 msgid "For ``ansible-playbook`` you can also add ``group_vars/`` and ``host_vars/`` directories to your playbook directory. Other Ansible commands (for example, ``ansible``, ``ansible-console``, and so on) will only look for ``group_vars/`` and ``host_vars/`` in the inventory directory. If you want other commands to load group and host variables from a playbook directory, you must provide the ``--playbook-dir`` option on the command line. If you load inventory files from both the playbook directory and the inventory directory, variables in the playbook directory will override variables set in the inventory directory." msgstr "``ansible-playbook`` に関して、ディレクトリー ``group_vars/``および ``host_vars/`` を Playbook ディレクトリーに追加することもできます。他の Ansible コマンド (たとえば、``ansible``、``ansible-console`` など) は、インベントリーディレクトリー内の ``group_vars/`` と ``host_vars/`` のみを探します。他のコマンドで Playbook ディレクトリーからグループ変数やホスト変数を読み込む場合は、コマンドラインで ``--playbook-dir`` オプションを指定する必要があります。Playbook ディレクトリーと inventory ディレクトリーの両方からインベントリーファイルを読み込んだ場合、Playbook ディレクトリーの変数はインベントリーディレクトリーで設定された変数よりも優先されます。" -#: ../../rst/inventory_guide/intro_inventory.rst:508 +#: ../../rst/inventory_guide/intro_inventory.rst:513 msgid "Keeping your inventory file and variables in a git repo (or other version control) is an excellent way to track changes to your inventory and host variables." msgstr "git リポジトリー (または他のバージョン管理) でインベントリーファイルおよび変数を維持することは、インベントリーおよびホスト変数への変更を追跡する優れた方法です。" -#: ../../rst/inventory_guide/intro_inventory.rst:514 +#: ../../rst/inventory_guide/intro_inventory.rst:519 msgid "How variables are merged" msgstr "変数をマージする方法" -#: ../../rst/inventory_guide/intro_inventory.rst:516 +#: ../../rst/inventory_guide/intro_inventory.rst:521 msgid "By default variables are merged/flattened to the specific host before a play is run. This keeps Ansible focused on the Host and Task, so groups don't really survive outside of inventory and host matching. By default, Ansible overwrites variables including the ones defined for a group and/or host (see :ref:`DEFAULT_HASH_BEHAVIOUR`). The order/precedence is (from lowest to highest):" msgstr "デフォルトでは、プレイが実行される前に、変数が特定のホストにマージ/フラット化されます。これにより、Ansible はホストとタスクに焦点を当てているため、グループはインベントリーとホストの一致以外では実際には存続しません。デフォルトでは、Ansible はグループやホストに定義されたものを含む変数を上書きします (「:ref:`DEFAULT_HASH_BEHAVIOUR`」を参照)。その順序/優先順位は (低いものから高いものへ) となっています。" -#: ../../rst/inventory_guide/intro_inventory.rst:518 +#: ../../rst/inventory_guide/intro_inventory.rst:523 msgid "all group (because it is the 'parent' of all other groups)" msgstr "すべてのグループ (他のすべてのグループの「親」であるため)" -#: ../../rst/inventory_guide/intro_inventory.rst:519 +#: ../../rst/inventory_guide/intro_inventory.rst:524 msgid "parent group" msgstr "親グループ" -#: ../../rst/inventory_guide/intro_inventory.rst:520 +#: ../../rst/inventory_guide/intro_inventory.rst:525 msgid "child group" msgstr "子グループ" -#: ../../rst/inventory_guide/intro_inventory.rst:521 +#: ../../rst/inventory_guide/intro_inventory.rst:526 msgid "host" msgstr "host" -#: ../../rst/inventory_guide/intro_inventory.rst:523 +#: ../../rst/inventory_guide/intro_inventory.rst:528 msgid "By default Ansible merges groups at the same parent/child level in ASCII order, and variables from the last group loaded overwrite variables from the previous groups. For example, an a_group will be merged with b_group and b_group vars that match will overwrite the ones in a_group." msgstr "デフォルトでは、Ansible は同じ親子レベルのグループを ASCII 順にマージし、最後に読み込まれたグループの変数がそれ以前のグループからの変数を上書きします。たとえば、a_group は b_group にマージされ、一致する b_group の変数が a_group の変数を上書きします。" -#: ../../rst/inventory_guide/intro_inventory.rst:525 +#: ../../rst/inventory_guide/intro_inventory.rst:530 msgid "You can change this behavior by setting the group variable ``ansible_group_priority`` to change the merge order for groups of the same level (after the parent/child order is resolved). The larger the number, the later it will be merged, giving it higher priority. This variable defaults to ``1`` if not set. For example:" msgstr "この動作を変更するには、グループ変数 ``ansible_group_priority`` を設定して、同じレベルのグループのマージ順序を変更することができます (親子の順序が解決された後)。数字が大きいほど後にマージされ、優先順位が高くなります。この変数が設定されていない場合のデフォルトは ``1`` です。たとえば、以下のようになります。" -#: ../../rst/inventory_guide/intro_inventory.rst:537 +#: ../../rst/inventory_guide/intro_inventory.rst:542 msgid "In this example, if both groups have the same priority, the result would normally have been ``testvar == b``, but since we are giving the ``a_group`` a higher priority the result will be ``testvar == a``." msgstr "この例では、両方のグループの優先順位が同じ場合、結果は通常 ``testvar == b`` になりますが、``a_group`` の優先度が高いため、結果は ``testvar == a`` になります。" -#: ../../rst/inventory_guide/intro_inventory.rst:539 +#: ../../rst/inventory_guide/intro_inventory.rst:544 msgid "``ansible_group_priority`` can only be set in the inventory source and not in group_vars/, as the variable is used in the loading of group_vars." msgstr "``ansible_group_priority`` は、group_vars の読み込みでこの変数が使用されるため、インベントリーソースでのみ設定でき、group_vars/ では設定できません。" -#: ../../rst/inventory_guide/intro_inventory.rst:542 +#: ../../rst/inventory_guide/intro_inventory.rst:547 msgid "Managing inventory variable load order" msgstr "インベントリー変数の読み込み順序の管理" -#: ../../rst/inventory_guide/intro_inventory.rst:544 +#: ../../rst/inventory_guide/intro_inventory.rst:549 msgid "When using multiple inventory sources, keep in mind that any variable conflicts are resolved according to the rules described in :ref:`how_we_merge` and :ref:`ansible_variable_precedence`. You can control the merging order of variables in inventory sources to get the variable value you need." msgstr "複数のインベントリーソースを使用する場合は、variable および :ref:`how_we_merge` と :ref:`ansible_variable_precedence` で説明されているルールに従って変数の競合が解決されることに注意してください。インベントリーソースで変数のマージ順序を制御し、必要な変数の値を取得できます。" -#: ../../rst/inventory_guide/intro_inventory.rst:547 -msgid "When you pass multiple inventory sources at the command line, Ansible merges variables in the order you pass those parameters. If ``[all:vars]`` in staging inventory defines ``myvar = 1`` and production inventory defines ``myvar = 2``, then: * Pass ``-i staging -i production`` to run the playbook with ``myvar = 2``. * Pass ``-i production -i staging`` to run the playbook with ``myvar = 1``." -msgstr "コマンドラインで複数のインベントリーソースを渡すと、Ansible はそれらのパラメーターを渡す順序で変数をマージします。ステージングインベントリーの ``[all:vars]`` が ``myvar = 1`` を定義し、実稼働インベントリーが ``myvar = 2`` を定義している場合には、* ``-i staging -i production`` を指定して ``myvar = 2`` で Playbook を実行します。* ``-i production -i staging`` を指定して ``myvar = 1`` で Playbook を実行します。" +#: ../../rst/inventory_guide/intro_inventory.rst:552 +msgid "When you pass multiple inventory sources at the command line, Ansible merges variables in the order you pass those parameters. If ``[all:vars]`` in staging inventory defines ``myvar = 1`` and production inventory defines ``myvar = 2``, then:" +msgstr "コマンドラインで複数のインベントリーソースを渡すと、Ansible はそれらのパラメーターを渡す順序で変数をマージします。ステージングインベントリーの ``[all:vars]`` が ``myvar = 1`` を定義し、実稼働インベントリーが ``myvar = 2`` を定義している場合には、" -#: ../../rst/inventory_guide/intro_inventory.rst:551 +#: ../../rst/inventory_guide/intro_inventory.rst:554 +msgid "Pass ``-i staging -i production`` to run the playbook with ``myvar = 2``." +msgstr "* ``-i staging -i production`` を渡して ``myvar = 2`` を指定して Playbook を実行します。" + +#: ../../rst/inventory_guide/intro_inventory.rst:555 +msgid "Pass ``-i production -i staging`` to run the playbook with ``myvar = 1``." +msgstr "* ``-i production -i staging`` を渡して ``myvar = 1`` を指定して Playbook を実行します。" + +#: ../../rst/inventory_guide/intro_inventory.rst:557 msgid "When you put multiple inventory sources in a directory, Ansible merges them in ASCII order according to the filenames. You can control the load order by adding prefixes to the files:" msgstr "ディレクトリーに複数のインベントリーソースを配置すると、Ansible はファイル名に従って ASCII 順でマージします。ファイルに接頭辞を追加することで、読み込み順序を制御できます。" -#: ../../rst/inventory_guide/intro_inventory.rst:562 +#: ../../rst/inventory_guide/intro_inventory.rst:568 msgid "If ``01-openstack.yml`` defines ``myvar = 1`` for the group ``all``, ``02-dynamic-inventory.py`` defines ``myvar = 2``, and ``03-static-inventory`` defines ``myvar = 3``, the playbook will be run with ``myvar = 3``." msgstr "``01-openstack.yml`` がグループ ``all`` に対して ``myvar = 1`` を定義し、``02-dynamic-inventory.py`` が ``myvar = 2`` を定義し、``03-static-inventory`` が ``myvar = 3`` を定義した場合は、Playbook が ``myvar = 3`` で実行します。" -#: ../../rst/inventory_guide/intro_inventory.rst:565 +#: ../../rst/inventory_guide/intro_inventory.rst:571 msgid "For more details on inventory plugins and dynamic inventory scripts see :ref:`inventory_plugins` and :ref:`intro_dynamic_inventory`." msgstr "インベントリープラグインおよび動的インベントリースクリプトの詳細は、「:ref:`inventory_plugins`」および「:ref:`intro_dynamic_inventory`」を参照してください。" -#: ../../rst/inventory_guide/intro_inventory.rst:570 +#: ../../rst/inventory_guide/intro_inventory.rst:576 msgid "Connecting to hosts: behavioral inventory parameters" msgstr "ホストへの接続: 動作用インベントリーパラメーター" -#: ../../rst/inventory_guide/intro_inventory.rst:572 +#: ../../rst/inventory_guide/intro_inventory.rst:578 msgid "As described above, setting the following variables control how Ansible interacts with remote hosts." msgstr "上記のように、以下の変数を設定して、Ansible がリモートホストと対話する方法を制御します。" -#: ../../rst/inventory_guide/intro_inventory.rst:574 +#: ../../rst/inventory_guide/intro_inventory.rst:580 msgid "Host connection:" msgstr "ホスト接続:" -#: ../../rst/inventory_guide/intro_inventory.rst:579 +#: ../../rst/inventory_guide/intro_inventory.rst:585 msgid "ansible_connection" msgstr "ansible_connection" -#: ../../rst/inventory_guide/intro_inventory.rst:579 +#: ../../rst/inventory_guide/intro_inventory.rst:585 msgid "Connection type to the host. This can be the name of any of ansible's connection plugins. SSH protocol types are ``smart``, ``ssh`` or ``paramiko``. The default is smart. Non-SSH based types are described in the next section." msgstr "ホストへの接続タイプ。これは、Ansible の connection プラグインの名前です。SSH プロトコルタイプは ``smart``、``ssh``、または ``paramiko`` です。デフォルトは smart です。SSH ベース以外のタイプは次のセクションで説明します。" -#: ../../rst/inventory_guide/intro_inventory.rst:581 +#: ../../rst/inventory_guide/intro_inventory.rst:587 msgid "General for all connections:" msgstr "すべての接続に対する一般的な設定:" -#: ../../rst/inventory_guide/intro_inventory.rst:583 -#: ../../rst/inventory_guide/intro_inventory.rst:686 +#: ../../rst/inventory_guide/intro_inventory.rst:589 +#: ../../rst/inventory_guide/intro_inventory.rst:692 msgid "ansible_host" msgstr "ansible_host" -#: ../../rst/inventory_guide/intro_inventory.rst:584 +#: ../../rst/inventory_guide/intro_inventory.rst:590 msgid "The name of the host to connect to, if different from the alias you wish to give to it." msgstr "接続するホストの名前 (割り当てたいエイリアスと異なる場合)。" -#: ../../rst/inventory_guide/intro_inventory.rst:585 +#: ../../rst/inventory_guide/intro_inventory.rst:591 msgid "ansible_port" msgstr "ansible_port" -#: ../../rst/inventory_guide/intro_inventory.rst:586 +#: ../../rst/inventory_guide/intro_inventory.rst:592 msgid "The connection port number, if not the default (22 for ssh)" msgstr "デフォルトではない場合 (ssh の場合は 22) は、接続ポート番号。" -#: ../../rst/inventory_guide/intro_inventory.rst:587 -#: ../../rst/inventory_guide/intro_inventory.rst:688 +#: ../../rst/inventory_guide/intro_inventory.rst:593 +#: ../../rst/inventory_guide/intro_inventory.rst:694 msgid "ansible_user" msgstr "ansible_user" -#: ../../rst/inventory_guide/intro_inventory.rst:588 +#: ../../rst/inventory_guide/intro_inventory.rst:594 msgid "The user name to use when connecting to the host" msgstr "ホストに接続する際に使用するユーザー名。" -#: ../../rst/inventory_guide/intro_inventory.rst:591 +#: ../../rst/inventory_guide/intro_inventory.rst:597 msgid "ansible_password" msgstr "ansible_password" -#: ../../rst/inventory_guide/intro_inventory.rst:590 +#: ../../rst/inventory_guide/intro_inventory.rst:596 msgid "The password to use to authenticate to the host (never store this variable in plain text; always use a vault. See :ref:`tip_for_variables_and_vaults`)" msgstr "ホストへの認証に使用するパスワード (この変数を平文で保存しないでください。常に Valut を使用してください。「:ref:`tip_for_variables_and_vaults`」を参照)。" -#: ../../rst/inventory_guide/intro_inventory.rst:593 +#: ../../rst/inventory_guide/intro_inventory.rst:599 msgid "Specific to the SSH connection:" msgstr "SSH 接続に固有:" -#: ../../rst/inventory_guide/intro_inventory.rst:595 +#: ../../rst/inventory_guide/intro_inventory.rst:601 msgid "ansible_ssh_private_key_file" msgstr "ansible_ssh_private_key_file" -#: ../../rst/inventory_guide/intro_inventory.rst:596 +#: ../../rst/inventory_guide/intro_inventory.rst:602 msgid "Private key file used by ssh. Useful if using multiple keys and you don't want to use SSH agent." msgstr "ssh が使用する秘密鍵ファイル。複数の鍵を使用し、SSH エージェントを使用したくない場合に便利です。" -#: ../../rst/inventory_guide/intro_inventory.rst:599 +#: ../../rst/inventory_guide/intro_inventory.rst:605 msgid "ansible_ssh_common_args" msgstr "ansible_ssh_common_args" -#: ../../rst/inventory_guide/intro_inventory.rst:598 +#: ../../rst/inventory_guide/intro_inventory.rst:604 msgid "This setting is always appended to the default command line for :command:`sftp`, :command:`scp`, and :command:`ssh`. Useful to configure a ``ProxyCommand`` for a certain host (or group)." msgstr "この設定は、常に :command:`sftp`、:command:`scp`、および :command:`ssh` のデフォルトのコマンドラインに追加されます。特定のホスト (またはグループ) に ``ProxyCommand`` を設定してください。" -#: ../../rst/inventory_guide/intro_inventory.rst:601 +#: ../../rst/inventory_guide/intro_inventory.rst:607 msgid "ansible_sftp_extra_args" msgstr "ansible_sftp_extra_args" -#: ../../rst/inventory_guide/intro_inventory.rst:602 +#: ../../rst/inventory_guide/intro_inventory.rst:608 msgid "This setting is always appended to the default :command:`sftp` command line." msgstr "この設定は、デフォルトの :command:`sftp` コマンドラインに常に付加されます。" -#: ../../rst/inventory_guide/intro_inventory.rst:603 +#: ../../rst/inventory_guide/intro_inventory.rst:609 msgid "ansible_scp_extra_args" msgstr "ansible_scp_extra_args" -#: ../../rst/inventory_guide/intro_inventory.rst:604 +#: ../../rst/inventory_guide/intro_inventory.rst:610 msgid "This setting is always appended to the default :command:`scp` command line." msgstr "この設定は、デフォルトの :command:`scp` コマンドラインに常に付加されます。" -#: ../../rst/inventory_guide/intro_inventory.rst:605 +#: ../../rst/inventory_guide/intro_inventory.rst:611 msgid "ansible_ssh_extra_args" msgstr "ansible_ssh_extra_args" -#: ../../rst/inventory_guide/intro_inventory.rst:606 +#: ../../rst/inventory_guide/intro_inventory.rst:612 msgid "This setting is always appended to the default :command:`ssh` command line." msgstr "この設定は、デフォルトの :command:`ssh` コマンドラインに常に付加されます。" -#: ../../rst/inventory_guide/intro_inventory.rst:607 +#: ../../rst/inventory_guide/intro_inventory.rst:613 msgid "ansible_ssh_pipelining" msgstr "ansible_ssh_pipelining" -#: ../../rst/inventory_guide/intro_inventory.rst:608 +#: ../../rst/inventory_guide/intro_inventory.rst:614 msgid "Determines whether or not to use SSH pipelining. This can override the ``pipelining`` setting in :file:`ansible.cfg`." msgstr "SSH パイプラインを使用するかどうかを決定します。これは :file:`ansible.cfg` の ``pipelining`` の設定を上書きすることができます。" -#: ../../rst/inventory_guide/intro_inventory.rst:611 +#: ../../rst/inventory_guide/intro_inventory.rst:617 msgid "ansible_ssh_executable (added in version 2.2)" msgstr "ansible_ssh_executable (バージョン 2.2 で追加)" -#: ../../rst/inventory_guide/intro_inventory.rst:610 +#: ../../rst/inventory_guide/intro_inventory.rst:616 msgid "This setting overrides the default behavior to use the system :command:`ssh`. This can override the ``ssh_executable`` setting in :file:`ansible.cfg`." msgstr "この設定により、システムの :command:`ssh` を使用するようにデフォルトの動作が上書きされます。これにより、:file:`ansible.cfg` の ``ssh_executable`` 設定を上書きできます。" -#: ../../rst/inventory_guide/intro_inventory.rst:613 +#: ../../rst/inventory_guide/intro_inventory.rst:619 msgid "Privilege escalation (see :ref:`Ansible Privilege Escalation` for further details):" msgstr "権限の昇格 (詳細は「:ref:`Ansible 権限昇格`」を参照):" -#: ../../rst/inventory_guide/intro_inventory.rst:615 -#: ../../rst/inventory_guide/intro_inventory.rst:690 +#: ../../rst/inventory_guide/intro_inventory.rst:621 +#: ../../rst/inventory_guide/intro_inventory.rst:696 msgid "ansible_become" msgstr "ansible_become" -#: ../../rst/inventory_guide/intro_inventory.rst:616 +#: ../../rst/inventory_guide/intro_inventory.rst:622 msgid "Equivalent to ``ansible_sudo`` or ``ansible_su``, allows to force privilege escalation" msgstr "``ansible_sudo`` または ``ansible_su`` と同等です。これにより、権限昇格を強制できます。" -#: ../../rst/inventory_guide/intro_inventory.rst:617 +#: ../../rst/inventory_guide/intro_inventory.rst:623 msgid "ansible_become_method" msgstr "ansible_become_method" -#: ../../rst/inventory_guide/intro_inventory.rst:618 +#: ../../rst/inventory_guide/intro_inventory.rst:624 msgid "Allows to set privilege escalation method" msgstr "権限昇格メソッドの設定を許可します。" -#: ../../rst/inventory_guide/intro_inventory.rst:619 +#: ../../rst/inventory_guide/intro_inventory.rst:625 msgid "ansible_become_user" msgstr "ansible_become_user" -#: ../../rst/inventory_guide/intro_inventory.rst:620 +#: ../../rst/inventory_guide/intro_inventory.rst:626 msgid "Equivalent to ``ansible_sudo_user`` or ``ansible_su_user``, allows to set the user you become through privilege escalation" msgstr "``ansible_sudo_user`` または ``ansible_su_user`` と同等で、権限昇格により become を行うユーザーを設定できます。" -#: ../../rst/inventory_guide/intro_inventory.rst:621 +#: ../../rst/inventory_guide/intro_inventory.rst:627 msgid "ansible_become_password" msgstr "ansible_become_password" -#: ../../rst/inventory_guide/intro_inventory.rst:622 +#: ../../rst/inventory_guide/intro_inventory.rst:628 msgid "Equivalent to ``ansible_sudo_password`` or ``ansible_su_password``, allows you to set the privilege escalation password (never store this variable in plain text; always use a vault. See :ref:`tip_for_variables_and_vaults`)" msgstr "``ansible_sudo_password`` または ``ansible_su_password`` と同等で、特権昇格パスワードを設定できます (この変数を平文で保存せず、常に vault を使用してください。「:ref:`tip_for_variables_and_vaults`」を参照してください)。" -#: ../../rst/inventory_guide/intro_inventory.rst:623 +#: ../../rst/inventory_guide/intro_inventory.rst:629 msgid "ansible_become_exe" msgstr "ansible_become_exe" -#: ../../rst/inventory_guide/intro_inventory.rst:624 +#: ../../rst/inventory_guide/intro_inventory.rst:630 msgid "Equivalent to ``ansible_sudo_exe`` or ``ansible_su_exe``, allows you to set the executable for the escalation method selected" msgstr "``ansible_sudo_exe`` または ``ansible_su_exe`` と同等で、選択した昇格メソッドの実行ファイルを設定できます。" -#: ../../rst/inventory_guide/intro_inventory.rst:626 +#: ../../rst/inventory_guide/intro_inventory.rst:632 msgid "ansible_become_flags" msgstr "ansible_become_flags" -#: ../../rst/inventory_guide/intro_inventory.rst:626 +#: ../../rst/inventory_guide/intro_inventory.rst:632 msgid "Equivalent to ``ansible_sudo_flags`` or ``ansible_su_flags``, allows you to set the flags passed to the selected escalation method. This can be also set globally in :file:`ansible.cfg` in the ``sudo_flags`` option" msgstr "``ansible_sudo_flags`` または ``ansible_su_flags`` と同等で、選択された昇格方法に渡されるフラグを設定することができます。これは ``sudo_flags`` オプションの :file:`ansible.cfg` でもグローバルに設定できます。" -#: ../../rst/inventory_guide/intro_inventory.rst:628 +#: ../../rst/inventory_guide/intro_inventory.rst:634 msgid "Remote host environment parameters:" msgstr "リモートホスト環境パラメーター:" -#: ../../rst/inventory_guide/intro_inventory.rst:636 +#: ../../rst/inventory_guide/intro_inventory.rst:642 msgid "ansible_shell_type" msgstr "ansible_shell_type" -#: ../../rst/inventory_guide/intro_inventory.rst:633 +#: ../../rst/inventory_guide/intro_inventory.rst:639 msgid "The shell type of the target system. You should not use this setting unless you have set the :ref:`ansible_shell_executable` to a non-Bourne (sh) compatible shell. By default commands are formatted using ``sh``-style syntax. Setting this to ``csh`` or ``fish`` will cause commands executed on target systems to follow those shell's syntax instead." msgstr "ターゲットシステムのシェルタイプ。:ref:`ansible_shell_executable` を Bourne (sh) 以外の互換シェルに設定しない限り、この設定は使用しないでください。デフォルトでは、コマンドは ``sh`` スタイルの構文を使用してフォーマットされます。これを ``csh`` または ``fish`` に設定すると、ターゲットシステムで実行するコマンドがシェルの構文に従います。" -#: ../../rst/inventory_guide/intro_inventory.rst:645 +#: ../../rst/inventory_guide/intro_inventory.rst:651 msgid "ansible_python_interpreter" msgstr "ansible_python_interpreter" -#: ../../rst/inventory_guide/intro_inventory.rst:641 +#: ../../rst/inventory_guide/intro_inventory.rst:647 msgid "The target host python path. This is useful for systems with more than one Python or not located at :command:`/usr/bin/python` such as \\*BSD, or where :command:`/usr/bin/python` is not a 2.X series Python. We do not use the :command:`/usr/bin/env` mechanism as that requires the remote user's path to be set right and also assumes the :program:`python` executable is named python, where the executable might be named something like :program:`python2.6`." msgstr "ターゲットホストの Python パス。これは、複数の Python があるシステム、\\*BSD などの :command:`/usr/bin/python` にないシステム、:command:`/usr/bin/python` が 2.X シリーズの Python 以外のシステムに役立ちます。リモートユーザーのパスを正しく設定する必要があり、:program:`python` 実行ファイルの名前が python であると想定するため、:command:`/usr/bin/env` メカニズムは使用しません。実行ファイルの名前は :program:`python2.6` のようになります。" -#: ../../rst/inventory_guide/intro_inventory.rst:649 +#: ../../rst/inventory_guide/intro_inventory.rst:655 msgid "ansible_*_interpreter" msgstr "ansible_*_interpreter" -#: ../../rst/inventory_guide/intro_inventory.rst:648 +#: ../../rst/inventory_guide/intro_inventory.rst:654 msgid "Works for anything such as ruby or perl and works just like :ref:`ansible_python_interpreter`. This replaces shebang of modules which will run on that host." msgstr "ruby や perl などのあらゆるもので動作し、:ref:`ansible_python_interpreter` のように機能します。これは、そのホストで実行されるモジュールのシバンに代わるものです。" -#: ../../rst/inventory_guide/intro_inventory.rst:660 +#: ../../rst/inventory_guide/intro_inventory.rst:666 msgid "ansible_shell_executable" msgstr "ansible_shell_executable" -#: ../../rst/inventory_guide/intro_inventory.rst:656 +#: ../../rst/inventory_guide/intro_inventory.rst:662 msgid "This sets the shell the ansible controller will use on the target machine, overrides ``executable`` in :file:`ansible.cfg` which defaults to :command:`/bin/sh`. You should really only change it if is not possible to use :command:`/bin/sh` (in other words, if :command:`/bin/sh` is not installed on the target machine or cannot be run from sudo.)." msgstr "これにより、Ansible コントローラーがターゲットマシンで使用するシェルを設定し、:file:`ansible.cfg` の ``executable`` を上書きします。デフォルトは :command:`/bin/sh` です。:command:`/bin/sh` を使用できない場合にのみ変更する必要があります (つまり、:command:`/bin/sh` がターゲットマシンにインストールされていない場合、または sudo から実行できない場合)。" -#: ../../rst/inventory_guide/intro_inventory.rst:662 +#: ../../rst/inventory_guide/intro_inventory.rst:668 msgid "Examples from an Ansible-INI host file:" msgstr "Ansible-INI ホストファイルの例:" -#: ../../rst/inventory_guide/intro_inventory.rst:672 +#: ../../rst/inventory_guide/intro_inventory.rst:678 msgid "Non-SSH connection types" msgstr "SSH 以外の接続タイプ" -#: ../../rst/inventory_guide/intro_inventory.rst:674 +#: ../../rst/inventory_guide/intro_inventory.rst:680 msgid "As stated in the previous section, Ansible executes playbooks over SSH but it is not limited to this connection type. With the host specific parameter ``ansible_connection=``, the connection type can be changed. The following non-SSH based connectors are available:" msgstr "前のセクションで説明したように、Ansible は SSH で Playbook を実行しますが、この接続タイプは制限されていません。ホスト固有のパラメーター ``ansible_connection=`` では、接続タイプを変更できます。次の SSH 以外のコネクターを利用できます。" -#: ../../rst/inventory_guide/intro_inventory.rst:678 +#: ../../rst/inventory_guide/intro_inventory.rst:684 msgid "**local**" msgstr "**local**" -#: ../../rst/inventory_guide/intro_inventory.rst:680 +#: ../../rst/inventory_guide/intro_inventory.rst:686 msgid "This connector can be used to deploy the playbook to the control machine itself." msgstr "このコネクターは、Playbook をコントロールマシン自体にデプロイするために使用できます。" -#: ../../rst/inventory_guide/intro_inventory.rst:682 +#: ../../rst/inventory_guide/intro_inventory.rst:688 msgid "**docker**" msgstr "**docker**" -#: ../../rst/inventory_guide/intro_inventory.rst:684 +#: ../../rst/inventory_guide/intro_inventory.rst:690 msgid "This connector deploys the playbook directly into Docker containers using the local Docker client. The following parameters are processed by this connector:" msgstr "このコネクターは、ローカルの Docker クライアントを使用して Playbook を直接 Docker コンテナーにデプロイします。以下のパラメーターはこのコネクターによって処理されます。" -#: ../../rst/inventory_guide/intro_inventory.rst:687 +#: ../../rst/inventory_guide/intro_inventory.rst:693 msgid "The name of the Docker container to connect to." msgstr "接続先の Docker コンテナーの名前。" -#: ../../rst/inventory_guide/intro_inventory.rst:689 +#: ../../rst/inventory_guide/intro_inventory.rst:695 msgid "The user name to operate within the container. The user must exist inside the container." msgstr "コンテナー内で操作するためのユーザ名。ユーザーはコンテナー内に存在している必要があります。" -#: ../../rst/inventory_guide/intro_inventory.rst:691 +#: ../../rst/inventory_guide/intro_inventory.rst:697 msgid "If set to ``true`` the ``become_user`` will be used to operate within the container." msgstr "``true`` に設定すると、``become_user`` はコンテナー内で動作するために使用されます。" -#: ../../rst/inventory_guide/intro_inventory.rst:693 +#: ../../rst/inventory_guide/intro_inventory.rst:699 msgid "ansible_docker_extra_args" msgstr "ansible_docker_extra_args" -#: ../../rst/inventory_guide/intro_inventory.rst:693 +#: ../../rst/inventory_guide/intro_inventory.rst:699 msgid "Could be a string with any additional arguments understood by Docker, which are not command specific. This parameter is mainly used to configure a remote Docker daemon to use." msgstr "Docker が認識する追加の引数を持つ文字列を指定できますが、これはコマンド固有ではありません。このパラメーターは主に、使用するリモート Docker デーモンを設定するために使用されます。" -#: ../../rst/inventory_guide/intro_inventory.rst:695 +#: ../../rst/inventory_guide/intro_inventory.rst:701 msgid "Here is an example of how to instantly deploy to created containers:" msgstr "以下は、作成されたコンテナーに即時にデプロイする例を示しています。" -#: ../../rst/inventory_guide/intro_inventory.rst:719 +#: ../../rst/inventory_guide/intro_inventory.rst:725 msgid "For a full list with available plugins and examples, see :ref:`connection_plugin_list`." msgstr "利用可能なプラグインとサンプルの一覧は、「:ref:`connection_plugin_list`」を参照してください。" -#: ../../rst/inventory_guide/intro_inventory.rst:721 +#: ../../rst/inventory_guide/intro_inventory.rst:727 msgid "If you're reading the docs from the beginning, this may be the first example you've seen of an Ansible playbook. This is not an inventory file. Playbooks will be covered in great detail later in the docs." msgstr "ドキュメントを最初から読んでいる場合、これは Ansible Playbook を初めて確認した例です。これはインベントリーファイルではありません。Playbook は、ドキュメントで後ほど詳細に説明しています。" -#: ../../rst/inventory_guide/intro_inventory.rst:727 +#: ../../rst/inventory_guide/intro_inventory.rst:733 msgid "Inventory setup examples" msgstr "インベントリーの設定例" -#: ../../rst/inventory_guide/intro_inventory.rst:729 +#: ../../rst/inventory_guide/intro_inventory.rst:735 msgid "See also :ref:`sample_setup`, which shows inventory along with playbooks and other Ansible artifacts." msgstr "Playbook およびその他の Ansible アーティファクトとともにインベントリーを表示する「:ref:`sample_setup`」も参照してください。" -#: ../../rst/inventory_guide/intro_inventory.rst:734 +#: ../../rst/inventory_guide/intro_inventory.rst:740 msgid "Example: One inventory per environment" msgstr "例: 各環境に 1 つのインベントリー" -#: ../../rst/inventory_guide/intro_inventory.rst:736 +#: ../../rst/inventory_guide/intro_inventory.rst:742 msgid "If you need to manage multiple environments it's sometimes prudent to have only hosts of a single environment defined per inventory. This way, it is harder to, for instance, accidentally change the state of nodes inside the \"test\" environment when you actually wanted to update some \"staging\" servers." msgstr "複数の環境を管理する必要がある場合、インベントリーごとに 1 つの環境のホストのみを定義することが賢明な場合があります。こうすることで、たとえば、実際には「ステージング」サーバーを更新したいのに、誤って「テスト」環境内のノードの状態を変更してしまうことが起こりにくくなります。" -#: ../../rst/inventory_guide/intro_inventory.rst:742 +#: ../../rst/inventory_guide/intro_inventory.rst:748 msgid "For the example mentioned above you could have an :file:`inventory_test` file:" msgstr "前述の例では、:file:`inventory_test` というファイルがあります。" -#: ../../rst/inventory_guide/intro_inventory.rst:756 +#: ../../rst/inventory_guide/intro_inventory.rst:762 msgid "That file only includes hosts that are part of the \"test\" environment. Define the \"staging\" machines in another file called :file:`inventory_staging`:" msgstr "このファイルには、「テスト」環境に含まれるホストのみが含まれます。:file:`inventory_staging` と呼ばれる別のファイルの「ステージング」マシンを定義します。" -#: ../../rst/inventory_guide/intro_inventory.rst:771 +#: ../../rst/inventory_guide/intro_inventory.rst:777 msgid "To apply a playbook called :file:`site.yml` to all the app servers in the test environment, use the following command:" msgstr "`site.yml` という名前の Playbook をテスト環境のすべてのアプリケーションサーバーに適用するには、次のコマンドを使用します。" -#: ../../rst/inventory_guide/intro_inventory.rst:782 +#: ../../rst/inventory_guide/intro_inventory.rst:788 msgid "Example: Group by function" msgstr "例: 機能別にグループ化" -#: ../../rst/inventory_guide/intro_inventory.rst:784 +#: ../../rst/inventory_guide/intro_inventory.rst:790 msgid "In the previous section you already saw an example for using groups in order to cluster hosts that have the same function. This allows you, for instance, to define firewall rules inside a playbook or role affecting only database servers:" msgstr "前セクションでは、同じ機能を持つホストをクラスター化するために、グループを使用する例をすでに提示しています。これにより、データベースサーバーだけに影響する Playbook またはロール内でファイアウォールルールを定義できます。" -#: ../../rst/inventory_guide/intro_inventory.rst:802 +#: ../../rst/inventory_guide/intro_inventory.rst:808 msgid "Example: Group by location" msgstr "例: 場所別にグループ化" -#: ../../rst/inventory_guide/intro_inventory.rst:804 +#: ../../rst/inventory_guide/intro_inventory.rst:810 msgid "Other tasks might be focused on where a certain host is located. Let's say that ``db01.test.example.com`` and ``app01.test.example.com`` are located in DC1 while ``db02.test.example.com`` is in DC2:" msgstr "また、特定のホストがどこにあるかに焦点を当てたタスクもあります。たとえば、``db01.test.example.com`` と ``app01.test.example.com`` が DC1 にあり、``db02.test.example.com`` が DC2 にあるとします。" -#: ../../rst/inventory_guide/intro_inventory.rst:817 +#: ../../rst/inventory_guide/intro_inventory.rst:823 msgid "In practice, you might even end up mixing all these setups as you might need to, on one day, update all nodes in a specific data center while, on another day, update all the application servers no matter their location." msgstr "実際には、たとえば特定のデータセンター内のすべてのノードを更新する日と、置かれている場所に関係なくすべてのアプリケーションサーバーを更新する日が必要になるため、これらすべての設定を組み合わせて使用することがあります。" -#: ../../rst/inventory_guide/intro_inventory.rst:824 +#: ../../rst/inventory_guide/intro_inventory.rst:830 msgid ":ref:`inventory_plugins`" msgstr ":ref:`inventory_plugins`" -#: ../../rst/inventory_guide/intro_inventory.rst:825 +#: ../../rst/inventory_guide/intro_inventory.rst:831 msgid "Pulling inventory from dynamic or static sources" msgstr "動的ソースまたは静的ソースからのインベントリーのプル" -#: ../../rst/inventory_guide/intro_inventory.rst:826 +#: ../../rst/inventory_guide/intro_inventory.rst:832 msgid ":ref:`intro_dynamic_inventory`" msgstr ":ref:`intro_dynamic_inventory`" -#: ../../rst/inventory_guide/intro_inventory.rst:827 +#: ../../rst/inventory_guide/intro_inventory.rst:833 msgid "Pulling inventory from dynamic sources, such as cloud providers" msgstr "クラウドプロバイダーなどの動的ソースからのインベントリーのプル" -#: ../../rst/inventory_guide/intro_inventory.rst:828 +#: ../../rst/inventory_guide/intro_inventory.rst:834 #: ../../rst/inventory_guide/intro_patterns.rst:246 msgid ":ref:`intro_adhoc`" msgstr ":ref:`intro_adhoc`" -#: ../../rst/inventory_guide/intro_inventory.rst:829 +#: ../../rst/inventory_guide/intro_inventory.rst:835 #: ../../rst/inventory_guide/intro_patterns.rst:247 msgid "Examples of basic commands" msgstr "基本コマンドの例" -#: ../../rst/inventory_guide/intro_inventory.rst:830 +#: ../../rst/inventory_guide/intro_inventory.rst:836 #: ../../rst/inventory_guide/intro_patterns.rst:248 msgid ":ref:`working_with_playbooks`" msgstr ":ref:`working_with_playbooks`" -#: ../../rst/inventory_guide/intro_inventory.rst:831 +#: ../../rst/inventory_guide/intro_inventory.rst:837 msgid "Learning Ansible's configuration, deployment, and orchestration language." msgstr "Ansible の設定、デプロイメント、およびオーケストレーション言語について" @@ -1397,4 +1415,10 @@ msgstr "Ansible コマンドおよび Playbook でパターンに関する知識 msgid "Learning the Ansible configuration management language" msgstr "Ansible の設定管理言語について" +#~ msgid "In Ansible 2.10 and later, inventory scripts moved to their associated collections. Many are now in the `community.general scripts/inventory directory `_. We recommend you use :ref:`inventory_plugins` instead." +#~ msgstr "Ansible 2.10 以降では、インベントリースクリプトは関連するコレクションに移動しました。現在、多くのスクリプトは `community.general scripts/inventory directory `_ にあります。代わりに :ref:`inventory_plugins` を使用することが推奨されます。" + +#~ msgid "To create parent/child relationships for groups: * in INI format, use the ``:children`` suffix * in YAML format, use the ``children:`` entry" +#~ msgstr "グループの親/子の関係を作成するには、 * INI 形式の場合には ``:children`` の接尾辞を、 * YAML 形式の場合は ``children:`` エントリーを使用します。" + diff --git a/docs/docsite/rst/locales/ja/LC_MESSAGES/network.po b/docs/docsite/rst/locales/ja/LC_MESSAGES/network.po index c4eea114..24f72d10 100644 --- a/docs/docsite/rst/locales/ja/LC_MESSAGES/network.po +++ b/docs/docsite/rst/locales/ja/LC_MESSAGES/network.po @@ -7,14 +7,14 @@ msgid "" msgstr "" "Project-Id-Version: Ansible devel\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-10-05 09:34+0200\n" +"POT-Creation-Date: 2023-03-01 20:16+0100\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.8.1\n" +"Generated-By: Babel 2.9.0\n" #: ../../rst/network/dev_guide/developing_plugins_network.rst:7 msgid "Developing network plugins" @@ -54,7 +54,7 @@ msgstr "要求の作成" #: ../../rst/network/dev_guide/developing_plugins_network.rst:54 msgid "The ``httpapi`` connection plugin has a ``send()`` method, but an httpapi plugin needs a ``send_request(self, data, **message_kwargs)`` method as a higher-level wrapper to ``send()``. This method should prepare requests by adding fixed values like common headers or URL root paths. This method may do more complex work such as turning data into formatted payloads, or determining which path or method to request. It may then also unpack responses to be more easily consumed by the caller." -msgstr "``httpapi`` connection プラグインには ``send()`` メソッドがありますが、httpapi プラグインには、``send()`` への高レベルラッパーとして ``send_request(self, data, **message_kwargs)`` メソッドが必要です。このメソッドは、共通ヘッダーや URL ルートパスなどの固定値を追加することで要求を準備する必要があります。このメソッドは、フォーマットされたペイロードへのデータの切り替えや、リクエスト用のパスやメソッドの特定など、より複雑な作業を行うことがあります。その後、呼び出し元によって簡単に消費される応答が展開される可能性があります" +msgstr "``httpapi`` connection プラグインには ``send()`` メソッドがありますが、httpapi プラグインには、``send()`` への高レベルラッパーとして ``send_request(self, data, **message_kwargs)`` メソッドが必要です。このメソッドは、共通ヘッダーや URL ルートパスなどの固定値を追加することで要求を準備する必要があります。このメソッドは、フォーマットされたペイロードへのデータの切り替えや、リクエスト用のパスやメソッドの特定など、より複雑な作業を行うことがあります。その後、呼び出し元によって簡単に消費される応答が展開される可能性があります。" #: ../../rst/network/dev_guide/developing_plugins_network.rst:74 msgid "Authenticating" @@ -802,13 +802,13 @@ msgid "Your tests should detect resources (such as interfaces) at runtime rather msgstr "テストは、(インターフェースなどの) リソースをテストにハードコーディングするのではなく、ランタイム時にリソースを検出する必要があります。これにより、テストはさまざまなシステムで実行できます。" #: ../../rst/network/dev_guide/developing_resource_modules_network.rst:631 -#: ../../rst/network/user_guide/network_debug_troubleshooting.rst:205 -#: ../../rst/network/user_guide/network_debug_troubleshooting.rst:264 -#: ../../rst/network/user_guide/network_debug_troubleshooting.rst:300 -#: ../../rst/network/user_guide/network_debug_troubleshooting.rst:329 -#: ../../rst/network/user_guide/network_debug_troubleshooting.rst:360 -#: ../../rst/network/user_guide/network_debug_troubleshooting.rst:409 -#: ../../rst/network/user_guide/network_debug_troubleshooting.rst:615 +#: ../../rst/network/user_guide/network_debug_troubleshooting.rst:209 +#: ../../rst/network/user_guide/network_debug_troubleshooting.rst:268 +#: ../../rst/network/user_guide/network_debug_troubleshooting.rst:304 +#: ../../rst/network/user_guide/network_debug_troubleshooting.rst:333 +#: ../../rst/network/user_guide/network_debug_troubleshooting.rst:364 +#: ../../rst/network/user_guide/network_debug_troubleshooting.rst:413 +#: ../../rst/network/user_guide/network_debug_troubleshooting.rst:623 #: ../../rst/network/user_guide/network_working_with_command_output.rst:29 msgid "For example:" msgstr "例:" @@ -1149,7 +1149,7 @@ msgstr "管理ホストに適用される「アクション」の定義。タス #: ../../rst/shared_snippets/basic_concepts.txt:43 msgid "Handlers" -msgstr "ハンドラー" +msgstr "Handler (ハンドラー)" #: ../../rst/shared_snippets/basic_concepts.txt:44 msgid "A special form of a Task, that only executes when notified by a previous task which resulted in a 'changed' status." @@ -1324,8 +1324,8 @@ msgid "This is an example using an extract from a YAML inventory, as the INI fo msgstr "INI 形式はインラインの vault に対応していないため、以下は YAML インベントリーから抽出を使用する例です。" #: ../../rst/network/getting_started/first_inventory.rst:396 -msgid "To use an inline vaulted variables with an INI inventory you need to store it in a 'vars' file in YAML format, it can reside in host_vars/ or group_vars/ to be automatically picked up or referenced from a play via ``vars_files`` or ``include_vars``." -msgstr "インラインの Vault 変数を INI インベントリーで使用するには、これを YAML 形式で「vars」ファイルに保存する必要があります。これは host_vars/ または group_vars/ に置かれ、``vars_files`` または ``include_vars`` で Play から自動的に取得または参照されます。" +msgid "To use an inline vaulted variables with an INI inventory you need to store it in a 'vars' file in YAML format, it can reside in host_vars/ or group_vars/ to be automatically picked up or referenced from a play through ``vars_files`` or ``include_vars``." +msgstr "インラインの Vault 変数を INI インベントリーで使用するには、これを YAML 形式で「vars」ファイルに保存する必要があります。これは host_vars/ または group_vars/ に置かれ、``vars_files`` または ``include_vars`` でプレイから自動的に取得または参照されます。" #: ../../rst/network/getting_started/first_inventory.rst:399 msgid "To run a playbook with this setup, drop the ``-k`` flag and add a flag for your ``vault-id``:" @@ -1485,8 +1485,8 @@ msgid "Now that you can retrieve the device config, try updating it with Ansible msgstr "デバイス設定を取得できたので、Ansible で更新してみましょう。最初の Playbook の拡張バージョンである :download:`first_playbook_ext.yml ` をダウンロードします。" #: ../../rst/network/getting_started/first_playbook.rst:116 -msgid "The extended first playbook has four tasks in a single play. Run it with the same command you used above. The output shows you the change Ansible made to the config:" -msgstr "拡張された最初の Playbook には、1 つのプレイに 4 つのタスクがあります。上記のコマンドと同じコマンドを使用して実行すると、出力には、Ansible が設定に加えた変更が表示されます。" +msgid "The extended first playbook has five tasks in a single play. Run it with the same command you used above. The output shows you the change Ansible made to the config:" +msgstr "拡張された最初の Playbook には、1 つのプレイに 5 つのタスクがあります。上記のコマンドと同じコマンドを使用して実行すると、出力には、Ansible が設定に加えた変更が表示されます。" #: ../../rst/network/getting_started/first_playbook.rst:158 msgid "Gathering facts from network devices" @@ -1533,8 +1533,8 @@ msgid "Leverage the same simple, powerful, and agentless automation tool for net msgstr "操作と開発で使用するネットワークタスクの両方に、同一の簡単で強力なエージェントレスの自動化ツールを使用します。" #: ../../rst/network/getting_started/index.rst:11 -msgid "Separate the data model (in a playbook or role) from the execution layer (via Ansible modules) to manage heterogeneous network devices" -msgstr "異機種環境にあるネットワークデバイスを管理するため、(Ansible モジュールにより) 実行レイヤーからデータモデル (Playbook またはロール) を分離します。" +msgid "Separate the data model (in a playbook or role) from the execution layer (through Ansible modules) to manage heterogeneous network devices" +msgstr "異機種環境にあるネットワークデバイスを管理するため、(Ansible モジュールにより) 実行レイヤーから (Playbook またはロールの) データモデルを分離します。" #: ../../rst/network/getting_started/index.rst:12 msgid "Benefit from community and vendor-generated sample playbooks and roles to help accelerate network automation projects" @@ -1852,11 +1852,11 @@ msgstr "Ansible イベントにおけるセッションはすべて録画され #: ../../rst/network/getting_started/network_resources.rst:25 msgid "`Recorded AnsibleFests `_" -msgstr "`AnsibleFests (録画) `_" +msgstr "`Recorded AnsibleFests `_" #: ../../rst/network/getting_started/network_resources.rst:26 msgid "`Recorded AnsibleAutomates `_" -msgstr "`AnsibleAutomates (録画) `_" +msgstr "`Recorded AnsibleAutomates `_" #: ../../rst/network/getting_started/network_resources.rst:27 msgid "`Upcoming Ansible Events `_ page." @@ -2032,7 +2032,7 @@ msgstr "ロールの Ansible Galaxy ページには、使用可能なすべて #: ../../rst/network/getting_started/network_roles.rst:266 msgid "`Ansible Galaxy documentation `_" -msgstr "`Ansible Galaxy ドキュメント `_" +msgstr "`Ansible Galaxy documentation `_" #: ../../rst/network/getting_started/network_roles.rst:267 msgid "Ansible Galaxy user guide" @@ -2428,7 +2428,7 @@ msgid "``textfsm`` is a Python module which implements a template-based state ma msgstr "``textfsm`` は、半フォーマットのテキストを解析するためにテンプレートベースの状態マシンを実装する Python モジュールです。" #: ../../rst/network/user_guide/cli_parsing.rst:442 -msgid "The following sample``textfsm`` template is stored as ``templates/nxos_show_interface.textfsm``" +msgid "The following sample ``textfsm`` template is stored as ``templates/nxos_show_interface.textfsm``" msgstr "以下のサンプル ``textfsm`` テンプレートは、``templates/nxos_show_interface.textfsm`` の形式で保存されます。" #: ../../rst/network/user_guide/cli_parsing.rst:486 @@ -3040,7 +3040,7 @@ msgid "SSH key issues" msgstr "SSH キーの問題" #: ../../rst/network/user_guide/network_debug_troubleshooting.rst -#: ../../rst/network/user_guide/network_debug_troubleshooting.rst:443 +#: ../../rst/network/user_guide/network_debug_troubleshooting.rst:447 msgid "Timeout issues" msgstr "タイムアウトの問題" @@ -3053,7 +3053,7 @@ msgid "May actually be masking a authentication issue" msgstr "認証の問題を実際にマスクする可能性がある" #: ../../rst/network/user_guide/network_debug_troubleshooting.rst -#: ../../rst/network/user_guide/network_debug_troubleshooting.rst:604 +#: ../../rst/network/user_guide/network_debug_troubleshooting.rst:612 msgid "Playbook issues" msgstr "Playbook の問題" @@ -3074,13 +3074,13 @@ msgid "Enabling Networking logging and how to read the logfile" msgstr "ネットワークロギングの有効化とログファイルの読み取り方法" #: ../../rst/network/user_guide/network_debug_troubleshooting.rst:39 -#: ../../rst/network/user_guide/network_debug_troubleshooting.rst:98 -#: ../../rst/network/user_guide/network_debug_troubleshooting.rst:158 -#: ../../rst/network/user_guide/network_debug_troubleshooting.rst:201 -#: ../../rst/network/user_guide/network_debug_troubleshooting.rst:258 -#: ../../rst/network/user_guide/network_debug_troubleshooting.rst:296 -#: ../../rst/network/user_guide/network_debug_troubleshooting.rst:323 -#: ../../rst/network/user_guide/network_debug_troubleshooting.rst:430 +#: ../../rst/network/user_guide/network_debug_troubleshooting.rst:100 +#: ../../rst/network/user_guide/network_debug_troubleshooting.rst:160 +#: ../../rst/network/user_guide/network_debug_troubleshooting.rst:205 +#: ../../rst/network/user_guide/network_debug_troubleshooting.rst:262 +#: ../../rst/network/user_guide/network_debug_troubleshooting.rst:300 +#: ../../rst/network/user_guide/network_debug_troubleshooting.rst:327 +#: ../../rst/network/user_guide/network_debug_troubleshooting.rst:434 msgid "**Platforms:** Any" msgstr "**プラットフォーム:** 任意" @@ -3137,501 +3137,509 @@ msgid "If the log reports the port as ``None`` this means that the default port msgstr "ログでポートが ``None`` として報告される場合は、デフォルトのポートが使用されていることを意味します。今後の Ansible リリースでは、ポートが常にログに記録されるようにこのメッセージが改善されます。" #: ../../rst/network/user_guide/network_debug_troubleshooting.rst:90 -msgid "Because the log files are verbose, you can use grep to look for specific information. For example, once you have identified the ``pid`` from the ``creating new control socket for host`` line you can search for other connection log entries::" -msgstr "ログファイルは冗長であるため、grepを使用して特定の情報を検索できます。たとえば、``creating new control socket for host`` 行から ``pid`` を特定したら、他の接続ログエントリーを検索できます。" +msgid "Because the log files are verbose, you can use grep to look for specific information. For example, once you have identified the ``pid`` from the ``creating new control socket for host`` line you can search for other connection log entries:" +msgstr "ログファイルは冗長であるため、grep を使用して特定の情報を検索できます。たとえば、``creating new control socket for host`` 行から ``pid`` を特定したら、他の接続ログエントリーを検索できます。" -#: ../../rst/network/user_guide/network_debug_troubleshooting.rst:96 +#: ../../rst/network/user_guide/network_debug_troubleshooting.rst:98 msgid "Enabling Networking device interaction logging" msgstr "ネットワークデバイスの対話ロギングの有効化" -#: ../../rst/network/user_guide/network_debug_troubleshooting.rst:100 +#: ../../rst/network/user_guide/network_debug_troubleshooting.rst:102 msgid "Ansible includes logging of device interaction in the log file to help diagnose and troubleshoot issues regarding Ansible Networking modules. The messages are logged in the file pointed to by the ``log_path`` configuration option in the Ansible configuration file or by setting the :envvar:`ANSIBLE_LOG_PATH`." msgstr "Ansible には、Ansible ネットワークモジュールに関する問題の診断およびトラブルシューティングに役立つ、ログファイル内のデバイスの対話のログが含まれています。このメッセージは、Ansible 設定ファイルの ``log_path`` 設定オプションで指定されているファイルに記録されるか、:envvar:`ANSIBLE_LOG_PATH` を設定すると記録されます。" -#: ../../rst/network/user_guide/network_debug_troubleshooting.rst:105 +#: ../../rst/network/user_guide/network_debug_troubleshooting.rst:107 msgid "The device interaction messages consist of command executed on the target device and the returned response. Since this log data can contain sensitive information including passwords in plain text it is disabled by default. Additionally, in order to prevent accidental leakage of data, a warning will be shown on every task with this setting enabled, specifying which host has it enabled and where the data is being logged." msgstr "デバイスインタラクションメッセージは、ターゲットデバイス上で実行されたコマンドと返された応答で構成されます。このログデータには、パスワードなどの機密情報がプレーンテキストの形式で含まれる可能性があるため、デフォルトでは無効になっています。また、誤ってデータが漏洩しないように、この設定が有効になっているすべてのタスクに警告が表示され、有効になっているホストとデータが記録される場所が指定されます。" -#: ../../rst/network/user_guide/network_debug_troubleshooting.rst:110 +#: ../../rst/network/user_guide/network_debug_troubleshooting.rst:112 msgid "Be sure to fully understand the security implications of enabling this option. The device interaction logging can be enabled either globally by setting in configuration file or by setting environment or enabled on per task basis by passing a special variable to the task." msgstr "このオプションを有効にした場合のセキュリティーへの影響を完全に理解してください。デバイス対話ロギングは、設定ファイルでグローバルに設定するか、環境を設定して有効にするか、または特殊な変数をタスクに渡すことでタスクごとに有効にすることができます。" -#: ../../rst/network/user_guide/network_debug_troubleshooting.rst:112 +#: ../../rst/network/user_guide/network_debug_troubleshooting.rst:114 msgid "Before running ``ansible-playbook`` run the following commands to enable logging:" msgstr "``ansible-playbook`` を実行する前に、以下のコマンドを実行してロギングを有効にします。" -#: ../../rst/network/user_guide/network_debug_troubleshooting.rst:120 +#: ../../rst/network/user_guide/network_debug_troubleshooting.rst:122 msgid "Enable device interaction logging for a given task" msgstr "特定のタスクのデバイス対話ログを有効にします。" -#: ../../rst/network/user_guide/network_debug_troubleshooting.rst:132 -#: ../../rst/network/user_guide/network_debug_troubleshooting.rst:760 -#: ../../rst/network/user_guide/network_debug_troubleshooting.rst:827 +#: ../../rst/network/user_guide/network_debug_troubleshooting.rst:134 +#: ../../rst/network/user_guide/network_debug_troubleshooting.rst:768 +#: ../../rst/network/user_guide/network_debug_troubleshooting.rst:835 msgid "To make this a global setting, add the following to your ``ansible.cfg`` file:" msgstr "この設定をグローバルにするには、以下の設定を ``ansible.cfg`` ファイルに追加します。" -#: ../../rst/network/user_guide/network_debug_troubleshooting.rst:139 +#: ../../rst/network/user_guide/network_debug_troubleshooting.rst:141 msgid "or enable the environment variable `ANSIBLE_PERSISTENT_LOG_MESSAGES`:" msgstr "または、環境変数 `ANSIBLE_PERSISTENT_LOG_MESSAGES` を有効にします。" -#: ../../rst/network/user_guide/network_debug_troubleshooting.rst:146 +#: ../../rst/network/user_guide/network_debug_troubleshooting.rst:148 msgid "If the task is failing on connection initialization itself, you should enable this option globally. If an individual task is failing intermittently this option can be enabled for that task itself to find the root cause." msgstr "タスク自体が接続の初期化に失敗している場合は、このオプションをグローバルに有効にする必要があります。個々のタスクが断続的に失敗する場合は、そのタスク自体に対してこのオプションを有効にして、根本原因を見つけることができます。" -#: ../../rst/network/user_guide/network_debug_troubleshooting.rst:149 +#: ../../rst/network/user_guide/network_debug_troubleshooting.rst:151 msgid "After Ansible has finished running you can inspect the log file which has been created on the ansible-controller" msgstr "Ansible の実行が完了したら、ansible-controller で作成されたログファイルを確認できます。" -#: ../../rst/network/user_guide/network_debug_troubleshooting.rst:151 +#: ../../rst/network/user_guide/network_debug_troubleshooting.rst:153 msgid "Be sure to fully understand the security implications of enabling this option as it can log sensitive information in log file thus creating security vulnerability." msgstr "このオプションを有効にすると、ログファイルに機密情報が記録され、セキュリティ上の脆弱性が生じる可能性があるため、セキュリティー上の影響を十分に理解してください。" -#: ../../rst/network/user_guide/network_debug_troubleshooting.rst:156 +#: ../../rst/network/user_guide/network_debug_troubleshooting.rst:158 msgid "Isolating an error" msgstr "エラーの分離" -#: ../../rst/network/user_guide/network_debug_troubleshooting.rst:160 +#: ../../rst/network/user_guide/network_debug_troubleshooting.rst:162 msgid "As with any effort to troubleshoot it's important to simplify the test case as much as possible." msgstr "トラブルシューティングにおけるあらゆる作業と同様に、テストケースをできるだけ簡略化することが重要です。" -#: ../../rst/network/user_guide/network_debug_troubleshooting.rst:162 +#: ../../rst/network/user_guide/network_debug_troubleshooting.rst:164 msgid "For Ansible this can be done by ensuring you are only running against one remote device:" msgstr "Ansible の場合は、1 つのリモートデバイスに対してのみ実行するようにすることでこれを行うことができます。" -#: ../../rst/network/user_guide/network_debug_troubleshooting.rst:164 +#: ../../rst/network/user_guide/network_debug_troubleshooting.rst:166 msgid "Using ``ansible-playbook --limit switch1.example.net...``" msgstr "``ansible-playbook --limit switch1.example.net...`` の使用" -#: ../../rst/network/user_guide/network_debug_troubleshooting.rst:165 +#: ../../rst/network/user_guide/network_debug_troubleshooting.rst:167 msgid "Using an ad hoc ``ansible`` command" msgstr "``ansible`` アドホックコマンドの使用" -#: ../../rst/network/user_guide/network_debug_troubleshooting.rst:167 -msgid "`ad hoc` refers to running Ansible to perform some quick command using ``/usr/bin/ansible``, rather than the orchestration language, which is ``/usr/bin/ansible-playbook``. In this case we can ensure connectivity by attempting to execute a single command on the remote device::" -msgstr "`ad hoc` は、オーケストレーション言語 ``/usr/bin/ansible-playbook`` ではなく、``/usr/bin/ansible`` を使用して簡単なコマンドを実行するために Ansible を実行することを指します。この場合は、リモートデバイスで 1 つのコマンドを実行することで、接続を確認できます。" +#: ../../rst/network/user_guide/network_debug_troubleshooting.rst:169 +msgid "`ad hoc` refers to running Ansible to perform some quick command using ``/usr/bin/ansible``, rather than the orchestration language, which is ``/usr/bin/ansible-playbook``. In this case we can ensure connectivity by attempting to execute a single command on the remote device:" +msgstr "`ad hoc` は、オーケストレーション言語 ``/usr/bin/ansible-playbook`` ではなく、``/usr/bin/ansible`` を使用して簡単なコマンドを実行するために Ansible を実行することを指します。この場合は、リモートデバイスで 1 つのコマンドの実行を試みることで、接続を確認できます。" -#: ../../rst/network/user_guide/network_debug_troubleshooting.rst:171 +#: ../../rst/network/user_guide/network_debug_troubleshooting.rst:175 msgid "In the above example, we:" msgstr "上記の例では、以下を行います。" -#: ../../rst/network/user_guide/network_debug_troubleshooting.rst:173 +#: ../../rst/network/user_guide/network_debug_troubleshooting.rst:177 msgid "connect to ``switch1.example.net`` specified in the inventory file ``inventory``" msgstr "インベントリーファイル ``inventory`` に指定された ``switch1.example.net`` に接続します。" -#: ../../rst/network/user_guide/network_debug_troubleshooting.rst:174 +#: ../../rst/network/user_guide/network_debug_troubleshooting.rst:178 msgid "use the module ``arista.eos.eos_command``" msgstr "``arista.eos.eos_command`` モジュールの使用" -#: ../../rst/network/user_guide/network_debug_troubleshooting.rst:175 +#: ../../rst/network/user_guide/network_debug_troubleshooting.rst:179 msgid "run the command ``?``" msgstr "``?`` コマンドの実行" -#: ../../rst/network/user_guide/network_debug_troubleshooting.rst:176 +#: ../../rst/network/user_guide/network_debug_troubleshooting.rst:180 msgid "connect using the username ``admin``" msgstr "ユーザー名 ``admin`` を使用して接続" -#: ../../rst/network/user_guide/network_debug_troubleshooting.rst:177 +#: ../../rst/network/user_guide/network_debug_troubleshooting.rst:181 msgid "inform the ``ansible`` command to prompt for the SSH password by specifying ``-k``" msgstr "``-k`` を指定して SSH パスワードを要求するように、``ansible`` コマンドに通知" -#: ../../rst/network/user_guide/network_debug_troubleshooting.rst:179 +#: ../../rst/network/user_guide/network_debug_troubleshooting.rst:183 msgid "If you have SSH keys configured correctly, you don't need to specify the ``-k`` parameter." msgstr "SSH キーが正しく設定されている場合は、``-k`` パラメーターを指定する必要はありません。" -#: ../../rst/network/user_guide/network_debug_troubleshooting.rst:181 +#: ../../rst/network/user_guide/network_debug_troubleshooting.rst:185 msgid "If the connection still fails you can combine it with the enable_network_logging parameter. For example:" msgstr "それでも接続が失敗した場合は、これを enable_network_logging パラメーターと組み合わせることができます。以下に例を示します。" -#: ../../rst/network/user_guide/network_debug_troubleshooting.rst:192 +#: ../../rst/network/user_guide/network_debug_troubleshooting.rst:196 msgid "Then review the log file and find the relevant error message in the rest of this document." msgstr "次に、ログファイルを確認し、このドキュメントの残りの部分で、関連するエラーメッセージを見つけます。" -#: ../../rst/network/user_guide/network_debug_troubleshooting.rst:199 +#: ../../rst/network/user_guide/network_debug_troubleshooting.rst:203 msgid "Troubleshooting socket path issues" msgstr "ソケットパスの問題のトラブルシューティング" -#: ../../rst/network/user_guide/network_debug_troubleshooting.rst:203 +#: ../../rst/network/user_guide/network_debug_troubleshooting.rst:207 msgid "The ``Socket path does not exist or cannot be found`` and ``Unable to connect to socket`` messages indicate that the socket used to communicate with the remote network device is unavailable or does not exist." msgstr "``Socket path does not exist or cannot be found`` メッセージおよび ``Unable to connect to socket``メッセージは、リモートネットワークデバイスとの通信に使用されるソケットが利用できないか、存在しないことを示しています。" -#: ../../rst/network/user_guide/network_debug_troubleshooting.rst:218 -#: ../../rst/network/user_guide/network_debug_troubleshooting.rst:243 -#: ../../rst/network/user_guide/network_debug_troubleshooting.rst:380 +#: ../../rst/network/user_guide/network_debug_troubleshooting.rst:222 +#: ../../rst/network/user_guide/network_debug_troubleshooting.rst:247 +#: ../../rst/network/user_guide/network_debug_troubleshooting.rst:384 msgid "or" msgstr "または" -#: ../../rst/network/user_guide/network_debug_troubleshooting.rst:231 -#: ../../rst/network/user_guide/network_debug_troubleshooting.rst:285 -#: ../../rst/network/user_guide/network_debug_troubleshooting.rst:311 -#: ../../rst/network/user_guide/network_debug_troubleshooting.rst:337 -#: ../../rst/network/user_guide/network_debug_troubleshooting.rst:371 -#: ../../rst/network/user_guide/network_debug_troubleshooting.rst:423 -#: ../../rst/network/user_guide/network_debug_troubleshooting.rst:454 -#: ../../rst/network/user_guide/network_debug_troubleshooting.rst:480 -#: ../../rst/network/user_guide/network_debug_troubleshooting.rst:506 -#: ../../rst/network/user_guide/network_debug_troubleshooting.rst:517 -#: ../../rst/network/user_guide/network_debug_troubleshooting.rst:543 -#: ../../rst/network/user_guide/network_debug_troubleshooting.rst:627 -#: ../../rst/network/user_guide/network_debug_troubleshooting.rst:799 +#: ../../rst/network/user_guide/network_debug_troubleshooting.rst:235 +#: ../../rst/network/user_guide/network_debug_troubleshooting.rst:289 +#: ../../rst/network/user_guide/network_debug_troubleshooting.rst:315 +#: ../../rst/network/user_guide/network_debug_troubleshooting.rst:341 +#: ../../rst/network/user_guide/network_debug_troubleshooting.rst:375 +#: ../../rst/network/user_guide/network_debug_troubleshooting.rst:427 +#: ../../rst/network/user_guide/network_debug_troubleshooting.rst:458 +#: ../../rst/network/user_guide/network_debug_troubleshooting.rst:484 +#: ../../rst/network/user_guide/network_debug_troubleshooting.rst:510 +#: ../../rst/network/user_guide/network_debug_troubleshooting.rst:523 +#: ../../rst/network/user_guide/network_debug_troubleshooting.rst:551 +#: ../../rst/network/user_guide/network_debug_troubleshooting.rst:635 +#: ../../rst/network/user_guide/network_debug_troubleshooting.rst:807 msgid "Suggestions to resolve:" msgstr "解決するためのヒント:" -#: ../../rst/network/user_guide/network_debug_troubleshooting.rst:233 +#: ../../rst/network/user_guide/network_debug_troubleshooting.rst:237 msgid "Verify that you have write access to the socket path described in the error message." msgstr "エラーメッセージに記載されているソケットパスへの書き込み権限があることを確認します。" -#: ../../rst/network/user_guide/network_debug_troubleshooting.rst:235 +#: ../../rst/network/user_guide/network_debug_troubleshooting.rst:239 msgid "Follow the steps detailed in :ref:`enable network logging `." msgstr "「:ref:`ネットワークロギングの有効化 `」記載される手順に従ってください。" -#: ../../rst/network/user_guide/network_debug_troubleshooting.rst:237 +#: ../../rst/network/user_guide/network_debug_troubleshooting.rst:241 msgid "If the identified error message from the log file is:" msgstr "ログファイルから特定されたエラーメッセージが以下の場合は、" -#: ../../rst/network/user_guide/network_debug_troubleshooting.rst:249 +#: ../../rst/network/user_guide/network_debug_troubleshooting.rst:253 msgid "Follow the steps detailed in :ref:`timeout issues `" msgstr "「:ref:`タイムアウトの問題 `」に記載の手順に従ってください。" -#: ../../rst/network/user_guide/network_debug_troubleshooting.rst:255 +#: ../../rst/network/user_guide/network_debug_troubleshooting.rst:259 msgid "Category \"Unable to open shell\"" msgstr "Category \"Unable to open shell\"" -#: ../../rst/network/user_guide/network_debug_troubleshooting.rst:260 +#: ../../rst/network/user_guide/network_debug_troubleshooting.rst:264 msgid "The ``unable to open shell`` message means that the ``ansible-connection`` daemon has not been able to successfully talk to the remote network device. This generally means that there is an authentication issue. It is a \"catch all\" message, meaning you need to enable :ref:`logging ` to find the underlying issues." msgstr "``unable to open shell`` メッセージは、``ansible-connection`` デーモンがリモートネットワークデバイスと正常に通信できなかったことを示します。これは通常、認証の問題があることを意味します。これは「catch all (全て取得する)」メッセージです。つまり、:ref:`logging ` を有効にして、根本的な問題を検出する必要があります。" -#: ../../rst/network/user_guide/network_debug_troubleshooting.rst:272 +#: ../../rst/network/user_guide/network_debug_troubleshooting.rst:276 msgid "or:" msgstr "または" -#: ../../rst/network/user_guide/network_debug_troubleshooting.rst:287 +#: ../../rst/network/user_guide/network_debug_troubleshooting.rst:291 msgid "Follow the steps detailed in enable_network_logging_." msgstr "enable_network_logging_ に記載の手順に従います。" -#: ../../rst/network/user_guide/network_debug_troubleshooting.rst:289 +#: ../../rst/network/user_guide/network_debug_troubleshooting.rst:293 msgid "Once you've identified the error message from the log file, the specific solution can be found in the rest of this document." msgstr "ログファイルからエラーメッセージが特定できたら、特定の解決方法は、本ガイドのその他のセクションを参照してください。" -#: ../../rst/network/user_guide/network_debug_troubleshooting.rst:294 +#: ../../rst/network/user_guide/network_debug_troubleshooting.rst:298 msgid "Error: \"[Errno -2] Name or service not known\"" msgstr "Error: \"[Errno -2] Name or service not known\"" -#: ../../rst/network/user_guide/network_debug_troubleshooting.rst:298 +#: ../../rst/network/user_guide/network_debug_troubleshooting.rst:302 msgid "Indicates that the remote host you are trying to connect to can not be reached" msgstr "接続しようとしているリモートホストに到達できないことを示します。" -#: ../../rst/network/user_guide/network_debug_troubleshooting.rst:313 +#: ../../rst/network/user_guide/network_debug_troubleshooting.rst:317 msgid "If you are using the ``provider:`` options ensure that its suboption ``host:`` is set correctly." msgstr "``provider:`` オプションを使用している場合は、サブオプション ``host:`` が正しく設定されていることを確認します。" -#: ../../rst/network/user_guide/network_debug_troubleshooting.rst:314 +#: ../../rst/network/user_guide/network_debug_troubleshooting.rst:318 msgid "If you are not using ``provider:`` nor top-level arguments ensure your inventory file is correct." msgstr "``provider:`` またはトップレベルの引数を使用しない場合には、インベントリーファイルが正しいことを確認してください。" -#: ../../rst/network/user_guide/network_debug_troubleshooting.rst:321 +#: ../../rst/network/user_guide/network_debug_troubleshooting.rst:325 msgid "Error: \"Authentication failed\"" msgstr "Error: \"Authentication failed\"" -#: ../../rst/network/user_guide/network_debug_troubleshooting.rst:325 -msgid "Occurs if the credentials (username, passwords, or ssh keys) passed to ``ansible-connection`` (via ``ansible`` or ``ansible-playbook``) can not be used to connect to the remote device." +#: ../../rst/network/user_guide/network_debug_troubleshooting.rst:329 +msgid "Occurs if the credentials (username, passwords, or ssh keys) passed to ``ansible-connection`` (through ``ansible`` or ``ansible-playbook``) can not be used to connect to the remote device." msgstr "(``ansible`` または ``ansible-playbook`` を使用して) ``ansible-connection`` に渡される認証情報 (ユーザー名、パスワード、または ssh キー) を使用してリモートデバイスに接続できない場合に発生します。" -#: ../../rst/network/user_guide/network_debug_troubleshooting.rst:339 -msgid "If you are specifying credentials via ``password:`` (either directly or via ``provider:``) or the environment variable `ANSIBLE_NET_PASSWORD` it is possible that ``paramiko`` (the Python SSH library that Ansible uses) is using ssh keys, and therefore the credentials you are specifying are being ignored. To find out if this is the case, disable \"look for keys\". This can be done like this:" +#: ../../rst/network/user_guide/network_debug_troubleshooting.rst:343 +msgid "If you are specifying credentials through ``password:`` (either directly or through ``provider:``) or the environment variable `ANSIBLE_NET_PASSWORD` it is possible that ``paramiko`` (the Python SSH library that Ansible uses) is using ssh keys, and therefore the credentials you are specifying are being ignored. To find out if this is the case, disable \"look for keys\". This can be done like this:" msgstr "(直接または ``provider:`` を使用して) ``password:`` で認証情報を指定する場合や、環境変数 `ANSIBLE_NET_PASSWORD` を指定する場合は、``paramiko`` (Ansible が使用する Python SSH ライブラリー) が ssh キーを使用している可能性があるため、指定する認証情報が無効になります。これを確認するには、「look for keys」を無効にします。これは次のように行います。" -#: ../../rst/network/user_guide/network_debug_troubleshooting.rst:345 -#: ../../rst/network/user_guide/network_debug_troubleshooting.rst:462 -#: ../../rst/network/user_guide/network_debug_troubleshooting.rst:489 -#: ../../rst/network/user_guide/network_debug_troubleshooting.rst:554 +#: ../../rst/network/user_guide/network_debug_troubleshooting.rst:349 +#: ../../rst/network/user_guide/network_debug_troubleshooting.rst:466 +#: ../../rst/network/user_guide/network_debug_troubleshooting.rst:493 +#: ../../rst/network/user_guide/network_debug_troubleshooting.rst:562 msgid "To make this a permanent change, add the following to your ``ansible.cfg`` file:" msgstr "これを永続的に行うには、以下を ``ansible.cfg`` ファイルに追加します。" -#: ../../rst/network/user_guide/network_debug_troubleshooting.rst:354 +#: ../../rst/network/user_guide/network_debug_troubleshooting.rst:358 msgid "Error: \"connecting to host returned an error\" or \"Bad address\"" msgstr "Error: \"connecting to host returned an error\" or \"Bad address\"" -#: ../../rst/network/user_guide/network_debug_troubleshooting.rst:356 +#: ../../rst/network/user_guide/network_debug_troubleshooting.rst:360 msgid "This may occur if the SSH fingerprint hasn't been added to Paramiko's (the Python SSH library) know hosts file." msgstr "これは、SSH フィンガープリントが Paramiko の既知のホストファイル (Python SSH ライブラリー) に追加されていない場合に発生する可能性があります。" -#: ../../rst/network/user_guide/network_debug_troubleshooting.rst:358 +#: ../../rst/network/user_guide/network_debug_troubleshooting.rst:362 msgid "When using persistent connections with Paramiko, the connection runs in a background process. If the host doesn't already have a valid SSH key, by default Ansible will prompt to add the host key. This will cause connections running in background processes to fail." msgstr "Paramiko で永続的な接続を使用する場合、接続はバックグラウンドプロセスで実行します。ホストが有効な SSH キーを持っていない場合、Ansible はデフォルトでホストキーを追加するようプロンプトを出します。これにより、バックグラウンドプロセスで実行中の接続が失敗します。" -#: ../../rst/network/user_guide/network_debug_troubleshooting.rst:373 +#: ../../rst/network/user_guide/network_debug_troubleshooting.rst:377 msgid "Use ``ssh-keyscan`` to pre-populate the known_hosts. You need to ensure the keys are correct." msgstr "``ssh-keyscan`` を使用して known_hosts を事前に設定します。キーが正しいことを確認してください。" -#: ../../rst/network/user_guide/network_debug_troubleshooting.rst:382 +#: ../../rst/network/user_guide/network_debug_troubleshooting.rst:386 msgid "You can tell Ansible to automatically accept the keys" msgstr "鍵を自動的に受け入れるように Ansible に設定できます。" -#: ../../rst/network/user_guide/network_debug_troubleshooting.rst:384 +#: ../../rst/network/user_guide/network_debug_troubleshooting.rst:388 msgid "Environment variable method:" msgstr "環境変数メソッド:" -#: ../../rst/network/user_guide/network_debug_troubleshooting.rst:391 +#: ../../rst/network/user_guide/network_debug_troubleshooting.rst:395 msgid "``ansible.cfg`` method:" msgstr "``ansible.cfg`` メソッド:" -#: ../../rst/network/user_guide/network_debug_troubleshooting.rst:393 +#: ../../rst/network/user_guide/network_debug_troubleshooting.rst:397 msgid "ansible.cfg" msgstr "ansible.cfg" -#: ../../rst/network/user_guide/network_debug_troubleshooting.rst:407 +#: ../../rst/network/user_guide/network_debug_troubleshooting.rst:411 msgid "Error: \"No authentication methods available\"" msgstr "Error: \"No authentication methods available\"" -#: ../../rst/network/user_guide/network_debug_troubleshooting.rst:425 +#: ../../rst/network/user_guide/network_debug_troubleshooting.rst:429 msgid "No password or SSH key supplied" msgstr "パスワードまたは SSH キーが指定されていない" -#: ../../rst/network/user_guide/network_debug_troubleshooting.rst:428 +#: ../../rst/network/user_guide/network_debug_troubleshooting.rst:432 msgid "Clearing Out Persistent Connections" msgstr "永続的な接続を解除" -#: ../../rst/network/user_guide/network_debug_troubleshooting.rst:432 +#: ../../rst/network/user_guide/network_debug_troubleshooting.rst:436 msgid "In Ansible 2.3, persistent connection sockets are stored in ``~/.ansible/pc`` for all network devices. When an Ansible playbook runs, the persistent socket connection is displayed when verbose output is specified." msgstr "Ansible 2.3 では、すべてのネットワークデバイスの永続的な接続ソケットが ``~/.ansible/pc`` に保存されます。Ansible Playbook が実行すると、詳細な出力が指定されている場合に永続的なソケット接続が表示されます。" -#: ../../rst/network/user_guide/network_debug_troubleshooting.rst:434 +#: ../../rst/network/user_guide/network_debug_troubleshooting.rst:438 msgid "`` socket_path: /home/fred/.ansible/pc/f64ddfa760``" msgstr "`` socket_path: /home/fred/.ansible/pc/f64ddfa760``" -#: ../../rst/network/user_guide/network_debug_troubleshooting.rst:436 +#: ../../rst/network/user_guide/network_debug_troubleshooting.rst:440 msgid "To clear out a persistent connection before it times out (the default timeout is 30 seconds of inactivity), simple delete the socket file." msgstr "タイムアウトする前に永続的な接続 (デフォルトのタイムアウトが 30 秒の非アクティブタイムアウト) を削除するには、ソケットファイルを簡単な削除します。" -#: ../../rst/network/user_guide/network_debug_troubleshooting.rst:446 +#: ../../rst/network/user_guide/network_debug_troubleshooting.rst:450 msgid "Persistent connection idle timeout" msgstr "永続的な接続アイドルタイムアウト" -#: ../../rst/network/user_guide/network_debug_troubleshooting.rst:448 +#: ../../rst/network/user_guide/network_debug_troubleshooting.rst:452 msgid "By default, ``ANSIBLE_PERSISTENT_CONNECT_TIMEOUT`` is set to 30 (seconds). You may see the following error if this value is too low:" msgstr "デフォルトでは、``ANSIBLE_PERSISTENT_CONNECT_TIMEOUT`` は 30 (秒) に設定されます。この値が低すぎると、以下のエラーが表示される可能性があります。" -#: ../../rst/network/user_guide/network_debug_troubleshooting.rst:456 +#: ../../rst/network/user_guide/network_debug_troubleshooting.rst:460 msgid "Increase value of persistent connection idle timeout:" msgstr "永続的な接続アイドルタイムアウトの値を大きくします。" -#: ../../rst/network/user_guide/network_debug_troubleshooting.rst:470 +#: ../../rst/network/user_guide/network_debug_troubleshooting.rst:474 msgid "Command timeout" msgstr "コマンドタイムアウト" -#: ../../rst/network/user_guide/network_debug_troubleshooting.rst:472 +#: ../../rst/network/user_guide/network_debug_troubleshooting.rst:476 msgid "By default, ``ANSIBLE_PERSISTENT_COMMAND_TIMEOUT`` is set to 30 (seconds). Prior versions of Ansible had this value set to 10 seconds by default. You may see the following error if this value is too low:" msgstr "デフォルトでは、``ANSIBLE_PERSISTENT_COMMAND_TIMEOUT`` は 30 (秒) に設定されます。Ansible の以前のバージョンでは、デフォルトでこの値を 10 秒に設定されています。この値が低すぎると、以下のエラーが発生する可能性があります。" -#: ../../rst/network/user_guide/network_debug_troubleshooting.rst:482 +#: ../../rst/network/user_guide/network_debug_troubleshooting.rst:486 msgid "Option 1 (Global command timeout setting): Increase value of command timeout in configuration file or by setting environment variable." msgstr "オプション 1 (グローバルコマンドのタイムアウト設定): 設定ファイル、または環境変数を設定してコマンドタイムアウトの値を増やします。" -#: ../../rst/network/user_guide/network_debug_troubleshooting.rst:496 +#: ../../rst/network/user_guide/network_debug_troubleshooting.rst:500 msgid "Option 2 (Per task command timeout setting): Increase command timeout per task basis. All network modules support a timeout value that can be set on a per task basis. The timeout value controls the amount of time in seconds before the task will fail if the command has not returned." msgstr "オプション 2 (タスクごとのコマンドのタイムアウト設定): タスクごとにコマンドタイムアウトを増やします。すべてのネットワークモジュールは、タスクごとに設定できるタイムアウト値をサポートしています。タイムアウト値は、コマンドが返されなかった場合にタスクが失敗するまでの時間を秒単位で制御します。" -#: ../../rst/network/user_guide/network_debug_troubleshooting.rst:502 +#: ../../rst/network/user_guide/network_debug_troubleshooting.rst:506 msgid "For local connection type:" msgstr "ローカル接続タイプの場合:" -#: ../../rst/network/user_guide/network_debug_troubleshooting.rst:527 +#: ../../rst/network/user_guide/network_debug_troubleshooting.rst:512 +msgid "Some modules support a ``timeout`` option, which is different to the ``timeout`` keyword for tasks." +msgstr "一部のモジュールは、``timeout`` オプションをサポートします。このオプションは、タスクの ``timeout`` キーワードとは異なります。" + +#: ../../rst/network/user_guide/network_debug_troubleshooting.rst:525 +msgid "If the module does not support the ``timeout`` option directly, most networking connection plugins can enable similar functionality with the ``ansible_command_timeout`` variable." +msgstr "モジュールが ``timeout`` オプションを直接使用する場合には、ほとんどのネットワーク接続プラグインで、``ansible_command_timeout`` 変数を使用して同様の機能を有効化できます。" + +#: ../../rst/network/user_guide/network_debug_troubleshooting.rst:535 msgid "Some operations take longer than the default 30 seconds to complete. One good example is saving the current running config on IOS devices to startup config. In this case, changing the timeout value from the default 30 seconds to 60 seconds will prevent the task from failing before the command completes successfully." msgstr "一部の操作は、完了までにデフォルトの 30 秒より長くかかります。たとえば、IOS デバイス上の現在の実行設定をスタートアップ設定に保存します。この場合は、タイムアウト値をデフォルトの 30 秒から 60 秒に変更すると、コマンドが正常に完了する前にタスクが失敗するのを防ぐことができます。" -#: ../../rst/network/user_guide/network_debug_troubleshooting.rst:534 +#: ../../rst/network/user_guide/network_debug_troubleshooting.rst:542 msgid "Persistent connection retry timeout" msgstr "永続的な接続の再試行タイムアウト" -#: ../../rst/network/user_guide/network_debug_troubleshooting.rst:536 +#: ../../rst/network/user_guide/network_debug_troubleshooting.rst:544 msgid "By default, ``ANSIBLE_PERSISTENT_CONNECT_RETRY_TIMEOUT`` is set to 15 (seconds). You may see the following error if this value is too low:" msgstr "デフォルトでは、``ANSIBLE_PERSISTENT_CONNECT_RETRY_TIMEOUT`` は 15 (秒) に設定されます。この値が低すぎると、以下のエラーが表示される可能性があります。" -#: ../../rst/network/user_guide/network_debug_troubleshooting.rst:545 +#: ../../rst/network/user_guide/network_debug_troubleshooting.rst:553 msgid "Increase the value of the persistent connection idle timeout. Note: This value should be greater than the SSH timeout value (the timeout value under the defaults section in the configuration file) and less than the value of the persistent connection idle timeout (connect_timeout)." msgstr "持続的接続アイドルタイムアウトの値を増やします。注意: この値は、SSH タイムアウト値 (設定ファイルのデフォルトセクションの下のタイムアウト値) より大きく、永続的接続アイドルタイムアウト値 (connect_timeout) より小さくする必要があります。" -#: ../../rst/network/user_guide/network_debug_troubleshooting.rst:563 +#: ../../rst/network/user_guide/network_debug_troubleshooting.rst:571 msgid "Timeout issue due to platform specific login menu with ``network_cli`` connection type" msgstr "``network_cli`` 接続タイプを持つプラットフォーム固有のログインメニューによるタイムアウトの問題" -#: ../../rst/network/user_guide/network_debug_troubleshooting.rst:565 +#: ../../rst/network/user_guide/network_debug_troubleshooting.rst:573 msgid "In Ansible 2.9 and later, the network_cli connection plugin configuration options are added to handle the platform specific login menu. These options can be set as group/host or tasks variables." msgstr "Ansible 2.9 以降では、プラットフォーム固有のログインメニューを処理するために network_cli connection プラグイン設定オプションが追加されました。これらのオプションは、グループ/ホストまたはタスク変数として設定できます。" -#: ../../rst/network/user_guide/network_debug_troubleshooting.rst:569 +#: ../../rst/network/user_guide/network_debug_troubleshooting.rst:577 msgid "Example: Handle single login menu prompts with host variables" msgstr "例: ホスト変数を使用した 1 つのログインメニュープロンプトを処理します。" -#: ../../rst/network/user_guide/network_debug_troubleshooting.rst:580 +#: ../../rst/network/user_guide/network_debug_troubleshooting.rst:588 msgid "Example: Handle remote host multiple login menu prompts with host variables" msgstr "例: ホスト変数を使用したリモートホストの複数のログインメニュープロンプトを処理します。" -#: ../../rst/network/user_guide/network_debug_troubleshooting.rst:594 +#: ../../rst/network/user_guide/network_debug_troubleshooting.rst:602 msgid "To handle multiple login menu prompts:" msgstr "複数のログインメニュープロンプトを処理するには、以下を行います。" -#: ../../rst/network/user_guide/network_debug_troubleshooting.rst:596 +#: ../../rst/network/user_guide/network_debug_troubleshooting.rst:604 msgid "The values of ``ansible_terminal_initial_prompt`` and ``ansible_terminal_initial_answer`` should be a list." msgstr "``ansible_terminal_initial_prompt`` および ``ansible_terminal_initial_answer`` の値は一覧形式である必要があります。" -#: ../../rst/network/user_guide/network_debug_troubleshooting.rst:597 +#: ../../rst/network/user_guide/network_debug_troubleshooting.rst:605 msgid "The prompt sequence should match the answer sequence." msgstr "プロンプトシーケンスは、応答シーケンスに一致する必要があります。" -#: ../../rst/network/user_guide/network_debug_troubleshooting.rst:598 +#: ../../rst/network/user_guide/network_debug_troubleshooting.rst:606 msgid "The value of ``ansible_terminal_initial_prompt_checkall`` should be set to ``True``." msgstr "``ansible_terminal_initial_prompt_checkall`` の値は ``True`` に設定する必要があります。" -#: ../../rst/network/user_guide/network_debug_troubleshooting.rst:600 +#: ../../rst/network/user_guide/network_debug_troubleshooting.rst:608 msgid "If all the prompts in sequence are not received from remote host at the time connection initialization it will result in a timeout." msgstr "接続の初期化時に、リモートホストからシーケンス内のすべてのプロンプトを受け取らないと、タイムアウトが生じます。" -#: ../../rst/network/user_guide/network_debug_troubleshooting.rst:606 +#: ../../rst/network/user_guide/network_debug_troubleshooting.rst:614 msgid "This section details issues are caused by issues with the Playbook itself." msgstr "本セクションでは、Playbook 自体の問題が原因で発生する問題を詳しく説明します。" -#: ../../rst/network/user_guide/network_debug_troubleshooting.rst:609 +#: ../../rst/network/user_guide/network_debug_troubleshooting.rst:617 msgid "Error: \"Unable to enter configuration mode\"" msgstr "Error: \"Unable to enter configuration mode\"" -#: ../../rst/network/user_guide/network_debug_troubleshooting.rst:611 +#: ../../rst/network/user_guide/network_debug_troubleshooting.rst:619 msgid "**Platforms:** Arista EOS and Cisco IOS" msgstr "**プラットフォーム:** Arista EOS および Cisco IOS" -#: ../../rst/network/user_guide/network_debug_troubleshooting.rst:613 +#: ../../rst/network/user_guide/network_debug_troubleshooting.rst:621 msgid "This occurs when you attempt to run a task that requires privileged mode in a user mode shell." msgstr "これは、ユーザーモードシェルで特権モードを必要とするタスクを実行しようとすると発生します。" -#: ../../rst/network/user_guide/network_debug_troubleshooting.rst:629 +#: ../../rst/network/user_guide/network_debug_troubleshooting.rst:637 msgid "Use ``connection: ansible.netcommon.network_cli`` and ``become: yes``" msgstr "``connection: ansible.netcommon.network_cli`` および ``become: yes`` の使用" -#: ../../rst/network/user_guide/network_debug_troubleshooting.rst:633 +#: ../../rst/network/user_guide/network_debug_troubleshooting.rst:641 msgid "Proxy Issues" msgstr "プロキシーの問題" -#: ../../rst/network/user_guide/network_debug_troubleshooting.rst:638 +#: ../../rst/network/user_guide/network_debug_troubleshooting.rst:646 msgid "delegate_to vs ProxyCommand" msgstr "delegate_to 対 ProxyCommand" -#: ../../rst/network/user_guide/network_debug_troubleshooting.rst:640 +#: ../../rst/network/user_guide/network_debug_troubleshooting.rst:648 msgid "In order to use a bastion or intermediate jump host to connect to network devices over ``cli`` transport, network modules support the use of ``ProxyCommand``." msgstr "bastion または中間ジャンプホストを使用して ``cli`` トランスポートでネットワークデバイスに接続するために、ネットワークモジュールは ``ProxyCommand`` の使用に対応します。" -#: ../../rst/network/user_guide/network_debug_troubleshooting.rst:643 +#: ../../rst/network/user_guide/network_debug_troubleshooting.rst:651 msgid "To use ``ProxyCommand``, configure the proxy settings in the Ansible inventory file to specify the proxy host." msgstr "``ProxyCommand`` を使用するには、Ansible インベントリーファイルでプロキシー設定を設定して、プロキシーホストを指定します。" -#: ../../rst/network/user_guide/network_debug_troubleshooting.rst:656 +#: ../../rst/network/user_guide/network_debug_troubleshooting.rst:664 msgid "With the configuration above, simply build and run the playbook as normal with no additional changes necessary. The network module will now connect to the network device by first connecting to the host specified in ``ansible_ssh_common_args``, which is ``bastion01`` in the above example." msgstr "上記の設定では、追加の変更を必要とせずに、通常どおり Playbook をビルドして実行します。ネットワークモジュールは、最初に ``ansible_ssh_common_args`` で指定したホスト (上記の例は ``bastion01``) に接続して、ネットワークデバイスに接続します。" -#: ../../rst/network/user_guide/network_debug_troubleshooting.rst:661 +#: ../../rst/network/user_guide/network_debug_troubleshooting.rst:669 msgid "You can also set the proxy target for all hosts by using environment variables." msgstr "環境変数を使用して、すべてのホストのプロキシーターゲットを設定することもできます。" -#: ../../rst/network/user_guide/network_debug_troubleshooting.rst:668 +#: ../../rst/network/user_guide/network_debug_troubleshooting.rst:676 msgid "Using bastion/jump host with netconf connection" msgstr "netconf 接続での bastion/ジャンプホストの使用" -#: ../../rst/network/user_guide/network_debug_troubleshooting.rst:671 +#: ../../rst/network/user_guide/network_debug_troubleshooting.rst:679 msgid "Enabling jump host setting" msgstr "ジャンプホスト設定の有効化" -#: ../../rst/network/user_guide/network_debug_troubleshooting.rst:677 +#: ../../rst/network/user_guide/network_debug_troubleshooting.rst:685 msgid "Bastion/jump host with netconf connection can be enabled by:" msgstr "netconf 接続を持つ bastion/ジャンプホストは、以下で有効にできます。" -#: ../../rst/network/user_guide/network_debug_troubleshooting.rst:675 +#: ../../rst/network/user_guide/network_debug_troubleshooting.rst:683 msgid "Setting Ansible variable ``ansible_netconf_ssh_config`` either to ``True`` or custom ssh config file path" msgstr "Ansible 変数 ``ansible_netconf_ssh_config`` を ``True`` またはカスタムの ssh 設定ファイルパスに設定" -#: ../../rst/network/user_guide/network_debug_troubleshooting.rst:676 +#: ../../rst/network/user_guide/network_debug_troubleshooting.rst:684 msgid "Setting environment variable ``ANSIBLE_NETCONF_SSH_CONFIG`` to ``True`` or custom ssh config file path" msgstr "環境変数 ``ANSIBLE_NETCONF_SSH_CONFIG`` を ``True`` またはカスタムの ssh 設定ファイルパスに設定" -#: ../../rst/network/user_guide/network_debug_troubleshooting.rst:677 +#: ../../rst/network/user_guide/network_debug_troubleshooting.rst:685 msgid "Setting ``ssh_config = 1`` or ``ssh_config = `` under ``netconf_connection`` section" msgstr "``ssh_config = 1`` セクションの下に ``ssh_config = `` または ``netconf_connection`` の設定" -#: ../../rst/network/user_guide/network_debug_troubleshooting.rst:679 +#: ../../rst/network/user_guide/network_debug_troubleshooting.rst:687 msgid "If the configuration variable is set to 1 the proxycommand and other ssh variables are read from default ssh config file (~/.ssh/config)." msgstr "設定変数が 1 に設定されている場合、proxycommand およびその他の ssh 変数はデフォルトの ssh 設定ファイル (~/.ssh/config) から読み込まれます。" -#: ../../rst/network/user_guide/network_debug_troubleshooting.rst:682 +#: ../../rst/network/user_guide/network_debug_troubleshooting.rst:690 msgid "If the configuration variable is set to file path the proxycommand and other ssh variables are read from the given custom ssh file path" msgstr "設定変数がファイルパスに設定されていると、proxycommand およびその他の ssh 変数は指定のカスタム ssh ファイルパスから読み込まれます。" -#: ../../rst/network/user_guide/network_debug_troubleshooting.rst:686 +#: ../../rst/network/user_guide/network_debug_troubleshooting.rst:694 msgid "Example ssh config file (~/.ssh/config)" msgstr "ssh 設定ファイルの例 (~/.ssh/config)" -#: ../../rst/network/user_guide/network_debug_troubleshooting.rst:713 +#: ../../rst/network/user_guide/network_debug_troubleshooting.rst:721 msgid "Example Ansible inventory file" msgstr "Ansible インベントリーファイルの例" -#: ../../rst/network/user_guide/network_debug_troubleshooting.rst:727 -msgid "Using ``ProxyCommand`` with passwords via variables" +#: ../../rst/network/user_guide/network_debug_troubleshooting.rst:735 +msgid "Using ``ProxyCommand`` with passwords through variables" msgstr "変数を介したパスワードでの ``ProxyCommand`` の使用" -#: ../../rst/network/user_guide/network_debug_troubleshooting.rst:729 -msgid "By design, SSH doesn't support providing passwords via environment variables. This is done to prevent secrets from leaking out, for example in ``ps`` output." -msgstr "設計上、SSH は環境変数経由でパスワードの提供をサポートしません。これは、``ps`` の出力など、シークレットがリークしないようにします。" +#: ../../rst/network/user_guide/network_debug_troubleshooting.rst:737 +msgid "By design, SSH doesn't support providing passwords through environment variables. This is done to prevent secrets from leaking out, for example in ``ps`` output." +msgstr "設計上、SSH は環境変数経由でのパスワードの提供をサポートしません。これは、``ps`` の出力などに、シークレットがリークすることを防ぐためです。" -#: ../../rst/network/user_guide/network_debug_troubleshooting.rst:732 +#: ../../rst/network/user_guide/network_debug_troubleshooting.rst:740 msgid "We recommend using SSH Keys, and if needed an ssh-agent, rather than passwords, where ever possible." msgstr "SSH 鍵を使用することを推奨します。必要に応じて、可能な場合は、パスワードではなく ssh-agent を使用することが推奨されます。" -#: ../../rst/network/user_guide/network_debug_troubleshooting.rst:735 +#: ../../rst/network/user_guide/network_debug_troubleshooting.rst:743 msgid "Miscellaneous Issues" msgstr "その他の問題" -#: ../../rst/network/user_guide/network_debug_troubleshooting.rst:739 +#: ../../rst/network/user_guide/network_debug_troubleshooting.rst:747 msgid "Intermittent failure while using ``ansible.netcommon.network_cli`` connection type" msgstr "``ansible.netcommon.network_cli`` 接続タイプの使用中に断続的な失敗" -#: ../../rst/network/user_guide/network_debug_troubleshooting.rst:741 +#: ../../rst/network/user_guide/network_debug_troubleshooting.rst:749 msgid "If the command prompt received in response is not matched correctly within the ``ansible.netcommon.network_cli`` connection plugin the task might fail intermittently with truncated response or with the error message ``operation requires privilege escalation``. Starting in 2.7.1 a new buffer read timer is added to ensure prompts are matched properly and a complete response is send in output. The timer default value is 0.2 seconds and can be adjusted on a per task basis or can be set globally in seconds." msgstr "応答で受け取ったコマンドプロンプトが ``ansible.netcommon.network_cli`` connection プラグイン内で正しく一致しないと、タスクが断続的に失敗し、応答が切り捨てられるか、エラーメッセージ ``operation requires privilege escalation`` が表示されることがあります。2.7.1 以降、プロンプトが正しく一致し、完全な応答が出力に送信されるように、新しいバッファ読み取りタイマーが追加されました。タイマーのデフォルト値は 0.2 秒で、タスクごとに調整することも、秒単位でグローバルに設定することもできます。" -#: ../../rst/network/user_guide/network_debug_troubleshooting.rst:748 +#: ../../rst/network/user_guide/network_debug_troubleshooting.rst:756 msgid "Example Per task timer setting" msgstr "タスクタイマーごとの設定例" -#: ../../rst/network/user_guide/network_debug_troubleshooting.rst:767 +#: ../../rst/network/user_guide/network_debug_troubleshooting.rst:775 msgid "This timer delay per command executed on remote host can be disabled by setting the value to zero." msgstr "リモートホストで実行されるコマンド別のこのタイマー遅延は、値をゼロに設定すると無効にできます。" -#: ../../rst/network/user_guide/network_debug_troubleshooting.rst:771 +#: ../../rst/network/user_guide/network_debug_troubleshooting.rst:779 msgid "Task failure due to mismatched error regex within command response using ``ansible.netcommon.network_cli`` connection type" msgstr "``ansible.netcommon.network_cli`` 接続タイプを使用したコマンド応答内のエラー正規表現の不一致によるタスクの失敗" -#: ../../rst/network/user_guide/network_debug_troubleshooting.rst:773 +#: ../../rst/network/user_guide/network_debug_troubleshooting.rst:781 msgid "In Ansible 2.9 and later, the ``ansible.netcommon.network_cli`` connection plugin configuration options are added to handle the stdout and stderr regex to identify if the command execution response consist of a normal response or an error response. These options can be set group/host variables or as tasks variables." msgstr "Ansible 2.9 以降では、``ansible.netcommon.network_cli`` connection プラグイン設定オプションが追加され、標準出力と標準エラーの正規表現を処理して、コマンド実行応答が通常の応答かエラー応答かを識別します。これらのオプションは、グループ/ホスト変数またはタスク変数として設定できます。" -#: ../../rst/network/user_guide/network_debug_troubleshooting.rst:778 +#: ../../rst/network/user_guide/network_debug_troubleshooting.rst:786 msgid "Example: For mismatched error response" msgstr "例: 不一致のエラー応答の場合" -#: ../../rst/network/user_guide/network_debug_troubleshooting.rst:788 +#: ../../rst/network/user_guide/network_debug_troubleshooting.rst:796 msgid "Playbook run output:" msgstr "Playbook 実行の出力:" -#: ../../rst/network/user_guide/network_debug_troubleshooting.rst:801 +#: ../../rst/network/user_guide/network_debug_troubleshooting.rst:809 msgid "Modify the error regex for individual task." msgstr "個々のタスクのエラー正規表現を変更します。" -#: ../../rst/network/user_guide/network_debug_troubleshooting.rst:814 +#: ../../rst/network/user_guide/network_debug_troubleshooting.rst:822 msgid "The terminal plugin regex options ``ansible_terminal_stderr_re`` and ``ansible_terminal_stdout_re`` have ``pattern`` and ``flags`` as keys. The value of the ``flags`` key should be a value that is accepted by the ``re.compile`` python method." msgstr "端末プラグインの正規表現オプション ``ansible_terminal_stderr_re`` および ``ansible_terminal_stdout_re`` は、``pattern`` と ``flags`` をキーとします。``flags`` キーの値は、``re.compile`` python メソッドで許可される値である必要があります。" -#: ../../rst/network/user_guide/network_debug_troubleshooting.rst:820 +#: ../../rst/network/user_guide/network_debug_troubleshooting.rst:828 msgid "Intermittent failure while using ``ansible.netcommon.network_cli`` connection type due to slower network or remote target host" msgstr "低速ネットワークまたはリモートターゲットホストによる ``ansible.netcommon.network_cli`` 接続タイプの使用時の断続的な失敗" -#: ../../rst/network/user_guide/network_debug_troubleshooting.rst:822 +#: ../../rst/network/user_guide/network_debug_troubleshooting.rst:830 msgid "In Ansible 2.9 and later, the ``ansible.netcommon.network_cli`` connection plugin configuration option is added to control the number of attempts to connect to a remote host. The default number of attempts is three. After every retry attempt the delay between retries is increased by power of 2 in seconds until either the maximum attempts are exhausted or either the ``persistent_command_timeout`` or ``persistent_connect_timeout`` timers are triggered." msgstr "Ansible 2.9 以降では、リモートホストへの接続の試行回数を制御するために、``ansible.netcommon.network_cli`` connection プラグイン設定オプションが追加されました。デフォルトの試行回数は 3 回です。再試行のたびに、最大試行回数がなくなるか、``persistent_command_timeout`` または ``persistent_connect_timeout`` タイマーのいずれかが発生するまで、再試行間の遅延は 2 の累乗 (秒) ずつ増加します。" @@ -4096,31 +4104,8 @@ msgid "Indirect Access" msgstr "間接アクセス" #: ../../rst/network/user_guide/platform_ce.rst:29 -#: ../../rst/network/user_guide/platform_cnos.rst:27 -#: ../../rst/network/user_guide/platform_dellos10.rst:27 -#: ../../rst/network/user_guide/platform_dellos6.rst:27 -#: ../../rst/network/user_guide/platform_dellos9.rst:27 -#: ../../rst/network/user_guide/platform_enos.rst:27 -#: ../../rst/network/user_guide/platform_eos.rst:27 -#: ../../rst/network/user_guide/platform_eric_eccli.rst:27 -#: ../../rst/network/user_guide/platform_exos.rst:28 -#: ../../rst/network/user_guide/platform_frr.rst:27 -#: ../../rst/network/user_guide/platform_icx.rst:27 -#: ../../rst/network/user_guide/platform_ios.rst:27 -#: ../../rst/network/user_guide/platform_iosxr.rst:31 -#: ../../rst/network/user_guide/platform_ironware.rst:27 -#: ../../rst/network/user_guide/platform_junos.rst:30 -#: ../../rst/network/user_guide/platform_netconf_enabled.rst:29 -#: ../../rst/network/user_guide/platform_netvisor.rst:28 -#: ../../rst/network/user_guide/platform_nos.rst:28 -#: ../../rst/network/user_guide/platform_nxos.rst:27 -#: ../../rst/network/user_guide/platform_routeros.rst:28 -#: ../../rst/network/user_guide/platform_slxos.rst:28 -#: ../../rst/network/user_guide/platform_voss.rst:28 -#: ../../rst/network/user_guide/platform_vyos.rst:27 -#: ../../rst/network/user_guide/platform_weos4.rst:28 msgid "via a bastion (jump host)" -msgstr "bastion (jump ホスト) を使用" +msgstr "bastion (ジャンプホスト) を使用" #: ../../rst/network/user_guide/platform_ce.rst:31 #: ../../rst/network/user_guide/platform_cnos.rst:29 @@ -4319,28 +4304,6 @@ msgid "If you are accessing your host directly (not through a bastion/jump host) msgstr "(bastion/ジャンプホストを経由せず) ホストに直接アクセスしている場合は、``ansible_ssh_common_args`` 設定を削除できます。" #: ../../rst/network/user_guide/platform_ce.rst:61 -#: ../../rst/network/user_guide/platform_cnos.rst:62 -#: ../../rst/network/user_guide/platform_dellos10.rst:63 -#: ../../rst/network/user_guide/platform_dellos6.rst:62 -#: ../../rst/network/user_guide/platform_dellos9.rst:62 -#: ../../rst/network/user_guide/platform_enos.rst:64 -#: ../../rst/network/user_guide/platform_eos.rst:67 -#: ../../rst/network/user_guide/platform_eric_eccli.rst:57 -#: ../../rst/network/user_guide/platform_exos.rst:59 -#: ../../rst/network/user_guide/platform_frr.rst:56 -#: ../../rst/network/user_guide/platform_icx.rst:60 -#: ../../rst/network/user_guide/platform_ios.rst:62 -#: ../../rst/network/user_guide/platform_iosxr.rst:64 -#: ../../rst/network/user_guide/platform_ironware.rst:63 -#: ../../rst/network/user_guide/platform_junos.rst:65 -#: ../../rst/network/user_guide/platform_netvisor.rst:58 -#: ../../rst/network/user_guide/platform_nos.rst:58 -#: ../../rst/network/user_guide/platform_nxos.rst:64 -#: ../../rst/network/user_guide/platform_routeros.rst:62 -#: ../../rst/network/user_guide/platform_slxos.rst:59 -#: ../../rst/network/user_guide/platform_voss.rst:62 -#: ../../rst/network/user_guide/platform_vyos.rst:58 -#: ../../rst/network/user_guide/platform_weos4.rst:58 msgid "If you are accessing your host through a bastion/jump host, you cannot include your SSH password in the ``ProxyCommand`` directive. To prevent secrets from leaking out (for example in ``ps`` output), SSH does not support providing passwords via environment variables." msgstr "bastion/ジャンプホストを介してホストにアクセスする場合は、``ProxyCommand`` ディレクティブに SSH パスワードを含めることができません。シークレットが漏洩するのを防ぐために (例: ``ps`` 出力)、SSH は環境変数によるパスワードの提供をサポートしません。" @@ -4475,6 +4438,28 @@ msgstr "CNOS プラットフォームのオプション" msgid "CNOS is part of the `community.network `_ collection and supports Enable Mode (Privilege Escalation). This page offers details on how to use Enable Mode on CNOS in Ansible." msgstr "CNOS は、`community.network `_ コレクションの一部で、Enable Mode (Privilege Escalation) をサポートします。このページでは、Ansible の CNOS で Enable Mode を有効にする方法を詳細に説明します。" +#: ../../rst/network/user_guide/platform_cnos.rst:27 +#: ../../rst/network/user_guide/platform_enos.rst:27 +#: ../../rst/network/user_guide/platform_eos.rst:27 +#: ../../rst/network/user_guide/platform_eric_eccli.rst:27 +#: ../../rst/network/user_guide/platform_exos.rst:28 +#: ../../rst/network/user_guide/platform_frr.rst:27 +#: ../../rst/network/user_guide/platform_icx.rst:27 +#: ../../rst/network/user_guide/platform_ios.rst:27 +#: ../../rst/network/user_guide/platform_iosxr.rst:31 +#: ../../rst/network/user_guide/platform_ironware.rst:27 +#: ../../rst/network/user_guide/platform_junos.rst:30 +#: ../../rst/network/user_guide/platform_netvisor.rst:28 +#: ../../rst/network/user_guide/platform_nos.rst:28 +#: ../../rst/network/user_guide/platform_nxos.rst:27 +#: ../../rst/network/user_guide/platform_routeros.rst:28 +#: ../../rst/network/user_guide/platform_slxos.rst:28 +#: ../../rst/network/user_guide/platform_voss.rst:28 +#: ../../rst/network/user_guide/platform_vyos.rst:27 +#: ../../rst/network/user_guide/platform_weos4.rst:28 +msgid "by a bastion (jump host)" +msgstr "bastion (ジャンプホスト) を使用" + #: ../../rst/network/user_guide/platform_cnos.rst:29 #: ../../rst/network/user_guide/platform_dellos10.rst:29 #: ../../rst/network/user_guide/platform_dellos6.rst:29 @@ -4542,6 +4527,31 @@ msgstr "``ansible_connection: local`` は非推奨になりました。代わり msgid "Example CLI ``group_vars/cnos.yml``" msgstr "CLI の例 ``group_vars/cnos.yml``" +#: ../../rst/network/user_guide/platform_cnos.rst:62 +#: ../../rst/network/user_guide/platform_dellos10.rst:63 +#: ../../rst/network/user_guide/platform_dellos6.rst:62 +#: ../../rst/network/user_guide/platform_dellos9.rst:62 +#: ../../rst/network/user_guide/platform_enos.rst:64 +#: ../../rst/network/user_guide/platform_eos.rst:67 +#: ../../rst/network/user_guide/platform_eric_eccli.rst:57 +#: ../../rst/network/user_guide/platform_exos.rst:59 +#: ../../rst/network/user_guide/platform_frr.rst:56 +#: ../../rst/network/user_guide/platform_icx.rst:60 +#: ../../rst/network/user_guide/platform_ios.rst:62 +#: ../../rst/network/user_guide/platform_iosxr.rst:64 +#: ../../rst/network/user_guide/platform_ironware.rst:63 +#: ../../rst/network/user_guide/platform_junos.rst:65 +#: ../../rst/network/user_guide/platform_netvisor.rst:58 +#: ../../rst/network/user_guide/platform_nos.rst:58 +#: ../../rst/network/user_guide/platform_nxos.rst:64 +#: ../../rst/network/user_guide/platform_routeros.rst:62 +#: ../../rst/network/user_guide/platform_slxos.rst:59 +#: ../../rst/network/user_guide/platform_voss.rst:62 +#: ../../rst/network/user_guide/platform_vyos.rst:58 +#: ../../rst/network/user_guide/platform_weos4.rst:58 +msgid "If you are accessing your host through a bastion/jump host, you cannot include your SSH password in the ``ProxyCommand`` directive. To prevent secrets from leaking out (for example in ``ps`` output), SSH does not support providing passwords through environment variables." +msgstr "bastion/ジャンプ ホストを介してホストにアクセスする場合は、``ProxyCommand`` ディレクティブに SSH パスワードを含めることができません。シークレットが (``ps`` 出力などに) 漏洩するのを防ぐために、SSH は環境変数によるパスワードの提供をサポートしません。" + #: ../../rst/network/user_guide/platform_dellos10.rst:5 msgid "Dell OS10 Platform Options" msgstr "Dell OS10 プラットフォームオプション" @@ -4550,6 +4560,13 @@ msgstr "Dell OS10 プラットフォームオプション" msgid "The `dellemc.os10 `_ collection supports Enable Mode (Privilege Escalation). This page offers details on how to use Enable Mode on OS10 in Ansible." msgstr "`dellemc.os10 `_ コレクションは Enable Mode (Privilege Escalation) をサポートします。このページでは、Ansible の OS10 で Enable Mode を使用する方法に関する詳細が記載されています。" +#: ../../rst/network/user_guide/platform_dellos10.rst:27 +#: ../../rst/network/user_guide/platform_dellos6.rst:27 +#: ../../rst/network/user_guide/platform_dellos9.rst:27 +#: ../../rst/network/user_guide/platform_netconf_enabled.rst:29 +msgid "through a bastion (jump host)" +msgstr "bastion (ジャンプホスト) を使用" + #: ../../rst/network/user_guide/platform_dellos10.rst:47 msgid "Example CLI ``group_vars/dellos10.yml``" msgstr "CLI の例 ``group_vars/dellos10.yml``" @@ -4617,8 +4634,7 @@ msgstr "HTTPS 証明書が存在する場合は使用します。" #: ../../rst/network/user_guide/platform_eos.rst:27 #: ../../rst/network/user_guide/platform_exos.rst:28 -#: ../../rst/network/user_guide/platform_nxos.rst:27 -msgid "via a web proxy" +msgid "through a web proxy" msgstr "Web プロキシー経由" #: ../../rst/network/user_guide/platform_eos.rst:29 @@ -5197,7 +5213,7 @@ msgid "enable NETCONF on the Junos OS device(s)" msgstr "Junos OS デバイスの netconf を有効にします。" #: ../../rst/network/user_guide/platform_junos.rst:89 -msgid "To enable NETCONF on a new switch via Ansible, use the ``junipernetworks.junos.junos_netconf`` module through the CLI connection. Set up your platform-level variables just like in the CLI example above, then run a playbook task like this:" +msgid "To enable NETCONF on a new switch through Ansible, use the ``junipernetworks.junos.junos_netconf`` module through the CLI connection. Set up your platform-level variables just like in the CLI example above, then run a playbook task like this:" msgstr "Ansible を介して新しいスイッチで NETCONF を有効にするには、CLI 接続を介して ``junipernetworks.junos.junos_netconf`` モジュールを使用します。上記の CLI の例のようにプラットフォームレベルの変数を設定し、次のように Playbook タスクを実行します。" #: ../../rst/network/user_guide/platform_junos.rst:101 @@ -5254,8 +5270,8 @@ msgid "install the ``ncclient`` Python package on your control node(s) with ``pi msgstr "``pip install ncclient`` を使用して、``ncclient`` Python パッケージをコントロールノードにインストールします。" #: ../../rst/network/user_guide/platform_netconf_enabled.rst:48 -msgid "To enable NETCONF on a new switch via Ansible, use the platform specific module via the CLI connection or set it manually. For example set up your platform-level variables just like in the CLI example above, then run a playbook task like this:" -msgstr "Ansible 経由で新しいスイッチの NETCONF を有効にするには、CLI 接続経由でプラットフォーム固有のモジュールを使用するか、手動で設定します。たとえば、上記の CLI の例のようにプラットフォームレベルの変数を設定し、次のような Playbook タスクを実行します。" +msgid "To enable NETCONF on a new switch through Ansible, use the platform specific module through the CLI connection or set it manually. For example set up your platform-level variables just like in the CLI example above, then run a playbook task like this:" +msgstr "Ansible を介して新しいスイッチで NETCONF を有効にするには、CLI 接続経由でプラットフォーム固有のモジュールを使用するか、手動で設定します。たとえば、上記の CLI の例のようにプラットフォームレベルの変数を設定し、次のような Playbook タスクを実行します。" #: ../../rst/network/user_guide/platform_netconf_enabled.rst:83 msgid "Example NETCONF task with configurable variables" @@ -5267,7 +5283,7 @@ msgstr "注意: netconf connection プラグインの設定可能な変数は、 #: ../../rst/network/user_guide/platform_netconf_enabled.rst:97 msgid "Bastion/Jumphost configuration" -msgstr "Bastion/Jumphost の設定" +msgstr "Bastion/ジャンプホストの設定" #: ../../rst/network/user_guide/platform_netconf_enabled.rst:98 msgid "To use a jump host to connect to a NETCONF enabled device you must set the ``ANSIBLE_NETCONF_SSH_CONFIG`` environment variable." @@ -5370,6 +5386,10 @@ msgstr "`Cisco NXOS `_ は複数の接続 msgid "NX-API" msgstr "NX-API" +#: ../../rst/network/user_guide/platform_nxos.rst:27 +msgid "by a web proxy" +msgstr "Web プロキシー経由" + #: ../../rst/network/user_guide/platform_nxos.rst:32 msgid "not supported by NX-API" msgstr "NX-API ではサポートされません" @@ -5387,7 +5407,7 @@ msgid "Enabling NX-API" msgstr "NX-API の有効化" #: ../../rst/network/user_guide/platform_nxos.rst:85 -msgid "Before you can use NX-API to connect to a switch, you must enable NX-API. To enable NX-API on a new switch via Ansible, use the ``nxos_nxapi`` module via the CLI connection. Set up group_vars/nxos.yml just like in the CLI example above, then run a playbook task like this:" +msgid "Before you can use NX-API to connect to a switch, you must enable NX-API. To enable NX-API on a new switch through Ansible, use the ``nxos_nxapi`` module through the CLI connection. Set up group_vars/nxos.yml just like in the CLI example above, then run a playbook task like this:" msgstr "NX-API を使用してスイッチに接続する前に、NX-API を有効にする必要があります。Ansible を介して新しいスイッチで NX-API を有効にするには、CLI 接続を介して ``nxos_nxapi`` モジュールを使用します。前述の CLI の例と同様に group_vars/nxos.yml を設定し、次のように Playbook タスクを実行します。" #: ../../rst/network/user_guide/platform_nxos.rst:95 @@ -5794,4 +5814,7 @@ msgstr "これにより、Ethernet2/1 および Ethernet2/10 は、定義され #~ msgid "8.4(1) and later" #~ msgstr "8.4(1) 以降" +#~ msgid "If you are specifying credentials via ``password:`` (either directly or via ``provider:``) or the environment variable `ANSIBLE_NET_PASSWORD` it is possible that ``paramiko`` (the Python SSH library that Ansible uses) is using ssh keys, and therefore the credentials you are specifying are being ignored. To find out if this is the case, disable \"look for keys\". This can be done like this:" +#~ msgstr "(直接または ``provider:`` を使用して) ``password:`` で認証情報を指定する場合や、環境変数 `ANSIBLE_NET_PASSWORD` を指定する場合は、``paramiko`` (Ansible が使用する Python SSH ライブラリー) が ssh キーを使用している可能性があるため、指定する認証情報が無効になります。これを確認するには、「look for keys」を無効にします。これは次のように行います。" + diff --git a/docs/docsite/rst/locales/ja/LC_MESSAGES/os_guide.po b/docs/docsite/rst/locales/ja/LC_MESSAGES/os_guide.po index 09ee4595..ffe530e6 100644 --- a/docs/docsite/rst/locales/ja/LC_MESSAGES/os_guide.po +++ b/docs/docsite/rst/locales/ja/LC_MESSAGES/os_guide.po @@ -7,14 +7,14 @@ msgid "" msgstr "" "Project-Id-Version: Ansible devel\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-10-05 09:34+0200\n" +"POT-Creation-Date: 2023-03-01 20:16+0100\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.8.1\n" +"Generated-By: Babel 2.9.0\n" #: ../../rst/os_guide/index.rst:5 msgid "Using Ansible on Windows and BSD" @@ -222,17 +222,17 @@ msgstr "ご質問はございますか。サポートが必要ですか。ご提 #: ../../rst/os_guide/intro_bsd.rst:277 ../../rst/os_guide/windows_dsc.rst:507 #: ../../rst/os_guide/windows_faq.rst:256 -#: ../../rst/os_guide/windows_setup.rst:577 +#: ../../rst/os_guide/windows_setup.rst:498 #: ../../rst/os_guide/windows_usage.rst:518 -#: ../../rst/os_guide/windows_winrm.rst:1010 +#: ../../rst/os_guide/windows_winrm.rst:1012 msgid ":ref:`communication_irc`" msgstr ":ref:`communication_irc`" #: ../../rst/os_guide/intro_bsd.rst:278 ../../rst/os_guide/windows_dsc.rst:508 #: ../../rst/os_guide/windows_faq.rst:257 -#: ../../rst/os_guide/windows_setup.rst:578 +#: ../../rst/os_guide/windows_setup.rst:499 #: ../../rst/os_guide/windows_usage.rst:519 -#: ../../rst/os_guide/windows_winrm.rst:1011 +#: ../../rst/os_guide/windows_winrm.rst:1013 msgid "How to join Ansible chat channels" msgstr "Ansible チャットチャンネルへの参加方法" @@ -370,8 +370,8 @@ msgid "A ``[PSCredential]`` object is used to store credentials in a secure way, msgstr "``[PSCredential]`` オブジェクトは認証情報を安全な方法で保存するために使用されますが、Ansible にはこれを JSON でシリアル化する方法がありません。DSC PSCredential プロパティーを設定するには、そのパラメーターの定義に、ユーザ名とパスワードをそれぞれ ``_username`` と ``_password`` をサフィックスにした 2 つのエントリーを追加する必要があります。たとえば、以下のようになります。" #: ../../rst/os_guide/windows_dsc.rst:190 -msgid "On versions of Ansible older than 2.8, you should set ``no_log: yes`` on the task definition in Ansible to ensure any credentials used are not stored in any log file or console output." -msgstr "2.8 より古いバージョンの Ansible では、Ansible のタスク定義に ``no_log: yes`` を設定して、使用する認証情報がログファイルまたはコンソールの出力に保存されないようにする必要があります。" +msgid "On versions of Ansible older than 2.8, you should set ``no_log: true`` on the task definition in Ansible to ensure any credentials used are not stored in any log file or console output." +msgstr "2.8 より古いバージョンの Ansible では、Ansible のタスク定義に ``no_log: true`` を設定して、使用する認証情報がログファイルまたはコンソールの出力に保存されないようにする必要があります。" #: ../../rst/os_guide/windows_dsc.rst:194 msgid "A ``[PSCredential]`` is defined with ``EmbeddedInstance(\"MSFT_Credential\")`` in a DSC resource MOF definition." @@ -519,61 +519,61 @@ msgstr "IIS Web サイトのセットアップ" #: ../../rst/os_guide/windows_dsc.rst:499 #: ../../rst/os_guide/windows_usage.rst:510 -#: ../../rst/os_guide/windows_winrm.rst:1002 +#: ../../rst/os_guide/windows_winrm.rst:1004 msgid ":ref:`playbooks_intro`" msgstr ":ref:`playbooks_intro`" #: ../../rst/os_guide/windows_dsc.rst:500 #: ../../rst/os_guide/windows_faq.rst:251 -#: ../../rst/os_guide/windows_setup.rst:570 +#: ../../rst/os_guide/windows_setup.rst:491 #: ../../rst/os_guide/windows_usage.rst:511 -#: ../../rst/os_guide/windows_winrm.rst:1003 +#: ../../rst/os_guide/windows_winrm.rst:1005 msgid "An introduction to playbooks" msgstr "Playbook の概要" #: ../../rst/os_guide/windows_dsc.rst:501 #: ../../rst/os_guide/windows_faq.rst:252 -#: ../../rst/os_guide/windows_setup.rst:571 +#: ../../rst/os_guide/windows_setup.rst:492 #: ../../rst/os_guide/windows_usage.rst:512 -#: ../../rst/os_guide/windows_winrm.rst:1004 +#: ../../rst/os_guide/windows_winrm.rst:1006 msgid ":ref:`playbooks_best_practices`" msgstr ":ref:`playbooks_best_practices`" #: ../../rst/os_guide/windows_dsc.rst:502 #: ../../rst/os_guide/windows_faq.rst:253 -#: ../../rst/os_guide/windows_setup.rst:572 +#: ../../rst/os_guide/windows_setup.rst:493 #: ../../rst/os_guide/windows_usage.rst:513 -#: ../../rst/os_guide/windows_winrm.rst:1005 +#: ../../rst/os_guide/windows_winrm.rst:1007 msgid "Tips and tricks for playbooks" msgstr "Playbook のヒントと裏技" #: ../../rst/os_guide/windows_dsc.rst:503 -#: ../../rst/os_guide/windows_setup.rst:573 +#: ../../rst/os_guide/windows_setup.rst:494 #: ../../rst/os_guide/windows_usage.rst:514 -#: ../../rst/os_guide/windows_winrm.rst:1006 +#: ../../rst/os_guide/windows_winrm.rst:1008 msgid ":ref:`List of Windows Modules `" msgstr ":ref:`List of Windows Modules `" #: ../../rst/os_guide/windows_dsc.rst:504 -#: ../../rst/os_guide/windows_setup.rst:574 +#: ../../rst/os_guide/windows_setup.rst:495 #: ../../rst/os_guide/windows_usage.rst:515 -#: ../../rst/os_guide/windows_winrm.rst:1007 +#: ../../rst/os_guide/windows_winrm.rst:1009 msgid "Windows specific module list, all implemented in PowerShell" msgstr "Windows 固有のモジュールリスト (すべて PowerShell に実装)" #: ../../rst/os_guide/windows_dsc.rst:505 #: ../../rst/os_guide/windows_faq.rst:254 -#: ../../rst/os_guide/windows_setup.rst:575 +#: ../../rst/os_guide/windows_setup.rst:496 #: ../../rst/os_guide/windows_usage.rst:516 -#: ../../rst/os_guide/windows_winrm.rst:1008 +#: ../../rst/os_guide/windows_winrm.rst:1010 msgid "`User Mailing List `_" msgstr "`User Mailing List `_" #: ../../rst/os_guide/windows_dsc.rst:506 #: ../../rst/os_guide/windows_faq.rst:255 -#: ../../rst/os_guide/windows_setup.rst:576 +#: ../../rst/os_guide/windows_setup.rst:497 #: ../../rst/os_guide/windows_usage.rst:517 -#: ../../rst/os_guide/windows_winrm.rst:1009 +#: ../../rst/os_guide/windows_winrm.rst:1011 msgid "Have a question? Stop by the google group!" msgstr "ご質問はございますか。Google Group をご覧ください。" @@ -878,8 +878,8 @@ msgid "The value for ``ansible_shell_type`` should either be ``cmd`` or ``powers msgstr "``ansible_shell_type`` の値は、``cmd`` または ``powershell`` のいずれかでなければなりません。SSH サービスで ``DefaultShell`` が設定されていない場合は ``cmd`` を使用して、``DefaultShell`` として設定されている場合は ``powershell`` を使用してください。" #: ../../rst/os_guide/windows_faq.rst:219 -msgid "Why is connecting to a Windows host via SSH failing?" -msgstr "SSH 経由で Windows ホストに接続できないのはなぜですか" +msgid "Why is connecting to a Windows host through SSH failing?" +msgstr "SSH を介した Windows ホストへの接続に失敗するのはなぜですか?" #: ../../rst/os_guide/windows_faq.rst:220 msgid "Unless you are using ``Win32-OpenSSH`` as described above, you must connect to Windows hosts using :ref:`windows_winrm`. If your Ansible output indicates that SSH was used, either you did not set the connection vars properly or the host is not inheriting them correctly." @@ -922,7 +922,7 @@ msgid "The Windows documentation index" msgstr "Windows ドキュメントの目次" #: ../../rst/os_guide/windows_faq.rst:250 -#: ../../rst/os_guide/windows_setup.rst:569 +#: ../../rst/os_guide/windows_setup.rst:490 msgid ":ref:`about_playbooks`" msgstr ":ref:`about_playbooks`" @@ -959,8 +959,8 @@ msgid "Fix high-CPU-on-boot for VMs/cloud instances" msgstr "仮想マシン/クラウドインスタンスの、システム起動時の高 CPU を修正" #: ../../rst/os_guide/windows_performance.rst:50 -msgid "If you are creating golden images to spawn instances from, you can avoid a disruptive high CPU task near startup via `processing the ngen queue `_ within your golden image creation, if you know the CPU types won't change between golden image build process and runtime." -msgstr "インスタンスを生成するためにゴールデンイメージを作成している場合は、ゴールデンイメージのビルドプロセスとランタイムの間で CPU タイプが変わらないことがわかっていれば、ゴールデンイメージの作成時に `ngen キューの処理 `_ を使用することで、起動時に高い CPU タスクが発生するのを防ぐことができます。" +msgid "If you are creating golden images to spawn instances from, you can avoid a disruptive high CPU task near startup through `processing the ngen queue `_ within your golden image creation, if you know the CPU types won't change between golden image build process and runtime." +msgstr "インスタンスを生成するためにゴールデンイメージを作成している場合は、ゴールデンイメージのビルドプロセスとランタイムの間で CPU タイプが変わらないことがわかっていれば、作成したゴールデンイメージ内で `processing the ngen queue `_ を介して、起動時に破壊的な CPU 使用率の高いタスクを回避することができます。" #: ../../rst/os_guide/windows_performance.rst:55 msgid "Place the following near the end of your playbook, bearing in mind the factors that can cause native images to be invalidated (`see MSDN `_)." @@ -975,449 +975,529 @@ msgid "This document discusses the setup that is required before Ansible can com msgstr "本書では、Ansible が Microsoft Windows ホストと通信する前に必要なセットアップを説明します。" #: ../../rst/os_guide/windows_setup.rst:12 -msgid "For Ansible to communicate to a Windows host and use Windows modules, the Windows host must meet these requirements:" -msgstr "Ansible が Windows ホストと通信し、Windows モジュールを使用するためには、Windows ホストが以下の要件を満たす必要があります。" +msgid "For Ansible to communicate to a Windows host and use Windows modules, the Windows host must meet these base requirements for connectivity:" +msgstr "Ansible が Windows ホストと通信し、Windows モジュールを使用するためには、Windows ホストが以下の接続性に関する基本要件を満たす必要があります。" #: ../../rst/os_guide/windows_setup.rst:15 -msgid "Ansible can generally manage Windows versions under current and extended support from Microsoft. Ansible can manage desktop OSs including Windows 8.1, and 10, and server OSs including Windows Server 2012, 2012 R2, 2016, 2019, and 2022." -msgstr "Ansible は、Microsoft の現行および拡張サポート下にある Windows バージョンを一般的に管理できます。Ansible は、Windows 8.1および 10 を含むデスクトップ OS、ならびに Windows Server 2012、2012 R2、2016、2019、および 2022 を含むサーバー OS を管理できます。" +msgid "With Ansible you can generally manage Windows versions under the current and extended support from Microsoft. You can also manage desktop OSs including Windows 8.1, and 10, and server OSs including Windows Server 2012, 2012 R2, 2016, 2019, and 2022." +msgstr "Ansible は、Microsoft の現行および拡張サポート下にある Windows バージョンを一般的に管理できます。また、Windows 8.1および 10 を含むデスクトップ OS、ならびに Windows Server 2012、2012 R2、2016、2019、および 2022 を含むサーバー OS を管理できます。" -#: ../../rst/os_guide/windows_setup.rst:20 -msgid "Ansible requires PowerShell 3.0 or newer and at least .NET 4.0 to be installed on the Windows host." -msgstr "Ansible を利用するには、Windows ホストに PowerShell 3.0 以降と少なくとも .NET 4.0 がインストールされている必要があります。" +#: ../../rst/os_guide/windows_setup.rst:17 +msgid "You need to install PowerShell 3.0 or newer and at least .NET 4.0 on the Windows host." +msgstr "Windows ホストに PowerShell 3.0 以降と少なくとも .NET 4.0 がインストールされている必要があります。" -#: ../../rst/os_guide/windows_setup.rst:23 -msgid "A WinRM listener should be created and activated. More details for this can be found below." -msgstr "WinRM リスナーを作成し、有効にする必要があります。詳細は以下を参照してください。" +#: ../../rst/os_guide/windows_setup.rst:19 +msgid "You need to create and activate a WinRM listener. More details, see `WinRM Setup `_." +msgstr "WinRM リスナーを作成してアクティブにする必要があります。詳細は、`WinRM Setup `_ を参照してください。" -#: ../../rst/os_guide/windows_setup.rst:26 -msgid "While these are the base requirements for Ansible connectivity, some Ansible modules have additional requirements, such as a newer OS or PowerShell version. Please consult the module's documentation page to determine whether a host meets those requirements." -msgstr "これらは、Ansible 接続の基本的な要件ですが、Ansible モジュールの中には、新しい OS や PowerShell のバージョンなど、追加の要件があるものもあります。ホストがこれらの要件を満たしているかどうかは、モジュールのドキュメントページを参照してください。" +#: ../../rst/os_guide/windows_setup.rst:21 +msgid "Some Ansible modules have additional requirements, such as a newer OS or PowerShell version. Consult the module documentation page to determine whether a host meets those requirements." +msgstr "Ansible モジュールの中には、新しい OS や PowerShell のバージョンなど、追加の要件があるものもあります。ホストがこれらの要件を満たしているかどうかは、モジュールのドキュメントページを参照してください。" -#: ../../rst/os_guide/windows_setup.rst:32 +#: ../../rst/os_guide/windows_setup.rst:24 msgid "Upgrading PowerShell and .NET Framework" msgstr "PowerShell および .NET Framework のアップグレード" -#: ../../rst/os_guide/windows_setup.rst:33 +#: ../../rst/os_guide/windows_setup.rst:25 msgid "Ansible requires PowerShell version 3.0 and .NET Framework 4.0 or newer to function on older operating systems like Server 2008 and Windows 7. The base image does not meet this requirement. You can use the `Upgrade-PowerShell.ps1 `_ script to update these." msgstr "Ansible が Server 2008 や Windows 7 などの古いオペレーティングシステムで機能するためには、PowerShell の バージョン3.0 と .NET Framework 4.0 以降が必要です。ベースイメージは、この要件を満たしていません。`Upgrade-PowerShell.ps1 `_ スクリプトを使用してこれらを更新することができます。" -#: ../../rst/os_guide/windows_setup.rst:36 +#: ../../rst/os_guide/windows_setup.rst:28 msgid "This is an example of how to run this script from PowerShell:" msgstr "このスクリプトを PowerShell から実行する例を以下に示します。" -#: ../../rst/os_guide/windows_setup.rst:52 -msgid "Once completed, you will need to remove auto logon and set the execution policy back to the default (``Restricted `` for Windows clients, or ``RemoteSigned`` for Windows servers). You can do this with the following PowerShell commands:" -msgstr "完了したら、自動ログオンを解除して、実行ポリシーをデフォルト (Windows クライアントの場合は ``Restricted ``、Windows サーバーの場合は ``RemoteSigned``) に戻す必要があります。これには以下の PowerShell コマンドが必要です。" +#: ../../rst/os_guide/windows_setup.rst:43 +msgid "In the script, the ``file`` value can be the PowerShell version 3.0, 4.0, or 5.1." +msgstr "このスクリプトでは、``file`` の値は PowerShell バージョン 3.0、4.0、または 5.1 に指定できます。" + +#: ../../rst/os_guide/windows_setup.rst:45 +msgid "Once completed, you need to run the following PowerShell commands:" +msgstr "完了したら、以下の PowerShell コマンドを実行する必要があります。" -#: ../../rst/os_guide/windows_setup.rst:66 -msgid "The script works by checking to see what programs need to be installed (such as .NET Framework 4.5.2) and what PowerShell version is required. If a reboot is required and the ``username`` and ``password`` parameters are set, the script will automatically reboot and logon when it comes back up from the reboot. The script will continue until no more actions are required and the PowerShell version matches the target version. If the ``username`` and ``password`` parameters are not set, the script will prompt the user to manually reboot and logon when required. When the user is next logged in, the script will continue where it left off and the process continues until no more actions are required." -msgstr "このスクリプトは、インストールが必要なプログラム (.NET Framework 4.5.2 など) や、必要な PowerShell バージョンを確認して動作します。再起動が必要で、``username`` パラメーターと ``password`` パラメーターが設定されている場合は、スクリプトが自動的に再起動し、再起動から復帰したときにログオンします。スクリプトは、アクションが不要になり、PowerShell バージョンがターゲットのバージョンと一致するまで続行されます。``username`` パラメーターおよび ``password`` パラメーターが設定されていない場合、スクリプトは必要に応じてユーザーに手動で再起動とログオンを促します。ユーザーが次にログインすると、スクリプトは前回の続きを実行し、アクションが必要なくなるまで処理を続けます。" +#: ../../rst/os_guide/windows_setup.rst:47 +msgid "As an optional but good security practice, you can set the execution policy back to the default." +msgstr "こちらは任意ですが、実行ポリシーをデフォルトに戻すことがセキュリティープラクティスとして適切です。" -#: ../../rst/os_guide/windows_setup.rst:77 -msgid "If running on Server 2008, then SP2 must be installed. If running on Server 2008 R2 or Windows 7, then SP1 must be installed." -msgstr "Server 2008 で実行する場合は、SP2 がインストールされている必要があります。Server 2008 R2 または Windows 7 で実行している場合は SP1 をインストールする必要があります。" +#: ../../rst/os_guide/windows_setup.rst:53 +msgid "Use the ``RemoteSigned`` value for Windows servers, or ``Restricted`` for Windows clients." +msgstr "Windows サーバーには ``RemoteSigned`` の値を使用し、Windows クライアントには ``Restricted`` を使用します。" -#: ../../rst/os_guide/windows_setup.rst:80 -msgid "Windows Server 2008 can only install PowerShell 3.0; specifying a newer version will result in the script failing." +#: ../../rst/os_guide/windows_setup.rst:55 +msgid "Remove the auto logon." +msgstr "自動ログオンを削除します。" + +#: ../../rst/os_guide/windows_setup.rst:64 +msgid "The script determines what programs you need to install (such as .NET Framework 4.5.2) and what PowerShell version needs to be present. If a reboot is needed and the ``username`` and ``password`` parameters are set, the script will automatically reboot the machine and then logon. If the ``username`` and ``password`` parameters are not set, the script will prompt the user to manually reboot and logon when required. When the user is next logged in, the script will continue where it left off and the process continues until no more actions are required." +msgstr "このスクリプトは、インストールが必要なプログラム (.NET Framework 4.5.2 など) や、必要な PowerShell バージョンを確認して動作します。再起動が必要で、``username`` パラメーターと ``password`` パラメーターが設定されている場合は、スクリプトが自動的に再起動し、再起動から復帰したときにログオンします。``username`` パラメーターおよび ``password`` パラメーターが設定されていない場合には、スクリプトは必要に応じてユーザーに手動で再起動とログオンを促します。ユーザーが次にログインすると、スクリプトは前回の続きを実行し、アクションが必要なくなるまで処理を続けます。" + +#: ../../rst/os_guide/windows_setup.rst:67 +msgid "If you run the script on Server 2008, then you need to install SP2. For Server 2008 R2 or Windows 7 you need SP1." +msgstr "Server 2008 でスクリプトを実行する場合は、SP2 をインストールする必要があります。Server 2008 R2 または Windows 7 の場合は SP1 が必要です。" + +#: ../../rst/os_guide/windows_setup.rst:69 +msgid "On Windows Server 2008 you can install only PowerShell 3.0. A newer version will result in the script failure." msgstr "Windows Server 2008 では PowerShell 3.0 しかインストールできないため、それより新しいバージョンを指定するとスクリプトが失敗します。" -#: ../../rst/os_guide/windows_setup.rst:83 -msgid "The ``username`` and ``password`` parameters are stored in plain text in the registry. Make sure the cleanup commands are run after the script finishes to ensure no credentials are still stored on the host." +#: ../../rst/os_guide/windows_setup.rst:71 +msgid "The ``username`` and ``password`` parameters are stored in plain text in the registry. Run the cleanup commands after the script finishes to ensure no credentials are stored on the host." msgstr "``username`` と ``password`` のパラメーターは、レジストリーに平文で保存されます。スクリプトの終了後にクリーンアップコマンドを実行して、ホスト上に認証情報が保存されていないことを確認してください。" -#: ../../rst/os_guide/windows_setup.rst:88 +#: ../../rst/os_guide/windows_setup.rst:75 msgid "WinRM Memory Hotfix" msgstr "WinRM Memory Hotfix" -#: ../../rst/os_guide/windows_setup.rst:89 -msgid "When running on PowerShell v3.0, there is a bug with the WinRM service that limits the amount of memory available to WinRM. Without this hotfix installed, Ansible will fail to execute certain commands on the Windows host. These hotfixes should be installed as part of the system bootstrapping or imaging process. The script `Install-WMF3Hotfix.ps1 `_ can be used to install the hotfix on affected hosts." -msgstr "PowerShell v3.0 で実行する場合は、WinRM サービスのバグにより、WinRM で使用できるメモリー量が制限されるという問題がありました。この Hotfix をインストールしないと、Windows ホスト上で Ansible による特定のコマンドの実行に失敗します。これらの Hotfix は、システムのブートストラップまたはイメージングプロセスの一部としてインストールする必要があります。`Install-WMF3Hotfix.ps1 `_ というスクリプトを使用すると、影響を受けるホストに hotfix をインストールできます。" +#: ../../rst/os_guide/windows_setup.rst:76 +msgid "On PowerShell v3.0, there is a bug that limits the amount of memory available to the WinRM service. Use the `Install-WMF3Hotfix.ps1 `_ script to install a hotfix on affected hosts as part of the system bootstrapping or imaging process. Without this hotfix, Ansible fails to execute certain commands on the Windows host." +msgstr "PowerShell v3.0 で実行する場合は、WinRM サービスのバグにより、WinRM で使用できるメモリー量が制限されるという問題がありました。`Install-WMF3Hotfix.ps1 `_ というスクリプトを使用すると、システムのブートストラップまたはイメージプロセスの一部として、影響を受けるホストに hotfix をインストールできます。この hotfix がない場合には、Ansible では Windows ホスト上で特定のコマンドの実行に失敗します。" -#: ../../rst/os_guide/windows_setup.rst:95 -msgid "The following PowerShell command will install the hotfix:" -msgstr "以下の PowerShell コマンドは hotfix をインストールします。" +#: ../../rst/os_guide/windows_setup.rst:78 +msgid "To install the hotfix:" +msgstr "ホットフィックスをインストールします。" -#: ../../rst/os_guide/windows_setup.rst:106 -msgid "For more details, please refer to the `Hotfix document `_ from Microsoft." -msgstr "詳細は、Microsoft 社の `Hotfix ドキュメント `_ を参照してください。" +#: ../../rst/os_guide/windows_setup.rst:89 +msgid "For more details, refer to the `\"Out of memory\" error on a computer that has a customized MaxMemoryPerShellMB quota set and has WMF 3.0 installed `_ article." +msgstr "詳細は、`\"Out of memory\" error on a computer that has a customized MaxMemoryPerShellMB quota set and has WMF 3.0 installed `_ アーティクルを参照してください。" -#: ../../rst/os_guide/windows_setup.rst:109 +#: ../../rst/os_guide/windows_setup.rst:92 msgid "WinRM Setup" msgstr "WinRM の設定" -#: ../../rst/os_guide/windows_setup.rst:110 -msgid "Once Powershell has been upgraded to at least version 3.0, the final step is to configure the WinRM service so that Ansible can connect to it. There are two main components of the WinRM service that governs how Ansible can interface with the Windows host: the ``listener`` and the ``service`` configuration settings." -msgstr "Powershell をバージョン 3.0 以降にアップグレードしたら、最後のステップとして、WinRM サービスを設定して Ansible が接続できるようにします。WinRM サービスには、Ansible が Windows ホストとどのように連携するかを決定する構成設定 ``listener`` および ``service`` の 2 つの主要コンポーネントがあります。" +#: ../../rst/os_guide/windows_setup.rst:93 +msgid "You need to configure the WinRM service so that Ansible can connect to it. There are two main components of the WinRM service that governs how Ansible can interface with the Windows host: the ``listener`` and the ``service`` configuration settings." +msgstr "WinRM サービスを設定して Ansible が接続できるようにします。WinRM サービスには、構成設定 ``listener`` および ``service`` の 2 つの主要コンポーネントがあり、Ansible が Windows ホストとどのように連携するかを決定します。" -#: ../../rst/os_guide/windows_setup.rst:116 +#: ../../rst/os_guide/windows_setup.rst:96 msgid "WinRM Listener" msgstr "WinRM リスナー" -#: ../../rst/os_guide/windows_setup.rst:117 -msgid "The WinRM services listens for requests on one or more ports. Each of these ports must have a listener created and configured." +#: ../../rst/os_guide/windows_setup.rst:97 +msgid "The WinRM services listen for requests on one or more ports. Each of these ports must have a listener created and configured." msgstr "WinRM サービスは、1 つ以上のポートで要求をリッスンします。これらのポートごとにリスナーを作成し、設定する必要があります。" -#: ../../rst/os_guide/windows_setup.rst:120 -msgid "To view the current listeners that are running on the WinRM service, run the following command:" -msgstr "WinRM サービスで実行している現在のリスナーを表示するには、次のコマンドを実行します。" +#: ../../rst/os_guide/windows_setup.rst:99 +msgid "To view the current listeners that are running on the WinRM service:" +msgstr "WinRM サービスで実行している現在のリスナーを表示します。" -#: ../../rst/os_guide/windows_setup.rst:127 -#: ../../rst/os_guide/windows_setup.rst:245 +#: ../../rst/os_guide/windows_setup.rst:105 +#: ../../rst/os_guide/windows_setup.rst:200 msgid "This will output something like:" msgstr "これにより、以下のようなものが出力されます。" -#: ../../rst/os_guide/windows_setup.rst:153 -msgid "In the example above there are two listeners activated; one is listening on port 5985 over HTTP and the other is listening on port 5986 over HTTPS. Some of the key options that are useful to understand are:" +#: ../../rst/os_guide/windows_setup.rst:131 +msgid "In the example above there are two listeners activated. One is listening on port 5985 over HTTP and the other is listening on port 5986 over HTTPS. Some of the key options that are useful to understand are:" msgstr "上の例では、2 つのリスナーが有効になっています。1 つは HTTP でポート 5985 をリッスンしており、もう 1 つは HTTPS でポート 5986 をリッスンしています。理解しておくと便利なオプションをいくつか紹介します。" -#: ../../rst/os_guide/windows_setup.rst:157 -msgid "``Transport``: Whether the listener is run over HTTP or HTTPS, it is recommended to use a listener over HTTPS as the data is encrypted without any further changes required." +#: ../../rst/os_guide/windows_setup.rst:133 +msgid "``Transport``: Whether the listener is run over HTTP or HTTPS. We recommend you use a listener over HTTPS because the data is encrypted without any further changes required." msgstr "``Transport``: リスナーが HTTP または HTTPS のどちらで実行している場合でも、データはさらなる変更なしに暗号化されるため、HTTPS 経由でリスナーを使用することが推奨されます。" -#: ../../rst/os_guide/windows_setup.rst:161 -msgid "``Port``: The port the listener runs on, by default it is ``5985`` for HTTP and ``5986`` for HTTPS. This port can be changed to whatever is required and corresponds to the host var ``ansible_port``." +#: ../../rst/os_guide/windows_setup.rst:135 +msgid "``Port``: The port the listener runs on. By default it is ``5985`` for HTTP and ``5986`` for HTTPS. This port can be changed to whatever is required and corresponds to the host var ``ansible_port``." msgstr "``Port``: リスナーが実行するポート。デフォルトは、HTTP の場合は ``5985``、HTTPS の場合は ``5986`` です。このポートは、必要なものにそれぞれ変更でき、ホスト変数 ``ansible_port`` に対応することができます。" -#: ../../rst/os_guide/windows_setup.rst:165 -msgid "``URLPrefix``: The URL prefix to listen on, by default it is ``wsman``. If this is changed, the host var ``ansible_winrm_path`` must be set to the same value." -msgstr "``URLPrefix``: リッスンする URL プレフィックス。デフォルトは ``wsman`` です。これが変更された場合、ホスト変数 ``ansible_winrm_path`` は同じ値に設定する必要があります。" +#: ../../rst/os_guide/windows_setup.rst:137 +msgid "``URLPrefix``: The URL prefix to listen on. By default it is ``wsman``. If you change this option, you need to set the host var ``ansible_winrm_path`` to the same value." +msgstr "``URLPrefix``: リッスンする URL プレフィックス。デフォルトは ``wsman`` です。このオプションが変更された場合、ホスト変数 ``ansible_winrm_path`` は同じ値に設定する必要があります。" -#: ../../rst/os_guide/windows_setup.rst:169 -msgid "``CertificateThumbprint``: If running over an HTTPS listener, this is the thumbprint of the certificate in the Windows Certificate Store that is used in the connection. To get the details of the certificate itself, run this command with the relevant certificate thumbprint in PowerShell:" -msgstr "``CertificateThumbprint``: HTTPS リスナーを介して実行する場合、これは接続に使用される Windows 証明書ストアの証明書のサムプリントです。証明書自体の詳細を取得するには、PowerShell で該当する証明書のサムプリントを指定して次のコマンドを実行します。" +#: ../../rst/os_guide/windows_setup.rst:139 +msgid "``CertificateThumbprint``: If you use an HTTPS listener, this is the thumbprint of the certificate in the Windows Certificate Store that is used in the connection. To get the details of the certificate itself, run this command with the relevant certificate thumbprint in PowerShell:" +msgstr "``CertificateThumbprint``: HTTPS リスナーを使用する場合、これは接続に使用される Windows 証明書ストアの証明書のサムプリントです。証明書自体の詳細を取得するには、PowerShell で該当する証明書のサムプリントを指定して次のコマンドを実行します。" -#: ../../rst/os_guide/windows_setup.rst:180 +#: ../../rst/os_guide/windows_setup.rst:147 msgid "Setup WinRM Listener" msgstr "WinRM リスナーの設定" -#: ../../rst/os_guide/windows_setup.rst:181 +#: ../../rst/os_guide/windows_setup.rst:148 msgid "There are three ways to set up a WinRM listener:" msgstr "WinRM リスナーを設定するには、3 つの方法があります。" -#: ../../rst/os_guide/windows_setup.rst:183 -msgid "Using ``winrm quickconfig`` for HTTP or ``winrm quickconfig -transport:https`` for HTTPS. This is the easiest option to use when running outside of a domain environment and a simple listener is required. Unlike the other options, this process also has the added benefit of opening up the Firewall for the ports required and starts the WinRM service." +#: ../../rst/os_guide/windows_setup.rst:150 +msgid "Using ``winrm quickconfig`` for HTTP or ``winrm quickconfig -transport:https`` for HTTPS. This is the easiest option to use when running outside of a domain environment and a simple listener is required. Unlike the other options, this process also has the added benefit of opening up the firewall for the ports required and starts the WinRM service." msgstr "HTTP には ``winrm quickconfig`` を、HTTPS には ``winrm quickconfig -transport:https`` を使用します。これは、ドメイン環境外で動作し、シンプルなリスナーが必要な場合に、最も簡単に使用できるオプションです。他のオプションとは異なり、このプロセスには、必要なポートのためにファイアウォールを開き、WinRM サービスを開始するという利点があります。" -#: ../../rst/os_guide/windows_setup.rst:189 -msgid "Using Group Policy Objects. This is the best way to create a listener when the host is a member of a domain because the configuration is done automatically without any user input. For more information on group policy objects, see the `Group Policy Objects documentation `_." -msgstr "グループポリシーオブジェクトの使用。設定は、ユーザーが入力せずに自動的に行われるため、この方法は、ホストがドメインのメンバーである場合にリスナーを作成するのに最適な方法です。グループポリシーオブジェクトの詳細は、`Group Policy Objects ドキュメント `_ を参照してください。" +#: ../../rst/os_guide/windows_setup.rst:152 +msgid "Using Group Policy Objects (GPO). This is the best way to create a listener when the host is a member of a domain because the configuration is done automatically without any user input. For more information on group policy objects, see the `Group Policy Objects documentation `_." +msgstr "グループポリシーオブジェクト (GPO) の使用。設定は、ユーザーが入力せずに自動的に行われるため、この方法は、ホストがドメインのメンバーである場合にリスナーを作成するのに最適な方法です。グループポリシーオブジェクトの詳細は、`Group Policy Objects documentation `_ を参照してください。" -#: ../../rst/os_guide/windows_setup.rst:194 -msgid "Using PowerShell to create the listener with a specific configuration. This can be done by running the following PowerShell commands:" +#: ../../rst/os_guide/windows_setup.rst:154 +msgid "Using PowerShell to create a listener with a specific configuration. This can be done by running the following PowerShell commands:" msgstr "PowerShell を使用して、特定の設定でリスナーを作成します。これは、以下の PowerShell コマンドを実行することで可能になります。" -#: ../../rst/os_guide/windows_setup.rst:209 -msgid "To see the other options with this PowerShell cmdlet, see `New-WSManInstance `_." -msgstr "この PowerShell コマンドレッドを伴う他のオプションを表示するには、「`New-WSManInstance `_」を参照してください。" +#: ../../rst/os_guide/windows_setup.rst:168 +msgid "To see the other options with this PowerShell command, refer to the `New-WSManInstance `_ documentation." +msgstr "この PowerShell コマンドの他のオプションを確認するには、`New-WSManInstance `_ ドキュメントを参照してください。" -#: ../../rst/os_guide/windows_setup.rst:212 -msgid "When creating an HTTPS listener, an existing certificate needs to be created and stored in the ``LocalMachine\\My`` certificate store. Without a certificate being present in this store, most commands will fail." -msgstr "HTTPS リスナーを作成する際には、既存の証明書を作成し、``LocalMachine\\My`` の証明書ストアに保存する必要があります。このストアに証明書が存在しないと、ほとんどのコマンドが失敗します。" +#: ../../rst/os_guide/windows_setup.rst:171 +msgid "When creating an HTTPS listener, you must create and store a certificate in the ``LocalMachine\\My`` certificate store." +msgstr "HTTPS リスナーを作成するときは、``LocalMachine\\My`` 証明書ストアに証明書を作成して保存する必要があります。" -#: ../../rst/os_guide/windows_setup.rst:217 +#: ../../rst/os_guide/windows_setup.rst:174 msgid "Delete WinRM Listener" msgstr "WinRM リスナーの削除" -#: ../../rst/os_guide/windows_setup.rst:218 -msgid "To remove a WinRM listener:" +#: ../../rst/os_guide/windows_setup.rst:175 +msgid "To remove all WinRM listeners:" msgstr "WinRM リスナーを削除するには、以下を実行します。" -#: ../../rst/os_guide/windows_setup.rst:228 -msgid "The ``Keys`` object is an array of strings, so it can contain different values. By default it contains a key for ``Transport=`` and ``Address=`` which correspond to the values from winrm enumerate winrm/config/Listeners." -msgstr "``Keys`` オブジェクトは文字列の配列であるため、異なる値を含むことができます。デフォルトでは、winrm enumerate winrm/config/Listeners の値に対応する ``Transport=`` および ``Address=`` のキーを含んでいます。" +#: ../../rst/os_guide/windows_setup.rst:181 +msgid "To remove only those listeners that run over HTTPS:" +msgstr "HTTPS で実行されるリスナーのみを削除するには、以下を実行します。" + +#: ../../rst/os_guide/windows_setup.rst:187 +msgid "The ``Keys`` object is an array of strings, so it can contain different values. By default, it contains a key for ``Transport=`` and ``Address=`` which correspond to the values from the ``winrm enumerate winrm/config/Listeners`` command." +msgstr "``Keys`` オブジェクトは文字列の配列であるため、異なる値を含むことができます。デフォルトでは、 ``winrm enumerate winrm/config/Listeners`` コマンドからのの値に対応する ``Transport=`` および ``Address=`` のキーを含んでいます。" -#: ../../rst/os_guide/windows_setup.rst:233 +#: ../../rst/os_guide/windows_setup.rst:190 msgid "WinRM Service Options" msgstr "WinRM サービスオプション" -#: ../../rst/os_guide/windows_setup.rst:234 -msgid "There are a number of options that can be set to control the behavior of the WinRM service component, including authentication options and memory settings." -msgstr "WinRM サービスコンポーネントの動作を制御するように設定でき、認証オプションやメモリー設定など、複数のオプションを設定できます。" +#: ../../rst/os_guide/windows_setup.rst:191 +msgid "You can control the behavior of the WinRM service component, including authentication options and memory settings." +msgstr "認証オプションやメモリー設定など、WinRM サービスコンポーネントの動作を制御できます。" -#: ../../rst/os_guide/windows_setup.rst:237 +#: ../../rst/os_guide/windows_setup.rst:193 msgid "To get an output of the current service configuration options, run the following command:" msgstr "現在のサービス設定オプションの出力を得るには、次のコマンドを実行します。" -#: ../../rst/os_guide/windows_setup.rst:283 -msgid "While many of these options should rarely be changed, a few can easily impact the operations over WinRM and are useful to understand. Some of the important options are:" -msgstr "これらのオプションの多くはほとんど変更する必要はありませんが、いくつかのオプションは WinRM の操作に簡単に影響を与えるため、理解しておくと便利です。重要なオプションの一部を紹介します。" +#: ../../rst/os_guide/windows_setup.rst:238 +msgid "You do not need to change the majority of these options. However, some of the important ones to know about are:" +msgstr "これらのオプションの大部分を変更する必要はありませんが、知っておくべき重要なオプションは次のとおりです。" -#: ../../rst/os_guide/windows_setup.rst:287 -msgid "``Service\\AllowUnencrypted``: This option defines whether WinRM will allow traffic that is run over HTTP without message encryption. Message level encryption is only possible when ``ansible_winrm_transport`` is ``ntlm``, ``kerberos`` or ``credssp``. By default this is ``false`` and should only be set to ``true`` when debugging WinRM messages." -msgstr "``Service\\AllowUnencrypted``: このオプションは、メッセージを暗号化せずに HTTP で実行するトラフィックを WinRM で許可するかどうかを定義します。メッセージレベルの暗号化は、``ansible_winrm_transport`` が ``ntlm``、``kerberos``、または ``credssp`` の場合にのみ可能です。デフォルトでは、これは ``false`` であり、WinRM メッセージをデバッグする場合に限り ``true`` に設定する必要があります。" +#: ../../rst/os_guide/windows_setup.rst:240 +msgid "``Service\\AllowUnencrypted`` - specifies whether WinRM will allow HTTP traffic without message encryption. Message level encryption is only possible when the ``ansible_winrm_transport`` variable is ``ntlm``, ``kerberos`` or ``credssp``. By default, this is ``false`` and you should only set it to ``true`` when debugging WinRM messages." +msgstr "``Service\\AllowUnencrypted``: メッセージを暗号化せずに HTTP トラフィックを WinRM で許可するかどうかを定義します。メッセージレベルの暗号化は、``ansible_winrm_transport`` 変数が ``ntlm``、``kerberos``、または ``credssp`` の場合にのみ可能です。デフォルトでは、これは ``false`` であり、WinRM メッセージをデバッグする場合に限り ``true`` に設定する必要があります。" -#: ../../rst/os_guide/windows_setup.rst:293 -msgid "``Service\\Auth\\*``: These flags define what authentication options are allowed with the WinRM service. By default, ``Negotiate (NTLM)`` and ``Kerberos`` are enabled." -msgstr "``Service\\Auth\\*``: これらのフラグは、WinRM サービスで許可される認証オプションを定義します。デフォルトでは、``Negotiate (NTLM)`` および ``Kerberos`` が有効になります。" +#: ../../rst/os_guide/windows_setup.rst:242 +msgid "``Service\\Auth\\*`` - defines what authentication options you can use with the WinRM service. By default, ``Negotiate (NTLM)`` and ``Kerberos`` are enabled." +msgstr "``Service\\Auth\\*``: WinRM サービスで使用可能な認証オプションを定義します。デフォルトでは、``Negotiate (NTLM)`` および ``Kerberos`` が有効になります。" -#: ../../rst/os_guide/windows_setup.rst:297 -msgid "``Service\\Auth\\CbtHardeningLevel``: Specifies whether channel binding tokens are not verified (None), verified but not required (Relaxed), or verified and required (Strict). CBT is only used when connecting with NTLM or Kerberos over HTTPS." -msgstr "``Service\\Auth\\CbtHardeningLevel``: チャンネルバインディングトークンを検証しない (None)、検証済みだが必要ない (Relaxed)、検証済みで必要 (Strict) のいずれかを指定します。CBT は、HTTPS の NTLM または Kerberos での接続時にのみ使用されます。" +#: ../../rst/os_guide/windows_setup.rst:244 +msgid "``Service\\Auth\\CbtHardeningLevel`` - specifies whether channel binding tokens are not verified (None), verified but not required (Relaxed), or verified and required (Strict). CBT is only used when connecting with NT LAN Manager (NTLM) or Kerberos over HTTPS." +msgstr "``Service\\Auth\\CbtHardeningLevel``: チャンネルバインディングトークンを検証しない (None)、検証済みだが必要ない (Relaxed)、検証済みで必要 (Strict) のいずれかを指定します。CBT は、HTTPS の NT LAN Manager (NTLM) または Kerberos での接続時にのみ使用されます。" -#: ../../rst/os_guide/windows_setup.rst:302 -msgid "``Service\\CertificateThumbprint``: This is the thumbprint of the certificate used to encrypt the TLS channel used with CredSSP authentication. By default this is empty; a self-signed certificate is generated when the WinRM service starts and is used in the TLS process." -msgstr "``Service\\CertificateThumbprint``: これは、CredSSP 認証で使用される TLS チャンネルの暗号化に使用される証明書のサムプリントです。デフォルトでは、これは空です。自己署名証明書は、WinRM サービスの起動時に生成され、TLS プロセスで使用されます。" +#: ../../rst/os_guide/windows_setup.rst:246 +msgid "``Service\\CertificateThumbprint`` - thumbprint of the certificate for encrypting the TLS channel used with CredSSP authentication. By default, this is empty. A self-signed certificate is generated when the WinRM service starts and is used in the TLS process." +msgstr "``Service\\CertificateThumbprint``: CredSSP 認証で使用される TLS チャンネルの暗号化に使用される証明書のサムプリントです。デフォルトでは、これは空です。自己署名証明書は、WinRM サービスの起動時に生成され、TLS プロセスで使用されます。" -#: ../../rst/os_guide/windows_setup.rst:307 -msgid "``Winrs\\MaxShellRunTime``: This is the maximum time, in milliseconds, that a remote command is allowed to execute." +#: ../../rst/os_guide/windows_setup.rst:248 +msgid "``Winrs\\MaxShellRunTime`` - maximum time, in milliseconds, that a remote command is allowed to execute." msgstr "``Winrs\\MaxShellRunTime``: リモートコマンドの実行を許可する最大時間をミリ秒単位で指定します。" -#: ../../rst/os_guide/windows_setup.rst:310 -msgid "``Winrs\\MaxMemoryPerShellMB``: This is the maximum amount of memory allocated per shell, including the shell's child processes." -msgstr "``Winrs\\MaxMemoryPerShellMB``: シェルの子プロセスを含め、シェルごとに割り当てられるメモリーの最大量です。" +#: ../../rst/os_guide/windows_setup.rst:250 +msgid "``Winrs\\MaxMemoryPerShellMB`` - maximum amount of memory allocated per shell, including its child processes." +msgstr "``Winrs\\MaxMemoryPerShellMB``: シェルの子プロセスなど、シェルごとに割り当てられるメモリーの最大量です。" -#: ../../rst/os_guide/windows_setup.rst:313 -msgid "To modify a setting under the ``Service`` key in PowerShell:" -msgstr "PowerShell の ``Service`` キーで設定を変更するには、以下を実行します。" +#: ../../rst/os_guide/windows_setup.rst:252 +msgid "To modify a setting under the ``Service`` key in PowerShell, you need to provide a path to the option after ``winrm/config/Service``:" +msgstr "PowerShell の ``Service`` キーで設定を変更するには、``winrm/config/Service`` の後に オプションへのパスを指定する必要があります。" -#: ../../rst/os_guide/windows_setup.rst:323 -msgid "To modify a setting under the ``Winrs`` key in PowerShell:" -msgstr "PowerShell の ``Winrs`` キーで設定を変更するには、以下を実行します。" +#: ../../rst/os_guide/windows_setup.rst:258 +msgid "For example, to change ``Service\\Auth\\CbtHardeningLevel``:" +msgstr "たとえば、``Service\\Auth\\CbtHardeningLevel`` を変更するには以下を行います。" -#: ../../rst/os_guide/windows_setup.rst:333 -msgid "If running in a domain environment, some of these options are set by GPO and cannot be changed on the host itself. When a key has been configured with GPO, it contains the text ``[Source=\"GPO\"]`` next to the value." -msgstr "ドメイン環境で動作している場合、これらのオプションの一部は GPO によって設定され、ホスト自体では変更できません。GPO で設定されたキーには、値の横に ``[Source=\"GPO\"]`` というテキストが表示されます。" +#: ../../rst/os_guide/windows_setup.rst:264 +msgid "To modify a setting under the ``Winrs`` key in PowerShell, you need to provide a path to the option after ``winrm/config/Winrs``:" +msgstr "PowerShell の ``Winrs`` キーで設定を変更するには、``winrm/config/Winrs`` の後に オプションへのパスを指定する必要があります。" -#: ../../rst/os_guide/windows_setup.rst:338 +#: ../../rst/os_guide/windows_setup.rst:270 +msgid "For example, to change ``Winrs\\MaxShellRunTime``:" +msgstr "たとえば、``Winrs\\MaxShellRunTime`` を変更するには、以下を行います。" + +#: ../../rst/os_guide/windows_setup.rst:276 +msgid "If you run the command in a domain environment, some of these options are set by GPO and cannot be changed on the host itself. When you configured a key with GPO, it contains the text ``[Source=\"GPO\"]`` next to the value." +msgstr "ドメイン環境で動作している場合には、これらのオプションの一部は GPO によって設定され、ホスト自体では変更できません。GPO で設定されたキーには、値の横に ``[Source=\"GPO\"]`` というテキストが表示されます。" + +#: ../../rst/os_guide/windows_setup.rst:280 msgid "Common WinRM Issues" msgstr "一般的な WinRM の問題" -#: ../../rst/os_guide/windows_setup.rst:339 -msgid "Because WinRM has a wide range of configuration options, it can be difficult to setup and configure. Because of this complexity, issues that are shown by Ansible could in fact be issues with the host setup instead." -msgstr "WinRM にはさまざまな設定オプションがあるため、セットアップや設定が難しい場合があります。そのため、Ansible で表示される問題が、実際にはホストの設定の問題である可能性もあります。" +#: ../../rst/os_guide/windows_setup.rst:281 +msgid "WinRM has a wide range of configuration options, which makes its configuration complex. As a result, errors that Ansible displays could in fact be problems with the host setup instead." +msgstr "WinRM にはさまざまな設定オプションがあり、その設定が複雑になるので、Ansible が表示するエラーは、実際にはホストの設定に問題がある可能性があります。" -#: ../../rst/os_guide/windows_setup.rst:343 -msgid "One easy way to determine whether a problem is a host issue is to run the following command from another Windows host to connect to the target Windows host:" +#: ../../rst/os_guide/windows_setup.rst:283 +msgid "To identify a host issue, run the following command from another Windows host to connect to the target Windows host." msgstr "問題がホストの問題であるかどうかを判断する簡単な方法として、別の Windows ホストから次のコマンドを実行して、対象の Windows ホストに接続する方法があります。" -#: ../../rst/os_guide/windows_setup.rst:363 -msgid "If this fails, the issue is probably related to the WinRM setup. If it works, the issue may not be related to the WinRM setup; please continue reading for more troubleshooting suggestions." -msgstr "失敗した場合は、WinRM の設定に問題があると思われます。成功した場合は、問題が WinRM の設定に関連していない可能性があるため、さらに詳しいトラブルシューティングの方法をご確認ください。" +#: ../../rst/os_guide/windows_setup.rst:285 +msgid "To test HTTP:" +msgstr "HTTP をテストするには、以下を実行します。" -#: ../../rst/os_guide/windows_setup.rst:366 +#: ../../rst/os_guide/windows_setup.rst:291 +msgid "To test HTTPS:" +msgstr "HTTPS をテストするには、以下を実行します。" + +#: ../../rst/os_guide/windows_setup.rst:297 +msgid "The command will fail if the certificate is not verifiable." +msgstr "証明書が検証できない場合、コマンドは失敗します。" + +#: ../../rst/os_guide/windows_setup.rst:299 +msgid "To test HTTPS ignoring certificate verification:" +msgstr "証明書の検証を無視する HTTPS をテストするには、以下を実行します。" + +#: ../../rst/os_guide/windows_setup.rst:310 +msgid "If any of the above commands fail, the issue is probably related to the WinRM setup." +msgstr "上記のコマンドのいずれかが失敗した場合には、問題は WinRM 設定に関連している可能性があります。" + +#: ../../rst/os_guide/windows_setup.rst:313 msgid "HTTP 401/Credentials Rejected" msgstr "HTTP 401/認証情報の拒否" -#: ../../rst/os_guide/windows_setup.rst:367 -msgid "A HTTP 401 error indicates the authentication process failed during the initial connection. Some things to check for this are:" -msgstr "HTTP 401 エラーは、最初の接続時に認証プロセスが失敗したことを示します。これを確認するためのいくつかの項目があります。" +#: ../../rst/os_guide/windows_setup.rst:314 +msgid "An HTTP 401 error indicates the authentication process failed during the initial connection. You can check the following to troubleshoot:" +msgstr "HTTP 401 エラーは、最初の接続時に認証プロセスが失敗したことを示します。以下の項目を確認して、トラブルシューティングできます。" -#: ../../rst/os_guide/windows_setup.rst:370 -msgid "Verify that the credentials are correct and set properly in your inventory with ``ansible_user`` and ``ansible_password``" -msgstr "``ansible_user`` および ``ansible_password`` を使用して、認証情報が正しく、インベントリーに適切に設定されていることを確認します。" +#: ../../rst/os_guide/windows_setup.rst:317 +msgid "The credentials are correct and set properly in your inventory with the ``ansible_user`` and ``ansible_password`` variables." +msgstr "``ansible_user`` および ``ansible_password`` 変数を使用して、認証情報が正しく、インベントリーに適切に設定されている。" -#: ../../rst/os_guide/windows_setup.rst:373 -msgid "Ensure that the user is a member of the local Administrators group or has been explicitly granted access (a connection test with the ``winrs`` command can be used to rule this out)." -msgstr "ユーザーがローカルの Administrators グループのメンバーであるか、明示的にアクセスを許可されていることを確認してください (``winrs`` コマンドによる接続テストで除外できます)。" +#: ../../rst/os_guide/windows_setup.rst:319 +msgid "The user is a member of the local Administrators group, or has been explicitly granted access. You can perform a connection test with the ``winrs`` command to rule this out." +msgstr "ユーザーがローカルの Administrators グループのメンバーであるか、明示的にアクセスを許可されている。これは、``winrs`` コマンドによる接続テストで除外できます。" -#: ../../rst/os_guide/windows_setup.rst:377 -msgid "Make sure that the authentication option set by ``ansible_winrm_transport`` is enabled under ``Service\\Auth\\*``" -msgstr "``ansible_winrm_transport`` で設定した認証オプションが、``Service\\Auth\\*`` で有効になっていることを確認してください。" +#: ../../rst/os_guide/windows_setup.rst:321 +msgid "The authentication option set by the ``ansible_winrm_transport`` variable is enabled under ``Service\\Auth\\*``." +msgstr "``ansible_winrm_transport`` で設定した認証オプションが、``Service\\Auth\\*`` で有効になっている。" -#: ../../rst/os_guide/windows_setup.rst:380 -msgid "If running over HTTP and not HTTPS, use ``ntlm``, ``kerberos`` or ``credssp`` with ``ansible_winrm_message_encryption: auto`` to enable message encryption. If using another authentication option or if the installed pywinrm version cannot be upgraded, the ``Service\\AllowUnencrypted`` can be set to ``true`` but this is only recommended for troubleshooting" -msgstr "HTTPS ではなく HTTP で実行する場合は、``ntlm``、``kerberos``、または ``credssp`` と ``ansible_winrm_message_encryption: auto`` を使用してメッセージの暗号化を有効にしてください。他の認証オプションを使用している場合や、インストールされている pywinrm のバージョンをアップグレードできない場合は、``Service\\AllowUnencrypted`` を``true`` に設定できますが、これはトラブルシューティングのためにのみ推奨されます。" +#: ../../rst/os_guide/windows_setup.rst:323 +msgid "If running over HTTP and not HTTPS, use ``ntlm``, ``kerberos`` or ``credssp`` with the ``ansible_winrm_message_encryption: auto`` custom inventory variable to enable message encryption. If you use another authentication option, or if it is not possible to upgrade the installed ``pywinrm`` package, you can set ``Service\\AllowUnencrypted`` to ``true``. This is recommended only for troubleshooting." +msgstr "HTTPS ではなく HTTP で実行する場合は、``ntlm``、``kerberos``、または ``credssp`` を使用してメッセージの暗号化を有効にします。別の認証オプションを使用する場合、またはインストールされた ``pywinrm`` パッケージをアップグレードできない場合には、``Service\\AllowUnencrypted`` を ``true`` に設定できます。これは、トラブルシューティングの目的でのみ推奨されます。" -#: ../../rst/os_guide/windows_setup.rst:386 -msgid "Ensure the downstream packages ``pywinrm``, ``requests-ntlm``, ``requests-kerberos``, and/or ``requests-credssp`` are up to date using ``pip``." -msgstr "ダウンストリームパッケージである ``pywinrm``、``requests-ntlm``、``requests-kerberos``、または ``requests-credssp``、もしくはその組み合わせが ``pip`` を使用して最新の状態になっていることを確認します。" +#: ../../rst/os_guide/windows_setup.rst:325 +msgid "The downstream packages ``pywinrm``, ``requests-ntlm``, ``requests-kerberos``, and/or ``requests-credssp`` are up to date using ``pip``." +msgstr "ダウンストリームパッケージである ``pywinrm``、``requests-ntlm``、``requests-kerberos``、または ``requests-credssp``、もしくはその組み合わせが ``pip`` を使用して最新の状態になっている。" -#: ../../rst/os_guide/windows_setup.rst:389 -msgid "If using Kerberos authentication, ensure that ``Service\\Auth\\CbtHardeningLevel`` is not set to ``Strict``." +#: ../../rst/os_guide/windows_setup.rst:327 +msgid "For Kerberos authentication, ensure that ``Service\\Auth\\CbtHardeningLevel`` is not set to ``Strict``." msgstr "Kerberos 認証を使用する場合は、``Service\\Auth\\CbtHardeningLevel`` が ``Strict`` に設定されていないことを確認してください。" -#: ../../rst/os_guide/windows_setup.rst:392 -msgid "When using Basic or Certificate authentication, make sure that the user is a local account and not a domain account. Domain accounts do not work with Basic and Certificate authentication." -msgstr "Basic 認証や Certificate 認証を使用する際は、ユーザーがドメインアカウントではなく、ローカルアカウントであることを確認してください。ドメインアカウントは、Basic 認証や Certificate 認証では機能しません。" +#: ../../rst/os_guide/windows_setup.rst:329 +msgid "For Basic or Certificate authentication, make sure that the user is a local account. Domain accounts do not work with Basic and Certificate authentication." +msgstr "Basic 認証や Certificate 認証を使用する場合は、ローカルアカウントであることを確認してください。ドメインアカウントは、Basic 認証や Certificate 認証では機能しません。" -#: ../../rst/os_guide/windows_setup.rst:397 +#: ../../rst/os_guide/windows_setup.rst:332 msgid "HTTP 500 Error" msgstr "HTTP 500 Error" -#: ../../rst/os_guide/windows_setup.rst:398 -msgid "These indicate an error has occurred with the WinRM service. Some things to check for include:" -msgstr "これらは、WinRM サービスでエラーが発生したことを示しています。確認すべき点は以下の通りです。" +#: ../../rst/os_guide/windows_setup.rst:333 +msgid "An HTTP 500 error indicates a problem with the WinRM service. You can check the following to troubleshoot:" +msgstr "HTTP 500 エラーは、WinRM サービスに問題があることを示します。以下を確認してトラブルシューティングを行うことができます。" -#: ../../rst/os_guide/windows_setup.rst:401 -msgid "Verify that the number of current open shells has not exceeded either ``WinRsMaxShellsPerUser`` or any of the other Winrs quotas haven't been exceeded." -msgstr "現在のオープンシェルの数が ``WinRsMaxShellsPerUser`` のどちらかを超えていないか、または他の Winrs のクォータを超えていないかを確認してください。" +#: ../../rst/os_guide/windows_setup.rst:335 +msgid "The number of your currently open shells has not exceeded either ``WinRsMaxShellsPerUser``. Alternatively, you did not exceed any of the other Winrs quotas." +msgstr "現在開いているシェルの数が ``WinRsMaxShellsPerUser`` を超えていないか、他の Winrs クォータを超えていません。" -#: ../../rst/os_guide/windows_setup.rst:406 +#: ../../rst/os_guide/windows_setup.rst:338 msgid "Timeout Errors" msgstr "タイムアウトエラー" -#: ../../rst/os_guide/windows_setup.rst:407 -msgid "These usually indicate an error with the network connection where Ansible is unable to reach the host. Some things to check for include:" -msgstr "これらは通常、Ansible がホストに到達できないネットワーク接続のエラーを示しています。チェック項目には以下が含まれます。" +#: ../../rst/os_guide/windows_setup.rst:339 +msgid "Sometimes Ansible is unable to reach the host. These instances usually indicate a problem with the network connection. You can check the following to troubleshoot:" +msgstr "Ansible がホストに到達できないことがあります。これらのインスタンスは通常、ネットワーク接続に問題があることを示します。以下を確認してトラブルシューティングを行うことができます。" -#: ../../rst/os_guide/windows_setup.rst:410 -msgid "Make sure the firewall is not set to block the configured WinRM listener ports" -msgstr "ファイアウォールが、設定された WinRM リスナーポートをブロックするように設定されていないことを確認します。" +#: ../../rst/os_guide/windows_setup.rst:341 +msgid "The firewall is not set to block the configured WinRM listener ports." +msgstr "ファイアウォールが、設定された WinRM リスナーポートをブロックするように設定されていない。" -#: ../../rst/os_guide/windows_setup.rst:411 -msgid "Ensure that a WinRM listener is enabled on the port and path set by the host vars" -msgstr "WinRM リスナーが、ホスト変数によって設定されたポートおよびパスで有効になっていることを確認します。" +#: ../../rst/os_guide/windows_setup.rst:342 +msgid "A WinRM listener is enabled on the port and path set by the host vars." +msgstr "WinRM リスナーが、ホスト変数によって設定されたポートおよびパスで有効になっている。" -#: ../../rst/os_guide/windows_setup.rst:412 -msgid "Ensure that the ``winrm`` service is running on the Windows host and configured for automatic start" -msgstr "Windows ホスト上で ``winrm`` サービスが稼動しており、自動起動するように設定されていることを確認します。" +#: ../../rst/os_guide/windows_setup.rst:343 +msgid "The ``winrm`` service is running on the Windows host and is configured for the automatic start." +msgstr "Windows ホスト上で ``winrm`` サービスが稼動しており、自動起動するように設定されている。" -#: ../../rst/os_guide/windows_setup.rst:416 +#: ../../rst/os_guide/windows_setup.rst:346 msgid "Connection Refused Errors" msgstr "接続拒否エラー" -#: ../../rst/os_guide/windows_setup.rst:417 -msgid "These usually indicate an error when trying to communicate with the WinRM service on the host. Some things to check for:" -msgstr "これらは通常、ホスト上の WinRM サービスと通信しようとする際にエラーを示します。いくつかのチェック項目があります。" +#: ../../rst/os_guide/windows_setup.rst:347 +msgid "When you communicate with the WinRM service on the host you can encounter some problems. Check the following to help the troubleshooting:" +msgstr "ホストの WinRM サービスと通信すると、いくつかの問題が発生する可能性があります。トラブルシューティングを行うには、以下を確認してください。" -#: ../../rst/os_guide/windows_setup.rst:420 -msgid "Ensure that the WinRM service is up and running on the host. Use ``(Get-Service -Name winrm).Status`` to get the status of the service." -msgstr "ホスト上で WinRM サービスが稼働していることを確認します。``(Get-Service -Name winrm).Status`` を使用して、サービスのステータスを取得します。" +#: ../../rst/os_guide/windows_setup.rst:349 +msgid "The WinRM service is up and running on the host. Use the ``(Get-Service -Name winrm).Status`` command to get the status of the service." +msgstr "ホスト上で WinRM サービスが稼働している。``(Get-Service -Name winrm).Status`` コマンドを使用して、サービスのステータスを取得します。" -#: ../../rst/os_guide/windows_setup.rst:422 -msgid "Check that the host firewall is allowing traffic over the WinRM port. By default this is ``5985`` for HTTP and ``5986`` for HTTPS." -msgstr "ホスト側のファイアウォールが、WinRM ポートへのトラフィックを許可していることを確認します。デフォルトでは、HTTP では ``5985``、HTTPS では ``5986`` となっています。" +#: ../../rst/os_guide/windows_setup.rst:350 +msgid "The host firewall is allowing traffic over the WinRM port. By default this is ``5985`` for HTTP and ``5986`` for HTTPS." +msgstr "ホスト側のファイアウォールが、WinRM ポートへのトラフィックを許可している。デフォルトでは、HTTP では ``5985``、HTTPS では ``5986`` となっています。" -#: ../../rst/os_guide/windows_setup.rst:425 -msgid "Sometimes an installer may restart the WinRM or HTTP service and cause this error. The best way to deal with this is to use ``win_psexec`` from another Windows host." -msgstr "インストーラーが WinRM や HTTP サービスを再起動してしまい、このエラーが発生することがあります。これに対処する最良の方法は、別の Windows ホストから ``win_psexec`` を使用します。" +#: ../../rst/os_guide/windows_setup.rst:352 +msgid "Sometimes an installer may restart the WinRM or HTTP service and cause this error. The best way to deal with this is to use the ``win_psexec`` module from another Windows host." +msgstr "インストーラーが WinRM や HTTP サービスを再起動してしまい、このエラーが発生することがあります。これに対処する最良の方法は、別の Windows ホストから ``win_psexec`` モジュールを使用します。" -#: ../../rst/os_guide/windows_setup.rst:430 +#: ../../rst/os_guide/windows_setup.rst:355 msgid "Failure to Load Builtin Modules" msgstr "組み込みモジュールの読み込みに失敗" -#: ../../rst/os_guide/windows_setup.rst:431 -msgid "If powershell fails with an error message similar to ``The 'Out-String' command was found in the module 'Microsoft.PowerShell.Utility', but the module could not be loaded.`` then there could be a problem trying to access all the paths specified by the ``PSModulePath`` environment variable. A common cause of this issue is that the ``PSModulePath`` environment variable contains a UNC path to a file share and because of the double hop/credential delegation issue the Ansible process cannot access these folders. The way around this problems is to either:" -msgstr "``The 'Out-String' command was found in the module 'Microsoft.PowerShell.Utility', but the module could not be loaded.`` のようなエラーメッセージで powershell が失敗する場合は、``PSModulePath`` 環境変数で指定されたすべてのパスにアクセスしようとすると問題が発生する可能性があります。この問題の一般的な原因は、``PSModulePath`` 環境変数にファイル共有への UNC パスが含まれており、ダブルホップ/認証情報の委譲問題のために Ansible プロセスがこれらのディレクトリーにアクセスできないことです。この問題を回避するには、以下の方法があります。" +#: ../../rst/os_guide/windows_setup.rst:356 +msgid "Sometimes PowerShell fails with an error message similar to:" +msgstr "PowerShell が以下のようなエラーメッセージで失敗することがあります。" + +#: ../../rst/os_guide/windows_setup.rst:362 +msgid "In that case, there could be a problem when trying to access all the paths specified by the ``PSModulePath`` environment variable." +msgstr "この場合、``PSModulePath`` 環境変数が指定したすべてのパスにアクセスしようとすると問題が生じる可能性があります。" -#: ../../rst/os_guide/windows_setup.rst:437 -msgid "Remove the UNC path from the ``PSModulePath`` environment variable, or" -msgstr "``PSModulePath`` 環境変数から UNC パスを削除します。" +#: ../../rst/os_guide/windows_setup.rst:364 +msgid "A common cause of this issue is that ``PSModulePath`` contains a Universal Naming Convention (UNC) path to a file share. Additionally, the double hop/credential delegation issue causes that the Ansible process cannot access these folders. To work around this problem is to either:" +msgstr "この問題の一般的な原因は、``PSModulePath``ファイル共有への汎用命名規則 (UNC) パスが含まれています。さらに、ダブルホップ/認証情報の委任の問題により、Ansible プロセスがこれらのフォルダーにアクセスできなくなります。この問題を回避するには、次のいずれかを行います。" -#: ../../rst/os_guide/windows_setup.rst:438 -msgid "Use an authentication option that supports credential delegation like ``credssp`` or ``kerberos`` with credential delegation enabled" -msgstr "認証情報の委譲を有効にした ``credssp`` や ``kerberos`` のような、認証情報の委譲をサポートする認証オプションを使用します。" +#: ../../rst/os_guide/windows_setup.rst:366 +msgid "Remove the UNC path from ``PSModulePath``." +msgstr "``PSModulePath`` から UNC パスを削除します。" + +#: ../../rst/os_guide/windows_setup.rst:368 +msgid "or" +msgstr "または" -#: ../../rst/os_guide/windows_setup.rst:440 +#: ../../rst/os_guide/windows_setup.rst:370 +msgid "Use an authentication option that supports credential delegation like ``credssp`` or ``kerberos``. You need to have the credential delegation enabled." +msgstr "``credssp`` や ``kerberos`` のような、認証情報の委譲をサポートする認証オプションを使用します。認証情報の委譲を有効にする必要があります。" + +#: ../../rst/os_guide/windows_setup.rst:372 msgid "See `KB4076842 `_ for more information on this problem." msgstr "この問題の詳細は、「`KB4076842 `_」を参照してください。" -#: ../../rst/os_guide/windows_setup.rst:443 +#: ../../rst/os_guide/windows_setup.rst:375 msgid "Windows SSH Setup" msgstr "Windows SSH の設定" -#: ../../rst/os_guide/windows_setup.rst:444 +#: ../../rst/os_guide/windows_setup.rst:376 msgid "Ansible 2.8 has added an experimental SSH connection for Windows managed nodes." msgstr "Ansible 2.8 では、Windows 管理ノードの実験的な SSH 接続が追加されました。" -#: ../../rst/os_guide/windows_setup.rst:447 -msgid "Use this feature at your own risk! Using SSH with Windows is experimental, the implementation may make backwards incompatible changes in feature releases. The server side components can be unreliable depending on the version that is installed." +#: ../../rst/os_guide/windows_setup.rst:379 +msgid "Use this feature at your own risk! Using SSH with Windows is experimental. This implementation may make backwards incompatible changes in future releases. The server-side components can be unreliable depending on your installed version." msgstr "この機能はご自身の責任でお使いください。Windows での SSH の使用は実験的なものであり、実装は機能リリースにおいて後方互換性のない変更を行う可能性があります。また、サーバー側のコンポーネントは、インストールされているバージョンによっては信頼性に欠けることがあります。" -#: ../../rst/os_guide/windows_setup.rst:453 +#: ../../rst/os_guide/windows_setup.rst:383 msgid "Installing OpenSSH using Windows Settings" msgstr "Windows 設定を使用した OpenSSH のインストール" -#: ../../rst/os_guide/windows_setup.rst:454 -msgid "OpenSSH can be used to connect Window 10 clients to Windows Server 2019. OpenSSH Client is available to install on Windows 10 build 1809 and later, while OpenSSH Server is available to install on Windows Server 2019 and later." +#: ../../rst/os_guide/windows_setup.rst:384 +msgid "You can use OpenSSH to connect Window 10 clients to Windows Server 2019. OpenSSH Client is available to install on Windows 10 build 1809 and later. OpenSSH Server is available to install on Windows Server 2019 and later." msgstr "OpenSSH は、WinkW 10 クライアントを Windows Server 2019 に接続するために使用できます。OpenSSH クライアントは Windows 10 ビルド 1809 以降にインストールできますが、OpenSSH Server は Windows Server 2019 以降に利用できます。" -#: ../../rst/os_guide/windows_setup.rst:457 -msgid "Please refer `this guide `_." -msgstr "`this guide `_ を参照してください。" +#: ../../rst/os_guide/windows_setup.rst:386 +msgid "For more information, refer to `Get started with OpenSSH for Windows `_." +msgstr "詳細は、`Get started with OpenSSH for Windows ` を参照してください。" -#: ../../rst/os_guide/windows_setup.rst:460 +#: ../../rst/os_guide/windows_setup.rst:389 msgid "Installing Win32-OpenSSH" msgstr "Win32-OpenSSH のインストール" -#: ../../rst/os_guide/windows_setup.rst:461 -msgid "The first step to using SSH with Windows is to install the `Win32-OpenSSH `_ service on the Windows host. Microsoft offers a way to install ``Win32-OpenSSH`` through a Windows capability but currently the version that is installed through this process is too old to work with Ansible. To install ``Win32-OpenSSH`` for use with Ansible, select one of these installation options:" -msgstr "Windows で SSH を利用するための最初のステップは、Windows ホストに `Win32-OpenSSH `_ サービスをインストールすることです。Microsoft 社では、Windows の機能を利用して ``Win32-OpenSSH`` をインストールする方法を提供していますが、現在、この方法でインストールされるバージョンは、Ansible で動作させるには古すぎます。Ansible で使用するために ``Win32-OpenSSH`` をインストールするには、以下のインストールオプションのいずれかを選択します。" +#: ../../rst/os_guide/windows_setup.rst:390 +msgid "To install the `Win32-OpenSSH `_ service for use with Ansible, select one of these installation options:" +msgstr "Ansible で使用する `Win32-OpenSSH `_ サービスをインストールするには、以下のいずれかのインストールオプションを選択します。" -#: ../../rst/os_guide/windows_setup.rst:467 -msgid "Manually install the service, following the `install instructions `_ from Microsoft." -msgstr "Microsoft 社が提供する `インストール手順 `_ に従って、サービスを手動でインストールしてください。" +#: ../../rst/os_guide/windows_setup.rst:393 +msgid "Manually install ``Win32-OpenSSH``, following the `install instructions `_ from Microsoft." +msgstr "Microsoft 社が提供する `install instructions `_ に従って、``Win32-OpenSSH`` を手動でインストールしてください。" -#: ../../rst/os_guide/windows_setup.rst:470 -msgid "Install the `openssh `_ package using Chocolatey:" -msgstr "Chocolatey を使用して `openssh `_ パッケージをインストールします。" +#: ../../rst/os_guide/windows_setup.rst:395 +msgid "Use Chocolatey:" +msgstr "Chocolatey を使用します。" -#: ../../rst/os_guide/windows_setup.rst:476 -msgid "Use ``win_chocolatey`` to install the service" -msgstr "``win_chocolatey`` を使用してサービスをインストールします。" +#: ../../rst/os_guide/windows_setup.rst:401 +msgid "Use the ``win_chocolatey`` Ansible module:" +msgstr "Ansibleモジュール ``win_chocolatey`` を使用します。" -#: ../../rst/os_guide/windows_setup.rst:486 -msgid "Use an existing Ansible Galaxy role like `jborean93.win_openssh `_:" -msgstr "`jborean93.win_openssh `_ などの既存の Ansible Galaxy ロールを使用します。" +#: ../../rst/os_guide/windows_setup.rst:411 +msgid "Install an Ansible Galaxy role for example `jborean93.win_openssh `_:" +msgstr "`jborean93.win_openssh `_ などの Ansible Galaxy ロールをインストールします。" -#: ../../rst/os_guide/windows_setup.rst:503 -msgid "``Win32-OpenSSH`` is still a beta product and is constantly being updated to include new features and bugfixes. If you are using SSH as a connection option for Windows, it is highly recommend you install the latest release from one of the 3 methods above." -msgstr "``Win32-OpenSSH`` は未だベータ版の製品であり、新機能やバグ修正を含めて常に更新されています。Windows で SSH 接続をご利用の方は、上記 3 つの方法から最新版をインストールすることが強く推奨されます。" +#: ../../rst/os_guide/windows_setup.rst:417 +msgid "Use the role in your playbook:" +msgstr "playbook のロールを使用します。" + +#: ../../rst/os_guide/windows_setup.rst:428 +msgid "``Win32-OpenSSH`` is still a beta product and is constantly being updated to include new features and bugfixes. If you use SSH as a connection option for Windows, we highly recommend you install the latest version." +msgstr "``Win32-OpenSSH`` は未だベータ版の製品であり、新機能やバグ修正を含めて常に更新されています。Windows で SSH 接続をご利用の方は、上記 3 つの方法から最新版をインストールすることを強く推奨します。" -#: ../../rst/os_guide/windows_setup.rst:509 +#: ../../rst/os_guide/windows_setup.rst:431 msgid "Configuring the Win32-OpenSSH shell" msgstr "Win32-OpenSSH シェルの設定" -#: ../../rst/os_guide/windows_setup.rst:511 -msgid "By default ``Win32-OpenSSH`` will use ``cmd.exe`` as a shell. To configure a different shell, use an Ansible task to define the registry setting:" -msgstr "デフォルトでは、``Win32-OpenSSH`` は ``cmd.exe`` をシェルとして使用します。別のシェルを設定するには、Ansible タスクを使用して、レジストリー設定を定義します。" +#: ../../rst/os_guide/windows_setup.rst:433 +msgid "By default ``Win32-OpenSSH`` uses ``cmd.exe`` as a shell." +msgstr "デフォルトでは、``Win32-OpenSSH`` はシェルとして ``cmd.exe`` を使用します。" -#: ../../rst/os_guide/windows_setup.rst:532 +#: ../../rst/os_guide/windows_setup.rst:435 +msgid "To configure a different shell, use an Ansible playbook with a task to define the registry setting:" +msgstr "別のシェルを設定するには、Ansible Playbook を使用して、レジストリー設定を定義します。" + +#: ../../rst/os_guide/windows_setup.rst:447 +msgid "To revert the settings back to the default shell:" +msgstr "設定をデフォルトのシェルに戻すには、以下を実行します。" + +#: ../../rst/os_guide/windows_setup.rst:458 msgid "Win32-OpenSSH Authentication" msgstr "Win32-OpenSSH 認証" -#: ../../rst/os_guide/windows_setup.rst:533 -msgid "Win32-OpenSSH authentication with Windows is similar to SSH authentication on Unix/Linux hosts. You can use a plaintext password or SSH public key authentication, add public keys to an ``authorized_key`` file in the ``.ssh`` folder of the user's profile directory, and configure the service using the ``sshd_config`` file used by the SSH service as you would on a Unix/Linux host." -msgstr "Windows での Win32-OpenSSH 認証は、Unix/Linux ホストでの SSH 認証に似ています。平文のパスワードまたは SSH 公開鍵認証を使用し、公開鍵をユーザーのプロファイルディレクトリーの ``.ssh`` ディレクトリーにある ``authorized_key`` ファイルに追加し、Unix/Linux ホストと同様に SSH サービスで使用される ``sshd_config`` ファイルを使用してサービスを設定することができます。" +#: ../../rst/os_guide/windows_setup.rst:459 +msgid "Win32-OpenSSH authentication with Windows is similar to SSH authentication on Unix/Linux hosts. You can use a plaintext password or SSH public key authentication." +msgstr "Windows での Win32-OpenSSH 認証は、Unix/Linux ホストの SSH 認証に似ています。プレーンテキストのパスワードまたは SSH 公開鍵認証を使用できます。" + +#: ../../rst/os_guide/windows_setup.rst:461 +msgid "For the key-based authentication:" +msgstr "鍵ベース認証の使用" + +#: ../../rst/os_guide/windows_setup.rst:463 +msgid "Add your public keys to an ``authorized_key`` file in the ``.ssh`` folder of the user's profile directory." +msgstr "ユーザーのプロファイルディレクトリーの ``.ssh`` フォルダーにある ``authorized_key`` ファイルに公開鍵を追加します。" + +#: ../../rst/os_guide/windows_setup.rst:465 +msgid "Configure the SSH service using the ``sshd_config`` file." +msgstr "``sshd_config`` ファイルを使用して SSH サービスを設定します。" -#: ../../rst/os_guide/windows_setup.rst:540 -msgid "When using SSH key authentication with Ansible, the remote session won't have access to the user's credentials and will fail when attempting to access a network resource. This is also known as the double-hop or credential delegation issue. There are two ways to work around this issue:" -msgstr "Ansible で SSH キー認証を使用する場合は、リモートセッションがユーザーの認証情報にアクセスできず、ネットワークリソースにアクセスしようとすると失敗することがあります。これは、ダブルホップや認証情報の委譲の問題としても知られています。この問題を回避するには 2 つの方法があります。" +#: ../../rst/os_guide/windows_setup.rst:467 +msgid "When using SSH key authentication with Ansible, the remote session will not have access to user credentials and will fail when attempting to access a network resource. This is also known as the double-hop or credential delegation issue. To work around this problem:" +msgstr "Ansible で SSH キー認証を使用する場合は、リモートセッションがユーザーの認証情報にアクセスできず、ネットワークリソースにアクセスしようとすると失敗することがあります。これは、ダブルホップや認証情報の委譲の問題としても知られています。この問題を回避するには以下を行います。" -#: ../../rst/os_guide/windows_setup.rst:545 -msgid "Use plaintext password auth by setting ``ansible_password``" -msgstr "``ansible_password`` を設定して平文テキストのパスワード認証を使用する" +#: ../../rst/os_guide/windows_setup.rst:469 +msgid "Use plaintext password authentication by setting the ``ansible_password`` variable." +msgstr "``ansible_password`` 変数を設定して、プレーンテキストのパスワード認証を使用する。" -#: ../../rst/os_guide/windows_setup.rst:546 -msgid "Use ``become`` on the task with the credentials of the user that needs access to the remote resource" -msgstr "リモートリソースへのアクセスを必要とするユーザーの認証情報を使用して、タスクで ``become`` を使用する" +#: ../../rst/os_guide/windows_setup.rst:470 +msgid "Use the ``become`` directive on the task with the credentials of the user that needs access to the remote resource." +msgstr "リモートリソースへのアクセスを必要とするユーザーの認証情報を使用して、タスクで ``become`` ディレクティブを使用する。" -#: ../../rst/os_guide/windows_setup.rst:549 +#: ../../rst/os_guide/windows_setup.rst:473 msgid "Configuring Ansible for SSH on Windows" msgstr "Windows で SSH 用に Ansible の設定" -#: ../../rst/os_guide/windows_setup.rst:550 +#: ../../rst/os_guide/windows_setup.rst:474 msgid "To configure Ansible to use SSH for Windows hosts, you must set two connection variables:" msgstr "Ansible が Windows ホストに SSH を使用するように設定するには、接続変数を 2 つ設定する必要があります。" -#: ../../rst/os_guide/windows_setup.rst:552 +#: ../../rst/os_guide/windows_setup.rst:476 msgid "set ``ansible_connection`` to ``ssh``" msgstr "``ansible_connection`` を ``ssh`` に設定します。" -#: ../../rst/os_guide/windows_setup.rst:553 +#: ../../rst/os_guide/windows_setup.rst:477 msgid "set ``ansible_shell_type`` to ``cmd`` or ``powershell``" msgstr "``ansible_shell_type`` を ``cmd`` または ``powershell`` に設定する" -#: ../../rst/os_guide/windows_setup.rst:555 -msgid "The ``ansible_shell_type`` variable should reflect the ``DefaultShell`` configured on the Windows host. Set to ``cmd`` for the default shell or set to ``powershell`` if the ``DefaultShell`` has been changed to PowerShell." -msgstr "``ansible_shell_type`` 変数には、Windows ホストで設定されている``DefaultShell`` を反映させる必要があります。デフォルトシェルの場合は ``cmd`` に、``DefaultShell`` が PowerShell に変更している場合は ``powershell`` に設定します。" +#: ../../rst/os_guide/windows_setup.rst:479 +msgid "The ``ansible_shell_type`` variable should reflect the ``DefaultShell`` configured on the Windows host. Set ``ansible_shell_type`` to ``cmd`` for the default shell. Alternatively, set ``ansible_shell_type`` to ``powershell`` if you changed ``DefaultShell`` to PowerShell." +msgstr "``ansible_shell_type`` 変数には、Windows ホストで設定されている``DefaultShell`` を反映させる必要があります。デフォルトシェルの場合は ``ansible_shell_type`` は ``cmd`` に設定します。または、``DefaultShell`` を PowerShell に変更した場合には ``ansible_shell_type`` を ``powershell`` に設定します。" -#: ../../rst/os_guide/windows_setup.rst:560 +#: ../../rst/os_guide/windows_setup.rst:482 msgid "Known issues with SSH on Windows" msgstr "Windows での SSH に関する既知の問題" -#: ../../rst/os_guide/windows_setup.rst:561 -msgid "Using SSH with Windows is experimental, and we expect to uncover more issues. Here are the known ones:" -msgstr "Windows での SSH の使用は実験的なものであり、より多くの問題が明らかになることを期待しています。ここでは、既知のものを紹介します。" +#: ../../rst/os_guide/windows_setup.rst:483 +msgid "Using SSH with Windows is experimental. Currently existing issues are:" +msgstr "Windows での SSH の使用は実験的なものです。現在、既存の問題は次のとおりです。" -#: ../../rst/os_guide/windows_setup.rst:564 -msgid "Win32-OpenSSH versions older than ``v7.9.0.0p1-Beta`` do not work when ``powershell`` is the shell type" +#: ../../rst/os_guide/windows_setup.rst:485 +msgid "Win32-OpenSSH versions older than ``v7.9.0.0p1-Beta`` do not work when ``powershell`` is the shell type." msgstr "``powershell`` がシェルタイプの場合は、``v7.9.0.0p1-Beta`` よりも古い Win32-OpenSSH バージョンは機能しません。" -#: ../../rst/os_guide/windows_setup.rst:565 -msgid "While SCP should work, SFTP is the recommended SSH file transfer mechanism to use when copying or fetching a file" -msgstr "SCP も有効ですが、SFTP は、ファイルのコピーまたは取得時に使用する、推奨される SSH ファイル転送メカニズムです。" +#: ../../rst/os_guide/windows_setup.rst:486 +msgid "While Secure Copy Protocol (SCP) should work, SSH File Transfer Protocol (SFTP) is the recommended mechanism to use when copying or fetching a file." +msgstr "Secure Copy Protocol (SCP) も有効ですが、SSH File Transfer Protocol (SFTP) は、ファイルのコピーまたは取得時に使用する、推奨のメカニズムです。" #: ../../rst/os_guide/windows_usage.rst:4 msgid "Using Ansible and Windows" @@ -1842,17 +1922,17 @@ msgid "Certificate" msgstr "証明書" #: ../../rst/os_guide/windows_winrm.rst:59 -#: ../../rst/os_guide/windows_winrm.rst:300 +#: ../../rst/os_guide/windows_winrm.rst:302 msgid "Kerberos" msgstr "Kerberos" #: ../../rst/os_guide/windows_winrm.rst:61 -#: ../../rst/os_guide/windows_winrm.rst:270 +#: ../../rst/os_guide/windows_winrm.rst:272 msgid "NTLM" msgstr "NTLM" #: ../../rst/os_guide/windows_winrm.rst:63 -#: ../../rst/os_guide/windows_winrm.rst:515 +#: ../../rst/os_guide/windows_winrm.rst:517 msgid "CredSSP" msgstr "CredSSP" @@ -1885,559 +1965,635 @@ msgid "Encrypted private keys cannot be used as the urllib3 library that is used msgstr "WinRM 向けに Ansible が使用する urllib3 ライブラリーがこの機能をサポートしていないため、暗号化された秘密鍵は使用できません。" #: ../../rst/os_guide/windows_winrm.rst:120 +msgid "Certificate authentication does not work with a TLS 1.3 connection." +msgstr "証明書認証は、TLS 1.3 接続では機能しません。" + +#: ../../rst/os_guide/windows_winrm.rst:122 msgid ".._winrm_certificate_generate:" msgstr ".._winrm_certificate_generate:" -#: ../../rst/os_guide/windows_winrm.rst:123 +#: ../../rst/os_guide/windows_winrm.rst:125 msgid "Generate a Certificate" msgstr "証明書の生成" -#: ../../rst/os_guide/windows_winrm.rst:125 +#: ../../rst/os_guide/windows_winrm.rst:127 msgid "A certificate must be generated before it can be mapped to a local user. This can be done using one of the following methods:" msgstr "証明書をローカルユーザーにマッピングする前に、証明書を生成する必要があります。これは、以下のいずれかの方法で行うことができます。" -#: ../../rst/os_guide/windows_winrm.rst:128 +#: ../../rst/os_guide/windows_winrm.rst:130 msgid "OpenSSL" msgstr "OpenSSL" -#: ../../rst/os_guide/windows_winrm.rst:129 +#: ../../rst/os_guide/windows_winrm.rst:131 msgid "PowerShell, using the ``New-SelfSignedCertificate`` cmdlet" msgstr "``New-SelfSignedCertificate`` コマンドレットを使用した PowerShell" -#: ../../rst/os_guide/windows_winrm.rst:130 +#: ../../rst/os_guide/windows_winrm.rst:132 msgid "Active Directory Certificate Services" msgstr "Active Directory 証明書サービス" -#: ../../rst/os_guide/windows_winrm.rst:132 +#: ../../rst/os_guide/windows_winrm.rst:134 msgid "Active Directory Certificate Services is beyond of scope in this documentation but may be the best option to use when running in a domain environment. For more information, see the `Active Directory Certificate Services documentation `_." msgstr "Active Directory Certificate Services は、このドキュメントでは対象外になりますが、ドメイン環境で実行する場合には、最適なオプションになるかもしれません。詳細は、`Active Directory Certificate Services のドキュメント `_ を参照してください。" -#: ../../rst/os_guide/windows_winrm.rst:136 +#: ../../rst/os_guide/windows_winrm.rst:138 msgid "Using the PowerShell cmdlet ``New-SelfSignedCertificate`` to generate a certificate for authentication only works when being generated from a Windows 10 or Windows Server 2012 R2 host or later. OpenSSL is still required to extract the private key from the PFX certificate to a PEM file for Ansible to use." msgstr "PowerShell コマンドレット (``New-SelfSignedCertificate``) を使用して認証用の証明書を生成する場合は、Windows 10 または Windows Server 2012 R2 ホスト以降から生成された場合にのみ機能します。PFX 証明書から Ansible が使用する PEM ファイルに秘密鍵を抽出するには、OpenSSL が引き続き必要となります。" -#: ../../rst/os_guide/windows_winrm.rst:142 +#: ../../rst/os_guide/windows_winrm.rst:144 msgid "To generate a certificate with ``OpenSSL``:" msgstr "``OpenSSL`` で証明書を生成するには、以下を実行します。" -#: ../../rst/os_guide/windows_winrm.rst:162 +#: ../../rst/os_guide/windows_winrm.rst:164 msgid "To generate a certificate with ``New-SelfSignedCertificate``:" msgstr "``New-SelfSignedCertificate`` で証明書を生成するには、以下を実行します。" -#: ../../rst/os_guide/windows_winrm.rst:190 +#: ../../rst/os_guide/windows_winrm.rst:192 msgid "To convert the PFX file to a private key that pywinrm can use, run the following command with OpenSSL ``openssl pkcs12 -in cert.pfx -nocerts -nodes -out cert_key.pem -passin pass: -passout pass:``" msgstr "PFX ファイルを pywinrm が使用できる秘密鍵に変換するには、OpenSSL で ``openssl pkcs12 -in cert.pfx -nocerts -nodes -out cert_key.pem -passin pass: -passout pass:`` コマンドを実行します。" -#: ../../rst/os_guide/windows_winrm.rst:197 +#: ../../rst/os_guide/windows_winrm.rst:199 msgid "Import a Certificate to the Certificate Store" msgstr "証明書ストアへの証明書のインポート" -#: ../../rst/os_guide/windows_winrm.rst:199 +#: ../../rst/os_guide/windows_winrm.rst:201 msgid "Once a certificate has been generated, the issuing certificate needs to be imported into the ``Trusted Root Certificate Authorities`` of the ``LocalMachine`` store, and the client certificate public key must be present in the ``Trusted People`` folder of the ``LocalMachine`` store. For this example, both the issuing certificate and public key are the same." msgstr "証明書が生成されたら、発行した証明書を ``LocalMachine`` ストアの ``Trusted Root Certificate Authorities`` にインポートし、クライアント証明書の公開鍵を ``LocalMachine`` ストアの ``Trusted People`` ディレクトリーに存在させる必要があります。この例では、発行した証明書と公開鍵の両方が同じものです。" -#: ../../rst/os_guide/windows_winrm.rst:205 +#: ../../rst/os_guide/windows_winrm.rst:207 msgid "Following example shows how to import the issuing certificate:" msgstr "以下の例では、発行した証明書をインポートする方法を示します。" -#: ../../rst/os_guide/windows_winrm.rst:219 +#: ../../rst/os_guide/windows_winrm.rst:221 msgid "If using ADCS to generate the certificate, then the issuing certificate will already be imported and this step can be skipped." msgstr "ADCS を使用して証明書を生成する場合は、発行する証明書がすでにインポートされているため、この手順は省略できます。" -#: ../../rst/os_guide/windows_winrm.rst:222 +#: ../../rst/os_guide/windows_winrm.rst:224 msgid "The code to import the client certificate public key is:" msgstr "クライアント証明書の公開鍵をインポートするコードは以下のとおりです。" -#: ../../rst/os_guide/windows_winrm.rst:239 +#: ../../rst/os_guide/windows_winrm.rst:241 msgid "Mapping a Certificate to an Account" msgstr "証明書のアカウントへのマッピング" -#: ../../rst/os_guide/windows_winrm.rst:241 +#: ../../rst/os_guide/windows_winrm.rst:243 msgid "Once the certificate has been imported, map it to the local user account:" msgstr "証明書をインポートしたら、これをローカルユーザーアカウントにマッピングします。" -#: ../../rst/os_guide/windows_winrm.rst:262 +#: ../../rst/os_guide/windows_winrm.rst:264 msgid "Once this is complete, the hostvar ``ansible_winrm_cert_pem`` should be set to the path of the public key and the ``ansible_winrm_cert_key_pem`` variable should be set to the path of the private key." msgstr "これが完了したら、ホスト変数 ``ansible_winrm_cert_pem`` に公開鍵のパスを設定し、変数``ansible_winrm_cert_key_pem`` に秘密鍵のパスを設定してください。" -#: ../../rst/os_guide/windows_winrm.rst:272 +#: ../../rst/os_guide/windows_winrm.rst:274 msgid "NTLM is an older authentication mechanism used by Microsoft that can support both local and domain accounts. NTLM is enabled by default on the WinRM service, so no setup is required before using it." msgstr "NTLM は、Microsoft が使用している古い認証メカニズムで、ローカルアカウントとドメインアカウントの両方をサポートしています。NTLM は、WinRM サービスでデフォルトで有効になっているため、使用する前に設定する必要はありません。" -#: ../../rst/os_guide/windows_winrm.rst:276 +#: ../../rst/os_guide/windows_winrm.rst:278 msgid "NTLM is the easiest authentication protocol to use and is more secure than ``Basic`` authentication. If running in a domain environment, ``Kerberos`` should be used instead of NTLM." msgstr "NTLM は最も簡単に使用できる認証プロトコルであり、``Basic`` 認証よりも安全です。ドメイン環境で稼働している場合は、NTLM の代わりに ``Kerberos`` を使用する必要があります。" -#: ../../rst/os_guide/windows_winrm.rst:280 +#: ../../rst/os_guide/windows_winrm.rst:282 msgid "Kerberos has several advantages over using NTLM:" msgstr "Kerberos は NTLM の使用と比較して、以下のような利点があります。" -#: ../../rst/os_guide/windows_winrm.rst:282 +#: ../../rst/os_guide/windows_winrm.rst:284 msgid "NTLM is an older protocol and does not support newer encryption protocols." msgstr "NTLM は古いプロトコルであり、新しい暗号化プロトコルをサポートしません。" -#: ../../rst/os_guide/windows_winrm.rst:284 +#: ../../rst/os_guide/windows_winrm.rst:286 msgid "NTLM is slower to authenticate because it requires more round trips to the host in the authentication stage." msgstr "NTLM は、認証の段階でホストへのラウンドトリップが多くなるため、認証に時間がかかります。" -#: ../../rst/os_guide/windows_winrm.rst:286 +#: ../../rst/os_guide/windows_winrm.rst:288 msgid "Unlike Kerberos, NTLM does not allow credential delegation." msgstr "Kerberos とは異なり、NTLM は認証情報の委譲を許可していません。" -#: ../../rst/os_guide/windows_winrm.rst:288 +#: ../../rst/os_guide/windows_winrm.rst:290 msgid "This example shows host variables configured to use NTLM authentication:" msgstr "以下の例では、NTLM 認証を使用するように設定されているホスト変数を示しています。" -#: ../../rst/os_guide/windows_winrm.rst:302 +#: ../../rst/os_guide/windows_winrm.rst:304 msgid "Kerberos is the recommended authentication option to use when running in a domain environment. Kerberos supports features like credential delegation and message encryption over HTTP and is one of the more secure options that is available through WinRM." msgstr "Kerberos は、ドメイン環境で実行する場合に使用する推奨の認証オプションです。Kerberos は、認証情報の委譲や HTTP でのメッセージ暗号化などの機能をサポートしており、WinRM で利用できるより安全なオプションの 1 つです。" -#: ../../rst/os_guide/windows_winrm.rst:307 +#: ../../rst/os_guide/windows_winrm.rst:309 msgid "Kerberos requires some additional setup work on the Ansible host before it can be used properly." msgstr "Kerberos を正しく使用するには、Ansible ホスト上でいくつかの追加設定作業が必要です。" -#: ../../rst/os_guide/windows_winrm.rst:310 +#: ../../rst/os_guide/windows_winrm.rst:312 msgid "The following example shows host vars configured for Kerberos authentication:" msgstr "以下の例は、Kerberos 認証に設定されたホスト変数を示しています。" -#: ../../rst/os_guide/windows_winrm.rst:320 +#: ../../rst/os_guide/windows_winrm.rst:322 msgid "As of Ansible version 2.3, the Kerberos ticket will be created based on ``ansible_user`` and ``ansible_password``. If running on an older version of Ansible or when ``ansible_winrm_kinit_mode`` is ``manual``, a Kerberos ticket must already be obtained. See below for more details." msgstr "Ansible バージョン 2.3 以降では、``ansible_user`` と ``ansible_password`` に基づいて Kerberos チケットが作成されます。古いバージョンの Ansible で実行している場合や、``ansible_winrm_kinit_mode`` が ``manual`` の場合は、すでに Kerberos チケットを取得している必要があります。詳細は以下を参照してください。" -#: ../../rst/os_guide/windows_winrm.rst:325 +#: ../../rst/os_guide/windows_winrm.rst:327 msgid "There are some extra host variables that can be set:" msgstr "設定可能な追加のホスト変数があります。" -#: ../../rst/os_guide/windows_winrm.rst:338 +#: ../../rst/os_guide/windows_winrm.rst:340 msgid "Installing the Kerberos Library" msgstr "Kerberos ライブラリーのインストール" -#: ../../rst/os_guide/windows_winrm.rst:340 +#: ../../rst/os_guide/windows_winrm.rst:342 msgid "Some system dependencies that must be installed prior to using Kerberos. The script below lists the dependencies based on the distro:" msgstr "Kerberos を使用する前にインストールする必要があるシステム依存関係があります。以下のスクリプトは、ディストリビューションに基づく依存関係を一覧表示します。" -#: ../../rst/os_guide/windows_winrm.rst:369 +#: ../../rst/os_guide/windows_winrm.rst:371 msgid "Once the dependencies have been installed, the ``python-kerberos`` wrapper can be install using ``pip``:" msgstr "依存関係がインストールされたら、``pip`` を使用して ``python-kerberos`` ラッパーをインストールできます。" -#: ../../rst/os_guide/windows_winrm.rst:378 +#: ../../rst/os_guide/windows_winrm.rst:380 msgid "While Ansible has supported Kerberos auth through ``pywinrm`` for some time, optional features or more secure options may only be available in newer versions of the ``pywinrm`` and/or ``pykerberos`` libraries. It is recommended you upgrade each version to the latest available to resolve any warnings or errors. This can be done through tools like ``pip`` or a system package manager like ``dnf``, ``yum``, ``apt`` but the package names and versions available may differ between tools." msgstr "Ansible はこれまで、``pywinrm`` を通じて Kerberos 認証をサポートしてきましたが、オプション機能やより安全なオプションは、``pywinrm`` ライブラリーまたは ``pykerberos`` ライブラリーの新しいバージョンでのみ利用できる場合があります。警告やエラーが発生した場合は、各バージョンを最新のものにアップグレードすることが推奨されます。この作業は、``pip`` のようなツールや、``dnf``、``yum``、``apt`` のようなシステムパッケージマネージャーで行うことができますが、パッケージ名や利用可能なバージョンはツールによって異なる場合があります。" -#: ../../rst/os_guide/windows_winrm.rst:390 +#: ../../rst/os_guide/windows_winrm.rst:392 msgid "Configuring Host Kerberos" msgstr "ホスト Kerberos の設定" -#: ../../rst/os_guide/windows_winrm.rst:392 +#: ../../rst/os_guide/windows_winrm.rst:394 msgid "Once the dependencies have been installed, Kerberos needs to be configured so that it can communicate with a domain. This configuration is done through the ``/etc/krb5.conf`` file, which is installed with the packages in the script above." msgstr "依存関係がインストールされたら、Kerberos がドメインと通信できるように設定する必要があります。この設定は、上のスクリプトでパッケージと一緒にインストールされた ``/etc/krb5.conf`` ファイルを通じて行われます。" -#: ../../rst/os_guide/windows_winrm.rst:396 +#: ../../rst/os_guide/windows_winrm.rst:398 msgid "To configure Kerberos, in the section that starts with:" msgstr "Kerberos を設定するには、以下で始まるセクションで行います。" -#: ../../rst/os_guide/windows_winrm.rst:402 +#: ../../rst/os_guide/windows_winrm.rst:404 msgid "Add the full domain name and the fully qualified domain names of the primary and secondary Active Directory domain controllers. It should look something like this:" msgstr "プライマリーおよびセカンダリーの Active Directory ドメインコントローラーの完全ドメイン名および完全修飾ドメイン名を追加します。以下のようになるはずです。" -#: ../../rst/os_guide/windows_winrm.rst:414 +#: ../../rst/os_guide/windows_winrm.rst:416 msgid "In the section that starts with:" msgstr "以下で始まるセクションで、" -#: ../../rst/os_guide/windows_winrm.rst:420 +#: ../../rst/os_guide/windows_winrm.rst:422 msgid "Add a line like the following for each domain that Ansible needs access for:" msgstr "Ansible がアクセスする必要のある各ドメインに以下のような行を追加します。" -#: ../../rst/os_guide/windows_winrm.rst:427 +#: ../../rst/os_guide/windows_winrm.rst:429 msgid "You can configure other settings in this file such as the default domain. See `krb5.conf `_ for more details." msgstr "このファイルでは、デフォルトのドメインなど、その他の設定を行うことができます。詳細は `krb5.conf `_ を参照してください。" -#: ../../rst/os_guide/windows_winrm.rst:434 +#: ../../rst/os_guide/windows_winrm.rst:436 msgid "Automatic Kerberos Ticket Management" msgstr "Kerberos チケットの自動管理" -#: ../../rst/os_guide/windows_winrm.rst:436 +#: ../../rst/os_guide/windows_winrm.rst:438 msgid "Ansible version 2.3 and later defaults to automatically managing Kerberos tickets when both ``ansible_user`` and ``ansible_password`` are specified for a host. In this process, a new ticket is created in a temporary credential cache for each host. This is done before each task executes to minimize the chance of ticket expiration. The temporary credential caches are deleted after each task completes and will not interfere with the default credential cache." msgstr "Ansible バージョン 2.3 以降では、ホストに ``ansible_user`` および ``ansible_password`` の両方が指定された場合は、デフォルトで Kerberos チケットを自動的に管理します。このプロセスでは、各ホストの一時的な認証情報キャッシュに新しいチケットが作成されます。これは、チケットが失効する可能性を最小限にするために、各タスクが実行される前に行われます。一時的な認証情報キャッシュは、各タスクが完了すると削除され、デフォルトの認証情報キャッシュに干渉することはありません。" -#: ../../rst/os_guide/windows_winrm.rst:443 -msgid "To disable automatic ticket management, set ``ansible_winrm_kinit_mode=manual`` via the inventory." +#: ../../rst/os_guide/windows_winrm.rst:445 +msgid "To disable automatic ticket management, set ``ansible_winrm_kinit_mode=manual`` through the inventory." msgstr "チケットの自動管理を無効にするには、インベントリーから ``ansible_winrm_kinit_mode=manual`` を設定してください。" -#: ../../rst/os_guide/windows_winrm.rst:446 +#: ../../rst/os_guide/windows_winrm.rst:448 msgid "Automatic ticket management requires a standard ``kinit`` binary on the control host system path. To specify a different location or binary name, set the ``ansible_winrm_kinit_cmd`` hostvar to the fully qualified path to a MIT krbv5 ``kinit``-compatible binary." msgstr "自動チケット管理には、制御ホストシステムのパスに標準の ``kinit`` バイナリーが必要です。別の場所やバイナリー名を指定するには、ホスト変数 ``ansible_winrm_kinit_cmd`` に MIT krbv5 ``kinit`` 互換バイナリーへの完全修飾パスを設定します。" -#: ../../rst/os_guide/windows_winrm.rst:454 +#: ../../rst/os_guide/windows_winrm.rst:456 msgid "Manual Kerberos Ticket Management" msgstr "Kerberos チケットの手動管理" -#: ../../rst/os_guide/windows_winrm.rst:456 +#: ../../rst/os_guide/windows_winrm.rst:458 msgid "To manually manage Kerberos tickets, the ``kinit`` binary is used. To obtain a new ticket the following command is used:" msgstr "Kerberos チケットを手動で管理するには、``kinit`` バイナリーを使用します。新しいチケットを取得するには、以下のコマンドを使用します。" -#: ../../rst/os_guide/windows_winrm.rst:463 +#: ../../rst/os_guide/windows_winrm.rst:465 msgid "The domain must match the configured Kerberos realm exactly, and must be in upper case." msgstr "ドメインは設定された Kerberos レルムに完全に一致し、大文字である必要があります。" -#: ../../rst/os_guide/windows_winrm.rst:465 +#: ../../rst/os_guide/windows_winrm.rst:467 msgid "To see what tickets (if any) have been acquired, use the following command:" msgstr "取得したチケット (存在する場合) を確認するには、以下のコマンドを使用します。" -#: ../../rst/os_guide/windows_winrm.rst:471 +#: ../../rst/os_guide/windows_winrm.rst:473 msgid "To destroy all the tickets that have been acquired, use the following command:" msgstr "取得したすべてのチケットを破棄するには、以下のコマンドを使用します。" -#: ../../rst/os_guide/windows_winrm.rst:480 +#: ../../rst/os_guide/windows_winrm.rst:482 msgid "Troubleshooting Kerberos" msgstr "Kerberos のトラブルシューティング" -#: ../../rst/os_guide/windows_winrm.rst:482 +#: ../../rst/os_guide/windows_winrm.rst:484 msgid "Kerberos is reliant on a properly-configured environment to work. To troubleshoot Kerberos issues, ensure that:" msgstr "Kerberos は、適切に構成された環境でなければ動作しません。Kerberos の問題をトラブルシューティングするには、以下を確認してください。" -#: ../../rst/os_guide/windows_winrm.rst:485 +#: ../../rst/os_guide/windows_winrm.rst:487 msgid "The hostname set for the Windows host is the FQDN and not an IP address. * If you connect using an IP address you will get the error message `Server not found in Kerberos database`. * To determine if you are connecting using an IP address or an FQDN run your playbook (or call the ``win_ping`` module) using the `-vvv` flag." msgstr "Windows ホストに設定されたホスト名は FQDN であり、IP アドレスではありません。* IP アドレスを使用して接続する場合は、エラーメッセージ `Server not found in Kerberos database` が表示されます。* IP アドレスまたは FQDN を使用して接続している場合は、`-vvv` フラグを使用して Playbook を実行するか、``win_ping`` モジュールを呼び出します。" -#: ../../rst/os_guide/windows_winrm.rst:489 +#: ../../rst/os_guide/windows_winrm.rst:491 msgid "The forward and reverse DNS lookups are working properly in the domain. To test this, ping the windows host by name and then use the ip address returned with ``nslookup``. The same name should be returned when using ``nslookup`` on the IP address." msgstr "このドメインでは、DNS の正引きと逆引きが正常に動作しています。これをテストするには、Windows ホストに名前で ping を打ち、``nslookup`` で返された IP アドレスを使用します。IP アドレスに ``nslookup`` を使用すると、同じ名前が返されるはずです。" -#: ../../rst/os_guide/windows_winrm.rst:494 +#: ../../rst/os_guide/windows_winrm.rst:496 msgid "The Ansible host's clock is synchronized with the domain controller. Kerberos is time sensitive, and a little clock drift can cause the ticket generation process to fail." msgstr "Ansible ホストの時計はドメインコントローラーと同期します。Kerberos は時間に敏感で、わずかな時計のずれにより、チケット生成プロセスが失敗する可能性があります。" -#: ../../rst/os_guide/windows_winrm.rst:498 +#: ../../rst/os_guide/windows_winrm.rst:500 msgid "Ensure that the fully qualified domain name for the domain is configured in the ``krb5.conf`` file. To check this, run:" msgstr "ドメインの完全修飾ドメイン名が、``krb5.conf`` ファイルに設定されていることを確認してください。これを確認するには、次を実行します。" -#: ../../rst/os_guide/windows_winrm.rst:506 +#: ../../rst/os_guide/windows_winrm.rst:508 msgid "If the domain name returned by ``klist`` is different from the one requested, an alias is being used. The ``krb5.conf`` file needs to be updated so that the fully qualified domain name is used and not an alias." msgstr "``klist`` で返されたドメイン名が要求されたものと異なる場合は、エイリアスが使用されています。``krb5.conf`` ファイルを更新して、エイリアスではなく完全修飾ドメイン名を使用する必要があります。" -#: ../../rst/os_guide/windows_winrm.rst:510 +#: ../../rst/os_guide/windows_winrm.rst:512 msgid "If the default kerberos tooling has been replaced or modified (some IdM solutions may do this), this may cause issues when installing or upgrading the Python Kerberos library. As of the time of this writing, this library is called ``pykerberos`` and is known to work with both MIT and Heimdal Kerberos libraries. To resolve ``pykerberos`` installation issues, ensure the system dependencies for Kerberos have been met (see: `Installing the Kerberos Library`_), remove any custom Kerberos tooling paths from the PATH environment variable, and retry the installation of Python Kerberos library package." msgstr "デフォルトの kerberos ツールが置き換えられたり変更したりした場合 (いくつかの IdM ソリューションではそうなっているかもしれません)、Python Kerberos ライブラリーをインストールしたりアップグレードしたりする際に問題が発生する可能性があります。本ガイドの作成時点で、このライブラリーは ``pykerberos`` と呼ばれ、MIT と Heimdal Kerberos ライブラリーの両方で動作することが知られています。``pykerberos`` のインストール問題を解決するには、Kerberos のシステム依存性が満たされていることを確認し (参照: `Installing the Kerberos Library`_)、PATH 環境変数からカスタムの Kerberos ツールパスを削除し、Python Kerberos ライブラリーパッケージのインストールを再試行してください。" -#: ../../rst/os_guide/windows_winrm.rst:517 +#: ../../rst/os_guide/windows_winrm.rst:519 msgid "CredSSP authentication is a newer authentication protocol that allows credential delegation. This is achieved by encrypting the username and password after authentication has succeeded and sending that to the server using the CredSSP protocol." msgstr "CredSSP 認証は、認証情報の委譲を可能にする新しい認証プロトコルになります。これは、認証が成功した後のユーザー名とパスワードを暗号化し、それを CredSSP プロトコルを使用してサーバーに送信することで実現しています。" -#: ../../rst/os_guide/windows_winrm.rst:522 +#: ../../rst/os_guide/windows_winrm.rst:524 msgid "Because the username and password are sent to the server to be used for double hop authentication, ensure that the hosts that the Windows host communicates with are not compromised and are trusted." msgstr "ユーザー名とパスワードをサーバーに送信してダブルホップ認証に使用するため、Windows ホストが通信するホストが漏洩しておらず、信頼できることを確認してください。" -#: ../../rst/os_guide/windows_winrm.rst:526 +#: ../../rst/os_guide/windows_winrm.rst:528 msgid "CredSSP can be used for both local and domain accounts and also supports message encryption over HTTP." msgstr "CredSSP は、ローカルアカウントとドメインアカウントの両方に使用でき、HTTPでのメッセージ暗号化にも対応しています。" -#: ../../rst/os_guide/windows_winrm.rst:529 +#: ../../rst/os_guide/windows_winrm.rst:531 msgid "To use CredSSP authentication, the host vars are configured like so:" msgstr "CredSSP 認証を使用するには、以下のようにホスト変数を設定します。" -#: ../../rst/os_guide/windows_winrm.rst:538 +#: ../../rst/os_guide/windows_winrm.rst:540 msgid "There are some extra host variables that can be set as shown below:" msgstr "以下のように設定できる追加のホスト変数があります。" -#: ../../rst/os_guide/windows_winrm.rst:544 +#: ../../rst/os_guide/windows_winrm.rst:546 msgid "CredSSP authentication is not enabled by default on a Windows host, but can be enabled by running the following in PowerShell:" msgstr "CredSSP 認証は、Windows ホストではデフォルトでは有効になっていませんが、PowerShell で以下を実行することで有効にすることができます。" -#: ../../rst/os_guide/windows_winrm.rst:554 +#: ../../rst/os_guide/windows_winrm.rst:556 msgid "Installing CredSSP Library" msgstr "CredSSP ライブラリーのインストール" -#: ../../rst/os_guide/windows_winrm.rst:556 +#: ../../rst/os_guide/windows_winrm.rst:558 msgid "The ``requests-credssp`` wrapper can be installed using ``pip``:" msgstr "``requests-credssp`` ラッパーは、``pip`` を使用してインストールできます。" -#: ../../rst/os_guide/windows_winrm.rst:565 +#: ../../rst/os_guide/windows_winrm.rst:567 msgid "CredSSP and TLS 1.2" msgstr "CredSSP および TLS 1.2" -#: ../../rst/os_guide/windows_winrm.rst:567 +#: ../../rst/os_guide/windows_winrm.rst:569 msgid "By default the ``requests-credssp`` library is configured to authenticate over the TLS 1.2 protocol. TLS 1.2 is installed and enabled by default for Windows Server 2012 and Windows 8 and more recent releases." msgstr "デフォルトでは、``requests-credssp`` ライブラリーは、TLS 1.2 プロトコルで認証するように設定されています。TLS 1.2 は、Windows Server 2012 および Windows 8 と、それ以降のリリースでは、デフォルトでインストールされ、有効になっています。" -#: ../../rst/os_guide/windows_winrm.rst:571 +#: ../../rst/os_guide/windows_winrm.rst:573 msgid "There are two ways that older hosts can be used with CredSSP:" msgstr "古いホストを CredSSP で使用できる方法は 2 つあります。" -#: ../../rst/os_guide/windows_winrm.rst:573 +#: ../../rst/os_guide/windows_winrm.rst:575 msgid "Install and enable a hotfix to enable TLS 1.2 support (recommended for Server 2008 R2 and Windows 7)." msgstr "TLS 1.2 のサポートを有効にする Hotfix をインストールして有効にしてください (Server 2008 R2 および Windows 7 で推奨)。" -#: ../../rst/os_guide/windows_winrm.rst:576 +#: ../../rst/os_guide/windows_winrm.rst:578 msgid "Set ``ansible_winrm_credssp_disable_tlsv1_2=True`` in the inventory to run over TLS 1.0. This is the only option when connecting to Windows Server 2008, which has no way of supporting TLS 1.2" msgstr "インベントリーに ``ansible_winrm_credssp_disable_tlsv1_2=True`` を設定して、TLS 1.0 で実行するように設定します。これは、TLS 1.2 に対応していない Windows Server 2008 に接続する際の唯一の選択肢です。" -#: ../../rst/os_guide/windows_winrm.rst:580 +#: ../../rst/os_guide/windows_winrm.rst:582 msgid "See :ref:`winrm_tls12` for more information on how to enable TLS 1.2 on the Windows host." msgstr "Windows ホストで TLS 1.2 を有効にする方法は、「:ref:`winrm_tls12`」を参照してください。" -#: ../../rst/os_guide/windows_winrm.rst:586 +#: ../../rst/os_guide/windows_winrm.rst:588 msgid "Set CredSSP Certificate" msgstr "CredSSP 証明書の設定" -#: ../../rst/os_guide/windows_winrm.rst:588 +#: ../../rst/os_guide/windows_winrm.rst:590 msgid "CredSSP works by encrypting the credentials through the TLS protocol and uses a self-signed certificate by default. The ``CertificateThumbprint`` option under the WinRM service configuration can be used to specify the thumbprint of another certificate." msgstr "CredSSP は、TLS プロトコルで認証情報を暗号化して動作し、デフォルトでは自己署名証明書を使用します。WinRM サービス構成の ``CertificateThumbprint`` オプションを使用して、別の証明書のサムプリントを指定することができます。" -#: ../../rst/os_guide/windows_winrm.rst:591 +#: ../../rst/os_guide/windows_winrm.rst:593 msgid "This certificate configuration is independent of the WinRM listener certificate. With CredSSP, message transport still occurs over the WinRM listener, but the TLS-encrypted messages inside the channel use the service-level certificate." msgstr "この証明書構成は、WinRM リスナーの証明書とは独立しています。CredSSP では、メッセージトランスポートは引き続き WinRM リスナーを介して行われますが、チャンネル内の TLS 暗号化メッセージにはサービスレベル証明書が使用されます。" -#: ../../rst/os_guide/windows_winrm.rst:595 +#: ../../rst/os_guide/windows_winrm.rst:597 msgid "To explicitly set the certificate to use for CredSSP:" msgstr "CredSSP に使用する証明書を明示的に設定するには、以下を実行します。" -#: ../../rst/os_guide/windows_winrm.rst:609 +#: ../../rst/os_guide/windows_winrm.rst:611 msgid "Non-Administrator Accounts" msgstr "管理者以外のアカウント" -#: ../../rst/os_guide/windows_winrm.rst:611 +#: ../../rst/os_guide/windows_winrm.rst:613 msgid "WinRM is configured by default to only allow connections from accounts in the local ``Administrators`` group. This can be changed by running:" msgstr "WinRM は、デフォルトで、ローカルの ``Administrators`` グループのアカウントからの接続のみを許可するように設定されています。これは、以下を実行して変更できます。" -#: ../../rst/os_guide/windows_winrm.rst:618 +#: ../../rst/os_guide/windows_winrm.rst:620 msgid "This will display an ACL editor, where new users or groups may be added. To run commands over WinRM, users and groups must have at least the ``Read`` and ``Execute`` permissions enabled." msgstr "これにより、ACL エディターが表示され、新しいユーザーまたはグループを追加できます。WinRM でコマンドを実行するには、ユーザーおよびグループに少なくとも ``Read`` および ``Execute`` パーミッションが有効になっている必要があります。" -#: ../../rst/os_guide/windows_winrm.rst:622 +#: ../../rst/os_guide/windows_winrm.rst:624 msgid "While non-administrative accounts can be used with WinRM, most typical server administration tasks require some level of administrative access, so the utility is usually limited." msgstr "WinRM では、管理者以外のアカウントを使用することもできますが、一般的なサーバー管理作業では、ある程度の管理者権限が必要となるため、実用性は限られてしまいます。" -#: ../../rst/os_guide/windows_winrm.rst:628 +#: ../../rst/os_guide/windows_winrm.rst:630 msgid "WinRM Encryption" msgstr "WinRM 暗号化" -#: ../../rst/os_guide/windows_winrm.rst:630 +#: ../../rst/os_guide/windows_winrm.rst:632 msgid "By default WinRM will fail to work when running over an unencrypted channel. The WinRM protocol considers the channel to be encrypted if using TLS over HTTP (HTTPS) or using message level encryption. Using WinRM with TLS is the recommended option as it works with all authentication options, but requires a certificate to be created and used on the WinRM listener." msgstr "デフォルトでは、WinRM は、暗号化されていないチャンネル上で実行すると、動作に失敗します。WinRM プロトコルは、TLS over HTTP (HTTPS) を使用している場合や、メッセージレベルの暗号化を使用している場合は、チャンネルが暗号化されているとみなします。WinRM を TLS で使用することは、すべての認証オプションで動作するため、推奨されるオプションですが、WinRM リスナーで証明書を作成して使用する必要があります。" -#: ../../rst/os_guide/windows_winrm.rst:636 +#: ../../rst/os_guide/windows_winrm.rst:638 msgid "If in a domain environment, ADCS can create a certificate for the host that is issued by the domain itself." msgstr "ドメイン環境の場合、ADCS はドメイン自体が発行するホストの証明書を作成できます。" -#: ../../rst/os_guide/windows_winrm.rst:639 +#: ../../rst/os_guide/windows_winrm.rst:641 msgid "If using HTTPS is not an option, then HTTP can be used when the authentication option is ``NTLM``, ``Kerberos`` or ``CredSSP``. These protocols will encrypt the WinRM payload with their own encryption method before sending it to the server. The message-level encryption is not used when running over HTTPS because the encryption uses the more secure TLS protocol instead. If both transport and message encryption is required, set ``ansible_winrm_message_encryption=always`` in the host vars." msgstr "HTTPS を使用することができない場合は、認証オプションが ``NTLM``、``Kerberos``、または ``CredSSP`` であれば、HTTP を使用することができます。これらのプロトコルは、WinRM ペイロードを独自の暗号化方式で暗号化してからサーバーに送信します。暗号化は、より安全な TLS プロトコルを代わりに使用するため、HTTPS で実行する場合に、メッセージレベルの暗号化は使用されません。トランスポートとメッセージの両方の暗号化が必要な場合は、ホスト変数に ``ansible_winrm_message_encryption=always`` を設定してください。" -#: ../../rst/os_guide/windows_winrm.rst:647 +#: ../../rst/os_guide/windows_winrm.rst:649 msgid "Message encryption over HTTP requires pywinrm>=0.3.0." msgstr "HTTPでのメッセージ暗号化には 0.3.0 以上の pywinrm が必要です。" -#: ../../rst/os_guide/windows_winrm.rst:649 +#: ../../rst/os_guide/windows_winrm.rst:651 msgid "A last resort is to disable the encryption requirement on the Windows host. This should only be used for development and debugging purposes, as anything sent from Ansible can be viewed, manipulated and also the remote session can completely be taken over by anyone on the same network. To disable the encryption requirement:" msgstr "最後の手段として、Windows ホストの暗号化要件を無効にすることができます。これは、Ansible から送信されたものはすべて閲覧、操作でき、また同じネットワーク上の誰もがリモートセッションを完全に乗っ取ることができるため、開発やデバッグの目的でのみ使用してください。暗号化を無効にするには、以下の手順に従います。" -#: ../../rst/os_guide/windows_winrm.rst:659 +#: ../../rst/os_guide/windows_winrm.rst:661 msgid "Do not disable the encryption check unless it is absolutely required. Doing so could allow sensitive information like credentials and files to be intercepted by others on the network." msgstr "どうしても必要な場合を除き、暗号化チェックを無効にしないでください。暗号化チェックを無効にすると、認証情報やファイルなどの機密情報がネットワーク上の他の人に傍受される可能性があります。" -#: ../../rst/os_guide/windows_winrm.rst:666 +#: ../../rst/os_guide/windows_winrm.rst:668 msgid "Inventory Options" msgstr "インベントリーオプション" -#: ../../rst/os_guide/windows_winrm.rst:668 +#: ../../rst/os_guide/windows_winrm.rst:670 msgid "Ansible's Windows support relies on a few standard variables to indicate the username, password, and connection type of the remote hosts. These variables are most easily set up in the inventory, but can be set on the ``host_vars``/ ``group_vars`` level." msgstr "Ansible の Windows サポートは、リモートホストのユーザー名、パスワード、接続タイプを示すいくつかの標準変数に依存しています。これらの変数はインベントリーで最も簡単に設定できますが、``host_vars``/``group_vars`` レベルで設定することもできます。" -#: ../../rst/os_guide/windows_winrm.rst:673 +#: ../../rst/os_guide/windows_winrm.rst:675 msgid "When setting up the inventory, the following variables are required:" msgstr "インベントリーを設定する際に、以下の変数が必要になります。" -#: ../../rst/os_guide/windows_winrm.rst:688 +#: ../../rst/os_guide/windows_winrm.rst:690 msgid "Using the variables above, Ansible will connect to the Windows host with Basic authentication through HTTPS. If ``ansible_user`` has a UPN value like ``username@MY.DOMAIN.COM`` then the authentication option will automatically attempt to use Kerberos unless ``ansible_winrm_transport`` has been set to something other than ``kerberos``." msgstr "上記の変数を使用すると、Ansible は HTTPS を通じて Basic 認証で Windows ホストに接続します。``ansible_user`` に ``username@MY.DOMAIN.COM`` のような UPN 値がある場合は、``ansible_winrm_transport`` が ``kerberos`` 以外に設定されていない限り、認証オプションは自動的に Kerberos の使用を試みます。" -#: ../../rst/os_guide/windows_winrm.rst:694 +#: ../../rst/os_guide/windows_winrm.rst:696 msgid "The following custom inventory variables are also supported for additional configuration of WinRM connections:" msgstr "以下のカスタムインベントリー変数も、WinRM 接続の追加設定のためにサポートされています。" -#: ../../rst/os_guide/windows_winrm.rst:697 +#: ../../rst/os_guide/windows_winrm.rst:699 msgid "``ansible_port``: The port WinRM will run over, HTTPS is ``5986`` which is the default while HTTP is ``5985``" msgstr "``ansible_port``: WinRM が実行するポートです。HTTPS のデフォルトは ``5986`` で、HTTP のデフォルトは ``5985`` です。" -#: ../../rst/os_guide/windows_winrm.rst:700 +#: ../../rst/os_guide/windows_winrm.rst:702 msgid "``ansible_winrm_scheme``: Specify the connection scheme (``http`` or ``https``) to use for the WinRM connection. Ansible uses ``https`` by default unless ``ansible_port`` is ``5985``" msgstr "``ansible_winrm_scheme``: WinRM 接続に使用する接続スキーム (``http`` または ``https``) を指定します。Ansible は、``ansible_port`` が ``5985`` に指定されていない限り、デフォルトで ``https`` を使用します。" -#: ../../rst/os_guide/windows_winrm.rst:704 +#: ../../rst/os_guide/windows_winrm.rst:706 msgid "``ansible_winrm_path``: Specify an alternate path to the WinRM endpoint, Ansible uses ``/wsman`` by default" msgstr "``ansible_winrm_path``: WinRMエンドポイントへの別のパスを指定します。Ansible はデフォルトで ``/wsman`` を使用します。" -#: ../../rst/os_guide/windows_winrm.rst:707 +#: ../../rst/os_guide/windows_winrm.rst:709 msgid "``ansible_winrm_realm``: Specify the realm to use for Kerberos authentication. If ``ansible_user`` contains ``@``, Ansible will use the part of the username after ``@`` by default" msgstr "``ansible_winrm_realm``: Kerberos 認証に使用するレルムを指定します。``ansible_user`` に ``@`` が含まれる場合、Ansible はデフォルトで ``@`` の後にユーザー名の一部を使用します。" -#: ../../rst/os_guide/windows_winrm.rst:711 +#: ../../rst/os_guide/windows_winrm.rst:713 msgid "``ansible_winrm_transport``: Specify one or more authentication transport options as a comma-separated list. By default, Ansible will use ``kerberos, basic`` if the ``kerberos`` module is installed and a realm is defined, otherwise it will be ``plaintext``" msgstr "``ansible_winrm_transport``: 1 つ以上の認証トランスポートオプションをコンマ区切りのリストで指定します。デフォルトでは、``kerberos`` モジュールがインストールされていてレルムが定義されている場合、Ansible は ``kerberos, basic`` を使用し、それ以外の場合は ``plaintext`` になります。" -#: ../../rst/os_guide/windows_winrm.rst:716 +#: ../../rst/os_guide/windows_winrm.rst:718 msgid "``ansible_winrm_server_cert_validation``: Specify the server certificate validation mode (``ignore`` or ``validate``). Ansible defaults to ``validate`` on Python 2.7.9 and higher, which will result in certificate validation errors against the Windows self-signed certificates. Unless verifiable certificates have been configured on the WinRM listeners, this should be set to ``ignore``" msgstr "``ansible_winrm_server_cert_validation``: サーバー証明書の検証モード (``ignore`` または``validate``) を指定します。Ansible のデフォルトは、Python 2.7.9 以降では ``validate`` で、これは Windows の自己署名証明書に対して証明書の検証エラーが発生します。WinRM リスナーで検証可能な証明書が設定されていない場合は、この設定を ``ignore`` に設定する必要があります。" -#: ../../rst/os_guide/windows_winrm.rst:723 +#: ../../rst/os_guide/windows_winrm.rst:725 msgid "``ansible_winrm_operation_timeout_sec``: Increase the default timeout for WinRM operations, Ansible uses ``20`` by default" msgstr "``ansible_winrm_operation_timeout_sec``: WinRM 操作のデフォルトタイムアウトを増やすと、Ansible はデフォルトで ``20`` を使用します。" -#: ../../rst/os_guide/windows_winrm.rst:726 +#: ../../rst/os_guide/windows_winrm.rst:728 msgid "``ansible_winrm_read_timeout_sec``: Increase the WinRM read timeout, Ansible uses ``30`` by default. Useful if there are intermittent network issues and read timeout errors keep occurring" msgstr "``ansible_winrm_read_timeout_sec``: WinRM の読み取りタイムアウトを増やします。Ansible はデフォルトで ``30`` を使用します。ネットワークの問題が断続的に発生し、読み取りタイムアウトのエラーが発生し続ける場合に有効です。" -#: ../../rst/os_guide/windows_winrm.rst:730 +#: ../../rst/os_guide/windows_winrm.rst:732 msgid "``ansible_winrm_message_encryption``: Specify the message encryption operation (``auto``, ``always``, ``never``) to use, Ansible uses ``auto`` by default. ``auto`` means message encryption is only used when ``ansible_winrm_scheme`` is ``http`` and ``ansible_winrm_transport`` supports message encryption. ``always`` means message encryption will always be used and ``never`` means message encryption will never be used" msgstr "``ansible_winrm_message_encryption``: 使用するメッセージ暗号化操作 (``auto``、``always``、``never``) を指定します。Ansible はデフォルトで ``auto`` を使用します。``auto`` は、``ansible_winrm_scheme`` が ``http`` で、``ansible_winrm_transport`` がメッセージ暗号化をサポートしている場合に限り、メッセージ暗号化が使用されることを意味します。``always`` は、メッセージ暗号化が常に使用されることを意味し、``never`` は、メッセージ暗号化が決して使用されないことを意味します。" -#: ../../rst/os_guide/windows_winrm.rst:737 +#: ../../rst/os_guide/windows_winrm.rst:739 msgid "``ansible_winrm_ca_trust_path``: Used to specify a different cacert container than the one used in the ``certifi`` module. See the HTTPS Certificate Validation section for more details." msgstr "``ansible_winrm_ca_trust_path``: ``certifi`` モジュールで使用されているものとは異なる cacert コンテナーを指定するために使用します。詳細は、「HTTPS 証明書の検証」セクションを参照してください。" -#: ../../rst/os_guide/windows_winrm.rst:741 +#: ../../rst/os_guide/windows_winrm.rst:743 msgid "``ansible_winrm_send_cbt``: When using ``ntlm`` or ``kerberos`` over HTTPS, the authentication library will try to send channel binding tokens to mitigate against man in the middle attacks. This flag controls whether these bindings will be sent or not (default: ``yes``)." msgstr "``ansible_winrm_send_cbt``: ``ntlm`` または ``kerberos`` を HTTPS で使用する場合、認証ライブラリーは、中間者攻撃を緩和するためにチャンネルバインディングトークンの送信を試みます。このフラグは、これらのバインディングを送信するかどうかを制御します (デフォルト: ``yes``)。" -#: ../../rst/os_guide/windows_winrm.rst:746 +#: ../../rst/os_guide/windows_winrm.rst:748 msgid "``ansible_winrm_*``: Any additional keyword arguments supported by ``winrm.Protocol`` may be provided in place of ``*``" msgstr "``ansible_winrm_*``: ``winrm.Protocol`` でサポートされている任意の追加キーワード引数は、代わりに ``*`` で指定できます。" -#: ../../rst/os_guide/windows_winrm.rst:749 +#: ../../rst/os_guide/windows_winrm.rst:751 msgid "In addition, there are also specific variables that need to be set for each authentication option. See the section on authentication above for more information." msgstr "さらに、各認証オプションで設定する必要がある特定の変数もあります。詳細は、上記の認証に関するセクションを参照してください。" -#: ../../rst/os_guide/windows_winrm.rst:752 +#: ../../rst/os_guide/windows_winrm.rst:754 msgid "Ansible 2.0 has deprecated the \"ssh\" from ``ansible_ssh_user``, ``ansible_ssh_pass``, ``ansible_ssh_host``, and ``ansible_ssh_port`` to become ``ansible_user``, ``ansible_password``, ``ansible_host``, and ``ansible_port``. If using a version of Ansible prior to 2.0, the older style (``ansible_ssh_*``) should be used instead. The shorter variables are ignored, without warning, in older versions of Ansible." msgstr "Ansible 2.0 では、``ansible_ssh_user``、``ansible_ssh_pass``、``ansible_ssh_host``、および ``ansible_ssh_port`` の「ssh」が非推奨となり、``ansible_user``、``ansible_password``、``ansible_host``、および ``ansible_port`` となりました。Ansible 2.0 より前のバージョンを使用している場合は、代わりに古いスタイル (``ansible_ssh_*``) を使用する必要があります。短い方の変数は、古いバージョンの Ansible では警告なしに無視されます。" -#: ../../rst/os_guide/windows_winrm.rst:759 +#: ../../rst/os_guide/windows_winrm.rst:761 msgid "``ansible_winrm_message_encryption`` is different from transport encryption done over TLS. The WinRM payload is still encrypted with TLS when run over HTTPS, even if ``ansible_winrm_message_encryption=never``." msgstr "``ansible_winrm_message_encryption`` は、TLS 上で行われるトランスポート暗号化とは異なります。WinRM ペイロードは、``ansible_winrm_message_encryption=never`` であっても、HTTPS で実行された場合でも TLS で暗号化されます。" -#: ../../rst/os_guide/windows_winrm.rst:766 +#: ../../rst/os_guide/windows_winrm.rst:768 msgid "IPv6 Addresses" msgstr "IPv6 アドレス" -#: ../../rst/os_guide/windows_winrm.rst:768 +#: ../../rst/os_guide/windows_winrm.rst:770 msgid "IPv6 addresses can be used instead of IPv4 addresses or hostnames. This option is normally set in an inventory. Ansible will attempt to parse the address using the `ipaddress `_ package and pass to pywinrm correctly." msgstr "IPv4 アドレスやホスト名の代わりに、IPv6 アドレスを使用することができます。このオプションは通常、インベントリーで設定します。Ansible は、`ipaddress `_ パッケージを使用してアドレスの解析を試み、pywinrm に正しく渡します。" -#: ../../rst/os_guide/windows_winrm.rst:773 +#: ../../rst/os_guide/windows_winrm.rst:775 msgid "When defining a host using an IPv6 address, just add the IPv6 address as you would an IPv4 address or hostname:" msgstr "IPv6 アドレスを使用してホストを定義する場合は、IPv4 アドレスやホスト名と同じように IPv6 アドレスを追加するだけです。" -#: ../../rst/os_guide/windows_winrm.rst:787 +#: ../../rst/os_guide/windows_winrm.rst:789 msgid "The ipaddress library is only included by default in Python 3.x. To use IPv6 addresses in Python 2.7, make sure to run ``pip install ipaddress`` which installs a backported package." msgstr "ipaddress ライブラリーは Python 3.x にのみデフォルトで含まれています。Python 2.7 で IPv6 アドレスを使用するには、バックポートされたパッケージをインストールする ``pip install ipaddress`` を必ず実行してください。" -#: ../../rst/os_guide/windows_winrm.rst:794 +#: ../../rst/os_guide/windows_winrm.rst:796 msgid "HTTPS Certificate Validation" msgstr "HTTPS 証明書の検証" -#: ../../rst/os_guide/windows_winrm.rst:796 +#: ../../rst/os_guide/windows_winrm.rst:798 msgid "As part of the TLS protocol, the certificate is validated to ensure the host matches the subject and the client trusts the issuer of the server certificate. When using a self-signed certificate or setting ``ansible_winrm_server_cert_validation: ignore`` these security mechanisms are bypassed. While self signed certificates will always need the ``ignore`` flag, certificates that have been issued from a certificate authority can still be validated." msgstr "TLS プロトコルの一環として、証明書が検証され、ホストがサブジェクトと一致し、クライアントがサーバー証明書の発行者を信頼していることが確認されます。自己署名証明書を使用したり、``ansible_winrm_server_cert_validation: ignore`` を設定したりすると、これらのセキュリティーメカニズムが回避されます。自己署名証明書には常に ``ignore`` フラグが必要ですが、認証局から発行された証明書は検証されます。" -#: ../../rst/os_guide/windows_winrm.rst:804 +#: ../../rst/os_guide/windows_winrm.rst:806 msgid "One of the more common ways of setting up a HTTPS listener in a domain environment is to use Active Directory Certificate Service (AD CS). AD CS is used to generate signed certificates from a Certificate Signing Request (CSR). If the WinRM HTTPS listener is using a certificate that has been signed by another authority, like AD CS, then Ansible can be set up to trust that issuer as part of the TLS handshake." msgstr "ドメイン環境で HTTPS リスナーをセットアップする一般的な方法の 1 つに、Active Directory Certificate Service (AD CS) を使用する方法があります。AD CS は、CSR (Certificate Signing Request) から署名付き証明書を生成するために使用されます。WinRM HTTPS リスナーが AD CS のような別の機関によって署名された証明書を使用している場合、Ansible は TLS ハンドシェイクの一部としてその発行者を信頼するように設定することができます。" -#: ../../rst/os_guide/windows_winrm.rst:811 +#: ../../rst/os_guide/windows_winrm.rst:813 msgid "To get Ansible to trust a Certificate Authority (CA) like AD CS, the issuer certificate of the CA can be exported as a PEM encoded certificate. This certificate can then be copied locally to the Ansible controller and used as a source of certificate validation, otherwise known as a CA chain." msgstr "AD CS のような認証局 (CA) を Ansible に信頼させるには、CA の発行者証明書を PEM エンコード証明書としてエクスポートします。この証明書は、Ansible コントローラーのローカルにコピーして、証明書検証のソースとして使用することができます (CA チェーンとも呼ばれます)。" -#: ../../rst/os_guide/windows_winrm.rst:816 +#: ../../rst/os_guide/windows_winrm.rst:818 msgid "The CA chain can contain a single or multiple issuer certificates and each entry is contained on a new line. To then use the custom CA chain as part of the validation process, set ``ansible_winrm_ca_trust_path`` to the path of the file. If this variable is not set, the default CA chain is used instead which is located in the install path of the Python package `certifi `_." msgstr "CA チェーンには、単一または複数の発行者証明書を含めることができ、各エントリーは新しい行に含まれます。認証プロセスの一部としてカスタム CA チェーンを使用するには、``ansible_winrm_ca_trust_path`` にファイルのパスを設定します。この変数が設定されていない場合は、Python パッケージ `certifi `_ のインストールパスにあるデフォルトの CAチ ェーンが使用されます。" -#: ../../rst/os_guide/windows_winrm.rst:823 +#: ../../rst/os_guide/windows_winrm.rst:825 msgid "Each HTTP call is done by the Python requests library which does not use the systems built-in certificate store as a trust authority. Certificate validation will fail if the server's certificate issuer is only added to the system's truststore." msgstr "HTTP 呼び出しはそれぞれ、システムに組み込まれた証明書ストアを信頼機関として使用しない Python リクエストライブラリーによって行われます。サーバーの証明書発行者がシステムのトラストストアに追加されていない場合、証明書の検証は失敗します。" -#: ../../rst/os_guide/windows_winrm.rst:831 +#: ../../rst/os_guide/windows_winrm.rst:833 msgid "TLS 1.2 Support" msgstr "TLS 1.2 のサポート" -#: ../../rst/os_guide/windows_winrm.rst:833 +#: ../../rst/os_guide/windows_winrm.rst:835 msgid "As WinRM runs over the HTTP protocol, using HTTPS means that the TLS protocol is used to encrypt the WinRM messages. TLS will automatically attempt to negotiate the best protocol and cipher suite that is available to both the client and the server. If a match cannot be found then Ansible will error out with a message similar to:" msgstr "WinRM は HTTP プロトコル上で動作するため、HTTPS を使用するということは、WinRM メッセージの暗号化に TLS プロトコルが使用されることを意味します。TLS は、クライアントとサーバーの両方で利用可能な、最適なプロトコルと暗号スイートを自動的に取り決めようとします。一致するものが見つからない場合、Ansible は次のようなメッセージでエラーになります。" -#: ../../rst/os_guide/windows_winrm.rst:843 +#: ../../rst/os_guide/windows_winrm.rst:845 msgid "Commonly this is when the Windows host has not been configured to support TLS v1.2 but it could also mean the Ansible controller has an older OpenSSL version installed." msgstr "これは、Windows ホストが TLS v1.2 をサポートするように設定されていない場合ですが、Ansible コントローラーに古い OpenSSL バージョンがインストールされていることも意味します。" -#: ../../rst/os_guide/windows_winrm.rst:847 +#: ../../rst/os_guide/windows_winrm.rst:849 msgid "Windows 8 and Windows Server 2012 come with TLS v1.2 installed and enabled by default but older hosts, like Server 2008 R2 and Windows 7, have to be enabled manually." msgstr "Windows 8 および Windows Server 2012 には、デフォルトで TLS v1.2 がインストールされ、有効になっていますが、Server 2008 R2 や Windows 7 などの古いホストは手動で有効にする必要があります。" -#: ../../rst/os_guide/windows_winrm.rst:851 +#: ../../rst/os_guide/windows_winrm.rst:853 msgid "There is a bug with the TLS 1.2 patch for Server 2008 which will stop Ansible from connecting to the Windows host. This means that Server 2008 cannot be configured to use TLS 1.2. Server 2008 R2 and Windows 7 are not affected by this issue and can use TLS 1.2." msgstr "Server 2008 の TLS 1.2 パッチにはバグがあり、Ansible の Windows ホストへの接続が停止してしまいます。これは、Server 2008 が TLS 1.2 を使用するように設定できないことを意味します。Server 2008 R2 とWindows 7 はこの問題の影響を受けず、TLS 1.2 を使用できます。" -#: ../../rst/os_guide/windows_winrm.rst:856 +#: ../../rst/os_guide/windows_winrm.rst:858 msgid "To verify what protocol the Windows host supports, you can run the following command on the Ansible controller:" msgstr "Windows ホストが対応しているプロトコルを確認するには、Ansible コントローラーで以下のコマンドを実行します。" -#: ../../rst/os_guide/windows_winrm.rst:863 +#: ../../rst/os_guide/windows_winrm.rst:865 msgid "The output will contain information about the TLS session and the ``Protocol`` line will display the version that was negotiated:" msgstr "出力には TLS セッションに関する情報が含まれ、``Protocol`` 行にはネゴシエートされたバージョンが表示されます。" -#: ../../rst/os_guide/windows_winrm.rst:901 +#: ../../rst/os_guide/windows_winrm.rst:903 msgid "If the host is returning ``TLSv1`` then it should be configured so that TLS v1.2 is enable. You can do this by running the following PowerShell script:" msgstr "ホストが ``TLSv1`` を返す場合は、TLS v1.2 が有効になるように設定する必要があります。これは、次の PowerShell スクリプトを実行することで行うことができます。" -#: ../../rst/os_guide/windows_winrm.rst:926 +#: ../../rst/os_guide/windows_winrm.rst:928 msgid "The below Ansible tasks can also be used to enable TLS v1.2:" msgstr "以下の Ansible タスクを使用して TLS v1.2 を有効にすることもできます。" -#: ../../rst/os_guide/windows_winrm.rst:956 +#: ../../rst/os_guide/windows_winrm.rst:958 msgid "There are other ways to configure the TLS protocols as well as the cipher suites that are offered by the Windows host. One tool that can give you a GUI to manage these settings is `IIS Crypto `_ from Nartac Software." msgstr "TLS プロトコルや、Windows ホストが提供する暗号スイートを設定する方法は他にもあります。これらの設定を管理するための GUI を提供するツールとして、Nartac Software 社の `IIS Crypto `_ があります。" -#: ../../rst/os_guide/windows_winrm.rst:964 +#: ../../rst/os_guide/windows_winrm.rst:966 msgid "WinRM limitations" msgstr "WinRM の制限" -#: ../../rst/os_guide/windows_winrm.rst:965 +#: ../../rst/os_guide/windows_winrm.rst:967 msgid "Due to the design of the WinRM protocol , there are a few limitations when using WinRM that can cause issues when creating playbooks for Ansible. These include:" msgstr "WinRM プロトコルの設計上、WinRM を使用する際にはいくつかの制限があり、Ansible の Playbook を作成する際に問題となることがあります。これには次のようなものがあります。" -#: ../../rst/os_guide/windows_winrm.rst:969 +#: ../../rst/os_guide/windows_winrm.rst:971 msgid "Credentials are not delegated for most authentication types, which causes authentication errors when accessing network resources or installing certain programs." msgstr "ほとんどの認証タイプで認証情報が委譲されていないため、ネットワークリソースへのアクセスや特定のプログラムのインストール時に認証エラーが発生することがありました。" -#: ../../rst/os_guide/windows_winrm.rst:973 +#: ../../rst/os_guide/windows_winrm.rst:975 msgid "Many calls to the Windows Update API are blocked when running over WinRM." msgstr "WinRM 経由で実行すると、Windows Update API への多くの呼び出しがブロックされます。" -#: ../../rst/os_guide/windows_winrm.rst:975 +#: ../../rst/os_guide/windows_winrm.rst:977 msgid "Some programs fail to install with WinRM due to no credential delegation or because they access forbidden Windows API like WUA over WinRM." msgstr "認証情報の委譲や、WUA over WinRM などの禁止されている Windows API へのアクセスにより、一部のプログラムは WinRM でインストールできない場合があります。" -#: ../../rst/os_guide/windows_winrm.rst:978 +#: ../../rst/os_guide/windows_winrm.rst:980 msgid "Commands under WinRM are done under a non-interactive session, which can prevent certain commands or executables from running." msgstr "WinRM のコマンドは非対話型セッションで実行されるため、特定のコマンドや実行ファイルが実行できない場合があります。" -#: ../../rst/os_guide/windows_winrm.rst:981 +#: ../../rst/os_guide/windows_winrm.rst:983 msgid "You cannot run a process that interacts with ``DPAPI``, which is used by some installers (like Microsoft SQL Server)." msgstr "一部のインストーラー (Microsoft SQL Server など) が使用する ``DPAPI`` と対話するプロセスを実行することはできません。" -#: ../../rst/os_guide/windows_winrm.rst:984 +#: ../../rst/os_guide/windows_winrm.rst:986 msgid "Some of these limitations can be mitigated by doing one of the following:" msgstr "この制限の一部は、以下のいずれかを実行して軽減できます。" -#: ../../rst/os_guide/windows_winrm.rst:986 +#: ../../rst/os_guide/windows_winrm.rst:988 msgid "Set ``ansible_winrm_transport`` to ``credssp`` or ``kerberos`` (with ``ansible_winrm_kerberos_delegation=true``) to bypass the double hop issue and access network resources" msgstr "ダブルホップ問題を回避してネットワークリソースにアクセスするために、``ansible_winrm_transport`` を ``credssp`` または ``kerberos`` (``ansible_winrm_kerberos_delegation=true`` を使用) に設定します。" -#: ../../rst/os_guide/windows_winrm.rst:990 +#: ../../rst/os_guide/windows_winrm.rst:992 msgid "Use ``become`` to bypass all WinRM restrictions and run a command as it would locally. Unlike using an authentication transport like ``credssp``, this will also remove the non-interactive restriction and API restrictions like WUA and DPAPI" msgstr "``become`` を使用すると、すべての WinRM 制限を回避して、ローカルと同様にコマンドを実行できます。``credssp`` のような認証トランスポートを使用する場合とは異なり、非対話型の制限や、WUA や DPAPI などの API の制限も解除されます。" -#: ../../rst/os_guide/windows_winrm.rst:995 +#: ../../rst/os_guide/windows_winrm.rst:997 msgid "Use a scheduled task to run a command which can be created with the ``win_scheduled_task`` module. Like ``become``, this bypasses all WinRM restrictions but can only run a command and not modules." msgstr "``win_scheduled_task`` モジュールで作成されるコマンドを実行するために、スケジュールされたタスクを使用します。``become`` と同様に、WinRM の制限をすべて回避しますが、実行できるのはコマンドのみで、モジュールは実行できません。" +#~ msgid "A WinRM listener should be created and activated. More details for this can be found below." +#~ msgstr "WinRM リスナーを作成し、有効にする必要があります。詳細は以下を参照してください。" + +#~ msgid "Once completed, you will need to remove auto logon and set the execution policy back to the default (``Restricted `` for Windows clients, or ``RemoteSigned`` for Windows servers). You can do this with the following PowerShell commands:" +#~ msgstr "完了したら、自動ログオンを解除して、実行ポリシーをデフォルト (Windows クライアントの場合は ``Restricted ``、Windows サーバーの場合は ``RemoteSigned``) に戻す必要があります。これには以下の PowerShell コマンドが必要です。" + +#~ msgid "The script works by checking to see what programs need to be installed (such as .NET Framework 4.5.2) and what PowerShell version is required. If a reboot is required and the ``username`` and ``password`` parameters are set, the script will automatically reboot and logon when it comes back up from the reboot. The script will continue until no more actions are required and the PowerShell version matches the target version. If the ``username`` and ``password`` parameters are not set, the script will prompt the user to manually reboot and logon when required. When the user is next logged in, the script will continue where it left off and the process continues until no more actions are required." +#~ msgstr "このスクリプトは、インストールが必要なプログラム (.NET Framework 4.5.2 など) や、必要な PowerShell バージョンを確認して動作します。再起動が必要で、``username`` パラメーターと ``password`` パラメーターが設定されている場合は、スクリプトが自動的に再起動し、再起動から復帰したときにログオンします。スクリプトは、アクションが不要になり、PowerShell バージョンがターゲットのバージョンと一致するまで続行されます。``username`` パラメーターおよび ``password`` パラメーターが設定されていない場合、スクリプトは必要に応じてユーザーに手動で再起動とログオンを促します。ユーザーが次にログインすると、スクリプトは前回の続きを実行し、アクションが必要なくなるまで処理を続けます。" + +#~ msgid "If running on Server 2008, then SP2 must be installed. If running on Server 2008 R2 or Windows 7, then SP1 must be installed." +#~ msgstr "Server 2008 で実行する場合は、SP2 がインストールされている必要があります。Server 2008 R2 または Windows 7 で実行している場合は SP1 をインストールする必要があります。" + +#~ msgid "When running on PowerShell v3.0, there is a bug with the WinRM service that limits the amount of memory available to WinRM. Without this hotfix installed, Ansible will fail to execute certain commands on the Windows host. These hotfixes should be installed as part of the system bootstrapping or imaging process. The script `Install-WMF3Hotfix.ps1 `_ can be used to install the hotfix on affected hosts." +#~ msgstr "PowerShell v3.0 で実行する場合は、WinRM サービスのバグにより、WinRM で使用できるメモリー量が制限されるという問題がありました。この Hotfix をインストールしないと、Windows ホスト上で Ansible による特定のコマンドの実行に失敗します。これらの Hotfix は、システムのブートストラップまたはイメージングプロセスの一部としてインストールする必要があります。`Install-WMF3Hotfix.ps1 `_ というスクリプトを使用すると、影響を受けるホストに hotfix をインストールできます。" + +#~ msgid "The following PowerShell command will install the hotfix:" +#~ msgstr "以下の PowerShell コマンドは hotfix をインストールします。" + +#~ msgid "``CertificateThumbprint``: If running over an HTTPS listener, this is the thumbprint of the certificate in the Windows Certificate Store that is used in the connection. To get the details of the certificate itself, run this command with the relevant certificate thumbprint in PowerShell:" +#~ msgstr "``CertificateThumbprint``: HTTPS リスナーを介して実行する場合、これは接続に使用される Windows 証明書ストアの証明書のサムプリントです。証明書自体の詳細を取得するには、PowerShell で該当する証明書のサムプリントを指定して次のコマンドを実行します。" + +#~ msgid "When creating an HTTPS listener, an existing certificate needs to be created and stored in the ``LocalMachine\\My`` certificate store. Without a certificate being present in this store, most commands will fail." +#~ msgstr "HTTPS リスナーを作成する際には、既存の証明書を作成し、``LocalMachine\\My`` の証明書ストアに保存する必要があります。このストアに証明書が存在しないと、ほとんどのコマンドが失敗します。" + +#~ msgid "While many of these options should rarely be changed, a few can easily impact the operations over WinRM and are useful to understand. Some of the important options are:" +#~ msgstr "これらのオプションの多くはほとんど変更する必要はありませんが、いくつかのオプションは WinRM の操作に簡単に影響を与えるため、理解しておくと便利です。重要なオプションの一部を紹介します。" + +#~ msgid "``Service\\AllowUnencrypted``: This option defines whether WinRM will allow traffic that is run over HTTP without message encryption. Message level encryption is only possible when ``ansible_winrm_transport`` is ``ntlm``, ``kerberos`` or ``credssp``. By default this is ``false`` and should only be set to ``true`` when debugging WinRM messages." +#~ msgstr "``Service\\AllowUnencrypted``: このオプションは、メッセージを暗号化せずに HTTP で実行するトラフィックを WinRM で許可するかどうかを定義します。メッセージレベルの暗号化は、``ansible_winrm_transport`` が ``ntlm``、``kerberos``、または ``credssp`` の場合にのみ可能です。デフォルトでは、これは ``false`` であり、WinRM メッセージをデバッグする場合に限り ``true`` に設定する必要があります。" + +#~ msgid "To modify a setting under the ``Service`` key in PowerShell:" +#~ msgstr "PowerShell の ``Service`` キーで設定を変更するには、以下を実行します。" + +#~ msgid "To modify a setting under the ``Winrs`` key in PowerShell:" +#~ msgstr "PowerShell の ``Winrs`` キーで設定を変更するには、以下を実行します。" + +#~ msgid "If this fails, the issue is probably related to the WinRM setup. If it works, the issue may not be related to the WinRM setup; please continue reading for more troubleshooting suggestions." +#~ msgstr "失敗した場合は、WinRM の設定に問題があると思われます。成功した場合は、問題が WinRM の設定に関連していない可能性があるため、さらに詳しいトラブルシューティングの方法をご確認ください。" + +#~ msgid "If running over HTTP and not HTTPS, use ``ntlm``, ``kerberos`` or ``credssp`` with ``ansible_winrm_message_encryption: auto`` to enable message encryption. If using another authentication option or if the installed pywinrm version cannot be upgraded, the ``Service\\AllowUnencrypted`` can be set to ``true`` but this is only recommended for troubleshooting" +#~ msgstr "HTTPS ではなく HTTP で実行する場合は、``ntlm``、``kerberos``、または ``credssp`` と ``ansible_winrm_message_encryption: auto`` を使用してメッセージの暗号化を有効にしてください。他の認証オプションを使用している場合や、インストールされている pywinrm のバージョンをアップグレードできない場合は、``Service\\AllowUnencrypted`` を``true`` に設定できますが、これはトラブルシューティングのためにのみ推奨されます。" + +#~ msgid "These indicate an error has occurred with the WinRM service. Some things to check for include:" +#~ msgstr "これらは、WinRM サービスでエラーが発生したことを示しています。確認すべき点は以下の通りです。" + +#~ msgid "These usually indicate an error with the network connection where Ansible is unable to reach the host. Some things to check for include:" +#~ msgstr "これらは通常、Ansible がホストに到達できないネットワーク接続のエラーを示しています。チェック項目には以下が含まれます。" + +#~ msgid "These usually indicate an error when trying to communicate with the WinRM service on the host. Some things to check for:" +#~ msgstr "これらは通常、ホスト上の WinRM サービスと通信しようとする際にエラーを示します。いくつかのチェック項目があります。" + +#~ msgid "If powershell fails with an error message similar to ``The 'Out-String' command was found in the module 'Microsoft.PowerShell.Utility', but the module could not be loaded.`` then there could be a problem trying to access all the paths specified by the ``PSModulePath`` environment variable. A common cause of this issue is that the ``PSModulePath`` environment variable contains a UNC path to a file share and because of the double hop/credential delegation issue the Ansible process cannot access these folders. The way around this problems is to either:" +#~ msgstr "``The 'Out-String' command was found in the module 'Microsoft.PowerShell.Utility', but the module could not be loaded.`` のようなエラーメッセージで powershell が失敗する場合は、``PSModulePath`` 環境変数で指定されたすべてのパスにアクセスしようとすると問題が発生する可能性があります。この問題の一般的な原因は、``PSModulePath`` 環境変数にファイル共有への UNC パスが含まれており、ダブルホップ/認証情報の委譲問題のために Ansible プロセスがこれらのディレクトリーにアクセスできないことです。この問題を回避するには、以下の方法があります。" + +#~ msgid "Remove the UNC path from the ``PSModulePath`` environment variable, or" +#~ msgstr "``PSModulePath`` 環境変数から UNC パスを削除します。" + +#~ msgid "The first step to using SSH with Windows is to install the `Win32-OpenSSH `_ service on the Windows host. Microsoft offers a way to install ``Win32-OpenSSH`` through a Windows capability but currently the version that is installed through this process is too old to work with Ansible. To install ``Win32-OpenSSH`` for use with Ansible, select one of these installation options:" +#~ msgstr "Windows で SSH を利用するための最初のステップは、Windows ホストに `Win32-OpenSSH `_ サービスをインストールすることです。Microsoft 社では、Windows の機能を利用して ``Win32-OpenSSH`` をインストールする方法を提供していますが、現在、この方法でインストールされるバージョンは、Ansible で動作させるには古すぎます。Ansible で使用するために ``Win32-OpenSSH`` をインストールするには、以下のインストールオプションのいずれかを選択します。" + +#~ msgid "Install the `openssh `_ package using Chocolatey:" +#~ msgstr "Chocolatey を使用して `openssh `_ パッケージをインストールします。" + +#~ msgid "Use ``win_chocolatey`` to install the service" +#~ msgstr "``win_chocolatey`` を使用してサービスをインストールします。" + +#~ msgid "Win32-OpenSSH authentication with Windows is similar to SSH authentication on Unix/Linux hosts. You can use a plaintext password or SSH public key authentication, add public keys to an ``authorized_key`` file in the ``.ssh`` folder of the user's profile directory, and configure the service using the ``sshd_config`` file used by the SSH service as you would on a Unix/Linux host." +#~ msgstr "Windows での Win32-OpenSSH 認証は、Unix/Linux ホストでの SSH 認証に似ています。平文のパスワードまたは SSH 公開鍵認証を使用し、公開鍵をユーザーのプロファイルディレクトリーの ``.ssh`` ディレクトリーにある ``authorized_key`` ファイルに追加し、Unix/Linux ホストと同様に SSH サービスで使用される ``sshd_config`` ファイルを使用してサービスを設定することができます。" + +#~ msgid "The ``ansible_shell_type`` variable should reflect the ``DefaultShell`` configured on the Windows host. Set to ``cmd`` for the default shell or set to ``powershell`` if the ``DefaultShell`` has been changed to PowerShell." +#~ msgstr "``ansible_shell_type`` 変数には、Windows ホストで設定されている``DefaultShell`` を反映させる必要があります。デフォルトシェルの場合は ``cmd`` に、``DefaultShell`` が PowerShell に変更している場合は ``powershell`` に設定します。" + diff --git a/docs/docsite/rst/locales/ja/LC_MESSAGES/playbook_guide.po b/docs/docsite/rst/locales/ja/LC_MESSAGES/playbook_guide.po index d77abb0a..b28e5523 100644 --- a/docs/docsite/rst/locales/ja/LC_MESSAGES/playbook_guide.po +++ b/docs/docsite/rst/locales/ja/LC_MESSAGES/playbook_guide.po @@ -7,14 +7,14 @@ msgid "" msgstr "" "Project-Id-Version: Ansible devel\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-10-05 09:34+0200\n" +"POT-Creation-Date: 2023-03-01 20:16+0100\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.8.1\n" +"Generated-By: Babel 2.9.0\n" #: ../../rst/playbook_guide/complex_data_manipulation.rst:4 msgid "Manipulating data" @@ -221,11 +221,11 @@ msgid "An example on how to use facts to find a host's data that meets condition msgstr "ファクトを使用して、条件 X を満たすホストのデータを検索する例:" #: ../../rst/playbook_guide/complex_data_manipulation.rst:298 -msgid "An example to show a host uptime in days/hours/minutes/seconds (assumes facts where gathered)." +msgid "An example to show a host uptime in days/hours/minutes/seconds (assumes facts were gathered)." msgstr "ホストのアップタイムを日数/時間/分/秒で表示する例(収集されるファクトを想定)" #: ../../rst/playbook_guide/complex_data_manipulation.rst:309 -#: ../../rst/playbook_guide/playbooks_variables.rst:519 +#: ../../rst/playbook_guide/playbooks_variables.rst:521 msgid ":ref:`playbooks_filters`" msgstr ":ref:`playbooks_filters`" @@ -473,7 +473,7 @@ msgstr "ここで説明した lamp_haproxy の例です。" #: ../../rst/playbook_guide/playbooks_conditionals.rst:540 #: ../../rst/playbook_guide/playbooks_lookups.rst:28 #: ../../rst/playbook_guide/playbooks_reuse.rst:211 -#: ../../rst/playbook_guide/playbooks_reuse_roles.rst:594 +#: ../../rst/playbook_guide/playbooks_reuse_roles.rst:596 #: ../../rst/playbook_guide/playbooks_roles.rst:15 msgid ":ref:`working_with_playbooks`" msgstr ":ref:`working_with_playbooks`" @@ -486,7 +486,7 @@ msgstr ":ref:`working_with_playbooks`" #: ../../rst/playbook_guide/playbooks_delegation.rst:166 #: ../../rst/playbook_guide/playbooks_environment.rst:149 #: ../../rst/playbook_guide/playbooks_error_handling.rst:269 -#: ../../rst/playbook_guide/playbooks_filters.rst:2185 +#: ../../rst/playbook_guide/playbooks_filters.rst:2189 #: ../../rst/playbook_guide/playbooks_lookups.rst:29 #: ../../rst/playbook_guide/playbooks_loops.rst:487 #: ../../rst/playbook_guide/playbooks_prompts.rst:116 @@ -495,19 +495,19 @@ msgstr ":ref:`working_with_playbooks`" #: ../../rst/playbook_guide/playbooks_tags.rst:426 #: ../../rst/playbook_guide/playbooks_templating.rst:26 #: ../../rst/playbook_guide/playbooks_tests.rst:528 -#: ../../rst/playbook_guide/playbooks_variables.rst:516 +#: ../../rst/playbook_guide/playbooks_variables.rst:518 msgid "An introduction to playbooks" msgstr "Playbook の概要" #: ../../rst/playbook_guide/guide_rolling_upgrade.rst:319 #: ../../rst/playbook_guide/playbooks_blocks.rst:188 #: ../../rst/playbook_guide/playbooks_conditionals.rst:542 -#: ../../rst/playbook_guide/playbooks_filters.rst:2192 +#: ../../rst/playbook_guide/playbooks_filters.rst:2196 #: ../../rst/playbook_guide/playbooks_loops.rst:488 #: ../../rst/playbook_guide/playbooks_strategies.rst:249 #: ../../rst/playbook_guide/playbooks_tags.rst:427 #: ../../rst/playbook_guide/playbooks_tests.rst:535 -#: ../../rst/playbook_guide/playbooks_variables.rst:523 +#: ../../rst/playbook_guide/playbooks_variables.rst:525 msgid ":ref:`playbooks_reuse_roles`" msgstr ":ref:`playbooks_reuse_roles`" @@ -519,12 +519,12 @@ msgstr "Playbook のロールの概要" #: ../../rst/playbook_guide/playbooks_advanced_syntax.rst:115 #: ../../rst/playbook_guide/playbooks_conditionals.rst:546 #: ../../rst/playbook_guide/playbooks_error_handling.rst:274 -#: ../../rst/playbook_guide/playbooks_filters.rst:2188 +#: ../../rst/playbook_guide/playbooks_filters.rst:2192 #: ../../rst/playbook_guide/playbooks_lookups.rst:32 #: ../../rst/playbook_guide/playbooks_loops.rst:494 #: ../../rst/playbook_guide/playbooks_prompts.rst:119 #: ../../rst/playbook_guide/playbooks_reuse.rst:213 -#: ../../rst/playbook_guide/playbooks_reuse_roles.rst:598 +#: ../../rst/playbook_guide/playbooks_reuse_roles.rst:600 #: ../../rst/playbook_guide/playbooks_tests.rst:531 msgid ":ref:`playbooks_variables`" msgstr ":ref:`playbooks_variables`" @@ -597,59 +597,59 @@ msgstr "設定パス" msgid "By default these should be relative to the config file, some are specifically relative to the current working directory or the playbook and should have this noted in their description. Things like ssh keys are left to use the current working directory because it mirrors how the underlying tools would use it." msgstr "デフォルトでは、これらは設定ファイルからの相対的なものですが、中には特に現在の作業ディレクトリーや Playbook からの相対的なものもあるため、説明にその旨を記載してください。ssh キーのようなものは、基本的なツールが使用する方法を反映するため、現在の作業ディレクトリーを使用するようになっています。" -#: ../../rst/playbook_guide/playbook_pathing.rst:19 +#: ../../rst/playbook_guide/playbook_pathing.rst:20 msgid "Task paths" msgstr "タスクパス" -#: ../../rst/playbook_guide/playbook_pathing.rst:21 +#: ../../rst/playbook_guide/playbook_pathing.rst:22 msgid "Relative paths used in a task typically refer to remote files and directories on the managed nodes. However, paths passed to lookup plugins and some paths used in action plugins such as the \"src\" path for the :ref:`template ` and :ref:`copy ` modules refer to local files and directories on the control node." msgstr "タスクで使用される相対パスは通常、管理ノードのリモートファイルおよびディレクトリーを参照します。ただし、lookup プラグインに渡されるパスや、:ref:`template ` モジュールおよび :ref:`copy ` モジュールの「src」パス等のアクションプラグインで使用される一部のパスは、コントロールノードのローカルファイルおよびディレクトリーを参照します。" -#: ../../rst/playbook_guide/playbook_pathing.rst:24 +#: ../../rst/playbook_guide/playbook_pathing.rst:25 msgid "Resolving local relative paths" msgstr "ローカル相対パスの解決" -#: ../../rst/playbook_guide/playbook_pathing.rst:26 +#: ../../rst/playbook_guide/playbook_pathing.rst:27 msgid "When you specify a relative path for a local file, Ansible will try to find that file first in the current task's role, then in other roles that included or depend on the current role, then relative to the file in which the task is defined, and finally relative to the current play. It will take the first matching file that it finds. This way, if multiple files with the same filename exist, Ansible will find the file that is closest to the current task and that is most likely to be file you wanted." msgstr "ローカルファイルの相対パスを指定する場合、Ansible は現在のタスクのロールでまずそのファイルを見つけようとします。次に、現在のロールに含まれる、または依存する他のロールで、次にタスクが定義されているファイルに相対的に、最後に現在のプレイに相対的に見つけようとします。これにより、最初に見つかったマッチするファイルが使用されます。したがって、同じファイル名を持つ複数のファイルが存在する場合、Ansible は現在のタスクにもっとも近く、希望のファイルである可能性が高いファイルを検索します。" -#: ../../rst/playbook_guide/playbook_pathing.rst:28 +#: ../../rst/playbook_guide/playbook_pathing.rst:29 msgid "Specifically, Ansible tries to find the file" msgstr "具体的には、Ansible は以下のようにファイルを検索しようとします" -#: ../../rst/playbook_guide/playbook_pathing.rst:30 +#: ../../rst/playbook_guide/playbook_pathing.rst:31 msgid "In the current role." msgstr "現在のロールで" -#: ../../rst/playbook_guide/playbook_pathing.rst:32 +#: ../../rst/playbook_guide/playbook_pathing.rst:33 msgid "In its appropriate subdirectory—\"files\", \"vars\", \"templates\" or \"tasks\", depending on the kind of file Ansible is searching for." msgstr "Ansible が検索するファイルの種類に応じて、適切なサブディレクトリー(「files」、「vars」、「templates」、または「tasks」)で" -#: ../../rst/playbook_guide/playbook_pathing.rst:33 +#: ../../rst/playbook_guide/playbook_pathing.rst:34 msgid "Directly in its directory." msgstr "そのディレクトリーに直接" -#: ../../rst/playbook_guide/playbook_pathing.rst:35 +#: ../../rst/playbook_guide/playbook_pathing.rst:36 msgid "Like 1, in the parent role that called into this current role with `include_role`, `import_role`, or with a role dependency. If the parent role has its own parent role, Ansible will repeat this step with that role." msgstr "1 と同様に、`include_role`、`import_role` またはロールの依存関係でこの現在のロールに呼び出される親ロールで。親ロールに独自の親ロールがある場合は、Ansible はそのロールでこの手順を繰り返します。" -#: ../../rst/playbook_guide/playbook_pathing.rst:36 +#: ../../rst/playbook_guide/playbook_pathing.rst:37 msgid "Like 1, in the current task file's directory." msgstr "1 と同様に、現在のタスクファイルのディレクトリーで" -#: ../../rst/playbook_guide/playbook_pathing.rst:37 +#: ../../rst/playbook_guide/playbook_pathing.rst:38 msgid "Like 1, in the current play file's directory." msgstr "1 と同様に、現在の play ファイルのディレクトリーで" -#: ../../rst/playbook_guide/playbook_pathing.rst:39 +#: ../../rst/playbook_guide/playbook_pathing.rst:40 msgid "Ansible does not search the current working directory. (The directory you're in when you execute Ansible.) Also, Ansible will only search within a role if you actually included it with an `include_role` or `import_role` task or a dependency. If you instead use `include`, `include_task` or `import_task` to include just the tasks from a specific file but not the full role, Ansible will not search that role in steps 1 and 2." msgstr "Ansible は、現在の作業ディレクトリー(Ansibleを実行する時のディレクトリー)を検索しません。また、`include_role` または `import_role` タスクまたは依存関係で実際に含めた場合、Ansible はロール内のみ検索します。代わりに、`include`、`include_task`、または `import_task` を使用して、完全なロールではなく特定のファイルからのタスクだけを含める場合、Ansible はステップ1および2でそのロールを検索しません。" -#: ../../rst/playbook_guide/playbook_pathing.rst:41 +#: ../../rst/playbook_guide/playbook_pathing.rst:42 msgid "When you execute Ansible, the variable `ansible_search_path` will contain the paths searched, in the order they were searched in but without listing their subdirectories. If you run Ansible in verbosity level 5 by passing the `-vvvvv` argument, Ansible will report each directory as it searches, except when it searches for a tasks file." msgstr "Ansible を実行すると、変数 `ansible_search_path` には、検索されたパスが検索された順に含まれますが、そのサブディレクトリーは一覧表示されません。`-vvvvv` 引数を渡して詳細レベル5でAnsible を実行すると、タスクファイルを検索した場合を除き、Ansible は検索した順に各ディレクトリーを報告します。" -#: ../../rst/playbook_guide/playbook_pathing.rst:44 +#: ../../rst/playbook_guide/playbook_pathing.rst:45 msgid "The current working directory might vary depending on the connection plugin and if the action is local or remote. For the remote it is normally the directory on which the login shell puts the user. For local it is either the directory you executed ansible from or in some cases the playbook directory." msgstr "現在の作業ディレクトリは、接続プラグインと、アクションがローカルかリモートかによって異なる場合があります。リモートの場合、通常、ログインシェルがユーザーを配置するディレクトリになります。ローカルの場合は、ansibleを実行したディレクトリか、場合によってはPlaybokディレクトリになります。" @@ -737,7 +737,7 @@ msgstr "``version`` の値を ``&my_version`` というアンカーで固定し #: ../../rst/playbook_guide/playbooks_advanced_syntax.rst:116 #: ../../rst/playbook_guide/playbooks_conditionals.rst:547 #: ../../rst/playbook_guide/playbooks_error_handling.rst:275 -#: ../../rst/playbook_guide/playbooks_filters.rst:2189 +#: ../../rst/playbook_guide/playbooks_filters.rst:2193 #: ../../rst/playbook_guide/playbooks_lookups.rst:33 #: ../../rst/playbook_guide/playbooks_loops.rst:495 #: ../../rst/playbook_guide/playbooks_prompts.rst:120 @@ -755,7 +755,7 @@ msgstr "Ansible での複雑なデータ操作の実行" #: ../../rst/playbook_guide/playbooks_advanced_syntax.rst:119 msgid "`User Mailing List `_" -msgstr "`メーリングリストの使用 `_" +msgstr "`User Mailing List `_" #: ../../rst/playbook_guide/playbooks_advanced_syntax.rst:120 #: ../../rst/playbook_guide/playbooks_async.rst:187 @@ -765,7 +765,7 @@ msgstr "`メーリングリストの使用 `_" msgstr "`User Mailing List `_" @@ -986,8 +986,8 @@ msgid "Block example with named tasks inside the block" msgstr "内部に名前付きタスクを含むブロックの例" #: ../../rst/playbook_guide/playbooks_blocks.rst:46 -msgid "In the example above, the 'when' condition will be evaluated before Ansible runs each of the three tasks in the block. All three tasks also inherit the privilege escalation directives, running as the root user. Finally, ``ignore_errors: yes`` ensures that Ansible continues to execute the playbook even if some of the tasks fail." -msgstr "上の例では、Ansible がブロック内の 3 つのタスクをそれぞれ実行する前に、「when」条件が評価されます。また、3 つのタスクはすべて、特権昇格ディレクティブを継承し、root ユーザーとして実行します。最後に、``ignore_errors: yes`` は、一部のタスクが失敗しても、Ansible が Playbook の実行を継続することを保証します。" +msgid "In the example above, the 'when' condition will be evaluated before Ansible runs each of the three tasks in the block. All three tasks also inherit the privilege escalation directives, running as the root user. Finally, ``ignore_errors: true`` ensures that Ansible continues to execute the playbook even if some of the tasks fail." +msgstr "上の例では、Ansible がブロック内の 3 つのタスクをそれぞれ実行する前に、「when」条件が評価されます。また、3 つのタスクはすべて、特権昇格ディレクティブを継承し、root ユーザーとして実行します。最後に、``ignore_errors: true`` は、一部のタスクが失敗しても、Ansible が Playbook の実行を継続することを保証します。" #: ../../rst/playbook_guide/playbooks_blocks.rst:48 msgid "Names for blocks have been available since Ansible 2.3. We recommend using names in all tasks, within blocks or elsewhere, for better visibility into the tasks being executed when you run the playbook." @@ -1067,12 +1067,12 @@ msgstr "``ansible-core`` 2.14 以降では、両方の変数が内部ブロッ #: ../../rst/playbook_guide/playbooks_blocks.rst:189 #: ../../rst/playbook_guide/playbooks_conditionals.rst:543 -#: ../../rst/playbook_guide/playbooks_filters.rst:2193 +#: ../../rst/playbook_guide/playbooks_filters.rst:2197 #: ../../rst/playbook_guide/playbooks_loops.rst:489 #: ../../rst/playbook_guide/playbooks_strategies.rst:250 #: ../../rst/playbook_guide/playbooks_tags.rst:428 #: ../../rst/playbook_guide/playbooks_tests.rst:536 -#: ../../rst/playbook_guide/playbooks_variables.rst:524 +#: ../../rst/playbook_guide/playbooks_variables.rst:526 msgid "Playbook organization by roles" msgstr "ロール別の Playbook の組織" @@ -1322,7 +1322,7 @@ msgstr "``x`` が最初に定義されている場合、両方のタスクが意 #: ../../rst/playbook_guide/playbooks_conditionals.rst:321 msgid "If this is not the behavior you want, use an ``include_*`` statement to apply a condition only to that statement itself." -msgstr "このような動作を望まない場合は、 文を使用して、その文自体にのみ条件を適用します。" +msgstr "このような動作を望まない場合は、``include_*`` 文を使用して、その文自体にのみ条件を適用します。" #: ../../rst/playbook_guide/playbooks_conditionals.rst:332 msgid "Now if ``x`` is initially undefined, the debug task will not be skipped because the conditional is evaluated at the time of the include and does not apply to the individual tasks." @@ -1447,25 +1447,25 @@ msgstr "ansible_facts['os_family']" #: ../../rst/playbook_guide/playbooks_conditionals.rst:544 #: ../../rst/playbook_guide/playbooks_error_handling.rst:270 -#: ../../rst/playbook_guide/playbooks_filters.rst:2194 +#: ../../rst/playbook_guide/playbooks_filters.rst:2198 #: ../../rst/playbook_guide/playbooks_intro.rst:148 #: ../../rst/playbook_guide/playbooks_loops.rst:490 #: ../../rst/playbook_guide/playbooks_reuse.rst:219 -#: ../../rst/playbook_guide/playbooks_reuse_roles.rst:596 +#: ../../rst/playbook_guide/playbooks_reuse_roles.rst:598 #: ../../rst/playbook_guide/playbooks_tests.rst:537 -#: ../../rst/playbook_guide/playbooks_variables.rst:525 +#: ../../rst/playbook_guide/playbooks_variables.rst:527 msgid ":ref:`tips_and_tricks`" msgstr ":ref:`tips_and_tricks`" #: ../../rst/playbook_guide/playbooks_conditionals.rst:545 #: ../../rst/playbook_guide/playbooks_error_handling.rst:271 -#: ../../rst/playbook_guide/playbooks_filters.rst:2195 +#: ../../rst/playbook_guide/playbooks_filters.rst:2199 #: ../../rst/playbook_guide/playbooks_loops.rst:491 #: ../../rst/playbook_guide/playbooks_reuse.rst:220 -#: ../../rst/playbook_guide/playbooks_reuse_roles.rst:597 +#: ../../rst/playbook_guide/playbooks_reuse_roles.rst:599 #: ../../rst/playbook_guide/playbooks_templating.rst:28 #: ../../rst/playbook_guide/playbooks_tests.rst:538 -#: ../../rst/playbook_guide/playbooks_variables.rst:526 +#: ../../rst/playbook_guide/playbooks_variables.rst:528 msgid "Tips and tricks for playbooks" msgstr "Playbook のヒントと裏技" @@ -2148,24 +2148,24 @@ msgid "You can also use blocks to define responses to task errors. This approach msgstr "ブロックを使用してタスクエラーへの応答を定義することもできます。この方法は、多くのプログラミング言語での例外処理に似ています。詳細と例は、「:ref:`block_error_handling`」を参照してください。" #: ../../rst/playbook_guide/playbooks_error_handling.rst:272 -#: ../../rst/playbook_guide/playbooks_filters.rst:2186 +#: ../../rst/playbook_guide/playbooks_filters.rst:2190 #: ../../rst/playbook_guide/playbooks_lookups.rst:30 #: ../../rst/playbook_guide/playbooks_loops.rst:492 #: ../../rst/playbook_guide/playbooks_prompts.rst:117 #: ../../rst/playbook_guide/playbooks_reuse.rst:215 -#: ../../rst/playbook_guide/playbooks_reuse_roles.rst:600 +#: ../../rst/playbook_guide/playbooks_reuse_roles.rst:602 #: ../../rst/playbook_guide/playbooks_tests.rst:529 -#: ../../rst/playbook_guide/playbooks_variables.rst:517 +#: ../../rst/playbook_guide/playbooks_variables.rst:519 msgid ":ref:`playbooks_conditionals`" msgstr ":ref:`playbooks_conditionals`" #: ../../rst/playbook_guide/playbooks_error_handling.rst:273 -#: ../../rst/playbook_guide/playbooks_filters.rst:2187 +#: ../../rst/playbook_guide/playbooks_filters.rst:2191 #: ../../rst/playbook_guide/playbooks_lookups.rst:31 #: ../../rst/playbook_guide/playbooks_loops.rst:493 #: ../../rst/playbook_guide/playbooks_prompts.rst:118 #: ../../rst/playbook_guide/playbooks_tests.rst:530 -#: ../../rst/playbook_guide/playbooks_variables.rst:518 +#: ../../rst/playbook_guide/playbooks_variables.rst:520 msgid "Conditional statements in playbooks" msgstr "Playbook の条件分岐文" @@ -3267,82 +3267,86 @@ msgstr "バージョン 2.6 以降では、使用するエンコーディング msgid "The ``string`` filter is only required for Python 2 and ensures that text to encode is a unicode string. Without that filter before b64encode the wrong value will be encoded." msgstr "``string`` フィルターは Python 2 でのみ必要です。エンコードするテキストがユニコード文字列であることを確認します。b64encode より前のフィルターを使用しないと、誤った値がエンコードされます。" -#: ../../rst/playbook_guide/playbooks_filters.rst:2067 +#: ../../rst/playbook_guide/playbooks_filters.rst:2064 +msgid "The return value of b64decode is a string. If you decrypt a binary blob using b64decode and then try to use it (for example by using :ref:`copy ` to write it to a file) you will mostly likely find that your binary has been corrupted. If you need to take a base64 encoded binary and write it to disk, it is best to use the system ``base64`` command with the :ref:`shell module `, piping in the encoded data using the ``stdin`` parameter. For example: ``shell: cmd=\"base64 --decode > myfile.bin\" stdin=\"{{ encoded }}\"``" +msgstr "b64decode の戻り値は文字列です。b64decode を使用してバイナリー BLOB を復号化して使用しようとすると (:ref:`copy ` を使用してファイルに書き込むなど)、ほとんどの場合、バイナリーが破損していることがわかります。base64 でエンコードされたバイナリーを取得してディスクに書き込む必要がある場合は、:ref:`shell module ` でシステムの ``base64`` コマンドを使用し、``stdin`` を使用してエンコードされたデータでのパイプ指定を行うのが最適です (例: ``shell: cmd=\"base64 --decode > myfile.bin\" stdin=\"{{ encoded }}\"``)。" + +#: ../../rst/playbook_guide/playbooks_filters.rst:2069 msgid "Managing UUIDs" msgstr "UUID の管理" -#: ../../rst/playbook_guide/playbooks_filters.rst:2069 +#: ../../rst/playbook_guide/playbooks_filters.rst:2071 msgid "To create a namespaced UUIDv5:" msgstr "namespace を使用した UUIDv5 を作成するには、以下を実行します。" -#: ../../rst/playbook_guide/playbooks_filters.rst:2077 +#: ../../rst/playbook_guide/playbooks_filters.rst:2079 msgid "To create a namespaced UUIDv5 using the default Ansible namespace '361E6D51-FAEC-444A-9079-341386DA8E2E':" msgstr "デフォルトの Ansible 名前空間「361E6D51-FAEC-444A-9079-341386DA8E2E2E」を使用して名前空間を指定した UUIDv5 を作成するには、以下を実行します。" -#: ../../rst/playbook_guide/playbooks_filters.rst:2085 +#: ../../rst/playbook_guide/playbooks_filters.rst:2087 msgid "To make use of one attribute from each item in a list of complex variables, use the :func:`Jinja2 map filter `:" msgstr "複雑な変数のリストで、各項目から 1 つの属性を使用するには、:func:`Jinja2 map filter ` を使用します。" -#: ../../rst/playbook_guide/playbooks_filters.rst:2093 +#: ../../rst/playbook_guide/playbooks_filters.rst:2095 msgid "Handling dates and times" msgstr "日付と時刻の処理" -#: ../../rst/playbook_guide/playbooks_filters.rst:2095 +#: ../../rst/playbook_guide/playbooks_filters.rst:2097 msgid "To get a date object from a string use the `to_datetime` filter:" msgstr "文字列から日付オブジェクトを取得するには、`to_datetime` フィルターを使用します。" -#: ../../rst/playbook_guide/playbooks_filters.rst:2109 -msgid "For a full list of format codes for working with python date format strings, see https://docs.python.org/3/library/datetime.html#strftime-and-strptime-behavior." -msgstr "Python 日付形式の文字列を使用する形式コードの全一覧は、https://docs.python.org/3/library/datetime.html#strftime-and-strptime-behavior を参照してください。" +#: ../../rst/playbook_guide/playbooks_filters.rst:2111 +msgid "For a full list of format codes for working with python date format strings, see the `python datetime documentation `_." +msgstr "Python 日付形式の文字列を使用する形式コードの全一覧は、`python datetime documentation `_ を参照してください。" -#: ../../rst/playbook_guide/playbooks_filters.rst:2113 +#: ../../rst/playbook_guide/playbooks_filters.rst:2115 msgid "To format a date using a string (like with the shell date command), use the \"strftime\" filter:" msgstr "文字列 (shell date コマンドの場合のように) を使用して日付をフォーマットするには、「strftime」フィルターを使用します。" -#: ../../rst/playbook_guide/playbooks_filters.rst:2135 -msgid "strftime takes an optional utc argument, defaulting to False, meaning times are in the local timezone::" +#: ../../rst/playbook_guide/playbooks_filters.rst:2137 +msgid "strftime takes an optional utc argument, defaulting to False, meaning times are in the local timezone:" msgstr "strftime はオプションの utc 引数を取ります。デフォルトは False で、ローカルタイムゾーンの時間を使用します。" -#: ../../rst/playbook_guide/playbooks_filters.rst:2140 +#: ../../rst/playbook_guide/playbooks_filters.rst:2144 msgid "To get all string possibilities, check https://docs.python.org/3/library/time.html#time.strftime" msgstr "すべての文字列の可能性を取得するには、https://docs.python.org/3/library/time.html#time.strftime を確認します。" -#: ../../rst/playbook_guide/playbooks_filters.rst:2143 +#: ../../rst/playbook_guide/playbooks_filters.rst:2147 msgid "Getting Kubernetes resource names" msgstr "Kubernetes リソース名の取得" -#: ../../rst/playbook_guide/playbooks_filters.rst:2147 +#: ../../rst/playbook_guide/playbooks_filters.rst:2151 msgid "These filters have migrated to the `kubernetes.core `_ collection. Follow the installation instructions to install that collection." msgstr "これらのフィルターは `kubernetes.core `_ コレクションに移行しました。インストール手順に従ってそのコレクションをインストールします。" -#: ../../rst/playbook_guide/playbooks_filters.rst:2149 +#: ../../rst/playbook_guide/playbooks_filters.rst:2153 msgid "Use the \"k8s_config_resource_name\" filter to obtain the name of a Kubernetes ConfigMap or Secret, including its hash:" msgstr "「k8s_config_resource_name」フィルターを使用して、Kubernetes ConfigMap または Secret の名前を、そのハッシュを含めて取得します。" -#: ../../rst/playbook_guide/playbooks_filters.rst:2156 +#: ../../rst/playbook_guide/playbooks_filters.rst:2160 msgid "This can then be used to reference hashes in Pod specifications:" msgstr "これは、Pod 仕様のハッシュを参照するために使用できます。" -#: ../../rst/playbook_guide/playbooks_filters.rst:2184 +#: ../../rst/playbook_guide/playbooks_filters.rst:2188 #: ../../rst/playbook_guide/playbooks_loops.rst:486 #: ../../rst/playbook_guide/playbooks_strategies.rst:245 -#: ../../rst/playbook_guide/playbooks_variables.rst:515 +#: ../../rst/playbook_guide/playbooks_variables.rst:517 msgid ":ref:`about_playbooks`" msgstr ":ref:`about_playbooks`" -#: ../../rst/playbook_guide/playbooks_filters.rst:2190 +#: ../../rst/playbook_guide/playbooks_filters.rst:2194 #: ../../rst/playbook_guide/playbooks_lookups.rst:34 #: ../../rst/playbook_guide/playbooks_reuse.rst:217 -#: ../../rst/playbook_guide/playbooks_reuse_roles.rst:602 +#: ../../rst/playbook_guide/playbooks_reuse_roles.rst:604 #: ../../rst/playbook_guide/playbooks_tests.rst:533 -#: ../../rst/playbook_guide/playbooks_variables.rst:521 +#: ../../rst/playbook_guide/playbooks_variables.rst:523 msgid ":ref:`playbooks_loops`" msgstr ":ref:`playbooks_loops`" -#: ../../rst/playbook_guide/playbooks_filters.rst:2191 +#: ../../rst/playbook_guide/playbooks_filters.rst:2195 #: ../../rst/playbook_guide/playbooks_lookups.rst:35 #: ../../rst/playbook_guide/playbooks_tests.rst:534 -#: ../../rst/playbook_guide/playbooks_variables.rst:522 +#: ../../rst/playbook_guide/playbooks_variables.rst:524 msgid "Looping in playbooks" msgstr "Playbook でのループ" @@ -3604,8 +3608,8 @@ msgid "Run ``ansible-pull --help`` for details." msgstr "詳細は、「``ansible-pull --help``」を参照してください。" #: ../../rst/playbook_guide/playbooks_intro.rst:119 -msgid "There's also a `clever playbook `_ available to configure ``ansible-pull`` via a crontab from push mode." -msgstr "また、プッシュモードからの crontab で ``ansible-pull`` を設定する際に利用可能な `優れた Playbook `_ もあります。" +msgid "There's also a `clever playbook `_ available to configure ``ansible-pull`` through a crontab from push mode." +msgstr "また、プッシュモードからの crontab で ``ansible-pull`` を設定する際に利用可能な `clever playbook `_ もあります。" #: ../../rst/playbook_guide/playbooks_intro.rst:122 msgid "Verifying playbooks" @@ -3636,12 +3640,12 @@ msgid "Learn how to test Ansible Playbooks syntax" msgstr "Ansible Playbook 構文のテスト方法について" #: ../../rst/playbook_guide/playbooks_intro.rst:146 -#: ../../rst/playbook_guide/playbooks_reuse_roles.rst:592 +#: ../../rst/playbook_guide/playbooks_reuse_roles.rst:594 msgid ":ref:`yaml_syntax`" msgstr ":ref:`yaml_syntax`" #: ../../rst/playbook_guide/playbooks_intro.rst:147 -#: ../../rst/playbook_guide/playbooks_reuse_roles.rst:593 +#: ../../rst/playbook_guide/playbooks_reuse_roles.rst:595 msgid "Learn about YAML syntax" msgstr "YAML 構文について" @@ -3650,17 +3654,17 @@ msgid "Tips for managing playbooks in the real world" msgstr "実際の Playbook の管理に関するさまざまなヒント" #: ../../rst/playbook_guide/playbooks_intro.rst:150 -#: ../../rst/playbook_guide/playbooks_reuse_roles.rst:606 +#: ../../rst/playbook_guide/playbooks_reuse_roles.rst:608 msgid ":ref:`list_of_collections`" msgstr ":ref:`list_of_collections`" #: ../../rst/playbook_guide/playbooks_intro.rst:151 -#: ../../rst/playbook_guide/playbooks_reuse_roles.rst:607 +#: ../../rst/playbook_guide/playbooks_reuse_roles.rst:609 msgid "Browse existing collections, modules, and plugins" msgstr "既存のコレクション、モジュール、およびプラグインの閲覧" #: ../../rst/playbook_guide/playbooks_intro.rst:152 -#: ../../rst/playbook_guide/playbooks_reuse_roles.rst:608 +#: ../../rst/playbook_guide/playbooks_reuse_roles.rst:610 msgid ":ref:`developing_modules`" msgstr ":ref:`developing_modules`" @@ -3686,14 +3690,14 @@ msgstr "完全なエンドツーエンド Playbook の例" #: ../../rst/playbook_guide/playbooks_intro.rst:158 #: ../../rst/playbook_guide/playbooks_reuse.rst:225 -#: ../../rst/playbook_guide/playbooks_reuse_roles.rst:612 +#: ../../rst/playbook_guide/playbooks_reuse_roles.rst:614 msgid "`Mailing List `_" msgstr "`Mailing List `_" #: ../../rst/playbook_guide/playbooks_intro.rst:159 #: ../../rst/playbook_guide/playbooks_privilege_escalation.rst:774 #: ../../rst/playbook_guide/playbooks_reuse.rst:226 -#: ../../rst/playbook_guide/playbooks_reuse_roles.rst:613 +#: ../../rst/playbook_guide/playbooks_reuse_roles.rst:615 msgid "Questions? Help? Ideas? Stop by the list on Google Groups" msgstr "ご質問はございますか。サポートが必要ですか。ご提案はございますか。Google グループの一覧をご覧ください。" @@ -4083,7 +4087,7 @@ msgid "As of Ansible 2.8 you can get the name of the value provided to ``loop_co msgstr "Ansible 2.8 では、``ansible_loop_var`` 変数を使用して ``loop_control.loop_var`` に提供された値の名前を取得できます。" #: ../../rst/playbook_guide/playbooks_loops.rst:471 -msgid "For role authors, writing roles that allow loops, instead of dictating the required ``loop_var`` value, you can gather the value via the following" +msgid "For role authors, writing roles that allow loops, instead of dictating the required ``loop_var`` value, you can gather the value through the following" msgstr "ロールの作成者は、必要な ``loop_var`` 値を指定する代わりに、ループを許可するロールを作成することで、次の方法で値を収集できます。" #: ../../rst/playbook_guide/playbooks_loops.rst:480 @@ -4158,27 +4162,31 @@ msgstr "with_sequence" msgid "``with_sequence`` is replaced by ``loop`` and the ``range`` function, and potentially the ``format`` filter." msgstr "``with_sequence`` は、``loop`` 関数と ``range`` の関数、そして潜在的には ``format`` フィルターに置き換えられました。" -#: ../../rst/playbook_guide/shared_snippets/with2loop.txt:153 +#: ../../rst/playbook_guide/shared_snippets/with2loop.txt:151 +msgid "The range of the loop is exclusive of the end point." +msgstr "ループの範囲はエンドポイントを除きます。" + +#: ../../rst/playbook_guide/shared_snippets/with2loop.txt:154 msgid "with_subelements" msgstr "with_subelements" -#: ../../rst/playbook_guide/shared_snippets/with2loop.txt:155 +#: ../../rst/playbook_guide/shared_snippets/with2loop.txt:156 msgid "``with_subelements`` is replaced by ``loop`` and the ``subelements`` filter." msgstr "``with_subelements`` は、``loop`` フィルターおよび ``subelements`` フィルターに置き換えられました。" -#: ../../rst/playbook_guide/shared_snippets/with2loop.txt:172 +#: ../../rst/playbook_guide/shared_snippets/with2loop.txt:173 msgid "with_nested/with_cartesian" msgstr "with_nested/with_cartesian" -#: ../../rst/playbook_guide/shared_snippets/with2loop.txt:174 +#: ../../rst/playbook_guide/shared_snippets/with2loop.txt:175 msgid "``with_nested`` and ``with_cartesian`` are replaced by loop and the ``product`` filter." msgstr "``with_nested`` と``with_cartesian`` は、ループと ``product`` のフィルターに置き換えられました。" -#: ../../rst/playbook_guide/shared_snippets/with2loop.txt:191 +#: ../../rst/playbook_guide/shared_snippets/with2loop.txt:192 msgid "with_random_choice" msgstr "with_random_choice" -#: ../../rst/playbook_guide/shared_snippets/with2loop.txt:193 +#: ../../rst/playbook_guide/shared_snippets/with2loop.txt:194 msgid "``with_random_choice`` is replaced by just use of the ``random`` filter, without need of ``loop``." msgstr "``with_random_choice`` は、``random`` フィルターを使用するだけで、``loop`` を必要とせずに置き換えることができます。" @@ -5109,8 +5117,8 @@ msgid "Dictionary views" msgstr "ディクショナリービュー" #: ../../rst/playbook_guide/playbooks_python_version.rst:18 -msgid "In Python2, the :meth:`dict.keys`, :meth:`dict.values`, and :meth:`dict.items` methods return a list. Jinja2 returns that to Ansible via a string representation that Ansible can turn back into a list." -msgstr "Python2 では、:meth:`dict.keys`、:meth:`dict.values`、および :meth:`dict.items` メソッドはリストを返します。Jinja2 は、Ansible がリストに戻ってきた文字列表現で Ansible に返します。" +msgid "In Python2, the :meth:`dict.keys`, :meth:`dict.values`, and :meth:`dict.items` methods return a list. Jinja2 returns that to Ansible using a string representation that Ansible can turn back into a list." +msgstr "Python2 では、:meth:`dict.keys`、:meth:`dict.values`、および :meth:`dict.items` メソッドはリストを返します。Jinja2 はこれを、Ansible がリストに戻すことができる文字列表現で Ansible に返します。" #: ../../rst/playbook_guide/playbooks_python_version.rst:22 msgid "In Python3, those methods return a :ref:`dictionary view ` object. The string representation that Jinja2 returns for dictionary views cannot be parsed back into a list by Ansible. It is, however, easy to make this portable by using the :func:`list ` filter whenever using :meth:`dict.keys`, :meth:`dict.values`, or :meth:`dict.items`." @@ -5161,7 +5169,7 @@ msgid "A playbook contains at least one play, and may contain variables, tasks, msgstr "Playbook には、少なくとも 1 つのプレイが含まれており、変数、タスク、その他のコンテンツを含むことができます。厳密に焦点を絞った Playbook は再利用できますが、動的にではなく静的にしか再利用できません。" #: ../../rst/playbook_guide/playbooks_reuse.rst:20 -msgid "A role contains a set of related tasks, variables, defaults, handlers, and even modules or other plugins in a defined file-tree. Unlike variables files, task files, or playbooks, roles can be easily uploaded and shared via Ansible Galaxy. See :ref:`playbooks_reuse_roles` for details about creating and using roles." +msgid "A role contains a set of related tasks, variables, defaults, handlers, and even modules or other plugins in a defined file-tree. Unlike variables files, task files, or playbooks, roles can be easily uploaded and shared through Ansible Galaxy. See :ref:`playbooks_reuse_roles` for details about creating and using roles." msgstr "ロールには、関連するタスク、変数、デフォルト、ハンドラー、さらにはモジュールや他のプラグインのセットが、定義されたファイルツリーに格納されています。変数ファイル、タスクファイル、Playbook とは異なり、ロールは Ansible Galaxy で簡単にアップロードして共有することができます。ロールの作成と使用の詳細については、「:ref:`playbooks_reuse_roles`」を参照してください。" #: ../../rst/playbook_guide/playbooks_reuse.rst:25 @@ -5473,7 +5481,7 @@ msgid "Documentation of the ``include*`` and ``import*`` modules discussed here. msgstr "ここで説明する ``include*`` モジュールおよび ``import*`` モジュールに関するドキュメント" #: ../../rst/playbook_guide/playbooks_reuse.rst:212 -#: ../../rst/playbook_guide/playbooks_reuse_roles.rst:595 +#: ../../rst/playbook_guide/playbooks_reuse_roles.rst:597 #: ../../rst/playbook_guide/playbooks_roles.rst:16 msgid "Review the basic Playbook language features" msgstr "基本的な Playbook 言語機能の確認" @@ -5483,17 +5491,17 @@ msgid "All about variables in playbooks" msgstr "Playbook の変数の詳細のすべて" #: ../../rst/playbook_guide/playbooks_reuse.rst:216 -#: ../../rst/playbook_guide/playbooks_reuse_roles.rst:601 +#: ../../rst/playbook_guide/playbooks_reuse_roles.rst:603 msgid "Conditionals in playbooks" msgstr "Playbook の条件" #: ../../rst/playbook_guide/playbooks_reuse.rst:218 -#: ../../rst/playbook_guide/playbooks_reuse_roles.rst:603 +#: ../../rst/playbook_guide/playbooks_reuse_roles.rst:605 msgid "Loops in playbooks" msgstr "Playbook のループ" #: ../../rst/playbook_guide/playbooks_reuse.rst:221 -#: ../../rst/playbook_guide/playbooks_reuse_roles.rst:590 +#: ../../rst/playbook_guide/playbooks_reuse_roles.rst:592 #: ../../rst/playbook_guide/playbooks_roles.rst:13 msgid ":ref:`ansible_galaxy`" msgstr ":ref:`ansible_galaxy`" @@ -5504,12 +5512,12 @@ msgid "How to share roles on galaxy, role management" msgstr "Galaxy (ロール管理) におけるロールの共有方法" #: ../../rst/playbook_guide/playbooks_reuse.rst:223 -#: ../../rst/playbook_guide/playbooks_reuse_roles.rst:610 +#: ../../rst/playbook_guide/playbooks_reuse_roles.rst:612 msgid "`GitHub Ansible examples `_" -msgstr "`GitHub Ansible の例 `_" +msgstr "`GitHub Ansible examples `_" #: ../../rst/playbook_guide/playbooks_reuse.rst:224 -#: ../../rst/playbook_guide/playbooks_reuse_roles.rst:611 +#: ../../rst/playbook_guide/playbooks_reuse_roles.rst:613 msgid "Complete playbook files from the GitHub project source" msgstr "Github プロジェクトソースの完全な Playbook ファイル" @@ -5847,7 +5855,7 @@ msgstr "このオプションの機能の詳細な説明。これは、完全な #: ../../rst/playbook_guide/playbooks_reuse_roles.rst msgid "type" -msgstr "type" +msgstr "タイプ" #: ../../rst/playbook_guide/playbooks_reuse_roles.rst:313 msgid "The data type of the option. See :ref:`Argument spec ` for allowed values for ``type``. Default is ``str``." @@ -5886,18 +5894,18 @@ msgid "The default field must not be listed as part of the description, unless i msgstr "追加の情報や条件が必要な場合を除き、デフォルトのフィールドは、説明の一部として記載しないでください。" #: ../../rst/playbook_guide/playbooks_reuse_roles.rst:327 -msgid "If the option is a boolean value, you can use any of the boolean values recognized by Ansible: (such as true/false or yes/no). Choose the one that reads better in the context of the option." -msgstr "オプションがブール値の場合は、Ansible が認識する任意のブール値 (true/false、yes/no など) を使用できます。オプションのコンテキストで読み取りが適切であればこれを選択します。" +msgid "If the option is a boolean value, you should use `true/false` if you want to be compatible with `ansible-lint`." +msgstr "オプションがブール値である場合、`ansible-lint` と互換性を持たせたい場合は、`true/false` を使用する必要があります。" #: ../../rst/playbook_guide/playbooks_reuse_roles.rst msgid "choices" msgstr "choices" -#: ../../rst/playbook_guide/playbooks_reuse_roles.rst:332 +#: ../../rst/playbook_guide/playbooks_reuse_roles.rst:331 msgid "List of option values." msgstr "オプション値のリスト。" -#: ../../rst/playbook_guide/playbooks_reuse_roles.rst:333 +#: ../../rst/playbook_guide/playbooks_reuse_roles.rst:332 msgid "Should be absent if empty." msgstr "空欄の場合は指定なしになります。" @@ -5905,187 +5913,191 @@ msgstr "空欄の場合は指定なしになります。" msgid "elements" msgstr "elements" -#: ../../rst/playbook_guide/playbooks_reuse_roles.rst:337 +#: ../../rst/playbook_guide/playbooks_reuse_roles.rst:336 msgid "Specifies the data type for list elements when type is ``list``." msgstr "タイプが ``list`` の場合に、リスト要素のデータ型を指定します。" -#: ../../rst/playbook_guide/playbooks_reuse_roles.rst:341 +#: ../../rst/playbook_guide/playbooks_reuse_roles.rst:340 msgid "If this option takes a dict or list of dicts, you can define the structure here." msgstr "このオプションがディクショナリーまたはディクショナリーのリストを取る場合は、ここで構造を定義できます。" -#: ../../rst/playbook_guide/playbooks_reuse_roles.rst:344 +#: ../../rst/playbook_guide/playbooks_reuse_roles.rst:343 msgid "Sample specification" msgstr "サンプル仕様" -#: ../../rst/playbook_guide/playbooks_reuse_roles.rst:379 +#: ../../rst/playbook_guide/playbooks_reuse_roles.rst:378 msgid "Running a role multiple times in one play" msgstr "1 つのプレイでロールを複数回実行する" -#: ../../rst/playbook_guide/playbooks_reuse_roles.rst:381 +#: ../../rst/playbook_guide/playbooks_reuse_roles.rst:380 msgid "Ansible only executes each role once in a play, even if you define it multiple times, unless the parameters defined on the role are different for each definition. For example, Ansible only runs the role ``foo`` once in a play like this:" msgstr "Ansible は、ロールに定義されているパラメーターが定義ごとに異なる場合を除き、各ロールを複数回定義してもプレイでは 1 回しか実行しません。たとえば、Ansible は次のようなプレイで ``foo`` というロールを 1 回だけ実行します。" -#: ../../rst/playbook_guide/playbooks_reuse_roles.rst:392 +#: ../../rst/playbook_guide/playbooks_reuse_roles.rst:391 msgid "You have two options to force Ansible to run a role more than once." msgstr "Ansible が複数のロールを強制的に実行するオプションは 2 つあります。" -#: ../../rst/playbook_guide/playbooks_reuse_roles.rst:395 +#: ../../rst/playbook_guide/playbooks_reuse_roles.rst:394 msgid "Passing different parameters" msgstr "異なるパラメーターを渡す" -#: ../../rst/playbook_guide/playbooks_reuse_roles.rst:397 +#: ../../rst/playbook_guide/playbooks_reuse_roles.rst:396 msgid "If you pass different parameters in each role definition, Ansible runs the role more than once. Providing different variable values is not the same as passing different role parameters. You must use the ``roles`` keyword for this behavior, since ``import_role`` and ``include_role`` do not accept role parameters." msgstr "各ロール定義で異なるパラメーターを渡すと、Ansible はそのロールを複数回実行します。異なる変数値を提供することは、異なるロールパラメーターを渡すこととは異なります。``import_role`` および ``include_role`` はロールパラメーターを受け入れないため、この動作には ``roles`` キーワードを使用する必要があります。" -#: ../../rst/playbook_guide/playbooks_reuse_roles.rst:399 +#: ../../rst/playbook_guide/playbooks_reuse_roles.rst:398 msgid "This play runs the ``foo`` role twice:" msgstr "このプレイでは、``foo`` ロールが 2 回実行されます。" -#: ../../rst/playbook_guide/playbooks_reuse_roles.rst:409 +#: ../../rst/playbook_guide/playbooks_reuse_roles.rst:408 msgid "This syntax also runs the ``foo`` role twice;" msgstr "この構文は、``foo`` ロールを 2 回実行します。" -#: ../../rst/playbook_guide/playbooks_reuse_roles.rst:421 +#: ../../rst/playbook_guide/playbooks_reuse_roles.rst:420 msgid "In these examples, Ansible runs ``foo`` twice because each role definition has different parameters." msgstr "これらの例では、各ロール定義のパラメーターが異なるため、Ansible は ``foo`` を 2 回実行します。" -#: ../../rst/playbook_guide/playbooks_reuse_roles.rst:424 +#: ../../rst/playbook_guide/playbooks_reuse_roles.rst:423 msgid "Using ``allow_duplicates: true``" msgstr "``allow_duplicates: true`` の使用" -#: ../../rst/playbook_guide/playbooks_reuse_roles.rst:426 +#: ../../rst/playbook_guide/playbooks_reuse_roles.rst:425 msgid "Add ``allow_duplicates: true`` to the ``meta/main.yml`` file for the role:" msgstr "ロールの ``meta/main.yml`` ファイルに ``allow_duplicates: true`` を追加します。" -#: ../../rst/playbook_guide/playbooks_reuse_roles.rst:441 +#: ../../rst/playbook_guide/playbooks_reuse_roles.rst:440 msgid "In this example, Ansible runs ``foo`` twice because we have explicitly enabled it to do so." msgstr "この例では、Ansible が ``foo`` を2回実行していますが、これは明示的に実行できるようにしたためです。" -#: ../../rst/playbook_guide/playbooks_reuse_roles.rst:446 +#: ../../rst/playbook_guide/playbooks_reuse_roles.rst:445 msgid "Using role dependencies" msgstr "ロール依存関係の使用" -#: ../../rst/playbook_guide/playbooks_reuse_roles.rst:448 +#: ../../rst/playbook_guide/playbooks_reuse_roles.rst:447 msgid "Role dependencies let you automatically pull in other roles when using a role." msgstr "ロールの依存関係により、ロールを使用する際に他のロールを自動的にプルできます。" -#: ../../rst/playbook_guide/playbooks_reuse_roles.rst:450 +#: ../../rst/playbook_guide/playbooks_reuse_roles.rst:449 msgid "Role dependencies are prerequisites, not true dependencies. The roles do not have a parent/child relationship. Ansible loads all listed roles, runs the roles listed under ``dependencies`` first, then runs the role that lists them. The play object is the parent of all roles, including roles called by a ``dependencies`` list." msgstr "ロールの依存関係は前提条件であり、真の依存関係ではありません。また、ロールは親子関係を持ちません。Ansible はリストアップされたすべてのロールを読み込み、``dependencies`` にリストアップされたロールを最初に実行し、次にそれらをリストアップしたロールを実行します。play オブジェクトは、``dependencies`` のリストで呼び出されるロールを含め、すべてのロールの親です。" -#: ../../rst/playbook_guide/playbooks_reuse_roles.rst:452 +#: ../../rst/playbook_guide/playbooks_reuse_roles.rst:451 msgid "Role dependencies are stored in the ``meta/main.yml`` file within the role directory. This file should contain a list of roles and parameters to insert before the specified role. For example:" msgstr "ロールの依存関係は、ロールディレクトリー内の ``meta/main.yml`` ファイルに保存されます。このファイルには、指定されたロールの前に挿入するロールとパラメーターの一覧を含める必要があります。以下に例を示します。" -#: ../../rst/playbook_guide/playbooks_reuse_roles.rst:470 +#: ../../rst/playbook_guide/playbooks_reuse_roles.rst:469 msgid "Ansible always executes roles listed in ``dependencies`` before the role that lists them. Ansible executes this pattern recursively when you use the ``roles`` keyword. For example, if you list role ``foo`` under ``roles:``, role ``foo`` lists role ``bar`` under ``dependencies`` in its meta/main.yml file, and role ``bar`` lists role ``baz`` under ``dependencies`` in its meta/main.yml, Ansible executes ``baz``, then ``bar``, then ``foo``." msgstr "Ansible は、``dependencies`` に記載されているロールを、それを記載しているロールの前に常に実行します。``roles`` キーワードを使用すると、Ansible はこのパターンを再帰的に実行します。たとえば、ロール ``foo`` を ``roles:`` の下にリストし、ロール ``foo`` が meta/main.yml ファイルの ``dependencies`` の下にロール ``bar`` をリストし、ロール ``bar`` が meta/main.yml の ``dependencies`` の下にロール ``baz`` をリストしている場合、Ansibleは ``baz``、``bar``、``foo`` の順に実行します。" -#: ../../rst/playbook_guide/playbooks_reuse_roles.rst:473 +#: ../../rst/playbook_guide/playbooks_reuse_roles.rst:472 msgid "Running role dependencies multiple times in one play" msgstr "1 つのプレイでロールの依存関係を複数回実行する" -#: ../../rst/playbook_guide/playbooks_reuse_roles.rst:475 +#: ../../rst/playbook_guide/playbooks_reuse_roles.rst:474 msgid "Ansible treats duplicate role dependencies like duplicate roles listed under ``roles:``: Ansible only executes role dependencies once, even if defined multiple times, unless the parameters, tags, or when clause defined on the role are different for each definition. If two roles in a play both list a third role as a dependency, Ansible only runs that role dependency once, unless you pass different parameters, tags, when clause, or use ``allow_duplicates: true`` in the role you want to run multiple times. See :ref:`Galaxy role dependencies ` for more details." msgstr "Ansible は、``roles:`` に記載されている重複したロールのように、重複したロールの依存関係を扱います。Ansible は、ロールに定義されたパラメーター、タグ、または when 句が定義ごとに異なる場合を除き、複数回定義されていてもロールの依存関係を 1 回のみ実行します。プレイ内の 2 つのロールが両方とも依存関係として 3 番目のロールをリストしている場合、Ansible は、複数回実行するロールで異なるパラメーター、タグ、when 句を渡すか、``allow_duplicates: true`` を使用しない限り、そのロールの依存関係を 1 回のみ実行します。詳細は、「:ref:`Galaxy role dependencies `」を参照してください。" -#: ../../rst/playbook_guide/playbooks_reuse_roles.rst:479 +#: ../../rst/playbook_guide/playbooks_reuse_roles.rst:478 msgid "Role deduplication does not consult the invocation signature of parent roles. Additionally, when using ``vars:`` instead of role params, there is a side effect of changing variable scoping. Using ``vars:`` results in those variables being scoped at the play level. In the below example, using ``vars:`` would cause ``n`` to be defined as ``4`` through the entire play, including roles called before it." msgstr "ロールの重複排除は、親ロールの呼び出し署名を参照しません。さらに、ロールパラメーターの代わりに ``vars:`` を使用する場合は、変数のスコープを変更するという副作用があります。``vars:`` を使用すると、それらの変数がプレイレベルで対象となります。以下の例では、``vars:`` を使用すると、それ以前に呼び出されたロールを含め、プレー全体を通して ``n`` が ``4`` として定義されることになります。" -#: ../../rst/playbook_guide/playbooks_reuse_roles.rst:481 +#: ../../rst/playbook_guide/playbooks_reuse_roles.rst:480 msgid "In addition to the above, users should be aware that role de-duplication occurs before variable evaluation. This means that :term:`Lazy Evaluation` may make seemingly different role invocations equivalently the same, preventing the role from running more than once." msgstr "上記に加えて、ユーザーは変数評価の前にロールの重複排除が行われることに注意する必要があります。つまり、:term:`Lazy Evaluation` は、一見異なるロールの呼び出しを等価にして、ロールが複数回実行されるのを防ぐことができます。" -#: ../../rst/playbook_guide/playbooks_reuse_roles.rst:484 +#: ../../rst/playbook_guide/playbooks_reuse_roles.rst:483 msgid "For example, a role named ``car`` depends on a role named ``wheel`` as follows:" msgstr "たとえば、``car`` という名前のロールは、以下のように ``wheel`` という名前のロールに依存します。" -#: ../../rst/playbook_guide/playbooks_reuse_roles.rst:499 +#: ../../rst/playbook_guide/playbooks_reuse_roles.rst:498 msgid "And the ``wheel`` role depends on two roles: ``tire`` and ``brake``. The ``meta/main.yml`` for wheel would then contain the following:" msgstr "そして、``wheel`` のロールは、``tire`` と ``brake`` の 2 つのロールに依存します。このため、wheel 用の ``meta/main.yml`` は以下のようになります。" -#: ../../rst/playbook_guide/playbooks_reuse_roles.rst:508 +#: ../../rst/playbook_guide/playbooks_reuse_roles.rst:507 msgid "And the ``meta/main.yml`` for ``tire`` and ``brake`` would contain the following:" msgstr "そして、「``tire``」および「``brake``」の「``meta/main.yml``」には、次のような内容が含まれています。" -#: ../../rst/playbook_guide/playbooks_reuse_roles.rst:515 +#: ../../rst/playbook_guide/playbooks_reuse_roles.rst:514 msgid "The resulting order of execution would be as follows:" msgstr "その結果作成される実行順序は以下のようになります。" -#: ../../rst/playbook_guide/playbooks_reuse_roles.rst:528 +#: ../../rst/playbook_guide/playbooks_reuse_roles.rst:527 msgid "To use ``allow_duplicates: true`` with role dependencies, you must specify it for the role listed under ``dependencies``, not for the role that lists it. In the example above, ``allow_duplicates: true`` appears in the ``meta/main.yml`` of the ``tire`` and ``brake`` roles. The ``wheel`` role does not require ``allow_duplicates: true``, because each instance defined by ``car`` uses different parameter values." msgstr "``allow_duplicates: true`` をロール依存で使用するには、それをリストしているロールではなく、``dependencies`` の下にリストされているロールに対して指定する必要があります。上記の例では、``allow_duplicates: true`` は、``tire`` ロールおよび ``brake`` ロールの ``meta/main.yml`` に表示されます。``wheel`` ロールは、``car`` で定義された各インスタンスが異なるパラメーター値を使用するため、``allow_duplicates: true`` を必要としません。" -#: ../../rst/playbook_guide/playbooks_reuse_roles.rst:531 +#: ../../rst/playbook_guide/playbooks_reuse_roles.rst:530 msgid "See :ref:`playbooks_variables` for details on how Ansible chooses among variable values defined in different places (variable inheritance and scope). Also deduplication happens ONLY at the play level, so multiple plays in the same playbook may rerun the roles." msgstr "Ansible が、さまざまな場所(変数継承および範囲)で定義される変数の値から選択する方法は、「:ref:`playbooks_variables`」を参照してください。また、重複排除はプレイレベルでのみ行われるため、同じ Playbook の複数のプレイがロールを再実行する可能性があります。" -#: ../../rst/playbook_guide/playbooks_reuse_roles.rst:537 +#: ../../rst/playbook_guide/playbooks_reuse_roles.rst:536 msgid "Embedding modules and plugins in roles" msgstr "ロールでのモジュールおよびプラグインの埋め込み" #: ../../rst/playbook_guide/playbooks_reuse_roles.rst:539 +msgid "This applies only to standalone roles. Roles in collections do not support plugin embedding; they must use the collection's ``plugins`` structure to distribute plugins." +msgstr "これはスタンドアロンのロールにのみ適用されます。コレクション内のロールはプラグインの埋め込みをサポートしていません。プラグインを配布するには、コレクションの ``plugins`` 構造を使用する必要があります。" + +#: ../../rst/playbook_guide/playbooks_reuse_roles.rst:541 msgid "If you write a custom module (see :ref:`developing_modules`) or a plugin (see :ref:`developing_plugins`), you might wish to distribute it as part of a role. For example, if you write a module that helps configure your company's internal software, and you want other people in your organization to use this module, but you do not want to tell everyone how to configure their Ansible library path, you can include the module in your internal_config role." msgstr "カスタムモジュール (「:ref:`developing_modules`」を参照) やプラグイン (「:ref:`developing_plugins`」を参照) を作成した場合は、ロールの一部として配布したい場合があります。たとえば、社内のソフトウェアを設定するためのモジュールを作成し、組織内の他の人にもこのモジュールを使用してほしいにも関わらず、Ansible のライブラリーパスを設定する方法を全員に開示したくない場合は、internal_config ロールにモジュールを含めることができます。" -#: ../../rst/playbook_guide/playbooks_reuse_roles.rst:541 +#: ../../rst/playbook_guide/playbooks_reuse_roles.rst:543 msgid "To add a module or a plugin to a role: Alongside the 'tasks' and 'handlers' structure of a role, add a directory named 'library' and then include the module directly inside the 'library' directory." msgstr "モジュールやプラグインをロールに追加するには、ロールの「tasks」および「handlers」構造の横に、「library」という名前のディレクトリーを追加し、その「library」ディレクトリー内にモジュールを直接インクルードします。" -#: ../../rst/playbook_guide/playbooks_reuse_roles.rst:544 +#: ../../rst/playbook_guide/playbooks_reuse_roles.rst:546 msgid "Assuming you had this:" msgstr "以下があるとします。" -#: ../../rst/playbook_guide/playbooks_reuse_roles.rst:554 +#: ../../rst/playbook_guide/playbooks_reuse_roles.rst:556 msgid "The module will be usable in the role itself, as well as any roles that are called *after* this role, as follows:" msgstr "モジュールは、次のように、ロール自体、およびこのロールの *後に* 呼び出されるすべてのロールで使用できます。" -#: ../../rst/playbook_guide/playbooks_reuse_roles.rst:565 +#: ../../rst/playbook_guide/playbooks_reuse_roles.rst:567 msgid "If necessary, you can also embed a module in a role to modify a module in Ansible's core distribution. For example, you can use the development version of a particular module before it is released in production releases by copying the module and embedding the copy in a role. Use this approach with caution, as API signatures may change in core components, and this workaround is not guaranteed to work." msgstr "必要に応じて、ロールにモジュールを埋め込み、Ansible のコアディストリビューションのモジュールを変更することもできます。たとえば、モジュールをコピーし、そのコピーをロールに埋め込むことで、特定のモジュールの開発バージョンを実稼働リリースの前に使用することができます。コアコンポーネントでは API シグネチャーが変更する可能性があり、この回避策は動作が保証されていないため、この方法は慎重に使用してください。" -#: ../../rst/playbook_guide/playbooks_reuse_roles.rst:567 +#: ../../rst/playbook_guide/playbooks_reuse_roles.rst:569 msgid "The same mechanism can be used to embed and distribute plugins in a role, using the same schema. For example, for a filter plugin:" msgstr "同じスキーマを使用して、ロールにプラグインを埋め込んだり配布したりすることもできます。たとえば、フィルタープラグインの場合は、以下のようになります。" -#: ../../rst/playbook_guide/playbooks_reuse_roles.rst:577 +#: ../../rst/playbook_guide/playbooks_reuse_roles.rst:579 msgid "These filters can then be used in a Jinja template in any role called after 'my_custom_filter'." msgstr "これらのフィルターは、Jinja のテンプレートで、「my_custom_filter」の後に呼ばれる任意のロールで使用することができます。" -#: ../../rst/playbook_guide/playbooks_reuse_roles.rst:580 +#: ../../rst/playbook_guide/playbooks_reuse_roles.rst:582 msgid "Sharing roles: Ansible Galaxy" msgstr "ロールの共有: Ansible Galaxy" -#: ../../rst/playbook_guide/playbooks_reuse_roles.rst:582 +#: ../../rst/playbook_guide/playbooks_reuse_roles.rst:584 msgid "`Ansible Galaxy `_ is a free site for finding, downloading, rating, and reviewing all kinds of community-developed Ansible roles and can be a great way to get a jumpstart on your automation projects." msgstr "`Ansible Galaxy `_ は、コミュニティーで開発されたあらゆる種類の Ansible ロールを検索、ダウンロード、評価、およびレビューする無料サイトで、ここで自動化プロジェクトをすぐに開始するための優れた方法です。" -#: ../../rst/playbook_guide/playbooks_reuse_roles.rst:584 +#: ../../rst/playbook_guide/playbooks_reuse_roles.rst:586 msgid "The client ``ansible-galaxy`` is included in Ansible. The Galaxy client allows you to download roles from Ansible Galaxy and provides an excellent default framework for creating your own roles." msgstr "クライアント ``ansible-galaxy`` は、Ansible に含まれています。Galaxy クライアントを使用すると、Ansible Galaxy からロールをダウンロードでき、独自のロールを作成する優れたデフォルトのフレームワークも提供します。" -#: ../../rst/playbook_guide/playbooks_reuse_roles.rst:586 +#: ../../rst/playbook_guide/playbooks_reuse_roles.rst:588 msgid "Read the `Ansible Galaxy documentation `_ page for more information. A page that refers back to this one frequently is the Galaxy Roles document which explains the required metadata your role needs for use in Galaxy ." msgstr "詳細は、`Ansible Galaxy documentation `_ ページを参照してください。これを頻繁に参照するページは、Galaxy Role のドキュメントで、Galaxy で使用するためにロールが必要とするメタデータについて説明しています。" -#: ../../rst/playbook_guide/playbooks_reuse_roles.rst:591 +#: ../../rst/playbook_guide/playbooks_reuse_roles.rst:593 msgid "How to create new roles, share roles on Galaxy, role management" msgstr "新規ロールの作成、Galaxy でのロールの共有、およびロールの管理の方法" -#: ../../rst/playbook_guide/playbooks_reuse_roles.rst:599 +#: ../../rst/playbook_guide/playbooks_reuse_roles.rst:601 msgid "Variables in playbooks" msgstr "Playbook の変数" -#: ../../rst/playbook_guide/playbooks_reuse_roles.rst:604 +#: ../../rst/playbook_guide/playbooks_reuse_roles.rst:606 msgid ":ref:`tags`" msgstr ":ref:`tags`" -#: ../../rst/playbook_guide/playbooks_reuse_roles.rst:605 +#: ../../rst/playbook_guide/playbooks_reuse_roles.rst:607 msgid "Using tags to select or skip roles/tasks in long playbooks" msgstr "タグを使用した長い Playbook でロール/タスクの選択またはスキップ" -#: ../../rst/playbook_guide/playbooks_reuse_roles.rst:609 +#: ../../rst/playbook_guide/playbooks_reuse_roles.rst:611 msgid "Extending Ansible by writing your own modules" msgstr "独自のモジュールを作成して Ansible を拡張" @@ -6657,7 +6669,7 @@ msgstr "utc" msgid "Specify ``True`` to get the current time in UTC. Defaults to ``False``." msgstr "UTC で現在の時間を取得するには、``True`` を指定します。デフォルトは ``False`` です。" -#: ../../:1 +#: ../../rst/playbook_guide/playbooks_templating_now.rst:17 msgid "fmt" msgstr "fmt" @@ -7041,7 +7053,7 @@ msgstr "Ansible では、ブール変数 ``true/false``、``1/0``、``yes/no`` #: ../../rst/playbook_guide/playbooks_variables.rst:110 msgid "Valid values" -msgstr "有効な値" +msgstr "有効な値は以下のとおりです。" #: ../../rst/playbook_guide/playbooks_variables.rst:112 msgid "``True`` , ``'true'`` , ``'t'`` , ``'yes'`` , ``'y'`` , ``'on'`` , ``'1'`` , ``1`` , ``1.0``" @@ -7235,255 +7247,255 @@ msgstr "JSON 文字列の形式" msgid "When passing variables with ``--extra-vars``, you must escape quotes and other special characters appropriately for both your markup (for example, JSON), and for your shell:" msgstr "``--extra-vars`` で変数を渡す場合には、マークアップ (JSON など) とシェルの両方で、引用符やその他の特殊文字を適切にエスケープする必要があります。" -#: ../../rst/playbook_guide/playbooks_variables.rst:334 -msgid "If you have a lot of special characters, use a JSON or YAML file containing the variable definitions." -msgstr "特殊文字が多数ある場合は、変数定義を含む JSON ファイルまたは YAML ファイルを使用します。" - -#: ../../rst/playbook_guide/playbooks_variables.rst:337 +#: ../../rst/playbook_guide/playbooks_variables.rst:336 msgid "vars from a JSON or YAML file" msgstr "JSON ファイルまたは YAML ファイルの変数" -#: ../../rst/playbook_guide/playbooks_variables.rst:347 +#: ../../rst/playbook_guide/playbooks_variables.rst:338 +msgid "If you have a lot of special characters, use a JSON or YAML file containing the variable definitions. Prepend both JSON and YAML filenames with `@`." +msgstr "特殊文字が多数ある場合は、変数定義を含む JSON ファイルまたは YAML ファイルを使用します。JSON および YAML ファイル名に `@` の接頭辞を付けます。" + +#: ../../rst/playbook_guide/playbooks_variables.rst:349 msgid "Variable precedence: Where should I put a variable?" msgstr "変数の優先順位: 変数をどこに置くべきか" -#: ../../rst/playbook_guide/playbooks_variables.rst:349 +#: ../../rst/playbook_guide/playbooks_variables.rst:351 msgid "You can set multiple variables with the same name in many different places. When you do this, Ansible loads every possible variable it finds, then chooses the variable to apply based on variable precedence. In other words, the different variables will override each other in a certain order." msgstr "同じ名前の複数の変数をさまざまな場所に設定することができます。これを行うと、Ansible は検出可能なすべての変数を読み込み、次に変数の優先順位に基づいて適用する変数を選択します。つまり、異なる変数が一定の順序で互いに上書きされます。" -#: ../../rst/playbook_guide/playbooks_variables.rst:351 +#: ../../rst/playbook_guide/playbooks_variables.rst:353 msgid "Teams and projects that agree on guidelines for defining variables (where to define certain types of variables) usually avoid variable precedence concerns. We suggest that you define each variable in one place: figure out where to define a variable, and keep it simple. For examples, see :ref:`variable_examples`." msgstr "変数の定義に関するガイドライン (特定のタイプの変数をどこで定義するか) に合意したチームやプロジェクトは、通常、変数の優先順位に関する懸念を回避することができます。各変数は、一箇所で定義することが推奨されます。どこで変数を定義するかを把握し、簡潔さを保ってください。例については、「:ref:`variable_examples`」を参照してください。" -#: ../../rst/playbook_guide/playbooks_variables.rst:353 +#: ../../rst/playbook_guide/playbooks_variables.rst:355 msgid "Some behavioral parameters that you can set in variables you can also set in Ansible configuration, as command-line options, and using playbook keywords. For example, you can define the user Ansible uses to connect to remote devices as a variable with ``ansible_user``, in a configuration file with ``DEFAULT_REMOTE_USER``, as a command-line option with ``-u``, and with the playbook keyword ``remote_user``. If you define the same parameter in a variable and by another method, the variable overrides the other setting. This approach allows host-specific settings to override more general settings. For examples and more details on the precedence of these various settings, see :ref:`general_precedence_rules`." msgstr "変数で設定できる動作パラメーターの中には、Ansible の構成、コマンドラインオプション、および Playbook キーワードで設定できるものがあります。たとえば、Ansible がリモートデバイスへの接続に使用するユーザーは、変数では ``ansible_user``、構成ファイルでは ``DEFAULT_REMOTE_USER``、コマンドラインオプションでは ``-u`` 、Playbook キーワードでは ``remote_user`` で定義できます。変数と別の方法で同じパラメーターを定義した場合は、変数が別の設定を上書きします。この方法では、ホスト固有の設定がより一般的な設定を上書きします。これらのさまざまな設定の優先順位の例や詳細は、「:ref:`general_precedence_rules`」を参照してください。" -#: ../../rst/playbook_guide/playbooks_variables.rst:356 +#: ../../rst/playbook_guide/playbooks_variables.rst:358 msgid "Understanding variable precedence" msgstr "変数の優先順位について" -#: ../../rst/playbook_guide/playbooks_variables.rst:358 +#: ../../rst/playbook_guide/playbooks_variables.rst:360 msgid "Ansible does apply variable precedence, and you might have a use for it. Here is the order of precedence from least to greatest (the last listed variables override all other variables):" msgstr "Ansible では変数の優先順位を適用しており、それを利用できる場合があります。ここでは、優先順位の低いものから高いものまでを紹介します (最後に挙げた変数が他のすべての変数を上書きします)。" -#: ../../rst/playbook_guide/playbooks_variables.rst:360 +#: ../../rst/playbook_guide/playbooks_variables.rst:362 msgid "command line values (for example, ``-u my_user``, these are not variables)" msgstr "コマンドラインの値 (例: ``-u my_user`` (これらは変数ではありません))" -#: ../../rst/playbook_guide/playbooks_variables.rst:361 +#: ../../rst/playbook_guide/playbooks_variables.rst:363 msgid "role defaults (defined in role/defaults/main.yml) [1]_" msgstr "ロールのデフォルト(role/defaults/main.yml で定義) [1]_" -#: ../../rst/playbook_guide/playbooks_variables.rst:362 +#: ../../rst/playbook_guide/playbooks_variables.rst:364 msgid "inventory file or script group vars [2]_" msgstr "インベントリーファイルまたはスクリプトのグループ変数 [2]_" -#: ../../rst/playbook_guide/playbooks_variables.rst:363 +#: ../../rst/playbook_guide/playbooks_variables.rst:365 msgid "inventory group_vars/all [3]_" msgstr "インベントリー group_vars/all [3]_" -#: ../../rst/playbook_guide/playbooks_variables.rst:364 +#: ../../rst/playbook_guide/playbooks_variables.rst:366 msgid "playbook group_vars/all [3]_" msgstr "playbook group_vars/all [3]_" -#: ../../rst/playbook_guide/playbooks_variables.rst:365 +#: ../../rst/playbook_guide/playbooks_variables.rst:367 msgid "inventory group_vars/* [3]_" msgstr "インベントリー group_vars/* [3]_" -#: ../../rst/playbook_guide/playbooks_variables.rst:366 +#: ../../rst/playbook_guide/playbooks_variables.rst:368 msgid "playbook group_vars/* [3]_" msgstr "playbook group_vars/* [3]_" -#: ../../rst/playbook_guide/playbooks_variables.rst:367 +#: ../../rst/playbook_guide/playbooks_variables.rst:369 msgid "inventory file or script host vars [2]_" msgstr "インベントリーファイルまたはスクリプトホスト変数 [2]_" -#: ../../rst/playbook_guide/playbooks_variables.rst:368 +#: ../../rst/playbook_guide/playbooks_variables.rst:370 msgid "inventory host_vars/* [3]_" msgstr "インベントリー host_vars/* [3]_" -#: ../../rst/playbook_guide/playbooks_variables.rst:369 +#: ../../rst/playbook_guide/playbooks_variables.rst:371 msgid "playbook host_vars/* [3]_" msgstr "playbook host_vars/* [3]_" -#: ../../rst/playbook_guide/playbooks_variables.rst:370 +#: ../../rst/playbook_guide/playbooks_variables.rst:372 msgid "host facts / cached set_facts [4]_" msgstr "ホストファクト / キャッシュ済み set_facts [4]_" -#: ../../rst/playbook_guide/playbooks_variables.rst:371 +#: ../../rst/playbook_guide/playbooks_variables.rst:373 msgid "play vars" msgstr "プレイ変数" -#: ../../rst/playbook_guide/playbooks_variables.rst:372 +#: ../../rst/playbook_guide/playbooks_variables.rst:374 msgid "play vars_prompt" msgstr "play vars_prompt" -#: ../../rst/playbook_guide/playbooks_variables.rst:373 +#: ../../rst/playbook_guide/playbooks_variables.rst:375 msgid "play vars_files" msgstr "play vars_files" -#: ../../rst/playbook_guide/playbooks_variables.rst:374 +#: ../../rst/playbook_guide/playbooks_variables.rst:376 msgid "role vars (defined in role/vars/main.yml)" msgstr "role 変数 (role/vars/main.yml で定義)" -#: ../../rst/playbook_guide/playbooks_variables.rst:375 +#: ../../rst/playbook_guide/playbooks_variables.rst:377 msgid "block vars (only for tasks in block)" msgstr "ブロック変数 (ブロックのタスクにのみ適用)" -#: ../../rst/playbook_guide/playbooks_variables.rst:376 +#: ../../rst/playbook_guide/playbooks_variables.rst:378 msgid "task vars (only for the task)" msgstr "タスク変数 (タスク専用)" -#: ../../rst/playbook_guide/playbooks_variables.rst:377 +#: ../../rst/playbook_guide/playbooks_variables.rst:379 msgid "include_vars" msgstr "include_vars" -#: ../../rst/playbook_guide/playbooks_variables.rst:378 +#: ../../rst/playbook_guide/playbooks_variables.rst:380 msgid "set_facts / registered vars" msgstr "set_facts / 登録変数" -#: ../../rst/playbook_guide/playbooks_variables.rst:379 +#: ../../rst/playbook_guide/playbooks_variables.rst:381 msgid "role (and include_role) params" msgstr "role (および include_role) パラメーター" -#: ../../rst/playbook_guide/playbooks_variables.rst:380 +#: ../../rst/playbook_guide/playbooks_variables.rst:382 msgid "include params" msgstr "include パラメーター" -#: ../../rst/playbook_guide/playbooks_variables.rst:381 +#: ../../rst/playbook_guide/playbooks_variables.rst:383 msgid "extra vars (for example, ``-e \"user=my_user\"``)(always win precedence)" msgstr "追加の変数 (例: ``-e \"user=my_user\"``)(常に優先されます)" -#: ../../rst/playbook_guide/playbooks_variables.rst:383 +#: ../../rst/playbook_guide/playbooks_variables.rst:385 msgid "In general, Ansible gives precedence to variables that were defined more recently, more actively, and with more explicit scope. Variables in the defaults folder inside a role are easily overridden. Anything in the vars directory of the role overrides previous versions of that variable in the namespace. Host and/or inventory variables override role defaults, but explicit includes such as the vars directory or an ``include_vars`` task override inventory variables." msgstr "一般的に、Ansible は、より新しく、より積極的に、より明確なスコープで定義された変数を優先します。ロール内の defaults フォルダーにある変数は簡単に上書きされます。ロールの vars ディレクトリーにあるものは、名前空間内のその変数の以前のバージョンを上書きします。ホストおよび/またはインベントリー変数はロールのデフォルトを上書きしますが、vars ディレクトリーや ``include_vars`` タスクなどの明示的なインクルードはインベントリー変数を上書きします。" -#: ../../rst/playbook_guide/playbooks_variables.rst:385 +#: ../../rst/playbook_guide/playbooks_variables.rst:387 msgid "Ansible merges different variables set in inventory so that more specific settings override more generic settings. For example, ``ansible_ssh_user`` specified as a group_var is overridden by ``ansible_user`` specified as a host_var. For details about the precedence of variables set in inventory, see :ref:`how_we_merge`." msgstr "Ansible は、インベントリーに設定した異なる変数をマージして、より特定の設定がより一般的な設定を上書きするようにします。たとえば、group_var として指定した ``ansible_ssh_user`` は、host_var として指定した ``ansible_user`` により上書きされます。インベントリーで設定された変数の優先順位の詳細については、「:ref:`how_we_merge`」を参照してください。" -#: ../../rst/playbook_guide/playbooks_variables.rst:388 +#: ../../rst/playbook_guide/playbooks_variables.rst:390 msgid "Footnotes" msgstr "注記" -#: ../../rst/playbook_guide/playbooks_variables.rst:389 +#: ../../rst/playbook_guide/playbooks_variables.rst:391 msgid "Tasks in each role see their own role's defaults. Tasks defined outside of a role see the last role's defaults." msgstr "各ロールのタスクには、それぞれのロールのデフォルト値が表示されます。ロールの外で定義されたタスクには、最後のロールのデフォルトが表示されます。" -#: ../../rst/playbook_guide/playbooks_variables.rst:390 +#: ../../rst/playbook_guide/playbooks_variables.rst:392 msgid "Variables defined in inventory file or provided by dynamic inventory." msgstr "インベントリーファイルで定義される変数、または動的インベントリーで指定される変数。" -#: ../../rst/playbook_guide/playbooks_variables.rst:391 +#: ../../rst/playbook_guide/playbooks_variables.rst:393 msgid "Includes vars added by 'vars plugins' as well as host_vars and group_vars which are added by the default vars plugin shipped with Ansible." msgstr "「vars プラグイン」と、Ansible に同梱されるデフォルトの vars プラグインにより追加される host_vars および group_vars が含まれるインクルード変数。" -#: ../../rst/playbook_guide/playbooks_variables.rst:392 +#: ../../rst/playbook_guide/playbooks_variables.rst:394 msgid "When created with set_facts's cacheable option, variables have the high precedence in the play, but are the same as a host facts precedence when they come from the cache." msgstr "set_facts のキャッシュ可能なオプションを使用して作成すると、変数がプレイに優先されますが、キャッシュからのホストのファクトと同様に優先されます。" -#: ../../rst/playbook_guide/playbooks_variables.rst:395 +#: ../../rst/playbook_guide/playbooks_variables.rst:397 msgid "Within any section, redefining a var overrides the previous instance. If multiple groups have the same variable, the last one loaded wins. If you define a variable twice in a play's ``vars:`` section, the second one wins." msgstr "どのセクションでも、変数を再定義すると前のインスタンスが上書きされます。複数のグループが同じ変数を持っている場合は、最後に読み込まれたものが優先されます。プレイ中の ``vars:`` のセクションで変数を 2 回定義した場合は、2 回目の変数が優先されます。" -#: ../../rst/playbook_guide/playbooks_variables.rst:398 +#: ../../rst/playbook_guide/playbooks_variables.rst:400 msgid "The previous describes the default config ``hash_behaviour=replace``, switch to ``merge`` to only partially overwrite." msgstr "以前は、デフォルトの設定 ``hash_behaviour=replace`` を説明し、``merge`` に切り替えてを部分的に上書きします。" -#: ../../rst/playbook_guide/playbooks_variables.rst:403 +#: ../../rst/playbook_guide/playbooks_variables.rst:405 msgid "Scoping variables" msgstr "変数のスコープ設定" -#: ../../rst/playbook_guide/playbooks_variables.rst:405 +#: ../../rst/playbook_guide/playbooks_variables.rst:407 msgid "You can decide where to set a variable based on the scope you want that value to have. Ansible has three main scopes:" msgstr "変数をどこに設定するかは、その値が持つべきスコープに基づいて決めることができます。Ansible には大きく分けて 3 つのスコープがあります。" -#: ../../rst/playbook_guide/playbooks_variables.rst:407 +#: ../../rst/playbook_guide/playbooks_variables.rst:409 msgid "Global: this is set by config, environment variables and the command line" msgstr "グローバル: これは、設定、環境変数、およびコマンドラインで設定されます。" -#: ../../rst/playbook_guide/playbooks_variables.rst:408 +#: ../../rst/playbook_guide/playbooks_variables.rst:410 msgid "Play: each play and contained structures, vars entries (vars; vars_files; vars_prompt), role defaults and vars." msgstr "プレイ: 各プレイおよび含まれる構造、変数エントリー (vars、vars_files、vars_prompt)、ロールのデフォルト、および変数" -#: ../../rst/playbook_guide/playbooks_variables.rst:409 +#: ../../rst/playbook_guide/playbooks_variables.rst:411 msgid "Host: variables directly associated to a host, like inventory, include_vars, facts or registered task outputs" msgstr "ホスト: インベントリー、include_vars、ファクト、または登録されたタスクの出力などのホストに直接関連付けられる変数" -#: ../../rst/playbook_guide/playbooks_variables.rst:411 +#: ../../rst/playbook_guide/playbooks_variables.rst:413 msgid "Inside a template, you automatically have access to all variables that are in scope for a host, plus any registered variables, facts, and magic variables." msgstr "テンプレート内では、ホストのスコープ内にあるすべての変数と、登録済みの変数、ファクト、およびマジック変数に自動的にアクセスできます。" -#: ../../rst/playbook_guide/playbooks_variables.rst:416 +#: ../../rst/playbook_guide/playbooks_variables.rst:418 msgid "Tips on where to set variables" msgstr "変数を設定する場所に関するヒント" -#: ../../rst/playbook_guide/playbooks_variables.rst:418 +#: ../../rst/playbook_guide/playbooks_variables.rst:420 msgid "You should choose where to define a variable based on the kind of control you might want over values." msgstr "変数を定義する場所は、値をどのように制御するかによって選択する必要があります。" -#: ../../rst/playbook_guide/playbooks_variables.rst:420 +#: ../../rst/playbook_guide/playbooks_variables.rst:422 msgid "Set variables in inventory that deal with geography or behavior. Since groups are frequently the entity that maps roles onto hosts, you can often set variables on the group instead of defining them on a role. Remember: child groups override parent groups, and host variables override group variables. See :ref:`define_variables_in_inventory` for details on setting host and group variables." msgstr "地理や動作を扱うインベントリーに変数を設定します。グループは、ホストにロールをマッピングするエンティティーであることが多いため、ロールに変数を定義する代わりに、グループに変数を設定することができます。子グループが親グループを上書きし、ホスト変数がグループ変数を上書きすることを忘れないでください。ホスト変数とグループ変数の設定の詳細は、「:ref:`define_variables_in_inventory`」を参照してください。" -#: ../../rst/playbook_guide/playbooks_variables.rst:422 +#: ../../rst/playbook_guide/playbooks_variables.rst:424 msgid "Set common defaults in a ``group_vars/all`` file. See :ref:`splitting_out_vars` for details on how to organize host and group variables in your inventory. Group variables are generally placed alongside your inventory file, but they can also be returned by dynamic inventory (see :ref:`intro_dynamic_inventory`) or defined in AWX or on :ref:`ansible_platform` from the UI or API:" msgstr "``group_vars/all`` ファイルで共通のデフォルトを設定します。インベントリーでホスト変数とグループ変数を整理する方法の詳細については、「:ref:`splitting_out_vars`」を参照してください。グループ変数は通常、インベントリーファイルと一緒に置かれますが、動的インベントリー (:ref:`intro_dynamic_inventory` を参照) で返されたり、AWX、または UI や API から :ref:`ansible_platform` で定義することもできます。" -#: ../../rst/playbook_guide/playbooks_variables.rst:431 +#: ../../rst/playbook_guide/playbooks_variables.rst:433 msgid "Set location-specific variables in ``group_vars/my_location`` files. All groups are children of the ``all`` group, so variables set here override those set in ``group_vars/all``:" msgstr "``group_vars/my_location`` ファイルにロケーション固有の変数を設定します。すべてのグループは ``all`` グループの子であるため、ここに設定される変数は ``group_vars/all`` で設定した変数を上書きします。" -#: ../../rst/playbook_guide/playbooks_variables.rst:439 +#: ../../rst/playbook_guide/playbooks_variables.rst:441 msgid "If one host used a different NTP server, you could set that in a host_vars file, which would override the group variable:" msgstr "1 つのホストが別の NTP サーバーを使用している場合は、host_vars ファイルにそのホストを設定できます。これにより、グループ変数が上書きされます。" -#: ../../rst/playbook_guide/playbooks_variables.rst:447 +#: ../../rst/playbook_guide/playbooks_variables.rst:449 msgid "Set defaults in roles to avoid undefined-variable errors. If you share your roles, other users can rely on the reasonable defaults you added in the ``roles/x/defaults/main.yml`` file, or they can easily override those values in inventory or at the command line. See :ref:`playbooks_reuse_roles` for more info. For example:" msgstr "未定義な変数エラーを防ぐために、ロールにデフォルト値を設定します。ロールを共有している場合、他のユーザーは、``roles/x/defaults/main.yml`` ファイルで追加した妥当なデフォルト値を信頼するか、インベントリーやコマンドラインで簡単にその値を上書きすることができます。詳細は、「:ref:`playbooks_reuse_roles`」を参照してください。以下に例を示します。" -#: ../../rst/playbook_guide/playbooks_variables.rst:456 +#: ../../rst/playbook_guide/playbooks_variables.rst:458 msgid "Set variables in roles to ensure a value is used in that role, and is not overridden by inventory variables. If you are not sharing your role with others, you can define app-specific behaviors like ports this way, in ``roles/x/vars/main.yml``. If you are sharing roles with others, putting variables here makes them harder to override, although they still can by passing a parameter to the role or setting a variable with ``-e``:" msgstr "ロールに変数を設定することで、値がそのロールで使用され、インベントリー変数で上書きされないようにします。ロールを他の人と共有していない場合は、ポートなどのアプリ固有の動作を、このように ``roles/x/vars/main.yml`` で定義できます。他の人とロールを共有している場合は、ここに変数を置くことで上書きされにくくなります。ただし、ロールにパラメーターを渡したり、``-e`` で変数を設定したりすれば、上書きされる可能性はあります。" -#: ../../rst/playbook_guide/playbooks_variables.rst:465 +#: ../../rst/playbook_guide/playbooks_variables.rst:467 msgid "Pass variables as parameters when you call roles for maximum clarity, flexibility, and visibility. This approach overrides any defaults that exist for a role. For example:" msgstr "明確さ、柔軟性、および可視性を最大化するためにロールを呼び出す場合は、パラメーターとして変数を渡します。この方法では、ロールに存在するデフォルトを上書きします。以下に例を示します。" -#: ../../rst/playbook_guide/playbooks_variables.rst:474 +#: ../../rst/playbook_guide/playbooks_variables.rst:476 msgid "When you read this playbook it is clear that you have chosen to set a variable or override a default. You can also pass multiple values, which allows you to run the same role multiple times. See :ref:`run_role_twice` for more details. For example:" msgstr "この Playbook を読むと、変数の設定やデフォルトの上書きを選択したことがわかります。また、複数の値を渡すことができるため、同じロールを複数回実行することができます。詳細は「:ref:`run_role_twice`」を参照してください。以下に例を示します。" -#: ../../rst/playbook_guide/playbooks_variables.rst:492 +#: ../../rst/playbook_guide/playbooks_variables.rst:494 msgid "Variables set in one role are available to later roles. You can set variables in a ``roles/common_settings/vars/main.yml`` file and use them in other roles and elsewhere in your playbook:" msgstr "1 つのロールに設定された変数は、後のロールで使用できます。変数は、``roles/common_settings/vars/main.yml`` ファイルに設定して、他のロールや Playbook の他の場所で使用します。" -#: ../../rst/playbook_guide/playbooks_variables.rst:503 +#: ../../rst/playbook_guide/playbooks_variables.rst:505 msgid "There are some protections in place to avoid the need to namespace variables. In this example, variables defined in 'common_settings' are available to 'something' and 'something_else' tasks, but tasks in 'something' have foo set at 12, even if 'common_settings' sets foo to 20." msgstr "変数の名前空間化の必要性を回避するために、いくつかの保護機能があります。この例では、「common_settings」で定義された変数は「something」と「something_else」のタスクで使用できますが、「common_settings」で foo が 20 に設定されていても、「something」のタスクでは foo が 12 に設定されています。" -#: ../../rst/playbook_guide/playbooks_variables.rst:506 +#: ../../rst/playbook_guide/playbooks_variables.rst:508 msgid "Instead of worrying about variable precedence, we encourage you to think about how easily or how often you want to override a variable when deciding where to set it. If you are not sure what other variables are defined, and you need a particular value, use ``--extra-vars`` (``-e``) to override all other variables." msgstr "変数の優先順位を気にするのではなく、変数をどこに設定するかを決める際には、どれだけ簡単に、あるいはどれだけ頻繁に変数を上書きしたいかを考えることが推奨されます。他の変数がどのように定義されているかわからず、特定の値が必要な場合は、``--extra-vars`` (``-e``) を使用して、他のすべての変数を上書きします。" -#: ../../rst/playbook_guide/playbooks_variables.rst:509 +#: ../../rst/playbook_guide/playbooks_variables.rst:511 msgid "Using advanced variable syntax" msgstr "高度な変数構文の使用" -#: ../../rst/playbook_guide/playbooks_variables.rst:511 +#: ../../rst/playbook_guide/playbooks_variables.rst:513 msgid "For information about advanced YAML syntax used to declare variables and have more control over the data placed in YAML files used by Ansible, see :ref:`playbooks_advanced_syntax`." msgstr "変数を宣言するのに使用される高度な YAML 構文、および Ansible により使用される YAML ファイルにあるデータに対する制御の詳細は、「:ref:`playbooks_advanced_syntax`」を参照してください。" -#: ../../rst/playbook_guide/playbooks_variables.rst:520 +#: ../../rst/playbook_guide/playbooks_variables.rst:522 msgid "Jinja2 filters and their uses" msgstr "Jinja2 フィルターおよびその使用" -#: ../../rst/playbook_guide/playbooks_variables.rst:527 +#: ../../rst/playbook_guide/playbooks_variables.rst:529 msgid ":ref:`special_variables`" msgstr ":ref:`special_variables`" -#: ../../rst/playbook_guide/playbooks_variables.rst:528 +#: ../../rst/playbook_guide/playbooks_variables.rst:530 msgid "List of special variables" msgstr "特殊な変数のリスト" @@ -7718,7 +7730,7 @@ msgstr "``ansible_check_mode`` が ``--check`` で Ansible を実行する場合 #: ../../rst/playbook_guide/playbooks_vars_facts.rst:698 msgid "Ansible version" -msgstr "Ansible version" +msgstr "Ansible のバージョン" #: ../../rst/playbook_guide/playbooks_vars_facts.rst:702 msgid "To adapt playbook behavior to different versions of Ansible, you can use the variable ``ansible_version``, which has the following structure:" @@ -7732,4 +7744,7 @@ msgstr "Playbook での Vault の使用" msgid "The documentation regarding Ansible Vault has moved. The new location is here: :ref:`vault`. Please update any links you may have made directly to this page." msgstr "Ansible Vault に関するドキュメントが移動しました。新しい場所は「:ref:`vault`」です。このページに直接作成した可能性のあるリンクを更新してください。" +#~ msgid "If the option is a boolean value, you can use any of the boolean values recognized by Ansible: (such as true/false or yes/no). Choose the one that reads better in the context of the option." +#~ msgstr "オプションがブール値の場合は、Ansible が認識する任意のブール値 (true/false、yes/no など) を使用できます。オプションのコンテキストで読み取りが適切であればこれを選択します。" + diff --git a/docs/docsite/rst/locales/ja/LC_MESSAGES/plugins.po b/docs/docsite/rst/locales/ja/LC_MESSAGES/plugins.po index 05fee16c..0a618d11 100644 --- a/docs/docsite/rst/locales/ja/LC_MESSAGES/plugins.po +++ b/docs/docsite/rst/locales/ja/LC_MESSAGES/plugins.po @@ -7,17 +7,17 @@ msgid "" msgstr "" "Project-Id-Version: Ansible devel\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-10-05 09:34+0200\n" +"POT-Creation-Date: 2023-03-01 20:16+0100\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.8.1\n" +"Generated-By: Babel 2.9.0\n" #: ../../rst/plugins/action.rst:4 ../../rst/plugins/cache.rst:123 -#: ../../rst/plugins/callback.rst:81 +#: ../../rst/plugins/callback.rst:100 msgid "Action plugins" msgstr "action プラグイン" @@ -46,9 +46,9 @@ msgid "Action plugin are executed by default when an associated module is used; msgstr "action プラグインは、関連のモジュールを使用する場合にはデフォルトで実行するため、特に作業は必要ありません。" #: ../../rst/plugins/action.rst:29 ../../rst/plugins/cache.rst:115 -#: ../../rst/plugins/callback.rst:73 ../../rst/plugins/connection.rst:55 +#: ../../rst/plugins/callback.rst:92 ../../rst/plugins/connection.rst:55 #: ../../rst/plugins/filter.rst:43 ../../rst/plugins/inventory.rst:159 -#: ../../rst/plugins/lookup.rst:137 ../../rst/plugins/strategy.rst:55 +#: ../../rst/plugins/lookup.rst:147 ../../rst/plugins/strategy.rst:57 #: ../../rst/plugins/test.rst:78 ../../rst/plugins/vars.rst:53 msgid "Plugin list" msgstr "プラグイン一覧" @@ -61,21 +61,21 @@ msgstr "直接 action プラグインの一覧を表示することはできま msgid "Use ``ansible-doc -l`` to see the list of available modules. Use ``ansible-doc `` to see specific documentation and examples, this should note if the module has a corresponding action plugin." msgstr "``ansible-doc -l`` を使用して、利用可能なモジュールの一覧を表示します。特定のドキュメントおよび例を参照するには ``ansible-doc `` を使用してください。モジュールに対応の action プラグインがある場合には、この点に注意してください。" -#: ../../rst/plugins/action.rst:38 ../../rst/plugins/callback.rst:82 +#: ../../rst/plugins/action.rst:38 ../../rst/plugins/callback.rst:101 #: ../../rst/plugins/vars.rst:60 msgid ":ref:`cache_plugins`" msgstr ":ref:`cache_plugins`" #: ../../rst/plugins/action.rst:39 ../../rst/plugins/cache.rst:4 -#: ../../rst/plugins/callback.rst:83 ../../rst/plugins/vars.rst:61 +#: ../../rst/plugins/callback.rst:102 ../../rst/plugins/vars.rst:61 msgid "Cache plugins" msgstr "Cache プラグイン" #: ../../rst/plugins/action.rst:40 ../../rst/plugins/become.rst:56 #: ../../rst/plugins/cache.rst:124 ../../rst/plugins/connection.rst:65 #: ../../rst/plugins/filter.rst:54 ../../rst/plugins/inventory.rst:168 -#: ../../rst/plugins/lookup.rst:148 ../../rst/plugins/shell.rst:42 -#: ../../rst/plugins/strategy.rst:67 +#: ../../rst/plugins/lookup.rst:158 ../../rst/plugins/shell.rst:42 +#: ../../rst/plugins/strategy.rst:69 msgid ":ref:`callback_plugins`" msgstr ":ref:`callback_plugins`" @@ -83,64 +83,64 @@ msgstr ":ref:`callback_plugins`" #: ../../rst/plugins/cache.rst:125 ../../rst/plugins/callback.rst:4 #: ../../rst/plugins/connection.rst:66 ../../rst/plugins/filter.rst:55 #: ../../rst/plugins/inventory.rst:169 ../../rst/plugins/shell.rst:43 -#: ../../rst/plugins/strategy.rst:68 +#: ../../rst/plugins/strategy.rst:70 msgid "Callback plugins" msgstr "callback プラグイン" #: ../../rst/plugins/action.rst:42 ../../rst/plugins/cache.rst:126 -#: ../../rst/plugins/callback.rst:84 ../../rst/plugins/inventory.rst:170 +#: ../../rst/plugins/callback.rst:103 ../../rst/plugins/inventory.rst:170 #: ../../rst/plugins/terminal.rst:44 msgid ":ref:`connection_plugins`" msgstr ":ref:`connection_plugins`" #: ../../rst/plugins/action.rst:43 ../../rst/plugins/cache.rst:127 -#: ../../rst/plugins/callback.rst:85 ../../rst/plugins/connection.rst:4 +#: ../../rst/plugins/callback.rst:104 ../../rst/plugins/connection.rst:4 #: ../../rst/plugins/inventory.rst:171 ../../rst/plugins/terminal.rst:45 msgid "Connection plugins" msgstr "connection プラグイン" #: ../../rst/plugins/action.rst:44 ../../rst/plugins/become.rst:54 -#: ../../rst/plugins/cache.rst:128 ../../rst/plugins/callback.rst:86 -#: ../../rst/plugins/filter.rst:52 ../../rst/plugins/lookup.rst:146 -#: ../../rst/plugins/shell.rst:40 ../../rst/plugins/strategy.rst:65 +#: ../../rst/plugins/cache.rst:128 ../../rst/plugins/callback.rst:105 +#: ../../rst/plugins/filter.rst:52 ../../rst/plugins/lookup.rst:156 +#: ../../rst/plugins/shell.rst:40 ../../rst/plugins/strategy.rst:67 msgid ":ref:`inventory_plugins`" msgstr ":ref:`inventory_plugins`" #: ../../rst/plugins/action.rst:45 ../../rst/plugins/become.rst:55 -#: ../../rst/plugins/cache.rst:129 ../../rst/plugins/callback.rst:87 +#: ../../rst/plugins/cache.rst:129 ../../rst/plugins/callback.rst:106 #: ../../rst/plugins/filter.rst:53 ../../rst/plugins/inventory.rst:4 -#: ../../rst/plugins/shell.rst:41 ../../rst/plugins/strategy.rst:66 +#: ../../rst/plugins/shell.rst:41 ../../rst/plugins/strategy.rst:68 msgid "Inventory plugins" msgstr "inventory プラグイン" #: ../../rst/plugins/action.rst:46 ../../rst/plugins/cache.rst:130 -#: ../../rst/plugins/callback.rst:88 +#: ../../rst/plugins/callback.rst:107 msgid ":ref:`shell_plugins`" msgstr ":ref:`shell_plugins`" #: ../../rst/plugins/action.rst:47 ../../rst/plugins/cache.rst:131 -#: ../../rst/plugins/callback.rst:89 ../../rst/plugins/shell.rst:4 +#: ../../rst/plugins/callback.rst:108 ../../rst/plugins/shell.rst:4 msgid "Shell plugins" msgstr "shell プラグイン" #: ../../rst/plugins/action.rst:48 ../../rst/plugins/cache.rst:132 -#: ../../rst/plugins/callback.rst:90 +#: ../../rst/plugins/callback.rst:109 msgid ":ref:`strategy_plugins`" msgstr ":ref:`strategy_plugins`" #: ../../rst/plugins/action.rst:49 ../../rst/plugins/cache.rst:133 -#: ../../rst/plugins/callback.rst:91 ../../rst/plugins/strategy.rst:4 +#: ../../rst/plugins/callback.rst:110 ../../rst/plugins/strategy.rst:4 msgid "Strategy plugins" msgstr "strategy プラグイン" #: ../../rst/plugins/action.rst:50 ../../rst/plugins/cache.rst:134 -#: ../../rst/plugins/callback.rst:92 ../../rst/plugins/connection.rst:73 +#: ../../rst/plugins/callback.rst:111 ../../rst/plugins/connection.rst:73 #: ../../rst/plugins/inventory.rst:178 msgid ":ref:`vars_plugins`" msgstr ":ref:`vars_plugins`" #: ../../rst/plugins/action.rst:51 ../../rst/plugins/cache.rst:135 -#: ../../rst/plugins/callback.rst:93 ../../rst/plugins/connection.rst:74 +#: ../../rst/plugins/callback.rst:112 ../../rst/plugins/connection.rst:74 #: ../../rst/plugins/inventory.rst:179 ../../rst/plugins/vars.rst:4 msgid "Vars plugins" msgstr "vars プラグイン" @@ -149,43 +149,43 @@ msgstr "vars プラグイン" #: ../../rst/plugins/cliconf.rst:44 ../../rst/plugins/connection.rst:75 #: ../../rst/plugins/docs_fragment.rst:32 ../../rst/plugins/filter.rst:60 #: ../../rst/plugins/httpapi.rst:69 ../../rst/plugins/inventory.rst:180 -#: ../../rst/plugins/lookup.rst:154 ../../rst/plugins/module.rst:40 +#: ../../rst/plugins/lookup.rst:164 ../../rst/plugins/module.rst:40 #: ../../rst/plugins/module_util.rst:32 ../../rst/plugins/netconf.rst:44 #: ../../rst/plugins/plugins.rst:45 ../../rst/plugins/shell.rst:50 -#: ../../rst/plugins/strategy.rst:75 ../../rst/plugins/terminal.rst:46 +#: ../../rst/plugins/strategy.rst:77 ../../rst/plugins/terminal.rst:46 #: ../../rst/plugins/test.rst:98 ../../rst/plugins/vars.rst:64 msgid "`User Mailing List `_" msgstr "`User Mailing List `_" #: ../../rst/plugins/action.rst:53 ../../rst/plugins/become.rst:65 -#: ../../rst/plugins/cache.rst:137 ../../rst/plugins/callback.rst:95 +#: ../../rst/plugins/cache.rst:137 ../../rst/plugins/callback.rst:114 #: ../../rst/plugins/cliconf.rst:45 ../../rst/plugins/connection.rst:76 #: ../../rst/plugins/docs_fragment.rst:33 ../../rst/plugins/filter.rst:61 #: ../../rst/plugins/httpapi.rst:70 ../../rst/plugins/inventory.rst:181 -#: ../../rst/plugins/lookup.rst:155 ../../rst/plugins/module.rst:41 +#: ../../rst/plugins/lookup.rst:165 ../../rst/plugins/module.rst:41 #: ../../rst/plugins/module_util.rst:33 ../../rst/plugins/netconf.rst:45 #: ../../rst/plugins/plugins.rst:46 ../../rst/plugins/shell.rst:51 -#: ../../rst/plugins/strategy.rst:76 ../../rst/plugins/terminal.rst:47 +#: ../../rst/plugins/strategy.rst:78 ../../rst/plugins/terminal.rst:47 #: ../../rst/plugins/test.rst:99 ../../rst/plugins/vars.rst:65 msgid "Have a question? Stop by the google group!" msgstr "ご質問はございますか。Google Group をご覧ください。" #: ../../rst/plugins/action.rst:54 ../../rst/plugins/become.rst:66 -#: ../../rst/plugins/cache.rst:138 ../../rst/plugins/callback.rst:96 +#: ../../rst/plugins/cache.rst:138 ../../rst/plugins/callback.rst:115 #: ../../rst/plugins/connection.rst:77 ../../rst/plugins/docs_fragment.rst:34 #: ../../rst/plugins/filter.rst:62 ../../rst/plugins/inventory.rst:182 -#: ../../rst/plugins/lookup.rst:156 ../../rst/plugins/plugins.rst:47 -#: ../../rst/plugins/shell.rst:52 ../../rst/plugins/strategy.rst:77 +#: ../../rst/plugins/lookup.rst:166 ../../rst/plugins/plugins.rst:47 +#: ../../rst/plugins/shell.rst:52 ../../rst/plugins/strategy.rst:79 #: ../../rst/plugins/test.rst:100 ../../rst/plugins/vars.rst:66 msgid ":ref:`communication_irc`" msgstr ":ref:`communication_irc`" #: ../../rst/plugins/action.rst:55 ../../rst/plugins/become.rst:67 -#: ../../rst/plugins/cache.rst:139 ../../rst/plugins/callback.rst:97 +#: ../../rst/plugins/cache.rst:139 ../../rst/plugins/callback.rst:116 #: ../../rst/plugins/connection.rst:78 ../../rst/plugins/docs_fragment.rst:35 #: ../../rst/plugins/filter.rst:63 ../../rst/plugins/inventory.rst:183 -#: ../../rst/plugins/lookup.rst:157 ../../rst/plugins/plugins.rst:48 -#: ../../rst/plugins/shell.rst:53 ../../rst/plugins/strategy.rst:78 +#: ../../rst/plugins/lookup.rst:167 ../../rst/plugins/plugins.rst:48 +#: ../../rst/plugins/shell.rst:53 ../../rst/plugins/strategy.rst:80 #: ../../rst/plugins/test.rst:101 ../../rst/plugins/vars.rst:67 msgid "How to join Ansible chat channels" msgstr "Ansible チャットチャンネルへの参加方法" @@ -231,59 +231,59 @@ msgid "You can use ``ansible-doc -t become -l`` to see the list of available plu msgstr "``ansible-doc -t become -l`` を使用して、利用可能なプラグインの一覧を表示します。``ansible-doc -t become `` を使用して、特定のドキュメントと例を参照してください。" #: ../../rst/plugins/become.rst:52 ../../rst/plugins/filter.rst:50 -#: ../../rst/plugins/inventory.rst:166 ../../rst/plugins/lookup.rst:144 +#: ../../rst/plugins/inventory.rst:166 ../../rst/plugins/lookup.rst:154 #: ../../rst/plugins/module.rst:34 ../../rst/plugins/shell.rst:38 -#: ../../rst/plugins/strategy.rst:63 ../../rst/plugins/test.rst:86 +#: ../../rst/plugins/strategy.rst:65 ../../rst/plugins/test.rst:86 msgid ":ref:`about_playbooks`" msgstr ":ref:`about_playbooks`" #: ../../rst/plugins/become.rst:53 ../../rst/plugins/connection.rst:64 #: ../../rst/plugins/filter.rst:51 ../../rst/plugins/inventory.rst:167 -#: ../../rst/plugins/lookup.rst:145 ../../rst/plugins/module.rst:35 -#: ../../rst/plugins/shell.rst:39 ../../rst/plugins/strategy.rst:64 +#: ../../rst/plugins/lookup.rst:155 ../../rst/plugins/module.rst:35 +#: ../../rst/plugins/shell.rst:39 ../../rst/plugins/strategy.rst:66 #: ../../rst/plugins/test.rst:87 msgid "An introduction to playbooks" msgstr "Playbook の概要" #: ../../rst/plugins/become.rst:58 ../../rst/plugins/connection.rst:67 -#: ../../rst/plugins/inventory.rst:172 ../../rst/plugins/lookup.rst:150 -#: ../../rst/plugins/shell.rst:44 ../../rst/plugins/strategy.rst:69 +#: ../../rst/plugins/inventory.rst:172 ../../rst/plugins/lookup.rst:160 +#: ../../rst/plugins/shell.rst:44 ../../rst/plugins/strategy.rst:71 #: ../../rst/plugins/test.rst:92 msgid ":ref:`filter_plugins`" -msgstr ":ref:`vars_plugins`" +msgstr ":ref:`filter_plugins`" #: ../../rst/plugins/become.rst:59 ../../rst/plugins/connection.rst:68 #: ../../rst/plugins/filter.rst:4 ../../rst/plugins/inventory.rst:173 -#: ../../rst/plugins/shell.rst:45 ../../rst/plugins/strategy.rst:70 +#: ../../rst/plugins/shell.rst:45 ../../rst/plugins/strategy.rst:72 #: ../../rst/plugins/test.rst:93 msgid "Filter plugins" msgstr "filter プラグイン" #: ../../rst/plugins/become.rst:60 ../../rst/plugins/connection.rst:69 #: ../../rst/plugins/filter.rst:56 ../../rst/plugins/inventory.rst:174 -#: ../../rst/plugins/lookup.rst:152 ../../rst/plugins/shell.rst:46 -#: ../../rst/plugins/strategy.rst:71 +#: ../../rst/plugins/lookup.rst:162 ../../rst/plugins/shell.rst:46 +#: ../../rst/plugins/strategy.rst:73 msgid ":ref:`test_plugins`" -msgstr ":ref:`vars_plugins`" +msgstr ":ref:`test_plugins`" #: ../../rst/plugins/become.rst:61 ../../rst/plugins/connection.rst:70 #: ../../rst/plugins/filter.rst:57 ../../rst/plugins/inventory.rst:175 -#: ../../rst/plugins/shell.rst:47 ../../rst/plugins/strategy.rst:72 +#: ../../rst/plugins/shell.rst:47 ../../rst/plugins/strategy.rst:74 #: ../../rst/plugins/test.rst:4 msgid "Test plugins" msgstr "test プラグイン" #: ../../rst/plugins/become.rst:62 ../../rst/plugins/connection.rst:71 #: ../../rst/plugins/filter.rst:58 ../../rst/plugins/inventory.rst:176 -#: ../../rst/plugins/shell.rst:48 ../../rst/plugins/strategy.rst:73 +#: ../../rst/plugins/shell.rst:48 ../../rst/plugins/strategy.rst:75 #: ../../rst/plugins/test.rst:96 ../../rst/plugins/vars.rst:62 msgid ":ref:`lookup_plugins`" -msgstr ":ref:`shell_plugins`" +msgstr ":ref:`lookup_plugins`" #: ../../rst/plugins/become.rst:63 ../../rst/plugins/connection.rst:72 #: ../../rst/plugins/filter.rst:59 ../../rst/plugins/inventory.rst:177 #: ../../rst/plugins/lookup.rst:4 ../../rst/plugins/shell.rst:49 -#: ../../rst/plugins/strategy.rst:74 ../../rst/plugins/test.rst:97 +#: ../../rst/plugins/strategy.rst:76 ../../rst/plugins/test.rst:97 #: ../../rst/plugins/vars.rst:63 msgid "Lookup plugins" msgstr "lookup プラグイン" @@ -368,11 +368,11 @@ msgstr "cache プラグインは、有効になると自動的に使用されま msgid "You can use ``ansible-doc -t cache -l`` to see the list of available plugins. Use ``ansible-doc -t cache `` to see specific documentation and examples." msgstr "``ansible-doc -t cache -l`` を使用して、利用可能なプラグインの一覧を表示します。``ansible-doc -t cache `` を使用して、特定のドキュメントと例を参照してください。" -#: ../../rst/plugins/cache.rst:122 ../../rst/plugins/callback.rst:80 +#: ../../rst/plugins/cache.rst:122 ../../rst/plugins/callback.rst:99 msgid ":ref:`action_plugins`" msgstr ":ref:`action_plugins`" -#: ../../rst/plugins/cache.rst:136 ../../rst/plugins/callback.rst:94 +#: ../../rst/plugins/cache.rst:136 ../../rst/plugins/callback.rst:113 msgid "`User Mailing List `_" msgstr "`User Mailing List `_" @@ -413,8 +413,8 @@ msgid "Setting a callback plugin for ``ansible-playbook``" msgstr "``ansible-playbook`` の callback プラグインの設定" #: ../../rst/plugins/callback.rst:39 -msgid "You can only have one plugin be the main manager of your console output. If you want to replace the default, you should define CALLBACK_TYPE = stdout in the subclass and then configure the stdout plugin in :ref:`ansible.cfg `. For example:" -msgstr "コンソール出力のメインマネージャーは、1 つのプラグインのみにすることができます。デフォルトを置き換える場合は、サブクラスに CALLBACK_TYPE = stdout を定義して、:ref:`ansible.cfg ` に stdout プラグインを設定する必要があります。以下に例を示します。" +msgid "You can only have one plugin be the main manager of your console output. If you want to replace the default, you should define ``CALLBACK_TYPE = stdout`` in the subclass and then configure the stdout plugin in :ref:`ansible.cfg `. For example:" +msgstr "コンソール出力のメインマネージャーは、1 つのプラグインのみにすることができます。デフォルトを置き換える場合は、サブクラスに ``CALLBACK_TYPE = stdout`` を定義して、:ref:`ansible.cfg ` に stdout プラグインを設定する必要があります。以下に例を示します。" #: ../../rst/plugins/callback.rst:45 msgid "or for my custom callback:" @@ -436,7 +436,39 @@ msgstr ":ref:`ansible` アドホックコマンドは、特に stdout には別 msgid "You can also set this as an environment variable:" msgstr "これを環境変数として設定することもできます。" +#: ../../rst/plugins/callback.rst:73 +msgid "Types of callback plugins" +msgstr "callback プラグインのタイプ" + #: ../../rst/plugins/callback.rst:75 +msgid "There are three types of callback plugins:" +msgstr "callback プラグインには 3 種類あります。" + +#: ../../rst/plugins/callback.rst +msgid "stdout callback plugins" +msgstr "stdout callback プラグイン" + +#: ../../rst/plugins/callback.rst:79 +msgid "These plugins handle the main console output. Only one of these can be active." +msgstr "これらのプラグインは、メインコンソール出力を処理します。これらのうち、アクティブにできるのは 1 つだけです。" + +#: ../../rst/plugins/callback.rst +msgid "aggregate callback plugins" +msgstr "aggregate callback プラグイン" + +#: ../../rst/plugins/callback.rst:83 +msgid "Aggregate callbacks can add additional console output next to a stdout callback. This can be aggregate information at the end of a playbook run, additional per-task output, or anything else." +msgstr "aggregate callback は、stdout callback の隣に追加のコンソール出力を追加できます。これは、Playbook 実行の終了時の集計情報、追加のタスクごとの出力などの可能性があります。" + +#: ../../rst/plugins/callback.rst +msgid "notification callback plugins" +msgstr "notification callback プラグイン" + +#: ../../rst/plugins/callback.rst:87 +msgid "Notification callbacks inform other applications, services, or systems. This can be anything from logging to databases, informing on errors in Instant Messaging applications, or sending emails when a server is unreachable." +msgstr "notification callback は、他のアプリケーション、サービス、またはシステムに通知します。これには、データベースへのログ記録、インスタントメッセージングアプリケーションでのエラーの通知、サーバーに到達できない場合のメールの送信などがあります。" + +#: ../../rst/plugins/callback.rst:94 msgid "You can use ``ansible-doc -t callback -l`` to see the list of available plugins. Use ``ansible-doc -t callback `` to see specific documents and examples." msgstr "``ansible-doc -t callback -l`` を使用して、利用可能なプラグインの一覧を表示します。``ansible-doc -t callback `` を使用して、特定のドキュメントと例を参照してください。" @@ -835,70 +867,70 @@ msgid "You can use lookup plugins anywhere you can use templating in Ansible: in msgstr "lookup プラグインは、Ansible でテンプレートを使用できる場所で使用できます。これはプレイ、変数ファイル、または :ref:`template ` モジュールの Jinja2 テンプレートで使用できます。lookup プラグインの使用の詳細は、:ref:`playbooks_lookups` を参照してください。" #: ../../rst/plugins/lookup.rst:42 -msgid "Lookups are an integral part of loops. Wherever you see ``with_``, the part after the underscore is the name of a lookup. For this reason, lookups are expected to output lists; for example, ``with_items`` uses the :ref:`items ` lookup::" -msgstr "lookups はループには欠かせない要素です。``with_`` と表示される場合は、アンダースコアの後の部分がルックアップの名前になります。このような理由から、ほとんどのルックアップはリストを出力することが想定されます。たとえば、``with_items`` は :ref:`items ` lookup を使用します::" +msgid "Lookups are an integral part of loops. Wherever you see ``with_``, the part after the underscore is the name of a lookup. For this reason, lookups are expected to output lists; for example, ``with_items`` uses the :ref:`items ` lookup:" +msgstr "lookup はループには欠かせない要素です。``with_`` と表示される場合は、アンダースコアの後の部分が lookup の名前になります。このような理由から、lookup はリストを出力することが想定されます。たとえば、``with_items`` は :ref:`items ` lookup を使用します。" -#: ../../rst/plugins/lookup.rst:49 -msgid "You can combine lookups with :ref:`filters `, :ref:`tests ` and even each other to do some complex data generation and manipulation. For example::" +#: ../../rst/plugins/lookup.rst:51 +msgid "You can combine lookups with :ref:`filters `, :ref:`tests ` and even each other to do some complex data generation and manipulation. For example:" msgstr "lookup と :ref:`filters `、:ref:`tests `、またはそれぞれを組み合わせて複雑なデータ生成やデータ操作が可能です。以下に例を示します。" -#: ../../rst/plugins/lookup.rst:61 +#: ../../rst/plugins/lookup.rst:65 msgid "You can control how errors behave in all lookup plugins by setting ``errors`` to ``ignore``, ``warn``, or ``strict``. The default setting is ``strict``, which causes the task to fail if the lookup returns an error. For example:" msgstr "``errors`` を ``ignore``、``warn``、または ``strict`` に設定して、すべての lookup プラグインでエラーの動作を制御できます。デフォルト設定は ``strict`` で、lookup がエラーを返すとタスクは失敗します。以下に例を示します。" -#: ../../rst/plugins/lookup.rst:63 -msgid "To ignore lookup errors::" -msgstr "ルックアップエラーを無視するには、以下を行います。" +#: ../../rst/plugins/lookup.rst:67 +msgid "To ignore lookup errors:" +msgstr "lookup エラーを無視するには、以下を行います。" -#: ../../rst/plugins/lookup.rst:77 -msgid "To get a warning instead of a failure::" +#: ../../rst/plugins/lookup.rst:83 +msgid "To get a warning instead of a failure:" msgstr "失敗させるのではなく警告を出すには、以下を使用します。" -#: ../../rst/plugins/lookup.rst:93 -msgid "To get a fatal error (the default)::" +#: ../../rst/plugins/lookup.rst:101 +msgid "To get a fatal error (the default):" msgstr "致命的なエラーを取得する (デフォルト) には、以下を行います::" -#: ../../rst/plugins/lookup.rst:108 +#: ../../rst/plugins/lookup.rst:118 msgid "Forcing lookups to return lists: ``query`` and ``wantlist=True``" msgstr "ルックアップが強制的にリストを返すようにする: ``query`` および ``wantlist=True``" -#: ../../rst/plugins/lookup.rst:112 +#: ../../rst/plugins/lookup.rst:122 msgid "In Ansible 2.5, a new Jinja2 function called ``query`` was added for invoking lookup plugins. The difference between ``lookup`` and ``query`` is largely that ``query`` will always return a list. The default behavior of ``lookup`` is to return a string of comma separated values. ``lookup`` can be explicitly configured to return a list using ``wantlist=True``." msgstr "Ansible 2.5 では、lookup プラグインを呼び出すために ``query`` と呼ばれる新しい Jinja2 関数が追加されました。``lookup`` と ``query`` の相違点は、``query`` が常にリストを返すことです。``lookup`` のデフォルト動作は、コンマ区切りの値の文字列を返すことです。``lookup`` は、``wantlist=True`` を使用してリストを返すように明示的に設定できます。" -#: ../../rst/plugins/lookup.rst:115 +#: ../../rst/plugins/lookup.rst:125 msgid "This feature provides an easier and more consistent interface for interacting with the new ``loop`` keyword, while maintaining backwards compatibility with other uses of ``lookup``." msgstr "この機能により、新しい ``loop`` キーワードを操作するための、より簡単で一貫性のあるインターフェースが提供され、同時に ``lookup`` の他の使い方との後方互換性も維持されます。" -#: ../../rst/plugins/lookup.rst:117 +#: ../../rst/plugins/lookup.rst:127 msgid "The following examples are equivalent:" msgstr "以下の例はどちらも同等の操作ができます。" -#: ../../rst/plugins/lookup.rst:125 +#: ../../rst/plugins/lookup.rst:135 msgid "As demonstrated above, the behavior of ``wantlist=True`` is implicit when using ``query``." msgstr "上記の例のように、``query`` を使用する場合、``wantlist=True`` の動作は暗黙的になります。" -#: ../../rst/plugins/lookup.rst:127 +#: ../../rst/plugins/lookup.rst:137 msgid "Additionally, ``q`` was introduced as a shortform of ``query``:" msgstr "また、``query`` の短縮形となる ``q`` が導入されました。" -#: ../../rst/plugins/lookup.rst:139 +#: ../../rst/plugins/lookup.rst:149 msgid "You can use ``ansible-doc -t lookup -l`` to see the list of available plugins. Use ``ansible-doc -t lookup `` to see specific documents and examples." msgstr "``ansible-doc -t lookup -l`` を使用して、利用可能なプラグインの一覧を表示します。``ansible-doc -t lookup `` を使用して、特定のドキュメントと例を参照してください。" -#: ../../rst/plugins/lookup.rst:147 +#: ../../rst/plugins/lookup.rst:157 msgid "Ansible inventory plugins" msgstr "Ansible inventory プラグインの使用" -#: ../../rst/plugins/lookup.rst:149 +#: ../../rst/plugins/lookup.rst:159 msgid "Ansible callback plugins" msgstr "Ansible callback プラグイン" -#: ../../rst/plugins/lookup.rst:151 +#: ../../rst/plugins/lookup.rst:161 msgid "Jinja2 filter plugins" msgstr "Jinja2 filter プラグイン" -#: ../../rst/plugins/lookup.rst:153 +#: ../../rst/plugins/lookup.rst:163 msgid "Jinja2 test plugins" msgstr "Jinja2 test プラグイン" @@ -1099,10 +1131,10 @@ msgid "or in the `ansible.cfg` file:" msgstr "または `ansible.cfg` ファイルで、以下を行います。" #: ../../rst/plugins/strategy.rst:38 -msgid "You can also specify the strategy plugin in the play via the :ref:`strategy keyword ` in a play::" -msgstr "プレイの :ref:`strategy キーワード ` を使用して、プレイの strategy プラグインを指定できます。" +msgid "You can also specify the strategy plugin in the play via the :ref:`strategy keyword ` in a play:" +msgstr "プレイの :ref:`strategy keyword ` を使用して、プレイの strategy プラグインを指定することもできます。" -#: ../../rst/plugins/strategy.rst:57 +#: ../../rst/plugins/strategy.rst:59 msgid "You can use ``ansible-doc -t strategy -l`` to see the list of available plugins. Use ``ansible-doc -t strategy `` to see plugin-specific specific documentation and examples." msgstr "``ansible-doc -t strategy -l`` を使用して、利用可能なプラグインの一覧を表示します。``ansible-doc -t strategy `` を使用して、プラグイン固有のドキュメントと例を参照してください。" @@ -1128,7 +1160,7 @@ msgstr "``terminal_plugins`` ディレクトリーにカスタムのプラグイ #: ../../rst/plugins/terminal.rst:24 msgid "Using terminal plugins" -msgstr "terminal プラグイン" +msgstr "terminal プラグインの使用" #: ../../rst/plugins/terminal.rst:26 msgid "Ansible determines which terminal plugin to use automatically from the ``ansible_network_os`` variable. There should be no reason to override this functionality." diff --git a/docs/docsite/rst/locales/ja/LC_MESSAGES/porting_guides.po b/docs/docsite/rst/locales/ja/LC_MESSAGES/porting_guides.po index 2209651a..9d16f26e 100644 --- a/docs/docsite/rst/locales/ja/LC_MESSAGES/porting_guides.po +++ b/docs/docsite/rst/locales/ja/LC_MESSAGES/porting_guides.po @@ -7,14 +7,14 @@ msgid "" msgstr "" "Project-Id-Version: Ansible devel\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-10-05 09:34+0200\n" +"POT-Creation-Date: 2023-03-01 20:16+0100\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.8.1\n" +"Generated-By: Babel 2.9.0\n" #: ../../rst/porting_guides/core_porting_guides.rst:5 msgid "Ansible Core Porting Guides" @@ -53,7 +53,7 @@ msgstr "本ガイドは、このバージョンの Ansible で動作するよう #: ../../rst/porting_guides/porting_guide_2.0.rst:13 msgid "We suggest you read this page along with `Ansible Changelog for 2.0 `_ to understand what updates you may need to make." -msgstr "必要な更新について理解するには、このページと併せて「`Ansible Changelog for 2.0 `_」を参照してください。" +msgstr "必要な更新について理解するには、このページと併せて「`Ansible Changelog for 2.0 `_」を参照することをお勧めします。" #: ../../rst/porting_guides/porting_guide_2.0.rst:15 #: ../../rst/porting_guides/porting_guide_2.3.rst:15 @@ -67,7 +67,7 @@ msgstr "必要な更新について理解するには、このページと併せ #: ../../rst/porting_guides/porting_guide_core_2.13.rst:14 #: ../../rst/porting_guides/porting_guide_core_2.14.rst:14 msgid "This document is part of a collection on porting. The complete list of porting guides can be found at :ref:`porting guides `." -msgstr "このドキュメントは、移植に関する内容の一部です。移植の完全なリストは「:ref:`移植ガイド `」にあります。" +msgstr "このドキュメントは、移植に関する内容の一部です。移植ガイドの完全なリストは :ref:`porting guides ` を参照してください。" #: ../../rst/porting_guides/porting_guide_2.0.rst:17 #: ../../rst/porting_guides/porting_guide_2.3.rst:17 @@ -106,67 +106,84 @@ msgstr "Playbook" msgid "This section discusses any changes you may need to make to your playbooks." msgstr "本セクションでは、Playbook に加える必要のある変更を説明します。" -#: ../../rst/porting_guides/porting_guide_2.0.rst:36 +#: ../../rst/porting_guides/porting_guide_2.0.rst:24 +msgid "Syntax in 1.9.x" +msgstr "1.9.x の構文" + +#: ../../rst/porting_guides/porting_guide_2.0.rst:32 +#: ../../rst/porting_guides/porting_guide_2.0.rst:75 +msgid "Syntax in 2.0.x" +msgstr "2.0.x の構文" + +#: ../../rst/porting_guides/porting_guide_2.0.rst:40 +msgid "Output:" +msgstr "出力:" + +#: ../../rst/porting_guides/porting_guide_2.0.rst:46 msgid "To make an escaped string that will work on all versions you have two options::" msgstr "すべてのバージョンで機能するエスケープされた文字列を作成するには、2 つのオプションがあります。" -#: ../../rst/porting_guides/porting_guide_2.0.rst:40 +#: ../../rst/porting_guides/porting_guide_2.0.rst:50 msgid "uses key=value escaping which has not changed. The other option is to check for the ansible version::" msgstr "key=value エスケープを使用しますが、これは、変更されていません。もう 1 つの方法は、ansible のバージョンを確認することです。" -#: ../../rst/porting_guides/porting_guide_2.0.rst:44 -msgid "trailing newline When a string with a trailing newline was specified in the playbook via yaml dict format, the trailing newline was stripped. When specified in key=value format, the trailing newlines were kept. In v2, both methods of specifying the string will keep the trailing newlines. If you relied on the trailing newline being stripped, you can change your playbook using the following as an example::" +#: ../../rst/porting_guides/porting_guide_2.0.rst:54 +msgid "trailing newline When a string with a trailing newline was specified in the playbook through yaml dict format, the trailing newline was stripped. When specified in key=value format, the trailing newlines were kept. In v2, both methods of specifying the string will keep the trailing newlines. If you relied on the trailing newline being stripped, you can change your playbook using the following as an example::" msgstr "末尾に改行: 末尾に改行がある文字列が yaml dict 形式で Playbook に指定されている場合、末尾の改行は削除されます。key=value 形式で指定すると、末尾に改行が保持されます。v2 では、この文字列を指定するメソッドはともに改行を保持します。末尾の改行が自動的に削除されるのに依存していた場合は、以下のように Playbook を変更できます。" -#: ../../rst/porting_guides/porting_guide_2.0.rst:71 +#: ../../rst/porting_guides/porting_guide_2.0.rst:88 +msgid "Output" +msgstr "出力" + +#: ../../rst/porting_guides/porting_guide_2.0.rst:94 msgid "Behavior of templating DOS-type text files changes with Ansible v2." msgstr "DOS タイプのテキストファイルをテンプレート化する動作は Ansible v2 で変わります。" -#: ../../rst/porting_guides/porting_guide_2.0.rst:73 +#: ../../rst/porting_guides/porting_guide_2.0.rst:96 msgid "A bug in Ansible v1 causes DOS-type text files (using a carriage return and newline) to be templated to Unix-type text files (using only a newline). In Ansible v2 this long-standing bug was finally fixed and DOS-type text files are preserved correctly. This may be confusing when you expect your playbook to not show any differences when migrating to Ansible v2, while in fact you will see every DOS-type file being completely replaced (with what appears to be the exact same content)." msgstr "Ansible v1 のバグにより、DOS タイプのテキストファイル (キャリッジリターンと改行を使用) が、Unix タイプのテキストファイル (改行のみを使用) にテンプレート化していました。Ansible v2 では、この長年のバグがようやく修正され、DOS 形式のテキストファイルが正しく保存されるようになりました。これは、Ansible v2 への移行時に Playbook に変更がないことを期待している場合には混乱するかもしれませんが、実際には、すべての DOS 型ファイルが完全に置き換えられています (ただし、完全に同一の内容であるように表示される場合があります)。" -#: ../../rst/porting_guides/porting_guide_2.0.rst:75 -msgid "When specifying complex args as a variable, the variable must use the full jinja2 variable syntax (```{{var_name}}```) - bare variable names there are no longer accepted. In fact, even specifying args with variables has been deprecated, and will not be allowed in future versions::" -msgstr "複雑な引数を変数として指定する場合、変数は完全な jinja2 変数構文 (```{{var_name}}```) を使用する必要があります。ベア変数名は使用できなくなりました。実際、変数で引数を指定することが非推奨となっており、将来のバージョンでは使用できなくなります。" +#: ../../rst/porting_guides/porting_guide_2.0.rst:98 +msgid "When specifying complex args as a variable, the variable must use the full jinja2 variable syntax (```{{var_name}}```) - bare variable names there are no longer accepted. In fact, even specifying args with variables has been deprecated, and will not be allowed in future versions:" +msgstr "複雑な引数を変数として指定する場合、変数は完全な jinja2 変数構文 (```{{var_name}}```) を使用する必要があります。ベア変数名は使用できなくなりました。実際、変数で引数を指定することも非推奨となり、将来のバージョンでは使用できなくなります。" -#: ../../rst/porting_guides/porting_guide_2.0.rst:93 +#: ../../rst/porting_guides/porting_guide_2.0.rst:118 msgid "porting task includes" msgstr "移植タスクに含まれるもの" -#: ../../rst/porting_guides/porting_guide_2.0.rst:94 +#: ../../rst/porting_guides/porting_guide_2.0.rst:119 msgid "More dynamic. Corner-case formats that were not supposed to work now do not, as expected." msgstr "より動的に。動作すると想定していなかったコーナーケース (めったに発生しない厄介なケース) の形式が、期待通りに動作しなくなります。" -#: ../../rst/porting_guides/porting_guide_2.0.rst:95 -msgid "variables defined in the yaml dict format https://github.com/ansible/ansible/issues/13324" -msgstr "yaml の dict 形式で定義される変数 (https://github.com/ansible/ansible/issues/13324)" +#: ../../rst/porting_guides/porting_guide_2.0.rst:120 +msgid "variables defined in the yaml dict format see `issue 13324 `_" +msgstr "yaml の dict 形式で定義される変数は、`issue 13324 `_ を参照してください" -#: ../../rst/porting_guides/porting_guide_2.0.rst:96 +#: ../../rst/porting_guides/porting_guide_2.0.rst:121 msgid "templating (variables in playbooks and template lookups) has improved with regard to keeping the original instead of turning everything into a string. If you need the old behavior, quote the value to pass it around as a string." msgstr "テンプレート化 (Playbook およびテンプレート検索の変数) は、すべてを文字列にするのではなく、オリジナルを維持するという点で改善されました。以前の動作が必要な場合は、値を引用符で囲み、文字列として渡してください。" -#: ../../rst/porting_guides/porting_guide_2.0.rst:98 +#: ../../rst/porting_guides/porting_guide_2.0.rst:123 msgid "Empty variables and variables set to null in yaml are no longer converted to empty strings. They will retain the value of `None`. You can override the `null_representation` setting to an empty string in your config file by setting the :envvar:`ANSIBLE_NULL_REPRESENTATION` environment variable." msgstr "空の変数と、yaml で null に設定された変数は、空の文字列に変換されなくなり、`None` の値を維持します。環境変数 :envvar:`ANSIBLE_NULL_REPRESENTATION` を設定することで、設定ファイルで `null_representation` が空文字列に設定されるのを上書きすることができます。" -#: ../../rst/porting_guides/porting_guide_2.0.rst:100 +#: ../../rst/porting_guides/porting_guide_2.0.rst:125 msgid "Extras callbacks must be enabled in ansible.cfg. Copying is no longer necessary but you must enable them in ansible.cfg." msgstr "ansible.cfg で追加のコールバックを有効にする必要があります。コピーは不要になりますが、ansible.cfg で有効にする必要があります。" -#: ../../rst/porting_guides/porting_guide_2.0.rst:101 +#: ../../rst/porting_guides/porting_guide_2.0.rst:126 msgid "dnf module has been rewritten. Some minor changes in behavior may be observed." msgstr "dnf モジュールが書き直されました。いくつかの細かい動作の変更があります。" -#: ../../rst/porting_guides/porting_guide_2.0.rst:102 +#: ../../rst/porting_guides/porting_guide_2.0.rst:127 msgid "win_updates has been rewritten and works as expected now." msgstr "win_updates は書き直され、期待通りに動作するようになりました。" -#: ../../rst/porting_guides/porting_guide_2.0.rst:103 +#: ../../rst/porting_guides/porting_guide_2.0.rst:128 msgid "from 2.0.1 onwards, the implicit setup task from gather_facts now correctly inherits everything from play, but this might cause issues for those setting `environment` at the play level and depending on `ansible_env` existing. Previously this was ignored but now might issue an 'Undefined' error." msgstr "2.0.1 以降、gather_facts の暗黙的な設定タスクは、プレイからすべて正しく継承されるようになりましたが、これにより、プレイレベルで `environment` を設定し、`ansible_env` の存在に依存している場合に問題が発生する可能性がありましたが、以前はこの問題は無視されていました。これからは「Undefined」エラーが発生する可能性があります。" -#: ../../rst/porting_guides/porting_guide_2.0.rst:107 +#: ../../rst/porting_guides/porting_guide_2.0.rst:132 #: ../../rst/porting_guides/porting_guide_2.10.rst:51 #: ../../rst/porting_guides/porting_guide_2.4.rst:52 #: ../../rst/porting_guides/porting_guide_2.5.rst:101 @@ -186,228 +203,232 @@ msgstr "2.0.1 以降、gather_facts の暗黙的な設定タスクは、プレ msgid "Deprecated" msgstr "非推奨" -#: ../../rst/porting_guides/porting_guide_2.0.rst:109 +#: ../../rst/porting_guides/porting_guide_2.0.rst:134 msgid "While all items listed here will show a deprecation warning message, they still work as they did in 1.9.x. Please note that they will be removed in 2.2 (Ansible always waits two major releases to remove a deprecated feature)." msgstr "ここに掲載されているすべての項目には、非推奨の警告メッセージが表示されますが、1.9.x での動作と同じ動作になります。ただし、2.2 で削除されることに注意してください (Ansible は常に 2 つのメジャーリリースを待ってから非推奨の機能を削除します)。" -#: ../../rst/porting_guides/porting_guide_2.0.rst:111 +#: ../../rst/porting_guides/porting_guide_2.0.rst:136 msgid "Bare variables in ``with_`` loops should instead use the ``\"{{ var }}\"`` syntax, which helps eliminate ambiguity." msgstr "``with_`` ループ内のベア変数は、代わりに ``\"{{ var }}\"`` 構文を使用する必要があります。これにより、曖昧さがなくなります。" -#: ../../rst/porting_guides/porting_guide_2.0.rst:112 +#: ../../rst/porting_guides/porting_guide_2.0.rst:137 msgid "The ansible-galaxy text format requirements file. Users should use the YAML format for requirements instead." msgstr "ansible-galaxy テキスト形式の要件ファイル。ユーザーは、代わりに要件に YAML 形式を使用する必要があります。" -#: ../../rst/porting_guides/porting_guide_2.0.rst:113 +#: ../../rst/porting_guides/porting_guide_2.0.rst:138 msgid "Undefined variables within a ``with_`` loop's list currently do not interrupt the loop, but they do issue a warning; in the future, they will issue an error." msgstr "``with_`` ループのリストに含まれる未定義の変数は、現在のところループを中断することはありませんが、警告を出力します。今後はエラーを出力します。" -#: ../../rst/porting_guides/porting_guide_2.0.rst:114 -msgid "Using dictionary variables to set all task parameters is unsafe and will be removed in a future version. For example::" -msgstr "ディクショナリー変数を使用してすべてのタスクパラメーターを設定することは安全ではないため、将来のバージョンでは削除される予定です。以下に例を示します。" +#: ../../rst/porting_guides/porting_guide_2.0.rst:139 +msgid "Using dictionary variables to set all task parameters is unsafe and will be removed in a future version. Example of a deprecated variant:" +msgstr "ディクショナリー変数を使用してすべてのタスクパラメーターを設定することは安全ではないため、将来のバージョンで削除される予定です。以下は、非推奨のバリアントの例になります。" -#: ../../rst/porting_guides/porting_guide_2.0.rst:131 +#: ../../rst/porting_guides/porting_guide_2.0.rst:153 +msgid "Example of a recommended variant:" +msgstr "推奨されるバリアントの例は以下のとおりです。" + +#: ../../rst/porting_guides/porting_guide_2.0.rst:166 msgid "Host patterns should use a comma (,) or colon (:) instead of a semicolon (;) to separate hosts/groups in the pattern." msgstr "ホストパターンで、パターン内のホスト/グループを分離する場合は、セミコロン (;) の代わりにコンマ (,) またはコロン (:) を使用する必要があります。" -#: ../../rst/porting_guides/porting_guide_2.0.rst:132 +#: ../../rst/porting_guides/porting_guide_2.0.rst:167 msgid "Ranges specified in host patterns should use the [x:y] syntax, instead of [x-y]." msgstr "ホストパターンで指定した範囲は、[x-y] 構文ではなく [x:y] 構文を使用する必要があります。" -#: ../../rst/porting_guides/porting_guide_2.0.rst:133 +#: ../../rst/porting_guides/porting_guide_2.0.rst:168 msgid "Playbooks using privilege escalation should always use \"become*\" options rather than the old su*/sudo* options." msgstr "権限昇格を使用した Playbook は、古い su*/sudo* オプションではなく「become*」オプションを常に使用する必要があります。" -#: ../../rst/porting_guides/porting_guide_2.0.rst:134 +#: ../../rst/porting_guides/porting_guide_2.0.rst:169 msgid "The \"short form\" for vars_prompt is no longer supported. For example::" msgstr "vars_prompt の「短縮形」はサポートされなくなりました。以下に例を示します。" -#: ../../rst/porting_guides/porting_guide_2.0.rst:140 +#: ../../rst/porting_guides/porting_guide_2.0.rst:175 msgid "Specifying variables at the top level of a task include statement is no longer supported. For example::" msgstr "タスクのinclude 文の最上位で変数を指定することはサポートされなくなりました。たとえば次のようになります。" -#: ../../rst/porting_guides/porting_guide_2.0.rst:145 +#: ../../rst/porting_guides/porting_guide_2.0.rst:180 msgid "Should now be::" msgstr "以下のようになるはずです。" -#: ../../rst/porting_guides/porting_guide_2.0.rst:151 +#: ../../rst/porting_guides/porting_guide_2.0.rst:186 msgid "Setting any_errors_fatal on a task is no longer supported. This should be set at the play level only." msgstr "タスクで any_errors_fatal の設定がサポートされなくなりました。これはプレイレベルでのみ設定する必要があります。" -#: ../../rst/porting_guides/porting_guide_2.0.rst:152 -msgid "Bare variables in the `environment` dictionary (for plays/tasks/etc.) are no longer supported. Variables specified there should use the full variable syntax: '{{foo}}'." +#: ../../rst/porting_guides/porting_guide_2.0.rst:187 +msgid "Bare variables in the `environment` dictionary (for plays/tasks/and so on) are no longer supported. Variables specified there should use the full variable syntax: '{{foo}}'." msgstr "`environment` ディクショナリー (プレイ、タスクなど) のベアメタル変数がサポートされなくなりました。指定される変数は、完全な変数構文 (「{{foo}}」) を使用する必要があります。" -#: ../../rst/porting_guides/porting_guide_2.0.rst:153 +#: ../../rst/porting_guides/porting_guide_2.0.rst:188 msgid "Tags (or any directive) should no longer be specified with other parameters in a task include. Instead, they should be specified as an option on the task. For example::" msgstr "タグ (または他のディレクティブ) は、タスクのインクルードの中で他のパラメーターと一緒に指定しないでください。代わりに、タスクのオプションとして指定する必要があります。以下に例を示します。" -#: ../../rst/porting_guides/porting_guide_2.0.rst:158 +#: ../../rst/porting_guides/porting_guide_2.0.rst:193 msgid "Should be::" msgstr "以下のようになるはずです。" -#: ../../rst/porting_guides/porting_guide_2.0.rst:163 +#: ../../rst/porting_guides/porting_guide_2.0.rst:198 msgid "The first_available_file option on tasks has been deprecated. Users should use the with_first_found option or lookup ('first_found', …) plugin." msgstr "タスクの first_available_file オプションが非推奨になりました。ユーザーは、with_first_found オプションまたは lookup ('first_found', …) プラグインを使用する必要があります。" -#: ../../rst/porting_guides/porting_guide_2.0.rst:167 +#: ../../rst/porting_guides/porting_guide_2.0.rst:202 #: ../../rst/porting_guides/porting_guide_2.3.rst:100 #: ../../rst/porting_guides/porting_guide_2.4.rst:72 msgid "Other caveats" msgstr "その他の注意事項" -#: ../../rst/porting_guides/porting_guide_2.0.rst:169 +#: ../../rst/porting_guides/porting_guide_2.0.rst:204 msgid "Here are some corner cases encountered when updating. These are mostly caused by the more stringent parser validation and the capture of errors that were previously ignored." msgstr "ここでは、更新時に遭遇するいくつかのコーナーケース (めったに発生しない厄介なケース) を紹介します。これらは主に、パーサーの検証がより厳しくなったことと、以前は無視されていたエラーが捕捉されたことが原因です。" -#: ../../rst/porting_guides/porting_guide_2.0.rst:171 +#: ../../rst/porting_guides/porting_guide_2.0.rst:206 msgid "Bad variable composition::" msgstr "誤った変数の構成:" -#: ../../rst/porting_guides/porting_guide_2.0.rst:175 +#: ../../rst/porting_guides/porting_guide_2.0.rst:210 msgid "This worked 'by accident' as the errors were retemplated and ended up resolving the variable, it was never intended as valid syntax and now properly returns an error, use the following instead.::" msgstr "これは、エラーが再テンプレート化され、変数を解決することになったため、「偶然」機能しましたが、有効な構文として意図されたものではありませんでしたが、現在は適切にエラーを返しています。代わりに以下を使用します。" -#: ../../rst/porting_guides/porting_guide_2.0.rst:179 +#: ../../rst/porting_guides/porting_guide_2.0.rst:214 msgid "Misspelled directives::" msgstr "スペルが間違っているディレクティブ:" -#: ../../rst/porting_guides/porting_guide_2.0.rst:184 +#: ../../rst/porting_guides/porting_guide_2.0.rst:219 msgid "The task always ran without using privilege escalation (for that you need `become`) but was also silently ignored so the play 'ran' even though it should not, now this is a parsing error." msgstr "タスクは常に、権限エスカレーションを使用せずに (`become` が必要なため) 実行されますが、通知なく無視されるために、プレイが実行させるべきでないにも関わらず「実行」されていましたが、これは解析エラーとなるようになりました。" -#: ../../rst/porting_guides/porting_guide_2.0.rst:187 +#: ../../rst/porting_guides/porting_guide_2.0.rst:222 msgid "Duplicate directives::" msgstr "重複ディレクティブ:" -#: ../../rst/porting_guides/porting_guide_2.0.rst:193 +#: ../../rst/porting_guides/porting_guide_2.0.rst:228 msgid "The first `when` was ignored and only the 2nd one was used as the play ran w/o warning it was ignoring one of the directives, now this produces a parsing error." msgstr "最初の `when` は無視され、2 つ目のものだけが使用されました。プレーは警告なしに実行され、ディレクティブの 1 つを無視していましたが、解析エラーが生成されるようになりました。" -#: ../../rst/porting_guides/porting_guide_2.0.rst:195 +#: ../../rst/porting_guides/porting_guide_2.0.rst:230 msgid "Conflating variables and directives::" msgstr "変数およびディレクティブの制限::" -#: ../../rst/porting_guides/porting_guide_2.0.rst:202 +#: ../../rst/porting_guides/porting_guide_2.0.rst:237 msgid "The `port` variable is reserved as a play/task directive for overriding the connection port, in previous versions this got conflated with a variable named `port` and was usable later in the play, this created issues if a host tried to reconnect or was using a non caching connection. Now it will be correctly identified as a directive and the `port` variable will appear as undefined, this now forces the use of non conflicting names and removes ambiguity when adding settings and variables to a role invocation." msgstr "`port` 変数は、接続ポートを上書きするための play/task ディレクティブとして予約されています。以前のバージョンでは、`port` という名前の変数と融合し、後でプレイで使用できますが、そのホストが再接続をしようとしたり、非キャッシュ接続を使用していた場合にこの問題が発生します。今回のリリースより、ディレクティブとして正しく識別され、`port` 変数は未定義として表示されます。これにより、競合する名前を使用しないようにし、ロールの呼び出しに設定および変数を追加する際に曖昧さがなくなりました。" -#: ../../rst/porting_guides/porting_guide_2.0.rst:206 +#: ../../rst/porting_guides/porting_guide_2.0.rst:241 msgid "Bare operations on `with_`::" msgstr "`with_` でのベア操作:" -#: ../../rst/porting_guides/porting_guide_2.0.rst:210 +#: ../../rst/porting_guides/porting_guide_2.0.rst:245 msgid "An issue with the 'bare variable' features, which was supposed only template a single variable without the need of braces ({{ )}}, would in some versions of Ansible template full expressions. Now you need to use proper templating and braces for all expressions everywhere except conditionals (`when`)::" msgstr "「ベア変数」関数の問題は、中括弧 ({{ )}} を必要としない単一の変数のみをテンプレート化することになっていましたが、Ansible の一部のバージョンでは完全な式をテンプレート化していました。現在では、条件式 (`when`) を除くすべての場所のすべての式に対して、適切なテンプレート化と中括弧を使用する必要があります。" -#: ../../rst/porting_guides/porting_guide_2.0.rst:215 +#: ../../rst/porting_guides/porting_guide_2.0.rst:250 msgid "The bare feature itself is deprecated as an undefined variable is indistinguishable from a string which makes it difficult to display a proper error." msgstr "未定義の変数は文字列と区別がつかず、適切なエラーを表示することが難しいため、ベア関数自体が非推奨となっています。" -#: ../../rst/porting_guides/porting_guide_2.0.rst:218 +#: ../../rst/porting_guides/porting_guide_2.0.rst:253 msgid "Porting plugins" msgstr "Porting プラグイン" -#: ../../rst/porting_guides/porting_guide_2.0.rst:220 +#: ../../rst/porting_guides/porting_guide_2.0.rst:255 msgid "In ansible-1.9.x, you would generally copy an existing plugin to create a new one. Simply implementing the methods and attributes that the caller of the plugin expected made it a plugin of that type. In ansible-2.0, most plugins are implemented by subclassing a base class for each plugin type. This way the custom plugin does not need to contain methods which are not customized." msgstr "ansible-1.9.xでは、通常、既存のプラグインをコピーして新しいプラグインを作成します。プラグインの呼び出し元が期待するメソッドおよび属性を実装するだけで、そのタイプのプラグインになりました。ansible-2.0では、ほとんどのプラグインが、各プラグインタイプのベースクラスをサブクラス化することで実装されています。こうすることで、カスタムプラグインはカスタマイズされていないメソッドを含む必要がなくなります。" -#: ../../rst/porting_guides/porting_guide_2.0.rst:224 -#: ../../rst/porting_guides/porting_guide_2.0.rst:305 +#: ../../rst/porting_guides/porting_guide_2.0.rst:259 +#: ../../rst/porting_guides/porting_guide_2.0.rst:340 msgid "Lookup plugins" msgstr "lookup プラグイン" -#: ../../rst/porting_guides/porting_guide_2.0.rst:226 +#: ../../rst/porting_guides/porting_guide_2.0.rst:261 msgid "lookup plugins ; import version" msgstr "lookup プラグイン; バージョンのインポート" -#: ../../rst/porting_guides/porting_guide_2.0.rst:230 -#: ../../rst/porting_guides/porting_guide_2.0.rst:277 -#: ../../rst/porting_guides/porting_guide_2.0.rst:373 -#: ../../rst/porting_guides/porting_guide_2.0.rst:388 +#: ../../rst/porting_guides/porting_guide_2.0.rst:265 +#: ../../rst/porting_guides/porting_guide_2.0.rst:312 +#: ../../rst/porting_guides/porting_guide_2.0.rst:408 +#: ../../rst/porting_guides/porting_guide_2.0.rst:423 msgid "Connection plugins" msgstr "connection プラグイン" -#: ../../rst/porting_guides/porting_guide_2.0.rst:232 -#: ../../rst/porting_guides/porting_guide_2.0.rst:279 -#: ../../rst/porting_guides/porting_guide_2.0.rst:375 -#: ../../rst/porting_guides/porting_guide_2.0.rst:390 +#: ../../rst/porting_guides/porting_guide_2.0.rst:267 +#: ../../rst/porting_guides/porting_guide_2.0.rst:314 +#: ../../rst/porting_guides/porting_guide_2.0.rst:410 +#: ../../rst/porting_guides/porting_guide_2.0.rst:425 msgid "connection plugins" msgstr "conneciton プラグイン" -#: ../../rst/porting_guides/porting_guide_2.0.rst:235 -#: ../../rst/porting_guides/porting_guide_2.0.rst:378 +#: ../../rst/porting_guides/porting_guide_2.0.rst:270 +#: ../../rst/porting_guides/porting_guide_2.0.rst:413 msgid "Action plugins" msgstr "action プラグイン" -#: ../../rst/porting_guides/porting_guide_2.0.rst:238 -#: ../../rst/porting_guides/porting_guide_2.0.rst:380 +#: ../../rst/porting_guides/porting_guide_2.0.rst:273 +#: ../../rst/porting_guides/porting_guide_2.0.rst:415 msgid "action plugins" msgstr "action プラグイン" -#: ../../rst/porting_guides/porting_guide_2.0.rst:241 -#: ../../rst/porting_guides/porting_guide_2.0.rst:383 +#: ../../rst/porting_guides/porting_guide_2.0.rst:276 +#: ../../rst/porting_guides/porting_guide_2.0.rst:418 #: ../../rst/porting_guides/porting_guide_2.4.rst:132 msgid "Callback plugins" msgstr "callback プラグイン" -#: ../../rst/porting_guides/porting_guide_2.0.rst:243 +#: ../../rst/porting_guides/porting_guide_2.0.rst:278 msgid "Although Ansible 2.0 provides a new callback API the old one continues to work for most callback plugins. However, if your callback plugin makes use of :attr:`self.playbook`, :attr:`self.play`, or :attr:`self.task` then you will have to store the values for these yourself as ansible no longer automatically populates the callback with them. Here's a short snippet that shows you how:" msgstr "Ansible 2.0 では新しいコールバック API が提供されていますが、ほとんどのコールバックプラグインでは古い API も引き続き使用できます。ただし、コールバックプラグインが :attr:`self.playbook`、:attr:`self.play`、または :attr:`self.task` を使用している場合は、ansible がコールバックに自動的に値を入力しなくなったため、これらの値を自分で保存する必要があります。ここでは、その方法を示す短いスニペットをご紹介します。" -#: ../../rst/porting_guides/porting_guide_2.0.rst:283 +#: ../../rst/porting_guides/porting_guide_2.0.rst:318 msgid "Hybrid plugins" msgstr "ハイブリッドプラグイン" -#: ../../rst/porting_guides/porting_guide_2.0.rst:285 +#: ../../rst/porting_guides/porting_guide_2.0.rst:320 msgid "In specific cases you may want a plugin that supports both ansible-1.9.x *and* ansible-2.0. Much like porting plugins from v1 to v2, you need to understand how plugins work in each version and support both requirements." msgstr "特定のケースでは、ansible-1.9.x *および* ansible-2.0 の両方をサポートするプラグインが必要になる場合があります。v1 から v2 へのプラグインの移植と同様に、各バージョンでプラグインがどのように機能し、両方の要件をサポートするかを理解する必要があります。" -#: ../../rst/porting_guides/porting_guide_2.0.rst:287 +#: ../../rst/porting_guides/porting_guide_2.0.rst:322 msgid "Since the ansible-2.0 plugin system is more advanced, it is easier to adapt your plugin to provide similar pieces (subclasses, methods) for ansible-1.9.x as ansible-2.0 expects. This way your code will look a lot cleaner." msgstr "ansible-2.0 プラグインシステムはより高度なため、ansible-2.0 が想定するとおりに、ansible-1.9.x の同様の部分 (サブクラス、メソッド) を提供するためにプラグインを調整することがより容易になります。" -#: ../../rst/porting_guides/porting_guide_2.0.rst:289 +#: ../../rst/porting_guides/porting_guide_2.0.rst:324 msgid "You may find the following tips useful:" msgstr "以下のヒントを参考にしてみてください。" -#: ../../rst/porting_guides/porting_guide_2.0.rst:291 +#: ../../rst/porting_guides/porting_guide_2.0.rst:326 msgid "Check whether the ansible-2.0 class(es) are available and if they are missing (ansible-1.9.x) mimic them with the needed methods (for example, ``__init__``)" msgstr "ansible-2.0 のクラスが利用可能かどうかを確認し、クラスが不足している場合 (ansible-1.9.x) は、必要なメソッド (``__init__`` など) でそれらを模倣します。" -#: ../../rst/porting_guides/porting_guide_2.0.rst:293 +#: ../../rst/porting_guides/porting_guide_2.0.rst:328 msgid "When ansible-2.0 python modules are imported, and they fail (ansible-1.9.x), catch the ``ImportError`` exception and perform the equivalent imports for ansible-1.9.x. With possible translations (for example, importing specific methods)." msgstr "ansible-2.0 python モジュールをインポートして失敗すると (ansible-1.9.x)、``ImportError`` 例外を捕捉して、ansible-1.9.x の同等のインポートを実行します。翻訳 (たとえば、特定のメソッドをインポートすること) が行われることもあります。" -#: ../../rst/porting_guides/porting_guide_2.0.rst:295 +#: ../../rst/porting_guides/porting_guide_2.0.rst:330 msgid "Use the existence of these methods as a qualifier to what version of Ansible you are running. So rather than using version checks, you can do capability checks instead. (See examples below)" msgstr "これらのメソッドの存在を、実行中の Ansible バージョンへの修飾子として使用します。そのため、バージョンチェックを使用するのではなく、代わりに機能チェックを行うことができます (以下の例を参照)。" -#: ../../rst/porting_guides/porting_guide_2.0.rst:297 +#: ../../rst/porting_guides/porting_guide_2.0.rst:332 msgid "Document for each if-then-else case for which specific version each block is needed. This will help others to understand how they have to adapt their plugins, but it will also help you to remove the older ansible-1.9.x support when it is deprecated." msgstr "各ブロックがどのバージョンで必要とされているか、if-then-else のケースごとに文書化します。これは、他の人が自分のプラグインをどのように適応させなければならないかを理解するのに役立つだけでなく、以前の ansible-1.9.x のサポートが非推奨になったときに削除するのに役立ちます。" -#: ../../rst/porting_guides/porting_guide_2.0.rst:299 +#: ../../rst/porting_guides/porting_guide_2.0.rst:334 msgid "When doing plugin development, it is very useful to have the ``warning()`` method during development, but it is also important to emit warnings for deadends (cases that you expect should never be triggered) or corner cases (for example, cases where you expect misconfigurations)." msgstr "プラグインの開発を行う場合は、開発中に ``warning()`` メソッドがあると非常に便利ですが、デッドエンド (絶対に発生してはいけないと予想されるケース)やコーナーケース (めったに発生しない厄介なケース、たとえば設定が間違っている可能性があるケース) に対して警告を発することも重要です。" -#: ../../rst/porting_guides/porting_guide_2.0.rst:301 +#: ../../rst/porting_guides/porting_guide_2.0.rst:336 msgid "It helps to look at other plugins in ansible-1.9.x and ansible-2.0 to understand how the API works and what modules, classes and methods are available." msgstr "API がどのように機能するか、どのようなモジュール、クラス、メソッドが利用できるかを理解するには、ansible-1.9.x や ansible-2.0 の他のプラグインを確認するのが有効です。" -#: ../../rst/porting_guides/porting_guide_2.0.rst:307 +#: ../../rst/porting_guides/porting_guide_2.0.rst:342 msgid "As a simple example we are going to make a hybrid ``fileglob`` lookup plugin." msgstr "簡単な例として、ハイブリッドの ``fileglob`` lookup プラグインを作成します。" -#: ../../rst/porting_guides/porting_guide_2.0.rst:368 +#: ../../rst/porting_guides/porting_guide_2.0.rst:403 msgid "In the above example we did not use the ``warning()`` method as we had no direct use for it in the final version. However we left this code in so people can use this part during development/porting/use." msgstr "上記の例では、最終バージョンで直接使用することがなかったため、``warning()`` メソッドを使用していません。しかし、開発、移植、および使用の際にこの部分を利用できるように、このコードを残しました。" -#: ../../rst/porting_guides/porting_guide_2.0.rst:385 +#: ../../rst/porting_guides/porting_guide_2.0.rst:420 msgid "callback plugins" msgstr "callback プラグイン" -#: ../../rst/porting_guides/porting_guide_2.0.rst:394 +#: ../../rst/porting_guides/porting_guide_2.0.rst:429 #: ../../rst/porting_guides/porting_guide_2.10.rst:97 #: ../../rst/porting_guides/porting_guide_2.3.rst:160 #: ../../rst/porting_guides/porting_guide_2.5.rst:281 @@ -427,7 +448,7 @@ msgstr "callback プラグイン" msgid "Porting custom scripts" msgstr "カスタムスクリプトの移植" -#: ../../rst/porting_guides/porting_guide_2.0.rst:396 +#: ../../rst/porting_guides/porting_guide_2.0.rst:431 msgid "Custom scripts that used the ``ansible.runner.Runner`` API in 1.x have to be ported in 2.x. Please refer to: :ref:`developing_api`" msgstr "1.x で ``ansible.runner.Runner`` API を使用したカスタムスクリプトは、2.x に移植する必要があります。「:ref:`developing_api`」を参照してください。" @@ -445,7 +466,7 @@ msgstr "このセクションでは、Ansible 2.9 から Ansible 2.10 におけ #: ../../rst/porting_guides/porting_guide_2.10.rst:18 msgid "We suggest you read this page along with the `Ansible Changelog for 2.10 `_ to understand what updates you may need to make." -msgstr "必要な更新について理解するには、このページと併せて「`Ansible 2.10 のチェンジログ `_」を参照してください。" +msgstr "必要な更新について理解するには、このページと併せて「`Ansible 2.10 のチェンジログ `_」を参照することをお勧めします。" #: ../../rst/porting_guides/porting_guide_2.10.rst:20 msgid "Since 2.10, Ansible consists of two parts:" @@ -491,8 +512,8 @@ msgstr "コマンドライン" #: ../../rst/porting_guides/porting_guide_2.10.rst:45 #: ../../rst/porting_guides/porting_guide_base_2.10.rst:38 -msgid "The ``ansible-galaxy login`` command has been removed, as the underlying API it used for GitHub auth is being shut down. Publishing roles or collections to Galaxy via ``ansible-galaxy`` now requires that a Galaxy API token be passed to the CLI via a token file (default location ``~/.ansible/galaxy_token``) or (insecurely) via the ``--token`` argument to ``ansible-galaxy``." -msgstr "GitHub 認証に使用される基礎となる API がシャットダウンされるため、``ansible-galaxy login`` コマンドが削除されました。``ansible-galaxy`` 経由で Galaxy にロールまたはコレクションを公開する場合は、Galaxy API トークンをトークンファイル (デフォルトの場所 ``~/.ansible/galaxy_token``) または ``--token`` 引数から ``ansible-galaxy`` に (セキュリティーを確保せずにセキュアに) 渡すことが必要になりました。" +msgid "The ``ansible-galaxy login`` command has been removed, as the underlying API it used for GitHub auth is being shut down. Publishing roles or collections to Galaxy through ``ansible-galaxy`` now requires that a Galaxy API token be passed to the CLI through a token file (default location ``~/.ansible/galaxy_token``) or (insecurely) through the ``--token`` argument to ``ansible-galaxy``." +msgstr "GitHub 認証に使用される基礎となる API がシャットダウンされたため、``ansible-galaxy login`` コマンドが削除されました。``ansible-galaxy`` 経由で Galaxy にロールまたはコレクションを公開する場合は、Galaxy API トークンをトークンファイル (デフォルトの場所 ``~/.ansible/galaxy_token``) または ``--token`` 引数から ``ansible-galaxy`` に (セキュリティーを確保せずにセキュアに) 渡すことが必要になりました。" #: ../../rst/porting_guides/porting_guide_2.10.rst:53 #: ../../rst/porting_guides/porting_guide_base_2.10.rst:46 @@ -603,7 +624,7 @@ msgstr "大文字小文字を区別してプラグイン名の検索" #: ../../rst/porting_guides/porting_guide_2.10.rst:83 #: ../../rst/porting_guides/porting_guide_base_2.10.rst:76 -msgid "Prior to Ansible ``2.10`` lookup plugin names passed in as an argument to the ``lookup()`` function were treated as case-insensitive as opposed to lookups invoked via ``with_``. ``2.10`` brings consistency to ``lookup()`` and ``with_`` to be both case-sensitive." +msgid "Prior to Ansible ``2.10`` lookup plugin names passed in as an argument to the ``lookup()`` function were treated as case-insensitive as opposed to lookups invoked through ``with_``. ``2.10`` brings consistency to ``lookup()`` and ``with_`` to be both case-sensitive." msgstr "Ansible ``2.10`` の lookup プラグイン名が ``lookup()`` 関数に引数として渡される前に、``with_`` を介して呼び出されるルックアップとは異なり、大文字と小文字を区別しないものとして処理されます。``2.10`` では、``lookup()`` と ``with_`` の両方で大文字小文字を区別するように整合性が取られています。" #: ../../rst/porting_guides/porting_guide_2.10.rst:86 @@ -685,7 +706,7 @@ msgstr "モジュールを呼び出すアクションプラグインは、可能 #: ../../rst/porting_guides/porting_guide_core_2.14.rst:85 #: ../../rst/porting_guides/porting_guide_core_2.14.rst:91 msgid "No notable changes" -msgstr "主な変更はありません。" +msgstr "主な変更はありません" #: ../../rst/porting_guides/porting_guide_2.10.rst:102 msgid "Porting Guide for v2.10.7" @@ -704,8 +725,10 @@ msgstr "v2.10.7 の移植ガイド" #: ../../rst/porting_guides/porting_guide_5.rst:169 #: ../../rst/porting_guides/porting_guide_5.rst:460 #: ../../rst/porting_guides/porting_guide_6.rst:80 -#: ../../rst/porting_guides/porting_guide_6.rst:295 -#: ../../rst/porting_guides/porting_guide_7.rst:128 +#: ../../rst/porting_guides/porting_guide_6.rst:171 +#: ../../rst/porting_guides/porting_guide_6.rst:431 +#: ../../rst/porting_guides/porting_guide_7.rst:121 +#: ../../rst/porting_guides/porting_guide_7.rst:304 #: ../../rst/porting_guides/porting_guide_core_2.11.rst:39 #: ../../rst/porting_guides/porting_guide_core_2.13.rst:78 msgid "Breaking Changes" @@ -739,14 +762,25 @@ msgstr "互換性を失わせる変更点" #: ../../rst/porting_guides/porting_guide_5.rst:706 #: ../../rst/porting_guides/porting_guide_5.rst:850 #: ../../rst/porting_guides/porting_guide_5.rst:969 -#: ../../rst/porting_guides/porting_guide_6.rst:115 -#: ../../rst/porting_guides/porting_guide_6.rst:239 -#: ../../rst/porting_guides/porting_guide_6.rst:268 -#: ../../rst/porting_guides/porting_guide_6.rst:382 -#: ../../rst/porting_guides/porting_guide_6.rst:554 -#: ../../rst/porting_guides/porting_guide_6.rst:666 -#: ../../rst/porting_guides/porting_guide_6.rst:795 -#: ../../rst/porting_guides/porting_guide_7.rst:503 +#: ../../rst/porting_guides/porting_guide_6.rst:150 +#: ../../rst/porting_guides/porting_guide_6.rst:174 +#: ../../rst/porting_guides/porting_guide_6.rst:182 +#: ../../rst/porting_guides/porting_guide_6.rst:203 +#: ../../rst/porting_guides/porting_guide_6.rst:234 +#: ../../rst/porting_guides/porting_guide_6.rst:251 +#: ../../rst/porting_guides/porting_guide_6.rst:375 +#: ../../rst/porting_guides/porting_guide_6.rst:404 +#: ../../rst/porting_guides/porting_guide_6.rst:518 +#: ../../rst/porting_guides/porting_guide_6.rst:690 +#: ../../rst/porting_guides/porting_guide_6.rst:802 +#: ../../rst/porting_guides/porting_guide_6.rst:931 +#: ../../rst/porting_guides/porting_guide_7.rst:124 +#: ../../rst/porting_guides/porting_guide_7.rst:176 +#: ../../rst/porting_guides/porting_guide_7.rst:261 +#: ../../rst/porting_guides/porting_guide_7.rst:434 +#: ../../rst/porting_guides/porting_guide_7.rst:606 +#: ../../rst/porting_guides/porting_guide_7.rst:870 +#: ../../rst/porting_guides/porting_guide_7.rst:1034 msgid "community.general" msgstr "community.general" @@ -785,11 +819,16 @@ msgstr "utm_proxy_auth_profile - ``frontend_cookie_secret`` の戻り値に、 #: ../../rst/porting_guides/porting_guide_5.rst:372 #: ../../rst/porting_guides/porting_guide_5.rst:421 #: ../../rst/porting_guides/porting_guide_5.rst:594 -#: ../../rst/porting_guides/porting_guide_6.rst:123 -#: ../../rst/porting_guides/porting_guide_6.rst:159 -#: ../../rst/porting_guides/porting_guide_6.rst:199 -#: ../../rst/porting_guides/porting_guide_6.rst:430 -#: ../../rst/porting_guides/porting_guide_7.rst:195 +#: ../../rst/porting_guides/porting_guide_6.rst:115 +#: ../../rst/porting_guides/porting_guide_6.rst:179 +#: ../../rst/porting_guides/porting_guide_6.rst:218 +#: ../../rst/porting_guides/porting_guide_6.rst:259 +#: ../../rst/porting_guides/porting_guide_6.rst:295 +#: ../../rst/porting_guides/porting_guide_6.rst:335 +#: ../../rst/porting_guides/porting_guide_6.rst:566 +#: ../../rst/porting_guides/porting_guide_7.rst:129 +#: ../../rst/porting_guides/porting_guide_7.rst:232 +#: ../../rst/porting_guides/porting_guide_7.rst:470 msgid "Major Changes" msgstr "主な変更点" @@ -803,7 +842,7 @@ msgstr "community.okd コレクションのバージョンを 1.0.0 に制限し #: ../../rst/porting_guides/porting_guide_3.rst:415 #: ../../rst/porting_guides/porting_guide_4.rst:287 #: ../../rst/porting_guides/porting_guide_5.rst:795 -#: ../../rst/porting_guides/porting_guide_6.rst:626 +#: ../../rst/porting_guides/porting_guide_6.rst:762 msgid "ovirt.ovirt" msgstr "ovirt.ovirt" @@ -870,12 +909,17 @@ msgstr "0.6.0 以降の pysnow で新しい API の使用" #: ../../rst/porting_guides/porting_guide_5.rst:348 #: ../../rst/porting_guides/porting_guide_5.rst:389 #: ../../rst/porting_guides/porting_guide_5.rst:872 -#: ../../rst/porting_guides/porting_guide_6.rst:112 -#: ../../rst/porting_guides/porting_guide_6.rst:137 -#: ../../rst/porting_guides/porting_guide_6.rst:167 -#: ../../rst/porting_guides/porting_guide_6.rst:214 -#: ../../rst/porting_guides/porting_guide_6.rst:753 -#: ../../rst/porting_guides/porting_guide_7.rst:429 +#: ../../rst/porting_guides/porting_guide_6.rst:147 +#: ../../rst/porting_guides/porting_guide_6.rst:193 +#: ../../rst/porting_guides/porting_guide_6.rst:227 +#: ../../rst/porting_guides/porting_guide_6.rst:248 +#: ../../rst/porting_guides/porting_guide_6.rst:273 +#: ../../rst/porting_guides/porting_guide_6.rst:303 +#: ../../rst/porting_guides/porting_guide_6.rst:350 +#: ../../rst/porting_guides/porting_guide_6.rst:889 +#: ../../rst/porting_guides/porting_guide_7.rst:151 +#: ../../rst/porting_guides/porting_guide_7.rst:258 +#: ../../rst/porting_guides/porting_guide_7.rst:935 msgid "Deprecated Features" msgstr "非推奨の機能" @@ -890,8 +934,10 @@ msgstr "非推奨の機能" #: ../../rst/porting_guides/porting_guide_4.rst:844 #: ../../rst/porting_guides/porting_guide_5.rst:392 #: ../../rst/porting_guides/porting_guide_5.rst:920 -#: ../../rst/porting_guides/porting_guide_6.rst:540 -#: ../../rst/porting_guides/porting_guide_6.rst:777 +#: ../../rst/porting_guides/porting_guide_6.rst:676 +#: ../../rst/porting_guides/porting_guide_6.rst:913 +#: ../../rst/porting_guides/porting_guide_7.rst:573 +#: ../../rst/porting_guides/porting_guide_7.rst:750 msgid "cisco.nxos" msgstr "cisco.nxos" @@ -911,9 +957,11 @@ msgstr "`nxos_bgp` モジュールおよび `nxos_bgp_neighbor` モジュール #: ../../rst/porting_guides/porting_guide_4.rst:887 #: ../../rst/porting_guides/porting_guide_5.rst:726 #: ../../rst/porting_guides/porting_guide_5.rst:1001 -#: ../../rst/porting_guides/porting_guide_6.rst:407 -#: ../../rst/porting_guides/porting_guide_6.rst:578 -#: ../../rst/porting_guides/porting_guide_6.rst:711 +#: ../../rst/porting_guides/porting_guide_6.rst:543 +#: ../../rst/porting_guides/porting_guide_6.rst:714 +#: ../../rst/porting_guides/porting_guide_6.rst:847 +#: ../../rst/porting_guides/porting_guide_7.rst:446 +#: ../../rst/porting_guides/porting_guide_7.rst:900 msgid "community.vmware" msgstr "community.vmware" @@ -948,9 +996,11 @@ msgstr "ansible-base を使用して ``community.general`` を手動でインス #: ../../rst/porting_guides/porting_guide_3.rst:629 #: ../../rst/porting_guides/porting_guide_4.rst:807 #: ../../rst/porting_guides/porting_guide_5.rst:200 -#: ../../rst/porting_guides/porting_guide_6.rst:564 -#: ../../rst/porting_guides/porting_guide_6.rst:695 -#: ../../rst/porting_guides/porting_guide_6.rst:816 +#: ../../rst/porting_guides/porting_guide_6.rst:700 +#: ../../rst/porting_guides/porting_guide_6.rst:831 +#: ../../rst/porting_guides/porting_guide_6.rst:952 +#: ../../rst/porting_guides/porting_guide_7.rst:617 +#: ../../rst/porting_guides/porting_guide_7.rst:884 msgid "community.network" msgstr "community.network" @@ -991,7 +1041,7 @@ msgstr "ansible-base を使用して ``community.network`` を手動でインス #: ../../rst/porting_guides/porting_guide_4.rst:813 #: ../../rst/porting_guides/porting_guide_4.rst:892 #: ../../rst/porting_guides/porting_guide_5.rst:303 -#: ../../rst/porting_guides/porting_guide_6.rst:596 +#: ../../rst/porting_guides/porting_guide_6.rst:732 msgid "f5networks.f5_modules" msgstr "f5networks.f5_modules" @@ -1022,10 +1072,12 @@ msgstr "v2.10.5 の移植ガイド" #: ../../rst/porting_guides/porting_guide_5.rst:556 #: ../../rst/porting_guides/porting_guide_5.rst:866 #: ../../rst/porting_guides/porting_guide_5.rst:989 -#: ../../rst/porting_guides/porting_guide_6.rst:170 -#: ../../rst/porting_guides/porting_guide_6.rst:687 -#: ../../rst/porting_guides/porting_guide_6.rst:808 -#: ../../rst/porting_guides/porting_guide_7.rst:509 +#: ../../rst/porting_guides/porting_guide_6.rst:306 +#: ../../rst/porting_guides/porting_guide_6.rst:823 +#: ../../rst/porting_guides/porting_guide_6.rst:944 +#: ../../rst/porting_guides/porting_guide_7.rst:209 +#: ../../rst/porting_guides/porting_guide_7.rst:440 +#: ../../rst/porting_guides/porting_guide_7.rst:1051 msgid "community.hashi_vault" msgstr "community.hashi_vault" @@ -1105,8 +1157,8 @@ msgstr "nb_lookup - ID を渡すことができ、``.filter`` の代わりに `` #: ../../rst/porting_guides/porting_guide_2.10.rst:235 #: ../../rst/porting_guides/porting_guide_3.rst:412 -msgid "nb_lookup - Allow ``api_endpoint`` and ``token`` to be found via env. (#391)" -msgstr "nb_lookup - ``api_endpoint`` および ``token`` を env 経由で検索することを許可します。(#391)" +msgid "nb_lookup - Allow ``api_endpoint`` and ``token`` to be found through env. (#391)" +msgstr "nb_lookup - env.から``api_endpoint`` と``token`` を検索できるようにしました (#391)。" #: ../../rst/porting_guides/porting_guide_2.10.rst:241 #: ../../rst/porting_guides/porting_guide_2.10.rst:892 @@ -1117,13 +1169,13 @@ msgstr "nb_lookup - ``api_endpoint`` および ``token`` を env 経由で検索 #: ../../rst/porting_guides/porting_guide_5.rst:498 #: ../../rst/porting_guides/porting_guide_5.rst:681 #: ../../rst/porting_guides/porting_guide_5.rst:926 -#: ../../rst/porting_guides/porting_guide_6.rst:222 -#: ../../rst/porting_guides/porting_guide_6.rst:337 -#: ../../rst/porting_guides/porting_guide_6.rst:548 -#: ../../rst/porting_guides/porting_guide_7.rst:163 -#: ../../rst/porting_guides/porting_guide_7.rst:223 -#: ../../rst/porting_guides/porting_guide_7.rst:327 -#: ../../rst/porting_guides/porting_guide_7.rst:473 +#: ../../rst/porting_guides/porting_guide_6.rst:358 +#: ../../rst/porting_guides/porting_guide_6.rst:473 +#: ../../rst/porting_guides/porting_guide_6.rst:684 +#: ../../rst/porting_guides/porting_guide_7.rst:357 +#: ../../rst/porting_guides/porting_guide_7.rst:579 +#: ../../rst/porting_guides/porting_guide_7.rst:768 +#: ../../rst/porting_guides/porting_guide_7.rst:1002 msgid "community.aws" msgstr "community.aws" @@ -1145,12 +1197,12 @@ msgstr "ec2_vpc_igw_info - 2022-06-22 以降、``convert_tags`` パラメータ #: ../../rst/porting_guides/porting_guide_5.rst:544 #: ../../rst/porting_guides/porting_guide_5.rst:842 #: ../../rst/porting_guides/porting_guide_5.rst:962 -#: ../../rst/porting_guides/porting_guide_6.rst:233 -#: ../../rst/porting_guides/porting_guide_6.rst:787 -#: ../../rst/porting_guides/porting_guide_7.rst:176 -#: ../../rst/porting_guides/porting_guide_7.rst:228 -#: ../../rst/porting_guides/porting_guide_7.rst:417 -#: ../../rst/porting_guides/porting_guide_7.rst:497 +#: ../../rst/porting_guides/porting_guide_6.rst:369 +#: ../../rst/porting_guides/porting_guide_6.rst:923 +#: ../../rst/porting_guides/porting_guide_7.rst:423 +#: ../../rst/porting_guides/porting_guide_7.rst:584 +#: ../../rst/porting_guides/porting_guide_7.rst:858 +#: ../../rst/porting_guides/porting_guide_7.rst:1026 msgid "community.docker" msgstr "community.docker" @@ -1311,8 +1363,8 @@ msgstr "openshift_auth - 新しいモジュール (community.kubernetes の k8s_ #: ../../rst/porting_guides/porting_guide_4.rst:703 #: ../../rst/porting_guides/porting_guide_5.rst:381 #: ../../rst/porting_guides/porting_guide_5.rst:800 -#: ../../rst/porting_guides/porting_guide_6.rst:651 -#: ../../rst/porting_guides/porting_guide_7.rst:295 +#: ../../rst/porting_guides/porting_guide_6.rst:787 +#: ../../rst/porting_guides/porting_guide_7.rst:686 msgid "Removed Features" msgstr "削除された機能" @@ -1465,8 +1517,6 @@ msgid "Ansible-base" msgstr "Ansible-base" #: ../../rst/porting_guides/porting_guide_2.10.rst:381 -#: ../../rst/porting_guides/porting_guide_3.rst:210 -#: ../../rst/porting_guides/porting_guide_4.rst:550 msgid "ansible-galaxy login command has been removed (see https://github.com/ansible/ansible/issues/71560)" msgstr "ansible-galaxy login コマンドが削除されました (https://github.com/ansible/ansible/issues/71560 を参照))。" @@ -1585,10 +1635,14 @@ msgstr "v2.10.0 の移植ガイド" #: ../../rst/porting_guides/porting_guide_5.rst:320 #: ../../rst/porting_guides/porting_guide_5.rst:359 #: ../../rst/porting_guides/porting_guide_5.rst:439 -#: ../../rst/porting_guides/porting_guide_6.rst:151 -#: ../../rst/porting_guides/porting_guide_6.rst:183 -#: ../../rst/porting_guides/porting_guide_6.rst:255 -#: ../../rst/porting_guides/porting_guide_7.rst:107 +#: ../../rst/porting_guides/porting_guide_6.rst:106 +#: ../../rst/porting_guides/porting_guide_6.rst:163 +#: ../../rst/porting_guides/porting_guide_6.rst:287 +#: ../../rst/porting_guides/porting_guide_6.rst:319 +#: ../../rst/porting_guides/porting_guide_6.rst:391 +#: ../../rst/porting_guides/porting_guide_7.rst:105 +#: ../../rst/porting_guides/porting_guide_7.rst:223 +#: ../../rst/porting_guides/porting_guide_7.rst:278 msgid "Known Issues" msgstr "既知の問題" @@ -1676,13 +1730,13 @@ msgstr "purestorage.flashblade.purefb_fs - 非推奨の ``nfs`` オプション #: ../../rst/porting_guides/porting_guide_5.rst:481 #: ../../rst/porting_guides/porting_guide_5.rst:618 #: ../../rst/porting_guides/porting_guide_5.rst:883 -#: ../../rst/porting_guides/porting_guide_6.rst:305 #: ../../rst/porting_guides/porting_guide_6.rst:441 -#: ../../rst/porting_guides/porting_guide_6.rst:765 -#: ../../rst/porting_guides/porting_guide_7.rst:142 -#: ../../rst/porting_guides/porting_guide_7.rst:207 -#: ../../rst/porting_guides/porting_guide_7.rst:317 -#: ../../rst/porting_guides/porting_guide_7.rst:446 +#: ../../rst/porting_guides/porting_guide_6.rst:577 +#: ../../rst/porting_guides/porting_guide_6.rst:901 +#: ../../rst/porting_guides/porting_guide_7.rst:321 +#: ../../rst/porting_guides/porting_guide_7.rst:482 +#: ../../rst/porting_guides/porting_guide_7.rst:708 +#: ../../rst/porting_guides/porting_guide_7.rst:956 msgid "amazon.aws" msgstr "amazon.aws" @@ -1698,6 +1752,7 @@ msgstr "aws_s3 - バージョンアップされたバケットが空でなくて #: ../../rst/porting_guides/porting_guide_4.rst:481 #: ../../rst/porting_guides/porting_guide_5.rst:810 #: ../../rst/porting_guides/porting_guide_5.rst:895 +#: ../../rst/porting_guides/porting_guide_7.rst:141 msgid "ansible.windows" msgstr "ansible.windows" @@ -1744,7 +1799,10 @@ msgstr "win_user - 大文字と小文字を区別するために ``fullname`` #: ../../rst/porting_guides/porting_guide_2.10.rst:495 #: ../../rst/porting_guides/porting_guide_2.10.rst:642 #: ../../rst/porting_guides/porting_guide_5.rst:343 -#: ../../rst/porting_guides/porting_guide_6.rst:535 +#: ../../rst/porting_guides/porting_guide_6.rst:118 +#: ../../rst/porting_guides/porting_guide_6.rst:671 +#: ../../rst/porting_guides/porting_guide_7.rst:116 +#: ../../rst/porting_guides/porting_guide_7.rst:235 msgid "cisco.meraki" msgstr "cisco.meraki" @@ -1916,6 +1974,8 @@ msgstr "win_pester - 未知のスクリプトを実行する可能性がある #: ../../rst/porting_guides/porting_guide_2.10.rst:953 #: ../../rst/porting_guides/porting_guide_4.rst:195 #: ../../rst/porting_guides/porting_guide_5.rst:573 +#: ../../rst/porting_guides/porting_guide_6.rst:124 +#: ../../rst/porting_guides/porting_guide_7.rst:241 msgid "community.zabbix" msgstr "community.zabbix" @@ -1948,7 +2008,7 @@ msgid "This version has a few breaking changes due to new namespace and collecti msgstr "このバージョンには、新しい名前空間とコレクション名のためにいくつかの重大な変更があります。lookup プラグインと inventory プラグインの名前を変更して、それを使用するための非記述的な名前空間呼び出しを行わないようにする必要があると感じました。以下に例を示します。inventory プラグインと lookup プラグインの両方に ``netbox.netbox.netbox`` が使用されますが、コンテキストが異なるため、衝突は発生しませんが、混乱が発生します。lookup プラグインの名前を ``nb_lookup`` に変更しました。そのため、FQCN ``netbox.netbox.nb_lookup`` で使用されます。インベントリープラグインは、インベントリーファイル内で ``netbox.netbox.nb_inventory`` により呼び出されるようになります。" #: ../../rst/porting_guides/porting_guide_2.10.rst:570 -msgid "To pass in integers via Ansible Jinja filters for a key in ``data`` that requires querying an endpoint is now done by making it a dictionary with an ``id`` key. The previous behavior was to just pass in an integer and it was converted when normalizing the data, but some people may have names that are all integers and those were being converted erroneously so we made the decision to change the method to convert to an integer for the NetBox API." +msgid "To pass in integers through Ansible Jinja filters for a key in ``data`` that requires querying an endpoint is now done by making it a dictionary with an ``id`` key. The previous behavior was to just pass in an integer and it was converted when normalizing the data, but some people may have names that are all integers and those were being converted erroneously so we made the decision to change the method to convert to an integer for the NetBox API." msgstr "エンドポイントへの問い合わせが必要な ``data`` のキーに対して、Ansible Jinja のフィルターで整数を渡すためには、``id`` キーを持つディクショナリーにすることで行うようになりました。これまでの動作では、整数を渡すだけでデータの正規化時に変換されていましたが、人によっては名前がすべて整数である場合があり、それらが誤って変換されていたため、NetBox API では整数に変換する方法に変更することにしました。" #: ../../rst/porting_guides/porting_guide_2.10.rst:593 @@ -1957,7 +2017,7 @@ msgstr "``pynetbox`` は、NetBox API クライアントを構築する際に `` #: ../../rst/porting_guides/porting_guide_2.10.rst:599 #: ../../rst/porting_guides/porting_guide_4.rst:589 -#: ../../rst/porting_guides/porting_guide_6.rst:424 +#: ../../rst/porting_guides/porting_guide_6.rst:560 msgid "theforeman.foreman" msgstr "theforeman.foreman" @@ -2032,9 +2092,10 @@ msgstr "ec2 module_utils - ``AWSRetry`` デコレーターは、デフォルト #: ../../rst/porting_guides/porting_guide_4.rst:613 #: ../../rst/porting_guides/porting_guide_4.rst:839 #: ../../rst/porting_guides/porting_guide_5.rst:890 -#: ../../rst/porting_guides/porting_guide_6.rst:263 -#: ../../rst/porting_guides/porting_guide_6.rst:324 -#: ../../rst/porting_guides/porting_guide_6.rst:446 +#: ../../rst/porting_guides/porting_guide_6.rst:399 +#: ../../rst/porting_guides/porting_guide_6.rst:460 +#: ../../rst/porting_guides/porting_guide_6.rst:582 +#: ../../rst/porting_guides/porting_guide_7.rst:718 msgid "ansible.netcommon" msgstr "ansible.netcommon" @@ -2140,7 +2201,7 @@ msgid "k8s_config_resource_name - Filter plugin migrated from Ansible 2.9 to Kub msgstr "k8s_config_resource_name - Ansible 2.9 から Kubernetes コレクションに移行したプラグインにフィルターを設定します。" #: ../../rst/porting_guides/porting_guide_2.10.rst:677 -msgid "k8s_exec - New module for executing commands on pods via Kubernetes API (https://github.com/ansible-collections/community.kubernetes/pull/14)." +msgid "k8s_exec - New module for executing commands on pods through Kubernetes API (https://github.com/ansible-collections/community.kubernetes/pull/14)." msgstr "k8s_exec - Kubernetes API を使用して Pod でコマンドを実行する新規モジュール (https://github.com/ansible-collections/community.kubernetes/pull/14)。" #: ../../rst/porting_guides/porting_guide_2.10.rst:678 @@ -2355,8 +2416,8 @@ msgstr "ovirt_vm_os_info - モジュールを作成します (https://github.com #: ../../rst/porting_guides/porting_guide_2.10.rst:747 #: ../../rst/porting_guides/porting_guide_5.rst:335 #: ../../rst/porting_guides/porting_guide_5.rst:351 -#: ../../rst/porting_guides/porting_guide_6.rst:290 -#: ../../rst/porting_guides/porting_guide_6.rst:826 +#: ../../rst/porting_guides/porting_guide_6.rst:426 +#: ../../rst/porting_guides/porting_guide_6.rst:962 msgid "purestorage.flasharray" msgstr "purestorage.flasharray" @@ -2510,8 +2571,8 @@ msgstr "win_stat - 非推奨の ``get_md55`` オプションと ``md5`` の戻 #: ../../rst/porting_guides/porting_guide_5.rst:515 #: ../../rst/porting_guides/porting_guide_5.rst:815 #: ../../rst/porting_guides/porting_guide_5.rst:952 -#: ../../rst/porting_guides/porting_guide_6.rst:228 -#: ../../rst/porting_guides/porting_guide_7.rst:492 +#: ../../rst/porting_guides/porting_guide_6.rst:364 +#: ../../rst/porting_guides/porting_guide_7.rst:1021 msgid "community.crypto" msgstr "community.crypto" @@ -2883,7 +2944,7 @@ msgid "vmware_tag_info - in a later release, the module will not return ``tag_fa msgstr "vmware_tag_info - 今後のリリースでは、同じ名前で異なるカテゴリー ID を持つ複数のタグを返さないため、モジュールは ``tag_facts`` を返しません。既存の動作を維持するには、タグのメタデータのリストである ``tag_info`` を使用してください。" #: ../../rst/porting_guides/porting_guide_2.10.rst:955 -msgid "zabbix_proxy (module) - deprecates ``interface`` sub-options ``type`` and ``main`` when proxy type is set to passive via ``status=passive``. Make sure these suboptions are removed from your playbook as they were never supported by Zabbix in the first place." +msgid "zabbix_proxy (module) - deprecates ``interface`` sub-options ``type`` and ``main`` when proxy type is set to passive through ``status=passive``. Make sure these suboptions are removed from your playbook as they were never supported by Zabbix in the first place." msgstr "zabbix_proxy (モジュール) - ``status=passive`` でプロキシーが passive に設定されている場合は、``interface`` のサブオプション ``type`` と ``main`` を非推奨とします。これらのサブオプションはそもそも Zabbix ではサポートされていないため、必ず Playbook から削除してください。" #: ../../rst/porting_guides/porting_guide_2.10.rst:960 @@ -2908,7 +2969,7 @@ msgstr "このセクションでは、Ansible 2.2 から Ansible 2.3 におけ #: ../../rst/porting_guides/porting_guide_2.3.rst:13 msgid "We suggest you read this page along with `Ansible Changelog for 2.3 `_ to understand what updates you may need to make." -msgstr "必要な更新について理解するには、このページと併せて「`Ansible Changelog for 2.3 `_」を参照してください。" +msgstr "必要な更新について理解するには、このページと併せて「`Ansible Changelog for 2.3 `_」を参照することをお勧めします。" #: ../../rst/porting_guides/porting_guide_2.3.rst:23 msgid "Restructured async to work with action plugins" @@ -2955,7 +3016,7 @@ msgid "Specifying ``--tags`` (or ``--skip-tags``) multiple times on the command msgstr "現在、コマンドラインで ``--tags`` (または ``--skip-tags``) を複数回指定すると、最後に指定したタグが他のすべての指定したタグよりも優先されます。この動作は推奨されません。将来的には、--tags を複数回指定した場合、タグは統合されます。今後は、1 つのコマンドラインで ``--tags`` を複数回使用すると、非推奨の警告が表示されます。``ansible.cfg`` ファイルで ``merge_multiple_cli_tags`` オプションを True に設定すると、新しい動作が有効になります。" #: ../../rst/porting_guides/porting_guide_2.3.rst:95 -msgid "In 2.4, the default will be to merge the tags. You can enable the old overwriting behavior via the config option. In 2.5, multiple ``--tags`` options will be merged with no way to go back to the old behaviour." +msgid "In 2.4, the default will be to merge the tags. You can enable the old overwriting behavior through the config option. In 2.5, multiple ``--tags`` options will be merged with no way to go back to the old behaviour." msgstr "2.4 では、デフォルトでタグのマージが行われます。古い上書きの動作は、設定オプションで有効にすることができます。2.5 では、複数の ``--tags`` オプションがマージされますが、以前の動作に戻すことはできません。" #: ../../rst/porting_guides/porting_guide_2.3.rst:102 @@ -3148,15 +3209,15 @@ msgid "Will result in:" msgstr "結果は以下のようになります。" #: ../../rst/porting_guides/porting_guide_2.3.rst:223 -msgid "delegate_to vs ProxyCommand" -msgstr "delegate_to 対 ProxyCommand" +msgid "ProxyCommand replaces delegate_to" +msgstr "ProxyCommand は delegate_to を置き換えます。" #: ../../rst/porting_guides/porting_guide_2.3.rst:225 msgid "The new connection framework for Network Modules in Ansible 2.3 that uses ``cli`` transport no longer supports the use of the ``delegate_to`` directive. In order to use a bastion or intermediate jump host to connect to network devices over ``cli`` transport, network modules now support the use of ``ProxyCommand``." msgstr "``cli`` トランスポートを使用する Ansible 2.3 のネットワークモジュールの新しい接続フレームワークは、``delegate_to`` ディレクティブの使用をサポートしなくなりました。bastion または中間ジャンプホストを使用して ``cli`` トランスポートでネットワークデバイスに接続するために、ネットワークモジュールは ``ProxyCommand`` の使用に対応します。" #: ../../rst/porting_guides/porting_guide_2.3.rst:230 -msgid "To use ``ProxyCommand`` configure the proxy settings in the Ansible inventory file to specify the proxy host via ``ansible_ssh_common_args``." +msgid "To use ``ProxyCommand`` configure the proxy settings in the Ansible inventory file to specify the proxy host through ``ansible_ssh_common_args``." msgstr "``ProxyCommand`` を使用するには、Ansible インベントリーファイルでプロキシー設定を構成して、``ansible_ssh_common_args`` を使用してプロキシーホストを指定します。" #: ../../rst/porting_guides/porting_guide_2.3.rst:233 @@ -3173,7 +3234,7 @@ msgstr "このセクションでは、Ansible 2.3 から Ansible 2.4 におけ #: ../../rst/porting_guides/porting_guide_2.4.rst:13 msgid "We suggest you read this page along with `Ansible Changelog for 2.4 `_ to understand what updates you may need to make." -msgstr "必要な更新について理解するには、このページと併せて「`Ansible Changelog for 2.4 `_」を参照してください。" +msgstr "必要な更新について理解するには、このページと併せて「`Ansible Changelog for 2.4 `_」を参照することをお勧めします。" #: ../../rst/porting_guides/porting_guide_2.4.rst:20 msgid "Python version" @@ -3190,7 +3251,7 @@ msgid "Inventory" msgstr "インベントリー" #: ../../rst/porting_guides/porting_guide_2.4.rst:28 -msgid "Inventory has been refactored to be implemented via plugins and now allows for multiple sources. This change is mostly transparent to users." +msgid "Inventory has been refactored to be implemented through plugins and now allows for multiple sources. This change is mostly transparent to users." msgstr "インベントリーはプラグインで実装できるようにリファクタリングされ、複数のソースを使用できるようになりました。この変更はユーザーにはほとんどわかりません。" #: ../../rst/porting_guides/porting_guide_2.4.rst:30 @@ -3238,7 +3299,7 @@ msgid "Specifying ``--tags`` (or ``--skip-tags``) multiple times on the command msgstr "現在、コマンドラインで ``--tags`` (または ``--skip-tags``) を複数回指定すると、最後に指定したタグがその前に指定したすべてのタグよりも優先されます。この動作は推奨されません。将来的には、--tags を複数回指定した場合、タグは統合されます。今後は、1 つのコマンドラインで ``--tags`` を複数回使用すると、非推奨の警告が表示されます。``ansible.cfg`` ファイルで ``merge_multiple_cli_tags`` オプションを True に設定すると、新しい動作が有効になります。" #: ../../rst/porting_guides/porting_guide_2.4.rst:66 -msgid "In 2.4, the default has change to merge the tags. You can enable the old overwriting behavior via the config option." +msgid "In 2.4, the default has change to merge the tags. You can enable the old overwriting behavior through the config option." msgstr "2.4 では、デフォルトでタグのマージが行われるようになりました。以前の上書きの動作は、設定オプションで有効にすることができます。" #: ../../rst/porting_guides/porting_guide_2.4.rst:68 @@ -3329,7 +3390,7 @@ msgid "Inventory plugins" msgstr "inventory プラグイン" #: ../../rst/porting_guides/porting_guide_2.4.rst:127 -msgid "Developers should start migrating from hardcoded inventory with dynamic inventory scripts to the new Inventory Plugins. The scripts will still work via the ``script`` inventory plugin but Ansible development efforts will now concentrate on writing plugins rather than enhancing existing scripts." +msgid "Developers should start migrating from hardcoded inventory with dynamic inventory scripts to the new Inventory Plugins. The scripts will still work through the ``script`` inventory plugin but Ansible development efforts will now concentrate on writing plugins rather than enhancing existing scripts." msgstr "開発者は、動的インベントリーリスクリプトによるハードコードされたインベントリーから、新しいインベントリースクリプトへの移行を開始する必要があります。スクリプトは、``script`` インベントリープラグインを介して引き続き動作しますが、Ansible の開発努力は、既存のスクリプトの改良ではなく、プラグインの作成に集中することになります。" #: ../../rst/porting_guides/porting_guide_2.4.rst:129 @@ -3349,8 +3410,8 @@ msgid "Developers:" msgstr "開発者:" #: ../../rst/porting_guides/porting_guide_2.4.rst:141 -msgid "If your callback does not inherit from ``CallbackBase`` (directly or indirectly via another callback), it will still work, but issue a deprecation notice. To avoid this and ensure it works in the future change it to inherit from ``CallbackBase`` so it has the new options handling methods and properties. You can also implement the new options handling methods and properties but that won't automatically inherit changes added in the future. You can look at ``CallbackBase`` itself and/or ``AnsiblePlugin`` for details." -msgstr "コールバックが ``CallbackBase`` を継承していない場合 (直接または他のコールバックを経由して間接的に)、コールバックは動作しますが、非推奨の警告が表示されます。これを回避し、将来も確実に動作させるには、``CallbackBase`` を継承するように変更し、新しいオプション処理のメソッドとプロパティーを持つようにします。新しいオプション処理のメソッドやプロパティーを実装することもできますが、将来追加される変更を自動的に継承することはできません。詳細は、``CallbackBase`` 自体や``AnsiblePlugin`` を参照してください。" +msgid "If your callback does not inherit from ``CallbackBase`` (directly or indirectly through another callback), it will still work, but issue a deprecation notice. To avoid this and ensure it works in the future change it to inherit from ``CallbackBase`` so it has the new options handling methods and properties. You can also implement the new options handling methods and properties but that won't automatically inherit changes added in the future. You can look at ``CallbackBase`` itself and/or ``AnsiblePlugin`` for details." +msgstr "コールバックが ``CallbackBase`` を継承していない場合 (直接または他のコールバックを経由して間接的に)、コールバックは動作しますが、非推奨の警告が表示されます。これを回避し、将来も確実に動作させるには、``CallbackBase`` を継承するように変更し、新しいオプション処理のメソッドとプロパティーを持つようにします。新しいオプション処理のメソッドやプロパティーを実装することもできますが、将来追加される変更を自動的に継承することはできません。詳細は、``CallbackBase`` 自体や ``AnsiblePlugin`` を参照してください。" #: ../../rst/porting_guides/porting_guide_2.4.rst:144 msgid "Any callbacks inheriting from other callbacks might need to also be updated to contain the same documented options as the parent or the options won't be available. This is noted in the developer guide." @@ -3414,7 +3475,7 @@ msgstr "詳細は、「:ref:`Ansible Network debug guide `_ to understand what updates you may need to make." -msgstr "必要な更新について理解するには、このページと併せて「`Ansible Changelog for 2.5 `_」を参照してください。" +msgstr "必要な更新について理解するには、このページと併せて「`Ansible Changelog for 2.5 `_」を参照することをお勧めします。" #: ../../rst/porting_guides/porting_guide_2.5.rst:21 msgid "Dynamic includes and attribute inheritance" @@ -3577,27 +3638,31 @@ msgstr "with_sequence" msgid "``with_sequence`` is replaced by ``loop`` and the ``range`` function, and potentially the ``format`` filter." msgstr "``with_sequence`` は、``loop`` 関数と ``range`` の関数、そして潜在的には ``format`` フィルターに置き換えられました。" -#: ../../rst/playbook_guide/shared_snippets/with2loop.txt:153 +#: ../../rst/playbook_guide/shared_snippets/with2loop.txt:151 +msgid "The range of the loop is exclusive of the end point." +msgstr "ループの範囲はエンドポイントを除きます。" + +#: ../../rst/playbook_guide/shared_snippets/with2loop.txt:154 msgid "with_subelements" msgstr "with_subelements" -#: ../../rst/playbook_guide/shared_snippets/with2loop.txt:155 +#: ../../rst/playbook_guide/shared_snippets/with2loop.txt:156 msgid "``with_subelements`` is replaced by ``loop`` and the ``subelements`` filter." msgstr "``with_subelements`` は、``loop`` フィルターおよび ``subelements`` フィルターに置き換えられました。" -#: ../../rst/playbook_guide/shared_snippets/with2loop.txt:172 +#: ../../rst/playbook_guide/shared_snippets/with2loop.txt:173 msgid "with_nested/with_cartesian" msgstr "with_nested/with_cartesian" -#: ../../rst/playbook_guide/shared_snippets/with2loop.txt:174 +#: ../../rst/playbook_guide/shared_snippets/with2loop.txt:175 msgid "``with_nested`` and ``with_cartesian`` are replaced by loop and the ``product`` filter." msgstr "``with_nested`` と``with_cartesian`` は、ループと ``product`` のフィルターに置き換えられました。" -#: ../../rst/playbook_guide/shared_snippets/with2loop.txt:191 +#: ../../rst/playbook_guide/shared_snippets/with2loop.txt:192 msgid "with_random_choice" msgstr "with_random_choice" -#: ../../rst/playbook_guide/shared_snippets/with2loop.txt:193 +#: ../../rst/playbook_guide/shared_snippets/with2loop.txt:194 msgid "``with_random_choice`` is replaced by just use of the ``random`` filter, without need of ``loop``." msgstr "``with_random_choice`` は、``random`` フィルターを使用するだけで、``loop`` を必要とせずに置き換えることができます。" @@ -3930,7 +3995,7 @@ msgstr "このセクションでは、Ansible 2.5 から Ansible 2.6 におけ #: ../../rst/porting_guides/porting_guide_2.6.rst:11 msgid "We suggest you read this page along with `Ansible Changelog for 2.6 `_ to understand what updates you may need to make." -msgstr "必要な更新について理解するには、このページと併せて「`Ansible Changelog for 2.6 `_」を参照してください。" +msgstr "必要な更新について理解するには、このページと併せて「`Ansible Changelog for 2.6 `_」を参照することをお勧めします。" #: ../../rst/porting_guides/porting_guide_2.6.rst:20 msgid "The deprecated task option ``always_run`` has been removed, please use ``check_mode: no`` instead." @@ -4063,7 +4128,7 @@ msgstr "このセクションでは、Ansible 2.6 から Ansible 2.7 におけ #: ../../rst/porting_guides/porting_guide_2.7.rst:11 msgid "We suggest you read this page along with `Ansible Changelog for 2.7 `_ to understand what updates you may need to make." -msgstr "必要な更新について理解するには、このページと併せて「`Ansible Changelog for 2.7 `_」を参照してください。" +msgstr "必要な更新について理解するには、このページと併せて「`Ansible Changelog for 2.7 `_」を参照することをお勧めします。" #: ../../rst/porting_guides/porting_guide_2.7.rst:20 msgid "If you specify ``--tags`` or ``--skip-tags`` multiple times on the command line, Ansible will merge the specified tags together. In previous versions of Ansible, you could set ``merge_multiple_cli_tags`` to ``False`` if you wanted to keep only the last-specified ``--tags``. This config option existed for backwards compatibility. The overwriting behavior was deprecated in 2.3 and the default behavior was changed in 2.4. Ansible-2.7 removes the config option; multiple ``--tags`` are now always merged." @@ -4082,7 +4147,7 @@ msgid "Ansible has dropped compatibility with Python-2.6 on the controller (The msgstr "Ansible は、コントローラー (:command:`/usr/bin/ansible` または :command:`/usr/bin/ansible-playbook` が実行されるホスト) での Python-2.6 との互換性を失いました。Ansible に同梱されているモジュールは、Python-2.6 しか搭載していないホストの管理に使用できます。ただし、Python-2.7 以上または Python-3.5 以上のホストから管理する必要があります。" #: ../../rst/porting_guides/porting_guide_2.7.rst:39 -msgid "One thing that this does affect is the ability to use :command:`/usr/bin/ansible-pull` to manage a host which has Python-2.6. ``ansible-pull`` runs on the host being managed but it is a controller script, not a module so it will need an updated Python. Actively developed Linux distros which ship with Python-2.6 have some means to install newer Python versions (For instance, you can install Python-2.7 via an SCL on RHEL-6) but you may need to also install Python bindings for many common modules to work (For RHEL-6, for instance, selinux bindings and yum would have to be installed for the updated Python install)." +msgid "One thing that this does affect is the ability to use :command:`/usr/bin/ansible-pull` to manage a host which has Python-2.6. ``ansible-pull`` runs on the host being managed but it is a controller script, not a module so it will need an updated Python. Actively developed Linux distros which ship with Python-2.6 have some means to install newer Python versions (For instance, you can install Python-2.7 through an SCL on RHEL-6) but you may need to also install Python bindings for many common modules to work (For RHEL-6, for instance, selinux bindings and yum would have to be installed for the updated Python install)." msgstr "これが影響することの 1 つは、:command:`/usr/bin/ansible-pull` を使用して、Python-2.6 を搭載したホストを管理する機能です。``ansible-pull`` は管理対象のホストで実行しますが、これはコントローラースクリプトであり、モジュールではないため、更新された Python が必要になります。Python-2.6 に同梱されているアクティブに開発された Linux ディストリビューションには、新しい Python バージョンをインストールする手段があります (たとえば、RHEL-6 の SCL を介して Python-2.7 をインストールすることが可能) が、多くの一般的なモジュールの Python バインディングもインストールしないといけない場合があります (たとえば、RHEL-6 の場合、更新された Python インストールには selinux バインディングと yum をインストールする必要があります)。" #: ../../rst/porting_guides/porting_guide_2.7.rst:47 @@ -4170,8 +4235,8 @@ msgid "If you are the author of a third-party module which uses ``__file__`` wit msgstr "``__file__`` と ``AnsibleModule`` を併用しているサードパーティーモジュールを作成した場合は、``__file__`` が利用可能な状態ではあってもその使用が非推奨となっている間に、ご自身のモジュールを更新してください。``__file__`` の最も一般的な使い方は、一時ファイルを書き込むディレクトリーを探すことです。Ansible 2.5 以降では、:ref:`apt モジュール ` のコードにあるように、``AnsibleModule`` インスタンスに ``tmpdir`` 属性を使用することができます。" #: ../../rst/porting_guides/porting_guide_2.7.rst:127 -msgid "Using a loop on a package module via squash_actions" -msgstr "squash_actions によるパッケージモジュールでのループの使用" +msgid "Using a loop on a package module through squash_actions" +msgstr "squash_actions を使ったパッケージモジュールのループの利用" #: ../../rst/porting_guides/porting_guide_2.7.rst:129 msgid "The use of ``squash_actions`` to invoke a package module, such as \"yum\", to only invoke the module once is deprecated, and will be removed in Ansible 2.11." @@ -4323,7 +4388,7 @@ msgstr "このセクションでは、Ansible 2.7 から Ansible 2.8 におけ #: ../../rst/porting_guides/porting_guide_2.8.rst:11 msgid "We suggest you read this page along with `Ansible Changelog for 2.8 `_ to understand what updates you may need to make." -msgstr "必要な更新について理解するには、このページと併せて「`Ansible Changelog for 2.8 `_」を参照してください。" +msgstr "必要な更新について理解するには、このページと併せて「`Ansible Changelog for 2.8 `_」を参照することをお勧めします。" #: ../../rst/porting_guides/porting_guide_2.8.rst:22 msgid "Distribution Facts" @@ -4624,8 +4689,8 @@ msgid "The ``FactCache.update()`` method has been converted to follow the dict A msgstr "``FactCache.update()`` メソッドは、dict API に従うように変更されました。ディレクトリーを唯一の引数として受け取り、そのディレクトリーの項目で自身を更新するようになりました。``update()`` がキーと値を受け取っていた以前の API は、現在は非推奨の警告が表示されされ、2.12 で削除されます。以前の動作が必要な場合は、代わりに ``FactCache.first_order_merge()`` に切り替えてください。" #: ../../rst/porting_guides/porting_guide_2.8.rst:350 -msgid "Supporting file-backed caching via self.cache is deprecated and will be removed in Ansible 2.12. If you maintain an inventory plugin, update it to use ``self._cache`` as a dictionary. For implementation details, see the :ref:`developer guide on inventory plugins`." -msgstr "self.cache によるファイルバックキャッシングのサポートは非推奨で、Ansible 2.12 で削除されます。インベントリープラグインを管理している場合は、ディクショナリーとして ``self._cache`` を使用するように更新してください。実装の詳細は、「:ref:`inventory プラグインの開発者ガイド`」を参照してください。" +msgid "Supporting file-backed caching through self.cache is deprecated and will be removed in Ansible 2.12. If you maintain an inventory plugin, update it to use ``self._cache`` as a dictionary. For implementation details, see the :ref:`developer guide on inventory plugins`." +msgstr "self.cache によるファイルバックキャッシングのサポートは非推奨で、Ansible 2.12 で削除されます。インベントリープラグインを管理している場合は、ディクショナリーとして ``self._cache`` を使用するように更新してください。実装の詳細は、「:ref:`developer guide on inventory plugins`」を参照してください。" #: ../../rst/porting_guides/porting_guide_2.8.rst:354 msgid "Importing cache plugins directly is deprecated and will be removed in Ansible 2.12. Use the plugin_loader so direct options, environment variables, and other means of configuration can be reconciled using the config system rather than constants." @@ -4896,8 +4961,8 @@ msgid "``osx_say`` callback plugin was renamed into :ref:`say `." msgstr "``osx_say`` callback プラグインの名前が :ref:`say ` に変更になりました。" #: ../../rst/porting_guides/porting_guide_2.8.rst:546 -msgid "Inventory plugins now support caching via cache plugins. To start using a cache plugin with your inventory see the section on caching in the :ref:`inventory guide`. To port a custom cache plugin to be compatible with inventory see :ref:`developer guide on cache plugins`." -msgstr "inventory プラグインが cache プラグインによるキャッシュ設定に対応しました。インベントリーで cache プラグインの使用を開始するには、「:ref:`インベントリーガイド`」のキャッシュ設定に関するセクションを参照してください。カスタム cache プラグインをインベントリーと互換性があるように移植するには、「:ref:`cache プラグインの開発者ガイド`」を参照してください。" +msgid "Inventory plugins now support caching through cache plugins. To start using a cache plugin with your inventory see the section on caching in the :ref:`inventory guide`. To port a custom cache plugin to be compatible with inventory see :ref:`developer guide on cache plugins`." +msgstr "inventory プラグインが cache プラグインによるキャッシュ設定に対応しました。インベントリーで cache プラグインの使用を開始するには、「:ref:`inventory guide`」のキャッシュ設定に関するセクションを参照してください。カスタム cache プラグインをインベントリーと互換性があるように移植するには、「:ref:`developer guide on cache plugins`」を参照してください。" #: ../../rst/porting_guides/porting_guide_2.8.rst:552 msgid "Display class" @@ -6417,7 +6482,7 @@ msgstr "Ansible 3 は、Ansible 2.10 と同じメジャーリリースである #: ../../rst/porting_guides/porting_guide_3.rst:17 msgid "We suggest you read this page along with the `Ansible 3 Changelog `_ to understand what updates you may need to make." -msgstr "必要な更新について理解するには、このページと併せて「`Ansible 3 Changelog `_」を参照してください。" +msgstr "必要な更新について理解するには、このページと併せて「`Ansible 3 Changelog `_」を参照することをお勧めします。" #: ../../rst/porting_guides/porting_guide_3.rst:20 msgid "Porting Guide for v3.4.0" @@ -6439,12 +6504,12 @@ msgstr "v3.4.0 の移植ガイド" #: ../../rst/porting_guides/porting_guide_5.rst:362 #: ../../rst/porting_guides/porting_guide_5.rst:447 #: ../../rst/porting_guides/porting_guide_5.rst:737 -#: ../../rst/porting_guides/porting_guide_6.rst:186 -#: ../../rst/porting_guides/porting_guide_6.rst:274 -#: ../../rst/porting_guides/porting_guide_6.rst:419 -#: ../../rst/porting_guides/porting_guide_6.rst:589 -#: ../../rst/porting_guides/porting_guide_7.rst:110 -#: ../../rst/porting_guides/porting_guide_7.rst:268 +#: ../../rst/porting_guides/porting_guide_6.rst:322 +#: ../../rst/porting_guides/porting_guide_6.rst:410 +#: ../../rst/porting_guides/porting_guide_6.rst:555 +#: ../../rst/porting_guides/porting_guide_6.rst:725 +#: ../../rst/porting_guides/porting_guide_7.rst:286 +#: ../../rst/porting_guides/porting_guide_7.rst:636 msgid "dellemc.openmanage" msgstr "dellemc.openmanage" @@ -6492,9 +6557,9 @@ msgstr "ansible-test - ``centos6`` および ``default`` テストコンテナ #: ../../rst/porting_guides/porting_guide_5.rst:187 #: ../../rst/porting_guides/porting_guide_5.rst:218 #: ../../rst/porting_guides/porting_guide_5.rst:721 -#: ../../rst/porting_guides/porting_guide_6.rst:162 -#: ../../rst/porting_guides/porting_guide_6.rst:569 -#: ../../rst/porting_guides/porting_guide_7.rst:255 +#: ../../rst/porting_guides/porting_guide_6.rst:298 +#: ../../rst/porting_guides/porting_guide_6.rst:705 +#: ../../rst/porting_guides/porting_guide_7.rst:623 msgid "community.postgresql" msgstr "community.postgresql" @@ -6506,8 +6571,8 @@ msgstr "postgresql_query - ``as_single_query`` オプションのデフォルト #: ../../rst/porting_guides/porting_guide_3.rst:47 #: ../../rst/porting_guides/porting_guide_4.rst:679 -#: ../../rst/porting_guides/porting_guide_6.rst:154 -#: ../../rst/porting_guides/porting_guide_7.rst:123 +#: ../../rst/porting_guides/porting_guide_6.rst:290 +#: ../../rst/porting_guides/porting_guide_7.rst:299 msgid "netapp.ontap" msgstr "netapp.ontap" @@ -6535,10 +6600,10 @@ msgstr "v3.3.0 の移植ガイド" #: ../../rst/porting_guides/porting_guide_3.rst:139 #: ../../rst/porting_guides/porting_guide_4.rst:653 #: ../../rst/porting_guides/porting_guide_5.rst:182 -#: ../../rst/porting_guides/porting_guide_6.rst:126 -#: ../../rst/porting_guides/porting_guide_6.rst:399 -#: ../../rst/porting_guides/porting_guide_6.rst:559 -#: ../../rst/porting_guides/porting_guide_7.rst:250 +#: ../../rst/porting_guides/porting_guide_6.rst:262 +#: ../../rst/porting_guides/porting_guide_6.rst:535 +#: ../../rst/porting_guides/porting_guide_6.rst:695 +#: ../../rst/porting_guides/porting_guide_7.rst:612 msgid "community.mysql" msgstr "community.mysql" @@ -6719,6 +6784,10 @@ msgstr "Issue 2(187956): 無効なjob_idが提供された場合、idrac_lifecyc msgid "Issue 3(188267): While updating the iDRAC firmware, the idrac_firmware module completes execution before the firmware update job is completed. An incorrect message is displayed in the task output as 'DRAC WSMAN endpoint returned HTTP code '400' Reason 'Bad Request''. This issue may occur if the target iDRAC firmware version is less than 3.30.30.30" msgstr "Issue 3(188267): iDRACファームウェアの更新中に、idrac_firmwareモジュールは、ファームウェア更新ジョブが完了する前に実行を完了します。タスク出力に誤ったメッセージ'DRAC WSMAN endpoint returned HTTP code '400' Reason 'Bad Request''が表示されます。この問題は、ターゲットiDRACファームウェアバージョンが3.30.30.30未満の場合に発生する可能性があります" +#: ../../rst/porting_guides/porting_guide_3.rst:210 +msgid "ansible-galaxy login command has been removed ( see `issue 71560 `_)" +msgstr "ansible-galaxy login コマンドが削除されました (`issue 71560 ` を参照))。" + #: ../../rst/porting_guides/porting_guide_3.rst:213 msgid "ansible.utils" msgstr "ansible.utils" @@ -6805,7 +6874,7 @@ msgid "archive - remove path folder itself when ``remove`` parameter is true (ht msgstr "archive - ``remove`` パラメーターが true の場合にパスフォルダー自体を削除します(https://github.com/ansible-collections/community.general/issues/1041)。" #: ../../rst/porting_guides/porting_guide_3.rst:265 -msgid "passwordstore lookup plugin - now parsing a password store entry as YAML if possible, skipping the first line (which by convention only contains the password and nothing else). If it cannot be parsed as YAML, the old ``key: value`` parser will be used to process the entry. Can break backwards compatibility if YAML formatted code was parsed in a non-YAML interpreted way, e.g. ``foo: [bar, baz]`` will become a list with two elements in the new version, but a string ``'[bar, baz]'`` in the old (https://github.com/ansible-collections/community.general/issues/1673)." +msgid "passwordstore lookup plugin - now parsing a password store entry as YAML if possible, skipping the first line (which by convention only contains the password and nothing else). If it cannot be parsed as YAML, the old ``key: value`` parser will be used to process the entry. Can break backwards compatibility if YAML formatted code was parsed in a non-YAML interpreted way, for example ``foo: [bar, baz]``, will become a list with two elements in the new version, but a string ``'[bar, baz]'`` in the old (https://github.com/ansible-collections/community.general/issues/1673)." msgstr "passwordstore lookup プラグイン - パスワードストアのエントリーを可能な限り YAML として解析するようになり、最初の行 (慣例ではパスワードのみを含み、他には何もない) をスキップするようになりました。YAML として解析できない場合は、古い ``key: value`` パーサーがエントリーの処理に使用されます。YAML 形式のコードが YAML ではない解釈方法で解析された場合は、下位互換性を失う可能性があります。たとえば、``foo: [bar, baz]`` は新バージョンでは 2 つの要素を持つリストになりますが、旧バージョンでは文字列 ``'[bar, baz]'`` になります (https://github.com/ansible-collections/community.general/issues/1673)。" #: ../../rst/porting_guides/porting_guide_3.rst:268 @@ -6865,7 +6934,7 @@ msgid "ngine_io.cloudstack" msgstr "ngine_io.cloudstack" #: ../../rst/porting_guides/porting_guide_3.rst:317 -msgid "Authentication option using INI files e.g. ``cloudstack.ini`` has been removed. The only supported option to authenticate is by using the module params with fallback to the ENV variables." +msgid "Authentication option using INI files for example ``cloudstack.ini``, has been removed. The only supported option to authenticate is by using the module params with fallback to the ENV variables." msgstr "INI ファイル (例: ``cloudstack.ini``) を使用した認証オプションは削除されました。現在サポートされている認証方法は、ENV 変数にフォールバックしてモジュールパラメーターを使用する方法のみです。" #: ../../rst/porting_guides/porting_guide_3.rst:318 @@ -6955,7 +7024,7 @@ msgid "k8s_* - Add support for vaulted kubeconfig and src (https://github.com/an msgstr "k8s_* - Vault 済み kubeconfig および src のサポートを追加します (https://github.com/ansible-collections/kubernetes.core/pull/193)。" #: ../../rst/porting_guides/porting_guide_3.rst:395 -msgid "k8s_exec - New module for executing commands on pods via Kubernetes API (https://github.com/ansible-collections/kubernetes.core/pull/14)." +msgid "k8s_exec - New module for executing commands on pods through Kubernetes API (https://github.com/ansible-collections/kubernetes.core/pull/14)." msgstr "k8s_exec - Kubernetes API を使用して Pod でコマンドを実行する新規モジュール (https://github.com/ansible-collections/kubernetes.core/pull/14)。" #: ../../rst/porting_guides/porting_guide_3.rst:396 @@ -7288,7 +7357,7 @@ msgstr "Ansible 4 移植ガイド" #: ../../rst/porting_guides/porting_guide_4.rst:15 msgid "We suggest you read this page along with the `Ansible 4 Changelog `_ to understand what updates you may need to make." -msgstr "必要な更新について理解するには、このページと併せて「`Ansible 4 Changelog `_」を参照してください。" +msgstr "必要な更新について理解するには、このページと併せて「`Ansible 4 Changelog `_」を参照することをお勧めします。" #: ../../rst/porting_guides/porting_guide_4.rst:20 #: ../../rst/porting_guides/porting_guide_core_2.11.rst:23 @@ -7558,55 +7627,57 @@ msgstr "v4.10.0 の移植ガイド" #: ../../rst/porting_guides/porting_guide_4.rst:257 #: ../../rst/porting_guides/porting_guide_5.rst:375 #: ../../rst/porting_guides/porting_guide_5.rst:731 -#: ../../rst/porting_guides/porting_guide_6.rst:583 +#: ../../rst/porting_guides/porting_guide_6.rst:130 +#: ../../rst/porting_guides/porting_guide_6.rst:719 +#: ../../rst/porting_guides/porting_guide_7.rst:247 msgid "containers.podman" msgstr "containers.podman" #: ../../rst/porting_guides/porting_guide_4.rst:144 #: ../../rst/porting_guides/porting_guide_5.rst:377 -#: ../../rst/porting_guides/porting_guide_6.rst:585 +#: ../../rst/porting_guides/porting_guide_6.rst:721 msgid "Add podman_tag module" msgstr "podman_tag モジュールの追加" #: ../../rst/porting_guides/porting_guide_4.rst:145 #: ../../rst/porting_guides/porting_guide_5.rst:378 -#: ../../rst/porting_guides/porting_guide_6.rst:586 +#: ../../rst/porting_guides/porting_guide_6.rst:722 msgid "Add secrets driver and driver opts support" msgstr "シークレットドライバーおよびドライバーオプションのサポートの追加" #: ../../rst/porting_guides/porting_guide_4.rst:153 #: ../../rst/porting_guides/porting_guide_5.rst:394 -#: ../../rst/porting_guides/porting_guide_6.rst:779 +#: ../../rst/porting_guides/porting_guide_6.rst:915 msgid "Deprecated nxos_snmp_community module." msgstr "nxos_snmp_community モジュールが非推奨になりました。" #: ../../rst/porting_guides/porting_guide_4.rst:154 #: ../../rst/porting_guides/porting_guide_5.rst:395 -#: ../../rst/porting_guides/porting_guide_6.rst:780 +#: ../../rst/porting_guides/porting_guide_6.rst:916 msgid "Deprecated nxos_snmp_contact module." msgstr "nxos_snmp_contact モジュールが非推奨になりました。" #: ../../rst/porting_guides/porting_guide_4.rst:155 #: ../../rst/porting_guides/porting_guide_5.rst:396 -#: ../../rst/porting_guides/porting_guide_6.rst:781 +#: ../../rst/porting_guides/porting_guide_6.rst:917 msgid "Deprecated nxos_snmp_host module." msgstr "nxos_snmp_host モジュールが非推奨になりました。" #: ../../rst/porting_guides/porting_guide_4.rst:156 #: ../../rst/porting_guides/porting_guide_5.rst:397 -#: ../../rst/porting_guides/porting_guide_6.rst:782 +#: ../../rst/porting_guides/porting_guide_6.rst:918 msgid "Deprecated nxos_snmp_location module." msgstr "nxos_snmp_location モジュールが非推奨になりました。" #: ../../rst/porting_guides/porting_guide_4.rst:157 #: ../../rst/porting_guides/porting_guide_5.rst:398 -#: ../../rst/porting_guides/porting_guide_6.rst:783 +#: ../../rst/porting_guides/porting_guide_6.rst:919 msgid "Deprecated nxos_snmp_traps module." msgstr "nxos_snmp_traps モジュールが非推奨になりました。" #: ../../rst/porting_guides/porting_guide_4.rst:158 #: ../../rst/porting_guides/porting_guide_5.rst:399 -#: ../../rst/porting_guides/porting_guide_6.rst:784 +#: ../../rst/porting_guides/porting_guide_6.rst:920 msgid "Deprecated nxos_snmp_user module." msgstr "nxos_snmp_user モジュールが非推奨になりました。" @@ -7617,14 +7688,16 @@ msgstr "nxos_snmp_user モジュールが非推奨になりました。" #: ../../rst/porting_guides/porting_guide_4.rst:673 #: ../../rst/porting_guides/porting_guide_5.rst:413 #: ../../rst/porting_guides/porting_guide_5.rst:1022 -#: ../../rst/porting_guides/porting_guide_6.rst:619 -#: ../../rst/porting_guides/porting_guide_6.rst:821 +#: ../../rst/porting_guides/porting_guide_6.rst:755 +#: ../../rst/porting_guides/porting_guide_6.rst:957 +#: ../../rst/porting_guides/porting_guide_7.rst:671 +#: ../../rst/porting_guides/porting_guide_7.rst:912 msgid "junipernetworks.junos" msgstr "junipernetworks.junos" #: ../../rst/porting_guides/porting_guide_4.rst:163 #: ../../rst/porting_guides/porting_guide_5.rst:415 -#: ../../rst/porting_guides/porting_guide_6.rst:823 +#: ../../rst/porting_guides/porting_guide_6.rst:959 msgid "'router_id' options is deprecated from junos_ospf_interfaces, junos_ospfv2 and junos_ospfv3 resuorce module." msgstr "junos_ospf_interfaces、junos_ospfv2、および junos_ospfv3リソースモジュールの'router_id' オプションが非推奨になりました。" @@ -7647,9 +7720,11 @@ msgstr "purefb_lag - 応答の mac_address フィールドに値が反映され #: ../../rst/porting_guides/porting_guide_5.rst:143 #: ../../rst/porting_guides/porting_guide_5.rst:223 #: ../../rst/porting_guides/porting_guide_5.rst:746 -#: ../../rst/porting_guides/porting_guide_6.rst:131 -#: ../../rst/porting_guides/porting_guide_6.rst:602 -#: ../../rst/porting_guides/porting_guide_7.rst:278 +#: ../../rst/porting_guides/porting_guide_6.rst:142 +#: ../../rst/porting_guides/porting_guide_6.rst:267 +#: ../../rst/porting_guides/porting_guide_6.rst:738 +#: ../../rst/porting_guides/porting_guide_7.rst:253 +#: ../../rst/porting_guides/porting_guide_7.rst:657 msgid "fortinet.fortios" msgstr "fortinet.fortios" @@ -7683,13 +7758,12 @@ msgid "Porting Guide for v4.8.0" msgstr "v4.8.0 の移植ガイド" #: ../../rst/porting_guides/porting_guide_4.rst:197 -#: ../../rst/porting_guides/porting_guide_5.rst:575 -msgid "all roles now reference other roles and modules via their fully qualified collection names, which makes Ansible 2.10 minimum supported version for roles (See https://github.com/ansible-collections/community.zabbix/pull/477)." -msgstr "すべてのロールは、完全修飾コレクション名で他のロールおよびモジュールを参照するようになりました。これにより、ロールのAnsible 2.10 最低サポートバージョンを作成します(https://github.com/ansible-collections/community.zabbix/pull/477を参照してください)。" +msgid "all roles now reference other roles and modules through their fully qualified collection names, which makes Ansible 2.10 minimum supported version for roles (see `issue 477 `_)." +msgstr "すべてのロールは、完全修飾コレクション名で他のロールおよびモジュールを参照するようになりました。これにより、ロールのAnsible 2.10 最低サポートバージョンを作成します (`issue 477 `_ を参照してください)。" #: ../../rst/porting_guides/porting_guide_4.rst:203 #: ../../rst/porting_guides/porting_guide_5.rst:943 -#: ../../rst/porting_guides/porting_guide_7.rst:340 +#: ../../rst/porting_guides/porting_guide_7.rst:781 msgid "community.azure" msgstr "community.azure" @@ -7744,10 +7818,13 @@ msgstr "誤ってリポジトリーが 2.0.0 にタグ付けされました。 #: ../../rst/porting_guides/porting_guide_5.rst:248 #: ../../rst/porting_guides/porting_guide_5.rst:292 #: ../../rst/porting_guides/porting_guide_5.rst:908 -#: ../../rst/porting_guides/porting_guide_6.rst:217 -#: ../../rst/porting_guides/porting_guide_6.rst:470 -#: ../../rst/porting_guides/porting_guide_6.rst:771 -#: ../../rst/porting_guides/porting_guide_7.rst:468 +#: ../../rst/porting_guides/porting_guide_6.rst:353 +#: ../../rst/porting_guides/porting_guide_6.rst:606 +#: ../../rst/porting_guides/porting_guide_6.rst:907 +#: ../../rst/porting_guides/porting_guide_7.rst:164 +#: ../../rst/porting_guides/porting_guide_7.rst:561 +#: ../../rst/porting_guides/porting_guide_7.rst:736 +#: ../../rst/porting_guides/porting_guide_7.rst:992 msgid "cisco.ios" msgstr "cisco.ios" @@ -7842,7 +7919,9 @@ msgstr "v4.4.0 の移植ガイド" #: ../../rst/porting_guides/porting_guide_4.rst:325 #: ../../rst/porting_guides/porting_guide_4.rst:635 #: ../../rst/porting_guides/porting_guide_5.rst:915 -#: ../../rst/porting_guides/porting_guide_6.rst:477 +#: ../../rst/porting_guides/porting_guide_6.rst:613 +#: ../../rst/porting_guides/porting_guide_7.rst:567 +#: ../../rst/porting_guides/porting_guide_7.rst:745 msgid "cisco.iosxr" msgstr "cisco.iosxr" @@ -7870,7 +7949,9 @@ msgstr "junos_logging モジュールが非推奨となり、'2023-08-01' の後 #: ../../rst/porting_guides/porting_guide_4.rst:696 #: ../../rst/porting_guides/porting_guide_5.rst:284 #: ../../rst/porting_guides/porting_guide_5.rst:1029 -#: ../../rst/porting_guides/porting_guide_6.rst:637 +#: ../../rst/porting_guides/porting_guide_6.rst:773 +#: ../../rst/porting_guides/porting_guide_7.rst:676 +#: ../../rst/porting_guides/porting_guide_7.rst:925 msgid "vyos.vyos" msgstr "vyos.vyos" @@ -8012,7 +8093,7 @@ msgstr "モニター API のスキーマの統一" #: ../../rst/porting_guides/porting_guide_4.rst:467 #: ../../rst/porting_guides/porting_guide_5.rst:787 -msgid "packages is now a required Python package and gets installed via Ansible 2.10+." +msgid "packages is now a required Python package and gets installed through Ansible 2.10+." msgstr "パッケージが必要な Python パッケージになり、Ansible 2.10 以降からインストールされます。" #: ../../rst/porting_guides/porting_guide_4.rst:475 @@ -8129,21 +8210,23 @@ msgstr "v4.0.0 の移植ガイド" #: ../../rst/porting_guides/porting_guide_5.rst:597 #: ../../rst/porting_guides/porting_guide_5.rst:803 #: ../../rst/porting_guides/porting_guide_5.rst:875 -#: ../../rst/porting_guides/porting_guide_6.rst:258 -#: ../../rst/porting_guides/porting_guide_6.rst:298 -#: ../../rst/porting_guides/porting_guide_6.rst:435 -#: ../../rst/porting_guides/porting_guide_6.rst:657 -#: ../../rst/porting_guides/porting_guide_6.rst:758 -#: ../../rst/porting_guides/porting_guide_7.rst:131 -#: ../../rst/porting_guides/porting_guide_7.rst:198 -#: ../../rst/porting_guides/porting_guide_7.rst:298 -#: ../../rst/porting_guides/porting_guide_7.rst:434 +#: ../../rst/porting_guides/porting_guide_6.rst:394 +#: ../../rst/porting_guides/porting_guide_6.rst:434 +#: ../../rst/porting_guides/porting_guide_6.rst:571 +#: ../../rst/porting_guides/porting_guide_6.rst:793 +#: ../../rst/porting_guides/porting_guide_6.rst:894 +#: ../../rst/porting_guides/porting_guide_7.rst:108 +#: ../../rst/porting_guides/porting_guide_7.rst:132 +#: ../../rst/porting_guides/porting_guide_7.rst:309 +#: ../../rst/porting_guides/porting_guide_7.rst:473 +#: ../../rst/porting_guides/porting_guide_7.rst:689 +#: ../../rst/porting_guides/porting_guide_7.rst:944 msgid "Ansible-core" msgstr "Ansible-core" #: ../../rst/porting_guides/porting_guide_4.rst:525 -msgid "ansible-test - The ``pylint`` sanity test no longer correctly detects \"bad\" variable names for non-constants. See https://github.com/PyCQA/pylint/issues/3701 for additional details." -msgstr "ansible-test - ``pylint`` 健全性テストは、非制約のため\"bad\" 変数名を正しく検出しなくなりました。詳細は、https://github.com/PyCQA/pylint/issues/3701 を参照してください。" +msgid "ansible-test - The ``pylint`` sanity test no longer correctly detects \"bad\" variable names for non-constants. See `issue 3701 `_ for additional details." +msgstr "ansible-test - ``pylint`` 健全性テストは、非制約のため\"bad\" 変数名を正しく検出しなくなりました。詳細は、`issue 3701 ` を参照してください。" #: ../../rst/porting_guides/porting_guide_4.rst:538 msgid "Modules for monitor API are not versioned yet." @@ -8165,6 +8248,10 @@ msgstr "ツリー内の依存関係リゾルバーが、pip> = 20.3がデフォ msgid "The ``meta`` module now supports tags for user-defined tasks. Internal ``meta`` tasks continue to always run. (https://github.com/ansible/ansible/issues/64558)" msgstr "``meta`` モジュールは、ユーザー定義のタスクのタグをサポートするようになりました。内部 ``meta`` タスクは常に実行されます(https://github.com/ansible/ansible/issues/64558)。" +#: ../../rst/porting_guides/porting_guide_4.rst:550 +msgid "ansible-galaxy login command has been removed (see `issue 71560 `_)" +msgstr "ansible-galaxy login コマンドが削除されました (`issue 71560 `_ を参照)。" + #: ../../rst/porting_guides/porting_guide_4.rst:555 msgid "Removed vendored ipaddress package from collection. If you use ansible_collections.ansible.netcommon.plugins.module_utils.compat.ipaddress in your collection, you will need to change this to import ipaddress instead. If your content using ipaddress supports Python 2.7, you will additionally need to make sure that the user has the ipaddress package installed. Please refer to https://docs.ansible.com/ansible/latest/dev_guide/developing_modules_best_practices.html#importing-and-using-shared-code to see how to safely import external packages that may be missing from the user's system A backport of ipaddress for Python 2.7 is available at https://pypi.org/project/ipaddress/" msgstr "コレクションからベンダー化された ipaddress パッケージが削除されました。コレクションのansible_collections.ansible.netcommon.plugins.module_utils.compat.ipaddress を使用する場合は、代わりに ipaddress をインポートするためにこれを変更する必要があります。ipaddress を使用するコンテンツが Python 2.7 に対応している場合は、さらにユーザーが ipaddress パッケージがインストールされていることを確認する必要があります。ユーザーのシステム A に欠落している可能性のある外部パッケージを安全にインポートする方法については、https://docs.ansible.com/ansible/latest/dev_guide/developing_modules_best_practices.html#importing-and-using-shared-codeを参照してください。Python 2.7用のipaddressのバックポートは、https://pypi.org/project/ipaddress/で利用できます。" @@ -8248,8 +8335,9 @@ msgstr "netconf_config から非推奨の接続引数を削除" #: ../../rst/porting_guides/porting_guide_4.rst:618 #: ../../rst/porting_guides/porting_guide_5.rst:493 #: ../../rst/porting_guides/porting_guide_5.rst:903 -#: ../../rst/porting_guides/porting_guide_6.rst:331 -#: ../../rst/porting_guides/porting_guide_6.rst:452 +#: ../../rst/porting_guides/porting_guide_6.rst:467 +#: ../../rst/porting_guides/porting_guide_6.rst:588 +#: ../../rst/porting_guides/porting_guide_7.rst:527 msgid "arista.eos" msgstr "arista.eos" @@ -8258,7 +8346,8 @@ msgid "Requires ansible.netcommon v2.0.0+ to support `ansible_network_single_use msgstr "`ansible_network_single_user_mode` および `ansible_network_import_modules` をサポートするには、ansible.netcommon v2.0.0 以降が必要です。詳細は、ansible.netcommon の `changelog `_ を参照してください。" #: ../../rst/porting_guides/porting_guide_4.rst:623 -#: ../../rst/porting_guides/porting_guide_6.rst:464 +#: ../../rst/porting_guides/porting_guide_6.rst:600 +#: ../../rst/porting_guides/porting_guide_7.rst:550 msgid "cisco.asa" msgstr "cisco.asa" @@ -8773,7 +8862,7 @@ msgstr "Ansible 5 は Ansible-core 2.12 をベースにしています。" #: ../../rst/porting_guides/porting_guide_5.rst:18 msgid "We suggest you read this page along with the `Ansible 5 Changelog `_ to understand what updates you may need to make." -msgstr "必要な更新について理解するには、このページと併せて「`Ansible 5 Changelog `_」を参照してください。" +msgstr "必要な更新について理解するには、このページと併せて「`Ansible 5 Changelog `_」を参照することをお勧めします。" #: ../../rst/porting_guides/porting_guide_5.rst:24 #: ../../rst/porting_guides/porting_guide_core_2.12.rst:22 @@ -8861,9 +8950,8 @@ msgid "Set theory filters (``intersect``, ``difference``, ``symmetric_difference msgstr "理論フィルター(``intersect``、``difference``、``symmetric_difference``、および ``union``)の設定は、大文字と小文字が区別されるようになりました。明示的な ``case_sensitive=False`` を使用して以前の動作を維持します。2.10 より前の Jinja2 で、フィルターはすでに大文字と小文字を区別しています。" #: ../../rst/porting_guides/porting_guide_5.rst:117 -#: ../../rst/porting_guides/porting_guide_core_2.12.rst:115 -msgid "``password_hash``` now uses ``passlib`` defaults when an option is unspecified, e.g. ``bcrypt_sha256`` now default to the \"2b\" format and if the \"2a\" format is required it must be specified." -msgstr "``password_hash``` now uses ``passlib`` defaults when an option is unspecified, e.g. ``bcrypt_sha256`` はデフォルトで「2b」フォーマットになり、「2a」フォーマットが必要な場合は指定する必要があります。" +msgid "``password_hash``` now uses ``passlib`` defaults when an option is unspecified, for example ``bcrypt_sha256``, now default to the \"2b\" format and if the \"2a\" format is required it must be specified." +msgstr "``password_hash``` now uses ``passlib`` defaults when an option is unspecified, for example ``bcrypt_sha256`` はデフォルトで「2b」フォーマットになり、「2a」フォーマットが必要な場合は指定する必要があります。" #: ../../rst/porting_guides/porting_guide_5.rst:131 msgid "Porting Guide for v5.9.0" @@ -8873,52 +8961,55 @@ msgstr "v5.9.0 の移植ガイド" #: ../../rst/porting_guides/porting_guide_5.rst:164 #: ../../rst/porting_guides/porting_guide_5.rst:240 #: ../../rst/porting_guides/porting_guide_5.rst:429 -#: ../../rst/porting_guides/porting_guide_6.rst:106 -#: ../../rst/porting_guides/porting_guide_6.rst:146 -#: ../../rst/porting_guides/porting_guide_6.rst:178 -#: ../../rst/porting_guides/porting_guide_6.rst:247 +#: ../../rst/porting_guides/porting_guide_6.rst:158 +#: ../../rst/porting_guides/porting_guide_6.rst:242 +#: ../../rst/porting_guides/porting_guide_6.rst:282 +#: ../../rst/porting_guides/porting_guide_6.rst:314 +#: ../../rst/porting_guides/porting_guide_6.rst:383 #: ../../rst/porting_guides/porting_guide_7.rst:99 +#: ../../rst/porting_guides/porting_guide_7.rst:218 +#: ../../rst/porting_guides/porting_guide_7.rst:269 msgid "Added Collections" msgstr "コレクションの追加" #: ../../rst/porting_guides/porting_guide_5.rst:136 -#: ../../rst/porting_guides/porting_guide_6.rst:249 +#: ../../rst/porting_guides/porting_guide_6.rst:385 msgid "cisco.dnac (version 6.4.0)" msgstr "cisco.dnac (version 6.4.0)" #: ../../rst/porting_guides/porting_guide_5.rst:137 -#: ../../rst/porting_guides/porting_guide_6.rst:251 +#: ../../rst/porting_guides/porting_guide_6.rst:387 msgid "community.sap_libs (version 1.1.0)" msgstr "community.sap_libs (version 1.1.0)" #: ../../rst/porting_guides/porting_guide_5.rst:145 #: ../../rst/porting_guides/porting_guide_5.rst:225 -#: ../../rst/porting_guides/porting_guide_6.rst:604 +#: ../../rst/porting_guides/porting_guide_6.rst:740 msgid "Support FortiOS 7.0.2, 7.0.3, 7.0.4, 7.0.5." msgstr "FortiOS 7.0.2、7.0.3、7.0.4、7.0.5 をサポートします。" #: ../../rst/porting_guides/porting_guide_5.rst:150 -#: ../../rst/porting_guides/porting_guide_6.rst:755 +#: ../../rst/porting_guides/porting_guide_6.rst:891 msgid "The collection ``community.sap`` has been renamed to ``community.sap_libs``. For now both collections are included in Ansible. The content in ``community.sap`` will be replaced with deprecated redirects to the new collection in Ansible 7.0.0, and these redirects will eventually be removed from Ansible. Please update your FQCNs for ``community.sap``." msgstr "コレクション ``community.sap`` の名前が ``community.sap_libs`` に変更されました。両方のコレクションが Ansible に含まれています。``community.sap`` の内容は、Ansible 7.0.0 の新しいコレクションへの非推奨リダイレクトに置き換えられます。これらのリダイレクトは、最終的に Ansible から削除されます。``community.sap`` の FQCN を更新してください。" #: ../../rst/porting_guides/porting_guide_5.rst:155 -#: ../../rst/porting_guides/porting_guide_6.rst:789 +#: ../../rst/porting_guides/porting_guide_6.rst:925 msgid "Support for Ansible 2.9 and ansible-base 2.10 is deprecated, and will be removed in the next major release (community.docker 3.0.0). Some modules might still work with these versions afterwards, but we will no longer keep compatibility code that was needed to support them (https://github.com/ansible-collections/community.docker/pull/361)." msgstr "Ansible 2.9 および ansible-base 2.10 のサポートは非推奨になり、次のメジャーリリース (community.docker 3.0.0) で削除されます。モジュールによっては、その後もこれらのバージョンで引き続き動作する可能性がありますが、サポートするために必要な互換性コードは保持されなくなります (https://github.com/ansible-collections/community.docker/pull/361)。" #: ../../rst/porting_guides/porting_guide_5.rst:156 -#: ../../rst/porting_guides/porting_guide_6.rst:790 +#: ../../rst/porting_guides/porting_guide_6.rst:926 msgid "The dependency on docker-compose for Execution Environments is deprecated and will be removed in community.docker 3.0.0. The `Python docker-compose library `__ is unmaintained and can cause dependency issues. You can manually still install it in an Execution Environment when needed (https://github.com/ansible-collections/community.docker/pull/373)." msgstr "実行環境の docker-compose への依存は非推奨になり、community.docker3.0.0 で削除されます。`Python docker-compose library `__ は保守されておらず、依存関係の問題を引き起こす可能性があります。必要に応じて、実行環境に手動でインストールすることもできます (https://github.com/ansible-collections/community.docker/pull/373)。" #: ../../rst/porting_guides/porting_guide_5.rst:157 -#: ../../rst/porting_guides/porting_guide_6.rst:791 +#: ../../rst/porting_guides/porting_guide_6.rst:927 msgid "Various modules - the default of ``tls_hostname`` that was supposed to be removed in community.docker 2.0.0 will now be removed in version 3.0.0 (https://github.com/ansible-collections/community.docker/pull/362)." msgstr "さまざまなモジュール - community.docker 2.0.0 で削除される予定であった ``tls_hostname`` のデフォルトが、バージョン 3.0.0 (https://github.com/ansible-collections/community.docker/pull/362) で削除されます。" #: ../../rst/porting_guides/porting_guide_5.rst:158 -#: ../../rst/porting_guides/porting_guide_6.rst:792 +#: ../../rst/porting_guides/porting_guide_6.rst:928 msgid "docker_stack - the return values ``out`` and ``err`` that were supposed to be removed in community.docker 2.0.0 will now be removed in version 3.0.0 (https://github.com/ansible-collections/community.docker/pull/362)." msgstr "docker_stack - community.docker 2.0.0 で削除される予定であった戻り値 ``out`` および ``err`` が、バージョン 3.0.0 (https://github.com/ansible-collections/community.docker/pull/362) で削除されます。" @@ -8927,9 +9018,9 @@ msgid "Porting Guide for v5.8.0" msgstr "v5.8.0 の移植ガイド" #: ../../rst/porting_guides/porting_guide_5.rst:166 -#: ../../rst/porting_guides/porting_guide_6.rst:252 +#: ../../rst/porting_guides/porting_guide_6.rst:388 msgid "vmware.vmware_rest (version 2.1.5)" -msgstr "vmware.vmware_rest (version 2.1.5)" +msgstr "vmware.vmware_rest (バージョン 2.1.5)" #: ../../rst/porting_guides/porting_guide_5.rst:172 #: ../../rst/porting_guides/porting_guide_5.rst:205 @@ -8949,22 +9040,22 @@ msgid "vcenter_vm_storage_policy - the module has a new mandatory paramter: ``vm msgstr "vcenter_vm_storage_policy - モジュールには、必須のパラメーターが新たに追加されました (``vm_home``)。" #: ../../rst/porting_guides/porting_guide_5.rst:184 -#: ../../rst/porting_guides/porting_guide_6.rst:561 +#: ../../rst/porting_guides/porting_guide_6.rst:697 msgid "The community.mysql collection no longer supports ``Ansible 2.9`` and ``ansible-base 2.10``. While we take no active measures to prevent usage and there are no plans to introduce incompatible code to the modules, we will stop testing against ``Ansible 2.9`` and ``ansible-base 2.10``. Both will very soon be End of Life and if you are still using them, you should consider upgrading to the ``latest Ansible / ansible-core 2.11 or later`` as soon as possible (https://github.com/ansible-collections/community.mysql/pull/343)." msgstr "community.mysql コレクションは ``Ansible 2.9`` および ``ansible-base 2.10`` をサポートしなくなりました。使用を防ぐための積極的な措置は講じておらず、モジュールに互換性のないコードを導入する予定はありませんが、``Ansible 2.9`` および ``ansible-base 2.10`` に対するテストは停止します。どちらも間もなくライフサイクル終了日に達します。使用を継続している場合は、できるだけ早く ``latest Ansible / ansible-core 2.11 or later`` へのアップグレードを検討する必要があります (https://github.com/ansible-collections/community.mysql/pull/343)。" #: ../../rst/porting_guides/porting_guide_5.rst:189 -#: ../../rst/porting_guides/porting_guide_6.rst:571 +#: ../../rst/porting_guides/porting_guide_6.rst:707 msgid "The community.postgresql collection no longer supports ``Ansible 2.9`` and ``ansible-base 2.10``. While we take no active measures to prevent usage and there are no plans to introduce incompatible code to the modules, we will stop testing against ``Ansible 2.9`` and ``ansible-base 2.10``. Both will very soon be End of Life and if you are still using them, you should consider upgrading to the ``latest Ansible / ansible-core 2.11 or later`` as soon as possible (https://github.com/ansible-collections/community.postgresql/pull/245)." msgstr "community.postgresql コレクションは ``Ansible 2.9`` および ``ansible-base 2.10`` をサポートしなくなりました。使用を防ぐための積極的な措置は講じておらず、モジュールに互換性のないコードを導入する予定はありませんが、``Ansible 2.9`` および ``ansible-base 2.10`` に対するテストは停止します。どちらも間もなくライフサイクル終了日に達します。使用を継続している場合は、できるだけ早く ``latest Ansible / ansible-core 2.11 or later`` へのアップグレードを検討する必要があります (https://github.com/ansible-collections/community.postgresql/pull/245)。" #: ../../rst/porting_guides/porting_guide_5.rst:197 -#: ../../rst/porting_guides/porting_guide_6.rst:812 +#: ../../rst/porting_guides/porting_guide_6.rst:948 msgid "token_validate options - the shared auth option ``token_validate`` will change its default from ``True`` to ``False`` in community.hashi_vault version 4.0.0. The ``vault_login`` lookup and module will keep the default value of ``True`` (https://github.com/ansible-collections/community.hashi_vault/issues/248)." msgstr "token_validate オプション - 共有認証オプション ``token_validate`` のデフォルトは、community.hashi_vault バージョン 4.0.0 で ``True`` から ``False`` に変更されます。``vault_login`` ルックアップおよびモジュールは、デフォルト値の ``True`` を保持します (https://github.com/ansible-collections/community.hashi_vault/issues/248)。" #: ../../rst/porting_guides/porting_guide_5.rst:202 -#: ../../rst/porting_guides/porting_guide_6.rst:818 +#: ../../rst/porting_guides/porting_guide_6.rst:954 msgid "Support for Ansible 2.9 and ansible-base 2.10 is deprecated, and will be removed in the next major release (community.network 4.0.0) this spring. While most content will probably still work with ansible-base 2.10, we will remove symbolic links for modules and action plugins, which will make it impossible to use them with Ansible 2.9 anymore. Please use community.network 3.x.y with Ansible 2.9 and ansible-base 2.10, as these releases will continue to support Ansible 2.9 and ansible-base 2.10 even after they are End of Life (https://github.com/ansible-community/community-topics/issues/50, https://github.com/ansible-collections/community.network/pull/382)." msgstr "Ansible 2.9 および ansible-base 2.10 のサポートは非推奨になり、今春の次のメジャーリリース (community.network 4.0.0) で削除される予定です。ほとんどのコンテンツは ansible-base 2.10 で引き続き機能すると予想されますが、モジュールおよび action プラグインのシンボリックリンクは削除され、Ansible 2.9 では使用できないようになります。 Ansible 2.9 および ansible-base 2.10 では community.network 3.x.y を使用してください。ライフサイクル終了後でも、これらのリリースは Ansible 2.9 および ansible-base 2.10 のサポートを継続するためです (https://github.com/ansible-community/community-topics/issues/50、https://github.com/ansible-collections/community.network/pull/382)。" @@ -8985,17 +9076,17 @@ msgid "Porting Guide for v5.7.0" msgstr "v5.7.0 の移植ガイド" #: ../../rst/porting_guides/porting_guide_5.rst:220 -#: ../../rst/porting_guides/porting_guide_6.rst:575 +#: ../../rst/porting_guides/porting_guide_6.rst:711 msgid "postgresql_user - the ``priv`` argument has been deprecated and will be removed in ``community.postgresql 3.0.0``. Please use the ``postgresql_privs`` module to grant/revoke privileges instead (https://github.com/ansible-collections/community.postgresql/issues/212)." msgstr "postgresql_user - ``priv`` 引数は非推奨になり、``community.postgresql 3.0.0`` で削除されます。権限を付与/取り消すには、代わりに ``postgresql_privs``を使用してください (https://github.com/ansible-collections/community.postgresql/issues/212)。" #: ../../rst/porting_guides/porting_guide_5.rst:233 -#: ../../rst/porting_guides/porting_guide_6.rst:802 +#: ../../rst/porting_guides/porting_guide_6.rst:938 msgid "nmcli - deprecate default hairpin mode for a bridge. This so we can change it to ``false`` in community.general 7.0.0, as this is also the default in ``nmcli`` (https://github.com/ansible-collections/community.general/pull/4334)." msgstr "nmcli - ブリッジのデフォルト hairpin モードを非推奨にします。したがって、community.general 7.0.0 ではこれを ``false`` に変更できます。これは、``nmcli`` のデフォルトでもあります (https://github.com/ansible-collections/community.general/pull/4334)。" #: ../../rst/porting_guides/porting_guide_5.rst:234 -#: ../../rst/porting_guides/porting_guide_6.rst:804 +#: ../../rst/porting_guides/porting_guide_6.rst:940 msgid "proxmox inventory plugin - the current default ``true`` of the ``want_proxmox_nodes_ansible_host`` option has been deprecated. The default will change to ``false`` in community.general 6.0.0. To keep the current behavior, explicitly set ``want_proxmox_nodes_ansible_host`` to ``true`` in your inventory configuration. We suggest to already switch to the new behavior by explicitly setting it to ``false``, and by using ``compose:`` to set ``ansible_host`` to the correct value. See the examples in the plugin documentation for details (https://github.com/ansible-collections/community.general/pull/4466)." msgstr "proxmox インベントリープラグイン - ``want_proxmox_nodes_ansible_host`` オプションの現在のデフォルト ``true`` が非推奨になりました。community.general 6.0.0 では、デフォルトが ``false`` に変更されます。現在の動作を維持するには、インベントリー設定で ``want_proxmox_nodes_ansible_host`` を明示的に ``true`` に設定します。明示的に ``false`` に設定し、``compose:`` を使用して ``ansible_host`` を正しい値に設定することで新しい動作に切り替えることをお勧めします。詳細は、プラグインドキュメントの例 (https://github.com/ansible-collections/community.general/pull/4466) を参照してください。" @@ -9004,12 +9095,12 @@ msgid "Porting Guide for v5.6.0" msgstr "v5.6.0 の移植ガイド" #: ../../rst/porting_guides/porting_guide_5.rst:242 -#: ../../rst/porting_guides/porting_guide_6.rst:250 +#: ../../rst/porting_guides/porting_guide_6.rst:386 msgid "community.sap (version 1.0.0)" msgstr "community.sap (バージョン 1.0.0)" #: ../../rst/porting_guides/porting_guide_5.rst:250 -#: ../../rst/porting_guides/porting_guide_6.rst:773 +#: ../../rst/porting_guides/porting_guide_6.rst:909 msgid "Deprecates lldp module." msgstr "lldp モジュールが非推奨になります。" @@ -9018,17 +9109,17 @@ msgid "Porting Guide for v5.5.0" msgstr "v5.5.0 の移植ガイド" #: ../../rst/porting_guides/porting_guide_5.rst:261 -#: ../../rst/porting_guides/porting_guide_6.rst:270 +#: ../../rst/porting_guides/porting_guide_6.rst:406 msgid "pacman - ``update_cache`` cannot differentiate between up to date and outdated package lists and will report ``changed`` in both situations (https://github.com/ansible-collections/community.general/pull/4318)." msgstr "pacman - ``update_cache`` は最新のパッケージ一覧と古いパッケージ一覧を区別できず、両方の状況で ``changed`` を報告します(https://github.com/ansible-collections/community.general/pull/4318)。" #: ../../rst/porting_guides/porting_guide_5.rst:262 -#: ../../rst/porting_guides/porting_guide_6.rst:271 +#: ../../rst/porting_guides/porting_guide_6.rst:407 msgid "pacman - binaries specified in the ``executable`` parameter must support ``--print-format`` in order to be used by this module. In particular, AUR helper ``yay`` is known not to currently support it (https://github.com/ansible-collections/community.general/pull/4312)." msgstr "pacman - このモジュールで使用するためには、``executable`` パラメーターで指定されたバイナリーは ``--print-format`` をサポートする必要があります。特に、AUR ヘルパー ``yay`` は現在サポートしていないことが知られています(https://github.com/ansible-collections/community.general/pull/4312)。" #: ../../rst/porting_guides/porting_guide_5.rst:270 -#: ../../rst/porting_guides/porting_guide_6.rst:803 +#: ../../rst/porting_guides/porting_guide_6.rst:939 msgid "pacman - from community.general 5.0.0 on, the ``changed`` status of ``update_cache`` will no longer be ignored if ``name`` or ``upgrade`` is specified. To keep the old behavior, add something like ``register: result`` and ``changed_when: result.packages | length > 0`` to your task (https://github.com/ansible-collections/community.general/pull/4329)." msgstr "pacman - community.general 5.0.0 から、``name`` または ``upgrade`` が指定されている場合は ``update_cache`` の``changed``ステータスは無視されなくなりました。以前の動作を維持するには、``register: result`` および``changed_when: result.packages | length > 0``をタスクに追加します(https://github.com/ansible-collections/community.general/pull/4329)。" @@ -9037,24 +9128,25 @@ msgid "Porting Guide for v5.4.0" msgstr "v5.4.0 の移植ガイド" #: ../../rst/porting_guides/porting_guide_5.rst:279 -#: ../../rst/porting_guides/porting_guide_6.rst:202 -#: ../../rst/porting_guides/porting_guide_6.rst:459 -#: ../../rst/porting_guides/porting_guide_7.rst:217 +#: ../../rst/porting_guides/porting_guide_6.rst:338 +#: ../../rst/porting_guides/porting_guide_6.rst:595 +#: ../../rst/porting_guides/porting_guide_7.rst:146 +#: ../../rst/porting_guides/porting_guide_7.rst:159 +#: ../../rst/porting_guides/porting_guide_7.rst:544 msgid "chocolatey.chocolatey" msgstr "chocolatey.chocolatey" #: ../../rst/porting_guides/porting_guide_5.rst:281 -#: ../../rst/porting_guides/porting_guide_6.rst:461 +#: ../../rst/porting_guides/porting_guide_6.rst:597 msgid "win_chocolatey - Added choco_args option to pass additional arguments directly to Chocolatey." msgstr "win_chocolatey - 追加の引数を直接 Chocolatey に渡すために choco_args オプションが追加されました。" #: ../../rst/porting_guides/porting_guide_5.rst:286 -#: ../../rst/porting_guides/porting_guide_6.rst:639 +#: ../../rst/porting_guides/porting_guide_6.rst:775 msgid "Add 'pool' as value to server key in ntp_global." msgstr "ntp_global のサーバーキーに「pool」が値として追加されました。" #: ../../rst/porting_guides/porting_guide_5.rst:294 -#: ../../rst/porting_guides/porting_guide_6.rst:774 msgid "`ios_acls` - Deprecated fragment attribute added boolean alternate as enable_fragment." msgstr "`ios_acls` - 非推奨のフラグメント属性により、enable_fragment としてブール値代替が追加されました。" @@ -9063,17 +9155,17 @@ msgid "Porting Guide for v5.3.0" msgstr "v5.3.0 の移植ガイド" #: ../../rst/porting_guides/porting_guide_5.rst:305 -#: ../../rst/porting_guides/porting_guide_6.rst:598 +#: ../../rst/porting_guides/porting_guide_6.rst:734 msgid "bigip_device_info - pagination logic has also been added to help with api stability." msgstr "bigip_device_info - API の安定性に役立つページネーションロジックも追加されました。" #: ../../rst/porting_guides/porting_guide_5.rst:306 -#: ../../rst/porting_guides/porting_guide_6.rst:599 +#: ../../rst/porting_guides/porting_guide_6.rst:735 msgid "bigip_device_info - the module no longer gathers information from all partitions on device. This change will stabalize the module by gathering resources only from the given partition and prevent the module from gathering way too much information that might result in crashing." msgstr "bigip_device_info - モジュールは、デバイスのすべてのパーティションから情報を収集しなくなりました。この変更により、指定のパーティションからのみリソースを収集し、モジュールが大量の情報を収集してクラッシュするのを防ぐことで、モジュールを安定させます。" #: ../../rst/porting_guides/porting_guide_5.rst:314 -#: ../../rst/porting_guides/porting_guide_6.rst:800 +#: ../../rst/porting_guides/porting_guide_6.rst:936 msgid "mail callback plugin - not specifying ``sender`` is deprecated and will be disallowed in community.general 6.0.0 (https://github.com/ansible-collections/community.general/pull/4140)." msgstr "メールコールバックプラグイン - ``sender`` を指定しない設定は非推奨になり、community.general 6.0.0 では許可されません(https://github.com/ansible-collections/community.general/pull/4140)。" @@ -9083,76 +9175,76 @@ msgstr "v5.2.0 の移植ガイド" #: ../../rst/porting_guides/porting_guide_5.rst:325 #: ../../rst/porting_guides/porting_guide_5.rst:364 -#: ../../rst/porting_guides/porting_guide_6.rst:188 -#: ../../rst/porting_guides/porting_guide_6.rst:276 -#: ../../rst/porting_guides/porting_guide_7.rst:112 +#: ../../rst/porting_guides/porting_guide_6.rst:324 +#: ../../rst/porting_guides/porting_guide_6.rst:412 +#: ../../rst/porting_guides/porting_guide_7.rst:288 msgid "idrac_user - Issue(192043) The module may error out with the message ``unable to perform the import or export operation because there are pending attribute changes or a configuration job is in progress``. Wait for the job to complete and run the task again." msgstr "idrac_user - Issue(192043)。モジュールは ``unable to perform the import or export operation because there are pending attribute changes or a configuration job is in progress`` メッセージでエラーが発生する可能性があります。ジョブが完了するまで待機し、タスクを再度実行します。" #: ../../rst/porting_guides/porting_guide_5.rst:326 #: ../../rst/porting_guides/porting_guide_5.rst:365 -#: ../../rst/porting_guides/porting_guide_6.rst:189 -#: ../../rst/porting_guides/porting_guide_6.rst:277 -#: ../../rst/porting_guides/porting_guide_7.rst:113 +#: ../../rst/porting_guides/porting_guide_6.rst:325 +#: ../../rst/porting_guides/porting_guide_6.rst:413 +#: ../../rst/porting_guides/porting_guide_7.rst:289 msgid "ome_application_alerts_smtp - Issue(212310) - The module does not provide a proper error message if the destination_address is more than 255 characters." msgstr "ome_application_alerts_smtp - Issue(212310)。destination_address が 255 文字を超える場合に、モジュールは適切なエラーメッセージを提供しません。" #: ../../rst/porting_guides/porting_guide_5.rst:327 #: ../../rst/porting_guides/porting_guide_5.rst:366 -#: ../../rst/porting_guides/porting_guide_6.rst:190 -#: ../../rst/porting_guides/porting_guide_6.rst:278 -#: ../../rst/porting_guides/porting_guide_7.rst:114 +#: ../../rst/porting_guides/porting_guide_6.rst:326 +#: ../../rst/porting_guides/porting_guide_6.rst:414 +#: ../../rst/porting_guides/porting_guide_7.rst:290 msgid "ome_application_alerts_syslog - Issue(215374) - The module does not provide a proper error message if the destination_address is more than 255 characters." msgstr "ome_application_alerts_syslog - Issue(215374)。destination_address が 255 文字を超える場合に、モジュールは適切なエラーメッセージを提供しません。" #: ../../rst/porting_guides/porting_guide_5.rst:328 -#: ../../rst/porting_guides/porting_guide_6.rst:191 -#: ../../rst/porting_guides/porting_guide_6.rst:280 -#: ../../rst/porting_guides/porting_guide_7.rst:115 +#: ../../rst/porting_guides/porting_guide_6.rst:327 +#: ../../rst/porting_guides/porting_guide_6.rst:416 +#: ../../rst/porting_guides/porting_guide_7.rst:291 msgid "ome_device_local_access_configuration - Issue(215035) - The module reports ``Successfully updated the local access setting`` if an unsupported value is provided for the parameter timeout_limit. However, this value is not actually applied on OpenManage Enterprise Modular." msgstr "ome_device_local_access_configuration - Issue(215035)。パラメーター timeout_limit にサポートされていない値が指定されている場合に、モジュールは ``Successfully updated the local access setting`` を報告します。ただし、この値は OpenManage Enterprise Modular では実際には適用されません。" #: ../../rst/porting_guides/porting_guide_5.rst:329 -#: ../../rst/porting_guides/porting_guide_6.rst:192 -#: ../../rst/porting_guides/porting_guide_6.rst:281 -#: ../../rst/porting_guides/porting_guide_7.rst:116 +#: ../../rst/porting_guides/porting_guide_6.rst:328 +#: ../../rst/porting_guides/porting_guide_6.rst:417 +#: ../../rst/porting_guides/porting_guide_7.rst:292 msgid "ome_device_local_access_configuration - Issue(217865) - The module does not display a proper error message if an unsupported value is provided for the user_defined and lcd_language parameters." msgstr "ome_device_local_access_configuration - Issue(217865)。user_defined および lcd_language パラメーターにサポートされていない値を指定すると、モジュールは適切なエラーメッセージを表示しません。" #: ../../rst/porting_guides/porting_guide_5.rst:330 #: ../../rst/porting_guides/porting_guide_5.rst:367 -#: ../../rst/porting_guides/porting_guide_6.rst:193 -#: ../../rst/porting_guides/porting_guide_6.rst:282 -#: ../../rst/porting_guides/porting_guide_7.rst:117 +#: ../../rst/porting_guides/porting_guide_6.rst:329 +#: ../../rst/porting_guides/porting_guide_6.rst:418 +#: ../../rst/porting_guides/porting_guide_7.rst:293 msgid "ome_device_network_services - Issue(212681) - The module does not provide a proper error message if unsupported values are provided for the parameters- port_number, community_name, max_sessions, max_auth_retries, and idle_timeout." msgstr "ome_device_network_services - Issue(212681)。パラメーター port_number、community_name、max_sessions、max_auth_retries、および idle_timeout にサポートされていない値を指定すると、このモジュールは適切なエラーメッセージを提供しません。" #: ../../rst/porting_guides/porting_guide_5.rst:331 #: ../../rst/porting_guides/porting_guide_5.rst:368 -#: ../../rst/porting_guides/porting_guide_6.rst:284 +#: ../../rst/porting_guides/porting_guide_6.rst:420 msgid "ome_device_power_settings - Issue(212679) - The module errors out with the following message if the value provided for the parameter ``power_cap`` is not within the supported range of 0 to 32767, ``Unable to complete the request because PowerCap does not exist or is not applicable for the resource URI.``" msgstr "ome_device_power_settings - Issue(212679)。パラメーター ``power_cap`` に指定された値がサポートされる 0 から 32767 の範囲内にない場合、モジュールは``Unable to complete the request because PowerCap does not exist or is not applicable for the resource URI.``のメッセージと共にエラーを発生します。" #: ../../rst/porting_guides/porting_guide_5.rst:332 #: ../../rst/porting_guides/porting_guide_5.rst:369 -#: ../../rst/porting_guides/porting_guide_6.rst:196 -#: ../../rst/porting_guides/porting_guide_6.rst:287 -#: ../../rst/porting_guides/porting_guide_7.rst:120 +#: ../../rst/porting_guides/porting_guide_6.rst:332 +#: ../../rst/porting_guides/porting_guide_6.rst:423 +#: ../../rst/porting_guides/porting_guide_7.rst:296 msgid "ome_smart_fabric_uplink - Issue(186024) - The module does not allow the creation of multiple uplinks of the same name even though it is supported by OpenManage Enterprise Modular. If an uplink is created using the same name as an existing uplink, the existing uplink is modified." msgstr "ome_smart_fabric_uplink - Issue(186024)。OpenManage Enterprise Modular でサポートされていても、モジュールでは同じ名前の複数のアップリンクの作成はできません。アップリンクが既存のアップリンクと同じ名前を使用して作成されると、既存のアップリンクが変更されます。" #: ../../rst/porting_guides/porting_guide_5.rst:337 -#: ../../rst/porting_guides/porting_guide_6.rst:292 +#: ../../rst/porting_guides/porting_guide_6.rst:428 msgid "purefa_admin - Once `max_login` and `lockout` have been set there is currently no way to rest these to zero except through the FlashArray GUI" msgstr "purefa_admin - `max_login` および `lockout` を設定すると、現在 FlashArray GUI 以外はゼロに戻す方法はありません。" #: ../../rst/porting_guides/porting_guide_5.rst:345 -#: ../../rst/porting_guides/porting_guide_6.rst:537 +#: ../../rst/porting_guides/porting_guide_6.rst:673 msgid "meraki_mr_radio - New module" msgstr "meraki_mr_radio - 新しいモジュール" #: ../../rst/porting_guides/porting_guide_5.rst:353 -#: ../../rst/porting_guides/porting_guide_6.rst:828 +#: ../../rst/porting_guides/porting_guide_6.rst:964 msgid "purefa_sso - Deprecated in favor of M(purefa_admin). Will be removed in Collection 2.0" msgstr "purefa_sso - M(purefa_admin)が優先されるため非推奨になりました。コレクション 2.0 で削除される予定です。" @@ -9161,22 +9253,22 @@ msgid "Porting Guide for v5.1.0" msgstr "v5.1.0 の移植ガイド" #: ../../rst/porting_guides/porting_guide_5.rst:386 -#: ../../rst/porting_guides/porting_guide_6.rst:692 +#: ../../rst/porting_guides/porting_guide_6.rst:828 msgid "the \"legacy\" integration test setup has been removed; this does not affect end users and is only relevant to contributors (https://github.com/ansible-collections/community.hashi_vault/pull/191)." msgstr "「レガシー」インテグレーションテストの設定が削除されました。これはエンドユーザーには影響しませんが、コントリビューターに関係します(https://github.com/ansible-collections/community.hashi_vault/pull/191)。" #: ../../rst/porting_guides/porting_guide_5.rst:404 -#: ../../rst/porting_guides/porting_guide_6.rst:801 +#: ../../rst/porting_guides/porting_guide_6.rst:937 msgid "module_helper module utils - deprecated the attribute ``ModuleHelper.VarDict`` (https://github.com/ansible-collections/community.general/pull/3801)." msgstr "module_helper モジュールユーティリティー - 属性``ModuleHelper.VarDict``が非推奨になりました(https://github.com/ansible-collections/community.general/pull/3801)。" #: ../../rst/porting_guides/porting_guide_5.rst:409 -#: ../../rst/porting_guides/porting_guide_6.rst:810 +#: ../../rst/porting_guides/porting_guide_6.rst:946 msgid "Support for Ansible 2.9 and ansible-base 2.10 is deprecated, and will be removed in the next major release (community.hashi_vault 3.0.0) next spring (https://github.com/ansible-community/community-topics/issues/50, https://github.com/ansible-collections/community.hashi_vault/issues/189)." msgstr "Ansible 2.9 および ansible-base 2.10 のサポートは非推奨になり、来年春の次のメジャーリリース(community.hashi_vault 3.0.0)で削除される予定です(https://github.com/ansible-community/community-topics/issues/50、https://github.com/ansible-collections/community.hashi_vault/issues/189)。" #: ../../rst/porting_guides/porting_guide_5.rst:410 -#: ../../rst/porting_guides/porting_guide_6.rst:811 +#: ../../rst/porting_guides/porting_guide_6.rst:947 msgid "aws_iam_login auth method - the ``aws_iam_login`` method has been renamed to ``aws_iam``. The old name will be removed in collection version ``3.0.0``. Until then both names will work, and a warning will be displayed when using the old name (https://github.com/ansible-collections/community.hashi_vault/pull/193)." msgstr "aws_iam_login 認証メソッド - ``aws_iam_login`` メソッドの名前が ``aws_iam`` に変更されました。古い名前はコレクションバージョン ``3.0.0`` で削除されます。それまでは両方の名前が機能し、古い名前を使用すると警告が表示されます(https://github.com/ansible-collections/community.hashi_vault/pull/193)。" @@ -9217,8 +9309,8 @@ msgid "netapp.storagegrid (version 21.7.0)" msgstr "netapp.storagegrid (バージョン 21.7.0)" #: ../../rst/porting_guides/porting_guide_5.rst:444 -msgid "ansible-test - Tab completion anywhere other than the end of the command with the new composite options will provide incorrect results. See https://github.com/kislyuk/argcomplete/issues/351 for additional details." -msgstr "ansible-test - 新しい複合オプションを使用したコマンドの終わり以外の場所でタブ補完を行うと、誤った結果が得られます。詳細は、https://github.com/kislyuk/argcomplete/issues/351 を参照してください。" +msgid "ansible-test - Tab completion anywhere other than the end of the command with the new composite options will provide incorrect results. See `issue 351 `_ for additional details." +msgstr "ansible-test - 新しい複合オプションを使用したコマンドの終わり以外の場所でタブ補完を行うと、誤った結果が得られます。詳細は、`issue 351 `_ を参照してください。" #: ../../rst/porting_guides/porting_guide_5.rst:450 msgid "ome_device_power_settings - Issue(212679) The ome_device_power_settings module errors out with the following message if the value provided for the parameter ``power_cap`` is not within the supported range of 0 to 32767, ``Unable to complete the request because PowerCap does not exist or is not applicable for the resource URI.``" @@ -9424,6 +9516,7 @@ msgstr "x509_crl - 冪等性チェックの場合、``issuer`` の順序は無 #: ../../rst/porting_guides/porting_guide_5.rst:529 #: ../../rst/porting_guides/porting_guide_5.rst:701 #: ../../rst/porting_guides/porting_guide_5.rst:957 +#: ../../rst/porting_guides/porting_guide_7.rst:171 msgid "community.dns" msgstr "community.dns" @@ -9496,6 +9589,10 @@ msgid "drop python 2 support (https://github.com/openshift/community.okd/pull/93 msgstr "Python 2 サポートが廃止されました (https://github.com/openshift/community.okd/pull/93)。" #: ../../rst/porting_guides/porting_guide_5.rst:566 +#: ../../rst/porting_guides/porting_guide_6.rst:109 +#: ../../rst/porting_guides/porting_guide_6.rst:166 +#: ../../rst/porting_guides/porting_guide_7.rst:226 +#: ../../rst/porting_guides/porting_guide_7.rst:281 msgid "community.routeros" msgstr "community.routeros" @@ -9511,6 +9608,10 @@ msgstr "api - 分割コマンドは、スペースによるシンプルな分割 msgid "command - the module now always indicates that a change happens. If this is not correct, please use ``changed_when`` to determine the correct changed status for a task (https://github.com/ansible-collections/community.routeros/pull/50)." msgstr "command - モジュールは、変更が発生したことを常に示すようになりました。これが正しくない場合は、``changed_when`` を使用してタスクの正しい変更されたステータスを判断してください(https://github.com/ansible-collections/community.routeros/pull/50)。" +#: ../../rst/porting_guides/porting_guide_5.rst:575 +msgid "all roles now reference other roles and modules through their fully qualified collection names, which makes Ansible 2.10 minimum supported version for roles (See `issue 477 `_)." +msgstr "すべてのロールは、完全修飾コレクション名で他のロールおよびモジュールを参照するようになりました。これにより、ロールのAnsible 2.10 最低サポートバージョンを作成します (`issue 477 `_ を参照してください)。" + #: ../../rst/porting_guides/porting_guide_5.rst:580 msgid "Drop python 2 support (https://github.com/ansible-collections/kubernetes.core/pull/86)." msgstr "Python 2 サポートが廃止されました(https://github.com/ansible-collections/kubernetes.core/pull/86)。" @@ -9624,7 +9725,7 @@ msgid "ec2_vpc_igw_facts - The module has been migrated from the ``community.aws msgstr "ec2_vpc_igw_facts - モジュールは ``community.aws`` コレクションから移行しました。このモジュールの完全修飾コレクション名を使用する Playbook を ``amazon.aws.ec2_vpc_igw_facts`` を使用するように更新する必要があります。" #: ../../rst/porting_guides/porting_guide_5.rst:634 -#: ../../rst/porting_guides/porting_guide_7.rst:169 +#: ../../rst/porting_guides/porting_guide_7.rst:377 msgid "ec2_vpc_route_table - The module has been migrated from the ``community.aws`` collection. Playbooks using the Fully Qualified Collection Name for this module should be updated to use ``amazon.aws.ec2_vpc_route_table``." msgstr "ec2_vpc_route_table - モジュールは ``community.aws`` コレクションから移行しました。このモジュールの完全修飾コレクション名を使用する Playbook を ``amazon.aws.ec2_vpc_route_table`` を使用するように更新する必要があります。" @@ -9633,12 +9734,12 @@ msgid "ec2_vpc_route_table_facts - The module has been migrated from the ``commu msgstr "ec2_vpc_route_table_facts - モジュールは ``community.aws`` コレクションから移行しました。このモジュールの完全修飾コレクション名を使用する Playbook を ``amazon.aws.ec2_vpc_route_table_facts`` を使用するように更新する必要があります。" #: ../../rst/porting_guides/porting_guide_5.rst:636 -#: ../../rst/porting_guides/porting_guide_7.rst:170 +#: ../../rst/porting_guides/porting_guide_7.rst:378 msgid "ec2_vpc_route_table_info - The module has been migrated from the ``community.aws`` collection. Playbooks using the Fully Qualified Collection Name for this module should be updated to use ``amazon.aws.ec2_vpc_route_table_info``." msgstr "ec2_vpc_route_table_info - モジュールは ``community.aws`` コレクションから移行しました。このモジュールの完全修飾コレクション名を使用する Playbook を ``amazon.aws.ec2_vpc_route_table_info`` を使用するように更新する必要があります。" #: ../../rst/porting_guides/porting_guide_5.rst:639 -#: ../../rst/porting_guides/porting_guide_6.rst:484 +#: ../../rst/porting_guides/porting_guide_6.rst:620 msgid "cisco.ise" msgstr "cisco.ise" @@ -10160,7 +10261,7 @@ msgstr "Ansible 6 は Ansible-core 2.13 をベースにしています。" #: ../../rst/porting_guides/porting_guide_6.rst:18 msgid "We suggest you read this page along with the `Ansible 6 Changelog `_ to understand what updates you may need to make." -msgstr "必要な更新について理解するには、このページと併せて `Ansible 6 Changelog `_ を参照してください。" +msgstr "必要な更新について理解するには、このページと併せて `Ansible 6 Changelog `_ を参照することをお勧めします。" #: ../../rst/porting_guides/porting_guide_6.rst:24 #: ../../rst/porting_guides/porting_guide_core_2.13.rst:22 @@ -10189,1229 +10290,1439 @@ msgid "``ansible.module_utils.urls.fetch_url`` will now return the captured ``HT msgstr "``ansible.module_utils.urls.fetch_url`` は、キャプチャーされた ``HTTPError`` 例外を ``r`` として返すようになりました。``HTTPError`` はオブジェクトのような応答で、モジュール作成者により多くの情報を提供できます。失敗があったかどうか判断するのに、モジュールは``r.read()`` を試みる際に``r is None`` を使用したり ``AttributeError`` をキャッチしたりする代わりに、``info['status'] >= 400``に依存する必要があります。" #: ../../rst/porting_guides/porting_guide_6.rst:103 -msgid "Porting Guide for v6.4.0" -msgstr "v6.4.0 の移植ガイド" +msgid "Porting Guide for v6.7.0" +msgstr "v6.7.0 の移植ガイド" -#: ../../rst/porting_guides/porting_guide_6.rst:108 -#: ../../rst/porting_guides/porting_guide_7.rst:102 -msgid "inspur.ispim (version 1.0.1)" -msgstr "inspur.ispim (バージョン 1.0.1)" +#: ../../rst/porting_guides/porting_guide_6.rst:111 +#: ../../rst/porting_guides/porting_guide_7.rst:228 +msgid "api_modify - when limits for entries in ``queue tree`` are defined as human readable - for example ``25M`` -, the configuration will be correctly set in ROS, but the module will indicate the item is changed on every run even when there was no change done. This is caused by the ROS API which returns the number in bytes - for example ``25000000`` (which is inconsistent with the CLI behavior). In order to mitigate that, the limits have to be defined in bytes (those will still appear as human readable in the ROS CLI) (https://github.com/ansible-collections/community.routeros/pull/131)." +msgstr "api_modify - ``queue tree`` のエントリーの制限が人間が判読できるように定義されている (``25M`` など) 場合は、設定は ROS で正しく設定されますが、モジュールは、変更が行われていなくても、実行ごとに項目が変更されたことを示します。これは、数値を``25000000`` (これは CLI の動作と矛盾しています) などのバイト単位で返す ROS API が原因です。それを軽減するために、制限をバイト単位で定義する必要があります (これらは、ROS CLI で人間が判読できるように引き続き表示されます) (https://github.com/ansible-collections/community.routeros/pull/131)。" -#: ../../rst/porting_guides/porting_guide_6.rst:109 -#: ../../rst/porting_guides/porting_guide_7.rst:104 +#: ../../rst/porting_guides/porting_guide_6.rst:112 +#: ../../rst/porting_guides/porting_guide_7.rst:229 +msgid "api_modify, api_info - ``routing ospf area``, ``routing ospf area range``, ``routing ospf instance``, ``routing ospf interface-template`` paths are not fully implemeted for ROS6 due to the significat changes between ROS6 and ROS7 (https://github.com/ansible-collections/community.routeros/pull/131)." +msgstr "api_modify, api_info - ``routing ospf area``、``routing ospf area range``、``routing ospf instance``、``routing ospf interface-template`` パスは、ROS6 と ROS7 の間で大幅な変更が行われたため、ROS6 では完全には実装されていません (https://github.com/ansible-collections/community.routeros/pull/131)。" + +#: ../../rst/porting_guides/porting_guide_6.rst:120 +#: ../../rst/porting_guides/porting_guide_7.rst:237 +msgid "meraki_mr_l7_firewall - New module" +msgstr "meraki_mr_l7_firewall - 新しいモジュール" + +#: ../../rst/porting_guides/porting_guide_6.rst:121 +#: ../../rst/porting_guides/porting_guide_7.rst:238 +msgid "meraki_webhook_payload_template - New module" +msgstr "meraki_webhook_payload_template - 新しいモジュール" + +#: ../../rst/porting_guides/porting_guide_6.rst:126 +#: ../../rst/porting_guides/porting_guide_7.rst:243 +msgid "all modules are opting away from zabbix-api and using httpapi ansible.netcommon plugin. We will support zabbix-api for backwards compatibility until next major release. See our README.md for more information about how to migrate" +msgstr "すべてのモジュールは zabbix-api を使用せず、httpapi ansible.netcommon プラグインを使用しています。次のメジャーリリースまで、後方互換性のために zabbix-api をサポートします。移行方法の詳細については、README.md を参照してください" + +#: ../../rst/porting_guides/porting_guide_6.rst:127 +#: ../../rst/porting_guides/porting_guide_7.rst:244 +msgid "zabbix_agent and zabbix_proxy roles are opting away from zabbix-api and use httpapi ansible.netcommon plugin. We will support zabbix-api for backwards compatibility until next major release. See our README.md for more information about how to migrate" +msgstr "zabbix_agent および zabbix_proxy のロールは、zabbix-api を使用せず、httpapi ansible.netcommon プラグインを使用します。次のメジャーリリースまで、後方互換性のために zabbix-api をサポートします。移行方法の詳細については、README.md を参照してください" + +#: ../../rst/porting_guides/porting_guide_6.rst:132 +#: ../../rst/porting_guides/porting_guide_7.rst:249 +msgid "New become plugin - podman_unshare" +msgstr "新しい become プラグイン - podman_unshare" + +#: ../../rst/porting_guides/porting_guide_6.rst:133 +#: ../../rst/porting_guides/porting_guide_7.rst:250 +msgid "Podman generate systemd module" +msgstr "Podman は systemd モジュールを生成します" + +#: ../../rst/porting_guides/porting_guide_6.rst:136 +#: ../../rst/porting_guides/porting_guide_6.rst:187 +#: ../../rst/porting_guides/porting_guide_7.rst:649 +msgid "fortinet.fortimanager" +msgstr "fortinet.fortimanager" + +#: ../../rst/porting_guides/porting_guide_6.rst:138 +#: ../../rst/porting_guides/porting_guide_7.rst:651 +msgid "Fix compatibility issue for ansible 2.9.x and ansible-base 2.10.x." +msgstr "ansible 2.9.x および ansible-base 2.10.x の互換性の問題を修正します。" + +#: ../../rst/porting_guides/porting_guide_6.rst:139 +#: ../../rst/porting_guides/porting_guide_7.rst:654 +msgid "support Ansible changelogs." +msgstr "Ansible changelog をサポートします。" + +#: ../../rst/porting_guides/porting_guide_6.rst:144 +#: ../../rst/porting_guides/porting_guide_7.rst:255 +msgid "Support FortiOS v7.0.6, v7.0.7, v7.0.8, v7.2.1, v7.2.2." +msgstr "FortiOS v7.0.6、v7.0.7、v7.0.8、v7.2.1、v7.2.2 をサポートします。" + +#: ../../rst/porting_guides/porting_guide_6.rst:152 +msgid "Please note that some tools, like the VScode plugin (https://github.com/ansible/vscode-ansible/issues/573), or ``ansible-doc --list --type module``, suggest to replace the correct FQCNs for modules and actions in community.general with internal names that have more than three components. For example, ``community.general.ufw`` is suggested to be replaced by ``community.general.system.ufw``. While these longer names do work, they are considered **internal names** by the collection and are subject to change and be removed at all time. They **will** be removed in community.general 6.0.0 and result in deprecation messages. Avoid using these internal names, and use general three-component FQCNs (``community.general.``) instead (https://github.com/ansible-collections/community.general/pull/5373)." +msgstr "VScode プラグイン (https://github.com/ansible/vscode-ansible/issues/573) または ``ansible-doc --list --type module`` などの一部のツールは、community.general のモジュールとアクションの正しい FQCN を、3 つ以上のコンポーネントを持つインターナル名に置き換えることを提案します。たとえば、``community.general.ufw`` は ``community.general.system.ufw`` に置き換えることが提案されています。このような長い名前でも問題ありませんが、これらはコレクションによって **インターナル名** と見なされ、変更される可能性があるため、いつでも削除される可能性があります。これらは community.general 6.0.0 で **削除される予定**で、その結果、非推奨のメッセージが表示されることになります。これらのインターナル名の使用を避け、代わりに一般的な 3 つのコンポーネントの FQCN (``community.general.``) を使用してください (https://github.com/ansible-collections/community.general/pull/5373)。" + +#: ../../rst/porting_guides/porting_guide_6.rst:155 +msgid "Porting Guide for v6.6.0" +msgstr "v6.6.0 の移植ガイド" + +#: ../../rst/porting_guides/porting_guide_6.rst:160 +#: ../../rst/porting_guides/porting_guide_7.rst:273 +msgid "lowlydba.sqlserver (version 1.0.4)" +msgstr "lowlydba.sqlserver (バージョン 1.0.4)" + +#: ../../rst/porting_guides/porting_guide_6.rst:168 +#: ../../rst/porting_guides/porting_guide_7.rst:283 +msgid "The ``community.routeros.command`` module claims to support check mode. Since it cannot judge whether the commands executed modify state or not, this behavior is incorrect. Since this potentially breaks existing playbooks, we will not change this behavior until community.routeros 3.0.0." +msgstr "``community.routeros.command`` モジュールは、チェックモードをサポートすると主張しています。実行されたコマンドが状態を変更するかどうかを判断できないため、この動作は正しくありません。これは既存の Playbook を壊す可能性があるため、community.routeros 3.0.0 までこの動作は変更しません。" + +#: ../../rst/porting_guides/porting_guide_6.rst:176 +#: ../../rst/porting_guides/porting_guide_7.rst:436 +msgid "newrelic_deployment - ``revision`` is required for v2 API (https://github.com/ansible-collections/community.general/pull/5341)." +msgstr "newrelic_deployment -``revision`` は、v2 API 用に必要です (https://github.com/ansible-collections/community.general/pull/5341)。" + +#: ../../rst/porting_guides/porting_guide_6.rst:184 +#: ../../rst/porting_guides/porting_guide_7.rst:609 +msgid "newrelic_deployment - removed New Relic v1 API, added support for v2 API (https://github.com/ansible-collections/community.general/pull/5341)." +msgstr "newrelic_deployment - New Relic v1 API を削除し、v2 API のサポートを追加しました (https://github.com/ansible-collections/community.general/pull/5341)。" + +#: ../../rst/porting_guides/porting_guide_6.rst:189 +#: ../../rst/porting_guides/porting_guide_7.rst:652 +msgid "Many fixes for Ansible sanity test warnings & errors." +msgstr "Ansible の健全性テストの警告とエラーに対する多くの修正。" + +#: ../../rst/porting_guides/porting_guide_6.rst:190 +#: ../../rst/porting_guides/porting_guide_7.rst:653 +msgid "Support FortiManager Schema 7.2.0 , 98 new modules" +msgstr "FortiManager Schema 7.2.0、98 個の新しいモジュールをサポートします" + +#: ../../rst/porting_guides/porting_guide_6.rst:195 +#: ../../rst/porting_guides/porting_guide_7.rst:941 +msgid "The mellanox.onyx collection is considered unmaintained and will be removed from Ansible 8 if no one starts maintaining it again before Ansible 8. See `the removal process for details on how this works `__ (https://github.com/ansible-community/community-topics/issues/136)." +msgstr "mellanox.onyx コレクションはメンテナンスされていないと見なされ、Ansible 8 より先に再びメンテナンスを開始する人がいない場合、Ansible 8 から削除されます。`the removal process for details on how this works `__ を参照してください (https://github.com/ansible-community/community-topics/issues/136)。" + +#: ../../rst/porting_guides/porting_guide_6.rst:198 +#: ../../rst/porting_guides/porting_guide_7.rst:997 +msgid "cisco.mso" +msgstr "cisco.mso" + +#: ../../rst/porting_guides/porting_guide_6.rst:200 +#: ../../rst/porting_guides/porting_guide_7.rst:999 +msgid "The mso_schema_template_contract_filter contract_filter_type attribute is deprecated. The value is now deduced from filter_type." +msgstr "mso_schema_template_contract_filter contract_filter_type 属性は非推奨となりました。この値は filter_type から推測されるようになりました。" + +#: ../../rst/porting_guides/porting_guide_6.rst:205 +#: ../../rst/porting_guides/porting_guide_7.rst:1036 +msgid "ArgFormat module utils - deprecated along ``CmdMixin``, in favor of the ``cmd_runner_fmt`` module util (https://github.com/ansible-collections/community.general/pull/5370)." +msgstr "ArgFormat モジュール utils - ``CmdMixin`` とともに非推奨となり、``cmd_runner_fmt`` モジュール utils が使用されるようになりました (https://github.com/ansible-collections/community.general/pull/5370)。" + +#: ../../rst/porting_guides/porting_guide_6.rst:206 +#: ../../rst/porting_guides/porting_guide_7.rst:1037 +msgid "CmdMixin module utils - deprecated in favor of the ``CmdRunner`` module util (https://github.com/ansible-collections/community.general/pull/5370)." +msgstr "CmdMixin モジュール utils - 非推奨となり、``CmdRunner`` モジュール util に移行しました (https://github.com/ansible-collections/community.general/pull/5370)。" + +#: ../../rst/porting_guides/porting_guide_6.rst:207 +#: ../../rst/porting_guides/porting_guide_7.rst:1038 +msgid "CmdModuleHelper module utils - deprecated in favor of the ``CmdRunner`` module util (https://github.com/ansible-collections/community.general/pull/5370)." +msgstr "CmdModuleHelper モジュール utils - 非推奨となり、``CmdRunner`` モジュール util に移行しました (https://github.com/ansible-collections/community.general/pull/5370)。" + +#: ../../rst/porting_guides/porting_guide_6.rst:208 +#: ../../rst/porting_guides/porting_guide_7.rst:1039 +msgid "CmdStateModuleHelper module utils - deprecated in favor of the ``CmdRunner`` module util (https://github.com/ansible-collections/community.general/pull/5370)." +msgstr "CmdStateModuleHelper モジュール utils - 非推奨となり、``CmdRunner`` モジュール util に移行しました (https://github.com/ansible-collections/community.general/pull/5370)。" + +#: ../../rst/porting_guides/porting_guide_6.rst:209 +#: ../../rst/porting_guides/porting_guide_7.rst:1041 +msgid "django_manage - support for Django releases older than 4.1 has been deprecated and will be removed in community.general 9.0.0 (https://github.com/ansible-collections/community.general/pull/5400)." +msgstr "django_manage - 4.1 より古い Django のリリースに対するサポートは非推奨となり、community.general 9.0.0 で削除される予定です (https://github.com/ansible-collections/community.general/pull/5400)。" + +#: ../../rst/porting_guides/porting_guide_6.rst:210 +#: ../../rst/porting_guides/porting_guide_7.rst:1042 +msgid "django_manage - support for the commands ``cleanup``, ``syncdb`` and ``validate`` that have been deprecated in Django long time ago will be removed in community.general 9.0.0 (https://github.com/ansible-collections/community.general/pull/5400)." +msgstr "django_manage - だいぶ前に Django で非推奨となったコマンド ``cleanup``、``syncdb``、``validate`` のサポートは community.general 9.0.0 で削除される予定です (https://github.com/ansible-collections/community.general/pull/5400)。" + +#: ../../rst/porting_guides/porting_guide_6.rst:211 +#: ../../rst/porting_guides/porting_guide_7.rst:1043 +msgid "django_manage - the behavior of \"creating the virtual environment when missing\" is being deprecated and will be removed in community.general version 9.0.0 (https://github.com/ansible-collections/community.general/pull/5405)." +msgstr "django_manage - 「不足時に仮想環境を作成する」という動作は非推奨となり、community.general バージョン 9.0.0 で削除される予定です (https://github.com/ansible-collections/community.general/pull/5405)。" + +#: ../../rst/porting_guides/porting_guide_6.rst:212 +#: ../../rst/porting_guides/porting_guide_7.rst:1046 +msgid "newrelic_deployment - ``appname`` and ``environment`` are no longer valid options in the v2 API. They will be removed in community.general 7.0.0 (https://github.com/ansible-collections/community.general/pull/5341)." +msgstr "newrelic_deployment -``appname`` と``environment`` は、v2 API では有効なオプションではなくなりました。community.general 7.0.0 (https://github.com/ansible-collections/community.general/pull/5341) で削除される予定です。" + +#: ../../rst/porting_guides/porting_guide_6.rst:215 +msgid "Porting Guide for v6.5.0" +msgstr "v6.5.0 の移植ガイド" + +#: ../../rst/porting_guides/porting_guide_6.rst:221 +#: ../../rst/porting_guides/porting_guide_6.rst:344 +#: ../../rst/porting_guides/porting_guide_7.rst:663 +msgid "infoblox.nios_modules" +msgstr "infoblox.nios_modules" + +#: ../../rst/porting_guides/porting_guide_6.rst:223 +#: ../../rst/porting_guides/porting_guide_7.rst:665 +msgid "Feature for extra layer security , with `cert` and `key` parameters in playbooks for authenticating using certificate and key ``*.pem`` file absolute path `#154 `_" +msgstr "証明書とキー ``*.pem`` ファイルの絶対パスを使用して認証するための Playbook の `cert` と `key` パラメーターを使用した、追加のレイヤーセキュリティーの機能 `#154 `_" + +#: ../../rst/porting_guides/porting_guide_6.rst:224 +#: ../../rst/porting_guides/porting_guide_7.rst:666 +msgid "Fix to remove issue causing due to template attr in deleting network using Ansible module nios network `#147 `_" +msgstr "Ansible モジュール nios network を使用してネットワークを削除する際にテンプレート attr が原因で発生する問題を削除する修正 `#147 `_" + +#: ../../rst/porting_guides/porting_guide_6.rst:229 +#: ../../rst/porting_guides/porting_guide_7.rst:937 +msgid "The dellemc.os10 collection is considered unmaintained and will be removed from Ansible 8 if no one starts maintaining it again before Ansible 8. See `the removal process for details on how this works `__ (https://github.com/ansible-community/community-topics/issues/134)." +msgstr "dellemc.os10 コレクションはメンテナンスされていないと見なされ、Ansible 8 より先に再びメンテナンスを開始する人がいない場合、Ansible 8 から削除されます。`the removal process for details on how this works `__ (https://github.com/ansible-community/community-topics/issues/134) を参照してください。" + +#: ../../rst/porting_guides/porting_guide_6.rst:230 +#: ../../rst/porting_guides/porting_guide_7.rst:938 +msgid "The dellemc.os6 collection is considered unmaintained and will be removed from Ansible 8 if no one starts maintaining it again before Ansible 8. See `the removal process for details on how this works `__ (https://github.com/ansible-community/community-topics/issues/132)." +msgstr "dellemc.os6 コレクションはメンテナンスされていないと見なされ、Ansible 8 より先に再びメンテナンスを開始する人がいない場合、Ansible 8 から削除されます。`the removal process for details on how this works `__ (https://github.com/ansible-community/community-topics/issues/132) を参照してください。" + +#: ../../rst/porting_guides/porting_guide_6.rst:231 +#: ../../rst/porting_guides/porting_guide_7.rst:939 +msgid "The dellemc.os9 collection is considered unmaintained and will be removed from Ansible 8 if no one starts maintaining it again before Ansible 8. See `the removal process for details on how this works `__ (https://github.com/ansible-community/community-topics/issues/133)." +msgstr "dellemc.os9 コレクションはメンテナンスされていないと見なされ、Ansible 8 より先に再びメンテナンスを開始する人がいない場合、Ansible 8 から削除されます。`the removal process for details on how this works `__ (https://github.com/ansible-community/community-topics/issues/133) を参照してください。" + +#: ../../rst/porting_guides/porting_guide_6.rst:236 +#: ../../rst/porting_guides/porting_guide_7.rst:1045 +msgid "lxc_container - the module will no longer make any effort to support Python 2 (https://github.com/ansible-collections/community.general/pull/5304)." +msgstr "lxc_container - このモジュールは Python 2 をサポートしなくなりました (https://github.com/ansible-collections/community.general/pull/5304)。" + +#: ../../rst/porting_guides/porting_guide_6.rst:239 +msgid "Porting Guide for v6.4.0" +msgstr "v6.4.0 の移植ガイド" + +#: ../../rst/porting_guides/porting_guide_6.rst:244 +msgid "inspur.ispim (version 1.0.1)" +msgstr "inspur.ispim (バージョン 1.0.1)" + +#: ../../rst/porting_guides/porting_guide_6.rst:245 msgid "vultr.cloud (version 1.1.0)" msgstr "vultr.cloud (バージョン 1.1.0)" -#: ../../rst/porting_guides/porting_guide_6.rst:117 -#: ../../rst/porting_guides/porting_guide_7.rst:506 +#: ../../rst/porting_guides/porting_guide_6.rst:253 +#: ../../rst/porting_guides/porting_guide_7.rst:1047 msgid "proxmox - deprecated the current ``unprivileged`` default value, will be changed to ``true`` in community.general 7.0.0 (https://github.com/pull/5224)." msgstr "proxmox - 現在の ``unprivileged`` のデフォルト値は非推奨となり、community.general 7.0.0 で ``true`` に変更されます (https://github.com/pull/5224)。" -#: ../../rst/porting_guides/porting_guide_6.rst:120 +#: ../../rst/porting_guides/porting_guide_6.rst:256 msgid "Porting Guide for v6.3.0" msgstr "v6.3.0 の移植ガイド" -#: ../../rst/porting_guides/porting_guide_6.rst:128 -#: ../../rst/porting_guides/porting_guide_7.rst:252 +#: ../../rst/porting_guides/porting_guide_6.rst:264 +#: ../../rst/porting_guides/porting_guide_7.rst:614 msgid "mysql_db - the ``pipefail`` argument's default value will be changed to ``true`` in community.mysql 4.0.0. If your target machines do not use ``bash`` as a default interpreter, set ``pipefail`` to ``false`` explicitly. However, we strongly recommend setting up ``bash`` as a default and ``pipefail=true`` as it will protect you from getting broken dumps you don't know about (https://github.com/ansible-collections/community.mysql/issues/407)." msgstr "mysql_db - ``pipefail`` 引数のデフォルト値が community.mysql 4.0.0 では ``true`` に変更されます。ターゲットマシンがデフォルトのインタープリターとして ``bash`` を使用しない場合は、``pipefail`` を ``false`` に明示的に設定してください。ただし、知らない間に壊れたダンプを取得することから保護するため、``bash`` (デフォルト) および ``pipefail=true`` をセットアップすることを強くお勧めします (https://github.com/ansible-collections/community.mysql/issues/407)。" -#: ../../rst/porting_guides/porting_guide_6.rst:133 -#: ../../rst/porting_guides/porting_guide_7.rst:280 +#: ../../rst/porting_guides/porting_guide_6.rst:269 +#: ../../rst/porting_guides/porting_guide_7.rst:659 msgid "Support Diff feature in check_mode." msgstr "check_mode で Diff 機能をサポートします。" -#: ../../rst/porting_guides/porting_guide_6.rst:134 -#: ../../rst/porting_guides/porting_guide_7.rst:281 +#: ../../rst/porting_guides/porting_guide_6.rst:270 +#: ../../rst/porting_guides/porting_guide_7.rst:660 msgid "Support Fortios 7.2.0." msgstr "Fortios 7.2.0 をサポートします。" -#: ../../rst/porting_guides/porting_guide_6.rst:139 -#: ../../rst/porting_guides/porting_guide_7.rst:431 +#: ../../rst/porting_guides/porting_guide_6.rst:275 +#: ../../rst/porting_guides/porting_guide_7.rst:940 msgid "The google.cloud collection is considered unmaintained and will be removed from Ansible 8 if no one starts maintaining it again before Ansible 8. See `the removal process for details on how this works `__ (https://github.com/ansible-community/community-topics/issues/105)." msgstr "google.cloud コレクションはメンテナンスされていないと見なされ、Ansible 8 より先に再びメンテナンスを開始する人がいない場合、Ansible 8 から削除されます。`the removal process for details on how this works `__ (https://github.com/ansible-community/community-topics/issues/105) を参照してください。" -#: ../../rst/porting_guides/porting_guide_6.rst:140 +#: ../../rst/porting_guides/porting_guide_6.rst:276 msgid "The servicenow.servicenow collection has been deprecated by its maintainers (https://github.com/ServiceNowITOM/servicenow-ansible/pull/69) and will be removed from Ansible 7. It can still be installed manually, but it is suggested to swich to `servicenow.itsm `__ instead (https://github.com/ansible-community/community-topics/issues/124)." msgstr "servicenow.servicenow コレクションは、そのメンテナーによって非推奨となり (https://github.com/ServiceNowITOM/servicenow-ansible/pull/69)、Ansible 7 から削除されます。引き続き手動でインストールできますが、`servicenow.itsm `__ instead に切り替えることをお勧めします (https://github.com/ansible-community/community-topics/issues/124)。" -#: ../../rst/porting_guides/porting_guide_6.rst:143 +#: ../../rst/porting_guides/porting_guide_6.rst:279 msgid "Porting Guide for v6.2.0" msgstr "v6.2.0 の移植ガイド" -#: ../../rst/porting_guides/porting_guide_6.rst:148 -#: ../../rst/porting_guides/porting_guide_7.rst:101 +#: ../../rst/porting_guides/porting_guide_6.rst:284 msgid "ibm.spectrum_virtualize (version 1.9.0)" msgstr "ibm.spectrum_virtualize (version 1.9.0)" -#: ../../rst/porting_guides/porting_guide_6.rst:156 -#: ../../rst/porting_guides/porting_guide_7.rst:125 +#: ../../rst/porting_guides/porting_guide_6.rst:292 +#: ../../rst/porting_guides/porting_guide_7.rst:301 msgid "na_ontap_snapshot - added documentation to use UTC format for ``expiry_time``." msgstr "na_ontap_snapshot - ``expiry_time`` 用の UTC 形式を使用するためのドキュメントを追加しました。" -#: ../../rst/porting_guides/porting_guide_6.rst:164 -#: ../../rst/porting_guides/porting_guide_7.rst:257 +#: ../../rst/porting_guides/porting_guide_6.rst:300 +#: ../../rst/porting_guides/porting_guide_7.rst:625 msgid "postgresql_user - the ``groups`` argument has been deprecated and will be removed in ``community.postgresql 3.0.0``. Please use the ``postgresql_membership`` module to specify group/role memberships instead (https://github.com/ansible-collections/community.postgresql/issues/277)." msgstr "postgresql_user - ``groups`` 引数は非推奨になり、``community.postgresql 3.0.0`` で削除されます。グループ/ロールメンバーシップの指定には、代わりに ``postgresql_membership``を使用してください (https://github.com/ansible-collections/community.postgresql/issues/277)。" -#: ../../rst/porting_guides/porting_guide_6.rst:172 -#: ../../rst/porting_guides/porting_guide_7.rst:511 +#: ../../rst/porting_guides/porting_guide_6.rst:308 +#: ../../rst/porting_guides/porting_guide_7.rst:1053 msgid "vault_kv2_get lookup - the ``engine_mount_point option`` in the ``vault_kv2_get`` lookup only will change its default from ``kv`` to ``secret`` in community.hashi_vault version 4.0.0 (https://github.com/ansible-collections/community.hashi_vault/issues/279)." msgstr "vault_kv2_get ルックアップ - ``vault_kv2_get`` ルックアップの ``engine_mount_point option`` のみが、community.hashi_vault バージョン 4.0.0 でデフォルトを ``kv`` から ``secret`` に変更します (https://github.com/ansible-collections/community.hashi_vault/issues/279)。" -#: ../../rst/porting_guides/porting_guide_6.rst:175 +#: ../../rst/porting_guides/porting_guide_6.rst:311 msgid "Porting Guide for v6.1.0" msgstr "v6.1.0 の移植ガイド" -#: ../../rst/porting_guides/porting_guide_6.rst:180 +#: ../../rst/porting_guides/porting_guide_6.rst:316 msgid "purestorage.fusion (version 1.0.2)" msgstr "purestorage.fusion (バージョン 1.0.2)" -#: ../../rst/porting_guides/porting_guide_6.rst:194 -#: ../../rst/porting_guides/porting_guide_6.rst:283 -#: ../../rst/porting_guides/porting_guide_7.rst:118 +#: ../../rst/porting_guides/porting_guide_6.rst:330 +#: ../../rst/porting_guides/porting_guide_6.rst:419 +#: ../../rst/porting_guides/porting_guide_7.rst:294 msgid "ome_device_power_settings - Issue(212679) - The module displays the following message if the value provided for the parameter ``power_cap`` is not within the supported range of 0 to 32767, ``Unable to complete the request because PowerCap does not exist or is not applicable for the resource URI.``" msgstr "ome_device_power_settings - Issue(212679)。パラメーター ``power_cap`` に指定された値がサポートされる 0 から 32767 の範囲内にない場合、モジュールは ``Unable to complete the request because PowerCap does not exist or is not applicable for the resource URI.`` woと共にエラーを発生します。" -#: ../../rst/porting_guides/porting_guide_6.rst:195 -#: ../../rst/porting_guides/porting_guide_6.rst:286 -#: ../../rst/porting_guides/porting_guide_7.rst:119 +#: ../../rst/porting_guides/porting_guide_6.rst:331 +#: ../../rst/porting_guides/porting_guide_6.rst:422 +#: ../../rst/porting_guides/porting_guide_7.rst:295 msgid "ome_device_quick_deploy - Issue(216352) - The module does not display a proper error message if an unsupported value is provided for the ipv6_prefix_length and vlan_id parameters." msgstr "ome_device_quick_deploy - Issue(216352)。ipv6_prefix_length および vlan_id パラメーターにサポートされていない値を指定すると、モジュールは適切なエラーメッセージを表示しません。" -#: ../../rst/porting_guides/porting_guide_6.rst:204 -#: ../../rst/porting_guides/porting_guide_7.rst:219 +#: ../../rst/porting_guides/porting_guide_6.rst:340 +#: ../../rst/porting_guides/porting_guide_7.rst:546 msgid "win_chocolatey - Added bootstrap_script option to allow users to target a script URL for installing Chocolatey on clients." msgstr "win_chocolatey - クライアントに Chocolatey をインストールするためのスクリプト URL をユーザーがターゲットにできるようにするための bootstrap_script オプションを追加しました。" -#: ../../rst/porting_guides/porting_guide_6.rst:205 -#: ../../rst/porting_guides/porting_guide_7.rst:220 +#: ../../rst/porting_guides/porting_guide_6.rst:341 +#: ../../rst/porting_guides/porting_guide_7.rst:547 msgid "win_chocolatey_facts - Added outdated packages list to data returned." msgstr "win_chocolatey_facts - 返されるデータに古いパッケージのリストを追加しました。" -#: ../../rst/porting_guides/porting_guide_6.rst:208 -#: ../../rst/porting_guides/porting_guide_7.rst:284 -msgid "infoblox.nios_modules" -msgstr "infoblox.nios_modules" - -#: ../../rst/porting_guides/porting_guide_6.rst:210 -#: ../../rst/porting_guides/porting_guide_7.rst:286 +#: ../../rst/porting_guides/porting_guide_6.rst:346 +#: ../../rst/porting_guides/porting_guide_7.rst:667 msgid "Update `text` field of TXT Record `#128 `_" msgstr "TXT Record `#128 `_ の `text` フィールドを更新します" -#: ../../rst/porting_guides/porting_guide_6.rst:211 -#: ../../rst/porting_guides/porting_guide_7.rst:287 +#: ../../rst/porting_guides/porting_guide_6.rst:347 +#: ../../rst/porting_guides/porting_guide_7.rst:668 msgid "Update operation using `old_name` and `new_name` for the object with dummy name in `old_name` (which does not exist in system) will not create a new object in the system. An error will be thrown stating the object does not exist in the system `#129 `_" msgstr "`old_name` (システム内に存在しない) にダミー名を持つオブジェクトの `old_name` および `new_name` を使用して操作を更新しても、システム内に新しいオブジェクトは作成されません。そのオブジェクトはシステムに存在しないというエラーが投げられます `#129 `_" -#: ../../rst/porting_guides/porting_guide_6.rst:219 -#: ../../rst/porting_guides/porting_guide_7.rst:470 +#: ../../rst/porting_guides/porting_guide_6.rst:355 +#: ../../rst/porting_guides/porting_guide_7.rst:994 msgid "Deprecated ios_linkagg_module in favor of ios_lag_interfaces." msgstr "ios_lag_interfaces を優先して ios_linkagg_module を非推奨としました。" -#: ../../rst/porting_guides/porting_guide_6.rst:224 -#: ../../rst/porting_guides/porting_guide_7.rst:476 +#: ../../rst/porting_guides/porting_guide_6.rst:360 +#: ../../rst/porting_guides/porting_guide_7.rst:1005 msgid "aws_codebuild - The ``tags`` parameter currently uses a non-standard format and has been deprecated. In release 6.0.0 this parameter will accept a simple key/value pair dictionary instead of the current list of dictionaries. It is recommended to migrate to using the resource_tags parameter which already accepts the simple dictionary format (https://github.com/ansible-collections/community.aws/pull/1221)." msgstr "aws_codebuild - ``tags`` パラメーターは現在、非標準形式を使用しているため、非推奨となりました。リリース 6.0.0 では、このパラメーターは、現在のディクショナリーのリストではなく、単純なキーと値のペアのディクショナリーを受け入れます。単純なディクショナリー形式をすでに受け入れている resource_tags パラメーターを使用するように移行することをお勧めします (https://github.com/ansible-collections/community.aws/pull/1221)。" -#: ../../rst/porting_guides/porting_guide_6.rst:225 -#: ../../rst/porting_guides/porting_guide_7.rst:487 +#: ../../rst/porting_guides/porting_guide_6.rst:361 +#: ../../rst/porting_guides/porting_guide_7.rst:1016 msgid "route53_info - The CamelCase return values for ``HostedZones``, ``ResourceRecordSets``, and ``HealthChecks`` have been deprecated, in the future release you must use snake_case return values ``hosted_zones``, ``resource_record_sets``, and ``health_checks`` instead respectively\"." msgstr "route53_info - ``HostedZones``、``ResourceRecordSets`` の CamelCase の戻り値および ``HealthChecks`` が非推奨となりました。今後のリリースでは、代わりに ``hosted_zones``、``resource_record_sets`` の snake_case の戻り値および ``health_checks`` をそれぞれ使用する必要があります。" -#: ../../rst/porting_guides/porting_guide_6.rst:230 -#: ../../rst/porting_guides/porting_guide_7.rst:494 +#: ../../rst/porting_guides/porting_guide_6.rst:366 +#: ../../rst/porting_guides/porting_guide_7.rst:1023 msgid "Support for Ansible 2.9 and ansible-base 2.10 is deprecated, and will be removed in the next major release (community.crypto 3.0.0). Some modules might still work with these versions afterwards, but we will no longer keep compatibility code that was needed to support them (https://github.com/ansible-collections/community.crypto/pull/460)." msgstr "Ansible 2.9 および ansible-base 2.10 のサポートは非推奨になり、次のメジャーリリース (community.crypto 3.0.0) で削除されます。モジュールによっては、その後もこれらのバージョンで引き続き動作する可能性がありますが、サポートするために必要な互換性コードは保持されなくなります (https://github.com/ansible-collections/community.crypto/pull/460)。" -#: ../../rst/porting_guides/porting_guide_6.rst:235 -#: ../../rst/porting_guides/porting_guide_7.rst:499 +#: ../../rst/porting_guides/porting_guide_6.rst:371 +#: ../../rst/porting_guides/porting_guide_7.rst:1028 msgid "Support for Docker API version 1.20 to 1.24 has been deprecated and will be removed in community.docker 3.0.0. The first Docker version supporting API version 1.25 was Docker 1.13, released in January 2017. This affects the modules ``docker_container``, ``docker_container_exec``, ``docker_container_info``, ``docker_compose``, ``docker_login``, ``docker_image``, ``docker_image_info``, ``docker_image_load``, ``docker_host_info``, ``docker_network``, ``docker_network_info``, ``docker_node_info``, ``docker_swarm_info``, ``docker_swarm_service``, ``docker_swarm_service_info``, ``docker_volume_info``, and ``docker_volume``, whose minimally supported API version is between 1.20 and 1.24 (https://github.com/ansible-collections/community.docker/pull/396)." msgstr "Docker API バージョン 1.20 から 1.24 のサポートは非推奨となり、community.docker 3.0.0 で削除される予定です。API バージョン 1.25 をサポートする最初の Docker バージョンは、2017 年 1 月にリリースされた Docker 1.13 でした。これは、``docker_container``、``docker_container_exec``、``docker_container_info``、``docker_compose``、``docker_login``、``docker_image``、``docker_image_info``、``docker_image_load``、``docker_host_info``、``docker_network``、``docker_network_info``、``docker_node_info``、``docker_swarm_info``、``docker_swarm_service``、``docker_swarm_service_info``、``docker_volume_info`` および ``docker_volume`` モジュールに影響します。これらの最低限サポートされている API バージョンは 1.20 から 1.24 の間になります (https://github.com/ansible-collections/community.docker/pull/396)。" -#: ../../rst/porting_guides/porting_guide_6.rst:236 -#: ../../rst/porting_guides/porting_guide_7.rst:500 +#: ../../rst/porting_guides/porting_guide_6.rst:372 +#: ../../rst/porting_guides/porting_guide_7.rst:1029 msgid "Support for Python 2.6 is deprecated and will be removed in the next major release (community.docker 3.0.0). Some modules might still work with Python 2.6, but we will no longer try to ensure compatibility (https://github.com/ansible-collections/community.docker/pull/388)." msgstr "Python 2.6 のサポートが非推奨となり、次のメジャーリリース (community.docker 3.0.0) で削除される予定です。一部のモジュールは引き続き Python 2.6 で動作する可能性がありますが、今後は互換性の確保を試行することはありません (https://github.com/ansible-collections/community.docker/pull/388)。" -#: ../../rst/porting_guides/porting_guide_6.rst:241 -#: ../../rst/porting_guides/porting_guide_7.rst:505 +#: ../../rst/porting_guides/porting_guide_6.rst:377 +#: ../../rst/porting_guides/porting_guide_7.rst:1040 msgid "cmd_runner module utils - deprecated ``fmt`` in favour of ``cmd_runner_fmt`` as the parameter format object (https://github.com/ansible-collections/community.general/pull/4777)." msgstr "cmd_runner モジュール utils - パラメーター形式オブジェクトとして、``cmd_runner_fmt`` を優先して ``fmt`` を非推奨としました (https://github.com/ansible-collections/community.general/pull/4777)。" -#: ../../rst/porting_guides/porting_guide_6.rst:244 +#: ../../rst/porting_guides/porting_guide_6.rst:380 msgid "Porting Guide for v6.0.0" msgstr "v6.0.0 の移植ガイド" -#: ../../rst/porting_guides/porting_guide_6.rst:260 +#: ../../rst/porting_guides/porting_guide_6.rst:396 msgid "get_url - document ``check_mode`` correctly with unreliable changed status (https://github.com/ansible/ansible/issues/65687)." msgstr "get_url - 信頼できない changed ステータスの ``check_mode`` を正しく記録します (https://github.com/ansible/ansible/issues/65687)。" -#: ../../rst/porting_guides/porting_guide_6.rst:265 +#: ../../rst/porting_guides/porting_guide_6.rst:401 msgid "eos - When using eos modules on Ansible 2.9, tasks will occasionally fail with ``import_modules`` enabled. This can be avoided by setting ``import_modules: no``" msgstr "EOS - Ansible 2.9 で eos モジュールを使用すると、``import_modules`` が有効化されてタスクが失敗することがあります。これは、``import_modules: no`` を設定することで回避できる可能性があります。" -#: ../../rst/porting_guides/porting_guide_6.rst:279 +#: ../../rst/porting_guides/porting_guide_6.rst:415 msgid "ome_application_console_preferences - Issue(224690) - The module does not display a proper error message when an unsupported value is provided for the parameters report_row_limit, email_sender_settings, and metric_collection_settings, and the value is applied on OpenManage Enterprise." msgstr "ome_application_console_preferences - Issue (224690)。モジュールは、report_row_limit、email_sender_settings、metric_collection_settings パラメーターにサポートされていない値を指定すると、適切なエラーメッセージを表示しません。また、値は OpenManage Enterprise に適用されます。" -#: ../../rst/porting_guides/porting_guide_6.rst:285 +#: ../../rst/porting_guides/porting_guide_6.rst:421 msgid "ome_device_power_settings - Issue(212679) - The module errors out with the following message if the value provided for the parameter ``power_cap`` is not within the supported range of 0 to 32767, ``Unable to complete the request because PowerCap does not exist or is not applicable for the resource URI.``" msgstr "ome_device_power_settings - Issue(212679)。パラメーター ``power_cap`` に指定された値がサポートされる 0 から 32767 の範囲内にない場合、モジュールは``Unable to complete the request because PowerCap does not exist or is not applicable for the resource URI.``のメッセージと共にエラーを発生します。" -#: ../../rst/porting_guides/porting_guide_6.rst:300 +#: ../../rst/porting_guides/porting_guide_6.rst:436 msgid "Module Python Dependency - Drop support for Python 2.6 in module execution." msgstr "モジュール Python の依存関係 - モジュール実行で Python 2.6 のドロップサポートを廃止します。" -#: ../../rst/porting_guides/porting_guide_6.rst:301 +#: ../../rst/porting_guides/porting_guide_6.rst:437 msgid "Templating - it is no longer allowed to perform arithmetic and concatenation operations outside of the jinja template (https://github.com/ansible/ansible/pull/75587)" msgstr "テンプレート化 - jinja テンプレートの外部で算術演算と連結演算を実行できなくなりました (https://github.com/ansible/ansible/pull/75587)。" -#: ../../rst/porting_guides/porting_guide_6.rst:302 +#: ../../rst/porting_guides/porting_guide_6.rst:438 msgid "The ``finalize`` method is no longer exposed in the globals for use in templating." msgstr "``finalize`` メソッドは、テンプレートで使用するためにグローバルで公開されなくなりました。" -#: ../../rst/porting_guides/porting_guide_6.rst:307 +#: ../../rst/porting_guides/porting_guide_6.rst:443 msgid "aws_caller_facts - Remove deprecated ``aws_caller_facts`` alias. Please use ``aws_caller_info`` instead." msgstr "aws_caller_facts - 非推奨の ``aws_caller_facts`` エイリアスを削除します。代わりに ``aws_caller_info`` を使用してください。" -#: ../../rst/porting_guides/porting_guide_6.rst:308 +#: ../../rst/porting_guides/porting_guide_6.rst:444 msgid "cloudformation_facts - Remove deprecated ``cloudformation_facts`` alias. Please use ``cloudformation_info`` instead." msgstr "cloudformation_facts - 非推奨の ``cloudformation_facts`` エイリアスを削除します。代わりに ``cloudformation_info`` を使用してください。" -#: ../../rst/porting_guides/porting_guide_6.rst:309 +#: ../../rst/porting_guides/porting_guide_6.rst:445 msgid "ec2_ami_facts - Remove deprecated ``ec2_ami_facts`` alias. Please use ``ec2_ami_info`` instead." msgstr "ec2_ami_facts - 非推奨の ``ec2_ami_facts`` エイリアスを削除します。代わりに ``ec2_ami_info`` を使用してください。" -#: ../../rst/porting_guides/porting_guide_6.rst:310 +#: ../../rst/porting_guides/porting_guide_6.rst:446 msgid "ec2_eni_facts - Remove deprecated ``ec2_eni_facts`` alias. Please use ``ec2_eni_info`` instead." msgstr "ec2_eni_facts - 非推奨の ``ec2_eni_facts`` エイリアスを削除します。代わりに ``ec2_eni_info`` を使用してください。" -#: ../../rst/porting_guides/porting_guide_6.rst:311 +#: ../../rst/porting_guides/porting_guide_6.rst:447 msgid "ec2_group_facts - Remove deprecated ``ec2_group_facts`` alias. Please use ``ec2_group_info`` instead." msgstr "ec2_group_facts - 非推奨の ``ec2_group_facts`` エイリアスを削除します。代わりに ``ec2_group_info`` を使用してください。" -#: ../../rst/porting_guides/porting_guide_6.rst:312 +#: ../../rst/porting_guides/porting_guide_6.rst:448 msgid "ec2_instance_facts - Remove deprecated ``ec2_instance_facts`` alias. Please use ``ec2_instance_info`` instead." msgstr "ec2_instance_facts - 非推奨の ``ec2_instance_facts`` エイリアスを削除します。代わりに ``ec2_instance_info`` を使用してください。" -#: ../../rst/porting_guides/porting_guide_6.rst:313 +#: ../../rst/porting_guides/porting_guide_6.rst:449 msgid "ec2_snapshot_facts - Remove deprecated ``ec2_snapshot_facts`` alias. Please use ``ec2_snapshot_info`` instead." msgstr "ec2_snapshot_facts - 非推奨の ``ec2_snapshot_facts`` エイリアスを削除します。代わりに ``ec2_snapshot_info`` を使用してください。" -#: ../../rst/porting_guides/porting_guide_6.rst:314 +#: ../../rst/porting_guides/porting_guide_6.rst:450 msgid "ec2_vol_facts - Remove deprecated ``ec2_vol_facts`` alias. Please use ``ec2_vol_info`` instead." msgstr "ec2_vol_facts - 非推奨の ``ec2_vol_facts`` エイリアスを削除します。代わりに ``ec2_vol_info`` を使用してください。" -#: ../../rst/porting_guides/porting_guide_6.rst:315 +#: ../../rst/porting_guides/porting_guide_6.rst:451 msgid "ec2_vpc_dhcp_option_facts - Remove deprecated ``ec2_vpc_dhcp_option_facts`` alias. Please use ``ec2_vpc_dhcp_option_info`` instead." msgstr "ec2_vpc_dhcp_option_facts - 非推奨の ``ec2_vpc_dhcp_option_facts`` エイリアスを削除します。代わりに ``ec2_vpc_dhcp_option_info`` を使用してください。" -#: ../../rst/porting_guides/porting_guide_6.rst:316 +#: ../../rst/porting_guides/porting_guide_6.rst:452 msgid "ec2_vpc_endpoint_facts - Remove deprecated ``ec2_vpc_endpoint_facts`` alias. Please use ``ec2_vpc_endpoint_info`` instead." msgstr "ec2_vpc_endpoint_facts - 非推奨の ``ec2_vpc_endpoint_facts`` エイリアスを削除します。代わりに ``ec2_vpc_endpoint_info`` を使用してください。" -#: ../../rst/porting_guides/porting_guide_6.rst:317 +#: ../../rst/porting_guides/porting_guide_6.rst:453 msgid "ec2_vpc_igw_facts - Remove deprecated ``ec2_vpc_igw_facts`` alias. Please use ``ec2_vpc_igw_info`` instead." msgstr "ec2_vpc_igw_facts - 非推奨の ``ec2_vpc_igw_facts`` エイリアスを削除します。代わりに ``ec2_vpc_igw_info`` を使用してください。" -#: ../../rst/porting_guides/porting_guide_6.rst:318 +#: ../../rst/porting_guides/porting_guide_6.rst:454 msgid "ec2_vpc_nat_gateway_facts - Remove deprecated ``ec2_vpc_nat_gateway_facts`` alias. Please use ``ec2_vpc_nat_gateway_info`` instead." msgstr "ec2_vpc_nat_gateway_facts - 非推奨の ``ec2_vpc_nat_gateway_facts`` エイリアスを削除します。代わりに ``ec2_vpc_nat_gateway_info`` を使用してください。" -#: ../../rst/porting_guides/porting_guide_6.rst:319 +#: ../../rst/porting_guides/porting_guide_6.rst:455 msgid "ec2_vpc_net_facts - Remove deprecated ``ec2_vpc_net_facts`` alias. Please use ``ec2_vpc_net_info`` instead." msgstr "ec2_vpc_net_facts - 非推奨の ``ec2_vpc_net_facts`` エイリアスを削除します。代わりに ``ec2_vpc_net_info`` を使用してください。" -#: ../../rst/porting_guides/porting_guide_6.rst:320 +#: ../../rst/porting_guides/porting_guide_6.rst:456 msgid "ec2_vpc_route_table_facts - Remove deprecated ``ec2_vpc_route_table_facts`` alias. Please use ``ec2_vpc_route_table_info`` instead." msgstr "ec2_vpc_route_table_facts - 非推奨の ``ec2_vpc_route_table_facts`` エイリアスを削除します。代わりに ``ec2_vpc_route_table_info`` を使用してください。" -#: ../../rst/porting_guides/porting_guide_6.rst:321 +#: ../../rst/porting_guides/porting_guide_6.rst:457 msgid "ec2_vpc_subnet_facts - Remove deprecated ``ec2_vpc_subnet_facts`` alias. Please use ``ec2_vpc_subnet_info`` instead." msgstr "ec2_vpc_subnet_facts - 非推奨の ``ec2_vpc_subnet_facts`` エイリアスを削除します。代わりに ``ec2_vpc_subnet_info`` を使用してください。" -#: ../../rst/porting_guides/porting_guide_6.rst:326 +#: ../../rst/porting_guides/porting_guide_6.rst:462 msgid "httpapi - Change default value of ``import_modules`` option from ``no`` to ``yes``" msgstr "httpapi - ``import_modules`` オプションのデフォルト値を ``no`` から ``yes`` に変更します。" -#: ../../rst/porting_guides/porting_guide_6.rst:327 +#: ../../rst/porting_guides/porting_guide_6.rst:463 msgid "netconf - Change default value of ``import_modules`` option from ``no`` to ``yes``" msgstr "netconf - ``import_modules`` オプションのデフォルト値を ``no`` から ``yes`` に変更します。" -#: ../../rst/porting_guides/porting_guide_6.rst:328 +#: ../../rst/porting_guides/porting_guide_6.rst:464 msgid "network_cli - Change default value of ``import_modules`` option from ``no`` to ``yes``" msgstr "network_cli - ``import_modules`` オプションのデフォルト値を ``no`` から ``yes`` に変更します。" -#: ../../rst/porting_guides/porting_guide_6.rst:333 +#: ../../rst/porting_guides/porting_guide_6.rst:469 msgid "eos_command - new suboption ``version`` of parameter ``command``, which controls the JSON response version. Previously the value was assumed to be \"latest\" for network_cli and \"1\" for httpapi, but the default will now be \"latest\" for both connections. This option is also available for use in modules making their own device requests with ``plugins.module_utils.network.eos.eos.run_commands()`` with the same new default behavior. (https://github.com/ansible-collections/arista.eos/pull/258)." msgstr "eos_command - パラメーター ``command`` の新しいサブオプション ``version`` は、JSON 応答バージョンを制御します。これまでは、値は network_cli の場合は「latest」、httpapi の場合は「1」と想定されていましたが、両方の接続のデフォルトは「latest」になりました。このオプションは、同じ新しいデフォルトの動作で ``plugins.module_utils.network.eos.eos.run_commands()`` を使用して独自のデバイス要求を行うモジュールでも使用できます (https://github.com/ansible-collections/arista.eos/pull/258)。" -#: ../../rst/porting_guides/porting_guide_6.rst:334 +#: ../../rst/porting_guides/porting_guide_6.rst:470 msgid "httpapi - the ``eos_use_sessions`` option is now a boolean instead of an integer." msgstr "httpapi - ``eos_use_sessions`` オプションは整数ではなくブール値になりました。" -#: ../../rst/porting_guides/porting_guide_6.rst:339 +#: ../../rst/porting_guides/porting_guide_6.rst:475 msgid "aws_acm_facts - Remove deprecated alias ``aws_acm_facts``. Please use ``aws_acm_info`` instead." msgstr "aws_acm_facts - 非推奨のエイリアス ``aws_acm_facts`` を削除します。代わりに ``aws_acm_info`` を使用してください。" -#: ../../rst/porting_guides/porting_guide_6.rst:340 +#: ../../rst/porting_guides/porting_guide_6.rst:476 msgid "aws_kms_facts - Remove deprecated alias ``aws_kms_facts``. Please use ``aws_kms_info`` instead." msgstr "aws_kms_facts - 非推奨のエイリアス ``aws_kms_facts`` を削除します。代わりに ``aws_kms_info`` を使用してください。" -#: ../../rst/porting_guides/porting_guide_6.rst:341 +#: ../../rst/porting_guides/porting_guide_6.rst:477 msgid "aws_kms_info - Deprecated ``keys_attr`` field is now ignored (https://github.com/ansible-collections/community.aws/pull/838)." msgstr "aws_kms_info - 非推奨の ``keys_attr`` フィールドは無視されます (https://github.com/ansible-collections/community.aws/pull/838)。" -#: ../../rst/porting_guides/porting_guide_6.rst:342 +#: ../../rst/porting_guides/porting_guide_6.rst:478 msgid "aws_region_facts - Remove deprecated alias ``aws_region_facts``. Please use ``aws_region_info`` instead." msgstr "aws_region_facts - 非推奨のエイリアス ``aws_region_facts`` を削除します。代わりに ``aws_region_info`` を使用してください。" -#: ../../rst/porting_guides/porting_guide_6.rst:343 +#: ../../rst/porting_guides/porting_guide_6.rst:479 msgid "aws_s3_bucket_facts - Remove deprecated alias ``aws_s3_bucket_facts``. Please use ``aws_s3_bucket_info`` instead." msgstr "aws_s3_bucket_facts - 非推奨のエイリアス ``aws_s3_bucket_facts`` を削除します。代わりに ``aws_s3_bucket_info`` を使用してください。" -#: ../../rst/porting_guides/porting_guide_6.rst:344 +#: ../../rst/porting_guides/porting_guide_6.rst:480 msgid "aws_sgw_facts - Remove deprecated alias ``aws_sgw_facts``. Please use ``aws_sgw_info`` instead." msgstr "aws_sgw_facts - 非推奨のエイリアス ``aws_sgw_facts`` を削除します。代わりに ``aws_sgw_info`` を使用してください。" -#: ../../rst/porting_guides/porting_guide_6.rst:345 +#: ../../rst/porting_guides/porting_guide_6.rst:481 msgid "aws_waf_facts - Remove deprecated alias ``aws_waf_facts``. Please use ``aws_waf_info`` instead." msgstr "aws_waf_facts - 非推奨のエイリアス ``aws_waf_facts`` を削除します。代わりに ``aws_waf_info`` を使用してください。" -#: ../../rst/porting_guides/porting_guide_6.rst:346 +#: ../../rst/porting_guides/porting_guide_6.rst:482 msgid "cloudfront_facts - Remove deprecated alias ``cloudfront_facts``. Please use ``cloudfront_info`` instead." msgstr "cloudfront_facts - 非推奨のエイリアス ``cloudfront_facts`` を削除します。代わりに ``cloudfront_info`` を使用してください。" -#: ../../rst/porting_guides/porting_guide_6.rst:347 +#: ../../rst/porting_guides/porting_guide_6.rst:483 msgid "cloudwatchlogs_log_group_facts - Remove deprecated alias ``cloudwatchlogs_log_group_facts``. Please use ``cloudwatchlogs_log_group_info`` instead." msgstr "cloudwatchlogs_log_group_facts - 非推奨のエイリアス ``cloudwatchlogs_log_group_facts`` を削除します。代わりに ``cloudwatchlogs_log_group_info`` を使用してください。" -#: ../../rst/porting_guides/porting_guide_6.rst:348 +#: ../../rst/porting_guides/porting_guide_6.rst:484 msgid "dynamodb_table - deprecated updates currently ignored for primary keys and global_all indexes will now result in a failure. (https://github.com/ansible-collections/community.aws/pull/837)." msgstr "dynamodb_table - プライマリーキーと global_all インデックスで現在無視されている更新が非推奨になり、今後は失敗するようになります (https://github.com/ansible-collections/community.aws/pull/837)。" -#: ../../rst/porting_guides/porting_guide_6.rst:349 +#: ../../rst/porting_guides/porting_guide_6.rst:485 msgid "ec2_asg_facts - Remove deprecated alias ``ec2_asg_facts``. Please use ``ec2_asg_info`` instead." msgstr "ec2_asg_facts - 非推奨のエイリアス ``ec2_asg_facts`` を削除します。代わりに ``ec2_asg_info`` を使用してください。" -#: ../../rst/porting_guides/porting_guide_6.rst:350 +#: ../../rst/porting_guides/porting_guide_6.rst:486 msgid "ec2_customer_gateway_facts - Remove deprecated alias ``ec2_customer_gateway_facts``. Please use ``ec2_customer_gateway_info`` instead." msgstr "ec2_customer_gateway_facts - 非推奨のエイリアス ``ec2_customer_gateway_facts`` を削除します。代わりに ``ec2_customer_gateway_info`` を使用してください。" -#: ../../rst/porting_guides/porting_guide_6.rst:351 +#: ../../rst/porting_guides/porting_guide_6.rst:487 msgid "ec2_eip_facts - Remove deprecated alias ``ec2_eip_facts``. Please use ``ec2_eip_info`` instead." msgstr "ec2_eip_facts - 非推奨のエイリアス ``ec2_eip_facts`` を削除します。代わりに ``ec2_eip_info`` を使用してください。" -#: ../../rst/porting_guides/porting_guide_6.rst:352 +#: ../../rst/porting_guides/porting_guide_6.rst:488 msgid "ec2_elb_facts - Remove deprecated alias ``ec2_elb_facts``. Please use ``ec2_elb_info`` instead." msgstr "ec2_elb_facts - 非推奨のエイリアス ``ec2_elb_facts`` を削除します。代わりに ``ec2_elb_info`` を使用してください。" -#: ../../rst/porting_guides/porting_guide_6.rst:353 +#: ../../rst/porting_guides/porting_guide_6.rst:489 msgid "ec2_elb_info - The ``ec2_elb_info`` module has been removed. Please use ``the ``elb_classic_lb_info`` module." msgstr "ec2_elb_info - ``ec2_elb_info`` モジュールが削除されました。``the ``elb_classic_lb_info'' モジュールを使用してください。" -#: ../../rst/porting_guides/porting_guide_6.rst:354 +#: ../../rst/porting_guides/porting_guide_6.rst:490 msgid "ec2_lc_facts - Remove deprecated alias ``ec2_lc_facts``. Please use ``ec2_lc_info`` instead." msgstr "ec2_lc_facts - 非推奨のエイリアス ``ec2_lc_facts`` を削除します。代わりに ``ec2_lc_info`` を使用してください。" -#: ../../rst/porting_guides/porting_guide_6.rst:355 +#: ../../rst/porting_guides/porting_guide_6.rst:491 msgid "ec2_placement_group_facts - Remove deprecated alias ``ec2_placement_group_facts``. Please use ``ec2_placement_group_info`` instead." msgstr "ec2_placement_group_facts - 非推奨のエイリアス ``ec2_placement_group_facts`` を削除します。代わりに ``ec2_placement_group_info`` を使用してください。" -#: ../../rst/porting_guides/porting_guide_6.rst:356 +#: ../../rst/porting_guides/porting_guide_6.rst:492 msgid "ec2_vpc_nacl_facts - Remove deprecated alias ``ec2_vpc_nacl_facts``. Please use ``ec2_vpc_nacl_info`` instead." msgstr "ec2_vpc_nacl_facts - 非推奨のエイリアス ``ec2_vpc_nacl_facts`` を削除します。代わりに ``ec2_vpc_nacl_info`` を使用してください。" -#: ../../rst/porting_guides/porting_guide_6.rst:357 +#: ../../rst/porting_guides/porting_guide_6.rst:493 msgid "ec2_vpc_peering_facts - Remove deprecated alias ``ec2_vpc_peering_facts``. Please use ``ec2_vpc_peering_info`` instead." msgstr "ec2_vpc_peering_facts - 非推奨のエイリアス ``ec2_vpc_peering_facts`` を削除します。代わりに ``ec2_vpc_peering_info`` を使用してください。" -#: ../../rst/porting_guides/porting_guide_6.rst:358 +#: ../../rst/porting_guides/porting_guide_6.rst:494 msgid "ec2_vpc_route_table_facts - Remove deprecated alias ``ec2_vpc_route_table_facts``. Please use ``ec2_vpc_route_table_info`` instead." msgstr "ec2_vpc_route_table_facts - 非推奨のエイリアス ``ec2_vpc_route_table_facts`` を削除します。代わりに ``ec2_vpc_route_table_info`` を使用してください。" -#: ../../rst/porting_guides/porting_guide_6.rst:359 +#: ../../rst/porting_guides/porting_guide_6.rst:495 msgid "ec2_vpc_vgw_facts - Remove deprecated alias ``ec2_vpc_vgw_facts``. Please use ``ec2_vpc_vgw_info`` instead." msgstr "ec2_vpc_vgw_facts - 非推奨のエイリアス ``ec2_vpc_vgw_facts`` を削除します。代わりに ``ec2_vpc_vgw_info`` を使用してください。" -#: ../../rst/porting_guides/porting_guide_6.rst:360 +#: ../../rst/porting_guides/porting_guide_6.rst:496 msgid "ec2_vpc_vpn_facts - Remove deprecated alias ``ec2_vpc_vpn_facts``. Please use ``ec2_vpc_vpn_info`` instead." msgstr "ec2_vpc_vpn_facts - 非推奨のエイリアス ``ec2_vpc_vpn_facts`` を削除します。代わりに ``ec2_vpc_vpn_info`` を使用してください。" -#: ../../rst/porting_guides/porting_guide_6.rst:361 +#: ../../rst/porting_guides/porting_guide_6.rst:497 msgid "ecs_service_facts - Remove deprecated alias ``ecs_service_facts``. Please use ``ecs_service_info`` instead." msgstr "ecs_service_facts - 非推奨のエイリアス ``ecs_service_facts`` を削除します。代わりに ``ecs_service_info`` を使用してください。" -#: ../../rst/porting_guides/porting_guide_6.rst:362 +#: ../../rst/porting_guides/porting_guide_6.rst:498 msgid "ecs_taskdefinition_facts - Remove deprecated alias ``ecs_taskdefinition_facts``. Please use ``ecs_taskdefinition_info`` instead." msgstr "ecs_taskdefinition_facts - 非推奨のエイリアス ``ecs_taskdefinition_facts`` を削除します。代わりに ``ecs_taskdefinition_info`` を使用してください。" -#: ../../rst/porting_guides/porting_guide_6.rst:363 +#: ../../rst/porting_guides/porting_guide_6.rst:499 msgid "efs_facts - Remove deprecated alias ``efs_facts``. Please use ``efs_info`` instead." msgstr "efs_facts - 非推奨のエイリアス ``efs_facts`` を削除します。代わりに ``efs_info`` を使用してください。" -#: ../../rst/porting_guides/porting_guide_6.rst:364 +#: ../../rst/porting_guides/porting_guide_6.rst:500 msgid "elasticache_facts - Remove deprecated alias ``elasticache_facts``. Please use ``elasticache_info`` instead." msgstr "elasticache_facts - 非推奨のエイリアス ``elasticache_facts`` を削除します。代わりに ``elasticache_info`` を使用してください。" -#: ../../rst/porting_guides/porting_guide_6.rst:365 +#: ../../rst/porting_guides/porting_guide_6.rst:501 msgid "elb_application_lb_facts - Remove deprecated alias ``elb_application_lb_facts``. Please use ``elb_application_lb_info`` instead." msgstr "elb_application_lb_facts - 非推奨のエイリアス ``elb_application_lb_facts`` を削除します。代わりに ``elb_application_lb_info`` を使用してください。" -#: ../../rst/porting_guides/porting_guide_6.rst:366 +#: ../../rst/porting_guides/porting_guide_6.rst:502 msgid "elb_classic_lb_facts - Remove deprecated alias ``elb_classic_lb_facts``. Please use ``elb_classic_lb_info`` instead." msgstr "elb_classic_lb_facts - 非推奨のエイリアス ``elb_classic_lb_facts`` を削除します。代わりに ``elb_classic_lb_info`` を使用してください。" -#: ../../rst/porting_guides/porting_guide_6.rst:367 +#: ../../rst/porting_guides/porting_guide_6.rst:503 msgid "elb_target_facts - Remove deprecated alias ``elb_target_facts``. Please use ``elb_target_info`` instead." msgstr "elb_target_facts - 非推奨のエイリアス ``elb_target_facts`` を削除します。代わりに ``elb_target_info`` を使用してください。" -#: ../../rst/porting_guides/porting_guide_6.rst:368 +#: ../../rst/porting_guides/porting_guide_6.rst:504 msgid "elb_target_group_facts - Remove deprecated alias ``elb_target_group_facts``. Please use ``elb_target_group_info`` instead." msgstr "elb_target_group_facts - 非推奨のエイリアス ``elb_target_group_facts`` を削除します。代わりに ``elb_target_group_info`` を使用してください。" -#: ../../rst/porting_guides/porting_guide_6.rst:369 +#: ../../rst/porting_guides/porting_guide_6.rst:505 msgid "iam - Removed deprecated ``community.aws.iam`` module. Please use ``community.aws.iam_user``, ``community.aws.iam_access_key`` or ``community.aws.iam_group`` (https://github.com/ansible-collections/community.aws/pull/839)." msgstr "iam - 非推奨の ``community.aws.iam`` モジュールを削除しました。``community.aws.iam_user``、``community.aws.iam_access_key``、または ``community.aws.iam_group`` (https://github.com/ansible-collections/community.aws/pull/839) を使用してください。" -#: ../../rst/porting_guides/porting_guide_6.rst:370 +#: ../../rst/porting_guides/porting_guide_6.rst:506 msgid "iam_cert_facts - Remove deprecated alias ``iam_cert_facts``. Please use ``iam_cert_info`` instead." msgstr "iam_cert_facts - 非推奨のエイリアス ``iam_cert_facts`` を削除します。代わりに ``iam_cert_info`` を使用してください。" -#: ../../rst/porting_guides/porting_guide_6.rst:371 +#: ../../rst/porting_guides/porting_guide_6.rst:507 msgid "iam_mfa_device_facts - Remove deprecated alias ``iam_mfa_device_facts``. Please use ``iam_mfa_device_info`` instead." msgstr "iam_mfa_device_facts - 非推奨のエイリアス ``iam_mfa_device_facts`` を削除します。代わりに ``iam_mfa_device_info`` を使用してください。" -#: ../../rst/porting_guides/porting_guide_6.rst:372 +#: ../../rst/porting_guides/porting_guide_6.rst:508 msgid "iam_role_facts - Remove deprecated alias ``iam_role_facts``. Please use ``iam_role_info`` instead." msgstr "iam_role_facts - 非推奨のエイリアス ``iam_role_facts`` を削除します。代わりに ``iam_role_info`` を使用してください。" -#: ../../rst/porting_guides/porting_guide_6.rst:373 +#: ../../rst/porting_guides/porting_guide_6.rst:509 msgid "iam_server_certificate_facts - Remove deprecated alias ``iam_server_certificate_facts``. Please use ``iam_server_certificate_info`` instead." msgstr "iam_server_certificate_facts - 非推奨のエイリアス ``iam_server_certificate_facts`` を削除します。代わりに ``iam_server_certificate_info`` を使用してください。" -#: ../../rst/porting_guides/porting_guide_6.rst:374 +#: ../../rst/porting_guides/porting_guide_6.rst:510 msgid "lambda_facts - Remove deprecated module lambda_facts``. Please use ``lambda_info`` instead." msgstr "lambda_facts - 非推奨のモジュール lambda_facts を削除します。代わりに``. Please use ``lambda_info'' を使用してください。" -#: ../../rst/porting_guides/porting_guide_6.rst:375 +#: ../../rst/porting_guides/porting_guide_6.rst:511 msgid "rds - Removed deprecated ``community.aws.rds`` module. Please use ``community.aws.rds_instance`` (https://github.com/ansible-collections/community.aws/pull/839)." msgstr "RDS - 非推奨の ``community.aws.rds`` モジュールを削除しました。``community.aws.rds_instance`` を使用してください(https://github.com/ansible-collections/community.aws/pull/839)。" -#: ../../rst/porting_guides/porting_guide_6.rst:376 +#: ../../rst/porting_guides/porting_guide_6.rst:512 msgid "rds_instance_facts - Remove deprecated alias ``rds_instance_facts``. Please use ``rds_instance_info`` instead." msgstr "rds_instance_facts - 非推奨のエイリアス ``rds_instance_facts`` を削除します。代わりに ``rds_instance_info`` を使用してください。" -#: ../../rst/porting_guides/porting_guide_6.rst:377 +#: ../../rst/porting_guides/porting_guide_6.rst:513 msgid "rds_snapshot_facts - Remove deprecated alias ``rds_snapshot_facts``. Please use ``rds_snapshot_info`` instead." msgstr "rds_snapshot_facts - 非推奨のエイリアス ``rds_snapshot_facts`` を削除します。代わりに ``rds_snapshot_info`` を使用してください。" -#: ../../rst/porting_guides/porting_guide_6.rst:378 +#: ../../rst/porting_guides/porting_guide_6.rst:514 msgid "redshift_facts - Remove deprecated alias ``redshift_facts``. Please use ``redshift_info`` instead." msgstr "redshift_facts - 非推奨のエイリアス ``redshift_facts`` を削除します。代わりに ``redshift_info`` を使用してください。" -#: ../../rst/porting_guides/porting_guide_6.rst:379 +#: ../../rst/porting_guides/porting_guide_6.rst:515 msgid "route53_facts - Remove deprecated alias ``route53_facts``. Please use ``route53_info`` instead." msgstr "route53_facts - 非推奨のエイリアス ``route53_facts`` を削除します。代わりに ``route53_info`` を使用してください。" -#: ../../rst/porting_guides/porting_guide_6.rst:384 +#: ../../rst/porting_guides/porting_guide_6.rst:520 msgid "Parts of this collection do not work with ansible-core 2.11 on Python 3.12+. Please either upgrade to ansible-core 2.12+, or use Python 3.11 or earlier (https://github.com/ansible-collections/community.general/pull/3988)." msgstr "このコレクションの一部は、Python 3.12+ の ansible-core 2.11 では機能しません。ansible-core 2.12+ にアップグレードするか、Python 3.11 以前を使用してください (https://github.com/ansible-collections/community.general/pull/3988)。" -#: ../../rst/porting_guides/porting_guide_6.rst:385 +#: ../../rst/porting_guides/porting_guide_6.rst:521 msgid "The symbolic links used to implement flatmapping for all modules were removed and replaced by ``meta/runtime.yml`` redirects. This effectively breaks compatibility with Ansible 2.9 for all modules (without using their \"long\" names, which is discouraged and which can change without previous notice since they are considered an implementation detail) (https://github.com/ansible-collections/community.general/pull/4548)." msgstr "すべてのモジュールでフラットマッピングの実装に使用されるシンボリックリンクが削除され、``meta/runtime.yml`` リダイレクトに置き換えられました。これにより、すべてのモジュールの Ansible 2.9 との互換性が事実上失われます (非推奨であり、実装の詳細とみなされるため事前の通知なしに変更できる、「長い」名前は使用しません) (https://github.com/ansible-collections/community.general/pull/4548)。" -#: ../../rst/porting_guides/porting_guide_6.rst:386 +#: ../../rst/porting_guides/porting_guide_6.rst:522 msgid "a_module test plugin - remove Ansible 2.9 compatibility code (https://github.com/ansible-collections/community.general/pull/4548)." msgstr "a_module テストプラグイン - Ansible 2.9 互換性コードを削除します (https://github.com/ansible-collections/community.general/pull/4548)。" -#: ../../rst/porting_guides/porting_guide_6.rst:387 +#: ../../rst/porting_guides/porting_guide_6.rst:523 msgid "archive - remove Ansible 2.9 compatibility code (https://github.com/ansible-collections/community.general/pull/4548)." msgstr "archive - Ansible 2.9 互換性コードを削除します (https://github.com/ansible-collections/community.general/pull/4548)。" -#: ../../rst/porting_guides/porting_guide_6.rst:388 +#: ../../rst/porting_guides/porting_guide_6.rst:524 msgid "git_config - remove Ansible 2.9 and early ansible-base 2.10 compatibility code (https://github.com/ansible-collections/community.general/pull/4548)." msgstr "git_config - Ansible 2.9 および初期 ansible-base 2.10 互換性コードを削除します (https://github.com/ansible-collections/community.general/pull/4548)。" -#: ../../rst/porting_guides/porting_guide_6.rst:389 +#: ../../rst/porting_guides/porting_guide_6.rst:525 msgid "java_keystore - remove Ansible 2.9 compatibility code (https://github.com/ansible-collections/community.general/pull/4548)." msgstr "java_keystore - Ansible 2.9 互換コードを削除します(https://github.com/ansible-collections/community.general/pull/4548)。" -#: ../../rst/porting_guides/porting_guide_6.rst:390 +#: ../../rst/porting_guides/porting_guide_6.rst:526 msgid "lists_mergeby and groupby_as_dict filter plugins - adjust filter plugin filename. This change is not visible to end-users, it only affects possible other collections importing Python paths (https://github.com/ansible-collections/community.general/pull/4625)." msgstr "lists_mergeby および groupby_as_dict フィルタープラグイン - フィルタープラグインのファイル名を調整します。この変更はエンドユーザーには表示されませんが、Python パスをインポートする他のコレクションにのみ影響があります (https://github.com/ansible-collections/community.general/pull/4625)。" -#: ../../rst/porting_guides/porting_guide_6.rst:391 +#: ../../rst/porting_guides/porting_guide_6.rst:527 msgid "lists_mergeby filter plugin - remove Ansible 2.9 compatibility code (https://github.com/ansible-collections/community.general/pull/4548)." msgstr "lists_mergeby フィルタープラグイン - Ansible2.9 互換性コードを削除します (https://github.com/ansible-collections/community.general/pull/4548)。" -#: ../../rst/porting_guides/porting_guide_6.rst:392 +#: ../../rst/porting_guides/porting_guide_6.rst:528 msgid "maven_artifact - remove Ansible 2.9 compatibility code (https://github.com/ansible-collections/community.general/pull/4548)." msgstr "maven_artifact - Ansible 2.9 互換性コードを削除します (https://github.com/ansible-collections/community.general/pull/4548)。" -#: ../../rst/porting_guides/porting_guide_6.rst:393 +#: ../../rst/porting_guides/porting_guide_6.rst:529 msgid "memcached cache plugin - remove Ansible 2.9 compatibility code (https://github.com/ansible-collections/community.general/pull/4548)." msgstr "memcached キャッシュプラグイン - Ansible2.9 互換性コードを削除します (https://github.com/ansible-collections/community.general/pull/4548)。" -#: ../../rst/porting_guides/porting_guide_6.rst:394 +#: ../../rst/porting_guides/porting_guide_6.rst:530 msgid "path_join filter plugin shim - remove Ansible 2.9 compatibility code (https://github.com/ansible-collections/community.general/pull/4548)." msgstr "path_join フィルタープラグインshim _ Ansible 2.9 互換性コードを削除します (https://github.com/ansible-collections/community.general/pull/4548)。" -#: ../../rst/porting_guides/porting_guide_6.rst:395 +#: ../../rst/porting_guides/porting_guide_6.rst:531 msgid "redis cache plugin - remove Ansible 2.9 compatibility code (https://github.com/ansible-collections/community.general/pull/4548)." msgstr "redis キャッシュプラグイン - Ansible2.9 互換性コードを削除します (https://github.com/ansible-collections/community.general/pull/4548)。" -#: ../../rst/porting_guides/porting_guide_6.rst:396 +#: ../../rst/porting_guides/porting_guide_6.rst:532 msgid "yarn - remove unsupported and unnecessary ``--no-emoji`` flag (https://github.com/ansible-collections/community.general/pull/4662)." msgstr "yarn - サポートされていない不要な ``--no-emoji`` フラグを削除します (https://github.com/ansible-collections/community.general/pull/4662)。" -#: ../../rst/porting_guides/porting_guide_6.rst:401 +#: ../../rst/porting_guides/porting_guide_6.rst:537 msgid "mysql_replication - remove ``Is_Slave`` and ``Is_Master`` return values (were replaced with ``Is_Primary`` and ``Is_Replica`` (https://github.com/ansible-collections /community.mysql/issues/145)." msgstr "mysql_replication - ``Is_Slave``と``Is_Master``戻り値を削除します (``Is_Primary`` と ``Is_Replica`` に置き換えられました (https://github.com/ansible-collections/community.mysql/issues/145))。" -#: ../../rst/porting_guides/porting_guide_6.rst:402 +#: ../../rst/porting_guides/porting_guide_6.rst:538 msgid "mysql_replication - remove the mode options values containing ``master``/``slave`` and the master_use_gtid option ``slave_pos`` (were replaced with corresponding ``primary``/``replica`` values) (https://github.com/ansible-collections/community.mysql/issues/145)." msgstr "mysql_replication - ``master``/``slave`` および master_use_gtid オプション ``slave_pos`` (対応する ``primary``/``replica`` の値に置き換えられました) を含むモードオプション値を削除します (https://github.com/ansible-collections/community.mysql/issues/145)。" -#: ../../rst/porting_guides/porting_guide_6.rst:403 +#: ../../rst/porting_guides/porting_guide_6.rst:539 msgid "mysql_user - remove support for the `REQUIRESSL` special privilege as it has ben superseded by the `tls_requires` option (https://github.com/ansible-collections/community.mysql/discussions/121)." msgstr "mysql_user - `tls_requires` オプションに取って代わられた `REQUIRESSL` 特別権限のサポートを削除します (https://github.com/ansible-collections/community.mysql/discussions/121)。" -#: ../../rst/porting_guides/porting_guide_6.rst:404 +#: ../../rst/porting_guides/porting_guide_6.rst:540 msgid "mysql_user - validate privileges using database engine directly (https://github.com/ansible-collections/community.mysql/issues/234 https://github.com/ansible-collections/community.mysql/pull/243). Do not validate privileges in this module anymore." msgstr "mysql_user - データベースエンジンを直接使用して特権を検証します (https://github.com/ansible-collections/community.mysql/issues/234 https://github.com/ansible-collections/community.mysql/pull/243)。このモジュールの特権は、これ以上検証しないでください。" -#: ../../rst/porting_guides/porting_guide_6.rst:409 +#: ../../rst/porting_guides/porting_guide_6.rst:545 msgid "The collection now requires at least ansible-core 2.11.0. Ansible 3 and before, and ansible-base versions are no longer supported." msgstr "コレクションには、少なくとも ansible-core 2.11.0 が必要になります。Ansible 3 以前と、ansible-base バージョンはサポートされなくなりました。" -#: ../../rst/porting_guides/porting_guide_6.rst:410 +#: ../../rst/porting_guides/porting_guide_6.rst:546 msgid "vmware_cluster_drs - The default for ``enable`` has been changed from ``false`` to ``true``." msgstr "vmware_cluster_drs - ``enable`` のデフォルトが ``false`` から ``true`` に変更されました。" -#: ../../rst/porting_guides/porting_guide_6.rst:411 +#: ../../rst/porting_guides/porting_guide_6.rst:547 msgid "vmware_cluster_drs - The parameter alias ``enable_drs`` has been removed, use ``enable`` instead." msgstr "vmware_cluster_drs - パラメーターエイリアス ``enable_drs`` が削除されました。代わりに ``enable`` を使用してください。" -#: ../../rst/porting_guides/porting_guide_6.rst:412 +#: ../../rst/porting_guides/porting_guide_6.rst:548 msgid "vmware_cluster_ha - The default for ``enable`` has been changed from ``false`` to ``true``." msgstr "vmware_cluster_ha - ``enable`` のデフォルトが ``false`` から ``true`` に変更されました。" -#: ../../rst/porting_guides/porting_guide_6.rst:413 +#: ../../rst/porting_guides/porting_guide_6.rst:549 msgid "vmware_cluster_ha - The parameter alias ``enable_ha`` has been removed, use ``enable`` instead." msgstr "vmware_cluster_ha - パラメーターエイリアス ``enable_ha`` が削除されました。代わりに ``enable`` を使用してください。" -#: ../../rst/porting_guides/porting_guide_6.rst:414 +#: ../../rst/porting_guides/porting_guide_6.rst:550 msgid "vmware_cluster_vsan - The default for ``enable`` has been changed from ``false`` to ``true``." msgstr "vmware_cluster_vsan - ``enable`` のデフォルトが ``false`` から ``true`` に変更されました。" -#: ../../rst/porting_guides/porting_guide_6.rst:415 +#: ../../rst/porting_guides/porting_guide_6.rst:551 msgid "vmware_cluster_vsan - The parameter alias ``enable_vsan`` has been removed, use ``enable`` instead." msgstr "vmware_cluster_vsan - パラメーターエイリアス ``enable_vsan`` が削除されました。代わりに ``enable`` を使用してください。" -#: ../../rst/porting_guides/porting_guide_6.rst:416 +#: ../../rst/porting_guides/porting_guide_6.rst:552 msgid "vmware_guest - Virtualization Based Security has some requirements (``nested_virt``, ``secure_boot`` and ``iommu``) that the module silently enabled. They have to be enabled explicitly now." msgstr "vmware_guest - 仮想化ベースのセキュリティーには、モジュールが警告なしで有効にする要件 (``nested_virt``、``secure_boot``、および ``iommu``) がいくつかあります。これらは、明示的に有効にしなければならなくなりました。" -#: ../../rst/porting_guides/porting_guide_6.rst:421 +#: ../../rst/porting_guides/porting_guide_6.rst:557 msgid "HTTPS SSL certificate validation is a **breaking change** and will require modification in the existing playbooks. Please refer to `SSL Certificate Validation `_ section in the `README.md `_ for modification to existing playbooks." msgstr "HTTPS SSL 証明書の検証は**互換性を損なう変更**で、既存の Playbook への変更が必要になります。既存の Playbook の変更については、`README.md `_ の `SSL Certificate Validation `_ セクションを参照してください。" -#: ../../rst/porting_guides/porting_guide_6.rst:426 +#: ../../rst/porting_guides/porting_guide_6.rst:562 msgid "Set use_reports_api default value to true for the inventory plugin" msgstr "インベントリープラグインの use_reports_api のデフォルト値を true に設定します。" -#: ../../rst/porting_guides/porting_guide_6.rst:427 +#: ../../rst/porting_guides/porting_guide_6.rst:563 msgid "Support for Ansible 2.8 is removed" msgstr "Ansible 2.8 のサポートが削除されました" -#: ../../rst/porting_guides/porting_guide_6.rst:432 +#: ../../rst/porting_guides/porting_guide_6.rst:568 msgid "Add a ``ansible-community`` CLI tool that allows to print the version of the Ansible community distribution. Use ``ansible-community --version`` to print this version." msgstr "Ansible コミュニティーディストリビューションのバージョンを印刷できるようにする ``ansible-community`` CLI ツールを追加します。``ansible-community --version`` を使用してこのバージョンを出力します。" -#: ../../rst/porting_guides/porting_guide_6.rst:437 +#: ../../rst/porting_guides/porting_guide_6.rst:573 msgid "Jinja2 Controller Requirement - Jinja2 3.0.0 or newer is required for the control node (the machine that runs Ansible) (https://github.com/ansible/ansible/pull/75881)" msgstr "Jinja2 コントローラーの要件 - コントロールノード (Ansible を実行するマシン) には Jinja2 3.0.0 以降が必要です (https://github.com/ansible/ansible/pull/75881)。" -#: ../../rst/porting_guides/porting_guide_6.rst:438 +#: ../../rst/porting_guides/porting_guide_6.rst:574 msgid "Templating - remove ``safe_eval`` in favor of using ``NativeEnvironment`` but utilizing ``literal_eval`` only in cases when ``safe_eval`` was used (https://github.com/ansible/ansible/pull/75587)" msgstr "テンプレート化 - ``NativeEnvironment`` の使用を優先して ``safe_eval`` を削除しますが、``safe_eval`` が使用された場合に限り ``literal_eval`` が使用されます (https://github.com/ansible/ansible/pull/75587)。" -#: ../../rst/porting_guides/porting_guide_6.rst:443 +#: ../../rst/porting_guides/porting_guide_6.rst:579 msgid "amazon.aws collection - The amazon.aws collection has dropped support for ``botocore<1.19.0`` and ``boto3<1.16.0``. Most modules will continue to work with older versions of the AWS SDK, however compatability with older versions of the SDK is not guaranteed and will not be tested. When using older versions of the SDK a warning will be emitted by Ansible (https://github.com/ansible-collections/amazon.aws/pull/574)." msgstr "amazon.aws コレクション - amazon.aws コレクションでは ``botocore<1.19.0`` および ``boto3<1.16.0`` のサポートを廃止しました。ほとんどのモジュールは、AWS SDK の古いバージョンで引き続き機能しますが、SDK の古いバージョンとの互換性は保証されず、テストされません。古いバージョンの SDK を使用する場合は、Ansible によって警告が出力されます (https://github.com/ansible-collections/amazon.aws/pull/574)。" -#: ../../rst/porting_guides/porting_guide_6.rst:448 +#: ../../rst/porting_guides/porting_guide_6.rst:584 msgid "cli_parse - this module has been moved to the ansible.utils collection. ``ansible.netcommon.cli_parse`` will continue to work to reference the module in its new location, but this redirect will be removed in a future release" msgstr "cli_parse - このモジュールは ansible.utils コレクションに移動されました。``ansible.netcommon.cli_parse`` は、引き続き機能して新しい場所のモジュールを参照しますが、このリダイレクトは今後のリリースで削除されます。" -#: ../../rst/porting_guides/porting_guide_6.rst:449 +#: ../../rst/porting_guides/porting_guide_6.rst:585 msgid "network_cli - Change default value of `ssh_type` option from `paramiko` to `auto`. This value will use libssh if the ansible-pylibssh module is installed, otherwise will fallback to paramiko." msgstr "network_cli - `ssh_type` オプションのデフォルト値を `paramiko` から `auto` に変更します。この値は、ansible-pylibssh モジュールがインストールされている場合は libssh を使用し、それ以外の場合は paramiko にフォールバックします。" -#: ../../rst/porting_guides/porting_guide_6.rst:454 -#: ../../rst/porting_guides/porting_guide_6.rst:466 -#: ../../rst/porting_guides/porting_guide_6.rst:472 -#: ../../rst/porting_guides/porting_guide_6.rst:479 -#: ../../rst/porting_guides/porting_guide_6.rst:609 +#: ../../rst/porting_guides/porting_guide_6.rst:590 +#: ../../rst/porting_guides/porting_guide_6.rst:602 +#: ../../rst/porting_guides/porting_guide_6.rst:608 #: ../../rst/porting_guides/porting_guide_6.rst:615 -#: ../../rst/porting_guides/porting_guide_6.rst:621 -#: ../../rst/porting_guides/porting_guide_6.rst:633 -#: ../../rst/porting_guides/porting_guide_6.rst:640 +#: ../../rst/porting_guides/porting_guide_6.rst:745 +#: ../../rst/porting_guides/porting_guide_6.rst:751 +#: ../../rst/porting_guides/porting_guide_6.rst:757 +#: ../../rst/porting_guides/porting_guide_6.rst:769 +#: ../../rst/porting_guides/porting_guide_6.rst:776 msgid "Minimum required ansible.netcommon version is 2.5.1." msgstr "最低限必要な ansible.netcommon バージョンは 2.5.1 です。" -#: ../../rst/porting_guides/porting_guide_6.rst:455 -#: ../../rst/porting_guides/porting_guide_6.rst:467 -#: ../../rst/porting_guides/porting_guide_6.rst:473 -#: ../../rst/porting_guides/porting_guide_6.rst:480 -#: ../../rst/porting_guides/porting_guide_6.rst:543 -#: ../../rst/porting_guides/porting_guide_6.rst:610 +#: ../../rst/porting_guides/porting_guide_6.rst:591 +#: ../../rst/porting_guides/porting_guide_6.rst:603 +#: ../../rst/porting_guides/porting_guide_6.rst:609 #: ../../rst/porting_guides/porting_guide_6.rst:616 -#: ../../rst/porting_guides/porting_guide_6.rst:622 -#: ../../rst/porting_guides/porting_guide_6.rst:634 -#: ../../rst/porting_guides/porting_guide_6.rst:641 +#: ../../rst/porting_guides/porting_guide_6.rst:679 +#: ../../rst/porting_guides/porting_guide_6.rst:746 +#: ../../rst/porting_guides/porting_guide_6.rst:752 +#: ../../rst/porting_guides/porting_guide_6.rst:758 +#: ../../rst/porting_guides/porting_guide_6.rst:770 +#: ../../rst/porting_guides/porting_guide_6.rst:777 msgid "Updated base plugin references to ansible.netcommon." msgstr "ansible.netcommon へのベースプラグイン参照を更新しました。" -#: ../../rst/porting_guides/porting_guide_6.rst:456 +#: ../../rst/porting_guides/porting_guide_6.rst:592 msgid "`eos_facts` - change default gather_subset to `min` from `!config` (https://github.com/ansible-collections/arista.eos/issues/306)." msgstr "`eos_facts` - デフォルトの gather_subset を `min` から `!config` に変更します (https://github.com/ansible-collections/arista.eos/issues/306)。" -#: ../../rst/porting_guides/porting_guide_6.rst:474 -#: ../../rst/porting_guides/porting_guide_6.rst:481 +#: ../../rst/porting_guides/porting_guide_6.rst:610 +msgid "facts - default value for gather_subset is changed to min instead of !config." +msgstr "facts - gather_subset のデフォルト値が !config の代わりに min に変更されました。" + +#: ../../rst/porting_guides/porting_guide_6.rst:617 msgid "`facts` - default value for `gather_subset` is changed to min instead of !config." msgstr "`facts` - `gather_subset` のデフォルト値は、!config ではなく min に変更されています。" -#: ../../rst/porting_guides/porting_guide_6.rst:486 +#: ../../rst/porting_guides/porting_guide_6.rst:622 msgid "Update ciscoisesdk requirement to 1.2.0" msgstr "ciscoisesdk 要件を 1.2.0 に更新" -#: ../../rst/porting_guides/porting_guide_6.rst:487 +#: ../../rst/porting_guides/porting_guide_6.rst:623 msgid "anc_endpoint_bulk_monitor_status_info - change return value, it returns BulkStatus content." msgstr "anc_endpoint_bulk_monitor_status_info - 戻り値を変更します。BulkStatus コンテンツを返します。" -#: ../../rst/porting_guides/porting_guide_6.rst:488 +#: ../../rst/porting_guides/porting_guide_6.rst:624 msgid "anc_policy_bulk_monitor_status_info - change return value, it returns BulkStatus content." msgstr "anc_policy_bulk_monitor_status_info - 戻り値を変更します。BulkStatus コンテンツを返します。" -#: ../../rst/porting_guides/porting_guide_6.rst:489 +#: ../../rst/porting_guides/porting_guide_6.rst:625 msgid "backup_last_status_info - change return value, it returns response content." msgstr "backup_last_status_info - 戻り値を変更します。応答コンテンツを返します。" -#: ../../rst/porting_guides/porting_guide_6.rst:490 +#: ../../rst/porting_guides/porting_guide_6.rst:626 msgid "device_administration_authentication_rules - deletes parameter identitySourceId." msgstr "device_administration_authentication_rules - パラメーター identitySourceId を削除します。" -#: ../../rst/porting_guides/porting_guide_6.rst:491 +#: ../../rst/porting_guides/porting_guide_6.rst:627 msgid "device_administration_authentication_rules_info - change return value, it returns response content." msgstr "device_administration_authentication_rules_info - 戻り値を変更します。応答コンテンツを返します。" -#: ../../rst/porting_guides/porting_guide_6.rst:492 +#: ../../rst/porting_guides/porting_guide_6.rst:628 msgid "device_administration_authorization_rules_info - change return value, it returns response content." msgstr "device_administration_authorization_rules_info - 戻り値を変更します。応答コンテンツを返します。" -#: ../../rst/porting_guides/porting_guide_6.rst:493 +#: ../../rst/porting_guides/porting_guide_6.rst:629 msgid "device_administration_conditions - deletes parameter attributeId." msgstr "device_administration_conditions - パラメーター attributeId を削除します。" -#: ../../rst/porting_guides/porting_guide_6.rst:494 +#: ../../rst/porting_guides/porting_guide_6.rst:630 msgid "device_administration_conditions_for_authentication_rule_info - change return value, it returns response content." msgstr "device_administration_conditions_for_authentication_rule_info - 戻り値を変更します。応答コンテンツを返します。" -#: ../../rst/porting_guides/porting_guide_6.rst:495 +#: ../../rst/porting_guides/porting_guide_6.rst:631 msgid "device_administration_conditions_for_authorization_rule_info - change return value, it returns response content." msgstr "device_administration_conditions_for_authorization_rule_info - 戻り値を変更します。応答コンテンツを返します。" -#: ../../rst/porting_guides/porting_guide_6.rst:496 +#: ../../rst/porting_guides/porting_guide_6.rst:632 msgid "device_administration_conditions_for_policy_set_info - change return value, it returns response content." msgstr "device_administration_conditions_for_policy_set_info - 戻り値を変更します。応答コンテンツを返します。" -#: ../../rst/porting_guides/porting_guide_6.rst:497 +#: ../../rst/porting_guides/porting_guide_6.rst:633 msgid "device_administration_conditions_info - change return value, it returns response content." msgstr "device_administration_conditions_info - 戻り値を変更します。応答コンテンツを返します。" -#: ../../rst/porting_guides/porting_guide_6.rst:498 +#: ../../rst/porting_guides/porting_guide_6.rst:634 msgid "device_administration_dictionary_attributes_authentication_info - change return value, it returns response content." msgstr "device_administration_dictionary_attributes_authentication_info - 戻り値を変更します。応答コンテンツを返します。" -#: ../../rst/porting_guides/porting_guide_6.rst:499 +#: ../../rst/porting_guides/porting_guide_6.rst:635 msgid "device_administration_dictionary_attributes_authorization_info - change return value, it returns response content." msgstr "device_administration_dictionary_attributes_authorization_info - 戻り値を変更します。応答コンテンツを返します。" -#: ../../rst/porting_guides/porting_guide_6.rst:500 +#: ../../rst/porting_guides/porting_guide_6.rst:636 msgid "device_administration_dictionary_attributes_policy_set_info - change return value, it returns response content." msgstr "device_administration_dictionary_attributes_policy_set_info - 戻り値を変更します。応答コンテンツを返します。" -#: ../../rst/porting_guides/porting_guide_6.rst:501 +#: ../../rst/porting_guides/porting_guide_6.rst:637 msgid "device_administration_global_exception_rules_info - change return value, it returns response content." msgstr "device_administration_global_exception_rules_info - 戻り値を変更します。応答コンテンツを返します。" -#: ../../rst/porting_guides/porting_guide_6.rst:502 +#: ../../rst/porting_guides/porting_guide_6.rst:638 msgid "device_administration_network_conditions_info - change return value, it returns response content." msgstr "device_administration_network_conditions_info - 戻り値を変更します。応答コンテンツを返します。" -#: ../../rst/porting_guides/porting_guide_6.rst:503 +#: ../../rst/porting_guides/porting_guide_6.rst:639 msgid "device_administration_time_date_conditions - deletes parameter attributeId." msgstr "device_administration_time_date_conditions - パラメーター attributeId を削除します。" -#: ../../rst/porting_guides/porting_guide_6.rst:504 +#: ../../rst/porting_guides/porting_guide_6.rst:640 msgid "device_administration_time_date_conditions_info - change return value, it returns response content." msgstr "device_administration_time_date_conditions_info - 戻り値を変更します。応答コンテンツを返します。" -#: ../../rst/porting_guides/porting_guide_6.rst:505 +#: ../../rst/porting_guides/porting_guide_6.rst:641 msgid "egress_matrix_cell_bulk_monitor_status_info - change return value, it returns BulkStatus content." msgstr "egress_matrix_cell_bulk_monitor_status_info - 戻り値を変更します。BulkStatus コンテンツを返します。" -#: ../../rst/porting_guides/porting_guide_6.rst:506 +#: ../../rst/porting_guides/porting_guide_6.rst:642 msgid "network_access_authentication_rules - deletes parameter identitySourceId." msgstr "network_access_authentication_rules - パラメーター identitySourceId を削除します。" -#: ../../rst/porting_guides/porting_guide_6.rst:507 +#: ../../rst/porting_guides/porting_guide_6.rst:643 msgid "network_access_conditions - deletes parameter attributeId." msgstr "network_access_conditions - パラメーター attributeId を削除します。" -#: ../../rst/porting_guides/porting_guide_6.rst:508 +#: ../../rst/porting_guides/porting_guide_6.rst:644 msgid "network_access_time_date_conditions - deletes parameter attributeId." msgstr "network_access_time_date_conditions - パラメーター attributeId を削除します。" -#: ../../rst/porting_guides/porting_guide_6.rst:509 +#: ../../rst/porting_guides/porting_guide_6.rst:645 msgid "node_deployment - update parameters." msgstr "node_deployment - パラメーターを更新します。" -#: ../../rst/porting_guides/porting_guide_6.rst:510 +#: ../../rst/porting_guides/porting_guide_6.rst:646 msgid "node_deployment_info - add filter and filterType parameters." msgstr "node_deployment_info - filter および filterType パラメーターを追加します。" -#: ../../rst/porting_guides/porting_guide_6.rst:511 +#: ../../rst/porting_guides/porting_guide_6.rst:647 msgid "node_group - fixes response recollection." msgstr "node_group - 応答の再コレクションを修正します。" -#: ../../rst/porting_guides/porting_guide_6.rst:512 +#: ../../rst/porting_guides/porting_guide_6.rst:648 msgid "node_group_info - fixes response recollection." msgstr "node_group_info - 応答の再コレクションを修正します。" -#: ../../rst/porting_guides/porting_guide_6.rst:513 +#: ../../rst/porting_guides/porting_guide_6.rst:649 msgid "repository_files_info - change return value, it returns response content." msgstr "repository_files_info - 戻り値を変更します。応答コンテンツを返します。" -#: ../../rst/porting_guides/porting_guide_6.rst:514 +#: ../../rst/porting_guides/porting_guide_6.rst:650 msgid "repository_info - change return value, it returns response content." msgstr "repository_info - 戻り値を変更します。応答コンテンツを返します。" -#: ../../rst/porting_guides/porting_guide_6.rst:515 +#: ../../rst/porting_guides/porting_guide_6.rst:651 msgid "sg_acl_bulk_monitor_status_info - change return value, it returns BulkStatus content." msgstr "sg_acl_bulk_monitor_status_info - 戻り値を変更します。BulkStatus コンテンツを返します。" -#: ../../rst/porting_guides/porting_guide_6.rst:516 +#: ../../rst/porting_guides/porting_guide_6.rst:652 msgid "sg_mapping_bulk_monitor_status_info - change return value, it returns BulkStatus content." msgstr "sg_mapping_bulk_monitor_status_info - 戻り値を変更します。BulkStatus コンテンツを返します。" -#: ../../rst/porting_guides/porting_guide_6.rst:517 +#: ../../rst/porting_guides/porting_guide_6.rst:653 msgid "sg_mapping_group_bulk_monitor_status_info - change return value, it returns BulkStatus content." msgstr "sg_mapping_group_bulk_monitor_status_info - 戻り値を変更します。BulkStatus コンテンツを返します。" -#: ../../rst/porting_guides/porting_guide_6.rst:518 +#: ../../rst/porting_guides/porting_guide_6.rst:654 msgid "sg_mapping_group_info - change return value, it returns BulkStatus content." msgstr "sg_mapping_group_info - 戻り値を変更します。BulkStatus コンテンツを返します。" -#: ../../rst/porting_guides/porting_guide_6.rst:519 +#: ../../rst/porting_guides/porting_guide_6.rst:655 msgid "sg_to_vn_to_vlan_bulk_monitor_status_info - change return value, it returns BulkStatus content." msgstr "sg_to_vn_to_vlan_bulk_monitor_status_info - 戻り値を変更します。BulkStatus コンテンツを返します。" -#: ../../rst/porting_guides/porting_guide_6.rst:520 +#: ../../rst/porting_guides/porting_guide_6.rst:656 msgid "sgt - change generationId type from int to str." msgstr "Sgt - generationId タイプを int から str に変更します。" -#: ../../rst/porting_guides/porting_guide_6.rst:521 +#: ../../rst/porting_guides/porting_guide_6.rst:657 msgid "sgt_bulk_monitor_status_info - change return value, it returns BulkStatus content." msgstr "sgt_bulk_monitor_status_info - 戻り値を変更します。BulkStatus コンテンツを返します。" -#: ../../rst/porting_guides/porting_guide_6.rst:522 +#: ../../rst/porting_guides/porting_guide_6.rst:658 msgid "sxp_connections_bulk_monitor_status_info - change return value, it returns BulkStatus content." msgstr "sxp_connections_bulk_monitor_status_info - 戻り値を変更します。BulkStatus コンテンツを返します。" -#: ../../rst/porting_guides/porting_guide_6.rst:523 +#: ../../rst/porting_guides/porting_guide_6.rst:659 msgid "sxp_local_bindings_bulk_monitor_status_info - change return value, it returns BulkStatus content." msgstr "sxp_local_bindings_bulk_monitor_status_info - 戻り値を変更し、BulkStatus コンテンツを返します。" -#: ../../rst/porting_guides/porting_guide_6.rst:524 +#: ../../rst/porting_guides/porting_guide_6.rst:660 msgid "sxp_vpns_bulk_monitor_status_info - change return value, it returns BulkStatus content." msgstr "sxp_vpns_bulk_monitor_status_info - 戻り値を変更します。BulkStatus コンテンツを返します。" -#: ../../rst/porting_guides/porting_guide_6.rst:525 +#: ../../rst/porting_guides/porting_guide_6.rst:661 msgid "system_certificate - new parameters portalTagTransferForSameSubject and roleTransferForSameSubject." msgstr "system_certificate - 新しいパラメーター portalTagTransferForSameSubject および roleTransferForSameSubject。" -#: ../../rst/porting_guides/porting_guide_6.rst:526 +#: ../../rst/porting_guides/porting_guide_6.rst:662 msgid "system_certificate - portalTagTransferForSameSubject parameter renamed to allowPortalTagTransferForSameSubject." msgstr "system_certificate - portalTagTransferForSameSubject パラメーターの名前が allowPortalTagTransferForSameSubject に変更されました。" -#: ../../rst/porting_guides/porting_guide_6.rst:527 +#: ../../rst/porting_guides/porting_guide_6.rst:663 msgid "system_certificate - roleTransferForSameSubject parameter renamed to allowRoleTransferForSameSubject." msgstr "system_certificate - roleTransferForSameSubject パラメーターの名前が allowRoleTransferForSameSubject に変更されました。" -#: ../../rst/porting_guides/porting_guide_6.rst:528 +#: ../../rst/porting_guides/porting_guide_6.rst:664 msgid "system_certificate_import - new parameters portalTagTransferForSameSubject and roleTransferForSameSubject." msgstr "system_certificate_import - 新しいパラメーター portalTagTransferForSameSubject および roleTransferForSameSubject。" -#: ../../rst/porting_guides/porting_guide_6.rst:529 +#: ../../rst/porting_guides/porting_guide_6.rst:665 msgid "system_certificate_import - portalTagTransferForSameSubject parameter renamed to allowPortalTagTransferForSameSubject." msgstr "system_certificate_import - portalTagTransferForSameSubject パラメーターの名前が allowPortalTagTransferForSameSubject に変更されました。" -#: ../../rst/porting_guides/porting_guide_6.rst:530 +#: ../../rst/porting_guides/porting_guide_6.rst:666 msgid "system_certificate_import - roleTransferForSameSubject parameter renamed to allowRoleTransferForSameSubject." msgstr "system_certificate_import - roleTransferForSameSubject パラメーターの名前が allowRoleTransferForSameSubject に変更されました。" -#: ../../rst/porting_guides/porting_guide_6.rst:531 +#: ../../rst/porting_guides/porting_guide_6.rst:667 msgid "trustsec_nbar_app_info - change type from str to list." msgstr "trustsec_nbar_app_info - タイプを str から list に変更します。" -#: ../../rst/porting_guides/porting_guide_6.rst:532 +#: ../../rst/porting_guides/porting_guide_6.rst:668 msgid "trustsec_vn_info - change type from str to list." msgstr "trustsec_vn_info - タイプを str から list に変更します。" -#: ../../rst/porting_guides/porting_guide_6.rst:542 +#: ../../rst/porting_guides/porting_guide_6.rst:678 msgid "The minimum required ansible.netcommon version has been bumped to v2.6.1." msgstr "最低限必要な ansible.netcommon バージョンが v2.6.1 に引き上げられました。" -#: ../../rst/porting_guides/porting_guide_6.rst:544 +#: ../../rst/porting_guides/porting_guide_6.rst:680 msgid "`nxos_facts` - change default gather_subset to `min` from `!config` (https://github.com/ansible-collections/cisco.nxos/issues/418)." msgstr "`nxos_facts` - デフォルトの gather_subset を `min` から `!config` に変更します (https://github.com/ansible-collections/cisco.nxos/issues/418)。" -#: ../../rst/porting_guides/porting_guide_6.rst:545 +#: ../../rst/porting_guides/porting_guide_6.rst:681 msgid "nxos_file_copy has been rewritten as a module. This change also removes the dependency on pexpect for file_pull operation. Since this now uses AnsibleModule class for argspec validation, the validation messages will be slighlty different. Expect changes in the return payload in some cases. All functionality remains unchanged." msgstr "nxos_file_copy がモジュールとして書き直されました。この変更により、file_pull 操作の pexpect への依存もなくなります。これで argspec 検証に AnsibleModule クラスが使用されるようになったため、検証メッセージは少し異なります。場合によっては、リターンペイロードの変更が予想されます。すべての機能は変更されません。" -#: ../../rst/porting_guides/porting_guide_6.rst:550 +#: ../../rst/porting_guides/porting_guide_6.rst:686 msgid "community.aws collection - The community.aws collection has dropped support for ``botocore<1.19.0`` and ``boto3<1.16.0``. Most modules will continue to work with older versions of the AWS SDK, however compatability with older versions of the SDK is not guaranteed and will not be tested. When using older versions of the SDK a warning will be emitted by Ansible (https://github.com/ansible-collections/community.aws/pull/809)." msgstr "community.aws コレクション - community.aws コレクションでは ``botocore<1.19.0`` および ``boto3<1.16.0`` のサポートを廃止しました。ほとんどのモジュールは、AWS SDK の古いバージョンで引き続き機能しますが、SDK の古いバージョンとの互換性は保証されず、テストされません。SDK の古いバージョンを使用する場合は、Ansible によって警告が出力されます (https://github.com/ansible-collections/community.aws/pull/809)。" -#: ../../rst/porting_guides/porting_guide_6.rst:551 +#: ../../rst/porting_guides/porting_guide_6.rst:687 msgid "s3_bucket_notifications - refactor module to support SNS / SQS targets as well as the existing support for Lambda functions (https://github.com/ansible-collections/community.aws/issues/140)." msgstr "s3_bucket_notifications - SNS/SQS ターゲットをサポートするモジュールと Lambda 関数の既存のサポートをリファクタリングします (https://github.com/ansible-collections/community.aws/issues/140)。" -#: ../../rst/porting_guides/porting_guide_6.rst:556 +#: ../../rst/porting_guides/porting_guide_6.rst:692 msgid "The community.general collection no longer supports Ansible 2.9 and ansible-base 2.10. While we take no active measures to prevent usage, we will remove a lot of compatibility code and other compatility measures that will effectively prevent using most content from this collection with Ansible 2.9, and some content of this collection with ansible-base 2.10. Both Ansible 2.9 and ansible-base 2.10 will very soon be End of Life and if you are still using them, you should consider upgrading to ansible-core 2.11 or later as soon as possible (https://github.com/ansible-collections/community.general/pull/4548)." msgstr "community.general コレクションは、Ansible 2.9 と ansible-base 2.10 をサポートしなくなりました。使用を防ぐための積極的な措置は講じていませんが、Ansible 2.9 の場合はこのコレクションのほとんどのコンテンツ、ansible-base 2.10 の場合はこのコレクションの一部のコンテンツの使用を効果的に防止する多数の互換性コードとその他の互換性措置を削除する予定です。Ansible 2.9 と ansible-base 2.10 は、どちらも間もなくライフサイクル終了日に達するため、いずれかを使用している場合は早急に ansible-core 2.11 以降にアップグレードすることを検討する必要があります (https://github.com/ansible-collections/community.general/pull/4548)。" -#: ../../rst/porting_guides/porting_guide_6.rst:566 +#: ../../rst/porting_guides/porting_guide_6.rst:702 +#: ../../rst/porting_guides/porting_guide_7.rst:619 msgid "The community.network collection no longer supports Ansible 2.9 and ansible-base 2.10. While we take no active measures to prevent usage, we will remove compatibility code and other compatility measures that will effectively prevent using most content from this collection with Ansible 2.9, and some content of this collection with ansible-base 2.10. Both Ansible 2.9 and ansible-base 2.10 will very soon be End of Life and if you are still using them, you should consider upgrading to ansible-core 2.11 or later as soon as possible (https://github.com/ansible-collections/community.network/pull/426)." msgstr "community.network コレクションは、Ansible 2.9 と ansible-base 2.10 をサポートしなくなりました。使用を防ぐための積極的な措置は講じていませんが、Ansible 2.9 の場合はこのコレクションのほとんどのコンテンツ、ansible-base 2.10 の場合はこのコレクションの一部のコンテンツの使用を効果的に防止する互換性コードとその他の互換性措置を削除する予定です。Ansible 2.9 と ansible-base 2.10 は、どちらも間もなくライフサイクル終了日に達するため、いずれかを使用している場合は早急に ansible-core 2.11 以降にアップグレードすることを検討する必要があります (https://github.com/ansible-collections/community.network/pull/426)。" -#: ../../rst/porting_guides/porting_guide_6.rst:572 +#: ../../rst/porting_guides/porting_guide_6.rst:708 msgid "postgresql_privs - the ``usage_on_types`` feature have been deprecated and will be removed in ``community.postgresql 3.0.0``. Please use the ``type`` option with the ``type`` value to explicitly grant/revoke privileges on types (https://github.com/ansible-collections/community.postgresql/issues/207)." msgstr "postgresql_privs - ``usage_on_types`` 機能は非推奨となり、``community.postgresql 3.0.0`` で削除されます。``type`` 値で ``type`` オプション を使用し、タイプの特権を明示的に付与/取り消してください (https://github.com/ansible-collections/community.postgresql/issues/207)。" -#: ../../rst/porting_guides/porting_guide_6.rst:573 +#: ../../rst/porting_guides/porting_guide_6.rst:709 msgid "postgresql_query - the ``path_to_script`` and ``as_single_query`` options as well as the ``query_list`` and ``query_all_results`` return values have been deprecated and will be removed in ``community.postgresql 3.0.0``. Please use the ``community.postgresql.postgresql_script`` module to execute statements from scripts (https://github.com/ansible-collections/community.postgresql/issues/189)." -msgstr "postgresql_query - ``path_to_script`` オプションと ``as_single_query`` オプション、および ``query_list`` および ``query_all_results`` の戻り値は非推奨となり、``community.postgresql 3.0.0`` で削除されます。``community.postgresql.postgresql_script`` モジュールを使用して、スクリプトからステートメントを実行してください (https://github.com/ansible-collections/community.postgresql/issues/189)。" +msgstr "postgresql_query - ``path_to_script`` オプションと ``as_single_query`` オプション、および ``query_list`` と ``query_all_results`` の戻り値は非推奨となり、``community.postgresql 3.0.0`` で削除されます。``community.postgresql.postgresql_script`` モジュールを使用して、スクリプトからステートメントを実行してください (https://github.com/ansible-collections/community.postgresql/issues/189)。" -#: ../../rst/porting_guides/porting_guide_6.rst:574 +#: ../../rst/porting_guides/porting_guide_6.rst:710 msgid "postgresql_query - the default value of the ``as_single_query`` option changes to ``yes``. If the related behavior of your tasks where the module is involved changes, please adjust the parameter's value correspondingly (https://github.com/ansible-collections/community.postgresql/issues/85)." msgstr "postgresql_query - ``as_single_query`` オプションのデフォルト値が ``yes`` に変更されます。モジュールが関係するタスクの関連動作が変更される場合は、対応するパラメーターの値を適宜調整してください (https://github.com/ansible-collections/community.postgresql/issues/85)。" -#: ../../rst/porting_guides/porting_guide_6.rst:580 +#: ../../rst/porting_guides/porting_guide_6.rst:716 msgid "Drop VCSIM as a test target (https://github.com/ansible-collections/community.vmware/pull/1294)." msgstr "テストターゲットとして VCSIM を破棄します (https://github.com/ansible-collections/community.vmware/pull/1294)。" -#: ../../rst/porting_guides/porting_guide_6.rst:591 +#: ../../rst/porting_guides/porting_guide_6.rst:727 msgid "All modules can read custom or organizational CA signed certificate from the environment variables. Please refer to `SSL Certificate Validation `_ section in the `README.md `_ for modification to existing playbooks or setting environment variable." msgstr "すべてのモジュールは、環境変数からカスタムまたは組織 CA 署名証明書を読み取ることができます。既存の Playbook の変更や環境変数の設定については、`README.md `_ の `SSL Certificate Validation `_ セクションを参照してください。" -#: ../../rst/porting_guides/porting_guide_6.rst:592 +#: ../../rst/porting_guides/porting_guide_6.rst:728 msgid "All modules now support SSL over HTTPS and socket level timeout." msgstr "すべてのモジュールが、SSL over HTTPS およびソケットレベルのタイムアウトをサポートするようになりました。" -#: ../../rst/porting_guides/porting_guide_6.rst:593 +#: ../../rst/porting_guides/porting_guide_6.rst:729 msgid "idrac_server_config_profile - The module is enhanced to support export, import, and preview the SCP configuration using Redfish and added support for check mode." msgstr "idrac_server_config_profile - モジュールは、Redfish を使用した SCP 設定のエクスポート、インポート、およびプレビューをサポートするように拡張され、チェックモードのサポートが追加されました。" -#: ../../rst/porting_guides/porting_guide_6.rst:607 +#: ../../rst/porting_guides/porting_guide_6.rst:743 msgid "frr.frr" msgstr "frr.frr" -#: ../../rst/porting_guides/porting_guide_6.rst:613 +#: ../../rst/porting_guides/porting_guide_6.rst:749 msgid "ibm.qradar" msgstr "ibm.qradar" -#: ../../rst/porting_guides/porting_guide_6.rst:623 +#: ../../rst/porting_guides/porting_guide_6.rst:759 msgid "`junos_facts` - change default gather_subset to `min` from `!config`." msgstr "`junos_facts` - デフォルトの gather_subset を `min` から `!config` に変更します。" -#: ../../rst/porting_guides/porting_guide_6.rst:628 +#: ../../rst/porting_guides/porting_guide_6.rst:764 msgid "manageiq - role removed (https://github.com/oVirt/ovirt-ansible-collection/pull/375)." msgstr "pidgin - ロールが削除されました(https://github.com/oVirt/ovirt-ansible-collection/pull/375)。" -#: ../../rst/porting_guides/porting_guide_6.rst:631 +#: ../../rst/porting_guides/porting_guide_6.rst:767 msgid "splunk.es" msgstr "splunk.es" -#: ../../rst/porting_guides/porting_guide_6.rst:642 +#: ../../rst/porting_guides/porting_guide_6.rst:778 msgid "`vyos_facts` - change default gather_subset to `min` from `!config` (https://github.com/ansible-collections/vyos.vyos/issues/231)." msgstr "`vyos_facts` - デフォルトの gather_subset を `min` から `!config` に変更します (https://github.com/ansible-collections/vyos.vyos/issues/231)。" -#: ../../rst/porting_guides/porting_guide_6.rst:645 -#: ../../rst/porting_guides/porting_guide_7.rst:290 +#: ../../rst/porting_guides/porting_guide_6.rst:781 +#: ../../rst/porting_guides/porting_guide_7.rst:681 msgid "Removed Collections" msgstr "削除されたコレクション" -#: ../../rst/porting_guides/porting_guide_6.rst:647 +#: ../../rst/porting_guides/porting_guide_6.rst:783 msgid "community.kubernetes (previously included version: 2.0.1)" msgstr "community.kubernetes (これまで含まれていたバージョン:2.0.1)" -#: ../../rst/porting_guides/porting_guide_6.rst:648 +#: ../../rst/porting_guides/porting_guide_6.rst:784 msgid "community.kubevirt (previously included version: 1.0.0)" msgstr "community.kubevirt (これまで含まれていたバージョン:1.0.0)" -#: ../../rst/porting_guides/porting_guide_6.rst:653 +#: ../../rst/porting_guides/porting_guide_6.rst:789 msgid "The community.kubernetes collection has been removed from Ansible 6. It has been deprecated since Ansible 4.2, and version 2.0.0 included since Ansible 5 is only a set of deprecated redirects from community.kubernetes to kubernetes.core. If you still need the redirects, you can manually install community.kubernetes with ``ansible-galaxy collection install community.kubernetes`` (https://github.com/ansible-community/community-topics/issues/93)." msgstr "community.kubernetes コレクションは Ansible 6 から削除されました。Ansible 4.2 以降は非推奨となり、Ansible5 が community.kubernetes から kubernetes.core への非推奨リダイレクトのセットであるためバージョン 2.0.0 が含まれています。それでもリダイレクトが必要な場合は、``ansible-galaxy collection install community.kubernetes`` で community.kubernetes を手動でインストールできます (https://github.com/ansible-community/community-topics/issues/93)。" -#: ../../rst/porting_guides/porting_guide_6.rst:654 +#: ../../rst/porting_guides/porting_guide_6.rst:790 msgid "The community.kubevirt collection has been removed from Ansible 6. It has not been working with the community.kubernetes collection included since Ansible 5.0.0, and unfortunately nobody managed to adjust the collection to work with kubernetes.core >= 2.0.0. If you need to use this collection, you need to manually install community.kubernetes < 2.0.0 together with community.kubevirt with ``ansible-galaxy collection install community.kubevirt 'community.kubernetes:<2.0.0'`` (https://github.com/ansible-community/community-topics/issues/92)." msgstr "community.kubevirt コレクションは Ansible 6 から削除されました。Ansible 5.0.0 以降に含まれている community.kubernetes コレクションでは機能していません。残念ながら、kubernetes.core>=2.0.0 で機能するようにコレクションを調整することはできませんでした。このコレクションを使用する必要がある場合は、2.0.0 より前の community.kubernetes を community.kubevirt と ``ansible-galaxy collection install community.kubevirt 'community.kubernetes:<2.0.0'`` と一緒に手動でインストールする必要があります (https://github.com/ansible-community/community-topics/issues/92)。" -#: ../../rst/porting_guides/porting_guide_6.rst:659 +#: ../../rst/porting_guides/porting_guide_6.rst:795 msgid "Remove deprecated ``Templar.set_available_variables()`` method (https://github.com/ansible/ansible/issues/75828)" msgstr "非推奨の ``Templar.set_available_variables()`` メソッドを削除します (https://github.com/ansible/ansible/issues/75828)" -#: ../../rst/porting_guides/porting_guide_6.rst:660 +#: ../../rst/porting_guides/porting_guide_6.rst:796 msgid "cli - remove deprecated ability to set verbosity before the sub-command (https://github.com/ansible/ansible/issues/75823)" msgstr "cli - サブコマンドの前に冗長性を設定する非推奨の機能を削除します (https://github.com/ansible/ansible/issues/75823)" -#: ../../rst/porting_guides/porting_guide_6.rst:661 +#: ../../rst/porting_guides/porting_guide_6.rst:797 msgid "copy - remove deprecated ``thirsty`` alias (https://github.com/ansible/ansible/issues/75824)" msgstr "copy - 非推奨の ``thirsty`` エイリアスを削除します (https://github.com/ansible/ansible/issues/75824)" -#: ../../rst/porting_guides/porting_guide_6.rst:662 +#: ../../rst/porting_guides/porting_guide_6.rst:798 msgid "psrp - Removed fallback on ``put_file`` with older ``pypsrp`` versions. Users must have at least ``pypsrp>=0.4.0``." msgstr "PSRP - 古い ``put_file`` バージョンで ``pypsrp`` のフォールバックを削除しました。ユーザーは少なくとも ``pypsrp>=0.4.0`` が必要です。" -#: ../../rst/porting_guides/porting_guide_6.rst:663 +#: ../../rst/porting_guides/porting_guide_6.rst:799 msgid "url_argument_spec - remove deprecated ``thirsty`` alias for ``get_url`` and ``uri`` modules (https://github.com/ansible/ansible/issues/75825, https://github.com/ansible/ansible/issues/75826)" msgstr "url_argument_spec - ``thirsty`` および ``get_url`` モジュールの非推奨の ``uri`` エイリアスを削除します (https://github.com/ansible/ansible/issues/75825、https://github.com/ansible/ansible/issues/75826)。" -#: ../../rst/porting_guides/porting_guide_6.rst:668 +#: ../../rst/porting_guides/porting_guide_6.rst:804 msgid "ali_instance_info - removed the options ``availability_zone``, ``instance_ids``, and ``instance_names``. Use filter item ``zone_id`` instead of ``availability_zone``, filter item ``instance_ids`` instead of ``instance_ids``, and filter item ``instance_name`` instead of ``instance_names`` (https://github.com/ansible-collections/community.general/pull/4516)." msgstr "ali_instance_info - オプション ``availability_zone``、``instance_ids``、および ``instance_names`` が削除されました。``availability_zone`` の代わりにフィルターアイテム ``zone_id``、``instance_ids`` の代わりにフィルターアイテム ``instance_ids``、``instance_names`` の代わりにフィルターアイテム ``instance_name`` を使用します (https://github.com/ansible-collections/community.general/pull/4516)。" -#: ../../rst/porting_guides/porting_guide_6.rst:669 +#: ../../rst/porting_guides/porting_guide_6.rst:805 msgid "apt_rpm - removed the deprecated alias ``update-cache`` of ``update_cache`` (https://github.com/ansible-collections/community.general/pull/4516)." msgstr "apt_rpm - ``update_cache`` の非推奨のエイリアス ``update-cache`` を削除しました (https://github.com/ansible-collections/community.general/pull/4516)。" -#: ../../rst/porting_guides/porting_guide_6.rst:670 +#: ../../rst/porting_guides/porting_guide_6.rst:806 msgid "compose - removed various deprecated aliases. Use the version with ``_`` instead of ``-`` instead (https://github.com/ansible-collections/community.general/pull/4516)." msgstr "Compose - 非推奨のさまざまなエイリアスを削除しました。このバージョンでは ``-`` の代わりに ``_`` を使用します (https://github.com/ansible-collections/community.general/pull/4516)。" -#: ../../rst/porting_guides/porting_guide_6.rst:671 +#: ../../rst/porting_guides/porting_guide_6.rst:807 msgid "dnsimple - remove support for dnsimple < 2.0.0 (https://github.com/ansible-collections/community.general/pull/4516)." msgstr "dnsimple - dnsimple < 2.0.0 のサポートを削除します (https://github.com/ansible-collections/community.general/pull/4516)。" -#: ../../rst/porting_guides/porting_guide_6.rst:672 +#: ../../rst/porting_guides/porting_guide_6.rst:808 msgid "github_deploy_key - removed the deprecated alias ``2fa_token`` of ``otp`` (https://github.com/ansible-collections/community.general/pull/4516)." msgstr "github_deploy_key - ``otp`` の 非推奨エイリアス ``2fa_token`` を削除しました (https://github.com/ansible-collections/community.general/pull/4516)。" -#: ../../rst/porting_guides/porting_guide_6.rst:673 +#: ../../rst/porting_guides/porting_guide_6.rst:809 msgid "homebrew, homebrew_cask - removed the deprecated alias ``update-brew`` of ``update_brew`` (https://github.com/ansible-collections/community.general/pull/4516)." msgstr "homebrew、homebrew_cask - ``update_brew`` の非推奨エイリアス ``update-brew`` を削除しました (https://github.com/ansible-collections/community.general/pull/4516)。" -#: ../../rst/porting_guides/porting_guide_6.rst:674 +#: ../../rst/porting_guides/porting_guide_6.rst:810 msgid "linode - removed the ``backupsenabled`` option. Use ``backupweeklyday`` or ``backupwindow`` to enable backups (https://github.com/ansible-collections/community.general/pull/4516)." msgstr "linode - ``backupsenabled`` オプションを削除しました。バックアップを有効にするには、``backupweeklyday`` または ``backupwindow`` を使用してください (https://github.com/ansible-collections/community.general/pull/4516)。" -#: ../../rst/porting_guides/porting_guide_6.rst:675 +#: ../../rst/porting_guides/porting_guide_6.rst:811 msgid "opkg - removed the deprecated alias ``update-cache`` of ``update_cache`` (https://github.com/ansible-collections/community.general/pull/4516)." msgstr "opkg - ``update_cache`` の 非推奨エイリアス ``update-cache`` を削除しました (https://github.com/ansible-collections/community.general/pull/4516)。" -#: ../../rst/porting_guides/porting_guide_6.rst:676 +#: ../../rst/porting_guides/porting_guide_6.rst:812 msgid "pacman - if ``update_cache=true`` is used with ``name`` or ``upgrade``, the changed state will now also indicate if only the cache was updated. To keep the old behavior - only indicate ``changed`` when a package was installed/upgraded -, use ``changed_when`` as indicated in the module examples (https://github.com/ansible-collections/community.general/pull/4516)." msgstr "pacman - ``update_cache=true`` が ``name`` または ``upgrade`` と使用されている場合、変更された状態はキャッシュのみが更新されているかどうかも示すようになりました。以前の動作 (パッケージのインストール/アップグレード時のみ ``changed`` を示す) を維持するには、モジュール例に示されているように ``changed_when`` を使用します (https://github.com/ansible-collections/community.general/pull/4516)。" -#: ../../rst/porting_guides/porting_guide_6.rst:677 +#: ../../rst/porting_guides/porting_guide_6.rst:813 msgid "pacman - removed the deprecated alias ``update-cache`` of ``update_cache`` (https://github.com/ansible-collections/community.general/pull/4516)." msgstr "pacman - ``update_cache`` の 非推奨エイリアス ``update-cache`` を削除しました (https://github.com/ansible-collections/community.general/pull/4516)。" -#: ../../rst/porting_guides/porting_guide_6.rst:678 +#: ../../rst/porting_guides/porting_guide_6.rst:814 msgid "proxmox, proxmox_kvm, proxmox_snap - no longer allow to specify a VM name that matches multiple VMs. If this happens, the modules now fail (https://github.com/ansible-collections/community.general/pull/4516)." msgstr "proxmox、proxmox_kvm、proxmox_snap - 複数の仮想マシンに一致する仮想マシン名を指定できなくなりました。これが発生した場合、モジュールは失敗します (https://github.com/ansible-collections/community.general/pull/4516)。" -#: ../../rst/porting_guides/porting_guide_6.rst:679 +#: ../../rst/porting_guides/porting_guide_6.rst:815 msgid "serverless - removed the ``functions`` option. It was not used by the module (https://github.com/ansible-collections/community.general/pull/4516)." msgstr "serverless - ``functions`` オプションを削除しました。モジュールで使用されていませんでした (https://github.com/ansible-collections/community.general/pull/4516)。" -#: ../../rst/porting_guides/porting_guide_6.rst:680 +#: ../../rst/porting_guides/porting_guide_6.rst:816 msgid "slackpkg - removed the deprecated alias ``update-cache`` of ``update_cache`` (https://github.com/ansible-collections/community.general/pull/4516)." msgstr "slackpkg - ``update_cache`` の 非推奨エイリアス ``update-cache`` を削除しました (https://github.com/ansible-collections/community.general/pull/4516)。" -#: ../../rst/porting_guides/porting_guide_6.rst:681 +#: ../../rst/porting_guides/porting_guide_6.rst:817 msgid "urpmi - removed the deprecated alias ``no-recommends`` of ``no_recommends`` (https://github.com/ansible-collections/community.general/pull/4516)." msgstr "urpmi - ``no_recommends`` の 非推奨エイリアス ``no-recommends`` を削除しました (https://github.com/ansible-collections/community.general/pull/4516)。" -#: ../../rst/porting_guides/porting_guide_6.rst:682 +#: ../../rst/porting_guides/porting_guide_6.rst:818 msgid "urpmi - removed the deprecated alias ``update-cache`` of ``update_cache`` (https://github.com/ansible-collections/community.general/pull/4516)." msgstr "urpmi - ``update_cache`` の 非推奨エイリアス ``update-cache`` を削除しました (https://github.com/ansible-collections/community.general/pull/4516)。" -#: ../../rst/porting_guides/porting_guide_6.rst:683 +#: ../../rst/porting_guides/porting_guide_6.rst:819 msgid "xbps - removed the deprecated alias ``update-cache`` of ``update_cache`` (https://github.com/ansible-collections/community.general/pull/4516)." msgstr "xbps - ``update_cache`` の 非推奨エイリアス ``update-cache`` を削除しました (https://github.com/ansible-collections/community.general/pull/4516)。" -#: ../../rst/porting_guides/porting_guide_6.rst:684 +#: ../../rst/porting_guides/porting_guide_6.rst:820 msgid "xfconf - the ``get`` state has been removed. Use the ``xfconf_info`` module instead (https://github.com/ansible-collections/community.general/pull/4516)." msgstr "xfconf - ``get`` 状態が削除されました。代わりに ``xfconf_info`` モジュールを使用してください (https://github.com/ansible-collections/community.general/pull/4516)。" -#: ../../rst/porting_guides/porting_guide_6.rst:689 +#: ../../rst/porting_guides/porting_guide_6.rst:825 msgid "aws_iam auth - the deprecated alias ``aws_iam_login`` for the ``aws_iam`` value of the ``auth_method`` option has been removed (https://github.com/ansible-collections/community.hashi_vault/issues/194)." msgstr "aws_iam auth - ``auth_method`` オプションの ``aws_iam`` 値の非推奨エイリアス ``aws_iam_login`` は削除されました (https://github.com/ansible-collections/community.hashi_vault/issues/194)。" -#: ../../rst/porting_guides/porting_guide_6.rst:690 +#: ../../rst/porting_guides/porting_guide_6.rst:826 msgid "community.hashi_vault collection - support for Ansible 2.9 and ansible-base 2.10 has been removed (https://github.com/ansible-collections/community.hashi_vault/issues/189)." msgstr "community.hashi_vault コレクション - Ansible 2.9 および ansible-base 2.10 のサポートが削除されました (https://github.com/ansible-collections/community.hashi_vault/issues/189)。" -#: ../../rst/porting_guides/porting_guide_6.rst:691 +#: ../../rst/porting_guides/porting_guide_6.rst:827 msgid "hashi_vault lookup - the deprecated ``[lookup_hashi_vault]`` INI config section has been removed in favor of the collection-wide ``[hashi_vault_collection]`` section (https://github.com/ansible-collections/community.hashi_vault/issues/179)." msgstr "hashi_vault ルックアップ - コレクション全体の ``[lookup_hashi_vault]`` セクションが優先されるため、非推奨の ``[hashi_vault_collection]`` INI 設定セクションが削除されました (https://github.com/ansible-collections/community.hashi_vault/issues/179)。" -#: ../../rst/porting_guides/porting_guide_6.rst:697 +#: ../../rst/porting_guides/porting_guide_6.rst:833 +#: ../../rst/porting_guides/porting_guide_7.rst:886 msgid "aireos modules - removed deprecated ``connection: local`` support. Use ``connection: network_cli`` instead (https://github.com/ansible-collections/community.network/pull/440)." msgstr "aireos モジュール - 非推奨の ``connection: local`` サポートが削除されました。代わりに ``connection: network_cli`` を使用してください (https://github.com/ansible-collections/community.network/pull/440)。" -#: ../../rst/porting_guides/porting_guide_6.rst:698 +#: ../../rst/porting_guides/porting_guide_6.rst:834 +#: ../../rst/porting_guides/porting_guide_7.rst:887 msgid "aireos modules - removed deprecated ``provider`` option. Use ``connection: network_cli`` instead (https://github.com/ansible-collections/community.network/pull/440)." msgstr "aireos モジュール - 非推奨の ``provider`` オプションが削除されました。代わりに ``connection: network_cli`` を使用してください (https://github.com/ansible-collections/community.network/pull/440)。" -#: ../../rst/porting_guides/porting_guide_6.rst:699 +#: ../../rst/porting_guides/porting_guide_6.rst:835 +#: ../../rst/porting_guides/porting_guide_7.rst:888 msgid "aruba modules - removed deprecated ``connection: local`` support. Use ``connection: network_cli`` instead (https://github.com/ansible-collections/community.network/pull/440)." msgstr "aruba モジュール - 非推奨の ``connection: local`` サポートが削除されました。代わりに ``connection: network_cli`` を使用してください (https://github.com/ansible-collections/community.network/pull/440)。" -#: ../../rst/porting_guides/porting_guide_6.rst:700 +#: ../../rst/porting_guides/porting_guide_6.rst:836 +#: ../../rst/porting_guides/porting_guide_7.rst:889 msgid "aruba modules - removed deprecated ``provider`` option. Use ``connection: network_cli`` instead (https://github.com/ansible-collections/community.network/pull/440)." msgstr "aruba モジュール - 非推奨の ``provider`` オプションが削除されました。代わりに ``connection: network_cli`` を使用してください (https://github.com/ansible-collections/community.network/pull/440)。" -#: ../../rst/porting_guides/porting_guide_6.rst:701 +#: ../../rst/porting_guides/porting_guide_6.rst:837 +#: ../../rst/porting_guides/porting_guide_7.rst:890 msgid "ce modules - removed deprecated ``connection: local`` support. Use ``connection: network_cli`` instead (https://github.com/ansible-collections/community.network/pull/440)." msgstr "ce モジュール - 非推奨の ``connection: local`` サポートが削除されました。代わりに ``connection: network_cli`` を使用してください (https://github.com/ansible-collections/community.network/pull/440)。" -#: ../../rst/porting_guides/porting_guide_6.rst:702 +#: ../../rst/porting_guides/porting_guide_6.rst:838 +#: ../../rst/porting_guides/porting_guide_7.rst:891 msgid "ce modules - removed deprecated ``provider`` option. Use ``connection: network_cli`` instead (https://github.com/ansible-collections/community.network/pull/440)." msgstr "ce モジュール - 非推奨の ``provider`` オプションが削除されました。代わりに ``connection: network_cli`` を使用してください (https://github.com/ansible-collections/community.network/pull/440)。" -#: ../../rst/porting_guides/porting_guide_6.rst:703 +#: ../../rst/porting_guides/porting_guide_6.rst:839 +#: ../../rst/porting_guides/porting_guide_7.rst:892 msgid "enos modules - removed deprecated ``connection: local`` support. Use ``connection: network_cli`` instead (https://github.com/ansible-collections/community.network/pull/440)." msgstr "enos モジュール - 非推奨の ``connection: local`` サポートが削除されました。代わりに ``connection: network_cli`` を使用してください (https://github.com/ansible-collections/community.network/pull/440)。" -#: ../../rst/porting_guides/porting_guide_6.rst:704 +#: ../../rst/porting_guides/porting_guide_6.rst:840 +#: ../../rst/porting_guides/porting_guide_7.rst:893 msgid "enos modules - removed deprecated ``provider`` option. Use ``connection: network_cli`` instead (https://github.com/ansible-collections/community.network/pull/440)." msgstr "enos モジュール - 非推奨の ``provider`` オプションが削除されました。代わりに ``connection: network_cli`` を使用してください (https://github.com/ansible-collections/community.network/pull/440)。" -#: ../../rst/porting_guides/porting_guide_6.rst:705 +#: ../../rst/porting_guides/porting_guide_6.rst:841 +#: ../../rst/porting_guides/porting_guide_7.rst:894 msgid "ironware modules - removed deprecated ``connection: local`` support. Use ``connection: network_cli`` instead (https://github.com/ansible-collections/community.network/pull/440)." msgstr "ironware モジュール - 非推奨の ``connection: local`` サポートが削除されました。代わりに ``connection: network_cli`` を使用してください (https://github.com/ansible-collections/community.network/pull/440)。" -#: ../../rst/porting_guides/porting_guide_6.rst:706 +#: ../../rst/porting_guides/porting_guide_6.rst:842 +#: ../../rst/porting_guides/porting_guide_7.rst:895 msgid "ironware modules - removed deprecated ``provider`` option. Use ``connection: network_cli`` instead (https://github.com/ansible-collections/community.network/pull/440)." msgstr "ironware モジュール - 非推奨の ``provider`` オプションが削除されました。代わりに ``connection: network_cli`` を使用してください (https://github.com/ansible-collections/community.network/pull/440)。" -#: ../../rst/porting_guides/porting_guide_6.rst:707 +#: ../../rst/porting_guides/porting_guide_6.rst:843 +#: ../../rst/porting_guides/porting_guide_7.rst:896 msgid "sros modules - removed deprecated ``connection: local`` support. Use ``connection: network_cli`` instead (https://github.com/ansible-collections/community.network/pull/440)." msgstr "sros モジュール - 非推奨の ``connection: local`` サポートが削除されました。代わりに ``connection: network_cli`` を使用してください (https://github.com/ansible-collections/community.network/pull/440)。" -#: ../../rst/porting_guides/porting_guide_6.rst:708 +#: ../../rst/porting_guides/porting_guide_6.rst:844 +#: ../../rst/porting_guides/porting_guide_7.rst:897 msgid "sros modules - removed deprecated ``provider`` option. Use ``connection: network_cli`` instead (https://github.com/ansible-collections/community.network/pull/440)." msgstr "sros モジュール - 非推奨の ``provider`` オプションが削除されました。代わりに ``connection: network_cli`` を使用してください (https://github.com/ansible-collections/community.network/pull/440)。" -#: ../../rst/porting_guides/porting_guide_6.rst:713 +#: ../../rst/porting_guides/porting_guide_6.rst:849 msgid "vcenter_extension_facts - The deprecated module ``vcenter_extension_facts`` has been removed, use ``vcenter_extension_info`` instead." msgstr "vcenter_extension_facts - 非推奨のモジュール ``vcenter_extension_facts`` が削除されました。代わりに ``vcenter_extension_info`` を使用してください。" -#: ../../rst/porting_guides/porting_guide_6.rst:714 +#: ../../rst/porting_guides/porting_guide_6.rst:850 msgid "vmware_about_facts - The deprecated module ``vmware_about_facts`` has been removed, use ``vmware_about_info`` instead." msgstr "vmware_about_facts - 非推奨のモジュール ``vmware_about_facts`` が削除されました。代わりに ``vmware_about_info`` を使用してください。" -#: ../../rst/porting_guides/porting_guide_6.rst:715 +#: ../../rst/porting_guides/porting_guide_6.rst:851 msgid "vmware_category_facts - The deprecated module ``vmware_category_facts`` has been removed, use ``vmware_category_info`` instead." msgstr "vmware_category_facts - 非推奨のモジュール ``vmware_category_facts`` が削除されました。代わりに ``vmware_category_info`` を使用してください。" -#: ../../rst/porting_guides/porting_guide_6.rst:716 +#: ../../rst/porting_guides/porting_guide_6.rst:852 msgid "vmware_cluster - Remove DRS configuration in favour of module ``vmware_cluster_drs``." msgstr "vmware_cluster - DRS 設定を削除し、モジュール ``vmware_cluster_drs`` を優先します。" -#: ../../rst/porting_guides/porting_guide_6.rst:717 +#: ../../rst/porting_guides/porting_guide_6.rst:853 msgid "vmware_cluster - Remove HA configuration in favour of module ``vmware_cluster_ha``." msgstr "vmware_cluster - HA 設定を削除し、モジュール ``vmware_cluster_ha`` を優先します。" -#: ../../rst/porting_guides/porting_guide_6.rst:718 +#: ../../rst/porting_guides/porting_guide_6.rst:854 msgid "vmware_cluster - Remove VSAN configuration in favour of module ``vmware_cluster_vsan``." msgstr "vmware_cluster - VSAN 設定を削除し、モジュール ``vmware_cluster_vsan`` を優先します。" -#: ../../rst/porting_guides/porting_guide_6.rst:719 +#: ../../rst/porting_guides/porting_guide_6.rst:855 msgid "vmware_cluster_facts - The deprecated module ``vmware_cluster_facts`` has been removed, use ``vmware_cluster_info`` instead." msgstr "vmware_cluster_facts - 非推奨のモジュール ``vmware_cluster_facts`` が削除されました。代わりに ``vmware_cluster_info`` を使用してください。" -#: ../../rst/porting_guides/porting_guide_6.rst:720 +#: ../../rst/porting_guides/porting_guide_6.rst:856 msgid "vmware_datastore_facts - The deprecated module ``vmware_datastore_facts`` has been removed, use ``vmware_datastore_info`` instead." msgstr "vmware_datastore_facts - 非推奨のモジュール ``vmware_datastore_facts`` が削除されました。代わりに ``vmware_datastore_info`` を使用してください。" -#: ../../rst/porting_guides/porting_guide_6.rst:721 +#: ../../rst/porting_guides/porting_guide_6.rst:857 msgid "vmware_drs_group_facts - The deprecated module ``vmware_drs_group_facts`` has been removed, use ``vmware_drs_group_info`` instead." msgstr "vmware_drs_group_facts - 非推奨のモジュール ``vmware_drs_group_facts`` が削除されました。代わりに ``vmware_drs_group_info`` を使用してください。" -#: ../../rst/porting_guides/porting_guide_6.rst:722 +#: ../../rst/porting_guides/porting_guide_6.rst:858 msgid "vmware_drs_rule_facts - The deprecated module ``vmware_drs_rule_facts`` has been removed, use ``vmware_drs_rule_info`` instead." msgstr "vmware_drs_rule_facts - 非推奨のモジュール ``vmware_drs_rule_facts`` が削除されました。代わりに ``vmware_drs_rule_info`` を使用してください。" -#: ../../rst/porting_guides/porting_guide_6.rst:723 +#: ../../rst/porting_guides/porting_guide_6.rst:859 msgid "vmware_dvs_portgroup - The deprecated parameter ``portgroup_type`` has been removed, use ``port_binding`` instead." msgstr "vmware_dvs_portgroup - 非推奨のパラメーター ``portgroup_type`` が削除されました。代わりに ``port_binding`` を使用してください。" -#: ../../rst/porting_guides/porting_guide_6.rst:724 +#: ../../rst/porting_guides/porting_guide_6.rst:860 msgid "vmware_dvs_portgroup_facts - The deprecated module ``vmware_dvs_portgroup_facts`` has been removed, use ``vmware_dvs_portgroup_info`` instead." msgstr "vmware_dvs_portgroup_facts - 非推奨のモジュール ``vmware_dvs_portgroup_facts`` が削除されました。代わりに ``vmware_dvs_portgroup_info`` を使用してください。" -#: ../../rst/porting_guides/porting_guide_6.rst:725 +#: ../../rst/porting_guides/porting_guide_6.rst:861 msgid "vmware_guest_boot_facts - The deprecated module ``vmware_guest_boot_facts`` has been removed, use ``vmware_guest_boot_info`` instead." msgstr "vmware_guest_boot_facts - 非推奨のモジュール ``vmware_guest_boot_facts`` が削除されました。代わりに ``vmware_guest_boot_info`` を使用してください。" -#: ../../rst/porting_guides/porting_guide_6.rst:726 +#: ../../rst/porting_guides/porting_guide_6.rst:862 msgid "vmware_guest_customization_facts - The deprecated module ``vmware_guest_customization_facts`` has been removed, use ``vmware_guest_customization_info`` instead." msgstr "vmware_guest_customization_facts - 非推奨のモジュール ``vmware_guest_customization_facts`` が削除されました。代わりに ``vmware_guest_customization_info`` を使用してください。" -#: ../../rst/porting_guides/porting_guide_6.rst:727 +#: ../../rst/porting_guides/porting_guide_6.rst:863 msgid "vmware_guest_disk_facts - The deprecated module ``vmware_guest_disk_facts`` has been removed, use ``vmware_guest_disk_info`` instead." msgstr "vmware_guest_disk_facts - 非推奨のモジュール ``vmware_guest_disk_facts`` が削除されました。代わりに ``vmware_guest_disk_info`` を使用してください。" -#: ../../rst/porting_guides/porting_guide_6.rst:728 +#: ../../rst/porting_guides/porting_guide_6.rst:864 msgid "vmware_guest_facts - The deprecated module ``vmware_guest_facts`` has been removed, use ``vmware_guest_info`` instead." msgstr "vmware_guest_facts - 非推奨のモジュール ``vmware_guest_facts`` が削除されました。代わりに ``vmware_guest_info`` を使用してください。" -#: ../../rst/porting_guides/porting_guide_6.rst:729 +#: ../../rst/porting_guides/porting_guide_6.rst:865 msgid "vmware_guest_snapshot_facts - The deprecated module ``vmware_guest_snapshot_facts`` has been removed, use ``vmware_guest_snapshot_info`` instead." msgstr "vmware_guest_snapshot_facts - 非推奨のモジュール ``vmware_guest_snapshot_facts`` が削除されました。代わりに ``vmware_guest_snapshot_info`` を使用してください。" -#: ../../rst/porting_guides/porting_guide_6.rst:730 +#: ../../rst/porting_guides/porting_guide_6.rst:866 msgid "vmware_host_capability_facts - The deprecated module ``vmware_host_capability_facts`` has been removed, use ``vmware_host_capability_info`` instead." msgstr "vmware_host_capability_facts - 非推奨のモジュール ``vmware_host_capability_facts`` が削除されました。代わりに ``vmware_host_capability_info`` を使用してください。" -#: ../../rst/porting_guides/porting_guide_6.rst:731 +#: ../../rst/porting_guides/porting_guide_6.rst:867 msgid "vmware_host_config_facts - The deprecated module ``vmware_host_config_facts`` has been removed, use ``vmware_host_config_info`` instead." msgstr "vmware_host_config_facts - 非推奨のモジュール ``vmware_host_config_facts`` が削除されました。代わりに ``vmware_host_config_info`` を使用してください。" -#: ../../rst/porting_guides/porting_guide_6.rst:732 +#: ../../rst/porting_guides/porting_guide_6.rst:868 msgid "vmware_host_dns_facts - The deprecated module ``vmware_host_dns_facts`` has been removed, use ``vmware_host_dns_info`` instead." msgstr "vmware_host_dns_facts - 非推奨のモジュール ``vmware_host_dns_facts`` が削除されました。代わりに ``vmware_host_dns_info`` を使用してください。" -#: ../../rst/porting_guides/porting_guide_6.rst:733 +#: ../../rst/porting_guides/porting_guide_6.rst:869 msgid "vmware_host_feature_facts - The deprecated module ``vmware_host_feature_facts`` has been removed, use ``vmware_host_feature_info`` instead." msgstr "vmware_host_feature_facts - 非推奨のモジュール ``vmware_host_feature_facts`` が削除されました。代わりに ``vmware_host_feature_info`` を使用してください。" -#: ../../rst/porting_guides/porting_guide_6.rst:734 +#: ../../rst/porting_guides/porting_guide_6.rst:870 msgid "vmware_host_firewall_facts - The deprecated module ``vmware_host_firewall_facts`` has been removed, use ``vmware_host_firewall_info`` instead." msgstr "vmware_host_firewall_facts - 非推奨のモジュール ``vmware_host_firewall_facts`` が削除されました。代わりに ``vmware_host_firewall_info`` を使用してください。" -#: ../../rst/porting_guides/porting_guide_6.rst:735 +#: ../../rst/porting_guides/porting_guide_6.rst:871 msgid "vmware_host_ntp_facts - The deprecated module ``vmware_host_ntp_facts`` has been removed, use ``vmware_host_ntp_info`` instead." msgstr "vmware_host_ntp_facts - 非推奨のモジュール ``vmware_host_ntp_facts`` が削除されました。代わりに ``vmware_host_ntp_info`` を使用してください。" -#: ../../rst/porting_guides/porting_guide_6.rst:736 +#: ../../rst/porting_guides/porting_guide_6.rst:872 msgid "vmware_host_package_facts - The deprecated module ``vmware_host_package_facts`` has been removed, use ``vmware_host_package_info`` instead." msgstr "vmware_host_package_facts - 非推奨のモジュール ``vmware_host_package_facts`` が削除されました。代わりに ``vmware_host_package_info`` を使用してください。" -#: ../../rst/porting_guides/porting_guide_6.rst:737 +#: ../../rst/porting_guides/porting_guide_6.rst:873 msgid "vmware_host_service_facts - The deprecated module ``vmware_host_service_facts`` has been removed, use ``vmware_host_service_info`` instead." msgstr "vmware_host_service_facts - 非推奨のモジュール ``vmware_host_service_facts`` が削除されました。代わりに ``vmware_host_service_info`` を使用してください。" -#: ../../rst/porting_guides/porting_guide_6.rst:738 +#: ../../rst/porting_guides/porting_guide_6.rst:874 msgid "vmware_host_ssl_facts - The deprecated module ``vmware_host_ssl_facts`` has been removed, use ``vmware_host_ssl_info`` instead." msgstr "vmware_host_ssl_facts - 非推奨のモジュール ``vmware_host_ssl_facts`` が削除されました。代わりに ``vmware_host_ssl_info`` を使用してください。" -#: ../../rst/porting_guides/porting_guide_6.rst:739 +#: ../../rst/porting_guides/porting_guide_6.rst:875 msgid "vmware_host_vmhba_facts - The deprecated module ``vmware_host_vmhba_facts`` has been removed, use ``vmware_host_vmhba_info`` instead." msgstr "vmware_host_vmhba_facts - 非推奨のモジュール ``vmware_host_vmhba_facts`` が削除されました。代わりに ``vmware_host_vmhba_info`` を使用してください。" -#: ../../rst/porting_guides/porting_guide_6.rst:740 +#: ../../rst/porting_guides/porting_guide_6.rst:876 msgid "vmware_host_vmnic_facts - The deprecated module ``vmware_host_vmnic_facts`` has been removed, use ``vmware_host_vmnic_info`` instead." msgstr "vmware_host_vmnic_facts - 非推奨のモジュール ``vmware_host_vmnic_facts`` が削除されました。代わりに ``vmware_host_vmnic_info`` を使用してください。" -#: ../../rst/porting_guides/porting_guide_6.rst:741 +#: ../../rst/porting_guides/porting_guide_6.rst:877 msgid "vmware_local_role_facts - The deprecated module ``vmware_local_role_facts`` has been removed, use ``vmware_local_role_info`` instead." msgstr "vmware_local_role_facts - 非推奨のモジュール ``vmware_local_role_facts`` が削除されました。代わりに ``vmware_local_role_info`` を使用してください。" -#: ../../rst/porting_guides/porting_guide_6.rst:742 +#: ../../rst/porting_guides/porting_guide_6.rst:878 msgid "vmware_local_user_facts - The deprecated module ``vmware_local_user_facts`` has been removed, use ``vmware_local_user_info`` instead." msgstr "vmware_local_user_facts - 非推奨のモジュール ``vmware_local_user_facts`` が削除されました。代わりに ``vmware_local_user_info`` を使用してください。" -#: ../../rst/porting_guides/porting_guide_6.rst:743 +#: ../../rst/porting_guides/porting_guide_6.rst:879 msgid "vmware_portgroup_facts - The deprecated module ``vmware_portgroup_facts`` has been removed, use ``vmware_portgroup_info`` instead." msgstr "vmware_portgroup_facts - 非推奨のモジュール ``vmware_portgroup_facts`` が削除されました。代わりに ``vmware_portgroup_info`` を使用してください。" -#: ../../rst/porting_guides/porting_guide_6.rst:744 +#: ../../rst/porting_guides/porting_guide_6.rst:880 msgid "vmware_resource_pool_facts - The deprecated module ``vmware_resource_pool_facts`` has been removed, use ``vmware_resource_pool_info`` instead." msgstr "vmware_resource_pool_facts - 非推奨のモジュール ``vmware_resource_pool_facts`` が削除されました。代わりに ``vmware_resource_pool_info`` を使用してください。" -#: ../../rst/porting_guides/porting_guide_6.rst:745 +#: ../../rst/porting_guides/porting_guide_6.rst:881 msgid "vmware_tag_facts - The deprecated module ``vmware_tag_facts`` has been removed, use ``vmware_tag_info`` instead." msgstr "vmware_tag_facts - 非推奨のモジュール ``vmware_tag_facts`` が削除されました。代わりに ``vmware_tag_info`` を使用してください。" -#: ../../rst/porting_guides/porting_guide_6.rst:746 +#: ../../rst/porting_guides/porting_guide_6.rst:882 msgid "vmware_target_canonical_facts - The deprecated module ``vmware_target_canonical_facts`` has been removed, use ``vmware_target_canonical_info`` instead." msgstr "vmware_target_canonical_facts - 非推奨のモジュール ``vmware_target_canonical_facts`` が削除されました。代わりに ``vmware_target_canonical_info`` を使用してください。" -#: ../../rst/porting_guides/porting_guide_6.rst:747 +#: ../../rst/porting_guides/porting_guide_6.rst:883 msgid "vmware_vm_facts - The deprecated module ``vmware_vm_facts`` has been removed, use ``vmware_vm_info`` instead." msgstr "vmware_vm_facts - 非推奨のモジュール ``vmware_vm_facts`` が削除されました。代わりに ``vmware_vm_info`` を使用してください。" -#: ../../rst/porting_guides/porting_guide_6.rst:748 +#: ../../rst/porting_guides/porting_guide_6.rst:884 msgid "vmware_vmkernel_facts - The deprecated module ``vmware_vmkernel_facts`` has been removed, use ``vmware_vmkernel_info`` instead." msgstr "vmware_vmkernel_facts - 非推奨のモジュール ``vmware_vmkernel_facts`` が削除されました。代わりに ``vmware_vmkernel_info`` を使用してください。" -#: ../../rst/porting_guides/porting_guide_6.rst:749 +#: ../../rst/porting_guides/porting_guide_6.rst:885 msgid "vmware_vmkernel_ip_config - The deprecated module ``vmware_vmkernel_ip_config`` has been removed, use ``vmware_vmkernel`` instead." msgstr "vmware_vmkernel_ip_config - 非推奨のモジュール ``vmware_vmkernel_ip_config`` が削除されました。代わりに ``vmware_vmkernel`` を使用してください。" -#: ../../rst/porting_guides/porting_guide_6.rst:750 +#: ../../rst/porting_guides/porting_guide_6.rst:886 msgid "vmware_vswitch_facts - The deprecated module ``vmware_vswitch_facts`` has been removed, use ``vmware_vswitch_info`` instead." msgstr "vmware_vswitch_facts - 非推奨のモジュール ``vmware_vswitch_facts`` が削除されました。代わりに ``vmware_vswitch_info`` を使用してください。" -#: ../../rst/porting_guides/porting_guide_6.rst:760 +#: ../../rst/porting_guides/porting_guide_6.rst:896 msgid "ansible-core - Remove support for Python 2.6." msgstr "ansible-core - Python2.6 のサポートを削除します。" -#: ../../rst/porting_guides/porting_guide_6.rst:761 +#: ../../rst/porting_guides/porting_guide_6.rst:897 msgid "ansible-test - Remove support for Python 2.6." msgstr "ansible-test - Python 2.6 のサポートを削除します。" -#: ../../rst/porting_guides/porting_guide_6.rst:762 +#: ../../rst/porting_guides/porting_guide_6.rst:898 msgid "ssh connection plugin option scp_if_ssh in favor of ssh_transfer_method." msgstr "ssh 接続プラグインオプション scp_if_ssh で ssh_transfer_method を優先します。" -#: ../../rst/porting_guides/porting_guide_6.rst:767 -#: ../../rst/porting_guides/porting_guide_7.rst:454 +#: ../../rst/porting_guides/porting_guide_6.rst:903 +#: ../../rst/porting_guides/porting_guide_7.rst:975 msgid "ec2_instance - The default value for ```instance_type``` has been deprecated, in the future release you must set an instance_type or a launch_template (https://github.com/ansible-collections/amazon.aws/pull/587)." msgstr "ec2_instance - '``instance_type``' のデフォルト値は非推奨となり、今後のリリースで instance_type または launch_template を設定する必要があります (https://github.com/ansible-collections/amazon.aws/pull/587)。" -#: ../../rst/porting_guides/porting_guide_6.rst:768 +#: ../../rst/porting_guides/porting_guide_6.rst:904 msgid "module_utils - support for the original AWS SDK `boto` has been deprecated in favour of the `boto3`/`botocore` SDK. All `boto` based modules have either been deprecated or migrated to `botocore`, and the remaining support code in module_utils will be removed in release 4.0.0 of the amazon.aws collection. Any modules outside of the amazon.aws and community.aws collections based on the `boto` library will need to be migrated to the `boto3`/`botocore` libraries (https://github.com/ansible-collections/amazon.aws/pull/575)." msgstr "module_utils - 元の AWS SDK `boto` のサポートが非推奨となり、`boto3`/`botocore` SDK が採用されました。`boto` ベースのモジュールはすべて非推奨になるか、`botocore` に移行されており、module_utils の残りのサポートコードは amazon.aws コレクションのリリース 4.0.0 で削除されます。`boto` ライブラリーに基づいた amazon.aws コレクションおよび community.aws コレクション以外のモジュールは、`boto3`/`botocore` ライブラリーに移行する必要があります (https://github.com/ansible-collections/amazon.aws/pull/575)。" -#: ../../rst/porting_guides/porting_guide_6.rst:797 +#: ../../rst/porting_guides/porting_guide_6.rst:910 +msgid "ios_acls - Deprecated fragment attribute added boolean alternate as enable_fragment." +msgstr "ios_acls - 非推奨のフラグメント属性により、enable_fragment としてブール値代替が追加されました。" + +#: ../../rst/porting_guides/porting_guide_6.rst:933 msgid "ansible_galaxy_install - deprecated support for ``ansible`` 2.9 and ``ansible-base`` 2.10 (https://github.com/ansible-collections/community.general/pull/4601)." msgstr "ansible_galaxy_install - ``ansible`` 2.9 および ``ansible-base`` 2.10 のサポートが非推奨になりました (https://github.com/ansible-collections/community.general/pull/4601)。" -#: ../../rst/porting_guides/porting_guide_6.rst:798 +#: ../../rst/porting_guides/porting_guide_6.rst:934 msgid "dig lookup plugin - the ``DLV`` record type has been decommissioned in 2017 and support for it will be removed from community.general 6.0.0 (https://github.com/ansible-collections/community.general/pull/4618)." msgstr "dig lookup プラグイン - 2017 年に非推奨となった ``DLV`` レコードタイプのサポートが community.general 6.0.0 から削除されます (https://github.com/ansible-collections/community.general/pull/4618)。" -#: ../../rst/porting_guides/porting_guide_6.rst:799 +#: ../../rst/porting_guides/porting_guide_6.rst:935 msgid "gem - the default of the ``norc`` option has been deprecated and will change to ``true`` in community.general 6.0.0. Explicitly specify a value to avoid a deprecation warning (https://github.com/ansible-collections/community.general/pull/4517)." msgstr "gem - ``norc``オプションのデフォルトは廃止され、community.general6.0.0 で ``true`` に変更されます。非推奨の警告を防ぐために、値を明示的に指定します (https://github.com/ansible-collections/community.general/pull/4517)。" -#: ../../rst/porting_guides/porting_guide_6.rst:805 +#: ../../rst/porting_guides/porting_guide_6.rst:941 msgid "vmadm - deprecated module parameter ``debug`` that was not used anywhere (https://github.com/ansible-collections/community.general/pull/4580)." msgstr "vmadm - どこにも使用されていない非推奨のモジュールパラメーター ``debug`` (https://github.com/ansible-collections/community.general/pull/4580)。" -#: ../../rst/porting_guides/porting_guide_6.rst:813 +#: ../../rst/porting_guides/porting_guide_6.rst:949 msgid "token_validate options - the shared auth option ``token_validate`` will change its default from ``true`` to ``false`` in community.hashi_vault version 4.0.0. The ``vault_login`` lookup and module will keep the default value of ``true`` (https://github.com/ansible-collections/community.hashi_vault/issues/248)." msgstr "token_validate オプション - 共有認証オプション ``token_validate`` のデフォルトは、community.hashi_vault バージョン 4.0.0 で ``true`` から ``false`` に変更されます。``vault_login`` ルックアップおよびモジュールは、デフォルト値の ``true`` を保持します (https://github.com/ansible-collections/community.hashi_vault/issues/248)。" @@ -11425,7 +11736,7 @@ msgstr "Ansible 7 は Ansible-core 2.14 をベースにしています。" #: ../../rst/porting_guides/porting_guide_7.rst:18 msgid "We suggest you read this page along with the `Ansible 7 Changelog `_ to understand what updates you may need to make." -msgstr "必要な更新について理解するには、このページと併せて `Ansible 7 Changelog `_ を参照してください。" +msgstr "必要な更新について理解するには、このページと併せて `Ansible 7 Changelog `_ を参照することをお勧めします。" #: ../../rst/porting_guides/porting_guide_7.rst:24 #: ../../rst/porting_guides/porting_guide_core_2.14.rst:22 @@ -11443,904 +11754,1966 @@ msgid "At startup the filesystem encoding and locale are checked to verify they msgstr "起動時に、ファイルシステムのエンコーディングとロケールがチェックされ、UTF-8 であることが確認されます。確認しない場合、プロセスは誤ったエンコーディングを報告するエラーで終了します。以前に ``C`` また ``POSIX`` ロケールを使用していた場合は、``C.UTF-8`` を使用できる場合があります。以前に ``en_US.ISO-8859-1`` のようなロケールを使用していた場合は、``en_US.UTF-8`` を使用できる場合があります。簡単にするために、``LC_ALL`` 環境変数をしようして、適切なロケールをエクスポートすることが最も簡単かもしれません。システムロケールを変更する代わりに、Python を UTF-8 モードで実行することもできます。詳細は、`Python documentation `_ を参照してください。" #: ../../rst/porting_guides/porting_guide_7.rst:96 -msgid "Porting Guide for v7.0.0a1" -msgstr "v7.0.0a1 の移植ガイド" +msgid "Porting Guide for v7.2.0" +msgstr "v7.2.0 の移植ガイド" -#: ../../rst/porting_guides/porting_guide_7.rst:103 -msgid "purestorage.fusion (version 1.1.1)" -msgstr "purestorage.fusion (バージョン 1.1.1)" +#: ../../rst/porting_guides/porting_guide_7.rst:101 +msgid "dellemc.powerflex (version 1.5.0)" +msgstr "dellemc.powerflex (バージョン 1.5.0)" -#: ../../rst/porting_guides/porting_guide_7.rst:133 -msgid "Allow for lazy evaluation of Jinja2 expressions (https://github.com/ansible/ansible/issues/56017)" -msgstr "Jinja2 式の遅延評価を許可します (https://github.com/ansible/ansible/issues/56017)" +#: ../../rst/porting_guides/porting_guide_7.rst:102 +msgid "dellemc.unity (version 1.5.0)" +msgstr "dellemc.unity (バージョン 1.5.0)" + +#: ../../rst/porting_guides/porting_guide_7.rst:110 +msgid "ansible-test - Additional configuration may be required for certain container host and container combinations. Further details are available in the testing documentation." +msgstr "ansible-test - 特定のコンテナーホストとコンテナーの組み合わせでは、追加の設定が必要になる場合があります。詳細については、テストドキュメントを参照してください。" + +#: ../../rst/porting_guides/porting_guide_7.rst:111 +msgid "ansible-test - Custom containers with ``VOLUME`` instructions may be unable to start, when previously the containers started correctly. Remove the ``VOLUME`` instructions to resolve the issue. Containers with this condition will cause ``ansible-test`` to emit a warning." +msgstr "ansible-test - ``VOLUME`` 指示のあるカスタムコンテナーは、以前はコンテナーが正しく起動していた場合、開始できない場合があります。``VOLUME`` 指示を取り外し、問題を解決してください。この状態のコンテナーは ``ansible-test`` の原因となり、警告を発します。" + +#: ../../rst/porting_guides/porting_guide_7.rst:112 +msgid "ansible-test - Systems with Podman networking issues may be unable to run containers, when previously the issue went unreported. Correct the networking issues to continue using ``ansible-test`` with Podman." +msgstr "ansible-test - 以前は問題が報告されていなかった場合、Podman ネットワークの問題があるシステムはコンテナーを実行できない可能性があります。Podman で ``ansible-test`` を引き続き使用するには、ネットワークの問題を修正してください。" + +#: ../../rst/porting_guides/porting_guide_7.rst:113 +msgid "ansible-test - Using Docker on systems with SELinux may require setting SELinux to permissive mode. Podman should work with SELinux in enforcing mode." +msgstr "ansible-test - SELinux を搭載したシステムで Docker を使用するには、SELinux を Permissive モードに設定する必要がある場合があります。Podman は、Enforcing モードで SELinux と連携する必要があります。" + +#: ../../rst/porting_guides/porting_guide_7.rst:118 +msgid "meraki_network - Updated documentation for `local_status_page_enabled` and `remote_status_page_enabled` as these no longer work." +msgstr "meraki_network - `local_status_page_enabled` および `remote_status_page_enabled` は機能しなくなったので、これらに関するドキュメントを更新しました。" + +#: ../../rst/porting_guides/porting_guide_7.rst:126 +msgid "ModuleHelper module utils - when the module sets output variables named ``msg``, ``exception``, ``output``, ``vars``, or ``changed``, the actual output will prefix those names with ``_`` (underscore symbol) only when they clash with output variables generated by ModuleHelper itself, which only occurs when handling exceptions. Please note that this breaking change does not require a new major release since before this release, it was not possible to add such variables to the output `due to a bug `__ (https://github.com/ansible-collections/community.general/pull/5765)." +msgstr "ModuleHelper module utils - モジュールセットが、``msg``、``exception``、``output``、``vars``、または ``changed`` という名前の変数を出力すると、実際の出力では、これらの名前の前に ``_`` (アンダースコア記号) が付けられます。これは、ModuleHelper そのものによって生成された出力変数とクラッシュする時のみに付けられ、例外を処理するときにのみ発生します。この重大な変更には新しいメジャーリリースは必要ないことに注意してください。このリリースより前は、`due to a bug `__ により、そのような変数を出力に追加することができなかったからです (https://github.com/ansible-collections/community.general/pull/5765)。" #: ../../rst/porting_guides/porting_guide_7.rst:134 -msgid "The default ansible-galaxy role skeletons no longer contain .travis.yml files. You can configure ansible-galaxy to use a custom role skeleton that contains a .travis.yml file to continue using Galaxy's integration with Travis CI." -msgstr "デフォルトの ansible-galaxy ロールスケルトンには、.travis.yml ファイルが含まれなくなりました。.travis.yml ファイルを含むカスタムロールのスケルトンを使用するように ansible-galaxy を設定して、Galaxy と Travis CI の統合を引き続き使用することができます。" +msgid "ansible-test - Docker Desktop on WSL2 is now supported (additional configuration required)." +msgstr "ansible-test - Docker Desktop on WSL2 がサポートされるようになりました (追加の設定が必要です)。" #: ../../rst/porting_guides/porting_guide_7.rst:135 -#: ../../rst/porting_guides/porting_guide_7.rst:201 -msgid "ansible - At startup the filesystem encoding and locale are checked to verify they are UTF-8. If not, the process exits with an error reporting the errant encoding." -msgstr "ansible - 起動時に、ファイルシステムのエンコーディングとロケールがチェックされ、UTF-8 であることが確認されます。確認しない場合、プロセスは誤ったエンコーディングを報告するエラーで終了します。" +msgid "ansible-test - Docker and Podman are now supported on hosts with cgroup v2 unified. Previously only cgroup v1 and cgroup v2 hybrid were supported." +msgstr "ansible-test - cgroup v2 が統合されたホストで Docker と Podman がサポートされるようになりました。以前は、cgroup v1 および cgroup v2 ハイブリッドのみがサポートされていました。" #: ../../rst/porting_guides/porting_guide_7.rst:136 -#: ../../rst/porting_guides/porting_guide_7.rst:202 -msgid "ansible - Increase minimum Python requirement to Python 3.9 for CLI utilities and controller code" -msgstr "ansible - CLI ユーティリティーとコントローラーコードの Python の最小要件を Python 3.9 に増やします。" +msgid "ansible-test - Podman now works on container hosts without systemd. Previously only some containers worked, while others required rootfull or rootless Podman, but would not work with both. Some containers did not work at all." +msgstr "ansible-test - Podman が systemd のないコンテナーホストで動作するようになりました。以前は、一部のコンテナーのみが動作し、他のコンテナーは rootfull または rootless Podman を必要としていましたが、両方では動作しませんでした。まったく動作しないコンテナーもありました。" #: ../../rst/porting_guides/porting_guide_7.rst:137 -#: ../../rst/porting_guides/porting_guide_7.rst:203 -msgid "ansible-test - At startup the filesystem encoding is checked to verify it is UTF-8. If not, the process exits with an error reporting the errant encoding." -msgstr "ansible-test - 起動時にファイルシステムのエンコーディングがチェックされ、UTF-8 であることが確認されます。確認しない場合、プロセスは誤ったエンコーディングを報告するエラーで終了します。" +msgid "ansible-test - Podman on WSL2 is now supported." +msgstr "ansible-test - WSL2 の Podman がサポートされるようになりました。" #: ../../rst/porting_guides/porting_guide_7.rst:138 -#: ../../rst/porting_guides/porting_guide_7.rst:204 -msgid "ansible-test - At startup the locale is configured as ``en_US.UTF-8``, with a fallback to ``C.UTF-8``. If neither encoding is available the process exits with an error. If the fallback is used, a warning is displayed. In previous versions the ``en_US.UTF-8`` locale was always requested. However, no startup checking was performed to verify the locale was successfully configured." -msgstr "ansible-test - 起動時にロケールは、``C.UTF-8`` へのフォールバックのある ``en_US.UTF-8`` として設定されます。どちらのエンコーディングも利用できない場合、プロセスはエラーで終了します。フォールバックが使用される場合、警告が表示されます。以前のバージョンでは、``en_US.UTF-8`` ロケールは常に要求されました。ただし、ロケールが正常に設定されたことを確認するための起動時のチェックは実行されませんでした。" +msgid "ansible-test - When additional cgroup setup is required on the container host, this will be automatically detected. Instructions on how to configure the host will be provided in the error message shown." +msgstr "ansible-test - コンテナーホストで追加の cgroup セットアップが必要な場合、これは自動的に検出されます。ホストの設定方法については、表示されるエラーメッセージに記載されます。" -#: ../../rst/porting_guides/porting_guide_7.rst:139 -msgid "strategy plugins - Make ``ignore_unreachable`` to increase ``ignored`` and ``ok`` and counter, not ``skipped`` and ``unreachable``. (https://github.com/ansible/ansible/issues/77690)" -msgstr "ストラテジープラグイン - ``ignore_unreachable`` が、``skipped`` および ``unreachable`` ではなく、``ignored``、``ok``、およびカウンターを増やすようにします (https://github.com/ansible/ansible/issues/77690)。" +#: ../../rst/porting_guides/porting_guide_7.rst:143 +msgid "Set the minimum Ansible version supported by this collection to Ansible 2.12" +msgstr "このコレクションでサポートされる Ansible の最小バージョンを Ansible 2.12 に設定します" -#: ../../rst/porting_guides/porting_guide_7.rst:144 -#: ../../rst/porting_guides/porting_guide_7.rst:165 -msgid "Tags beginning with ``aws:`` will not be removed when purging tags, these tags are reserved by Amazon and may not be updated or deleted (https://github.com/ansible-collections/amazon.aws/issues/817)." -msgstr "``aws:`` で始まるタグは、タグをパージしても削除されません。これらのタグは Amazon によって予約されており、更新または削除できません (https://github.com/ansible-collections/amazon.aws/issues/817)。" +#: ../../rst/porting_guides/porting_guide_7.rst:148 +msgid "win_chocolatey - Allow users to select the TLS versions used for bootstrapping Chocolatey installation." +msgstr "win_chocolatey - Chocolatey インストールのブートストラップに使用する TLS バージョンをユーザーが選択できるようにします。" -#: ../../rst/porting_guides/porting_guide_7.rst:145 -msgid "amazon.aws collection - the ``profile`` parameter is now mutually exclusive with the ``aws_access_key``, ``aws_secret_key`` and ``security_token`` parameters (https://github.com/ansible-collections/amazon.aws/pull/834)." -msgstr "amazon.aws コレクション - ``profile``パラメーターは現在、``aws_access_key``、``aws_secret_key``、および ``security_token`` でパラメーターにより相互に排他的です (https://github.com/ansible-collections/amazon.aws/pull/834)。" +#: ../../rst/porting_guides/porting_guide_7.rst:153 +msgid "The cisco.nso collection is considered unmaintained and will be removed from Ansible 9 if no one starts maintaining it again before Ansible 9. See `the removal process for details on how this works `__ (https://github.com/ansible-community/community-topics/issues/155)." +msgstr "cisco.nso コレクションはメンテナンスされていないと見なされ、Ansible 9 より先に再びメンテナンスを開始する人がいない場合は、Ansible 9 から削除されます。`the removal process for details on how this works `__ を参照してください (https://github.com/ansible-community/community-topics/issues/155)。" -#: ../../rst/porting_guides/porting_guide_7.rst:146 -msgid "aws_az_info - the module alias ``aws_az_facts`` was deprecated in Ansible 2.9 and has now been removed (https://github.com/ansible-collections/amazon.aws/pull/832)." -msgstr "aws_az_info - モジュールのエイリアス ``aws_az_facts`` は Ansible 2.9 で非推奨となり、現在は削除されています (https://github.com/ansible-collections/amazon.aws/pull/832)。" +#: ../../rst/porting_guides/porting_guide_7.rst:154 +msgid "The community.fortios collection is considered unmaintained and will be removed from Ansible 9 if no one starts maintaining it again before Ansible 9. See `the removal process for details on how this works `__ (https://github.com/ansible-community/community-topics/issues/162)." +msgstr "community.fortios コレクションはメンテナンスされていないと見なされ、Ansible 9 より先に再びメンテナンスを開始する人がいない場合、Ansible 9 から削除されます。`the removal process for details on how this works `__ を参照してください (https://github.com/ansible-community/community-topics/issues/162)。" -#: ../../rst/porting_guides/porting_guide_7.rst:147 -msgid "aws_s3 - the default value for ``ensure overwrite`` has been changed to ``different`` instead of ``always`` so that the module is idempotent by default (https://github.com/ansible-collections/amazon.aws/issues/811)." -msgstr "aws_s3 - モジュールがデフォルトでべき等であるように、``ensure overwrite`` のデフォルト値が ``always`` の代わりに ``different`` に変更されました (https://github.com/ansible-collections/amazon.aws/issues/811)。" +#: ../../rst/porting_guides/porting_guide_7.rst:155 +msgid "The community.google collection is considered unmaintained and will be removed from Ansible 9 if no one starts maintaining it again before Ansible 9. See `the removal process for details on how this works `__ (https://github.com/ansible-community/community-topics/issues/160)." +msgstr "community.google コレクションはメンテナンスされていないと見なされ、Ansible 9 より先に再びメンテナンスを開始する人がいない場合、Ansible 9 から削除されます。`the removal process for details on how this works `__ を参照してください (https://github.com/ansible-community/community-topics/issues/160)。" -#: ../../rst/porting_guides/porting_guide_7.rst:148 -msgid "aws_ssm - on_denied and on_missing now both default to error, for consistency with both aws_secret and the base Lookup class (https://github.com/ansible-collections/amazon.aws/issues/617)." -msgstr "aws_ssm - aws_secret とベース Lookup クラスの両方との一貫性を保つために、on_denied および on_missing の両方がデフォルトでエラーとなりました (https://github.com/ansible-collections/amazon.aws/issues/617)。" +#: ../../rst/porting_guides/porting_guide_7.rst:156 +msgid "The community.skydive collection is considered unmaintained and will be removed from Ansible 9 if no one starts maintaining it again before Ansible 9. See `the removal process for details on how this works `__ (https://github.com/ansible-community/community-topics/issues/171)." +msgstr "community.skydive コレクションはメンテナンスされていないと見なされ、Ansible 9 より先に再びメンテナンスを開始する人がいない場合、Ansible 9 から削除されます。`the removal process for details on how this works `__ を参照してください (https://github.com/ansible-community/community-topics/issues/171)。" -#: ../../rst/porting_guides/porting_guide_7.rst:149 -msgid "ec2 - The ``ec2`` module has been removed in release 4.0.0 and replaced by the ``ec2_instance`` module (https://github.com/ansible-collections/amazon.aws/pull/630)." -msgstr "ec2 - ``ec2`` モジュールはリリース 4.0.0 で削除され、``ec2_instance`` モジュールに置き換えられました (https://github.com/ansible-collections/amazon.aws/pull/630)。" +#: ../../rst/porting_guides/porting_guide_7.rst:161 +msgid "win_chocolatey - Deprecate side-by-side installs." +msgstr "win_chocolatey - サイドバイサイド方式のインストールを廃止します。" -#: ../../rst/porting_guides/porting_guide_7.rst:150 -msgid "ec2_vpc_igw_info - The default value for ``convert_tags`` has been changed to ``True`` (https://github.com/ansible-collections/amazon.aws/pull/835)." -msgstr "ec2_vpc_igw_info - ``convert_tags`` のデフォルト値が ``True`` に変更されました (https://github.com/ansible-collections/amazon.aws/pull/835)。" +#: ../../rst/porting_guides/porting_guide_7.rst:166 +msgid "ios_bgp_address_family - deprecate neighbors.address/tag/ipv6_adddress with neighbor_address which enables common attributes for facts rendering" +msgstr "ios_bgp_address_family - neighbors.address/tag/ipv6_addaddress を非推奨にし、ファクトレンダリングの共通属性を有効にする neighbor_address を使用します。" -#: ../../rst/porting_guides/porting_guide_7.rst:151 -msgid "elb_classic_lb - the ``ec2_elb`` fact has been removed (https://github.com/ansible-collections/amazon.aws/pull/827)." -msgstr "elb_classic_lb - ``ec2_elb`` ファクトは削除されました (https://github.com/ansible-collections/amazon.aws/pull/827)。" +#: ../../rst/porting_guides/porting_guide_7.rst:167 +msgid "ios_bgp_address_family - deprecate neighbors.password with password_options which allows encryption and password" +msgstr "ios_bgp_address_family - 暗号化とパスワードを許可する password_options を使用して、neighbors.password を非推奨にします" -#: ../../rst/porting_guides/porting_guide_7.rst:152 -msgid "module_utils - Support for the original AWS SDK aka ``boto`` has been removed, including all relevant helper functions. All modules should now use the ``boto3``/``botocore`` AWS SDK (https://github.com/ansible-collections/amazon.aws/pull/630)" -msgstr "module_utils - 関連するすべてのヘルパー関数を含む、元の AWS SDK (別名 ``boto``) のサポートが削除されました。すべてのモジュールは今後、``boto3``/``botocore`` AWS SDK を使用する必要があります (https://github.com/ansible-collections/amazon.aws/pull/630)。" +#: ../../rst/porting_guides/porting_guide_7.rst:168 +msgid "ios_bgp_address_family - deprecate slow_peer with slow_peer_options which supports a dict attribute" +msgstr "ios_bgp_address_family - dict 属性をサポートする slow_peer_options を持つ slow_peer を非推奨にします" -#: ../../rst/porting_guides/porting_guide_7.rst:155 -#: ../../rst/porting_guides/porting_guide_7.rst:212 -msgid "check_point.mgmt" -msgstr "check_point.mgmt" +#: ../../rst/porting_guides/porting_guide_7.rst:173 +msgid "The default of the newly added option ``txt_character_encoding`` will change from ``octal`` to ``decimal`` in community.dns 3.0.0. The new default will be compatible with `RFC 1035 `__ (https://github.com/ansible-collections/community.dns/pull/134)." +msgstr "新しく追加されたオプション ``txt_character_encoding``は、community.dns 3.0.0 で ``octal`` から ``decimal`` へ変更します。新しいデフォルトは `RFC 1035 `__ と互換性があります (https://github.com/ansible-collections/community.dns/pull/134)。" -#: ../../rst/porting_guides/porting_guide_7.rst:157 -msgid "cp_mgmt_access_role - the 'machines' parameter now accepts a single str and a new parameter 'machines_list' of type dict has been added. the 'users' parameter now accepts a single str and a new parameter 'users_list' of type dict has been added." -msgstr "cp_mgmt_access_role - 'machines' パラメーターが単一の str を受け入れるようになり、タイプ dict の新しいパラメーター 'machines_list' が追加されました。'users' パラメーターは単一の str を受け入れるようになり、タイプ dict の新しいパラメーター 'users_list' が追加されました。" +#: ../../rst/porting_guides/porting_guide_7.rst:178 +msgid "consul - deprecate using parameters unused for ``state=absent`` (https://github.com/ansible-collections/community.general/pull/5772)." +msgstr "consul - ``state=absent`` の未使用であるパラメーターの使用は非推奨となります (https://github.com/ansible-collections/community.general/pull/5772)。" -#: ../../rst/porting_guides/porting_guide_7.rst:158 +#: ../../rst/porting_guides/porting_guide_7.rst:179 +msgid "gitlab_runner - the default of the new option ``access_level_on_creation`` will change from ``false`` to ``true`` in community.general 7.0.0. This will cause ``access_level`` to be used during runner registration as well, and not only during updates (https://github.com/ansible-collections/community.general/pull/5908)." +msgstr "gitlab_runner - 新しいオプションのデフォルト ``access_level_on_creation`` は、community.general 7.0.0 で ``false`` から ``true`` へ変更されます。これにより、``access_level`` は更新時だけでなく、ランナー登録時にも使用されることになります (https://github.com/ansible-collections/community.general/pull/5908)。" + +#: ../../rst/porting_guides/porting_guide_7.rst:180 +msgid "manageiq_policies - deprecate ``state=list`` in favour of using ``community.general.manageiq_policies_info`` (https://github.com/ansible-collections/community.general/pull/5721)." +msgstr "manageiq_policies - ``state=list`` を非推奨とし、``community.general.manageiq_policies_info`` を使用します (https://github.com/ansible-collections/community.general/pull/5721)。" + +#: ../../rst/porting_guides/porting_guide_7.rst:181 +msgid "rax - module relies on deprecates library ``pyrax``. Unless maintainers step up to work on the module, it will be marked as deprecated in community.general 7.0.0 and removed in version 9.0.0 (https://github.com/ansible-collections/community.general/pull/5733)." +msgstr "rax - モジュールは、非推奨のライブラリー ``pyrax`` に依存しています。メンテナーがこのモジュールに取り組むための対策をとらない限り、これは community.general 7.0.0 で非推奨としてマークされ、バージョン 9.0.0 で削除されます (https://github.com/ansible-collections/community.general/pull/5733)。" + +#: ../../rst/porting_guides/porting_guide_7.rst:182 +msgid "rax_cbs - module relies on deprecates library ``pyrax``. Unless maintainers step up to work on the module, it will be marked as deprecated in community.general 7.0.0 and removed in version 9.0.0 (https://github.com/ansible-collections/community.general/pull/5733)." +msgstr "rax_cbs - モジュールは、非推奨のライブラリー ``pyrax`` に依存しています。メンテナーがこのモジュールに取り組むための対策をとらない限り、これは community.general 7.0.0 で非推奨としてマークされ、バージョン 9.0.0 で削除されます (https://github.com/ansible-collections/community.general/pull/5733)。" + +#: ../../rst/porting_guides/porting_guide_7.rst:183 +msgid "rax_cbs_attachments - module relies on deprecates library ``pyrax``. Unless maintainers step up to work on the module, it will be marked as deprecated in community.general 7.0.0 and removed in version 9.0.0 (https://github.com/ansible-collections/community.general/pull/5733)." +msgstr "rax_cbs_attachments - モジュールは、非推奨のライブラリー ``pyrax`` に依存しています。メンテナーがこのモジュールに取り組むための対策をとらない限り、これは community.general 7.0.0 で非推奨としてマークされ、バージョン 9.0.0 で削除されます (https://github.com/ansible-collections/community.general/pull/5733)。" + +#: ../../rst/porting_guides/porting_guide_7.rst:184 +msgid "rax_cdb - module relies on deprecates library ``pyrax``. Unless maintainers step up to work on the module, it will be marked as deprecated in community.general 7.0.0 and removed in version 9.0.0 (https://github.com/ansible-collections/community.general/pull/5733)." +msgstr "rax_cdb - モジュールは、非推奨のライブラリー ``pyrax`` に依存しています。メンテナーがモジュールに取り組むための対策をとらない限り、これは community.general 7.0.0 で非推奨としてマークされ、バージョン 9.0.0 で削除されます (https://github.com/ansible-collections/community.general/pull/5733)。" + +#: ../../rst/porting_guides/porting_guide_7.rst:185 +msgid "rax_cdb_database - module relies on deprecates library ``pyrax``. Unless maintainers step up to work on the module, it will be marked as deprecated in community.general 7.0.0 and removed in version 9.0.0 (https://github.com/ansible-collections/community.general/pull/5733)." +msgstr "rax_cdb_database - モジュールは、非推奨のライブラリー ``pyrax`` に依存しています。メンテナーがモジュールに取り組むための対策をとらない限り、これは community.general 7.0.0 で非推奨としてマークされ、バージョン 9.0.0 で削除されます (https://github.com/ansible-collections/community.general/pull/5733)。" + +#: ../../rst/porting_guides/porting_guide_7.rst:186 +msgid "rax_cdb_user - module relies on deprecates library ``pyrax``. Unless maintainers step up to work on the module, it will be marked as deprecated in community.general 7.0.0 and removed in version 9.0.0 (https://github.com/ansible-collections/community.general/pull/5733)." +msgstr "rax_cdb_user - モジュールは、非推奨のライブラリー ``pyrax`` に依存しています。メンテナーがモジュールに取り組むための対策をとらない限り、これは community.general 7.0.0 で非推奨としてマークされ、バージョン 9.0.0 で削除されます (https://github.com/ansible-collections/community.general/pull/5733)。" + +#: ../../rst/porting_guides/porting_guide_7.rst:187 +msgid "rax_clb - module relies on deprecates library ``pyrax``. Unless maintainers step up to work on the module, it will be marked as deprecated in community.general 7.0.0 and removed in version 9.0.0 (https://github.com/ansible-collections/community.general/pull/5733)." +msgstr "rax_clb - モジュールは、非推奨のライブラリー ``pyrax`` に依存しています。メンテナーがモジュールに取り組むための対策をとらない限り、これは community.general 7.0.0 で非推奨としてマークされ、バージョン 9.0.0 で削除されます (https://github.com/ansible-collections/community.general/pull/5733)。" + +#: ../../rst/porting_guides/porting_guide_7.rst:188 +msgid "rax_clb_nodes - module relies on deprecates library ``pyrax``. Unless maintainers step up to work on the module, it will be marked as deprecated in community.general 7.0.0 and removed in version 9.0.0 (https://github.com/ansible-collections/community.general/pull/5733)." +msgstr "rax_clb_nodes - モジュールは、非推奨のライブラリー ``pyrax`` に依存しています。メンテナーがこのモジュールに取り組むための対策をとらない限り、これは community.general 7.0.0 で非推奨としてマークされ、バージョン 9.0.0 で削除されます (https://github.com/ansible-collections/community.general/pull/5733)。" + +#: ../../rst/porting_guides/porting_guide_7.rst:189 +msgid "rax_clb_ssl - module relies on deprecates library ``pyrax``. Unless maintainers step up to work on the module, it will be marked as deprecated in community.general 7.0.0 and removed in version 9.0.0 (https://github.com/ansible-collections/community.general/pull/5733)." +msgstr "rax_clb_ssl - モジュールは、非推奨のライブラリー ``pyrax`` に依存しています。メンテナーがこのモジュールに取り組むための対策をとらない限り、これは community.general 7.0.0 で非推奨としてマークされ、バージョン 9.0.0 で削除されます (https://github.com/ansible-collections/community.general/pull/5733)。" + +#: ../../rst/porting_guides/porting_guide_7.rst:190 +msgid "rax_dns - module relies on deprecates library ``pyrax``. Unless maintainers step up to work on the module, it will be marked as deprecated in community.general 7.0.0 and removed in version 9.0.0 (https://github.com/ansible-collections/community.general/pull/5733)." +msgstr "rax_dns - モジュールは、非推奨のライブラリー ``pyrax`` に依存しています。メンテナーがこのモジュールに取り組むための対策をとらない限り、これは community.general 7.0.0 で非推奨としてマークされ、バージョン 9.0.0 で削除されます (https://github.com/ansible-collections/community.general/pull/5733)。" + +#: ../../rst/porting_guides/porting_guide_7.rst:191 +msgid "rax_dns_record - module relies on deprecates library ``pyrax``. Unless maintainers step up to work on the module, it will be marked as deprecated in community.general 7.0.0 and removed in version 9.0.0 (https://github.com/ansible-collections/community.general/pull/5733)." +msgstr "rax_dns_record - モジュールは、非推奨のライブラリー ``pyrax`` に依存しています。メンテナーがこのモジュールに取り組むための対策をとらない限り、これは community.general 7.0.0 で非推奨としてマークされ、バージョン 9.0.0 で削除されます (https://github.com/ansible-collections/community.general/pull/5733)。" + +#: ../../rst/porting_guides/porting_guide_7.rst:192 +msgid "rax_facts - module relies on deprecates library ``pyrax``. Unless maintainers step up to work on the module, it will be marked as deprecated in community.general 7.0.0 and removed in version 9.0.0 (https://github.com/ansible-collections/community.general/pull/5733)." +msgstr "rax_facts - モジュールは、非推奨のライブラリー ``pyrax`` に依存しています。メンテナーがこのモジュールに取り組むための対策をとらない限り、これは community.general 7.0.0 で非推奨としてマークされ、バージョン 9.0.0 で削除されます (https://github.com/ansible-collections/community.general/pull/5733)。" + +#: ../../rst/porting_guides/porting_guide_7.rst:193 +msgid "rax_files - module relies on deprecates library ``pyrax``. Unless maintainers step up to work on the module, it will be marked as deprecated in community.general 7.0.0 and removed in version 9.0.0 (https://github.com/ansible-collections/community.general/pull/5733)." +msgstr "rax_files - モジュールは、非推奨のライブラリー ``pyrax`` に依存しています。メンテナーがこのモジュールに取り組むための対策をとらない限り、これは community.general 7.0.0 で非推奨としてマークされ、バージョン 9.0.0 で削除されます (https://github.com/ansible-collections/community.general/pull/5733)。" + +#: ../../rst/porting_guides/porting_guide_7.rst:194 +msgid "rax_files_objects - module relies on deprecates library ``pyrax``. Unless maintainers step up to work on the module, it will be marked as deprecated in community.general 7.0.0 and removed in version 9.0.0 (https://github.com/ansible-collections/community.general/pull/5733)." +msgstr "rax_files_objects - モジュールは、非推奨のライブラリー ``pyrax`` に依存しています。メンテナーがこのモジュールに取り組むための対策をとらない限り、これは community.general 7.0.0 で非推奨としてマークされ、バージョン 9.0.0 で削除されます (https://github.com/ansible-collections/community.general/pull/5733)。" + +#: ../../rst/porting_guides/porting_guide_7.rst:195 +msgid "rax_identity - module relies on deprecates library ``pyrax``. Unless maintainers step up to work on the module, it will be marked as deprecated in community.general 7.0.0 and removed in version 9.0.0 (https://github.com/ansible-collections/community.general/pull/5733)." +msgstr "rax_identity - モジュールは、非推奨のライブラリー ``pyrax`` に依存しています。メンテナーがこのモジュールに取り組むための対策をとらない限り、これは community.general 7.0.0 で非推奨としてマークされ、バージョン 9.0.0 で削除されます (https://github.com/ansible-collections/community.general/pull/5733)。" + +#: ../../rst/porting_guides/porting_guide_7.rst:196 +msgid "rax_keypair - module relies on deprecates library ``pyrax``. Unless maintainers step up to work on the module, it will be marked as deprecated in community.general 7.0.0 and removed in version 9.0.0 (https://github.com/ansible-collections/community.general/pull/5733)." +msgstr "rax_keypair - モジュールは、非推奨のライブラリー ``pyrax`` に依存しています。メンテナーがこのモジュールに取り組むための対策をとらない限り、これは community.general 7.0.0 で非推奨としてマークされ、バージョン 9.0.0 で削除されます (https://github.com/ansible-collections/community.general/pull/5733)。" + +#: ../../rst/porting_guides/porting_guide_7.rst:197 +msgid "rax_meta - module relies on deprecates library ``pyrax``. Unless maintainers step up to work on the module, it will be marked as deprecated in community.general 7.0.0 and removed in version 9.0.0 (https://github.com/ansible-collections/community.general/pull/5733)." +msgstr "rax_meta - モジュールは、非推奨のライブラリー ``pyrax`` に依存しています。メンテナーがこのモジュールに取り組むための対策をとらない限り、これは community.general 7.0.0 で非推奨としてマークされ、バージョン 9.0.0 で削除されます (https://github.com/ansible-collections/community.general/pull/5733)。" + +#: ../../rst/porting_guides/porting_guide_7.rst:198 +msgid "rax_mon_alarm - module relies on deprecates library ``pyrax``. Unless maintainers step up to work on the module, it will be marked as deprecated in community.general 7.0.0 and removed in version 9.0.0 (https://github.com/ansible-collections/community.general/pull/5733)." +msgstr "rax_mon_alarm - モジュールは、非推奨のライブラリー ``pyrax`` に依存しています。メンテナーがこのモジュールに取り組むための対策をとらない限り、これは community.general 7.0.0 で非推奨としてマークされ、バージョン 9.0.0 で削除されます (https://github.com/ansible-collections/community.general/pull/5733)。" + +#: ../../rst/porting_guides/porting_guide_7.rst:199 +msgid "rax_mon_check - module relies on deprecates library ``pyrax``. Unless maintainers step up to work on the module, it will be marked as deprecated in community.general 7.0.0 and removed in version 9.0.0 (https://github.com/ansible-collections/community.general/pull/5733)." +msgstr "rax_mon_check - モジュールは、非推奨のライブラリー ``pyrax`` に依存しています。メンテナーがこのモジュールに取り組むための対策をとらない限り、これは community.general 7.0.0 で非推奨としてマークされ、バージョン 9.0.0 で削除されます (https://github.com/ansible-collections/community.general/pull/5733)。" + +#: ../../rst/porting_guides/porting_guide_7.rst:200 +msgid "rax_mon_entity - module relies on deprecates library ``pyrax``. Unless maintainers step up to work on the module, it will be marked as deprecated in community.general 7.0.0 and removed in version 9.0.0 (https://github.com/ansible-collections/community.general/pull/5733)." +msgstr "rax_mon_entity - モジュールは、非推奨のライブラリー ``pyrax`` に依存しています。メンテナーがこのモジュールに取り組むための対策をとらない限り、これは community.general 7.0.0 で非推奨としてマークされ、バージョン 9.0.0 で削除されます (https://github.com/ansible-collections/community.general/pull/5733)。" + +#: ../../rst/porting_guides/porting_guide_7.rst:201 +msgid "rax_mon_notification - module relies on deprecates library ``pyrax``. Unless maintainers step up to work on the module, it will be marked as deprecated in community.general 7.0.0 and removed in version 9.0.0 (https://github.com/ansible-collections/community.general/pull/5733)." +msgstr "rax_mon_notification - モジュールは、非推奨のライブラリー ``pyrax`` に依存しています。メンテナーがこのモジュールに取り組むための対策をとらない限り、これは community.general 7.0.0 で非推奨としてマークされ、バージョン 9.0.0 で削除されます (https://github.com/ansible-collections/community.general/pull/5733)。" + +#: ../../rst/porting_guides/porting_guide_7.rst:202 +msgid "rax_mon_notification_plan - module relies on deprecates library ``pyrax``. Unless maintainers step up to work on the module, it will be marked as deprecated in community.general 7.0.0 and removed in version 9.0.0 (https://github.com/ansible-collections/community.general/pull/5733)." +msgstr "rax_mon_notification_plan - モジュールは、非推奨のライブラリー ``pyrax`` に依存しています。メンテナーがこのモジュールに取り組むための対策をとらない限り、これは community.general 7.0.0 で非推奨としてマークされ、バージョン 9.0.0 で削除されます (https://github.com/ansible-collections/community.general/pull/5733)。" + +#: ../../rst/porting_guides/porting_guide_7.rst:203 +msgid "rax_network - module relies on deprecates library ``pyrax``. Unless maintainers step up to work on the module, it will be marked as deprecated in community.general 7.0.0 and removed in version 9.0.0 (https://github.com/ansible-collections/community.general/pull/5733)." +msgstr "rax_network - モジュールは、非推奨のライブラリー ``pyrax`` に依存しています。メンテナーがこのモジュールに取り組むための対策をとらない限り、これは community.general 7.0.0 で非推奨としてマークされ、バージョン 9.0.0 で削除されます (https://github.com/ansible-collections/community.general/pull/5733)。" + +#: ../../rst/porting_guides/porting_guide_7.rst:204 +msgid "rax_queue - module relies on deprecates library ``pyrax``. Unless maintainers step up to work on the module, it will be marked as deprecated in community.general 7.0.0 and removed in version 9.0.0 (https://github.com/ansible-collections/community.general/pull/5733)." +msgstr "rax_queue - モジュールは、非推奨のライブラリー ``pyrax`` に依存しています。メンテナーがこのモジュールに取り組むための対策をとらない限り、これは community.general 7.0.0 で非推奨としてマークされ、バージョン 9.0.0 で削除されます (https://github.com/ansible-collections/community.general/pull/5733)。" + +#: ../../rst/porting_guides/porting_guide_7.rst:205 +msgid "rax_scaling_group - module relies on deprecates library ``pyrax``. Unless maintainers step up to work on the module, it will be marked as deprecated in community.general 7.0.0 and removed in version 9.0.0 (https://github.com/ansible-collections/community.general/pull/5733)." +msgstr "rax_scaling_group - モジュールは、非推奨のライブラリー ``pyrax`` に依存しています。メンテナーがこのモジュールに取り組むための対策をとらない限り、これは community.general 7.0.0 で非推奨としてマークされ、バージョン 9.0.0 で削除されます (https://github.com/ansible-collections/community.general/pull/5733)。" + +#: ../../rst/porting_guides/porting_guide_7.rst:206 +msgid "rax_scaling_policy - module relies on deprecates library ``pyrax``. Unless maintainers step up to work on the module, it will be marked as deprecated in community.general 7.0.0 and removed in version 9.0.0 (https://github.com/ansible-collections/community.general/pull/5733)." +msgstr "rax_scaling_policy - モジュールは、非推奨のライブラリー ``pyrax`` に依存しています。メンテナーがこのモジュールに取り組むための対策をとらない限り、これは community.general 7.0.0 で非推奨としてマークされ、バージョン 9.0.0 で削除されます (https://github.com/ansible-collections/community.general/pull/5733)。" + +#: ../../rst/porting_guides/porting_guide_7.rst:211 +msgid "ansible-core - support for ``ansible-core`` versions ``2.11`` and ``2.12`` will be dropped in collection version ``5.0.0``, making ``2.13`` the minimum supported version of ``ansible-core`` (https://github.com/ansible-collections/community.hashi_vault/issues/340)." +msgstr "ansible-core - のサポート``ansible-core`` バージョン ``2.11`` と ``2.12`` のサポートは、コレクションバージョン ``5.0.0`` で削除されます。これにより、``2.13`` が ``ansible-core`` のサポートされている最小バージョンとなります (https://github.com/ansible-collections/community.hashi_vault/issues/340)。" + +#: ../../rst/porting_guides/porting_guide_7.rst:212 +msgid "hvac - the minimum version of ``hvac`` to be supported in collection version ``5.0.0`` will be at least ``1.0.2``; this minimum may be raised before ``5.0.0`` is released, so please subscribe to the linked issue and look out for new notices in the changelog (https://github.com/ansible-collections/community.hashi_vault/issues/324)." +msgstr "hvac - コレクションバージョン ``5.0.0`` でサポートされる予定の ``hvac`` の最小バージョンは、少なくとも ``1.0.2`` です。この最小バージョンは、``5.0.0`` がリリースされる前に引き上げられる可能性がありますので、リンクされている問題にサブスクライブし、changelog で新しい通知に注意してください (https://github.com/ansible-collections/community.hashi_vault/issues/324)。" + +#: ../../rst/porting_guides/porting_guide_7.rst:215 +msgid "Porting Guide for v7.1.0" +msgstr "v7.1.0 の移植ガイド" + +#: ../../rst/porting_guides/porting_guide_7.rst:220 +msgid "grafana.grafana (version 1.1.0)" +msgstr "grafana.grafana (バージョン 1.1.0)" + +#: ../../rst/porting_guides/porting_guide_7.rst:263 +msgid "The ``sap`` modules ``sapcar_extract``, ``sap_task_list_execute``, and ``hana_query``, will be removed from this collection in community.general 7.0.0 and replaced with redirects to ``community.sap_libs``. If you want to continue using these modules, make sure to also install ``community.sap_libs`` (it is part of the Ansible package) (https://github.com/ansible-collections/community.general/pull/5614)." +msgstr "``sap`` モジュールの ``sapcar_extract``、``sap_task_list_execute``、および ``hana_query`` は、community.general 7.0.0 でこのコレクションから削除され、``community.sap_libs`` へのリダイレクトに置き換えられます。これらのモジュールを引き続き使用する場合は、必ず ``community.sap_libs`` もインストールしてください (これは Ansible パッケージの一部です) (https://github.com/ansible-collections/community.general/pull/5614)。" + +#: ../../rst/porting_guides/porting_guide_7.rst:266 +msgid "Porting Guide for v7.0.0" +msgstr "v7.0.0 の移植ガイド" + +#: ../../rst/porting_guides/porting_guide_7.rst:271 +msgid "ibm.spectrum_virtualize (version 1.10.0)" +msgstr "ibm.spectrum_virtualize (version 1.10.0)" + +#: ../../rst/porting_guides/porting_guide_7.rst:272 +msgid "inspur.ispim (version 1.2.0)" +msgstr "inspur.ispim (バージョン 1.2.0)" + +#: ../../rst/porting_guides/porting_guide_7.rst:274 +msgid "purestorage.fusion (version 1.1.1)" +msgstr "purestorage.fusion (バージョン 1.1.1)" + +#: ../../rst/porting_guides/porting_guide_7.rst:275 +msgid "vultr.cloud (version 1.3.1)" +msgstr "vultr.cloud (バージョン 1.3.1)" + +#: ../../rst/porting_guides/porting_guide_7.rst:306 +msgid "Ansible 7 requires Python 3.9 on the controller, same as ansible-core 2.14." +msgstr "Ansible 7 は、ansible-core 2.14 と同じように、コントローラー上に Python 3.9 を必要とします。" + +#: ../../rst/porting_guides/porting_guide_7.rst:311 +msgid "Allow for lazy evaluation of Jinja2 expressions (https://github.com/ansible/ansible/issues/56017)" +msgstr "Jinja2 式の遅延評価を許可します (https://github.com/ansible/ansible/issues/56017)" + +#: ../../rst/porting_guides/porting_guide_7.rst:312 +msgid "The default ansible-galaxy role skeletons no longer contain .travis.yml files. You can configure ansible-galaxy to use a custom role skeleton that contains a .travis.yml file to continue using Galaxy's integration with Travis CI." +msgstr "デフォルトの ansible-galaxy ロールスケルトンには、.travis.yml ファイルが含まれなくなりました。.travis.yml ファイルを含むカスタムロールのスケルトンを使用するように ansible-galaxy を設定して、Galaxy と Travis CI の統合を引き続き使用することができます。" + +#: ../../rst/porting_guides/porting_guide_7.rst:313 +#: ../../rst/porting_guides/porting_guide_7.rst:476 +msgid "ansible - At startup the filesystem encoding and locale are checked to verify they are UTF-8. If not, the process exits with an error reporting the errant encoding." +msgstr "ansible - 起動時に、ファイルシステムのエンコーディングとロケールがチェックされ、UTF-8 であることが確認されます。確認しない場合、プロセスは誤ったエンコーディングを報告するエラーで終了します。" + +#: ../../rst/porting_guides/porting_guide_7.rst:314 +#: ../../rst/porting_guides/porting_guide_7.rst:477 +msgid "ansible - Increase minimum Python requirement to Python 3.9 for CLI utilities and controller code" +msgstr "ansible - CLI ユーティリティーとコントローラーコードの Python の最小要件を Python 3.9 に増やします。" + +#: ../../rst/porting_guides/porting_guide_7.rst:315 +#: ../../rst/porting_guides/porting_guide_7.rst:478 +msgid "ansible-test - At startup the filesystem encoding is checked to verify it is UTF-8. If not, the process exits with an error reporting the errant encoding." +msgstr "ansible-test - 起動時にファイルシステムのエンコーディングがチェックされ、UTF-8 であることが確認されます。確認しない場合、プロセスは誤ったエンコーディングを報告するエラーで終了します。" + +#: ../../rst/porting_guides/porting_guide_7.rst:316 +#: ../../rst/porting_guides/porting_guide_7.rst:479 +msgid "ansible-test - At startup the locale is configured as ``en_US.UTF-8``, with a fallback to ``C.UTF-8``. If neither encoding is available the process exits with an error. If the fallback is used, a warning is displayed. In previous versions the ``en_US.UTF-8`` locale was always requested. However, no startup checking was performed to verify the locale was successfully configured." +msgstr "ansible-test - 起動時にロケールは、``C.UTF-8`` へのフォールバックのある ``en_US.UTF-8`` として設定されます。どちらのエンコーディングも利用できない場合、プロセスはエラーで終了します。フォールバックが使用される場合、警告が表示されます。以前のバージョンでは、``en_US.UTF-8`` ロケールは常に要求されました。ただし、ロケールが正常に設定されたことを確認するための起動時のチェックは実行されませんでした。" + +#: ../../rst/porting_guides/porting_guide_7.rst:317 +msgid "ansible-test validate-modules - Removed the ``missing-python-doc`` error code in validate modules, ``missing-documentation`` is used instead for missing PowerShell module documentation." +msgstr "ansible-test validate-modules - モジュールの検証で ``missing-python-doc`` エラーコードを削除しました。``missing-documentation`` は、PowerShell モジュールのドキュメントがない場合に代わりに使用されます。" + +#: ../../rst/porting_guides/porting_guide_7.rst:318 +msgid "strategy plugins - Make ``ignore_unreachable`` to increase ``ignored`` and ``ok`` and counter, not ``skipped`` and ``unreachable``. (https://github.com/ansible/ansible/issues/77690)" +msgstr "ストラテジープラグイン - ``ignore_unreachable`` が、``skipped`` および ``unreachable`` ではなく、``ignored``、``ok``、およびカウンターを増やすようにします (https://github.com/ansible/ansible/issues/77690)。" + +#: ../../rst/porting_guides/porting_guide_7.rst:323 +#: ../../rst/porting_guides/porting_guide_7.rst:359 +msgid "Tags beginning with ``aws:`` will not be removed when purging tags, these tags are reserved by Amazon and may not be updated or deleted (https://github.com/ansible-collections/amazon.aws/issues/817)." +msgstr "``aws:`` で始まるタグは、タグをパージしても削除されません。これらのタグは Amazon によって予約されており、更新または削除できません (https://github.com/ansible-collections/amazon.aws/issues/817)。" + +#: ../../rst/porting_guides/porting_guide_7.rst:324 +msgid "amazon.aws collection - Support for ansible-core < 2.11 has been dropped (https://github.com/ansible-collections/amazon.aws/pull/1087)." +msgstr "amazon.aws コレクション - ansible-core < 2.11 のサポートは終了しました (https://github.com/ansible-collections/amazon.aws/pull/1087)." + +#: ../../rst/porting_guides/porting_guide_7.rst:325 +msgid "amazon.aws collection - The amazon.aws collection has dropped support for ``botocore<1.21.0`` and ``boto3<1.18.0``. Most modules will continue to work with older versions of the AWS SDK, however compatability with older versions of the SDK is not guaranteed and will not be tested. When using older versions of the SDK a warning will be emitted by Ansible (https://github.com/ansible-collections/amazon.aws/pull/934)." +msgstr "amazon.aws コレクション - amazon.aws コレクションでは ``botocore<1.21.0`` および ``boto3<1.18.0`` のサポートを廃止しました。ほとんどのモジュールは、AWS SDK の古いバージョンで引き続き機能しますが、SDK の古いバージョンとの互換性は保証されず、テストされません。古いバージョンの SDK を使用する場合は、Ansible によって警告が出力されます (https://github.com/ansible-collections/amazon.aws/pull/934)。" + +#: ../../rst/porting_guides/porting_guide_7.rst:326 +msgid "amazon.aws collection - the ``profile`` parameter is now mutually exclusive with the ``aws_access_key``, ``aws_secret_key`` and ``security_token`` parameters (https://github.com/ansible-collections/amazon.aws/pull/834)." +msgstr "amazon.aws コレクション - ``profile``パラメーターは現在、``aws_access_key``、``aws_secret_key``、および ``security_token`` でパラメーターにより相互に排他的です (https://github.com/ansible-collections/amazon.aws/pull/834)。" + +#: ../../rst/porting_guides/porting_guide_7.rst:327 +msgid "aws_az_info - the module alias ``aws_az_facts`` was deprecated in Ansible 2.9 and has now been removed (https://github.com/ansible-collections/amazon.aws/pull/832)." +msgstr "aws_az_info - モジュールのエイリアス ``aws_az_facts`` は Ansible 2.9 で非推奨となり、現在は削除されています (https://github.com/ansible-collections/amazon.aws/pull/832)。" + +#: ../../rst/porting_guides/porting_guide_7.rst:328 +msgid "aws_s3 - the default value for ``ensure overwrite`` has been changed to ``different`` instead of ``always`` so that the module is idempotent by default (https://github.com/ansible-collections/amazon.aws/issues/811)." +msgstr "aws_s3 - モジュールがデフォルトでべき等であるように、``ensure overwrite`` のデフォルト値が ``always`` の代わりに ``different`` に変更されました (https://github.com/ansible-collections/amazon.aws/issues/811)。" + +#: ../../rst/porting_guides/porting_guide_7.rst:329 +msgid "aws_ssm - on_denied and on_missing now both default to error, for consistency with both aws_secret and the base Lookup class (https://github.com/ansible-collections/amazon.aws/issues/617)." +msgstr "aws_ssm - aws_secret とベース Lookup クラスの両方との一貫性を保つために、on_denied および on_missing の両方がデフォルトでエラーとなりました (https://github.com/ansible-collections/amazon.aws/issues/617)。" + +#: ../../rst/porting_guides/porting_guide_7.rst:330 +msgid "doc_fragments - remove minimum collection requirements from doc_fragments/aws.py and allow pulling those from doc_fragments/aws_boto3.py instead (https://github.com/ansible-collections/amazon.aws/pull/985)." +msgstr "doc_fragments - doc_fragments/aws.py から最小限のコレクション要件を削除し、代わりに doc_fragments/aws_boto3.py からそれらをプルできるようにしました (https://github.com/ansible-collections/amazon.aws/pull/985)。" + +#: ../../rst/porting_guides/porting_guide_7.rst:331 +msgid "ec2 - The ``ec2`` module has been removed in release 4.0.0 and replaced by the ``ec2_instance`` module (https://github.com/ansible-collections/amazon.aws/pull/630)." +msgstr "ec2 - ``ec2`` モジュールはリリース 4.0.0 で削除され、``ec2_instance`` モジュールに置き換えられました (https://github.com/ansible-collections/amazon.aws/pull/630)。" + +#: ../../rst/porting_guides/porting_guide_7.rst:332 +msgid "ec2_ami - the default value for ``purge_tags`` has been changed from ``False`` to ``True`` (https://github.com/ansible-collections/amazon.aws/pull/916)." +msgstr "ec2_ami -``purge_tags`` のデフォルト値が、``False`` から ``True`` に変更されました (https://github.com/ansible-collections/amazon.aws/pull/916)。" + +#: ../../rst/porting_guides/porting_guide_7.rst:333 +msgid "ec2_ami - the parameter aliases ``DeviceName``, ``VirtualName`` and ``NoDevice`` were previously deprecated and have been removed, please use ``device_name``, ``virtual_name`` and ``no_device`` instead (https://github.com/ansible-collections/amazon.aws/pull/913)." +msgstr "ec2_ami - パラメーターのエイリアス ``DeviceName``、``VirtualName``、および ``NoDevice`` は以前非推奨となり、削除されました。代わりに ``device_name``、``virtual_name``、および ``no_device`` を使用してください (https://github.com/ansible-collections/amazon.aws/pull/913)。" + +#: ../../rst/porting_guides/porting_guide_7.rst:334 +msgid "ec2_eni_info - the mutual exclusivity of the ``eni_id`` and ``filters`` parameters is now enforced, previously ``filters`` would be ignored if ``eni_id`` was set (https://github.com/ansible-collections/amazon.aws/pull/954)." +msgstr "ec2_eni_info - ``eni_id`` と``filters`` パラメーターの相互排他性が強制されるようになりました。以前は``eni_id`` が設定されている場合は ``filters`` は無視されていました (https://github.com/ansible-collections/amazon.aws/pull/954)。" + +#: ../../rst/porting_guides/porting_guide_7.rst:335 +msgid "ec2_instance - the default value for ``purge_tags`` has been changed from ``False`` to ``True`` (https://github.com/ansible-collections/amazon.aws/pull/916)." +msgstr "ec2_instance - ``purge_tags`` のデフォルト値が、``False`` から ``True`` に変更されました (https://github.com/ansible-collections/amazon.aws/pull/916)。" + +#: ../../rst/porting_guides/porting_guide_7.rst:336 +msgid "ec2_key - the default value for ``purge_tags`` has been changed from ``False`` to ``True`` (https://github.com/ansible-collections/amazon.aws/pull/916)." +msgstr "ec2_key - ``purge_tags`` のデフォルト値が、``False`` から ``True`` に変更されました (https://github.com/ansible-collections/amazon.aws/pull/916)。" + +#: ../../rst/porting_guides/porting_guide_7.rst:337 +msgid "ec2_vol - the default value for ``purge_tags`` has been changed from ``False`` to ``True`` (https://github.com/ansible-collections/amazon.aws/pull/916)." +msgstr "ec2_vol - ``purge_tags`` のデフォルト値が、``False`` から ``True`` に変更されました (https://github.com/ansible-collections/amazon.aws/pull/916)。" + +#: ../../rst/porting_guides/porting_guide_7.rst:338 +msgid "ec2_vpc_dhcp_option_info - the parameter aliases ``DhcpOptionIds`` and ``DryRun`` were previously deprecated and have been removed, please use ``dhcp_options_ids`` and ``no_device`` instead (https://github.com/ansible-collections/amazon.aws/pull/913)." +msgstr "ec2_vpc_dhcp_option_info - パラメーターのエイリアス ``DhcpOptionIds`` および ``DryRun`` は以前非推奨となり、削除されました。代わりに ``dhcp_options_ids`` および ``no_device`` を使用してください (https://github.com/ansible-collections/amazon.aws/pull/913)。" + +#: ../../rst/porting_guides/porting_guide_7.rst:339 +msgid "ec2_vpc_endpoint - the default value for ``purge_tags`` has been changed from ``False`` to ``True`` (https://github.com/ansible-collections/amazon.aws/pull/916)." +msgstr "ec2_vpc_endpoint - ``purge_tags`` のデフォルト値が、``False`` から ``True`` に変更されました (https://github.com/ansible-collections/amazon.aws/pull/916)。" + +#: ../../rst/porting_guides/porting_guide_7.rst:340 +msgid "ec2_vpc_igw_info - The default value for ``convert_tags`` has been changed to ``True`` (https://github.com/ansible-collections/amazon.aws/pull/835)." +msgstr "ec2_vpc_igw_info - ``convert_tags`` のデフォルト値が ``True`` に変更されました (https://github.com/ansible-collections/amazon.aws/pull/835)。" + +#: ../../rst/porting_guides/porting_guide_7.rst:341 +msgid "ec2_vpc_net - the default value for ``purge_tags`` has been changed from ``False`` to ``True`` (https://github.com/ansible-collections/amazon.aws/pull/916)." +msgstr "ec2_vpc_net - ``purge_tags`` のデフォルト値が、``False`` から ``True`` に変更されました (https://github.com/ansible-collections/amazon.aws/pull/916)。" + +#: ../../rst/porting_guides/porting_guide_7.rst:342 +msgid "ec2_vpc_route_table - the default value for ``purge_tags`` has been changed from ``False`` to ``True`` (https://github.com/ansible-collections/amazon.aws/pull/916)." +msgstr "ec2_vpc_route_table - ``purge_tags`` のデフォルト値が、``False`` から ``True`` に変更されました (https://github.com/ansible-collections/amazon.aws/pull/916)。" + +#: ../../rst/porting_guides/porting_guide_7.rst:343 +msgid "elb_classic_lb - the ``ec2_elb`` fact has been removed (https://github.com/ansible-collections/amazon.aws/pull/827)." +msgstr "elb_classic_lb - ``ec2_elb`` ファクトは削除されました (https://github.com/ansible-collections/amazon.aws/pull/827)。" + +#: ../../rst/porting_guides/porting_guide_7.rst:344 +msgid "module_utils - Support for the original AWS SDK aka ``boto`` has been removed, including all relevant helper functions. All modules should now use the ``boto3``/``botocore`` AWS SDK (https://github.com/ansible-collections/amazon.aws/pull/630)" +msgstr "module_utils - 関連するすべてのヘルパー関数を含む、元の AWS SDK (別名 ``boto``) のサポートが削除されました。すべてのモジュールは今後、``boto3``/``botocore`` AWS SDK を使用する必要があります (https://github.com/ansible-collections/amazon.aws/pull/630)。" + +#: ../../rst/porting_guides/porting_guide_7.rst:345 +msgid "s3_bucket - the previously deprecated alias ``S3_URL`` for the ``s3_url`` parameter has been removed. Playbooks shuold be updated to use ``s3_url`` (https://github.com/ansible-collections/amazon.aws/pull/908)." +msgstr "s3_bucket - 以前に非推奨となった ``s3_url`` パラメーターのエイリアス ``S3_URL`` は削除されました。Playbook は ``s3_url`` を使うように更新する必要があります (https://github.com/ansible-collections/amazon.aws/pull/908)。" + +#: ../../rst/porting_guides/porting_guide_7.rst:346 +msgid "s3_object - the previously deprecated alias ``S3_URL`` for the ``s3_url`` parameter has been removed. Playbooks should be updated to use ``s3_url`` (https://github.com/ansible-collections/amazon.aws/pull/908)." +msgstr "s3_object - 以前に非推奨となった ``s3_url`` パラメーターのエイリアス ``S3_URL`` は削除されました。Playbook は ``s3_url`` を使うように更新する必要があります (https://github.com/ansible-collections/amazon.aws/pull/908)。" + +#: ../../rst/porting_guides/porting_guide_7.rst:349 +#: ../../rst/porting_guides/porting_guide_7.rst:539 +msgid "check_point.mgmt" +msgstr "check_point.mgmt" + +#: ../../rst/porting_guides/porting_guide_7.rst:351 +msgid "cp_mgmt_access_role - the 'machines' parameter now accepts a single str and a new parameter 'machines_list' of type dict has been added. the 'users' parameter now accepts a single str and a new parameter 'users_list' of type dict has been added." +msgstr "cp_mgmt_access_role - 'machines' パラメーターが単一の str を受け入れるようになり、タイプ dict の新しいパラメーター 'machines_list' が追加されました。'users' パラメーターは単一の str を受け入れるようになり、タイプ dict の新しいパラメーター 'users_list' が追加されました。" + +#: ../../rst/porting_guides/porting_guide_7.rst:352 msgid "cp_mgmt_access_rule - the 'vpn' parameter now accepts a single str and a new parameter 'vpn_list' of type dict has been added. the 'position_by_rule' parameter has been changed to 'relative_position' with support of positioning above/below a section (and not just a rule). the 'relative_position' parameter has also 'top' and 'bottom' suboptions which allows positioning a rule at the top and bottom of a section respectively. a new parameter 'search_entire_rulebase' has been added to allow the relative positioning to be unlimited (was previously limited to 50 rules)" msgstr "cp_mgmt_access_rule - 'vpn' パラメーターは単一の str を受け入れるようになり、タイプ dict の新しいパラメーター 'vpn_list' が追加されました。'position_by_rule' パラメーターが 'relative_position' に変更され、セクションの上/下の配置がサポートされました (ルールだけではありません)。'relative_position' パラメーターには 'top' および 'bottom' のサブオプションもあり、それぞれセクションの上部と下部にルールを配置できます。新しいパラメーター 'search_entire_rulebase' が追加され、相対位置を無制限とすることができるようになりました (以前は 50 ルールに制限されていました)。" -#: ../../rst/porting_guides/porting_guide_7.rst:159 +#: ../../rst/porting_guides/porting_guide_7.rst:353 msgid "cp_mgmt_administrator - the 'permissions_profile' parameter now accepts a single str and a new parameter 'permissions_profile_list' of type dict has been added." msgstr "cp_mgmt_administrator - 'permissions_profile' パラメーターは単一の str を受け入れるようになり、タイプ dict の新しいパラメーター 'permissions_profile_list' が追加されました。" -#: ../../rst/porting_guides/porting_guide_7.rst:160 +#: ../../rst/porting_guides/porting_guide_7.rst:354 msgid "cp_mgmt_publish - the 'uid' parameter has been removed." msgstr "cp_mgmt_publish - 'uid' パラメーターが削除されました。" -#: ../../rst/porting_guides/porting_guide_7.rst:166 +#: ../../rst/porting_guides/porting_guide_7.rst:360 +msgid "acm_certificate - the previously deprecated default value of ``purge_tags=False`` has been updated to ``purge_tags=True`` (https://github.com/ansible-collections/community.aws/pull/1343)." +msgstr "acm_certificate - 以前に非推奨となったデフォルト値 ``purge_tags=False`` は、``purge_tags=True`` に更新されました (https://github.com/ansible-collections/community.aws/pull/1343)。" + +#: ../../rst/porting_guides/porting_guide_7.rst:361 +#: ../../rst/porting_guides/porting_guide_7.rst:485 +msgid "autoscaling_group - The module has been migrated from the ``community.aws`` collection. Playbooks using the Fully Qualified Collection Name for this module should be updated to use ``amazon.aws.autoscaling_group``." +msgstr "autoscaling_group - モジュールは ``community.aws`` コレクションから移行されました。このモジュールの完全修飾コレクション名を使用する Playbook は、``amazon.aws.autoscaling_group`` を使用するように更新する必要があります。" + +#: ../../rst/porting_guides/porting_guide_7.rst:362 +#: ../../rst/porting_guides/porting_guide_7.rst:486 +msgid "autoscaling_group_info - The module has been migrated from the ``community.aws`` collection. Playbooks using the Fully Qualified Collection Name for this module should be updated to use ``amazon.aws.autoscaling_group_info``." +msgstr "autoscaling_group_info - モジュールは ``community.aws`` コレクションから移行されました。このモジュールの完全修飾コレクション名を使用する Playbook は、``amazon.aws.autoscaling_group_info`` を使用するように更新する必要があります。" + +#: ../../rst/porting_guides/porting_guide_7.rst:363 msgid "aws_secret - tags are no longer removed when the ``tags`` parameter is not set. To remove all tags set ``tags={}`` (https://github.com/ansible-collections/community.aws/issues/1146)." msgstr "aws_secret - ``tags`` パラメーターが設定されていない場合、タグが削除されなくなりました。すべてのタグを削除するには ``tags={}`` を設定します (https://github.com/ansible-collections/community.aws/issues/1146)。" -#: ../../rst/porting_guides/porting_guide_7.rst:167 +#: ../../rst/porting_guides/porting_guide_7.rst:364 +msgid "cloudfront_distribution - the previously deprecated default value of ``purge_tags=False`` has been updated to ``purge_tags=True`` (https://github.com/ansible-collections/community.aws/pull/1343)." +msgstr "cloudfront_distribution - 以前に非推奨となったデフォルト値 ``purge_tags=False`` は、``purge_tags=True`` に更新されました (https://github.com/ansible-collections/community.aws/pull/1343)。" + +#: ../../rst/porting_guides/porting_guide_7.rst:365 +msgid "cloudtrail - The module has been migrated to the ``amazon.aws`` collection. Playbooks using the Fully Qualified Collection Name for this module should be updated to use ``amazon.aws.cloudtrail``." +msgstr "cloudtrail - モジュールは ``amazon.aws`` コレクションに移行しました。このモジュールの完全修飾コレクション名を使用する Playbook を ``amazon.aws.cloudtrail`` を使用するように更新する必要があります。" + +#: ../../rst/porting_guides/porting_guide_7.rst:366 +#: ../../rst/porting_guides/porting_guide_7.rst:488 +msgid "cloudwatch_metric_alarm - The module has been migrated from the ``community.aws`` collection. Playbooks using the Fully Qualified Collection Name for this module should be updated to use ``amazon.aws.cloudwatch_metric_alarm``." +msgstr "cloudwatch_metric_alarm - モジュールは ``community.aws`` コレクションから移行しました。このモジュールの完全修飾コレクション名を使用する Playbook を ``amazon.aws.cloudwatch_metric_alarm`` を使用するように更新する必要があります。" + +#: ../../rst/porting_guides/porting_guide_7.rst:367 +#: ../../rst/porting_guides/porting_guide_7.rst:489 +msgid "cloudwatchevent_rule - The module has been migrated from the ``community.aws`` collection. Playbooks using the Fully Qualified Collection Name for this module should be updated to use ``amazon.aws.cloudwatchevent_rule``." +msgstr "cloudwatchevent_rule - モジュールは ``community.aws`` コレクションから移行しました。このモジュールの完全修飾コレクション名を使用する Playbook を ``amazon.aws.cloudwatchevent_rule`` を使用するように更新する必要があります。" + +#: ../../rst/porting_guides/porting_guide_7.rst:368 +#: ../../rst/porting_guides/porting_guide_7.rst:490 +msgid "cloudwatchlogs_log_group - The module has been migrated from the ``community.aws`` collection. Playbooks using the Fully Qualified Collection Name for this module should be updated to use ``amazon.aws.cloudwatchlogs_log_group``." +msgstr "cloudwatchlogs_log_group - モジュールは ``community.aws`` コレクションから移行されました。このモジュールの完全修飾コレクション名を使用する Playbook は、``amazon.aws.cloudwatchlogs_log_group`` を使用するように更新する必要があります。" + +#: ../../rst/porting_guides/porting_guide_7.rst:369 +#: ../../rst/porting_guides/porting_guide_7.rst:491 +msgid "cloudwatchlogs_log_group_info - The module has been migrated from the ``community.aws`` collection. Playbooks using the Fully Qualified Collection Name for this module should be updated to use ``amazon.aws.cloudwatchlogs_log_group_info``." +msgstr "cloudwatchlogs_log_group_info - モジュールは ``community.aws`` コレクションから移行されました。このモジュールの完全修飾コレクション名を使用する Playbook は、``amazon.aws.cloudwatchlogs_log_group_info`` を使用するように更新する必要があります。" + +#: ../../rst/porting_guides/porting_guide_7.rst:370 +#: ../../rst/porting_guides/porting_guide_7.rst:492 +msgid "cloudwatchlogs_log_group_metric_filter - The module has been migrated from the ``community.aws`` collection. Playbooks using the Fully Qualified Collection Name for this module should be updated to use ``amazon.aws.cloudwatchlogs_log_group_metric_filter``." +msgstr "cloudwatchlogs_log_group_metric_filter - モジュールは ``community.aws`` コレクションから移行されました。このモジュールの完全修飾コレクション名を使用する Playbook は、``amazon.aws.cloudwatchlogs_log_group_metric_filter`` を使用するように更新する必要があります。" + +#: ../../rst/porting_guides/porting_guide_7.rst:371 +msgid "community.aws collection - Support for ansible-core < 2.11 has been dropped (https://github.com/ansible-collections/community.aws/pull/1541)." +msgstr "community.aws コレクション - ansible-core < 2.11 のサポートは終了しました (https://github.com/ansible-collections/community.aws/pull/1541)." + +#: ../../rst/porting_guides/porting_guide_7.rst:372 msgid "community.aws collection - The ``community.aws`` collection has now dropped support for and any requirements upon the original ``boto`` AWS SDK, and now uses the ``boto3``/``botocore`` AWS SDK (https://github.com/ansible-collections/community.aws/pull/898)." msgstr "community.aws コレクション - ``community.aws`` コレクションは現在、元の ``boto`` AWS SDK へのサポートと要件をすべて削除し、``boto3``/``botocore`` AWS SDK を使用するようになりました (https://github.com/ansible-collections/community.aws/pull/898)。" -#: ../../rst/porting_guides/porting_guide_7.rst:168 +#: ../../rst/porting_guides/porting_guide_7.rst:373 +msgid "community.aws collection - The community.aws collection has dropped support for ``botocore<1.21.0`` and ``boto3<1.18.0``. Most modules will continue to work with older versions of the AWS SDK, however compatability with older versions of the SDK is not guaranteed and will not be tested. When using older versions of the SDK a warning will be emitted by Ansible (https://github.com/ansible-collections/community.aws/pull/1362)." +msgstr "community.aws コレクション - community.aws コレクションでは ``botocore<1.21.0`` および ``boto3<1.18.0`` のサポートを廃止しました。ほとんどのモジュールは、AWS SDK の古いバージョンで引き続き機能しますが、SDK の古いバージョンとの互換性は保証されず、テストされません。SDK の古いバージョンを使用する場合は、Ansible によって警告が出力されます (https://github.com/ansible-collections/community.aws/pull/1362)。" + +#: ../../rst/porting_guides/porting_guide_7.rst:374 msgid "community.aws collection - the ``profile`` parameter is now mutually exclusive with the ``aws_access_key``, ``aws_secret_key`` and ``security_token`` parameters (https://github.com/ansible-collections/amazon.aws/pull/834)." msgstr "community.aws コレクション - ``profile`` パラメーターは現在、``aws_access_key``、``aws_secret_key``、および ``security_token`` パラメーターと相互に排他的です (https://github.com/ansible-collections/amazon.aws/pull/834)。" -#: ../../rst/porting_guides/porting_guide_7.rst:171 +#: ../../rst/porting_guides/porting_guide_7.rst:375 +#: ../../rst/porting_guides/porting_guide_7.rst:493 +msgid "ec2_eip - The module has been migrated from the ``community.aws`` collection. Playbooks using the Fully Qualified Collection Name for this module should be updated to use ``amazon.aws.ec2_eip``." +msgstr "ec2_eip - モジュールは ``community.aws`` コレクションから移行しました。このモジュールの完全修飾コレクション名を使用する Playbook を ``amazon.aws.ec2_eip`` を使用するように更新する必要があります。" + +#: ../../rst/porting_guides/porting_guide_7.rst:376 +#: ../../rst/porting_guides/porting_guide_7.rst:494 +msgid "ec2_eip_info - The module has been migrated from the ``community.aws`` collection. Playbooks using the Fully Qualified Collection Name for this module should be updated to use ``amazon.aws.ec2_eip_info``." +msgstr "ec2_eip_info - モジュールは ``community.aws`` コレクションから移行しました。このモジュールの完全修飾コレクション名を使用する Playbook を ``amazon.aws.ec2_eip_info`` を使用するように更新する必要があります。" + +#: ../../rst/porting_guides/porting_guide_7.rst:379 +msgid "ec2_vpc_vpn - the previously deprecated default value of ``purge_tags=False`` has been updated to ``purge_tags=True`` (https://github.com/ansible-collections/community.aws/pull/1343)." +msgstr "ec2_vpc_vpn - これまで非推奨だったデフォルト値``purge_tags=False`` は、``purge_tags=True`` に更新されました (https://github.com/ansible-collections/community.aws/pull/1343)。" + +#: ../../rst/porting_guides/porting_guide_7.rst:380 +#: ../../rst/porting_guides/porting_guide_7.rst:495 +msgid "elb_application_lb - The module has been migrated from the ``community.aws`` collection. Playbooks using the Fully Qualified Collection Name for this module should be updated to use ``amazon.aws.elb_application_lb``." +msgstr "elb_application_lb - モジュールは ``community.aws`` コレクションから移行しました。このモジュールの完全修飾コレクション名を使用する Playbook を ``amazon.aws.elb_application_lb`` を使用するように更新する必要があります。" + +#: ../../rst/porting_guides/porting_guide_7.rst:381 +#: ../../rst/porting_guides/porting_guide_7.rst:496 +msgid "elb_application_lb_info - The module has been migrated from the ``community.aws`` collection. Playbooks using the Fully Qualified Collection Name for this module should be updated to use ``amazon.aws.elb_application_lb_info``." +msgstr "elb_application_lb_info - モジュールは ``community.aws`` コレクションから移行しました。このモジュールの完全修飾コレクション名を使用する Playbook を ``amazon.aws.elb_application_lb_info`` を使用するように更新する必要があります。" + +#: ../../rst/porting_guides/porting_guide_7.rst:382 msgid "elb_instance - the ``ec2_elbs`` fact has been removed, ``updated_elbs`` has been added the return values and includes the same information (https://github.com/ansible-collections/community.aws/pull/1173)." msgstr "elb_instance - ``ec2_elbs`` ファクトが削除され、``updated_elbs`` には戻り値が追加され、同じ情報が含まれています (https://github.com/ansible-collections/community.aws/pull/1173)。" -#: ../../rst/porting_guides/porting_guide_7.rst:172 +#: ../../rst/porting_guides/porting_guide_7.rst:383 msgid "elb_network_lb - the default value of ``state`` has changed from ``absent`` to ``present`` (https://github.com/ansible-collections/community.aws/pull/1167)." msgstr "elb_network_lb - ``state`` のデフォルト値が``absent`` から ``present`` に変更されました (https://github.com/ansible-collections/community.aws/pull/1167)。" -#: ../../rst/porting_guides/porting_guide_7.rst:173 +#: ../../rst/porting_guides/porting_guide_7.rst:384 +#: ../../rst/porting_guides/porting_guide_7.rst:497 +msgid "execute_lambda - The module has been migrated from the ``community.aws`` collection. Playbooks using the Fully Qualified Collection Name for this module should be updated to use ``amazon.aws.execute_lambda``." +msgstr "execute_lambda - モジュールは ``community.aws`` コレクションから移行されました。このモジュールの完全修飾コレクション名を使用する Playbook は、``amazon.aws.execute_lambda`` を使用するように更新する必要があります。" + +#: ../../rst/porting_guides/porting_guide_7.rst:385 +#: ../../rst/porting_guides/porting_guide_7.rst:498 +msgid "iam_policy - The module has been migrated from the ``community.aws`` collection. Playbooks using the Fully Qualified Collection Name for this module should be updated to use ``amazon.aws.iam_policy``." +msgstr "iam_policy - モジュールは ``community.aws`` コレクションから移行しました。このモジュールの完全修飾コレクション名を使用する Playbook を ``amazon.aws.iam_policy`` を使用するように更新する必要があります。" + +#: ../../rst/porting_guides/porting_guide_7.rst:386 +#: ../../rst/porting_guides/porting_guide_7.rst:499 +msgid "iam_policy_info - The module has been migrated from the ``community.aws`` collection. Playbooks using the Fully Qualified Collection Name for this module should be updated to use ``amazon.aws.iam_policy_info``." +msgstr "iam_policy_info - モジュールは ``community.aws`` コレクションから移行しました。このモジュールの完全修飾コレクション名を使用する Playbook を ``amazon.aws.iam_policy_info`` を使用するように更新する必要があります。" + +#: ../../rst/porting_guides/porting_guide_7.rst:387 +msgid "iam_server_certificate - Passing file names to the ``cert``, ``chain_cert`` and ``key`` parameters has been removed. We recommend using a lookup plugin to read the files instead, see the documentation for an example (https://github.com/ansible-collections/community.aws/pull/1265)." +msgstr "iam_server_certificate - ファイル名を ``cert``、``chain_cert``、および ``key`` パラメーターに渡すことが削除されました。代わりにlookup プラグインを使用してファイルを読み取ることが推奨されます。例については、ドキュメントを参照してください (https://github.com/ansible-collections/community.aws/pull/1265)。" + +#: ../../rst/porting_guides/porting_guide_7.rst:388 +msgid "iam_server_certificate - the default value for the ``dup_ok`` parameter has been changed to ``true``. To preserve the original behaviour explicitly set the ``dup_ok`` parameter to ``false`` (https://github.com/ansible-collections/community.aws/pull/1265)." +msgstr "iam_server_certificate - ``dup_ok`` パラメーターのデフォルト値は、``true`` に変更されました。元の動作を保持するには、明示的に ``dup_ok`` パラメーターを ``false`` に設定してください (https://github.com/ansible-collections/community.aws/pull/1265)。" + +#: ../../rst/porting_guides/porting_guide_7.rst:389 +#: ../../rst/porting_guides/porting_guide_7.rst:500 +msgid "iam_user - The module has been migrated from the ``community.aws`` collection. Playbooks using the Fully Qualified Collection Name for this module should be updated to use ``amazon.aws.iam_user``." +msgstr "iam_user - モジュールは ``community.aws`` コレクションから移行しました。このモジュールの完全修飾コレクション名を使用する Playbook を ``amazon.aws.iam_user`` を使用するように更新する必要があります。" + +#: ../../rst/porting_guides/porting_guide_7.rst:390 +#: ../../rst/porting_guides/porting_guide_7.rst:501 +msgid "iam_user_info - The module has been migrated from the ``community.aws`` collection. Playbooks using the Fully Qualified Collection Name for this module should be updated to use ``amazon.aws.iam_user_info``." +msgstr "iam_user_info - モジュールは ``community.aws`` コレクションから移行しました。このモジュールの完全修飾コレクション名を使用する Playbook を ``amazon.aws.iam_user_info`` を使用するように更新する必要があります。" + +#: ../../rst/porting_guides/porting_guide_7.rst:391 +#: ../../rst/porting_guides/porting_guide_7.rst:502 +msgid "kms_key - The module has been migrated from the ``community.aws`` collection. Playbooks using the Fully Qualified Collection Name for this module should be updated to use ``amazon.aws.kms_key``." +msgstr "kms_key - モジュールは ``community.aws`` コレクションから移行しました。このモジュールの完全修飾コレクション名を使用する Playbook を ``amazon.aws.kms_key`` を使用するように更新する必要があります。" + +#: ../../rst/porting_guides/porting_guide_7.rst:392 +msgid "kms_key - managing the KMS IAM Policy via ``policy_mode`` and ``policy_grant_types`` was previously deprecated and has been removed in favor of the ``policy`` option (https://github.com/ansible-collections/community.aws/pull/1344)." +msgstr "kms_key - KMS IAM Policy を``policy_mode`` と``policy_grant_types`` で管理していましたが、``policy`` のオプションを優先して、非推奨となり、削除されました (https://github.com/ansible-collections/community.aws/pull/1344)。" + +#: ../../rst/porting_guides/porting_guide_7.rst:393 +msgid "kms_key - the previously deprecated default value of ``purge_tags=False`` has been updated to ``purge_tags=True`` (https://github.com/ansible-collections/community.aws/pull/1343)." +msgstr "kms_key - 以前に非推奨となったデフォルト値 ``purge_tags=False`` が ``purge_tags=True`` に更新されました (https://github.com/ansible-collections/community.aws/pull/1343)。" + +#: ../../rst/porting_guides/porting_guide_7.rst:394 +#: ../../rst/porting_guides/porting_guide_7.rst:503 +msgid "kms_key_info - The module has been migrated from the ``community.aws`` collection. Playbooks using the Fully Qualified Collection Name for this module should be updated to use ``amazon.aws.kms_key_info``." +msgstr "kms_key_info - モジュールは ``community.aws`` コレクションから移行しました。このモジュールの完全修飾コレクション名を使用する Playbook を ``amazon.aws.kms_key_info`` を使用するように更新する必要があります。" + +#: ../../rst/porting_guides/porting_guide_7.rst:395 +#: ../../rst/porting_guides/porting_guide_7.rst:504 +msgid "lambda - The module has been migrated from the ``community.aws`` collection. Playbooks using the Fully Qualified Collection Name for this module should be updated to use ``amazon.aws.lambda``." +msgstr "lambda - モジュールは ``community.aws`` コレクションから移行しました。このモジュールの完全修飾コレクション名を使用する Playbook を ``amazon.aws.lambda`` を使用するように更新する必要があります。" + +#: ../../rst/porting_guides/porting_guide_7.rst:396 +#: ../../rst/porting_guides/porting_guide_7.rst:505 +msgid "lambda_alias - The module has been migrated from the ``community.aws`` collection. Playbooks using the Fully Qualified Collection Name for this module should be updated to use ``amazon.aws.lambda_alias``." +msgstr "lambda_alias - モジュールは ``community.aws`` コレクションから移行しました。このモジュールの完全修飾コレクション名を使用する Playbook を ``amazon.aws.lambda_alias`` を使用するように更新する必要があります。" + +#: ../../rst/porting_guides/porting_guide_7.rst:397 +#: ../../rst/porting_guides/porting_guide_7.rst:506 +msgid "lambda_event - The module has been migrated from the ``community.aws`` collection. Playbooks using the Fully Qualified Collection Name for this module should be updated to use ``amazon.aws.lambda_event``." +msgstr "lambda_event - モジュールは ``community.aws`` コレクションから移行しました。このモジュールの完全修飾コレクション名を使用する Playbook を ``amazon.aws.lambda_event`` を使用するように更新する必要があります。" + +#: ../../rst/porting_guides/porting_guide_7.rst:398 +#: ../../rst/porting_guides/porting_guide_7.rst:507 +msgid "lambda_execute - The module has been migrated from the ``community.aws`` collection. Playbooks using the Fully Qualified Collection Name for this module should be updated to use ``amazon.aws.lambda_execute``." +msgstr "lambda_execute - モジュールは ``community.aws`` コレクションから移行されました。このモジュールの完全修飾コレクション名を使用する Playbook は、``amazon.aws.lambda_execute`` を使用するように更新する必要があります。" + +#: ../../rst/porting_guides/porting_guide_7.rst:399 +#: ../../rst/porting_guides/porting_guide_7.rst:508 +msgid "lambda_info - The module has been migrated from the ``community.aws`` collection. Playbooks using the Fully Qualified Collection Name for this module should be updated to use ``amazon.aws.lambda_info``." +msgstr "lambda_info - モジュールは ``community.aws`` コレクションから移行しました。このモジュールの完全修飾コレクション名を使用する Playbook を ``amazon.aws.lambda_info`` を使用するように更新する必要があります。" + +#: ../../rst/porting_guides/porting_guide_7.rst:400 +#: ../../rst/porting_guides/porting_guide_7.rst:509 +msgid "lambda_policy - The module has been migrated from the ``community.aws`` collection. Playbooks using the Fully Qualified Collection Name for this module should be updated to use ``amazon.aws.lambda_policy``." +msgstr "lambda_policy - モジュールは ``community.aws`` コレクションから移行しました。このモジュールの完全修飾コレクション名を使用する Playbook を ``amazon.aws.lambda_policy`` を使用するように更新する必要があります。" + +#: ../../rst/porting_guides/porting_guide_7.rst:401 +#: ../../rst/porting_guides/porting_guide_7.rst:510 +msgid "rds_cluster - The module has been migrated from the ``community.aws`` collection. Playbooks using the Fully Qualified Collection Name for this module should be updated to use ``amazon.aws.rds_cluster``." +msgstr "rds_cluster - モジュールは ``community.aws`` コレクションから移行しました。このモジュールの完全修飾コレクション名を使用する Playbook を ``amazon.aws.rds_cluster`` を使用するように更新する必要があります。" + +#: ../../rst/porting_guides/porting_guide_7.rst:402 +#: ../../rst/porting_guides/porting_guide_7.rst:511 +msgid "rds_cluster_info - The module has been migrated from the ``community.aws`` collection. Playbooks using the Fully Qualified Collection Name for this module should be updated to use ``amazon.aws.rds_cluster_info``." +msgstr "rds_cluster_info - モジュールは ``community.aws`` コレクションから移行しました。このモジュールの完全修飾コレクション名を使用する Playbook を ``amazon.aws.rds_cluster_info`` を使用するように更新する必要があります。" + +#: ../../rst/porting_guides/porting_guide_7.rst:403 +#: ../../rst/porting_guides/porting_guide_7.rst:512 +msgid "rds_cluster_snapshot - The module has been migrated from the ``community.aws`` collection. Playbooks using the Fully Qualified Collection Name for this module should be updated to use ``amazon.aws.rds_cluster_snapshot``." +msgstr "rds_cluster_snapshot - モジュールは ``community.aws`` コレクションから移行しました。このモジュールの完全修飾コレクション名を使用する Playbook を ``amazon.aws.rds_cluster_snapshot`` を使用するように更新する必要があります。" + +#: ../../rst/porting_guides/porting_guide_7.rst:404 +#: ../../rst/porting_guides/porting_guide_7.rst:513 +msgid "rds_instance - The module has been migrated from the ``community.aws`` collection. Playbooks using the Fully Qualified Collection Name for this module should be updated to use ``amazon.aws.rds_instance``." +msgstr "rds_instance - モジュールは ``community.aws`` コレクションから移行されました。このモジュールの完全修飾コレクション名を使用する Playbook は、``amazon.aws.rds_instance`` を使用するように更新する必要があります。" + +#: ../../rst/porting_guides/porting_guide_7.rst:405 +#: ../../rst/porting_guides/porting_guide_7.rst:514 +msgid "rds_instance_info - The module has been migrated from the ``community.aws`` collection. Playbooks using the Fully Qualified Collection Name for this module should be updated to use ``amazon.aws.rds_instance_info``." +msgstr "rds_instance_info - モジュールは ``community.aws`` コレクションから移行されました。このモジュールの完全修飾コレクション名を使用する Playbook は、``amazon.aws.rds_instance_info`` を使用するように更新する必要があります。" + +#: ../../rst/porting_guides/porting_guide_7.rst:406 +#: ../../rst/porting_guides/porting_guide_7.rst:515 +msgid "rds_instance_snapshot - The module has been migrated from the ``community.aws`` collection. Playbooks using the Fully Qualified Collection Name for this module should be updated to use ``amazon.aws.rds_instance_snapshot``." +msgstr "rds_instance_snapshot - モジュールは ``community.aws`` コレクションから移行しました。このモジュールの完全修飾コレクション名を使用する Playbook を ``amazon.aws.rds_instance_snapshot`` を使用するように更新する必要があります。" + +#: ../../rst/porting_guides/porting_guide_7.rst:407 +#: ../../rst/porting_guides/porting_guide_7.rst:516 +msgid "rds_option_group - The module has been migrated from the ``community.aws`` collection. Playbooks using the Fully Qualified Collection Name for this module should be updated to use ``amazon.aws.rds_option_group``." +msgstr "rds_option_group - モジュールは ``community.aws`` コレクションから移行されました。このモジュールの完全修飾コレクション名を使用する Playbook は、``amazon.aws.rds_option_group`` を使用するように更新する必要があります。" + +#: ../../rst/porting_guides/porting_guide_7.rst:408 +#: ../../rst/porting_guides/porting_guide_7.rst:517 +msgid "rds_option_group_info - The module has been migrated from the ``community.aws`` collection. Playbooks using the Fully Qualified Collection Name for this module should be updated to use ``amazon.aws.rds_option_group_info``." +msgstr "rds_option_group_info - モジュールは ``community.aws`` コレクションから移行されました。このモジュールの完全修飾コレクション名を使用する Playbook は、``amazon.aws.rds_option_group_info`` を使用するように更新する必要があります。" + +#: ../../rst/porting_guides/porting_guide_7.rst:409 +#: ../../rst/porting_guides/porting_guide_7.rst:518 +msgid "rds_param_group - The module has been migrated from the ``community.aws`` collection. Playbooks using the Fully Qualified Collection Name for this module should be updated to use ``amazon.aws.rds_param_group``." +msgstr "rds_param_group - モジュールは ``community.aws`` コレクションから移行されました。このモジュールの完全修飾コレクション名を使用する Playbook は、``amazon.aws.rds_param_group`` を使用するように更新する必要があります。" + +#: ../../rst/porting_guides/porting_guide_7.rst:410 +msgid "rds_param_group - the previously deprecated default value of ``purge_tags=False`` has been updated to ``purge_tags=True`` (https://github.com/ansible-collections/community.aws/pull/1343)." +msgstr "rds_param_group - 以前に非推奨となったデフォルト値 ``purge_tags=False`` が ``purge_tags=True`` に更新されました (https://github.com/ansible-collections/community.aws/pull/1343)。" + +#: ../../rst/porting_guides/porting_guide_7.rst:411 +#: ../../rst/porting_guides/porting_guide_7.rst:519 +msgid "rds_snapshot_info - The module has been migrated from the ``community.aws`` collection. Playbooks using the Fully Qualified Collection Name for this module should be updated to use ``amazon.aws.rds_snapshot_info``." +msgstr "rds_snapshot_info - モジュールは ``community.aws`` コレクションから移行されました。このモジュールの完全修飾コレクション名を使用する Playbook は、``amazon.aws.rds_snapshot_info`` を使用するように更新する必要があります。" + +#: ../../rst/porting_guides/porting_guide_7.rst:412 +#: ../../rst/porting_guides/porting_guide_7.rst:520 +msgid "rds_subnet_group - The module has been migrated from the ``community.aws`` collection. Playbooks using the Fully Qualified Collection Name for this module should be updated to use ``amazon.aws.rds_subnet_group``." +msgstr "rds_subnet_group - モジュールは ``community.aws`` コレクションから移行されました。このモジュールの完全修飾コレクション名を使用する Playbook は、``amazon.aws.rds_subnet_group`` を使用するように更新する必要があります。" + +#: ../../rst/porting_guides/porting_guide_7.rst:413 +#: ../../rst/porting_guides/porting_guide_7.rst:521 +msgid "route53 - The module has been migrated from the ``community.aws`` collection. Playbooks using the Fully Qualified Collection Name for this module should be updated to use ``amazon.aws.route53``." +msgstr "route53 - モジュールは ``community.aws`` コレクションから移行しました。このモジュールの完全修飾コレクション名を使用する Playbook を ``amazon.aws.route53`` を使用するように更新する必要があります。" + +#: ../../rst/porting_guides/porting_guide_7.rst:414 +#: ../../rst/porting_guides/porting_guide_7.rst:522 +msgid "route53_health_check - The module has been migrated from the ``community.aws`` collection. Playbooks using the Fully Qualified Collection Name for this module should be updated to use ``amazon.aws.route53_health_check``." +msgstr "route53_health_check - モジュールは ``community.aws`` コレクションから移行しました。このモジュールの完全修飾コレクション名を使用する Playbook を ``amazon.aws.route53_health_check`` を使用するように更新する必要があります。" + +#: ../../rst/porting_guides/porting_guide_7.rst:415 +msgid "route53_health_check - the previously deprecated default value of ``purge_tags=False`` has been updated to ``purge_tags=True`` (https://github.com/ansible-collections/community.aws/pull/1343)." +msgstr "route53_health_check - 以前に非推奨となったデフォルト値 ``purge_tags=False`` が ``purge_tags=True`` に更新されました (https://github.com/ansible-collections/community.aws/pull/1343)。" + +#: ../../rst/porting_guides/porting_guide_7.rst:416 +#: ../../rst/porting_guides/porting_guide_7.rst:523 +msgid "route53_info - The module has been migrated from the ``community.aws`` collection. Playbooks using the Fully Qualified Collection Name for this module should be updated to use ``amazon.aws.route53_info``." +msgstr "route53_info - モジュールは ``community.aws`` コレクションから移行しました。このモジュールの完全修飾コレクション名を使用する Playbook を ``amazon.aws.route53_info`` を使用するように更新する必要があります。" + +#: ../../rst/porting_guides/porting_guide_7.rst:417 +#: ../../rst/porting_guides/porting_guide_7.rst:524 +msgid "route53_zone - The module has been migrated from the ``community.aws`` collection. Playbooks using the Fully Qualified Collection Name for this module should be updated to use ``amazon.aws.route53_zone``." +msgstr "route53_zone - モジュールは ``community.aws`` コレクションから移行しました。このモジュールの完全修飾コレクション名を使用する Playbook を ``amazon.aws.route53_zone`` を使用するように更新する必要があります。" + +#: ../../rst/porting_guides/porting_guide_7.rst:418 +msgid "route53_zone - the previously deprecated default value of ``purge_tags=False`` has been updated to ``purge_tags=True`` (https://github.com/ansible-collections/community.aws/pull/1343)." +msgstr "route53_zone - 以前に非推奨となったデフォルト値 ``purge_tags=False`` が ``purge_tags=True`` に更新されました (https://github.com/ansible-collections/community.aws/pull/1343)。" + +#: ../../rst/porting_guides/porting_guide_7.rst:419 msgid "script_inventory_ec2 - The ec2.py inventory script has been moved to a new repository. The script can now be downloaded from https://github.com/ansible-community/contrib-scripts/blob/main/inventory/ec2.py and has been removed from this collection. We recommend migrating from the script to the amazon.aws.ec2 inventory plugin. (https://github.com/ansible-collections/community.aws/pull/898)" msgstr "script_inventory_ec2 - ec2.py インベントリースクリプトが新しいリポジトリーに移動されました。スクリプトはhttps://github.com/ansible-community/contrib-scripts/blob/main/inventory/ec2.py からダウンロードでき、このコレクションから削除されました。スクリプトから amazon.aws.ec2 インベントリープラグインに移行することをお勧めします。(https://github.com/ansible-collections/community.aws/pull/898)" -#: ../../rst/porting_guides/porting_guide_7.rst:178 +#: ../../rst/porting_guides/porting_guide_7.rst:420 +msgid "sqs_queue - the previously deprecated default value of ``purge_tags=False`` has been updated to ``purge_tags=True`` (https://github.com/ansible-collections/community.aws/pull/1343)." +msgstr "sqs_queue - 以前に非推奨となったデフォルト値 ``purge_tags=False`` が ``purge_tags=True`` に更新されました (https://github.com/ansible-collections/community.aws/pull/1343)。" + +#: ../../rst/porting_guides/porting_guide_7.rst:425 msgid "This collection does not work with ansible-core 2.11 on Python 3.12+. Please either upgrade to ansible-core 2.12+, or use Python 3.11 or earlier (https://github.com/ansible-collections/community.docker/pull/271)." msgstr "このコレクションは、Python 3.12 以降の ansible-core 2.11 では機能しません。ansible-core 2.12+ にアップグレードするか、Python 3.11 以前を使用してください (https://github.com/ansible-collections/community.docker/pull/271)。" -#: ../../rst/porting_guides/porting_guide_7.rst:179 +#: ../../rst/porting_guides/porting_guide_7.rst:426 msgid "docker_container - ``exposed_ports`` is no longer ignored in ``comparisons``. Before, its value was assumed to be identical with the value of ``published_ports`` (https://github.com/ansible-collections/community.docker/pull/422)." msgstr "docker_container - ``exposed_ports`` は、``comparisons`` で無視されなくなりました。以前は、その値は ``published_ports`` の値と同じであると想定されていました (https://github.com/ansible-collections/community.docker/pull/422)。" -#: ../../rst/porting_guides/porting_guide_7.rst:180 +#: ../../rst/porting_guides/porting_guide_7.rst:427 msgid "docker_container - ``log_options`` can no longer be specified when ``log_driver`` is not specified (https://github.com/ansible-collections/community.docker/pull/422)." msgstr "docker_container - ``log_driver`` が指定されていない場合、``log_options`` は指定できなくなりました (https://github.com/ansible-collections/community.docker/pull/422)。" -#: ../../rst/porting_guides/porting_guide_7.rst:181 +#: ../../rst/porting_guides/porting_guide_7.rst:428 msgid "docker_container - ``publish_all_ports`` is no longer ignored in ``comparisons`` (https://github.com/ansible-collections/community.docker/pull/422)." msgstr "docker_container -``publish_all_ports`` は ``comparisons`` で無視されなくなりました (https://github.com/ansible-collections/community.docker/pull/422)。" -#: ../../rst/porting_guides/porting_guide_7.rst:182 +#: ../../rst/porting_guides/porting_guide_7.rst:429 msgid "docker_container - ``restart_retries`` can no longer be specified when ``restart_policy`` is not specified (https://github.com/ansible-collections/community.docker/pull/422)." msgstr "docker_container - ``restart_policy`` が指定されていない場合、``restart_retries`` を指定できなくなりました (https://github.com/ansible-collections/community.docker/pull/422)。" -#: ../../rst/porting_guides/porting_guide_7.rst:183 +#: ../../rst/porting_guides/porting_guide_7.rst:430 msgid "docker_container - ``stop_timeout`` is no longer ignored for idempotency if told to be not ignored in ``comparisons``. So far it defaulted to ``ignore`` there, and setting it to ``strict`` had no effect (https://github.com/ansible-collections/community.docker/pull/422)." msgstr "docker_container - ``comparisons`` で無視しないように指示された場合、``stop_timeout`` はべき等性のために無視されなくなりました。これまでのところ、そこではデフォルトで ``ignore`` となり、それを ``strict`` に設定しても効果はありませんでした (https://github.com/ansible-collections/community.docker/pull/422)。" -#: ../../rst/porting_guides/porting_guide_7.rst:184 +#: ../../rst/porting_guides/porting_guide_7.rst:431 msgid "modules and plugins communicating directly with the Docker daemon - when connecting by SSH and not using ``use_ssh_client=true``, reject unknown host keys instead of accepting them. This is only a breaking change relative to older community.docker 3.0.0 pre-releases or with respect to Docker SDK for Python < 6.0.0. Docker SDK for Python 6.0.0 will also include this change (https://github.com/ansible-collections/community.docker/pull/434)." msgstr "Docker デーモンと直接通信するモジュールとプラグイン - SSH で接続し、``use_ssh_client=true`` を使用しない場合、不明なホストキーを受け入れる代わりに拒否します。これは、古い community.docker 3.0.0 プレリリース、または Docker SDK for Python < 6.0.0 に関連する互換性を失わせる変更にすぎません。Docker SDK for Python 6.0.0 にもこの変更が含まれます (https://github.com/ansible-collections/community.docker/pull/434)。" -#: ../../rst/porting_guides/porting_guide_7.rst:187 -#: ../../rst/porting_guides/porting_guide_7.rst:260 +#: ../../rst/porting_guides/porting_guide_7.rst:437 +msgid "scaleway_container_registry_info - no longer replace ``secret_environment_variables`` in the output by ``SENSITIVE_VALUE`` (https://github.com/ansible-collections/community.general/pull/5497)." +msgstr "scaleway_container_registry_info - ``SENSITIVE_VALUE`` による出力で、``secret_environment_variables`` に置き換わることはなくなりました (https://github.com/ansible-collections/community.general/pull/5497)。" + +#: ../../rst/porting_guides/porting_guide_7.rst:442 +msgid "auth - the default value for ``token_validate`` has changed from ``true`` to ``false``, as previously announced (https://github.com/ansible-collections/community.hashi_vault/issues/248)." +msgstr "auth - 以前発表したように、``token_validate`` のデフォルト値は、``true`` から ``false`` に変更されました (https://github.com/ansible-collections/community.hashi_vault/issues/248)。" + +#: ../../rst/porting_guides/porting_guide_7.rst:443 +msgid "vault_kv2_get lookup - as previously announced, the default value for ``engine_mount_point`` in the ``vault_kv2_get`` lookup has changed from ``kv`` to ``secret`` (https://github.com/ansible-collections/community.hashi_vault/issues/279)." +msgstr "vault_kv2_get lookup - 以前発表したように、``vault_kv2_get`` lookup の ``engine_mount_point`` のデフォルト値は、``kv`` から ``secret`` に変更されました (https://github.com/ansible-collections/community.hashi_vault/issues/279)。" + +#: ../../rst/porting_guides/porting_guide_7.rst:448 +msgid "Removed support for ansible-core version < 2.13.0." +msgstr "ansible-core バージョン < 2.13.0 のサポートを削除しました。" + +#: ../../rst/porting_guides/porting_guide_7.rst:449 +msgid "vmware_dvs_portgroup - Add a new sub-option `inherited` to the `in_traffic_shaping` parameter. This means you can keep the setting as-is by not defining the parameter, but also that you have to define the setting as not `inherited` if you want to override it at the PG level (https://github.com/ansible-collections/community.vmware/pull/1483)." +msgstr "vmware_dvs_portgroup - `in_traffic_shaping` パラメーターに新しいサブオプション `inherited` を追加します。これは、パラメーターを定義しないことで設定をそのまま維持できることを意味しますが、PG レベルで設定を上書きする場合は、設定を `inherited` でないものとして定義する必要があることも意味します (https://github.com/ansible-collections/community.vmware/pull/1483)。" + +#: ../../rst/porting_guides/porting_guide_7.rst:450 +msgid "vmware_dvs_portgroup - Add a new sub-option `inherited` to the `out_traffic_shaping` parameter. This means you can keep the setting as-is by not defining the parameter, but also that you have to define the setting as not `inherited` if you want to override it at the PG level (https://github.com/ansible-collections/community.vmware/pull/1483)." +msgstr "vmware_dvs_portgroup - `out_traffic_shaping` パラメーターに新しいサブオプション `inherited` を追加します。これは、パラメーターを定義しないことで設定をそのまま維持できることを意味しますが、PG レベルで設定を上書きする場合は、設定を `inherited` でないものとして定義する必要があることも意味します (https://github.com/ansible-collections/community.vmware/pull/1483)。" + +#: ../../rst/porting_guides/porting_guide_7.rst:451 +msgid "vmware_dvs_portgroup - Change the type of `net_flow` to string to allow setting it implicitly to inherited or to keep the value as-is. This means you can keep the setting as-is by not defining the parameter, but also that while `true` or `no` still work, `True` or `Off` (uppercase) won't (https://github.com/ansible-collections/community.vmware/pull/1483)." +msgstr "vmware_dvs_portgroup - `net_flow` のタイプを文字列に変更し、継承済みと暗黙的に設定するか、または値をそのまま維持するようにします。これは、パラメーターを定義しないことで設定をそのまま維持できることを意味しますが、`true` や `no` はまだ機能しますが、`True` や `Off` (大文字) は機能しないことを意味します (https://github.com/ansible-collections/community.vmware/pull/1483)。" + +#: ../../rst/porting_guides/porting_guide_7.rst:452 +msgid "vmware_dvs_portgroup - Remove support for vSphere API less than 6.7." +msgstr "vmware_dvs_portgroup - 6.7 未満の vSphere API のサポートを削除します。" + +#: ../../rst/porting_guides/porting_guide_7.rst:453 +msgid "vmware_dvs_portgroup - Remove the default for `network_policy` and add a new sub-option `inherited`. This means you can keep the setting as-is by not defining the parameter, but also that you have to define the setting as not `inherited` if you want to override it at the PG level (https://github.com/ansible-collections/community.vmware/pull/1483)." +msgstr "vmware_dvs_portgroup - `network_policy` のデフォルトを削除し、新しいサブオプション `inherited` を追加します。これは、パラメーターを定義しないことで設定をそのまま維持できることを意味しますが、PG レベルで設定を上書きする場合は、設定を `inherited` でないものとして定義する必要があることも意味します (https://github.com/ansible-collections/community.vmware/pull/1483)。" + +#: ../../rst/porting_guides/porting_guide_7.rst:454 +msgid "vmware_dvs_portgroup_info - Remove support for vSphere API less than 6.7." +msgstr "vmware_dvs_portgroup_info - 6.7 未満の vSphere API のサポートを削除します。" + +#: ../../rst/porting_guides/porting_guide_7.rst:455 +msgid "vmware_dvswitch - Remove support for vSphere API less than 6.7." +msgstr "vmware_dvswitch - 6.7 未満の vSphere API のサポートを削除します。" + +#: ../../rst/porting_guides/porting_guide_7.rst:456 +msgid "vmware_dvswitch_uplink_pg - Remove support for vSphere API less than 6.7." +msgstr "vmware_dvswitch_uplink_pg - 6.7 未満の vSphere API のサポートを削除します。" + +#: ../../rst/porting_guides/porting_guide_7.rst:457 +msgid "vmware_guest_boot_manager - Remove default for ``secure_boot_enabled`` parameter (https://github.com/ansible-collections/community.vmware/issues/1461)." +msgstr "vmware_guest_boot_manager - ``secure_boot_enabled`` パラメーターのデフォルトを削除します (https://github.com/ansible-collections/community.vmware/issues/1461)。" + +#: ../../rst/porting_guides/porting_guide_7.rst:458 +msgid "vmware_vm_config_option - Dict item names in result are changed from strings joined with spaces to strings joined with underlines, e.g. `Guest fullname` is changed to `guest_fullname` (https://github.com/ansible-collections/community.vmware/issues/1268)." +msgstr "vmware_vm_config_option - 結果の Dict アイテム名は、スペースで結合された文字列からアンダーラインで結合された文字列に変更されます。たとえば、`Guest fullname` は `guest_fullname` に変更されます (https://github.com/ansible-collections/community.vmware/issues/1268)。" + +#: ../../rst/porting_guides/porting_guide_7.rst:459 +msgid "vmware_vspan_session - Remove support for vSphere API less than 6.7." +msgstr "vmware_vspan_session - 6.7 未満の vSphere API のサポートを削除します。" + +#: ../../rst/porting_guides/porting_guide_7.rst:462 +#: ../../rst/porting_guides/porting_guide_7.rst:628 msgid "dellemc.enterprise_sonic" msgstr "dellemc.enterprise_sonic" -#: ../../rst/porting_guides/porting_guide_7.rst:189 +#: ../../rst/porting_guides/porting_guide_7.rst:464 msgid "bgp_af - Add the route_advertise_list dictionary to the argspec to replace the deleted, obsolete advertise_prefix attribute used for SONiC 3.x images on the 1.x branch of this collection. This change corresponds to a SONiC 4.0 OC YANG REST compliance change for the BGP AF REST API. It enables specification of a route map in conjunction with each route advertisement prefix (https://github.com/ansible-collections/dellemc.enterprise_sonic/pull/63)." msgstr "bgp_af - route_advertise_list ディクショナリーを argspec に追加して、このコレクションの 1.x ブランチの SONiC 3.x イメージに使用される、削除され、廃止された advertise_prefix 属性を置き換えます。この変更は、BGP AF REST API の SONiC 4.0 OC YANG REST コンプライアンスの変更に対応しています。 各ルートアドバタイズメントのプレフィックスと連動したルートマップの指定が可能になります (https://github.com/ansible-collections/dellemc.enterprise_sonic/pull/63)。" -#: ../../rst/porting_guides/porting_guide_7.rst:190 +#: ../../rst/porting_guides/porting_guide_7.rst:465 msgid "bgp_af - remove the obsolete 'advertise_prefix' attribute from argspec and config code. This and subsequent co-req replacement with the new route advertise list argument structure require corresponding changes in playbooks previoulsly used for configuring route advertise prefixes for SONiC 3.x images. (https://github.com/ansible-collections/dellemc.enterprise_sonic/pull/60)" msgstr "bgp_af - 古い 'advertise_prefix' 属性を argspec と設定コードから削除します。この新しいルートアドバタイズリスト引数構造によるこれと後続の co-req 置換には、SONiC 3.x イメージのルートアドバタイズのプレフィックスを設定するために以前に使用された Playbook でも対応する変更が必要です (https://github.com/ansible-collections/dellemc.enterprise_sonic/pull/60)。" -#: ../../rst/porting_guides/porting_guide_7.rst:191 +#: ../../rst/porting_guides/porting_guide_7.rst:466 msgid "bgp_neighbors - Replace the previously defined standalone \"bfd\" attribute with a bfd dictionary containing multiple attributes. This change corresponds to the revised SONiC 4.x implementation of OC YANG compatible REST APIs. Playbooks previously using the bfd attributes for SONiC 3.x images must be modified for useon SONiC 4.0 images to use the new definition for the bfd attribute argspec structure (https://github.com/ansible-collections/dellemc.enterprise_sonic/pull/72)." msgstr "bgp_neighbors - 以前に定義されたスタンドアロンの \"bfd\" 属性を、複数の属性を含む bfd ディクショナリーに置き換えます。この変更は、OC YANG 互換 REST API の改訂された SONiC 4.x 実装に対応しています。以前に SONiC 3.x イメージの bfd 属性を使用していた Playbook は、SONiC 4.0 イメージで使用するために変更して、bfd 属性 argspec 構造の新しい定義を使用する必要があります (https://github.com/ansible-collections/dellemc.enterprise_sonic/pull/72)。" -#: ../../rst/porting_guides/porting_guide_7.rst:192 +#: ../../rst/porting_guides/porting_guide_7.rst:467 msgid "bgp_neighbors - Replace, for BGP peer groups, the previously defined standalone \"bfd\" attribute with a bfd dictionary containing multiple attributes. This change corresponds to the revised SONiC 4.x implementation of OC YANG compatible REST APIs. Playbooks previously using the bfd attributes for SONiC 3.x images must be modified for useon SONiC 4.0 images to use the new definition for the bfd attribute argspec structure (https://github.com/ansible-collections/dellemc.enterprise_sonic/pull/81)." msgstr "bgp_neighbors - BGP ピアグループの場合、以前に定義されたスタンドアロンの \"bfd\" 属性を、複数の属性を含む bfd ディクショナリーに置き換えます。この変更は、OC YANG 互換 REST API の改訂された SONiC 4.x 実装に対応しています。以前に SONiC 3.x イメージの bfd 属性を使用していた Playbook は、SONiC 4.0 イメージで使用するために変更して、bfd 属性 argspec 構造の新しい定義を使用する必要があります (https://github.com/ansible-collections/dellemc.enterprise_sonic/pull/81)。" -#: ../../rst/porting_guides/porting_guide_7.rst:200 +#: ../../rst/porting_guides/porting_guide_7.rst:475 msgid "Move handler processing into new ``PlayIterator`` phase to use the configured strategy (https://github.com/ansible/ansible/issues/65067)" msgstr "ハンドラー処理を新しい ``PlayIterator`` フェーズに移動し、設定されたストラテジーを使用します (https://github.com/ansible/ansible/issues/65067)" -#: ../../rst/porting_guides/porting_guide_7.rst:209 +#: ../../rst/porting_guides/porting_guide_7.rst:484 msgid "amazon.aws collection - The amazon.aws collection has dropped support for ``botocore<1.20.0`` and ``boto3<1.17.0``. Most modules will continue to work with older versions of the AWS SDK, however compatability with older versions of the SDK is not guaranteed and will not be tested. When using older versions of the SDK a warning will be emitted by Ansible (https://github.com/ansible-collections/amazon.aws/pull/574)." msgstr "amazon.aws コレクション - amazon.aws コレクションでは ``botocore<1.20.0`` および ``boto3<1.17.0`` のサポートを廃止しました。ほとんどのモジュールは、AWS SDK の古いバージョンで引き続き機能しますが、SDK の古いバージョンとの互換性は保証されず、テストされません。古いバージョンの SDK を使用する場合は、Ansible によって警告が出力されます (https://github.com/ansible-collections/amazon.aws/pull/574)。" -#: ../../rst/porting_guides/porting_guide_7.rst:214 +#: ../../rst/porting_guides/porting_guide_7.rst:487 +msgid "cloudtrail - The module has been migrated from the ``community.aws`` collection. Playbooks using the Fully Qualified Collection Name for this module should be updated to use ``amazon.aws.cloudtrail``." +msgstr "cloudtrail - モジュールは ``community.aws`` コレクションから移行しました。このモジュールの完全修飾コレクション名を使用する Playbook を ``amazon.aws.cloudtrail`` を使用するように更新する必要があります。" + +#: ../../rst/porting_guides/porting_guide_7.rst:529 +msgid "Remove following EOS dprecated modules" +msgstr "以下の EOS の非推奨となったモジュールを削除します。" + +#: ../../rst/porting_guides/porting_guide_7.rst:530 +#: ../../rst/porting_guides/porting_guide_7.rst:556 +#: ../../rst/porting_guides/porting_guide_7.rst:673 +#: ../../rst/porting_guides/porting_guide_7.rst:678 +msgid "Use of connection: local and the provider option are no longer valid on any modules in this collection." +msgstr "connection: local と provider オプションの使用は、このコレクション内のどのモジュールでも有効ではなくなりました。" + +#: ../../rst/porting_guides/porting_guide_7.rst:531 +msgid "eos_interface" +msgstr "eos_interface" + +#: ../../rst/porting_guides/porting_guide_7.rst:532 +msgid "eos_l2_interface" +msgstr "eos_l2_interface" + +#: ../../rst/porting_guides/porting_guide_7.rst:533 +msgid "eos_l3_interface" +msgstr "eos_l3_interface" + +#: ../../rst/porting_guides/porting_guide_7.rst:534 +msgid "eos_linkagg" +msgstr "eos_linkagg" + +#: ../../rst/porting_guides/porting_guide_7.rst:535 +msgid "eos_static_route" +msgstr "eos_static_route" + +#: ../../rst/porting_guides/porting_guide_7.rst:536 +msgid "eos_vlan" +msgstr "eos_vlan" + +#: ../../rst/porting_guides/porting_guide_7.rst:541 msgid "plugins/httpapi/checkpoint - Support for Smart-1 Cloud with new variable 'ansible_cloud_mgmt_id'" msgstr "plugins/httpapi/checkpoint - 新しい変数 'ansible_cloud_mgmt_id' による Smart-1 Cloud のサポート" -#: ../../rst/porting_guides/porting_guide_7.rst:225 +#: ../../rst/porting_guides/porting_guide_7.rst:552 +#: ../../rst/porting_guides/porting_guide_7.rst:575 +msgid "Please use either of the following connection types - network_cli, httpapi or netconf." +msgstr "接続形態は、network_cli、httpapi、netconf のいずれかをご利用ください。" + +#: ../../rst/porting_guides/porting_guide_7.rst:553 +msgid "This includes the following modules:" +msgstr "これには以下のモジュールが含まれます。" + +#: ../../rst/porting_guides/porting_guide_7.rst:554 +#: ../../rst/porting_guides/porting_guide_7.rst:564 +#: ../../rst/porting_guides/porting_guide_7.rst:570 +#: ../../rst/porting_guides/porting_guide_7.rst:576 +msgid "This release drops support for `connection: local` and provider dictionary." +msgstr "このリリースでは、`connection: local` とプロバイダーディクショナリーのサポートを停止しています。" + +#: ../../rst/porting_guides/porting_guide_7.rst:555 +msgid "This release removes all deprecated plugins that have reached their end-of-life." +msgstr "このリリースでは、有効期限の切れたすべての非推奨プラグインを削除しています。" + +#: ../../rst/porting_guides/porting_guide_7.rst:557 +msgid "asa_acl" +msgstr "asa_acl" + +#: ../../rst/porting_guides/porting_guide_7.rst:558 +msgid "asa_og" +msgstr "asa_og" + +#: ../../rst/porting_guides/porting_guide_7.rst:563 +msgid "Only valid connection types for this collection is network_cli." +msgstr "このコレクションで有効な接続タイプは network_cli のみです。" + +#: ../../rst/porting_guides/porting_guide_7.rst:569 +msgid "Only valid connection types for this collection are network_cli and netconf." +msgstr "このコレクションで有効な接続タイプは、network_cli と netconf のみです。" + +#: ../../rst/porting_guides/porting_guide_7.rst:581 msgid "community.aws collection - The amazon.aws collection has dropped support for ``botocore<1.20.0`` and ``boto3<1.17.0``. Most modules will continue to work with older versions of the AWS SDK, however compatability with older versions of the SDK is not guaranteed and will not be tested. When using older versions of the SDK a warning will be emitted by Ansible (https://github.com/ansible-collections/community.aws/pull/956)." msgstr "community.aws コレクション - amazon.aws コレクションでは ``botocore<1.20.0`` および ``boto3<1.17.0`` のサポートを廃止しました。ほとんどのモジュールは、AWS SDK の古いバージョンで引き続き機能しますが、SDK の古いバージョンとの互換性は保証されず、テストされません。古いバージョンの SDK を使用する場合は、Ansible によって警告が出力されます (https://github.com/ansible-collections/community.aws/pull/956)。" -#: ../../rst/porting_guides/porting_guide_7.rst:230 +#: ../../rst/porting_guides/porting_guide_7.rst:586 msgid "The collection now contains vendored code from the Docker SDK for Python to talk to the Docker daemon. Modules and plugins using this code no longer need the Docker SDK for Python installed on the machine the module or plugin is running on (https://github.com/ansible-collections/community.docker/pull/398)." msgstr "コレクションには、Docker デーモンと通信するための Docker SDK for Python からのベンダーコードが含まれるようになりました。このコードを使用するモジュールとプラグインは、モジュールまたはプラグインが実行されているマシンに Docker SDK for Python をインストールする必要がなくなりました (https://github.com/ansible-collections/community.docker/pull/398)。" -#: ../../rst/porting_guides/porting_guide_7.rst:231 +#: ../../rst/porting_guides/porting_guide_7.rst:587 msgid "docker_api connection plugin - no longer uses the Docker SDK for Python. It requires ``requests`` to be installed, and depending on the features used has some more requirements. If the Docker SDK for Python is installed, these requirements are likely met (https://github.com/ansible-collections/community.docker/pull/414)." msgstr "docker_api 接続プラグイン - Docker SDK for Python を使用しなくなりました。これには、``requests`` をインストールする必要があり、使用する機能によっては、さらに要件があります。Docker SDK for Python がインストールされている場合は、これらの要件が満たされている可能性があります (https://github.com/ansible-collections/community.docker/pull/414)。" -#: ../../rst/porting_guides/porting_guide_7.rst:232 +#: ../../rst/porting_guides/porting_guide_7.rst:588 msgid "docker_container - no longer uses the Docker SDK for Python. It requires ``requests`` to be installed, and depending on the features used has some more requirements. If the Docker SDK for Python is installed, these requirements are likely met (https://github.com/ansible-collections/community.docker/pull/422)." msgstr "docker_container - Docker SDK for Python を使用しなくなりました。これには、``requests`` をインストールする必要があり、使用する機能によっては、さらに要件があります。Docker SDK for Python がインストールされている場合は、これらの要件が満たされている可能性があります (https://github.com/ansible-collections/community.docker/pull/422)。" -#: ../../rst/porting_guides/porting_guide_7.rst:233 +#: ../../rst/porting_guides/porting_guide_7.rst:589 msgid "docker_container - the module was completely rewritten from scratch (https://github.com/ansible-collections/community.docker/pull/422)." msgstr "docker_container - モジュールはゼロから完全に書き直されました (https://github.com/ansible-collections/community.docker/pull/422)。" -#: ../../rst/porting_guides/porting_guide_7.rst:234 +#: ../../rst/porting_guides/porting_guide_7.rst:590 msgid "docker_container_exec - no longer uses the Docker SDK for Python. It requires ``requests`` to be installed, and depending on the features used has some more requirements. If the Docker SDK for Python is installed, these requirements are likely met (https://github.com/ansible-collections/community.docker/pull/401)." msgstr "docker_container_exec - Docker SDK for Python を使用しなくなりました。これには、``requests`` をインストールする必要があり、使用する機能によっては、さらに要件があります。Docker SDK for Python がインストールされている場合は、これらの要件が満たされている可能性があります (https://github.com/ansible-collections/community.docker/pull/401)。" -#: ../../rst/porting_guides/porting_guide_7.rst:235 +#: ../../rst/porting_guides/porting_guide_7.rst:591 msgid "docker_container_info - no longer uses the Docker SDK for Python. It requires ``requests`` to be installed, and depending on the features used has some more requirements. If the Docker SDK for Python is installed, these requirements are likely met (https://github.com/ansible-collections/community.docker/pull/402)." msgstr "docker_container_info - Docker SDK for Python を使用しなくなりました。これには、``requests`` をインストールする必要があり、使用する機能によっては、さらに要件があります。Docker SDK for Python がインストールされている場合は、これらの要件が満たされている可能性があります (https://github.com/ansible-collections/community.docker/pull/402)。" -#: ../../rst/porting_guides/porting_guide_7.rst:236 +#: ../../rst/porting_guides/porting_guide_7.rst:592 msgid "docker_containers inventory plugin - no longer uses the Docker SDK for Python. It requires ``requests`` to be installed, and depending on the features used has some more requirements. If the Docker SDK for Python is installed, these requirements are likely met (https://github.com/ansible-collections/community.docker/pull/413)." msgstr "docker_containers インベントリープラグイン - Docker SDK for Python を使用しなくなりました。これには、``requests`` をインストールする必要があり、使用する機能によっては、さらに要件があります。Docker SDK for Python がインストールされている場合は、これらの要件が満たされている可能性があります (https://github.com/ansible-collections/community.docker/pull/413)。" -#: ../../rst/porting_guides/porting_guide_7.rst:237 +#: ../../rst/porting_guides/porting_guide_7.rst:593 msgid "docker_host_info - no longer uses the Docker SDK for Python. It requires ``requests`` to be installed, and depending on the features used has some more requirements. If the Docker SDK for Python is installed, these requirements are likely met (https://github.com/ansible-collections/community.docker/pull/403)." msgstr "docker_host_info - Docker SDK for Python を使用しなくなりました。これには、``requests`` をインストールする必要があり、使用する機能によっては、さらに要件があります。Docker SDK for Python がインストールされている場合は、これらの要件が満たされている可能性があります (https://github.com/ansible-collections/community.docker/pull/403)。" -#: ../../rst/porting_guides/porting_guide_7.rst:238 +#: ../../rst/porting_guides/porting_guide_7.rst:594 msgid "docker_image - no longer uses the Docker SDK for Python. It requires ``requests`` to be installed, and depending on the features used has some more requirements. If the Docker SDK for Python is installed, these requirements are likely met (https://github.com/ansible-collections/community.docker/pull/404)." msgstr "docker_image - Docker SDK for Python を使用しなくなりました。これには、``requests`` をインストールする必要があり、使用する機能によっては、さらに要件があります。Docker SDK for Python がインストールされている場合は、これらの要件が満たされている可能性があります (https://github.com/ansible-collections/community.docker/pull/404)。" -#: ../../rst/porting_guides/porting_guide_7.rst:239 +#: ../../rst/porting_guides/porting_guide_7.rst:595 msgid "docker_image_info - no longer uses the Docker SDK for Python. It requires ``requests`` to be installed, and depending on the features used has some more requirements. If the Docker SDK for Python is installed, these requirements are likely met (https://github.com/ansible-collections/community.docker/pull/405)." msgstr "docker_image_info - Docker SDK for Python を使用しなくなりました。これには、``requests`` をインストールする必要があり、使用する機能によっては、さらに要件があります。Docker SDK for Python がインストールされている場合は、これらの要件が満たされている可能性があります (https://github.com/ansible-collections/community.docker/pull/405)。" -#: ../../rst/porting_guides/porting_guide_7.rst:240 +#: ../../rst/porting_guides/porting_guide_7.rst:596 msgid "docker_image_load - no longer uses the Docker SDK for Python. It requires ``requests`` to be installed, and depending on the features used has some more requirements. If the Docker SDK for Python is installed, these requirements are likely met (https://github.com/ansible-collections/community.docker/pull/406)." msgstr "docker_image_load - Docker SDK for Python を使用しなくなりました。これには、``requests`` をインストールする必要があり、使用する機能によっては、さらに要件があります。Docker SDK for Python がインストールされている場合は、これらの要件が満たされている可能性があります (https://github.com/ansible-collections/community.docker/pull/406)。" -#: ../../rst/porting_guides/porting_guide_7.rst:241 +#: ../../rst/porting_guides/porting_guide_7.rst:597 msgid "docker_login - no longer uses the Docker SDK for Python. It requires ``requests`` to be installed, and depending on the features used has some more requirements. If the Docker SDK for Python is installed, these requirements are likely met (https://github.com/ansible-collections/community.docker/pull/407)." msgstr "docker_login - Docker SDK for Python を使用しなくなりました。これには、``requests`` をインストールする必要があり、使用する機能によっては、さらに要件があります。Docker SDK for Python がインストールされている場合は、これらの要件が満たされている可能性があります (https://github.com/ansible-collections/community.docker/pull/407)。" -#: ../../rst/porting_guides/porting_guide_7.rst:242 +#: ../../rst/porting_guides/porting_guide_7.rst:598 msgid "docker_network - no longer uses the Docker SDK for Python. It requires ``requests`` to be installed, and depending on the features used has some more requirements. If the Docker SDK for Python is installed, these requirements are likely met (https://github.com/ansible-collections/community.docker/pull/408)." msgstr "docker_network - Docker SDK for Python を使用しなくなりました。これには、``requests`` をインストールする必要があり、使用する機能によっては、さらに要件があります。Docker SDK for Python がインストールされている場合は、これらの要件が満たされている可能性があります (https://github.com/ansible-collections/community.docker/pull/408)。" -#: ../../rst/porting_guides/porting_guide_7.rst:243 +#: ../../rst/porting_guides/porting_guide_7.rst:599 msgid "docker_network_info - no longer uses the Docker SDK for Python. It requires ``requests`` to be installed, and depending on the features used has some more requirements. If the Docker SDK for Python is installed, these requirements are likely met (https://github.com/ansible-collections/community.docker/pull/409)." msgstr "docker_network_info - Docker SDK for Python を使用しなくなりました。これには、``requests`` をインストールする必要があり、使用する機能によっては、さらに要件があります。Docker SDK for Python がインストールされている場合は、これらの要件が満たされている可能性があります (https://github.com/ansible-collections/community.docker/pull/409)。" -#: ../../rst/porting_guides/porting_guide_7.rst:244 +#: ../../rst/porting_guides/porting_guide_7.rst:600 msgid "docker_plugin - no longer uses the Docker SDK for Python. It requires ``requests`` to be installed, and depending on the features used has some more requirements. If the Docker SDK for Python is installed, these requirements are likely met (https://github.com/ansible-collections/community.docker/pull/429)." msgstr "docker_plugin - Docker SDK for Python を使用しなくなりました。これには、``requests`` をインストールする必要があり、使用する機能によっては、さらに要件があります。Docker SDK for Python がインストールされている場合は、これらの要件が満たされている可能性があります (https://github.com/ansible-collections/community.docker/pull/429)。" -#: ../../rst/porting_guides/porting_guide_7.rst:245 +#: ../../rst/porting_guides/porting_guide_7.rst:601 msgid "docker_prune - no longer uses the Docker SDK for Python. It requires ``requests`` to be installed, and depending on the features used has some more requirements. If the Docker SDK for Python is installed, these requirements are likely met (https://github.com/ansible-collections/community.docker/pull/410)." msgstr "docker_prune - Docker SDK for Python を使用しなくなりました。これには、``requests`` をインストールする必要があり、使用する機能によっては、さらに要件があります。Docker SDK for Python がインストールされている場合は、これらの要件が満たされている可能性があります (https://github.com/ansible-collections/community.docker/pull/410)。" -#: ../../rst/porting_guides/porting_guide_7.rst:246 +#: ../../rst/porting_guides/porting_guide_7.rst:602 msgid "docker_volume - no longer uses the Docker SDK for Python. It requires ``requests`` to be installed, and depending on the features used has some more requirements. If the Docker SDK for Python is installed, these requirements are likely met (https://github.com/ansible-collections/community.docker/pull/411)." msgstr "docker_volume - Docker SDK for Python を使用しなくなりました。これには、``requests`` をインストールする必要があり、使用する機能によっては、さらに要件があります。Docker SDK for Python がインストールされている場合は、これらの要件が満たされている可能性があります (https://github.com/ansible-collections/community.docker/pull/411)。" -#: ../../rst/porting_guides/porting_guide_7.rst:247 +#: ../../rst/porting_guides/porting_guide_7.rst:603 msgid "docker_volume_info - no longer uses the Docker SDK for Python. It requires ``requests`` to be installed, and depending on the features used has some more requirements. If the Docker SDK for Python is installed, these requirements are likely met (https://github.com/ansible-collections/community.docker/pull/412)." msgstr "docker_volume_info - Docker SDK for Python を使用しなくなりました。これには、``requests`` をインストールする必要があり、使用する機能によっては、さらに要件があります。Docker SDK for Python がインストールされている場合は、これらの要件が満たされている可能性があります (https://github.com/ansible-collections/community.docker/pull/412)。" -#: ../../rst/porting_guides/porting_guide_7.rst:262 +#: ../../rst/porting_guides/porting_guide_7.rst:608 +msgid "The internal structure of the collection was changed for modules and action plugins. These no longer live in a directory hierarchy ordered by topic, but instead are now all in a single (flat) directory. This has no impact on users *assuming they did not use internal FQCNs*. These will still work, but result in deprecation warnings. They were never officially supported and thus the redirects are kept as a courtsey, and this is not labelled as a breaking change. Note that for example the Ansible VScode plugin started recommending these internal names. If you followed its recommendation, you will now have to change back to the short names to avoid deprecation warnings, and potential errors in the future as these redirects will be removed in community.general 9.0.0 (https://github.com/ansible-collections/community.general/pull/5461)." +msgstr "モジュールとアクションのプラグインのコレクションの内部構造が変更されました。これらは、トピックごとに並べられたディレクトリー階層に存在しなくなりましたが、代わりにすべてが単一の (フラットな) ディレクトリーにあります。*ユーザーが内部 FQCN を使用していないと仮定すると*、これがユーザーに影響を及ぼすことはありません。これらは引き続き機能しますが、非推奨の警告が表示される結果となります。これらは公式にサポートされたことがないため、リダイレクトは念のため保持されており、これは重大な変更として分類されていません。たとえば、Ansible VScode プラグインはこれらの内部名の推奨を開始したことに注意してください。その推奨事項に従った場合は、これらのリダイレクトは community.general 9.0.0 で削除されるため、非推奨の警告と将来的にエラーが発生する可能性を回避するために、短い名前に戻す必要があります (https://github.com/ansible-collections/community.general/pull/5461)。" + +#: ../../rst/porting_guides/porting_guide_7.rst:620 +msgid "The internal structure of the collection was changed for modules and action plugins. These no longer live in a directory hierarchy ordered by topic, but instead are now all in a single (flat) directory. This has no impact on users *assuming they did not use internal FQCNs*. These will still work, but result in deprecation warnings. They were never officially supported and thus the redirects are kept as a courtsey, and this is not labelled as a breaking change. Note that for example the Ansible VScode plugin started recommending these internal names. If you followed its recommendation, you will now have to change back to the short names to avoid deprecation warnings, and potential errors in the future as these redirects will be removed in community.network 8.0.0 (https://github.com/ansible-collections/community.network/pull/482)." +msgstr "モジュールとアクションのプラグインのコレクションの内部構造が変更されました。これらは、トピックごとに並べられたディレクトリー階層に存在しなくなりましたが、代わりにすべてが単一の (フラットな) ディレクトリーにあります。*ユーザーが内部 FQCN を使用していないと仮定すると*、これがユーザーに影響を及ぼすことはありません。これらは引き続き機能しますが、非推奨の警告が表示される結果となります。これらは公式にサポートされたことがないため、リダイレクトは念のため保持されており、これは重大な変更として分類されていません。たとえば、Ansible VScode プラグインはこれらの内部名の推奨を開始したことに注意してください。その推奨事項に従った場合は、これらのリダイレクトは community.general 9.0.0 で削除されるため、非推奨の警告と将来的にエラーが発生する可能性を回避するために、短い名前に戻す必要があります (https://github.com/ansible-collections/community.network/pull/482)。" + +#: ../../rst/porting_guides/porting_guide_7.rst:630 msgid "Added 'static_routes' module to collection (https://github.com/ansible-collections/dellemc.enterprise_sonic/pull/82)." msgstr "コレクションに 'static_routes' モジュールを追加しました (https://github.com/ansible-collections/dellemc.enterprise_sonic/pull/82)。" -#: ../../rst/porting_guides/porting_guide_7.rst:263 +#: ../../rst/porting_guides/porting_guide_7.rst:631 msgid "Added a resource module for NTP support (https://github.com/ansible-collections/dellemc.enterprise_sonic/pull/99)." msgstr "NTP サポート用のリソースモジュールを追加しました (https://github.com/ansible-collections/dellemc.enterprise_sonic/pull/99)。" -#: ../../rst/porting_guides/porting_guide_7.rst:264 +#: ../../rst/porting_guides/porting_guide_7.rst:632 msgid "Added a resource module for support of prefix lists (https://github.com/ansible-collections/dellemc.enterprise_sonic/pull/100)." msgstr "プレフィックスのリストをサポートするためのリソースモジュールを追加しました (https://github.com/ansible-collections/dellemc.enterprise_sonic/pull/100)。" -#: ../../rst/porting_guides/porting_guide_7.rst:265 +#: ../../rst/porting_guides/porting_guide_7.rst:633 msgid "Updated backend REST API request formats in all applicable modules for compatibility with SONiC 4.x openconfig YANG compliant REST APIs. (https://github.com/ansible-collections/dellemc.enterprise_sonic/pull/53)" msgstr "SONiC 4.x openconfig YANG 準拠の REST API との互換性のために、適用可能なすべてのモジュールでバックエンド REST API 要求形式を更新しました。(https://github.com/ansible-collections/dellemc.enterprise_sonic/pull/53)" -#: ../../rst/porting_guides/porting_guide_7.rst:270 +#: ../../rst/porting_guides/porting_guide_7.rst:638 msgid "Added collection metadata for creating execution environments." msgstr "実行環境を作成するためのコレクションメタデータが追加されました。" -#: ../../rst/porting_guides/porting_guide_7.rst:271 +#: ../../rst/porting_guides/porting_guide_7.rst:639 msgid "Refactored the Markdown (MD) files and content for better readability." msgstr "読みやすくするために、Markdown (MD) ファイルとコンテンツをリファクタリングしました。" -#: ../../rst/porting_guides/porting_guide_7.rst:272 +#: ../../rst/porting_guides/porting_guide_7.rst:640 msgid "The share parameters are deprecated from the following modules - idrac_network, idrac_timezone_ntp, dellemc_configure_idrac_eventing, dellemc_configure_idrac_services, dellemc_idrac_lc_attributes, dellemc_system_lockdown_mode." msgstr "共有パラメーターは、idrac_network、idrac_timezone_ntp、dellemc_configure_idrac_eventing、dellemc_configure_idrac_services、dellemc_idrac_lc_attributes、dellemc_system_lockdown_mode のモジュールでは非推奨となりました。" -#: ../../rst/porting_guides/porting_guide_7.rst:273 +#: ../../rst/porting_guides/porting_guide_7.rst:641 +msgid "idrac_bios - The module is enhanced to support clear pending BIOS attributes, reset BIOS to default settings, and configure BIOS attribute using Redfish." +msgstr "idrac_bios - 保留中の BIOS 属性のクリア、BIOS のデフォルト設定へのリセット、および Redfish を使用した BIOS 属性の設定をサポートするようにモジュールが強化されています。" + +#: ../../rst/porting_guides/porting_guide_7.rst:642 msgid "idrac_boot - Support for configuring the boot settings on iDRAC." msgstr "idrac_boot - iDRAC での起動設定の構成のサポート。" -#: ../../rst/porting_guides/porting_guide_7.rst:274 +#: ../../rst/porting_guides/porting_guide_7.rst:643 +msgid "idrac_redfish_storage_controller - This module is enhanced to support LockVirtualDisk operation." +msgstr "idrac_redfish_storage_controller - このモジュールは、LockVirtualDisk 操作をサポートするように拡張されています。" + +#: ../../rst/porting_guides/porting_guide_7.rst:644 +msgid "idrac_virtual_media - This module allows to configure Remote File Share settings." +msgstr "idrac_virtual_media - このモジュールを使用すると、Remote File Share を設定できます。" + +#: ../../rst/porting_guides/porting_guide_7.rst:645 msgid "ome_device_group - The module is enhanced to support the removal of devices from a static device group." msgstr "ome_device_group - モジュールが拡張され、静的デバイスグループからのデバイスの削除がサポートされるようになりました。" -#: ../../rst/porting_guides/porting_guide_7.rst:275 +#: ../../rst/porting_guides/porting_guide_7.rst:646 msgid "ome_devices - Support for performing device-specific operations on OpenManage Enterprise." msgstr "ome_devices - OpenManage Enterprise でデバイス固有の操作を実行するためのサポート。" -#: ../../rst/porting_guides/porting_guide_7.rst:292 +#: ../../rst/porting_guides/porting_guide_7.rst:683 msgid "servicenow.servicenow (previously included version: 1.0.6)" msgstr "servicenow.servicenow (以前含まれていたバージョン: 1.0.6)" -#: ../../rst/porting_guides/porting_guide_7.rst:300 +#: ../../rst/porting_guides/porting_guide_7.rst:691 msgid "PlayIterator - remove deprecated ``PlayIterator.ITERATING_*`` and ``PlayIterator.FAILED_*``" -msgstr "PlayIterator - 非推奨となった ``PlayIterator.ITERATING_*`` および ``PlayIterator.FAILED_*`` を削除します。" +msgstr "PlayIterator - 非推奨となった ``PlayIterator.ITERATING_*`` および ``PlayIterator.FAILED_*`` を削除します" -#: ../../rst/porting_guides/porting_guide_7.rst:301 +#: ../../rst/porting_guides/porting_guide_7.rst:692 msgid "Remove deprecated ``ALLOW_WORLD_READABLE_TMPFILES`` configuration option (https://github.com/ansible/ansible/issues/77393)" -msgstr "非推奨の ``ALLOW_WORLD_READABLE_TMPFILES`` 設定オプション (https://github.com/ansible/ansible/issues/77393) を削除" +msgstr "非推奨となった ``ALLOW_WORLD_READABLE_TMPFILES`` 設定オプションを削除します (https://github.com/ansible/ansible/issues/77393)" -#: ../../rst/porting_guides/porting_guide_7.rst:302 +#: ../../rst/porting_guides/porting_guide_7.rst:693 msgid "Remove deprecated ``COMMAND_WARNINGS`` configuration option (https://github.com/ansible/ansible/issues/77394)" -msgstr "非推奨の ``COMMAND_WARNINGS`` 設定オプション (https://github.com/ansible/ansible/issues/77394)" +msgstr "非推奨となった ``COMMAND_WARNINGS`` 設定オプションを削除します (https://github.com/ansible/ansible/issues/77394)" -#: ../../rst/porting_guides/porting_guide_7.rst:303 +#: ../../rst/porting_guides/porting_guide_7.rst:694 msgid "Remove deprecated ``DISPLAY_SKIPPED_HOSTS`` environment variable (https://github.com/ansible/ansible/issues/77396)" -msgstr "非推奨となった ``DISPLAY_SKIPPED_HOSTS`` 環境変数を削除します (https://github.com/ansible/ansible/issues/77396)。" +msgstr "非推奨となった ``DISPLAY_SKIPPED_HOSTS`` 環境変数を削除します (https://github.com/ansible/ansible/issues/77396)" -#: ../../rst/porting_guides/porting_guide_7.rst:304 +#: ../../rst/porting_guides/porting_guide_7.rst:695 msgid "Remove deprecated ``LIBVIRT_LXC_NOSECLABEL`` environment variable (https://github.com/ansible/ansible/issues/77395)" -msgstr "非推奨となった ``LIBVIRT_LXC_NOSECLABEL`` 環境変数を削除します (https://github.com/ansible/ansible/issues/77395)。" +msgstr "非推奨となった ``LIBVIRT_LXC_NOSECLABEL`` 環境変数を削除します (https://github.com/ansible/ansible/issues/77395)" -#: ../../rst/porting_guides/porting_guide_7.rst:305 +#: ../../rst/porting_guides/porting_guide_7.rst:696 msgid "Remove deprecated ``NETWORK_GROUP_MODULES`` environment variable (https://github.com/ansible/ansible/issues/77397)" -msgstr "非推奨となった ``NETWORK_GROUP_MODULES`` 環境変数を削除します (https://github.com/ansible/ansible/issues/77397)。" +msgstr "非推奨となった ``NETWORK_GROUP_MODULES`` 環境変数を削除します (https://github.com/ansible/ansible/issues/77397" -#: ../../rst/porting_guides/porting_guide_7.rst:306 +#: ../../rst/porting_guides/porting_guide_7.rst:697 msgid "Remove deprecated ``UnsafeProxy``" msgstr "非推奨となった ``UnsafeProxy`` を削除します" -#: ../../rst/porting_guides/porting_guide_7.rst:307 +#: ../../rst/porting_guides/porting_guide_7.rst:698 msgid "Remove deprecated ``plugin_filters_cfg`` config option from ``default`` section (https://github.com/ansible/ansible/issues/77398)" msgstr "非推奨となった ``plugin_filters_cfg`` 設定オプションを ``default`` セクションから削除します (https://github.com/ansible/ansible/issues/77398)" -#: ../../rst/porting_guides/porting_guide_7.rst:308 +#: ../../rst/porting_guides/porting_guide_7.rst:699 msgid "Remove deprecated functionality that allows loading cache plugins directly without using ``cache_loader``." -msgstr "``cache_loader`` を使用せずに、キャッシュプラグインを直接ロードできる非推奨の機能を削除します。" +msgstr "``cache_loader`` を使用せずに、キャッシュプラグインを直接ロードできる非推奨の機能を削除します" -#: ../../rst/porting_guides/porting_guide_7.rst:309 +#: ../../rst/porting_guides/porting_guide_7.rst:700 msgid "Remove deprecated functionality that allows subclassing ``DefaultCallback`` without the corresponding ``doc_fragment``." msgstr "対応する ``doc_fragment`` なしに ``DefaultCallback`` のサブクラス化を可能にする非推奨の機能を削除します。" -#: ../../rst/porting_guides/porting_guide_7.rst:310 +#: ../../rst/porting_guides/porting_guide_7.rst:701 msgid "Remove deprecated powershell functions ``Load-CommandUtils`` and ``Import-PrivilegeUtil``" msgstr "非推奨となった powershell 関数 ``Load-CommandUtils`` および ``Import-PrivilegeUtil`` を削除します" -#: ../../rst/porting_guides/porting_guide_7.rst:311 +#: ../../rst/porting_guides/porting_guide_7.rst:702 msgid "apt_key - remove deprecated ``key`` module param" msgstr "apt_key - 非推奨となった ``key`` モジュールパラメーターを削除します" -#: ../../rst/porting_guides/porting_guide_7.rst:312 +#: ../../rst/porting_guides/porting_guide_7.rst:703 msgid "command/shell - remove deprecated ``warn`` module param" msgstr "コマンド/シェル - 非推奨となった ``warn``モジュールパラメーターを削除します" -#: ../../rst/porting_guides/porting_guide_7.rst:313 +#: ../../rst/porting_guides/porting_guide_7.rst:704 msgid "get_url - remove deprecated ``sha256sum`` module param" msgstr "get_url - 非推奨となった ``sha256sum`` モジュールパラメーターを削除します" -#: ../../rst/porting_guides/porting_guide_7.rst:314 +#: ../../rst/porting_guides/porting_guide_7.rst:705 msgid "import_playbook - remove deprecated functionality that allows providing additional parameters in free form" msgstr "import_playbook - 自由形式で追加のパラメーターを提供できる非推奨の機能を削除します" -#: ../../rst/porting_guides/porting_guide_7.rst:319 +#: ../../rst/porting_guides/porting_guide_7.rst:710 msgid "cloudformation - the ``template_format`` option has been removed. It has been ignored by the module since Ansible 2.3 (https://github.com/ansible-collections/amazon.aws/pull/833)." msgstr "cloudformation - ``template_format`` オプションが削除されました。これは Ansible 2.3 以降モジュールによって無視されています (https://github.com/ansible-collections/amazon.aws/pull/833)。" -#: ../../rst/porting_guides/porting_guide_7.rst:320 +#: ../../rst/porting_guides/porting_guide_7.rst:711 msgid "ec2_key - the ``wait_timeout`` option had no effect, was deprecated in release 1.0.0, and has now been removed (https://github.com/ansible-collections/amazon.aws/pull/830)." msgstr "ec2_key - ``wait_timeout`` オプションは効果がなく、リリース 1.0.0 で非推奨となり、現在は削除されています (https://github.com/ansible-collections/amazon.aws/pull/830)。" -#: ../../rst/porting_guides/porting_guide_7.rst:321 +#: ../../rst/porting_guides/porting_guide_7.rst:712 msgid "ec2_key - the ``wait`` option had no effect, was deprecated in release 1.0.0, and has now been removed (https://github.com/ansible-collections/amazon.aws/pull/830)." msgstr "ec2_key - ``wait`` オプションは効果がなく、リリース 1.0.0 で非推奨となり、現在は削除されています (https://github.com/ansible-collections/amazon.aws/pull/830)。" -#: ../../rst/porting_guides/porting_guide_7.rst:322 +#: ../../rst/porting_guides/porting_guide_7.rst:713 msgid "ec2_tag - the previously deprecated state ``list`` has been removed. To list tags on an EC2 resource the ``ec2_tag_info`` module can be used (https://github.com/ansible-collections/amazon.aws/pull/829)." msgstr "ec2_tag - 以前に非推奨となった状態 ``list`` が削除されました。EC2 リソースのタグを一覧表示するには、``ec2_tag_info`` モジュールを使用できます (https://github.com/ansible-collections/amazon.aws/pull/829)。" -#: ../../rst/porting_guides/porting_guide_7.rst:323 +#: ../../rst/porting_guides/porting_guide_7.rst:714 msgid "ec2_vol - the previously deprecated state ``list`` has been removed. To list volumes the ``ec2_vol_info`` module can be used (https://github.com/ansible-collections/amazon.aws/pull/828)." msgstr "ec2_vol - 以前に非推奨となった状態 ``list`` が削除されました。ボリュームを一覧表示するには ``ec2_vol_info`` モジュールを使用できます (https://github.com/ansible-collections/amazon.aws/pull/828)。" -#: ../../rst/porting_guides/porting_guide_7.rst:324 +#: ../../rst/porting_guides/porting_guide_7.rst:715 msgid "module_utils.batch - the class ``ansible_collections.amazon.aws.plugins.module_utils.batch.AWSConnection`` has been removed. Please use ``AnsibleAWSModule.client()`` instead (https://github.com/ansible-collections/amazon.aws/pull/831)." msgstr "module_utils.batch - クラス ``ansible_collections.amazon.aws.plugins.module_utils.batch.AWSConnection`` が削除されました。代わりに ``AnsibleAWSModule.client()`` を使用してください (https://github.com/ansible-collections/amazon.aws/pull/831)。" -#: ../../rst/porting_guides/porting_guide_7.rst:329 +#: ../../rst/porting_guides/porting_guide_7.rst:720 +msgid "napalm - Removed unused connection plugin." +msgstr "napalm - 未使用の接続プラグインを削除しました。" + +#: ../../rst/porting_guides/porting_guide_7.rst:721 +msgid "net_banner - Use _banner instead." +msgstr "net_banner - 代わりに _banner を使用します。" + +#: ../../rst/porting_guides/porting_guide_7.rst:722 +msgid "net_interface - Use _interfaces instead." +msgstr "net_interface - _interfaces を代わりに使用します。" + +#: ../../rst/porting_guides/porting_guide_7.rst:723 +msgid "net_l2_interface - Use _l2_interfaces instead." +msgstr "net_l2_interface - _l2_interfaces を代わりに使用します。" + +#: ../../rst/porting_guides/porting_guide_7.rst:724 +msgid "net_l3_interface - Use _l3_interfaces instead." +msgstr "net_l3_interface - _l3_interfaces を代わりに使用します。" + +#: ../../rst/porting_guides/porting_guide_7.rst:725 +msgid "net_linkagg - Use _lag_interfaces instead." +msgstr "net_linkagg - _lag_interfaces を代わりに使用します。" + +#: ../../rst/porting_guides/porting_guide_7.rst:726 +msgid "net_lldp - Use _lldp_global instead." +msgstr "net_lldp - _lldp_global を代わりに使用します。" + +#: ../../rst/porting_guides/porting_guide_7.rst:727 +msgid "net_lldp_interface - Use _lldp_interfaces instead." +msgstr "net_lldp_interface - _lldp_interfaces を代わりに使用します。" + +#: ../../rst/porting_guides/porting_guide_7.rst:728 +msgid "net_logging - Use _logging_global instead." +msgstr "net_logging - _logging_global を代わりに使用します。" + +#: ../../rst/porting_guides/porting_guide_7.rst:729 +msgid "net_static_route - Use _static_routes instead." +msgstr "net_static_route - _static_routes を代わりに使用します。" + +#: ../../rst/porting_guides/porting_guide_7.rst:730 +msgid "net_system - Use _system instead." +msgstr "net_system - _system を代わりに使用します。" + +#: ../../rst/porting_guides/porting_guide_7.rst:731 +msgid "net_user - Use _user instead." +msgstr "net_user - _user を代わりに使用します。" + +#: ../../rst/porting_guides/porting_guide_7.rst:732 +msgid "net_vlan - Use _vlans instead." +msgstr "net_vlan - _vlans を代わりに使用します。" + +#: ../../rst/porting_guides/porting_guide_7.rst:733 +msgid "net_vrf - Use _vrf instead." +msgstr "net_vrf - _vrf を代わりに使用します。" + +#: ../../rst/porting_guides/porting_guide_7.rst:738 +msgid "ios_interface - use ios_interfaces instead." +msgstr "ios_interface - ios_interfaces を代わりに使用します。" + +#: ../../rst/porting_guides/porting_guide_7.rst:739 +msgid "ios_l2_interface - use ios_l2_interfaces instead." +msgstr "ios_l2_interface - ios_l2_interfaces を代わりに使用します。" + +#: ../../rst/porting_guides/porting_guide_7.rst:740 +msgid "ios_l3_interface - use ios_l3_interfaces instead." +msgstr "ios_l3_interface - ios_l3_interfaces を代わりに使用します。" + +#: ../../rst/porting_guides/porting_guide_7.rst:741 +msgid "ios_static_route - use ios_static_routes instead." +msgstr "ios_static_route - ios_static_routes を代わりに使用します。" + +#: ../../rst/porting_guides/porting_guide_7.rst:742 +msgid "ios_vlan - use ios_vlans instead." +msgstr "ios_vlan - ios_vlans を代わりに使用します。" + +#: ../../rst/porting_guides/porting_guide_7.rst:747 +msgid "iosxr_interface - use iosxr_interfaces instead." +msgstr "iosxr_interface - iosxr_interfaces を代わりに使用します。" + +#: ../../rst/porting_guides/porting_guide_7.rst:752 +msgid "This release removes the following deprecated plugins that have reached their end-of-life." +msgstr "このリリースでは、有効期限の切れた以下の非推奨プラグインを削除しています。" + +#: ../../rst/porting_guides/porting_guide_7.rst:753 +msgid "nxos_acl" +msgstr "nxos_acl" + +#: ../../rst/porting_guides/porting_guide_7.rst:754 +msgid "nxos_acl_interface" +msgstr "nxos_acl_interface" + +#: ../../rst/porting_guides/porting_guide_7.rst:755 +msgid "nxos_interface" +msgstr "nxos_interface" + +#: ../../rst/porting_guides/porting_guide_7.rst:756 +msgid "nxos_interface_ospf" +msgstr "nxos_interface_ospf" + +#: ../../rst/porting_guides/porting_guide_7.rst:757 +msgid "nxos_l2_interface" +msgstr "nxos_l2_interface" + +#: ../../rst/porting_guides/porting_guide_7.rst:758 +msgid "nxos_l3_interface" +msgstr "nxos_l3_interface" + +#: ../../rst/porting_guides/porting_guide_7.rst:759 +msgid "nxos_linkagg" +msgstr "nxos_linkagg" + +#: ../../rst/porting_guides/porting_guide_7.rst:760 +msgid "nxos_lldp" +msgstr "nxos_lldp" + +#: ../../rst/porting_guides/porting_guide_7.rst:761 +msgid "nxos_ospf" +msgstr "nxos_ospf" + +#: ../../rst/porting_guides/porting_guide_7.rst:762 +msgid "nxos_ospf_vrf" +msgstr "nxos_ospf_vrf" + +#: ../../rst/porting_guides/porting_guide_7.rst:763 +msgid "nxos_smu" +msgstr "nxos_smu" + +#: ../../rst/porting_guides/porting_guide_7.rst:764 +msgid "nxos_static_route" +msgstr "nxos_static_route" + +#: ../../rst/porting_guides/porting_guide_7.rst:765 +msgid "nxos_vlan" +msgstr "nxos_vlan" + +#: ../../rst/porting_guides/porting_guide_7.rst:770 msgid "aws_kms_info - the unused and deprecated ``keys_attr`` parameter has been removed (https://github.com/ansible-collections/amazon.aws/pull/1172)." msgstr "aws_kms_info - 未使用および非推奨の ``keys_attr`` パラメーターが削除されました (https://github.com/ansible-collections/amazon.aws/pull/1172)。" -#: ../../rst/porting_guides/porting_guide_7.rst:330 +#: ../../rst/porting_guides/porting_guide_7.rst:771 msgid "data_pipeline - the ``version`` option has always been ignored and has been removed (https://github.com/ansible-collections/community.aws/pull/1160\"" msgstr "data_pipeline - ``version`` オプションは常に無視され、削除されました (https://github.com/ansible-collections/community.aws/pull/1160\"" -#: ../../rst/porting_guides/porting_guide_7.rst:331 +#: ../../rst/porting_guides/porting_guide_7.rst:772 msgid "ec2_eip - The ``wait_timeout`` option has been removed. It has always been ignored by the module (https://github.com/ansible-collections/community.aws/pull/1159)." msgstr "ec2_eip - ``wait_timeout`` オプションが削除されました。これは、モジュールによって常に無視されていました (https://github.com/ansible-collections/community.aws/pull/1159)。" -#: ../../rst/porting_guides/porting_guide_7.rst:332 +#: ../../rst/porting_guides/porting_guide_7.rst:773 msgid "ec2_lc - the ``associate_public_ip_address`` option has been removed. It has always been ignored by the module (https://github.com/ansible-collections/community.aws/pull/1158)." msgstr "ec2_lc - ``associate_public_ip_address`` オプションが削除されました。これは、モジュールによって常に無視されていました (https://github.com/ansible-collections/community.aws/pull/1158)。" -#: ../../rst/porting_guides/porting_guide_7.rst:333 +#: ../../rst/porting_guides/porting_guide_7.rst:774 msgid "ec2_metric_alarm - support for using the ``<=``, ``<``, ``>`` and ``>=`` operators for comparison has been dropped. Please use ``LessThanOrEqualToThreshold``, ``LessThanThreshold``, ``GreaterThanThreshold`` or ``GreaterThanOrEqualToThreshold`` instead (https://github.com/ansible-collections/amazon.aws/pull/1164)." msgstr "ec2_metric_alarm - 比較用の ``<=``、``<``、``>`` および ``>=`` Operator の使用へのサポートは削除されました。代わりに、``LessThanOrEqualToThreshold``、``LessThanThreshold``、``GreaterThanThreshold`` または ``GreaterThanOrEqualToThreshold`` を使用してください (https://github.com/ansible-collections/amazon.aws/pull/1164)。" -#: ../../rst/porting_guides/porting_guide_7.rst:334 +#: ../../rst/porting_guides/porting_guide_7.rst:775 msgid "ecs_ecr - The deprecated alias ``delete_policy`` has been removed. Please use ``purge_policy`` instead (https://github.com/ansible-collections/community.aws/pull/1161)." msgstr "ecs_ecr - 非推奨のエイリアス ``delete_policy`` が削除されました。代わりに ``purge_policy`` を使用してください (https://github.com/ansible-collections/community.aws/pull/1161)。" -#: ../../rst/porting_guides/porting_guide_7.rst:335 +#: ../../rst/porting_guides/porting_guide_7.rst:776 msgid "iam_managed_policy - the unused ``fail_on_delete`` parameter has been removed (https://github.com/ansible-collections/community.aws/pull/1168)" msgstr "iam_managed_policy - 未使用の ``fail_on_delete`` パラメーターが削除されました (https://github.com/ansible-collections/community.aws/pull/1168)" -#: ../../rst/porting_guides/porting_guide_7.rst:336 +#: ../../rst/porting_guides/porting_guide_7.rst:777 msgid "s3_lifecycle - the unused parameter ``requester_pays`` has been removed (https://github.com/ansible-collections/community.aws/pull/1165)." msgstr "s3_lifecycle - 未使用のパラメーター ``requester_pays`` が削除されました (https://github.com/ansible-collections/community.aws/pull/1165)。" -#: ../../rst/porting_guides/porting_guide_7.rst:337 +#: ../../rst/porting_guides/porting_guide_7.rst:778 msgid "s3_sync - remove unused ``retries`` parameter (https://github.com/ansible-collections/community.aws/pull/1166)." msgstr "s3_sync - 未使用の ``retries`` パラメーターを削除します (https://github.com/ansible-collections/community.aws/pull/1166)。" -#: ../../rst/porting_guides/porting_guide_7.rst:342 +#: ../../rst/porting_guides/porting_guide_7.rst:783 msgid "azure_rm_aks_facts, azure_rm_aks_info - the deprecated modules have been removed. Use azure.azcollection.azure_rm_aks_info instead (https://github.com/ansible-collections/community.azure/pull/31)." msgstr "azure_rm_aks_facts、azure_rm_aks_info - 非推奨のモジュールが削除されました。代わりに azure.azcollection.azure_rm_aks_info を使用します (https://github.com/ansible-collections/community.azure/pull/31)。" -#: ../../rst/porting_guides/porting_guide_7.rst:343 +#: ../../rst/porting_guides/porting_guide_7.rst:784 msgid "azure_rm_aksversion_facts, azure_rm_aksversion_info - the deprecated modules have been removed. Use azure.azcollection.azure_rm_aksversion_info instead (https://github.com/ansible-collections/community.azure/pull/31)." msgstr "azure_rm_aksversion_facts、azure_rm_aksversion_info - 非推奨のモジュールが削除されました。代わりに azure.azcollection.azure_rm_aksversion_info を使用します (https://github.com/ansible-collections/community.azure/pull/31)。" -#: ../../rst/porting_guides/porting_guide_7.rst:344 +#: ../../rst/porting_guides/porting_guide_7.rst:785 msgid "azure_rm_applicationsecuritygroup_facts, azure_rm_applicationsecuritygroup_info - the deprecated modules have been removed. Use azure.azcollection.azure_rm_applicationsecuritygroup_info instead (https://github.com/ansible-collections/community.azure/pull/31)." msgstr "azure_rm_applicationsecuritygroup_facts、azure_rm_applicationsecuritygroup_info - 非推奨のモジュールが削除されました。代わりに azure.azcollection.azure_rm_applicationsecuritygroup_info を使用します (https://github.com/ansible-collections/community.azure/pull/31)。" -#: ../../rst/porting_guides/porting_guide_7.rst:345 +#: ../../rst/porting_guides/porting_guide_7.rst:786 msgid "azure_rm_appserviceplan_facts, azure_rm_appserviceplan_info - the deprecated modules have been removed. Use azure.azcollection.azure_rm_appserviceplan_info instead (https://github.com/ansible-collections/community.azure/pull/31)." msgstr "azure_rm_appserviceplan_facts、azure_rm_appserviceplan_info - 非推奨のモジュールが削除されました。代わりに azure.azcollection.azure_rm_appserviceplan_info を使用します (https://github.com/ansible-collections/community.azure/pull/31)。" -#: ../../rst/porting_guides/porting_guide_7.rst:346 +#: ../../rst/porting_guides/porting_guide_7.rst:787 msgid "azure_rm_automationaccount_facts, azure_rm_automationaccount_info - the deprecated modules have been removed. Use azure.azcollection.azure_rm_automationaccount_info instead (https://github.com/ansible-collections/community.azure/pull/31)." msgstr "azure_rm_automationaccount_facts、azure_rm_automationaccount_info - 非推奨のモジュールが削除されました。代わりに azure.azcollection.azure_rm_automationaccount_info を使用します (https://github.com/ansible-collections/community.azure/pull/31)。" -#: ../../rst/porting_guides/porting_guide_7.rst:347 +#: ../../rst/porting_guides/porting_guide_7.rst:788 msgid "azure_rm_autoscale_facts, azure_rm_autoscale_info - the deprecated modules have been removed. Use azure.azcollection.azure_rm_autoscale_info instead (https://github.com/ansible-collections/community.azure/pull/31)." msgstr "azure_rm_autoscale_facts、azure_rm_autoscale_info - 非推奨のモジュールが削除されました。代わりに azure.azcollection.azure_rm_autoscale_info を使用します (https://github.com/ansible-collections/community.azure/pull/31)。" -#: ../../rst/porting_guides/porting_guide_7.rst:348 +#: ../../rst/porting_guides/porting_guide_7.rst:789 msgid "azure_rm_availabilityset_facts, azure_rm_availabilityset_info - the deprecated modules have been removed. Use azure.azcollection.azure_rm_availabilityset_info instead (https://github.com/ansible-collections/community.azure/pull/31)." msgstr "azure_rm_availabilityset_facts、azure_rm_availabilityset_info - 非推奨のモジュールが削除されました。代わりに azure.azcollection.azure_rm_availabilityset_info を使用します (https://github.com/ansible-collections/community.azure/pull/31)。" -#: ../../rst/porting_guides/porting_guide_7.rst:349 +#: ../../rst/porting_guides/porting_guide_7.rst:790 msgid "azure_rm_cdnendpoint_facts, azure_rm_cdnendpoint_info - the deprecated modules have been removed. Use azure.azcollection.azure_rm_cdnendpoint_info instead (https://github.com/ansible-collections/community.azure/pull/31)." msgstr "azure_rm_cdnendpoint_facts、azure_rm_cdnendpoint_info - 非推奨のモジュールが削除されました。代わりに azure.azcollection.azure_rm_cdnendpoint_info を使用します (https://github.com/ansible-collections/community.azure/pull/31)。" -#: ../../rst/porting_guides/porting_guide_7.rst:350 +#: ../../rst/porting_guides/porting_guide_7.rst:791 msgid "azure_rm_cdnprofile_facts, azure_rm_cdnprofile_info - the deprecated modules have been removed. Use azure.azcollection.azure_rm_cdnprofile_info instead (https://github.com/ansible-collections/community.azure/pull/31)." msgstr "azure_rm_cdnprofile_facts、azure_rm_cdnprofile_info - 非推奨のモジュールが削除されました。代わりに azure.azcollection.azure_rm_cdnprofile_info を使用します (https://github.com/ansible-collections/community.azure/pull/31)。" -#: ../../rst/porting_guides/porting_guide_7.rst:351 +#: ../../rst/porting_guides/porting_guide_7.rst:792 msgid "azure_rm_containerinstance_facts, azure_rm_containerinstance_info - the deprecated modules have been removed. Use azure.azcollection.azure_rm_containerinstance_info instead (https://github.com/ansible-collections/community.azure/pull/31)." msgstr "azure_rm_containerinstance_facts、azure_rm_containerinstance_info - 非推奨のモジュールが削除されました。代わりに azure.azcollection.azure_rm_containerinstance_info を使用します (https://github.com/ansible-collections/community.azure/pull/31)。" -#: ../../rst/porting_guides/porting_guide_7.rst:352 +#: ../../rst/porting_guides/porting_guide_7.rst:793 msgid "azure_rm_containerregistry_facts, azure_rm_containerregistry_info - the deprecated modules have been removed. Use azure.azcollection.azure_rm_containerregistry_info instead (https://github.com/ansible-collections/community.azure/pull/31)." msgstr "azure_rm_containerregistry_facts、azure_rm_containerregistry_info - 非推奨のモジュールが削除されました。代わりに azure.azcollection.azure_rm_containerregistry_info を使用します (https://github.com/ansible-collections/community.azure/pull/31)。" -#: ../../rst/porting_guides/porting_guide_7.rst:353 +#: ../../rst/porting_guides/porting_guide_7.rst:794 msgid "azure_rm_cosmosdbaccount_facts, azure_rm_cosmosdbaccount_info - the deprecated modules have been removed. Use azure.azcollection.azure_rm_cosmosdbaccount_info instead (https://github.com/ansible-collections/community.azure/pull/31)." msgstr "azure_rm_cosmosdbaccount_facts、azure_rm_cosmosdbaccount_info - 非推奨のモジュールが削除されました。代わりに azure.azcollection.azure_rm_cosmosdbaccount_info を使用します (https://github.com/ansible-collections/community.azure/pull/31)。" -#: ../../rst/porting_guides/porting_guide_7.rst:354 +#: ../../rst/porting_guides/porting_guide_7.rst:795 msgid "azure_rm_deployment_facts, azure_rm_deployment_info - the deprecated modules have been removed. Use azure.azcollection.azure_rm_deployment_info instead (https://github.com/ansible-collections/community.azure/pull/31)." msgstr "azure_rm_deployment_facts、azure_rm_deployment_info - 非推奨のモジュールが削除されました。代わりに azure.azcollection.azure_rm_deployment_info を使用します (https://github.com/ansible-collections/community.azure/pull/31)。" -#: ../../rst/porting_guides/porting_guide_7.rst:355 +#: ../../rst/porting_guides/porting_guide_7.rst:796 msgid "azure_rm_devtestlab_facts, azure_rm_devtestlab_info - the deprecated modules have been removed. Use azure.azcollection.azure_rm_devtestlab_info instead (https://github.com/ansible-collections/community.azure/pull/31)." msgstr "azure_rm_devtestlab_facts、azure_rm_devtestlab_info - 非推奨のモジュールが削除されました。代わりに azure.azcollection.azure_rm_devtestlab_info を使用します (https://github.com/ansible-collections/community.azure/pull/31)。" -#: ../../rst/porting_guides/porting_guide_7.rst:356 +#: ../../rst/porting_guides/porting_guide_7.rst:797 msgid "azure_rm_devtestlabarmtemplate_facts, azure_rm_devtestlabarmtemplate_info - the deprecated modules have been removed. Use azure.azcollection.azure_rm_devtestlabarmtemplate_info instead (https://github.com/ansible-collections/community.azure/pull/31)." msgstr "azure_rm_devtestlabarmtemplate_facts、azure_rm_devtestlabarmtemplate_info - 非推奨のモジュールが削除されました。代わりに azure.azcollection.azure_rm_devtestlabarmtemplate_info を使用します (https://github.com/ansible-collections/community.azure/pull/31)。" -#: ../../rst/porting_guides/porting_guide_7.rst:357 +#: ../../rst/porting_guides/porting_guide_7.rst:798 msgid "azure_rm_devtestlabartifact_facts, azure_rm_devtestlabartifact_info - the deprecated modules have been removed. Use azure.azcollection.azure_rm_devtestlabartifact_info instead (https://github.com/ansible-collections/community.azure/pull/31)." msgstr "azure_rm_devtestlabartifact_facts、azure_rm_devtestlabartifact_info - 非推奨のモジュールが削除されました。代わりに azure.azcollection.azure_rm_devtestlabartifact_info を使用します (https://github.com/ansible-collections/community.azure/pull/31)。" -#: ../../rst/porting_guides/porting_guide_7.rst:358 +#: ../../rst/porting_guides/porting_guide_7.rst:799 msgid "azure_rm_devtestlabartifactsource_facts, azure_rm_devtestlabartifactsource_info - the deprecated modules have been removed. Use azure.azcollection.azure_rm_devtestlabartifactsource_info instead (https://github.com/ansible-collections/community.azure/pull/31)." msgstr "azure_rm_devtestlabartifactsource_facts、azure_rm_devtestlabartifactsource_info - 非推奨のモジュールが削除されました。代わりに azure.azcollection.azure_rm_devtestlabartifactsource_info を使用します (https://github.com/ansible-collections/community.azure/pull/31)。" -#: ../../rst/porting_guides/porting_guide_7.rst:359 +#: ../../rst/porting_guides/porting_guide_7.rst:800 msgid "azure_rm_devtestlabcustomimage_facts, azure_rm_devtestlabcustomimage_info - the deprecated modules have been removed. Use azure.azcollection.azure_rm_devtestlabcustomimage_info instead (https://github.com/ansible-collections/community.azure/pull/31)." msgstr "azure_rm_devtestlabcustomimage_facts、azure_rm_devtestlabcustomimage_info - 非推奨のモジュールが削除されました。代わりに azure.azcollection.azure_rm_devtestlabcustomimage_info を使用します (https://github.com/ansible-collections/community.azure/pull/31)。" -#: ../../rst/porting_guides/porting_guide_7.rst:360 +#: ../../rst/porting_guides/porting_guide_7.rst:801 msgid "azure_rm_devtestlabenvironment_facts, azure_rm_devtestlabenvironment_info - the deprecated modules have been removed. Use azure.azcollection.azure_rm_devtestlabenvironment_info instead (https://github.com/ansible-collections/community.azure/pull/31)." msgstr "azure_rm_devtestlabenvironment_facts、azure_rm_devtestlabenvironment_info - 非推奨のモジュールが削除されました。代わりに azure.azcollection.azure_rm_devtestlabenvironment_info を使用します (https://github.com/ansible-collections/community.azure/pull/31)。" -#: ../../rst/porting_guides/porting_guide_7.rst:361 +#: ../../rst/porting_guides/porting_guide_7.rst:802 msgid "azure_rm_devtestlabpolicy_facts, azure_rm_devtestlabpolicy_info - the deprecated modules have been removed. Use azure.azcollection.azure_rm_devtestlabpolicy_info instead (https://github.com/ansible-collections/community.azure/pull/31)." msgstr "azure_rm_devtestlabpolicy_facts、azure_rm_devtestlabpolicy_info - 非推奨のモジュールが削除されました。代わりに azure.azcollection.azure_rm_devtestlabpolicy_info を使用します (https://github.com/ansible-collections/community.azure/pull/31)。" -#: ../../rst/porting_guides/porting_guide_7.rst:362 +#: ../../rst/porting_guides/porting_guide_7.rst:803 msgid "azure_rm_devtestlabschedule_facts, azure_rm_devtestlabschedule_info - the deprecated modules have been removed. Use azure.azcollection.azure_rm_devtestlabschedule_info instead (https://github.com/ansible-collections/community.azure/pull/31)." msgstr "azure_rm_devtestlabschedule_facts、azure_rm_devtestlabschedule_info - 非推奨のモジュールが削除されました。代わりに azure.azcollection.azure_rm_devtestlabschedule_info を使用します (https://github.com/ansible-collections/community.azure/pull/31)。" -#: ../../rst/porting_guides/porting_guide_7.rst:363 +#: ../../rst/porting_guides/porting_guide_7.rst:804 msgid "azure_rm_devtestlabvirtualmachine_facts, azure_rm_devtestlabvirtualmachine_info - the deprecated modules have been removed. Use azure.azcollection.azure_rm_devtestlabvirtualmachine_info instead (https://github.com/ansible-collections/community.azure/pull/31)." msgstr "azure_rm_devtestlabvirtualmachine_facts、azure_rm_devtestlabvirtualmachine_info - 非推奨のモジュールが削除されました。代わりに azure.azcollection.azure_rm_devtestlabvirtualmachine_info を使用します (https://github.com/ansible-collections/community.azure/pull/31)。" -#: ../../rst/porting_guides/porting_guide_7.rst:364 +#: ../../rst/porting_guides/porting_guide_7.rst:805 msgid "azure_rm_devtestlabvirtualnetwork_facts, azure_rm_devtestlabvirtualnetwork_info - the deprecated modules have been removed. Use azure.azcollection.azure_rm_devtestlabvirtualnetwork_info instead (https://github.com/ansible-collections/community.azure/pull/31)." msgstr "azure_rm_devtestlabvirtualnetwork_facts、azure_rm_devtestlabvirtualnetwork_info - 非推奨のモジュールが削除されました。代わりに azure.azcollection.azure_rm_devtestlabvirtualnetwork_info を使用します (https://github.com/ansible-collections/community.azure/pull/31)。" -#: ../../rst/porting_guides/porting_guide_7.rst:365 +#: ../../rst/porting_guides/porting_guide_7.rst:806 msgid "azure_rm_dnsrecordset_facts, azure_rm_dnsrecordset_info - the deprecated modules have been removed. Use azure.azcollection.azure_rm_dnsrecordset_info instead (https://github.com/ansible-collections/community.azure/pull/31)." msgstr "azure_rm_dnsrecordset_facts、azure_rm_dnsrecordset_info - 非推奨のモジュールが削除されました。代わりに azure.azcollection.azure_rm_dnsrecordset_info を使用します (https://github.com/ansible-collections/community.azure/pull/31)。" -#: ../../rst/porting_guides/porting_guide_7.rst:366 +#: ../../rst/porting_guides/porting_guide_7.rst:807 msgid "azure_rm_dnszone_facts, azure_rm_dnszone_info - the deprecated modules have been removed. Use azure.azcollection.azure_rm_dnszone_info instead (https://github.com/ansible-collections/community.azure/pull/31)." msgstr "azure_rm_dnszone_facts、azure_rm_dnszone_info - 非推奨のモジュールが削除されました。代わりに azure.azcollection.azure_rm_dnszone_info を使用します (https://github.com/ansible-collections/community.azure/pull/31)。" -#: ../../rst/porting_guides/porting_guide_7.rst:367 +#: ../../rst/porting_guides/porting_guide_7.rst:808 msgid "azure_rm_functionapp_facts, azure_rm_functionapp_info - the deprecated modules have been removed. Use azure.azcollection.azure_rm_functionapp_info instead (https://github.com/ansible-collections/community.azure/pull/31)." msgstr "azure_rm_functionapp_facts、azure_rm_functionapp_info - 非推奨のモジュールが削除されました。代わりに azure.azcollection.azure_rm_functionapp_info を使用します (https://github.com/ansible-collections/community.azure/pull/31)。" -#: ../../rst/porting_guides/porting_guide_7.rst:368 +#: ../../rst/porting_guides/porting_guide_7.rst:809 msgid "azure_rm_hdinsightcluster_facts, azure_rm_hdinsightcluster_info - the deprecated modules have been removed. Use azure.azcollection.azure_rm_hdinsightcluster_info instead (https://github.com/ansible-collections/community.azure/pull/31)." msgstr "azure_rm_hdinsightcluster_facts、azure_rm_hdinsightcluster_info - 非推奨のモジュールが削除されました。代わりに azure.azcollection.azure_rm_hdinsightcluster_info を使用します (https://github.com/ansible-collections/community.azure/pull/31)。" -#: ../../rst/porting_guides/porting_guide_7.rst:369 +#: ../../rst/porting_guides/porting_guide_7.rst:810 msgid "azure_rm_image_facts, azure_rm_image_info - the deprecated modules have been removed. Use azure.azcollection.azure_rm_image_info instead (https://github.com/ansible-collections/community.azure/pull/31)." msgstr "azure_rm_image_facts、azure_rm_image_info - 非推奨のモジュールが削除されました。代わりに azure.azcollection.azure_rm_image_info を使用します (https://github.com/ansible-collections/community.azure/pull/31)。" -#: ../../rst/porting_guides/porting_guide_7.rst:370 +#: ../../rst/porting_guides/porting_guide_7.rst:811 msgid "azure_rm_loadbalancer_facts, azure_rm_loadbalancer_info - the deprecated modules have been removed. Use azure.azcollection.azure_rm_loadbalancer_info instead (https://github.com/ansible-collections/community.azure/pull/31)." msgstr "azure_rm_loadbalancer_facts、azure_rm_loadbalancer_info - 非推奨のモジュールが削除されました。代わりに azure.azcollection.azure_rm_loadbalancer_info を使用します (https://github.com/ansible-collections/community.azure/pull/31)。" -#: ../../rst/porting_guides/porting_guide_7.rst:371 +#: ../../rst/porting_guides/porting_guide_7.rst:812 msgid "azure_rm_lock_facts, azure_rm_lock_info - the deprecated modules have been removed. Use azure.azcollection.azure_rm_lock_info instead (https://github.com/ansible-collections/community.azure/pull/31)." msgstr "azure_rm_lock_facts、azure_rm_lock_info - 非推奨のモジュールが削除されました。代わりに azure.azcollection.azure_rm_lock_info を使用します (https://github.com/ansible-collections/community.azure/pull/31)。" -#: ../../rst/porting_guides/porting_guide_7.rst:372 +#: ../../rst/porting_guides/porting_guide_7.rst:813 msgid "azure_rm_loganalyticsworkspace_facts, azure_rm_loganalyticsworkspace_info - the deprecated modules have been removed. Use azure.azcollection.azure_rm_loganalyticsworkspace_info instead (https://github.com/ansible-collections/community.azure/pull/31)." msgstr "azure_rm_loganalyticsworkspace_facts、azure_rm_loganalyticsworkspace_info - 非推奨のモジュールが削除されました。代わりに azure.azcollection.azure_rm_loganalyticsworkspace_info を使用します (https://github.com/ansible-collections/community.azure/pull/31)。" -#: ../../rst/porting_guides/porting_guide_7.rst:373 +#: ../../rst/porting_guides/porting_guide_7.rst:814 msgid "azure_rm_managed_disk, azure_rm_manageddisk - the deprecated modules have been removed. Use azure.azcollection.azure_rm_manageddisk instead (https://github.com/ansible-collections/community.azure/pull/31)." msgstr "azure_rm_managed_disk、azure_rm_manageddisk - 非推奨のモジュールが削除されました。代わりに azure.azcollection.azure_rm_manageddisk を使用します (https://github.com/ansible-collections/community.azure/pull/31)。" -#: ../../rst/porting_guides/porting_guide_7.rst:374 +#: ../../rst/porting_guides/porting_guide_7.rst:815 msgid "azure_rm_managed_disk_facts, azure_rm_manageddisk_facts, azure_rm_manageddisk_info - the deprecated modules have been removed. Use azure.azcollection.azure_rm_manageddisk_info instead (https://github.com/ansible-collections/community.azure/pull/31)." msgstr "azure_rm_managed_disk_facts、azure_rm_manageddisk_facts、azure_rm_manageddisk_info - 非推奨のモジュールが削除されました。代わりに azure.azcollection.azure_rm_manageddisk_info を使用します (https://github.com/ansible-collections/community.azure/pull/31)。" -#: ../../rst/porting_guides/porting_guide_7.rst:375 +#: ../../rst/porting_guides/porting_guide_7.rst:816 msgid "azure_rm_mariadbconfiguration_facts, azure_rm_mariadbconfiguration_info - the deprecated modules have been removed. Use azure.azcollection.azure_rm_mariadbconfiguration_info instead (https://github.com/ansible-collections/community.azure/pull/31)." msgstr "azure_rm_mariadbconfiguration_facts、azure_rm_mariadbconfiguration_info - 非推奨のモジュールが削除されました。代わりに azure.azcollection.azure_rm_mariadbconfiguration_info を使用します (https://github.com/ansible-collections/community.azure/pull/31)。" -#: ../../rst/porting_guides/porting_guide_7.rst:376 +#: ../../rst/porting_guides/porting_guide_7.rst:817 msgid "azure_rm_mariadbdatabase_facts, azure_rm_mariadbdatabase_info - the deprecated modules have been removed. Use azure.azcollection.azure_rm_mariadbdatabase_info instead (https://github.com/ansible-collections/community.azure/pull/31)." msgstr "azure_rm_mariadbdatabase_facts、azure_rm_mariadbdatabase_info - 非推奨のモジュールが削除されました。代わりに azure.azcollection.azure_rm_mariadbdatabase_info を使用します (https://github.com/ansible-collections/community.azure/pull/31)。" -#: ../../rst/porting_guides/porting_guide_7.rst:377 +#: ../../rst/porting_guides/porting_guide_7.rst:818 msgid "azure_rm_mariadbfirewallrule_facts, azure_rm_mariadbfirewallrule_info - the deprecated modules have been removed. Use azure.azcollection.azure_rm_mariadbfirewallrule_info instead (https://github.com/ansible-collections/community.azure/pull/31)." msgstr "azure_rm_mariadbfirewallrule_facts、azure_rm_mariadbfirewallrule_info - 非推奨のモジュールが削除されました。代わりに azure.azcollection.azure_rm_mariadbfirewallrule_info を使用します (https://github.com/ansible-collections/community.azure/pull/31)。" -#: ../../rst/porting_guides/porting_guide_7.rst:378 +#: ../../rst/porting_guides/porting_guide_7.rst:819 msgid "azure_rm_mariadbserver_facts, azure_rm_mariadbserver_info - the deprecated modules have been removed. Use azure.azcollection.azure_rm_mariadbserver_info instead (https://github.com/ansible-collections/community.azure/pull/31)." msgstr "azure_rm_mariadbserver_facts、azure_rm_mariadbserver_info - 非推奨のモジュールが削除されました。代わりに azure.azcollection.azure_rm_mariadbserver_info を使用します (https://github.com/ansible-collections/community.azure/pull/31)。" -#: ../../rst/porting_guides/porting_guide_7.rst:379 +#: ../../rst/porting_guides/porting_guide_7.rst:820 msgid "azure_rm_mysqlconfiguration_facts, azure_rm_mysqlconfiguration_info - the deprecated modules have been removed. Use azure.azcollection.azure_rm_mysqlconfiguration_info instead (https://github.com/ansible-collections/community.azure/pull/31)." msgstr "azure_rm_mysqlconfiguration_facts、azure_rm_mysqlconfiguration_info - 非推奨のモジュールが削除されました。代わりに azure.azcollection.azure_rm_mysqlconfiguration_info を使用します (https://github.com/ansible-collections/community.azure/pull/31)。" -#: ../../rst/porting_guides/porting_guide_7.rst:380 +#: ../../rst/porting_guides/porting_guide_7.rst:821 msgid "azure_rm_mysqldatabase_facts, azure_rm_mysqldatabase_info - the deprecated modules have been removed. Use azure.azcollection.azure_rm_mysqldatabase_info instead (https://github.com/ansible-collections/community.azure/pull/31)." msgstr "azure_rm_mysqldatabase_facts、azure_rm_mysqldatabase_info - 非推奨のモジュールが削除されました。代わりに azure.azcollection.azure_rm_mysqldatabase_info を使用します (https://github.com/ansible-collections/community.azure/pull/31)。" -#: ../../rst/porting_guides/porting_guide_7.rst:381 +#: ../../rst/porting_guides/porting_guide_7.rst:822 msgid "azure_rm_mysqlfirewallrule_facts, azure_rm_mysqlfirewallrule_info - the deprecated modules have been removed. Use azure.azcollection.azure_rm_mysqlfirewallrule_info instead (https://github.com/ansible-collections/community.azure/pull/31)." msgstr "azure_rm_mysqlfirewallrule_facts、azure_rm_mysqlfirewallrule_info - 非推奨のモジュールが削除されました。代わりに azure.azcollection.azure_rm_mysqlfirewallrule_info を使用します (https://github.com/ansible-collections/community.azure/pull/31)。" -#: ../../rst/porting_guides/porting_guide_7.rst:382 +#: ../../rst/porting_guides/porting_guide_7.rst:823 msgid "azure_rm_mysqlserver_facts, azure_rm_mysqlserver_info - the deprecated modules have been removed. Use azure.azcollection.azure_rm_mysqlserver_info instead (https://github.com/ansible-collections/community.azure/pull/31)." msgstr "azure_rm_mysqlserver_facts、azure_rm_mysqlserver_info - 非推奨のモジュールが削除されました。代わりに azure.azcollection.azure_rm_mysqlserver_info を使用します (https://github.com/ansible-collections/community.azure/pull/31)。" -#: ../../rst/porting_guides/porting_guide_7.rst:383 +#: ../../rst/porting_guides/porting_guide_7.rst:824 msgid "azure_rm_networkinterface_facts, azure_rm_networkinterface_info - the deprecated modules have been removed. Use azure.azcollection.azure_rm_networkinterface_info instead (https://github.com/ansible-collections/community.azure/pull/31)." msgstr "azure_rm_networkinterface_facts、azure_rm_networkinterface_info - 非推奨のモジュールが削除されました。代わりに azure.azcollection.azure_rm_networkinterface_info を使用します (https://github.com/ansible-collections/community.azure/pull/31)。" -#: ../../rst/porting_guides/porting_guide_7.rst:384 +#: ../../rst/porting_guides/porting_guide_7.rst:825 msgid "azure_rm_postgresqlconfiguration_facts, azure_rm_postgresqlconfiguration_info - the deprecated modules have been removed. Use azure.azcollection.azure_rm_postgresqlconfiguration_info instead (https://github.com/ansible-collections/community.azure/pull/31)." msgstr "azure_rm_postgresqlconfiguration_facts、azure_rm_postgresqlconfiguration_info - 非推奨のモジュールが削除されました。代わりに azure.azcollection.azure_rm_postgresqlconfiguration_info を使用します (https://github.com/ansible-collections/community.azure/pull/31)。" -#: ../../rst/porting_guides/porting_guide_7.rst:385 +#: ../../rst/porting_guides/porting_guide_7.rst:826 msgid "azure_rm_postgresqldatabase_facts, azure_rm_postgresqldatabase_info - the deprecated modules have been removed. Use azure.azcollection.azure_rm_postgresqldatabase_info instead (https://github.com/ansible-collections/community.azure/pull/31)." msgstr "azure_rm_postgresqldatabase_facts、azure_rm_postgresqldatabase_info - 非推奨のモジュールが削除されました。代わりに azure.azcollection.azure_rm_postgresqldatabase_info を使用します (https://github.com/ansible-collections/community.azure/pull/31)。" -#: ../../rst/porting_guides/porting_guide_7.rst:386 +#: ../../rst/porting_guides/porting_guide_7.rst:827 msgid "azure_rm_postgresqlfirewallrule_facts, azure_rm_postgresqlfirewallrule_info - the deprecated modules have been removed. Use azure.azcollection.azure_rm_postgresqlfirewallrule_info instead (https://github.com/ansible-collections/community.azure/pull/31)." msgstr "azure_rm_postgresqlfirewallrule_facts、azure_rm_postgresqlfirewallrule_info - 非推奨のモジュールが削除されました。代わりに azure.azcollection.azure_rm_postgresqlfirewallrule_info を使用します (https://github.com/ansible-collections/community.azure/pull/31)。" -#: ../../rst/porting_guides/porting_guide_7.rst:387 +#: ../../rst/porting_guides/porting_guide_7.rst:828 msgid "azure_rm_postgresqlserver_facts, azure_rm_postgresqlserver_info - the deprecated modules have been removed. Use azure.azcollection.azure_rm_postgresqlserver_info instead (https://github.com/ansible-collections/community.azure/pull/31)." msgstr "azure_rm_postgresqlserver_facts、azure_rm_postgresqlserver_info - 非推奨のモジュールが削除されました。代わりに azure.azcollection.azure_rm_postgresqlserver_info を使用します (https://github.com/ansible-collections/community.azure/pull/31)。" -#: ../../rst/porting_guides/porting_guide_7.rst:388 +#: ../../rst/porting_guides/porting_guide_7.rst:829 msgid "azure_rm_publicipaddress_facts, azure_rm_publicipaddress_info - the deprecated modules have been removed. Use azure.azcollection.azure_rm_publicipaddress_info instead (https://github.com/ansible-collections/community.azure/pull/31)." msgstr "azure_rm_publicipaddress_facts、azure_rm_publicipaddress_info - 非推奨のモジュールが削除されました。代わりに azure.azcollection.azure_rm_publicipaddress_info を使用します (https://github.com/ansible-collections/community.azure/pull/31)。" -#: ../../rst/porting_guides/porting_guide_7.rst:389 +#: ../../rst/porting_guides/porting_guide_7.rst:830 msgid "azure_rm_rediscache_facts, azure_rm_rediscache_info - the deprecated modules have been removed. Use azure.azcollection.azure_rm_rediscache_info instead (https://github.com/ansible-collections/community.azure/pull/31)." msgstr "azure_rm_rediscache_facts、azure_rm_rediscache_info - 非推奨のモジュールが削除されました。代わりに azure.azcollection.azure_rm_rediscache_info を使用します (https://github.com/ansible-collections/community.azure/pull/31)。" -#: ../../rst/porting_guides/porting_guide_7.rst:390 +#: ../../rst/porting_guides/porting_guide_7.rst:831 msgid "azure_rm_resource_facts, azure_rm_resource_info - the deprecated modules have been removed. Use azure.azcollection.azure_rm_resource_info instead (https://github.com/ansible-collections/community.azure/pull/31)." msgstr "azure_rm_resource_facts、azure_rm_resource_info - 非推奨のモジュールが削除されました。代わりに azure.azcollection.azure_rm_resource_info を使用します (https://github.com/ansible-collections/community.azure/pull/31)。" -#: ../../rst/porting_guides/porting_guide_7.rst:391 +#: ../../rst/porting_guides/porting_guide_7.rst:832 msgid "azure_rm_resourcegroup_facts, azure_rm_resourcegroup_info - the deprecated modules have been removed. Use azure.azcollection.azure_rm_resourcegroup_info instead (https://github.com/ansible-collections/community.azure/pull/31)." msgstr "azure_rm_resourcegroup_facts、azure_rm_resourcegroup_info - 非推奨のモジュールが削除されました。代わりに azure.azcollection.azure_rm_resourcegroup_info を使用します (https://github.com/ansible-collections/community.azure/pull/31)。" -#: ../../rst/porting_guides/porting_guide_7.rst:392 +#: ../../rst/porting_guides/porting_guide_7.rst:833 msgid "azure_rm_roleassignment_facts, azure_rm_roleassignment_info - the deprecated modules have been removed. Use azure.azcollection.azure_rm_roleassignment_info instead (https://github.com/ansible-collections/community.azure/pull/31)." msgstr "azure_rm_roleassignment_facts、azure_rm_roleassignment_info - 非推奨のモジュールが削除されました。代わりに azure.azcollection.azure_rm_roleassignment_info を使用します (https://github.com/ansible-collections/community.azure/pull/31)。" -#: ../../rst/porting_guides/porting_guide_7.rst:393 +#: ../../rst/porting_guides/porting_guide_7.rst:834 msgid "azure_rm_roledefinition_facts, azure_rm_roledefinition_info - the deprecated modules have been removed. Use azure.azcollection.azure_rm_roledefinition_info instead (https://github.com/ansible-collections/community.azure/pull/31)." msgstr "azure_rm_roledefinition_facts、azure_rm_roledefinition_info - 非推奨のモジュールが削除されました。代わりに azure.azcollection.azure_rm_roledefinition_info を使用します (https://github.com/ansible-collections/community.azure/pull/31)。" -#: ../../rst/porting_guides/porting_guide_7.rst:394 +#: ../../rst/porting_guides/porting_guide_7.rst:835 msgid "azure_rm_routetable_facts, azure_rm_routetable_info - the deprecated modules have been removed. Use azure.azcollection.azure_rm_routetable_info instead (https://github.com/ansible-collections/community.azure/pull/31)." msgstr "azure_rm_routetable_facts、azure_rm_routetable_info - 非推奨のモジュールが削除されました。代わりに azure.azcollection.azure_rm_routetable_info を使用します (https://github.com/ansible-collections/community.azure/pull/31)。" -#: ../../rst/porting_guides/porting_guide_7.rst:395 +#: ../../rst/porting_guides/porting_guide_7.rst:836 msgid "azure_rm_securitygroup_facts, azure_rm_securitygroup_info - the deprecated modules have been removed. Use azure.azcollection.azure_rm_securitygroup_info instead (https://github.com/ansible-collections/community.azure/pull/31)." msgstr "azure_rm_securitygroup_facts、azure_rm_securitygroup_info - 非推奨のモジュールが削除されました。代わりに azure.azcollection.azure_rm_securitygroup_info を使用します (https://github.com/ansible-collections/community.azure/pull/31)。" -#: ../../rst/porting_guides/porting_guide_7.rst:396 +#: ../../rst/porting_guides/porting_guide_7.rst:837 msgid "azure_rm_servicebus_facts, azure_rm_servicebus_info - the deprecated modules have been removed. Use azure.azcollection.azure_rm_servicebus_info instead (https://github.com/ansible-collections/community.azure/pull/31)." msgstr "azure_rm_servicebus_facts、azure_rm_servicebus_info - 非推奨のモジュールが削除されました。代わりに azure.azcollection.azure_rm_servicebus_info を使用します (https://github.com/ansible-collections/community.azure/pull/31)。" -#: ../../rst/porting_guides/porting_guide_7.rst:397 +#: ../../rst/porting_guides/porting_guide_7.rst:838 msgid "azure_rm_sqldatabase_facts, azure_rm_sqldatabase_info - the deprecated modules have been removed. Use azure.azcollection.azure_rm_sqldatabase_info instead (https://github.com/ansible-collections/community.azure/pull/31)." msgstr "azure_rm_sqldatabase_facts、azure_rm_sqldatabase_info - 非推奨のモジュールが削除されました。代わりに azure.azcollection.azure_rm_sqldatabase_info を使用します (https://github.com/ansible-collections/community.azure/pull/31)。" -#: ../../rst/porting_guides/porting_guide_7.rst:398 +#: ../../rst/porting_guides/porting_guide_7.rst:839 msgid "azure_rm_sqlfirewallrule_facts, azure_rm_sqlfirewallrule_info - the deprecated modules have been removed. Use azure.azcollection.azure_rm_sqlfirewallrule_info instead (https://github.com/ansible-collections/community.azure/pull/31)." msgstr "azure_rm_sqlfirewallrule_facts、azure_rm_sqlfirewallrule_info - 非推奨のモジュールが削除されました。代わりに azure.azcollection.azure_rm_sqlfirewallrule_info を使用します (https://github.com/ansible-collections/community.azure/pull/31)。" -#: ../../rst/porting_guides/porting_guide_7.rst:399 +#: ../../rst/porting_guides/porting_guide_7.rst:840 msgid "azure_rm_sqlserver_facts, azure_rm_sqlserver_info - the deprecated modules have been removed. Use azure.azcollection.azure_rm_sqlserver_info instead (https://github.com/ansible-collections/community.azure/pull/31)." msgstr "azure_rm_sqlserver_facts、azure_rm_sqlserver_info - 非推奨のモジュールが削除されました。代わりに azure.azcollection.azure_rm_sqlserver_info を使用します (https://github.com/ansible-collections/community.azure/pull/31)。" -#: ../../rst/porting_guides/porting_guide_7.rst:400 +#: ../../rst/porting_guides/porting_guide_7.rst:841 msgid "azure_rm_storageaccount_facts, azure_rm_storageaccount_info - the deprecated modules have been removed. Use azure.azcollection.azure_rm_storageaccount_info instead (https://github.com/ansible-collections/community.azure/pull/31)." msgstr "azure_rm_storageaccount_facts、azure_rm_storageaccount_info - 非推奨のモジュールが削除されました。代わりに azure.azcollection.azure_rm_storageaccount_info を使用します (https://github.com/ansible-collections/community.azure/pull/31)。" -#: ../../rst/porting_guides/porting_guide_7.rst:401 +#: ../../rst/porting_guides/porting_guide_7.rst:842 msgid "azure_rm_subnet_facts, azure_rm_subnet_info - the deprecated modules have been removed. Use azure.azcollection.azure_rm_subnet_info instead (https://github.com/ansible-collections/community.azure/pull/31)." msgstr "azure_rm_subnet_facts、azure_rm_subnet_info - 非推奨のモジュールが削除されました。代わりに azure.azcollection.azure_rm_subnet_info を使用します (https://github.com/ansible-collections/community.azure/pull/31)。" -#: ../../rst/porting_guides/porting_guide_7.rst:402 +#: ../../rst/porting_guides/porting_guide_7.rst:843 msgid "azure_rm_trafficmanagerendpoint_facts, azure_rm_trafficmanagerendpoint_info - the deprecated modules have been removed. Use azure.azcollection.azure_rm_trafficmanagerendpoint_info instead (https://github.com/ansible-collections/community.azure/pull/31)." msgstr "azure_rm_trafficmanagerendpoint_facts、azure_rm_trafficmanagerendpoint_info - 非推奨のモジュールが削除されました。代わりに azure.azcollection.azure_rm_trafficmanagerendpoint_info を使用します (https://github.com/ansible-collections/community.azure/pull/31)。" -#: ../../rst/porting_guides/porting_guide_7.rst:403 +#: ../../rst/porting_guides/porting_guide_7.rst:844 msgid "azure_rm_trafficmanagerprofile_facts, azure_rm_trafficmanagerprofile_info - the deprecated modules have been removed. Use azure.azcollection.azure_rm_trafficmanagerprofile_info instead (https://github.com/ansible-collections/community.azure/pull/31)." msgstr "azure_rm_trafficmanagerprofile_facts、azure_rm_trafficmanagerprofile_info - 非推奨のモジュールが削除されました。代わりに azure.azcollection.azure_rm_trafficmanagerprofile_info を使用します (https://github.com/ansible-collections/community.azure/pull/31)。" -#: ../../rst/porting_guides/porting_guide_7.rst:404 +#: ../../rst/porting_guides/porting_guide_7.rst:845 msgid "azure_rm_virtualmachine_extension, azure_rm_virtualmachineextension - the deprecated modules have been removed. Use azure.azcollection.azure_rm_virtualmachineextension instead (https://github.com/ansible-collections/community.azure/pull/31)." msgstr "azure_rm_virtualmachine_extension、azure_rm_virtualmachineextension - 非推奨のモジュールが削除されました。代わりに azure.azcollection.azure_rm_virtualmachineextension を使用します (https://github.com/ansible-collections/community.azure/pull/31)。" -#: ../../rst/porting_guides/porting_guide_7.rst:405 +#: ../../rst/porting_guides/porting_guide_7.rst:846 msgid "azure_rm_virtualmachine_facts, azure_rm_virtualmachine_info - the deprecated modules have been removed. Use azure.azcollection.azure_rm_virtualmachine_info instead (https://github.com/ansible-collections/community.azure/pull/31)." msgstr "azure_rm_virtualmachine_facts、azure_rm_virtualmachine_info - 非推奨のモジュールが削除されました。代わりに azure.azcollection.azure_rm_virtualmachine_info を使用します (https://github.com/ansible-collections/community.azure/pull/31)。" -#: ../../rst/porting_guides/porting_guide_7.rst:406 +#: ../../rst/porting_guides/porting_guide_7.rst:847 msgid "azure_rm_virtualmachine_scaleset, azure_rm_virtualmachinescaleset - the deprecated modules have been removed. Use azure.azcollection.azure_rm_virtualmachinescaleset instead (https://github.com/ansible-collections/community.azure/pull/31)." msgstr "azure_rm_virtualmachine_scaleset、azure_rm_virtualmachinescaleset - 非推奨のモジュールが削除されました。代わりに azure.azcollection.azure_rm_virtualmachinescaleset を使用します (https://github.com/ansible-collections/community.azure/pull/31)。" -#: ../../rst/porting_guides/porting_guide_7.rst:407 +#: ../../rst/porting_guides/porting_guide_7.rst:848 msgid "azure_rm_virtualmachine_scaleset_facts, azure_rm_virtualmachinescaleset_facts, azure_rm_virtualmachinescaleset_info - the deprecated modules have been removed. Use azure.azcollection.azure_rm_virtualmachinescaleset_info instead (https://github.com/ansible-collections/community.azure/pull/31)." msgstr "azure_rm_virtualmachine_scaleset_facts、azure_rm_virtualmachinescaleset_facts、azure_rm_virtualmachinescaleset_info - 非推奨のモジュールが削除されました。代わりに azure.azcollection.azure_rm_virtualmachinescaleset_info instead を使用してください (https://github.com/ansible-collections/community.azure/pull/31)。" -#: ../../rst/porting_guides/porting_guide_7.rst:408 +#: ../../rst/porting_guides/porting_guide_7.rst:849 msgid "azure_rm_virtualmachineextension_facts, azure_rm_virtualmachineextension_info - the deprecated modules have been removed. Use azure.azcollection.azure_rm_virtualmachineextension_info instead (https://github.com/ansible-collections/community.azure/pull/31)." msgstr "azure_rm_virtualmachineextension_facts、azure_rm_virtualmachineextension_info - 非推奨のモジュールが削除されました。代わりに azure.azcollection.azure_rm_virtualmachineextension_info を使用してください (https://github.com/ansible-collections/community.azure/pull/31)。" -#: ../../rst/porting_guides/porting_guide_7.rst:409 +#: ../../rst/porting_guides/porting_guide_7.rst:850 msgid "azure_rm_virtualmachineimage_facts, azure_rm_virtualmachineimage_info - the deprecated modules have been removed. Use azure.azcollection.azure_rm_virtualmachineimage_info instead (https://github.com/ansible-collections/community.azure/pull/31)." msgstr "azure_rm_virtualmachineimage_facts、azure_rm_virtualmachineimage_info - 非推奨のモジュールが削除されました。代わりに azure.azcollection.azure_rm_virtualmachineimage_info を使用してください (https://github.com/ansible-collections/community.azure/pull/31)。" -#: ../../rst/porting_guides/porting_guide_7.rst:410 +#: ../../rst/porting_guides/porting_guide_7.rst:851 msgid "azure_rm_virtualmachinescalesetextension_facts, azure_rm_virtualmachinescalesetextension_info - the deprecated modules have been removed. Use azure.azcollection.azure_rm_virtualmachinescalesetextension_info instead (https://github.com/ansible-collections/community.azure/pull/31)." msgstr "azure_rm_virtualmachinescalesetextension_facts、azure_rm_virtualmachinescalesetextension_info - 非推奨のモジュールが削除されました。代わりに azure.azcollection.azure_rm_virtualmachinescalesetextension_info を使用してください (https://github.com/ansible-collections/community.azure/pull/31)。" -#: ../../rst/porting_guides/porting_guide_7.rst:411 +#: ../../rst/porting_guides/porting_guide_7.rst:852 msgid "azure_rm_virtualmachinescalesetinstance_facts, azure_rm_virtualmachinescalesetinstance_info - the deprecated modules have been removed. Use azure.azcollection.azure_rm_virtualmachinescalesetinstance_info instead (https://github.com/ansible-collections/community.azure/pull/31)." msgstr "azure_rm_virtualmachinescalesetinstance_facts、azure_rm_virtualmachinescalesetinstance_info - 非推奨のモジュールが削除されました。代わりに azure.azcollection.azure_rm_virtualmachinescalesetinstance_info を使用してください (https://github.com/ansible-collections/community.azure/pull/31)。" -#: ../../rst/porting_guides/porting_guide_7.rst:412 +#: ../../rst/porting_guides/porting_guide_7.rst:853 msgid "azure_rm_virtualnetwork_facts, azure_rm_virtualnetwork_info - the deprecated modules have been removed. Use azure.azcollection.azure_rm_virtualnetwork_info instead (https://github.com/ansible-collections/community.azure/pull/31)." msgstr "azure_rm_virtualnetwork_facts、azure_rm_virtualnetwork_info - 非推奨のモジュールが削除されました。代わりに azure.azcollection.azure_rm_virtualnetwork_info を使用してください (https://github.com/ansible-collections/community.azure/pull/31)。" -#: ../../rst/porting_guides/porting_guide_7.rst:413 +#: ../../rst/porting_guides/porting_guide_7.rst:854 msgid "azure_rm_virtualnetworkpeering_facts, azure_rm_virtualnetworkpeering_info - the deprecated modules have been removed. Use azure.azcollection.azure_rm_virtualnetworkpeering_info instead (https://github.com/ansible-collections/community.azure/pull/31)." msgstr "azure_rm_virtualnetworkpeering_facts, azure_rm_virtualnetworkpeering_info - 非推奨のモジュールが削除されました。代わりに azure.azcollection.azure_rm_virtualnetworkpeering_info を使用してください (https://github.com/ansible-collections/community.azure/pull/31)。" -#: ../../rst/porting_guides/porting_guide_7.rst:414 +#: ../../rst/porting_guides/porting_guide_7.rst:855 msgid "azure_rm_webapp_facts, azure_rm_webapp_info - the deprecated modules have been removed. Use azure.azcollection.azure_rm_webapp_info instead (https://github.com/ansible-collections/community.azure/pull/31)." msgstr "azure_rm_webapp_facts, azure_rm_webapp_info - 非推奨のモジュールが削除されました。代わりに azure.azcollection.azure_rm_webapp_info を使用してください (https://github.com/ansible-collections/community.azure/pull/31)。" -#: ../../rst/porting_guides/porting_guide_7.rst:419 +#: ../../rst/porting_guides/porting_guide_7.rst:860 msgid "Execution Environments built with community.docker no longer include docker-compose < 2.0.0. If you need to use it with the ``docker_compose`` module, please install that requirement manually (https://github.com/ansible-collections/community.docker/pull/400)." msgstr "community.docker でビルドされた実行環境には、docker-compose < 2.0.0 が含まれなくなりました。``docker_compose`` モジュールで使用する必要がある場合は、その要件を手動でインストールしてください (https://github.com/ansible-collections/community.docker/pull/400)。" -#: ../../rst/porting_guides/porting_guide_7.rst:420 +#: ../../rst/porting_guides/porting_guide_7.rst:861 msgid "Support for Ansible 2.9 and ansible-base 2.10 has been removed. If you need support for Ansible 2.9 or ansible-base 2.10, please use community.docker 2.x.y (https://github.com/ansible-collections/community.docker/pull/400)." msgstr "Ansible 2.9 および ansible-base 2.10 のサポートが削除されました。Ansible 2.9 または ansible-base 2.10 のサポートが必要な場合は、community.docker 2.x.y (https://github.com/ansible-collections/community.docker/pull/400) を使用してください。" -#: ../../rst/porting_guides/porting_guide_7.rst:421 +#: ../../rst/porting_guides/porting_guide_7.rst:862 msgid "Support for Docker API versions 1.20 to 1.24 has been removed. If you need support for these API versions, please use community.docker 2.x.y (https://github.com/ansible-collections/community.docker/pull/400)." msgstr "Docker API バージョン 1.20 から 1.24 のサポートが削除されました。これらの API バージョンのサポートが必要な場合は、community.docker 2.x.y (https://github.com/ansible-collections/community.docker/pull/400) を使用してください。" -#: ../../rst/porting_guides/porting_guide_7.rst:422 +#: ../../rst/porting_guides/porting_guide_7.rst:863 msgid "Support for Python 2.6 has been removed. If you need support for Python 2.6, please use community.docker 2.x.y (https://github.com/ansible-collections/community.docker/pull/400)." msgstr "Python 2.6 のサポートが削除されました。Python 2.6 のサポートが必要な場合は、community.docker 2.x.y (https://github.com/ansible-collections/community.docker/pull/400) を使用してください。" -#: ../../rst/porting_guides/porting_guide_7.rst:423 +#: ../../rst/porting_guides/porting_guide_7.rst:864 msgid "Various modules - the default of ``tls_hostname`` (``localhost``) has been removed. If you want to continue using ``localhost``, you need to specify it explicitly (https://github.com/ansible-collections/community.docker/pull/363)." msgstr "さまざまなモジュール - ``tls_hostname`` (``localhost``) のデフォルトが削除されました。``localhost`` を引き続き使用する場合は、明示的に指定する必要があります (https://github.com/ansible-collections/community.docker/pull/363)。" -#: ../../rst/porting_guides/porting_guide_7.rst:424 +#: ../../rst/porting_guides/porting_guide_7.rst:865 msgid "docker_container - the ``all`` value is no longer allowed in ``published_ports``. Use ``publish_all_ports=true`` instead (https://github.com/ansible-collections/community.docker/pull/399)." msgstr "docker_container - ``all`` の値は ``published_ports`` で許可されなくなりました。代わりに ``publish_all_ports=true`` を使用してください (https://github.com/ansible-collections/community.docker/pull/399)。" -#: ../../rst/porting_guides/porting_guide_7.rst:425 +#: ../../rst/porting_guides/porting_guide_7.rst:866 msgid "docker_container - the default of ``command_handling`` was changed from ``compatibility`` to ``correct``. Older versions were warning for every invocation of the module when this would result in a change of behavior (https://github.com/ansible-collections/community.docker/pull/399)." msgstr "docker_container - ``command_handling`` のデフォルトが ``compatibility`` から ``correct`` に変更されました。古いバージョンでは、動作の変更につながる場合、モジュールの呼び出しごとに警告が表示されていました (https://github.com/ansible-collections/community.docker/pull/399)。" -#: ../../rst/porting_guides/porting_guide_7.rst:426 +#: ../../rst/porting_guides/porting_guide_7.rst:867 msgid "docker_stack - the return values ``out`` and ``err`` have been removed. Use ``stdout`` and ``stderr`` instead (https://github.com/ansible-collections/community.docker/pull/363)." msgstr "docker_stack - ``out`` と``err`` の戻り値は削除されました。代わりに ``stdout`` と ``stderr`` を使用してください (https://github.com/ansible-collections/community.docker/pull/363)。" -#: ../../rst/porting_guides/porting_guide_7.rst:436 +#: ../../rst/porting_guides/porting_guide_7.rst:872 +msgid "bitbucket* modules - ``username`` is no longer an alias of ``workspace``, but of ``user`` (https://github.com/ansible-collections/community.general/pull/5326)." +msgstr "bitbucket* modules - ``username`` は、``workspace`` のエイリアスではなくなり、``user`` のエイリアスとなりました (https://github.com/ansible-collections/community.general/pull/5326)。" + +#: ../../rst/porting_guides/porting_guide_7.rst:873 +msgid "gem - the default of the ``norc`` option changed from ``false`` to ``true`` (https://github.com/ansible-collections/community.general/pull/5326)." +msgstr "gem - ``norc`` オプションのデフォルトは、``false`` から ``true`` に変更されました (https://github.com/ansible-collections/community.general/pull/5326)。" + +#: ../../rst/porting_guides/porting_guide_7.rst:874 +msgid "gitlab_group_members - ``gitlab_group`` must now always contain the full path, and no longer just the name or path (https://github.com/ansible-collections/community.general/pull/5326)." +msgstr "gitlab_group_members - ``gitlab_group`` は、単に名前とパスだけでなく、今後は常にフルパスを含む必要があります (https://github.com/ansible-collections/community.general/pull/5326)。" + +#: ../../rst/porting_guides/porting_guide_7.rst:875 +msgid "keycloak_authentication - the return value ``flow`` has been removed. Use ``end_state`` instead (https://github.com/ansible-collections/community.general/pull/5326)." +msgstr "keycloak_authentication - 戻り値 ``flow`` は削除されました。代わりに ``end_state`` を使用してください (https://github.com/ansible-collections/community.general/pull/5326)。" + +#: ../../rst/porting_guides/porting_guide_7.rst:876 +msgid "keycloak_group - the return value ``group`` has been removed. Use ``end_state`` instead (https://github.com/ansible-collections/community.general/pull/5326)." +msgstr "keycloak_group - 戻り値 ``group`` は削除されました。代わりに ``end_state`` を使用してください(https://github.com/ansible-collections/community.general/pull/5326)。" + +#: ../../rst/porting_guides/porting_guide_7.rst:877 +msgid "lxd_container - the default of the ``ignore_volatile_options`` option changed from ``true`` to ``false`` (https://github.com/ansible-collections/community.general/pull/5326)." +msgstr "lxd_container - ``ignore_volatile_options`` オプションのデフォルトは、``true`` から ``false`` に変更されました (https://github.com/ansible-collections/community.general/pull/5326)。" + +#: ../../rst/porting_guides/porting_guide_7.rst:878 +msgid "mail callback plugin - the ``sender`` option is now required (https://github.com/ansible-collections/community.general/pull/5326)." +msgstr "mail callback plugin - ``sender`` オプションが必要になりました (https://github.com/ansible-collections/community.general/pull/5326)。" + +#: ../../rst/porting_guides/porting_guide_7.rst:879 +msgid "module_helper module utils - remove the ``VarDict`` attribute from ``ModuleHelper``. Import ``VarDict`` from ``ansible_collections.community.general.plugins.module_utils.mh.mixins.vars`` instead (https://github.com/ansible-collections/community.general/pull/5326)." +msgstr "module_helper module utils - ``ModuleHelper`` から ``VarDict`` 属性を削除します。代わりに ``ansible_collections.community.general.plugins.module_utils.mh.mixins.vars`` から ``VarDict`` をインポートします (https://github.com/ansible-collections/community.general/pull/5326)。" + +#: ../../rst/porting_guides/porting_guide_7.rst:880 +msgid "proxmox inventory plugin - the default of the ``want_proxmox_nodes_ansible_host`` option changed from ``true`` to ``false`` (https://github.com/ansible-collections/community.general/pull/5326)." +msgstr "proxmox inventory plugin - ``want_proxmox_nodes_ansible_host`` オプションのデフォルトは、``true`` から ``false`` に変更されたました (https://github.com/ansible-collections/community.general/pull/5326)。" + +#: ../../rst/porting_guides/porting_guide_7.rst:881 +msgid "vmadm - the ``debug`` option has been removed. It was not used anyway (https://github.com/ansible-collections/community.general/pull/5326)." +msgstr "vmadm - ``debug``オプションが削除されました。これは使用されていませんでした (https://github.com/ansible-collections/community.general/pull/5326)。" + +#: ../../rst/porting_guides/porting_guide_7.rst:902 +msgid "vca_fw - The deprecated module ``vca_fw`` has been removed." +msgstr "vca_fw - 非推奨のモジュール ``vca_fw`` は削除されました。" + +#: ../../rst/porting_guides/porting_guide_7.rst:903 +msgid "vca_nat - The deprecated module ``vca_nat`` has been removed." +msgstr "vca_nat - 非推奨のモジュール``vca_nat`` は削除されました。" + +#: ../../rst/porting_guides/porting_guide_7.rst:904 +msgid "vca_vapp - The deprecated module ``vca_vapp`` has been removed." +msgstr "vca_vapp - 非推奨のモジュール``vca_vapp`` は削除されました。" + +#: ../../rst/porting_guides/porting_guide_7.rst:905 +msgid "vmware_dns_config - The deprecated module ``vmware_dns_config`` has been removed, you can use ``vmware_host_dns`` instead." +msgstr "vmware_dns_config - 非推奨のモジュール ``vmware_dns_config`` は削除されました。代わりに ``vmware_host_dns`` を使用することができます。" + +#: ../../rst/porting_guides/porting_guide_7.rst:906 +msgid "vmware_guest_network - The deprecated parameter ``networks`` has been removed, use loops to handle multiple interfaces (https://github.com/ansible-collections/community.vmware/pull/1459)." +msgstr "vmware_guest_network - 非推奨のパラメーター ``networks`` は削除されました。複数のインターフェイスを処理する場合はループを使用します (https://github.com/ansible-collections/community.vmware/pull/1459)。" + +#: ../../rst/porting_guides/porting_guide_7.rst:907 +msgid "vmware_guest_vnc - The deprecated module ``vmware_guest_vnc`` has been removed. The VNC support has been dropped with vSphere 7 and later (https://github.com/ansible-collections/community.vmware/pull/1454)." +msgstr "vmware_guest_vnc - 非推奨のモジュール ``vmware_guest_vnc`` は削除されました。VNC のサポートは vSphere 7 以降で停止されました (https://github.com/ansible-collections/community.vmware/pull/1454)。" + +#: ../../rst/porting_guides/porting_guide_7.rst:908 +msgid "vmware_host_firewall_manager - The module doesn't accept a list for ``allowed_hosts`` anymore, use a dict instead. Additionally, ``all_ip`` is now a required sub-option of ``allowed_hosts`` (https://github.com/ansible-collections/community.vmware/pull/1463)." +msgstr "vmware_host_firewall_manager - このモジュールは ``allowed_hosts`` のリストを受け付けなくなりました。代わりに dict を使ってください。さらに、``all_ip`` は ``allowed_hosts`` の必須サブオプションとなりました (https://github.com/ansible-collections/community.vmware/pull/1463)。" + +#: ../../rst/porting_guides/porting_guide_7.rst:909 +msgid "vsphere_copy - The deprecated parameters ``host`` and ``login`` have been removed. Use ``hostname`` and ``username`` instead (https://github.com/ansible-collections/community.vmware/pull/1456)." +msgstr "vsphere_copy - 非推奨のパラメーター ``host`` および ``login`` は削除されました。代わりに ``hostname`` と ``username`` を使用してください (https://github.com/ansible-collections/community.vmware/pull/1456)。" + +#: ../../rst/porting_guides/porting_guide_7.rst:914 +msgid "Remove following deprecated Junos Modules." +msgstr "以下の非推奨の Junos モジュールを削除します。" + +#: ../../rst/porting_guides/porting_guide_7.rst:915 +msgid "junos_interface" +msgstr "junos_interface" + +#: ../../rst/porting_guides/porting_guide_7.rst:916 +msgid "junos_l2_interface" +msgstr "junos_l2_interface" + +#: ../../rst/porting_guides/porting_guide_7.rst:917 +msgid "junos_l3_interface" +msgstr "junos_l3_interface" + +#: ../../rst/porting_guides/porting_guide_7.rst:918 +msgid "junos_linkagg" +msgstr "junos_linkagg" + +#: ../../rst/porting_guides/porting_guide_7.rst:919 +msgid "junos_lldp" +msgstr "junos_lldp" + +#: ../../rst/porting_guides/porting_guide_7.rst:920 +msgid "junos_lldp_interface" +msgstr "junos_lldp_interface" + +#: ../../rst/porting_guides/porting_guide_7.rst:921 +msgid "junos_static_route" +msgstr "junos_static_route" + +#: ../../rst/porting_guides/porting_guide_7.rst:922 +msgid "junos_vlan" +msgstr "junos_vlan" + +#: ../../rst/porting_guides/porting_guide_7.rst:927 +msgid "vyos_interface - use vyos_interfaces instead." +msgstr "vyos_interface - 代わりに vyos_interfaces を使用します。" + +#: ../../rst/porting_guides/porting_guide_7.rst:928 +msgid "vyos_l3_interface - use vyos_l3_interfaces instead." +msgstr "vyos_l3_interface - 代わりに vyos_l3_interfaces を使用します。" + +#: ../../rst/porting_guides/porting_guide_7.rst:929 +msgid "vyos_linkagg - use vyos_lag_interfaces instead." +msgstr "vyos_linkagg - 代わりに vyos_lag_interfaces を使用します。" + +#: ../../rst/porting_guides/porting_guide_7.rst:930 +msgid "vyos_lldp - use vyos_lldp_global instead." +msgstr "vyos_lldp - 代わりに vyos_lldp_global を使用します。" + +#: ../../rst/porting_guides/porting_guide_7.rst:931 +msgid "vyos_lldp_interface - use vyos_lldp_interfaces instead." +msgstr "vyos_lldp_interface - 代わりに vyos_lldp_interfaces を使用します。" + +#: ../../rst/porting_guides/porting_guide_7.rst:932 +msgid "vyos_static_route - use vyos_static_routes instead." +msgstr "vyos_static_route - 代わりに vyos_static_routes を使用します。" + +#: ../../rst/porting_guides/porting_guide_7.rst:946 msgid "Deprecate ability of lookup plugins to return arbitrary data. Lookup plugins must return lists, failing to do so will be an error in 2.18. (https://github.com/ansible/ansible/issues/77788)" msgstr "ルックアッププラグインが任意のデータを返す機能を非推奨にします。ルックアッププラグインはリストを返す必要があり、失敗すると 2.18 ではエラーになります (https://github.com/ansible/ansible/issues/77788)。" -#: ../../rst/porting_guides/porting_guide_7.rst:437 +#: ../../rst/porting_guides/porting_guide_7.rst:947 msgid "Encryption - Deprecate use of the Python crypt module due to it's impending removal from Python 3.13" msgstr "encryption - Python crypt モジュールが Python 3.13 から間もなく削除されるため、使用を非推奨とします。" -#: ../../rst/porting_guides/porting_guide_7.rst:438 +#: ../../rst/porting_guides/porting_guide_7.rst:948 msgid "PlayContext.verbosity is deprecated and will be removed in 2.18. Use ansible.utils.display.Display().verbosity as the single source of truth." msgstr "PlayContext.verbosity は非推奨となり、2.18 で削除されます。信頼できる唯一のソースとして ansible.utils.display.Display().verbosity を使用してください。" -#: ../../rst/porting_guides/porting_guide_7.rst:439 +#: ../../rst/porting_guides/porting_guide_7.rst:949 msgid "``DEFAULT_FACT_PATH``, ``DEFAULT_GATHER_SUBSET`` and ``DEFAULT_GATHER_TIMEOUT`` are deprecated and will be removed in 2.18. Use ``module_defaults`` keyword instead." msgstr "``DEFAULT_FACT_PATH``、``DEFAULT_GATHER_SUBSET``、および ``DEFAULT_GATHER_TIMEOUT`` は非推奨であり、2.18 で削除されます。代わりに ``module_defaults`` キーワードを使用してください。" -#: ../../rst/porting_guides/porting_guide_7.rst:440 +#: ../../rst/porting_guides/porting_guide_7.rst:950 msgid "``PlayIterator`` - deprecate ``cache_block_tasks`` and ``get_original_task`` which are noop and unused." msgstr "``PlayIterator`` - noop および未使用の ``cache_block_tasks`` および ``get_original_task`` を非推奨にします。" -#: ../../rst/porting_guides/porting_guide_7.rst:441 +#: ../../rst/porting_guides/porting_guide_7.rst:951 msgid "``Templar`` - deprecate ``shared_loader_obj`` option which is unused. ``ansible.plugins.loader`` is used directly instead." msgstr "``Templar`` - 未使用の ``shared_loader_obj`` オプションを非推奨にします。代わりに ``ansible.plugins.loader`` が直接使用されます。" -#: ../../rst/porting_guides/porting_guide_7.rst:442 +#: ../../rst/porting_guides/porting_guide_7.rst:952 msgid "listify_lookup_plugin_terms, deprecate 'loader/dataloader' parameter as it not used." msgstr "listify_lookup_plugin_terms、loader/dataloader パラメーターは使用されていないため、非推奨となりました。" -#: ../../rst/porting_guides/porting_guide_7.rst:443 +#: ../../rst/porting_guides/porting_guide_7.rst:953 msgid "vars plugins - determining whether or not to run ansible.legacy vars plugins with the class attribute REQUIRES_WHITELIST is deprecated, set REQUIRES_ENABLED instead." msgstr "vars プラグイン - クラス属性 REQUIRES_WHITELIST を使用して ansible.legacy vars プラグインを実行するかどうかを判別します。この属性が非推奨となっている場合は、代わりに REQUIRES_ENABLED を設定します。" -#: ../../rst/porting_guides/porting_guide_7.rst:448 +#: ../../rst/porting_guides/porting_guide_7.rst:958 +msgid "amazon.aws collection - Support for the ``EC2_ACCESS_KEY`` environment variable has been deprecated and will be removed in a release after 2024-12-01. Please use the ``access_key`` parameter or ``AWS_ACCESS_KEY_ID`` environment variable instead (https://github.com/ansible-collections/amazon.aws/pull/1172)." +msgstr "amazon.aws コレクション - ``EC2_ACCESS_KEY`` 環境変数のサポートは非推奨となり、2024-12-01 より後のリリースで削除される予定です。代わりに ``access_key`` パラメーターまたは ``AWS_ACCESS_KEY_ID`` 環境変数をご利用ください (https://github.com/ansible-collections/amazon.aws/pull/1172)。" + +#: ../../rst/porting_guides/porting_guide_7.rst:959 +msgid "amazon.aws collection - Support for the ``EC2_REGION`` environment variable has been deprecated and will be removed in a release after 2024-12-01. Please use the ``region`` parameter or ``AWS_REGION`` environment variable instead (https://github.com/ansible-collections/amazon.aws/pull/1172)." +msgstr "amazon.aws コレクション - ``EC2_REGION`` 環境変数のサポートは非推奨となり、2024-12-01 より後のリリースで削除される予定です。代わりに ``region`` パラメーターまたは ``AWS_REGION`` 環境変数をご利用ください (https://github.com/ansible-collections/amazon.aws/pull/1172)。" + +#: ../../rst/porting_guides/porting_guide_7.rst:960 +msgid "amazon.aws collection - Support for the ``EC2_SECRET_KEY`` environment variable has been deprecated and will be removed in a release after 2024-12-01. Please use the ``secret_key`` parameter or ``AWS_SECRET_ACCESS_KEY`` environment variable instead (https://github.com/ansible-collections/amazon.aws/pull/1172)." +msgstr "amazon.aws コレクション - ``EC2_SECRET_KEY`` 環境変数のサポートは非推奨となり、2024-12-01 より後のリリースで削除される予定です。代わりに ``secret_key`` パラメーターまたは ``AWS_SECRET_ACCESS_KEY`` 環境変数をご利用ください (https://github.com/ansible-collections/amazon.aws/pull/1172)。" + +#: ../../rst/porting_guides/porting_guide_7.rst:961 +msgid "amazon.aws collection - Support for the ``EC2_SECURITY_TOKEN`` environment variable has been deprecated and will be removed in a release after 2024-12-01. Please use the ``session_token`` parameter or ``AWS_SESSION_TOKEN`` environment variable instead (https://github.com/ansible-collections/amazon.aws/pull/1172)." +msgstr "amazon.aws コレクション - ``EC2_SECURITY_TOKEN`` 環境変数のサポートは非推奨となり、2024-12-01 より後のリリースで削除される予定です。代わりに ``session_token`` パラメーターまたは ``AWS_SESSION_TOKEN`` 環境変数をご利用ください (https://github.com/ansible-collections/amazon.aws/pull/1172)。" + +#: ../../rst/porting_guides/porting_guide_7.rst:962 +msgid "amazon.aws collection - Support for the ``EC2_URL`` and ``S3_URL`` environment variables has been deprecated and will be removed in a release after 2024-12-01. Please use the ``endpoint_url`` parameter or ``AWS_ENDPOINT_URL`` environment variable instead (https://github.com/ansible-collections/amazon.aws/pull/1172)." +msgstr "amazon.aws コレクション - ``EC2_URL`` および ``S3_URL`` 環境変数のサポートは非推奨となり、2024-12-01 より後のリリースで削除される予定です。代わりに ``endpoint_url`` パラメーターまたは ``AWS_ENDPOINT_URL`` 環境変数をご利用ください (https://github.com/ansible-collections/amazon.aws/pull/1172)。" + +#: ../../rst/porting_guides/porting_guide_7.rst:963 +msgid "amazon.aws collection - The ``access_token`` alias for the ``session_token`` parameter has been deprecated and will be removed in a release after 2024-12-01. Please use the ``session_token`` name instead (https://github.com/ansible-collections/amazon.aws/pull/1172)." +msgstr "amazon.aws コレクション - ``session_token`` パラメーターの ``access_token`` エイリアスは非推奨となり、2024 年 12 月 1 日より後のリリースで削除される予定です。代わりに ``session_token`` 名をご利用ください (https://github.com/ansible-collections/amazon.aws/pull/1172)。" + +#: ../../rst/porting_guides/porting_guide_7.rst:964 +msgid "amazon.aws collection - The ``aws_security_token`` alias for the ``session_token`` parameter has been deprecated and will be removed in a release after 2024-12-01. Please use the ``session_token`` name instead (https://github.com/ansible-collections/amazon.aws/pull/1172)." +msgstr "amazon.aws コレクション - ``session_token`` パラメーターの ``aws_security_token`` エイリアスは非推奨となり、2024 年 12 月 1 日より後のリリースで削除される予定です。代わりに ``session_token`` 名をご利用ください (https://github.com/ansible-collections/amazon.aws/pull/1172)。" + +#: ../../rst/porting_guides/porting_guide_7.rst:965 +msgid "amazon.aws collection - The ``ec2_access_key`` alias for the ``access_key`` parameter has been deprecated and will be removed in a release after 2024-12-01. Please use the ``access_key`` name instead (https://github.com/ansible-collections/amazon.aws/pull/1172)." +msgstr "amazon.aws コレクション - ``access_key`` パラメーターの ``ec2_access_key`` エイリアスは非推奨となり、2024 年 12 月 1 日より後のリリースで削除される予定です。代わりに ``access_key`` 名をご利用ください (https://github.com/ansible-collections/amazon.aws/pull/1172)。" + +#: ../../rst/porting_guides/porting_guide_7.rst:966 +msgid "amazon.aws collection - The ``ec2_region`` alias for the ``region`` parameter has been deprecated and will be removed in a release after 2024-12-01. Please use the ``region`` name instead (https://github.com/ansible-collections/amazon.aws/pull/1172)." +msgstr "amazon.aws コレクション - ``region`` パラメーターの ``ec2_region`` エイリアスは非推奨となり、2024 年 12 月 1 日より後のリリースで削除される予定です。代わりに ``region`` 名をご利用ください (https://github.com/ansible-collections/amazon.aws/pull/1172)。" + +#: ../../rst/porting_guides/porting_guide_7.rst:967 +msgid "amazon.aws collection - The ``ec2_secret_key`` alias for the ``secret_key`` parameter has been deprecated and will be removed in a release after 2024-12-01. Please use the ``secret_key`` name instead (https://github.com/ansible-collections/amazon.aws/pull/1172)." +msgstr "amazon.aws コレクション - ``secret_key`` パラメーターの ``ec2_secret_key`` エイリアスは非推奨となり、2024 年 12 月 1 日より後のリリースで削除される予定です。代わりに ``secret_key`` 名をご利用ください (https://github.com/ansible-collections/amazon.aws/pull/1172)。" + +#: ../../rst/porting_guides/porting_guide_7.rst:968 +msgid "amazon.aws collection - The ``security_token`` alias for the ``session_token`` parameter has been deprecated and will be removed in a release after 2024-12-01. Please use the ``session_token`` name instead (https://github.com/ansible-collections/amazon.aws/pull/1172)." +msgstr "amazon.aws コレクション - ``session_token`` パラメーターの ``security_token`` エイリアスは非推奨となり、2024 年 12 月 1 日より後のリリースで削除される予定です。代わりに ``session_token`` 名をご利用ください (https://github.com/ansible-collections/amazon.aws/pull/1172)。" + +#: ../../rst/porting_guides/porting_guide_7.rst:969 msgid "amazon.aws collection - due to the AWS SDKs announcing the end of support for Python less than 3.7 (https://aws.amazon.com/blogs/developer/python-support-policy-updates-for-aws-sdks-and-tools/) support for Python less than 3.7 by this collection has been deprecated and will be removed in a release after 2023-05-31 (https://github.com/ansible-collections/amazon.aws/pull/935)." msgstr "amazon.aws コレクション - Python の バージョン 3.7 未満のサポート終了を通知する AWS SDK により (https://aws.amazon.com/blogs/developer/python-support-policy-updates-for-aws-sdks-and-tools/)、このコレクションによる Python のバージョン 3.7 未満のサポートは非推奨となり、2023 年 6 月 1 日以降のリリースで削除される予定です (https://github.com/ansible-collections/amazon.aws/pull/935)。" -#: ../../rst/porting_guides/porting_guide_7.rst:449 +#: ../../rst/porting_guides/porting_guide_7.rst:970 msgid "aws_s3 - The ``S3_URL`` alias for the s3_url option has been deprecated and will be removed in release 5.0.0 (https://github.com/ansible-collections/community.aws/pull/795)." msgstr "aws_s3 - s3_url オプションの ``S3_URL`` エイリアスは非推奨となり、リリース 5.0.0 で削除されます (https://github.com/ansible-collections/community.aws/pull/795)。" -#: ../../rst/porting_guides/porting_guide_7.rst:450 +#: ../../rst/porting_guides/porting_guide_7.rst:971 msgid "ec2_ami - The ``DeviceName`` alias for the device_name option has been deprecated and will be removed in release 5.0.0 (https://github.com/ansible-collections/community.aws/pull/795)." msgstr "ec2_ami - device_name オプションの ``DeviceName`` エイリアスは非推奨となり、リリース 5.0.0 で削除されます (https://github.com/ansible-collections/community.aws/pull/795)。" -#: ../../rst/porting_guides/porting_guide_7.rst:451 +#: ../../rst/porting_guides/porting_guide_7.rst:972 msgid "ec2_ami - The ``NoDevice`` alias for the no_device option has been deprecated and will be removed in release 5.0.0 (https://github.com/ansible-collections/community.aws/pull/795)." msgstr "ec2_ami - no_device オプションの ``NoDevice`` エイリアスは非推奨となり、リリース 5.0.0 で削除されます (https://github.com/ansible-collections/community.aws/pull/795)。" -#: ../../rst/porting_guides/porting_guide_7.rst:452 +#: ../../rst/porting_guides/porting_guide_7.rst:973 msgid "ec2_ami - The ``VirtualName`` alias for the virtual_name option has been deprecated and will be removed in release 5.0.0 (https://github.com/ansible-collections/community.aws/pull/795)." msgstr "ec2_ami - virtual_name オプションの ``VirtualName`` エイリアスは非推奨となり、リリース 5.0.0 で削除されます (https://github.com/ansible-collections/community.aws/pull/795)。" -#: ../../rst/porting_guides/porting_guide_7.rst:453 +#: ../../rst/porting_guides/porting_guide_7.rst:974 msgid "ec2_ami - the current default value of ``False`` for ``purge_tags`` has been deprecated and will be updated in release 5.0.0 to ``True`` (https://github.com/ansible-collections/amazon.aws/pull/846)." msgstr "ec2_ami - ``purge_tags`` の現在のデフォルト値 ``False`` は非推奨となり、リリース 5.0.0 で ``True`` に更新されます (https://github.com/ansible-collections/amazon.aws/pull/846)。" -#: ../../rst/porting_guides/porting_guide_7.rst:455 +#: ../../rst/porting_guides/porting_guide_7.rst:976 msgid "ec2_instance - the current default value of ``False`` for ``purge_tags`` has been deprecated and will be updated in release 5.0.0 to ``True`` (https://github.com/ansible-collections/amazon.aws/pull/849)." msgstr "ec2_instance - ``purge_tags`` の現在のデフォルト値 ``False`` は非推奨となり、リリース 5.0.0 で ``True`` に更新されます (https://github.com/ansible-collections/amazon.aws/pull/849)。" -#: ../../rst/porting_guides/porting_guide_7.rst:456 +#: ../../rst/porting_guides/porting_guide_7.rst:977 msgid "ec2_key - the current default value of ``False`` for ``purge_tags`` has been deprecated and will be updated in release 5.0.0 to ``True`` (https://github.com/ansible-collections/amazon.aws/pull/846)." msgstr "ec2_key - ``purge_tags`` の現在のデフォルト値 ``False`` は非推奨となり、リリース 5.0.0 で ``True`` に更新されます (https://github.com/ansible-collections/amazon.aws/pull/846)。" -#: ../../rst/porting_guides/porting_guide_7.rst:457 +#: ../../rst/porting_guides/porting_guide_7.rst:978 +msgid "ec2_security_group - support for passing nested lists to ``cidr_ip`` and ``cidr_ipv6`` has been deprecated. Nested lists can be passed through the ``flatten`` filter instead ``cidr_ip: '{{ my_cidrs | flatten }}'`` (https://github.com/ansible-collections/amazon.aws/pull/1213)." +msgstr "ec2_security_group - ネストされたリストを ``cidr_ip`` および ``cidr_ipv6`` へ渡すためのサポートは非推奨となりました。ネストされたリストは、代わりに ``flatten`` フィルターを通じて渡すことができます ``cidr_ip: '{{ my_cidrs | flatten }}'`` (https://github.com/ansible-collections/amazon.aws/pull/1213)。" + +#: ../../rst/porting_guides/porting_guide_7.rst:979 msgid "ec2_vol - the current default value of ``False`` for ``purge_tags`` has been deprecated and will be updated in release 5.0.0 to ``True`` (https://github.com/ansible-collections/amazon.aws/pull/846)." msgstr "ec2_vol - ``purge_tags`` の現在のデフォルト値 ``False`` は非推奨となり、リリース 5.0.0 で ``True`` に更新されます (https://github.com/ansible-collections/amazon.aws/pull/846)。" -#: ../../rst/porting_guides/porting_guide_7.rst:458 +#: ../../rst/porting_guides/porting_guide_7.rst:980 msgid "ec2_vpc_dhcp_option_info - The ``DhcpOptionIds`` alias for the dhcp_option_ids option has been deprecated and will be removed in release 5.0.0 (https://github.com/ansible-collections/community.aws/pull/795)." msgstr "ec2_vpc_dhcp_option_info - dhcp_option_ids オプションの ``DhcpOptionIds`` エイリアスは非推奨となり、リリース 5.0.0 で削除されます (https://github.com/ansible-collections/community.aws/pull/795)。" -#: ../../rst/porting_guides/porting_guide_7.rst:459 +#: ../../rst/porting_guides/porting_guide_7.rst:981 msgid "ec2_vpc_dhcp_option_info - The ``DryRun`` alias for the dry_run option has been deprecated and will be removed in release 5.0.0 (https://github.com/ansible-collections/community.aws/pull/795)." msgstr "ec2_vpc_dhcp_option_info - dry_run オプションの ``DryRun`` エイリアスは非推奨となり、リリース 5.0.0 で削除されます (https://github.com/ansible-collections/community.aws/pull/795)。" -#: ../../rst/porting_guides/porting_guide_7.rst:460 +#: ../../rst/porting_guides/porting_guide_7.rst:982 msgid "ec2_vpc_endpoint - the current default value of ``False`` for ``purge_tags`` has been deprecated and will be updated in release 5.0.0 to ``True`` (https://github.com/ansible-collections/amazon.aws/pull/846)." msgstr "ec2_vpc_endpoint - ``purge_tags`` の現在のデフォルト値 ``False`` は非推奨となり、リリース 5.0.0 で ``True`` に更新されます (https://github.com/ansible-collections/amazon.aws/pull/846)。" -#: ../../rst/porting_guides/porting_guide_7.rst:461 +#: ../../rst/porting_guides/porting_guide_7.rst:983 msgid "ec2_vpc_net - the current default value of ``False`` for ``purge_tags`` has been deprecated and will be updated in release 5.0.0 to ``True`` (https://github.com/ansible-collections/amazon.aws/pull/848)." msgstr "ec2_vpc_net - ``purge_tags`` の現在のデフォルト値 ``False`` は非推奨となり、リリース 5.0.0 で ``True`` に更新されます (https://github.com/ansible-collections/amazon.aws/pull/848)。" -#: ../../rst/porting_guides/porting_guide_7.rst:462 +#: ../../rst/porting_guides/porting_guide_7.rst:984 msgid "ec2_vpc_route_table - the current default value of ``False`` for ``purge_tags`` has been deprecated and will be updated in release 5.0.0 to ``True`` (https://github.com/ansible-collections/amazon.aws/pull/846)." msgstr "ec2_vpc_route_table - ``purge_tags`` の現在のデフォルト値 ``False`` は非推奨となり、リリース 5.0.0 で ``True`` に更新されます (https://github.com/ansible-collections/amazon.aws/pull/846)。" -#: ../../rst/porting_guides/porting_guide_7.rst:463 +#: ../../rst/porting_guides/porting_guide_7.rst:985 +msgid "inventory/aws_ec2 - the ``include_extra_api_calls`` is now deprecated, its value is silently ignored (https://github.com/ansible-collections/amazon.aws/pull/1097)." +msgstr "inventory/aws_ec2 - ``include_extra_api_calls`` は非推奨となりました。その値はサイレントに無視されます (https://github.com/ansible-collections/amazon.aws/pull/1097)。" + +#: ../../rst/porting_guides/porting_guide_7.rst:986 msgid "module_utils.cloud - removal of the ``CloudRetry.backoff`` has been delayed until release 6.0.0. It is recommended to update custom modules to use ``jittered_backoff`` or ``exponential_backoff`` instead (https://github.com/ansible-collections/amazon.aws/pull/951)." msgstr "module_utils.cloud - ``CloudRetry.backoff`` の削除は、リリース 6.0.0 まで延期となりました。代わりに ``jittered_backoff`` または ``exponential_backoff`` を使用するようにカスタムモジュールを更新することが推奨されます (https://github.com/ansible-collections/amazon.aws/pull/951)。" -#: ../../rst/porting_guides/porting_guide_7.rst:464 +#: ../../rst/porting_guides/porting_guide_7.rst:987 +msgid "module_utils.url - ``ansible_collections.amazon.aws.module_utils.urls`` is believed to be unused and has been deprecated and will be removed in release 7.0.0." +msgstr "module_utils.url - ``ansible_collections.amazon.aws.module_utils.urls`` は、使用されていないと考えられるため、非推奨となり、リリース 7.0.0 で削除される予定です。" + +#: ../../rst/porting_guides/porting_guide_7.rst:988 msgid "s3_bucket - The ``S3_URL`` alias for the s3_url option has been deprecated and will be removed in release 5.0.0 (https://github.com/ansible-collections/community.aws/pull/795)." msgstr "s3_bucket - s3_url オプションの ``S3_URL`` エイリアスは非推奨となり、リリース 5.0.0 で削除されます (https://github.com/ansible-collections/community.aws/pull/795)。" -#: ../../rst/porting_guides/porting_guide_7.rst:465 +#: ../../rst/porting_guides/porting_guide_7.rst:989 msgid "s3_object - Support for creation and deletion of S3 buckets has been deprecated. Please use the ``amazon.aws.s3_bucket`` module to create and delete buckets (https://github.com/ansible-collections/amazon.aws/pull/869)." msgstr "s3_object - S3 バケットの作成および削除のサポートが非推奨となりました。バケットの作成と削除には、``amazon.aws.s3_bucket`` モジュールを使用してください (https://github.com/ansible-collections/amazon.aws/pull/869)。" -#: ../../rst/porting_guides/porting_guide_7.rst:475 +#: ../../rst/porting_guides/porting_guide_7.rst:1004 msgid "aws_acm - the current default value of ``False`` for ``purge_tags`` has been deprecated and will be updated in release 5.0.0 to ``True``." msgstr "aws_acm - ``purge_tags`` の現在のデフォルト値 ``False`` は非推奨となり、リリース 5.0.0 で ``True`` に更新されます。" -#: ../../rst/porting_guides/porting_guide_7.rst:477 +#: ../../rst/porting_guides/porting_guide_7.rst:1006 msgid "aws_glue_connection - the ``connection_parameters`` return key has been deprecated and will be removed in a release after 2024-06-01, it is being replaced by the ``raw_connection_parameters`` key (https://github.com/ansible-collections/community.aws/pull/518)." msgstr "aws_glue_connection - ``connection_parameters`` の戻りキーは非推奨となり、2024 年 06 月 01 以降のリリースで削除され、``raw_connection_parameters`` キーに置き換えられます (https://github.com/ansible-collections/community.aws/pull/518)。" -#: ../../rst/porting_guides/porting_guide_7.rst:478 +#: ../../rst/porting_guides/porting_guide_7.rst:1007 msgid "aws_kms - the current default value of ``False`` for ``purge_tags`` has been deprecated and will be updated in release 5.0.0 to ``True``." msgstr "aws_kms - ``purge_tags`` の現在のデフォルト値 ``False`` は非推奨となり、リリース 5.0.0 で ``True`` に更新されます。" -#: ../../rst/porting_guides/porting_guide_7.rst:479 +#: ../../rst/porting_guides/porting_guide_7.rst:1008 msgid "cloudfront_distribution - the current default value of ``False`` for ``purge_tags`` has been deprecated and will be updated in release 5.0.0 to ``True``." msgstr "cloudfront_distribution - ``purge_tags`` の現在のデフォルト値 ``False`` は非推奨となり、リリース 5.0.0 で ``True`` に更新されます。" -#: ../../rst/porting_guides/porting_guide_7.rst:480 +#: ../../rst/porting_guides/porting_guide_7.rst:1009 msgid "community.aws collection - due to the AWS SDKs announcing the end of support for Python less than 3.7 (https://aws.amazon.com/blogs/developer/python-support-policy-updates-for-aws-sdks-and-tools/) support for Python less than 3.7 by this collection has been deprecated and will be removed in a release after 2023-05-31 (https://github.com/ansible-collections/community.aws/pull/1361)." msgstr "community.aws コレクション - Python の バージョン 3.7 未満のサポート終了を通知する AWS SDK により (https://aws.amazon.com/blogs/developer/python-support-policy-updates-for-aws-sdks-and-tools/)、このコレクションによる Python のバージョン 3.7 未満のサポートは非推奨となり、2023 年 6 月 1 日以降のリリースで削除される予定です (https://github.com/ansible-collections/community.aws/pull/1361)。" -#: ../../rst/porting_guides/porting_guide_7.rst:481 +#: ../../rst/porting_guides/porting_guide_7.rst:1010 msgid "ec2_vpc_vpn - the current default value of ``False`` for ``purge_tags`` has been deprecated and will be updated in release 5.0.0 to ``True``." msgstr "ec2_vpc_vpn - ``purge_tags`` の現在の ``False`` のデフォルト値は非推奨となり、リリース 5.0.0 で ``True`` に更新されます。" -#: ../../rst/porting_guides/porting_guide_7.rst:482 +#: ../../rst/porting_guides/porting_guide_7.rst:1011 msgid "iam_policy - the ``policies`` return value has been renamed ``policy_names`` and will be removed in a release after 2024-08-01, both values are currently returned (https://github.com/ansible-collections/community.aws/pull/1375)." msgstr "iam_policy - ``policies`` の戻り値の名前が ``policy_names`` に変更されました。2024 年 8 月 2 日以降のリリースで削除されるため、現在は両方の値が返されます (https://github.com/ansible-collections/community.aws/pull/1375)。" -#: ../../rst/porting_guides/porting_guide_7.rst:483 +#: ../../rst/porting_guides/porting_guide_7.rst:1012 msgid "lambda_info - The ``function`` return key returns a dictionary of dictionaries and has been deprecated. In a release after 2025-01-01, this key will be removed in favor of ``functions``, which returns a list of dictionaries (https://github.com/ansible-collections/community.aws/pull/1239)." msgstr "lambda_info - の``function`` リターンキーは複数のディクショナリーのうちの 1 つのディクショナリーを返しますが、非推奨となりました。2025 年 1 月 2 日以降のリリースでは、ディクショナリーのリストを返す ``functions`` を優先して、このキーは削除されます (https://github.com/ansible-collections/community.aws/pull/1239)。" -#: ../../rst/porting_guides/porting_guide_7.rst:484 +#: ../../rst/porting_guides/porting_guide_7.rst:1013 msgid "rds_param_group - the current default value of ``False`` for ``purge_tags`` has been deprecated and will be updated in release 5.0.0 to ``True``." msgstr "rds_param_group - ``purge_tags`` の現在の ``False`` のデフォルト値は非推奨となり、リリース 5.0.0 で ``True`` に更新されます。" -#: ../../rst/porting_guides/porting_guide_7.rst:485 +#: ../../rst/porting_guides/porting_guide_7.rst:1014 msgid "route53_health_check - the current default value of ``False`` for ``purge_tags`` has been deprecated and will be updated in release 5.0.0 to ``True``." msgstr "route53_health_check - ``purge_tags`` の現在の ``False`` のデフォルト値は非推奨となり、リリース 5.0.0 で ``True`` に更新されます。" -#: ../../rst/porting_guides/porting_guide_7.rst:486 +#: ../../rst/porting_guides/porting_guide_7.rst:1015 msgid "route53_info - The CamelCase return values for ``DelegationSets``, ``CheckerIpRanges``, and ``HealthCheck`` have been deprecated, in the future release you must use snake_case return values ``delegation_sets``, ``checker_ip_ranges``, and ``health_check`` instead respectively\" (https://github.com/ansible-collections/community.aws/pull/1322)." msgstr "route53_info - ``DelegationSets``、``CheckerIpRanges`` の CamelCase の戻り値および ``HealthCheck`` が非推奨となりました。今後のリリースでは、代わりに ``delegation_sets``、``checker_ip_ranges`` の snake_case の戻り値および ``health_check`` をそれぞれ使用する必要があります (https://github.com/ansible-collections/community.aws/pull/1322)。" -#: ../../rst/porting_guides/porting_guide_7.rst:488 +#: ../../rst/porting_guides/porting_guide_7.rst:1017 msgid "route53_zone - the current default value of ``False`` for ``purge_tags`` has been deprecated and will be updated in release 5.0.0 to ``True``." msgstr "route53_zone - ``purge_tags`` の現在のデフォルト値 ``False`` は非推奨となり、リリース 5.0.0 で ``True`` に更新されます。" -#: ../../rst/porting_guides/porting_guide_7.rst:489 +#: ../../rst/porting_guides/porting_guide_7.rst:1018 msgid "sqs_queue - the current default value of ``False`` for ``purge_tags`` has been deprecated and will be updated in release 5.0.0 to ``True``." msgstr "sqs_queue - ``purge_tags`` の現在のデフォルト値 ``False`` は非推奨となり、リリース 5.0.0 で ``True`` に更新されます。" +#: ../../rst/porting_guides/porting_guide_7.rst:1030 +msgid "docker_container - the ``ignore_image`` option is deprecated and will be removed in community.docker 4.0.0. Use ``image: ignore`` in ``comparisons`` instead (https://github.com/ansible-collections/community.docker/pull/487)." +msgstr "docker_container -``ignore_image`` オプションは非推奨となり、community.docker 4.0.0 で削除されます。代わりに ``comparisons`` では ``image: ignore`` を使用してください (https://github.com/ansible-collections/community.docker/pull/487)。" + +#: ../../rst/porting_guides/porting_guide_7.rst:1031 +msgid "docker_container - the ``purge_networks`` option is deprecated and will be removed in community.docker 4.0.0. Use ``networks: strict`` in ``comparisons`` instead, and make sure to provide ``networks``, with value ``[]`` if all networks should be removed (https://github.com/ansible-collections/community.docker/pull/487)." +msgstr "docker_container -``purge_networks`` オプションは非推奨となり、community.docker 4.0.0 で削除されます。代わりに ``comparisons`` では ``networks: strict`` を使用してください。また、すべてのネットワークを削除する必要がある場合は ``[]`` の値で ``networks`` を必ず提供してください (https://github.com/ansible-collections/community.docker/pull/487)。" + +#: ../../rst/porting_guides/porting_guide_7.rst:1044 +msgid "gconftool2 - deprecates ``state=get`` in favor of using the module ``gconftool2_info`` (https://github.com/ansible-collections/community.general/pull/4778)." +msgstr "gconftool2 - モジュール ``gconftool2_info`` (https://github.com/ansible-collections/community.general/pull/4778) を使用するため、``state=get`` は非推奨となります。" + +#: ../../rst/porting_guides/porting_guide_7.rst:1048 +msgid "xfconf - deprecated parameter ``disable_facts``, as since version 4.0.0 it only allows value ``true`` (https://github.com/ansible-collections/community.general/pull/4520)." +msgstr "xfconf - バージョン 4.0.0 以降、値 ``true`` (https://github.com/ansible-collections/community.general/pull/4520) しか許可されないため、パラメーター ``disable_facts`` は非推奨となりました。" + #: ../../rst/porting_guides/porting_guide_base_2.10.rst:6 msgid "Ansible-base 2.10 Porting Guide" msgstr "Ansible-base 2.10 移植ガイド" @@ -12359,7 +13732,7 @@ msgstr "本ガイドは、このバージョンの Ansible-base で動作する #: ../../rst/porting_guides/porting_guide_base_2.10.rst:16 msgid "We suggest you read this page along with the `Ansible-base Changelog for 2.10 `_ to understand what updates you may need to make." -msgstr "必要な更新について理解するには、このページと併せて「`Ansible-base Changelog for 2.10 `_」を参照してください。" +msgstr "必要な更新について理解するには、このページと併せて「`Ansible-base Changelog for 2.10 `_」を参照することをお勧めします。" #: ../../rst/porting_guides/porting_guide_base_2.10.rst:18 msgid "Ansible-base is mainly of interest for developers and users who only want to use a small, controlled subset of the available collections. Regular users should install ansible." @@ -12373,7 +13746,7 @@ msgstr "移植ガイドの完全なリストは、「:ref:`porting guides `_ to understand what updates you may need to make." msgstr "必要な更新について理解するには、このページと併せて「`ansible-core Changelog for 2.12 `_」を参照してください。" +#: ../../rst/porting_guides/porting_guide_core_2.12.rst:115 +msgid "``password_hash``` now uses ``passlib`` defaults when an option is unspecified, for example ``bcrypt_sha256`` now default to the \"2b\" format and if the \"2a\" format is required it must be specified." +msgstr "``password_hash``` now uses ``passlib`` defaults when an option is unspecified, for example ``bcrypt_sha256`` はデフォルトで「2b」フォーマットになり、「2a」フォーマットが必要な場合は指定する必要があります。" + #: ../../rst/porting_guides/porting_guide_core_2.13.rst:6 msgid "Ansible-core 2.13 Porting Guide" msgstr "Ansible-core 2.13 移植ガイド" @@ -12417,7 +13794,7 @@ msgstr "このセクションでは、``ansible-core`` 2.12 と ``ansible-core`` #: ../../rst/porting_guides/porting_guide_core_2.13.rst:12 msgid "We suggest you read this page along with `ansible-core Changelog for 2.13 `_ to understand what updates you may need to make." -msgstr "必要な更新について理解するには、このページと併せて「`ansible-core Changelog for 2.13 `_」を参照してください。" +msgstr "必要な更新について理解するには、このページと併せて「`ansible-core Changelog for 2.13 `_」を参照することをお勧めします。" #: ../../rst/porting_guides/porting_guide_core_2.14.rst:6 msgid "Ansible-core 2.14 Porting Guide" @@ -12454,4 +13831,7 @@ msgstr "本セクションでは、Ansible のあるバージョンから次の #~ msgid "The configuration system now validates the ``choices`` field, so any settings that currently violate it and are currently ignored will now cause an error. For example, `ANSIBLE_COLLECTIONS_ON_ANSIBLE_VERSION_MISMATCH=0` will now cause an error (valid choices are 'ignore', 'warn' or 'error')." #~ msgstr "設定システムは ``choices`` フィールドを検証するため、現在それに違反している設定があるとエラーが生じます。たとえば、`ANSIBLE_COLLECTIONS_ON_ANSIBLE_VERSION_MISMATCH=0` を選択すると、エラーが発生します (有効な選択肢は「ignore」、「warn」、または「error」です)。" +#~ msgid "delegate_to vs ProxyCommand" +#~ msgstr "delegate_to 対 ProxyCommand" + diff --git a/docs/docsite/rst/locales/ja/LC_MESSAGES/reference_appendices.po b/docs/docsite/rst/locales/ja/LC_MESSAGES/reference_appendices.po index 5d706d0e..d06d1e91 100644 --- a/docs/docsite/rst/locales/ja/LC_MESSAGES/reference_appendices.po +++ b/docs/docsite/rst/locales/ja/LC_MESSAGES/reference_appendices.po @@ -7,14 +7,14 @@ msgid "" msgstr "" "Project-Id-Version: Ansible devel\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-10-05 09:34+0200\n" +"POT-Creation-Date: 2023-03-01 20:16+0100\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.8.1\n" +"Generated-By: Babel 2.9.0\n" #: ../../rst/reference_appendices/YAMLSyntax.rst:5 msgid "YAML Syntax" @@ -45,194 +45,194 @@ msgid "There's another small quirk to YAML. All YAML files (regardless of their msgstr "YAML には、他にもわずかな特徴があります。YAML ファイルはすべて (Ansible との関係の有無に関係なく)、必要に応じて ``---`` で開始して ``...`` で終わらせることができます。これは、YAML 形式の一部で、ドキュメントの最初と最後を示します。" #: ../../rst/reference_appendices/YAMLSyntax.rst:29 -msgid "All members of a list are lines beginning at the same indentation level starting with a ``\"- \"`` (a dash and a space)::" -msgstr "リストのメンバーはすべて同じインデントレベルで、``\"- \"`` (ダッシュとスペース) で開始する行になります::" +msgid "All members of a list are lines beginning at the same indentation level starting with a ``\"- \"`` (a dash and a space):" +msgstr "リストのメンバーはすべて同じインデントレベルで、``\"- \"`` (ダッシュとスペース) で開始する行になります。" -#: ../../rst/reference_appendices/YAMLSyntax.rst:39 -msgid "A dictionary is represented in a simple ``key: value`` form (the colon must be followed by a space)::" +#: ../../rst/reference_appendices/YAMLSyntax.rst:41 +msgid "A dictionary is represented in a simple ``key: value`` form (the colon must be followed by a space):" msgstr "ディクショナリーは、シンプルな ``key: value`` の形式で表現します (コロンの後にはスペースを挿入する必要があります)。" -#: ../../rst/reference_appendices/YAMLSyntax.rst:47 -msgid "More complicated data structures are possible, such as lists of dictionaries, dictionaries whose values are lists or a mix of both::" +#: ../../rst/reference_appendices/YAMLSyntax.rst:51 +msgid "More complicated data structures are possible, such as lists of dictionaries, dictionaries whose values are lists or a mix of both:" msgstr "リストがディクショナリーやその値の場合や、ディクショナリーと値が混合している場合など、より複雑なデータ構造も可能です。" -#: ../../rst/reference_appendices/YAMLSyntax.rst:65 -msgid "Dictionaries and lists can also be represented in an abbreviated form if you really want to::" +#: ../../rst/reference_appendices/YAMLSyntax.rst:71 +msgid "Dictionaries and lists can also be represented in an abbreviated form if you really want to:" msgstr "ディクショナリーとリストは、必要であれば、略語形式で表現することも可能です。" -#: ../../rst/reference_appendices/YAMLSyntax.rst:71 +#: ../../rst/reference_appendices/YAMLSyntax.rst:79 msgid "These are called \"Flow collections\"." msgstr "以下は「フローコレクション」と呼ばれます。" -#: ../../rst/reference_appendices/YAMLSyntax.rst:75 -msgid "Ansible doesn't really use these too much, but you can also specify a :ref:`boolean value ` (true/false) in several forms::" +#: ../../rst/reference_appendices/YAMLSyntax.rst:83 +msgid "Ansible doesn't really use these too much, but you can also specify a :ref:`boolean value ` (true/false) in several forms:" msgstr "Ansible では以下の形式はあまり使用されませんが、:ref:`boolean value ` を複数の形式で指定することもできます。" -#: ../../rst/reference_appendices/YAMLSyntax.rst:83 +#: ../../rst/reference_appendices/YAMLSyntax.rst:93 msgid "Use lowercase 'true' or 'false' for boolean values in dictionaries if you want to be compatible with default yamllint options." msgstr "デフォルトの yamllint オプションと互換性を持たせる場合は、ディクショナリーのブール値に小文字の「true」または「false」を使用します。" -#: ../../rst/reference_appendices/YAMLSyntax.rst:85 -msgid "Values can span multiple lines using ``|`` or ``>``. Spanning multiple lines using a \"Literal Block Scalar\" ``|`` will include the newlines and any trailing spaces. Using a \"Folded Block Scalar\" ``>`` will fold newlines to spaces; it's used to make what would otherwise be a very long line easier to read and edit. In either case the indentation will be ignored. Examples are::" +#: ../../rst/reference_appendices/YAMLSyntax.rst:95 +msgid "Values can span multiple lines using ``|`` or ``>``. Spanning multiple lines using a \"Literal Block Scalar\" ``|`` will include the newlines and any trailing spaces. Using a \"Folded Block Scalar\" ``>`` will fold newlines to spaces; it's used to make what would otherwise be a very long line easier to read and edit. In either case the indentation will be ignored. Examples are:" msgstr "値は、``|`` または ``>`` を使用することで複数の行にまたがって指定することができます。「リテラル形式のブロックスカラー」 ``|`` を使用して複数行にまたがる場合は、改行と末尾のスペースが含まれます。「折り畳み形式のブロックスカラー」 ``>`` を使用すると、折り返しに使用される改行はすべてスペースに変換されます。これは、非常に長い行を読みやすく、編集しやすくするために使われます。いずれの場合も、インデントは無視されます。以下に例を示します。" -#: ../../rst/reference_appendices/YAMLSyntax.rst:100 -msgid "While in the above ``>`` example all newlines are folded into spaces, there are two ways to enforce a newline to be kept::" +#: ../../rst/reference_appendices/YAMLSyntax.rst:112 +msgid "While in the above ``>`` example all newlines are folded into spaces, there are two ways to enforce a newline to be kept:" msgstr "上記の ``>`` の例では、改行はすべてスペースに変換されますが、強制的に改行を行う方法が 2 種類あります。" -#: ../../rst/reference_appendices/YAMLSyntax.rst:111 -msgid "Alternatively, it can be enforced by including newline ``\\n`` characters::" +#: ../../rst/reference_appendices/YAMLSyntax.rst:125 +msgid "Alternatively, it can be enforced by including newline ``\\n`` characters:" msgstr "あるいは、改行 ``\\n" "`` 文字を含めることで強制できます。" -#: ../../rst/reference_appendices/YAMLSyntax.rst:115 -msgid "Let's combine what we learned so far in an arbitrary YAML example. This really has nothing to do with Ansible, but will give you a feel for the format::" +#: ../../rst/reference_appendices/YAMLSyntax.rst:131 +msgid "Let's combine what we learned so far in an arbitrary YAML example. This really has nothing to do with Ansible, but will give you a feel for the format:" msgstr "これまでに説明した内容を、任意の YAML の例にまとめてみましょう。以下は、Ansible とは関係ありませんが、どのような形式になるかを示しています。" -#: ../../rst/reference_appendices/YAMLSyntax.rst:138 +#: ../../rst/reference_appendices/YAMLSyntax.rst:156 msgid "That's all you really need to know about YAML to start writing `Ansible` playbooks." msgstr "`Ansible` Playbook の記述を開始するにあたり、以上が YAML について理解しておく必要のある内容です。" -#: ../../rst/reference_appendices/YAMLSyntax.rst:141 +#: ../../rst/reference_appendices/YAMLSyntax.rst:159 msgid "Gotchas" msgstr "Gotchas" -#: ../../rst/reference_appendices/YAMLSyntax.rst:143 +#: ../../rst/reference_appendices/YAMLSyntax.rst:161 msgid "While you can put just about anything into an unquoted scalar, there are some exceptions. A colon followed by a space (or newline) ``\": \"`` is an indicator for a mapping. A space followed by the pound sign ``\" #\"`` starts a comment." msgstr "引用符で囲まれていないスカラーには何でも挿入できますが、一部例外があります。コロンの後にスペース (または改行) を続けて記述 (``\": \"``) した場合は、マッピングを示すインジケーターになります。スペースに続けてポンド記号を記述 (``\" #\"``) した場合は、コメントの開始を表します。" -#: ../../rst/reference_appendices/YAMLSyntax.rst:147 -msgid "Because of this, the following is going to result in a YAML syntax error::" +#: ../../rst/reference_appendices/YAMLSyntax.rst:165 +msgid "Because of this, the following is going to result in a YAML syntax error:" msgstr "このため、以下のような場合には、YAML 構文がエラーになります。" -#: ../../rst/reference_appendices/YAMLSyntax.rst:153 -msgid "...but this will work::" +#: ../../rst/reference_appendices/YAMLSyntax.rst:173 +msgid "...but this will work:" msgstr "...ただし、以下は有効です。" -#: ../../rst/reference_appendices/YAMLSyntax.rst:157 -msgid "You will want to quote hash values using colons followed by a space or the end of the line::" +#: ../../rst/reference_appendices/YAMLSyntax.rst:179 +msgid "You will want to quote hash values using colons followed by a space or the end of the line:" msgstr "コロンを使用してハッシュ記号を引用し、その後ろにスペースを指定するか、行末にしてください。" -#: ../../rst/reference_appendices/YAMLSyntax.rst:163 +#: ../../rst/reference_appendices/YAMLSyntax.rst:187 msgid "...and then the colon will be preserved." msgstr "...そしてコロンが保存されます。" -#: ../../rst/reference_appendices/YAMLSyntax.rst:165 -msgid "Alternatively, you can use double quotes::" +#: ../../rst/reference_appendices/YAMLSyntax.rst:189 +msgid "Alternatively, you can use double quotes:" msgstr "または、二重引用符を使用してください。" -#: ../../rst/reference_appendices/YAMLSyntax.rst:171 -msgid "The difference between single quotes and double quotes is that in double quotes you can use escapes::" +#: ../../rst/reference_appendices/YAMLSyntax.rst:197 +msgid "The difference between single quotes and double quotes is that in double quotes you can use escapes:" msgstr "二重引用符ではエスケープを使用できる点が、一重引用符と二重引用符との相違点です。" -#: ../../rst/reference_appendices/YAMLSyntax.rst:176 +#: ../../rst/reference_appendices/YAMLSyntax.rst:204 msgid "The list of allowed escapes can be found in the YAML Specification under \"Escape Sequences\" (YAML 1.1) or \"Escape Characters\" (YAML 1.2)." msgstr "使用可能なエスケープの一覧は、YAML 仕様の「Escape Sequences」(YAML 1.1) または「Escape Characters」(YAML 1.2) を参照してください。" -#: ../../rst/reference_appendices/YAMLSyntax.rst:178 +#: ../../rst/reference_appendices/YAMLSyntax.rst:206 msgid "The following is invalid YAML:" msgstr "以下は無効な YAML です。" -#: ../../rst/reference_appendices/YAMLSyntax.rst:185 -msgid "Further, Ansible uses \"{{ var }}\" for variables. If a value after a colon starts with a \"{\", YAML will think it is a dictionary, so you must quote it, like so::" +#: ../../rst/reference_appendices/YAMLSyntax.rst:213 +msgid "Further, Ansible uses \"{{ var }}\" for variables. If a value after a colon starts with a \"{\", YAML will think it is a dictionary, so you must quote it, like so:" msgstr "さらに、Ansible は変数に \"{{ var }}\" を使用します。コロンの後に \"{\" が指定されている場合は、その値がディクショナリーであると YAML が認識するため、以下のように引用する必要があります::" -#: ../../rst/reference_appendices/YAMLSyntax.rst:190 -msgid "If your value starts with a quote the entire value must be quoted, not just part of it. Here are some additional examples of how to properly quote things::" +#: ../../rst/reference_appendices/YAMLSyntax.rst:220 +msgid "If your value starts with a quote the entire value must be quoted, not just part of it. Here are some additional examples of how to properly quote things:" msgstr "値を引用符でする場合は、値の一部だけでなく、値全体を引用符で囲む必要があります。値を引用する方法について正しい例を以下に示します。" -#: ../../rst/reference_appendices/YAMLSyntax.rst:196 -msgid "Not valid::" +#: ../../rst/reference_appendices/YAMLSyntax.rst:228 +msgid "Not valid:" msgstr "以下は有効ではありません。" -#: ../../rst/reference_appendices/YAMLSyntax.rst:200 +#: ../../rst/reference_appendices/YAMLSyntax.rst:234 msgid "In addition to ``'`` and ``\"`` there are a number of characters that are special (or reserved) and cannot be used as the first character of an unquoted scalar: ``[] {} > | * & ! % # ` @ ,``." msgstr "``'`` および ``\"`` 以外に、引用符で囲まれていないスカラーの最初の文字として使用できない特殊文字 (予約文字) がいくつかあります (``[] {} > | * & ! % # ` @ ,`` など)。" -#: ../../rst/reference_appendices/YAMLSyntax.rst:203 +#: ../../rst/reference_appendices/YAMLSyntax.rst:237 msgid "You should also be aware of ``? : -``. In YAML, they are allowed at the beginning of a string if a non-space character follows, but YAML processor implementations differ, so it's better to use quotes." msgstr "また、``? : -`` には常に注意してください。YAML では、スペース以外の文字が続く場合は、文字列の先頭で許可されますが、YAML プロセッサーの実装は異なるため、引用符を使用することが推奨されます。" -#: ../../rst/reference_appendices/YAMLSyntax.rst:206 -msgid "In Flow Collections, the rules are a bit more strict::" +#: ../../rst/reference_appendices/YAMLSyntax.rst:240 +msgid "In Flow Collections, the rules are a bit more strict:" msgstr "フローコレクションでは、ルールはもう少し厳密です。" -#: ../../rst/reference_appendices/YAMLSyntax.rst:212 -msgid "Boolean conversion is helpful, but this can be a problem when you want a literal `yes` or other boolean values as a string. In these cases just use quotes::" +#: ../../rst/reference_appendices/YAMLSyntax.rst:248 +msgid "Boolean conversion is helpful, but this can be a problem when you want a literal `yes` or other boolean values as a string. In these cases just use quotes:" msgstr "ブール値の変換は便利ですが、リテラルの `yes` や、文字列として他のブール値を指定する場合など問題になる場合があります。この場合は、引用符だけを使用します。" -#: ../../rst/reference_appendices/YAMLSyntax.rst:219 -msgid "YAML converts certain strings into floating-point values, such as the string `1.0`. If you need to specify a version number (in a requirements.yml file, for example), you will need to quote the value if it looks like a floating-point value::" +#: ../../rst/reference_appendices/YAMLSyntax.rst:257 +msgid "YAML converts certain strings into floating-point values, such as the string `1.0`. If you need to specify a version number (in a requirements.yml file, for example), you will need to quote the value if it looks like a floating-point value:" msgstr "YAML は、特定の文字列を文字列 `1.0` などの浮動小数点値に変換します。(たとえば requirements.yml ファイルで) バージョン番号を指定する必要があり、それが浮動小数点の値のように見える場合は、その値を引用符で囲む必要があります。" -#: ../../rst/reference_appendices/YAMLSyntax.rst:229 -#: ../../rst/reference_appendices/faq.rst:886 +#: ../../rst/reference_appendices/YAMLSyntax.rst:269 +#: ../../rst/reference_appendices/faq.rst:925 #: ../../rst/reference_appendices/glossary.rst:536 -#: ../../rst/reference_appendices/test_strategies.rst:267 +#: ../../rst/reference_appendices/test_strategies.rst:296 msgid ":ref:`working_with_playbooks`" msgstr ":ref:`working_with_playbooks`" -#: ../../rst/reference_appendices/YAMLSyntax.rst:230 +#: ../../rst/reference_appendices/YAMLSyntax.rst:270 msgid "Learn what playbooks can do and how to write/run them." msgstr "Playbook でできることと、Playbook を記述および実行する方法を学びます。" -#: ../../rst/reference_appendices/YAMLSyntax.rst:231 +#: ../../rst/reference_appendices/YAMLSyntax.rst:271 msgid "`YAMLLint `_" msgstr "`YAMLLint `_" -#: ../../rst/reference_appendices/YAMLSyntax.rst:232 +#: ../../rst/reference_appendices/YAMLSyntax.rst:272 msgid "YAML Lint (online) helps you debug YAML syntax if you are having problems" msgstr "YAML ヒント (オンライン) は、問題が発生した場合に YAML 構文のデバッグに役立ちます。" -#: ../../rst/reference_appendices/YAMLSyntax.rst:233 +#: ../../rst/reference_appendices/YAMLSyntax.rst:273 msgid "`GitHub examples directory `_" -msgstr "`GitHub examples ディレクトリー `_" +msgstr "`GitHub examples directory `_" -#: ../../rst/reference_appendices/YAMLSyntax.rst:234 +#: ../../rst/reference_appendices/YAMLSyntax.rst:274 msgid "Complete playbook files from the github project source" msgstr "Github プロジェクトソースの完全な Playbook ファイル" -#: ../../rst/reference_appendices/YAMLSyntax.rst:235 +#: ../../rst/reference_appendices/YAMLSyntax.rst:275 msgid "`Wikipedia YAML syntax reference `_" -msgstr "`Wikipedia YAML 構文リファレンス `_" +msgstr "`Wikipedia YAML syntax reference `_" -#: ../../rst/reference_appendices/YAMLSyntax.rst:236 +#: ../../rst/reference_appendices/YAMLSyntax.rst:276 msgid "A good guide to YAML syntax" msgstr "YAML 構文の適切なガイド" -#: ../../rst/reference_appendices/YAMLSyntax.rst:237 +#: ../../rst/reference_appendices/YAMLSyntax.rst:277 msgid "`Mailing List `_" -msgstr "`メーリングリスト `_" +msgstr "`Mailing List `_" -#: ../../rst/reference_appendices/YAMLSyntax.rst:238 +#: ../../rst/reference_appendices/YAMLSyntax.rst:278 msgid "Questions? Help? Ideas? Stop by the list on Google Groups" msgstr "ご質問はございますか。サポートが必要ですか。ご提案はございますか。Google グループの一覧をご覧ください。" -#: ../../rst/reference_appendices/YAMLSyntax.rst:239 +#: ../../rst/reference_appendices/YAMLSyntax.rst:279 #: ../../rst/reference_appendices/common_return_values.rst:250 #: ../../rst/reference_appendices/glossary.rst:542 -#: ../../rst/reference_appendices/release_and_maintenance.rst:260 -#: ../../rst/reference_appendices/test_strategies.rst:273 +#: ../../rst/reference_appendices/release_and_maintenance.rst:394 +#: ../../rst/reference_appendices/test_strategies.rst:302 msgid ":ref:`communication_irc`" msgstr ":ref:`communication_irc`" -#: ../../rst/reference_appendices/YAMLSyntax.rst:240 +#: ../../rst/reference_appendices/YAMLSyntax.rst:280 msgid "How to join Ansible chat channels (join #yaml for yaml-specific questions)" msgstr "Ansible チャットチャンネルに参加する方法 (yaml 固有の質問は #yaml に参加してください)" -#: ../../rst/reference_appendices/YAMLSyntax.rst:242 +#: ../../rst/reference_appendices/YAMLSyntax.rst:282 msgid "`YAML 1.1 Specification `_" msgstr "`YAML 1.1 Specification `_" -#: ../../rst/reference_appendices/YAMLSyntax.rst:242 +#: ../../rst/reference_appendices/YAMLSyntax.rst:282 msgid "The Specification for YAML 1.1, which PyYAML and libyaml are currently implementing" msgstr "PyYAML および libyaml が現在実装されている YAML 1.1 の仕様" -#: ../../rst/reference_appendices/YAMLSyntax.rst:244 +#: ../../rst/reference_appendices/YAMLSyntax.rst:284 msgid "`YAML 1.2 Specification `_" -msgstr "`YAML 1.2 仕様 `_" +msgstr "`YAML 1.2 Specification `_" -#: ../../rst/reference_appendices/YAMLSyntax.rst:245 +#: ../../rst/reference_appendices/YAMLSyntax.rst:285 msgid "For completeness, YAML 1.2 is the successor of 1.1" msgstr "完全を期すため、YAML 1.2 は 1.1 の後継となります。" @@ -241,7 +241,6 @@ msgid "Ansible Automation Hub" msgstr "Ansible Automation Hub" #: ../../rst/reference_appendices/automationhub.rst:8 -#: ../../rst/reference_appendices/tower.rst:8 msgid "Red Hat Ansible Automation Platform will soon be available on Microsoft Azure. `Sign up to preview the experience `_." msgstr "Red Hat Ansible Automation Platform は、まもなく Microsoft Azure でも使用できるようになります。`Sign up to preview the experience `_。" @@ -312,7 +311,7 @@ msgstr "直前と現在の状態の相違点に関する情報。通常、``befo #: ../../rst/reference_appendices/common_return_values.rst:55 msgid "failed" -msgstr "failed" +msgstr "失敗" #: ../../rst/reference_appendices/common_return_values.rst:56 msgid "A boolean that indicates if the task was failed or not." @@ -352,7 +351,7 @@ msgstr "このキーが存在する場合には、タスクに対してループ #: ../../rst/reference_appendices/common_return_values.rst:175 msgid "skipped" -msgstr "skipped" +msgstr "スキップ済" #: ../../rst/reference_appendices/common_return_values.rst:176 msgid "A boolean that indicates if the task was skipped or not" @@ -432,12 +431,12 @@ msgid "This key contains a list of dictionaries that will be presented to the us msgstr "このキーには、ユーザーに表示されるディクショナリー一覧が含まれます。ディクショナリーのキーは `msg` と `version` で、値は文字列です。`version` キーの値は空白の文字列にすることができます。" #: ../../rst/reference_appendices/common_return_values.rst:244 -#: ../../rst/reference_appendices/test_strategies.rst:265 +#: ../../rst/reference_appendices/test_strategies.rst:294 msgid ":ref:`list_of_collections`" msgstr ":ref:`list_of_collections`" #: ../../rst/reference_appendices/common_return_values.rst:245 -#: ../../rst/reference_appendices/test_strategies.rst:266 +#: ../../rst/reference_appendices/test_strategies.rst:295 msgid "Browse existing collections, modules, and plugins" msgstr "既存のコレクション、モジュール、およびプラグインの閲覧" @@ -451,7 +450,7 @@ msgstr "コアモジュールおよび追加モジュールのソースの参照 #: ../../rst/reference_appendices/common_return_values.rst:248 msgid "`Mailing List `_" -msgstr "`メーリングリスト `_" +msgstr "`Mailing List `_" #: ../../rst/reference_appendices/common_return_values.rst:249 msgid "Development mailing list" @@ -459,8 +458,8 @@ msgstr "開発メーリングリスト" #: ../../rst/reference_appendices/common_return_values.rst:251 #: ../../rst/reference_appendices/glossary.rst:543 -#: ../../rst/reference_appendices/release_and_maintenance.rst:261 -#: ../../rst/reference_appendices/test_strategies.rst:274 +#: ../../rst/reference_appendices/release_and_maintenance.rst:395 +#: ../../rst/reference_appendices/test_strategies.rst:303 msgid "How to join Ansible chat channels" msgstr "Ansible チャットチャンネルへの参加方法" @@ -991,6 +990,7 @@ msgstr "非推奨になるバージョン" #: ../../rst/reference_appendices/config.rst:411 #: ../../rst/reference_appendices/config.rst:3211 #: ../../rst/reference_appendices/config.rst:3641 +#: ../../rst/reference_appendices/release_and_maintenance.rst:83 msgid "2.15" msgstr "2.15" @@ -1025,7 +1025,7 @@ msgstr "cowsay_enabled_stencils" #: ../../rst/reference_appendices/config.rst:3221 #: ../../rst/reference_appendices/config.rst:3245 #: ../../rst/reference_appendices/config.rst:3651 -#: ../../rst/reference_appendices/release_and_maintenance.rst:86 +#: ../../rst/reference_appendices/release_and_maintenance.rst:87 msgid "2.11" msgstr "2.11" @@ -1157,7 +1157,7 @@ msgstr "``~/.ansible``" #: ../../rst/reference_appendices/config.rst:227 #: ../../rst/reference_appendices/config.rst:2609 -#: ../../rst/reference_appendices/release_and_maintenance.rst:83 +#: ../../rst/reference_appendices/release_and_maintenance.rst:84 msgid "2.14" msgstr "2.14" @@ -1282,7 +1282,7 @@ msgstr "become プラグインに使用するパスワードファイル。--bec #: ../../rst/reference_appendices/config.rst:317 #: ../../rst/reference_appendices/config.rst:948 #: ../../rst/reference_appendices/config.rst:3064 -#: ../../rst/reference_appendices/release_and_maintenance.rst:85 +#: ../../rst/reference_appendices/release_and_maintenance.rst:86 msgid "2.12" msgstr "2.12" @@ -1565,8 +1565,8 @@ msgstr "collections_path" #: ../../rst/reference_appendices/config.rst:3141 #: ../../rst/reference_appendices/config.rst:3153 #: ../../rst/reference_appendices/config.rst:3359 -#: ../../rst/reference_appendices/release_and_maintenance.rst:87 #: ../../rst/reference_appendices/release_and_maintenance.rst:88 +#: ../../rst/reference_appendices/release_and_maintenance.rst:89 msgid "2.10" msgstr "2.10" @@ -2284,7 +2284,7 @@ msgstr ":envvar:`_ANSIBLE_COVERAGE_REMOTE_OUTPUT`" #: ../../rst/reference_appendices/config.rst #: ../../rst/reference_appendices/general_precedence.rst:23 -#: ../../rst/reference_appendices/general_precedence.rst:92 +#: ../../rst/reference_appendices/general_precedence.rst:98 msgid "Variables" msgstr "変数" @@ -2294,7 +2294,7 @@ msgstr "変数" #: ../../rst/reference_appendices/playbooks_keywords.rst:311 #: ../../rst/reference_appendices/playbooks_keywords.rst:434 msgid "name" -msgstr "name" +msgstr "名前" #: ../../rst/reference_appendices/config.rst:966 msgid "`_ansible_coverage_remote_output`" @@ -2881,7 +2881,7 @@ msgstr "``/etc/ansible/hosts``" #: ../../rst/reference_appendices/config.rst:1335 msgid "inventory" -msgstr "inventory" +msgstr "インベントリー" #: ../../rst/reference_appendices/config.rst:1337 msgid ":envvar:`ANSIBLE_INVENTORY`" @@ -3281,7 +3281,7 @@ msgstr "DEFAULT_NO_TARGET_SYSLOG" #: ../../rst/reference_appendices/config.rst:1615 #: ../../rst/reference_appendices/config.rst:3892 -msgid "Toggle Ansible logging to syslog on the target when it executes tasks. On Windows hosts this will disable a newer style PowerShell modules from writting to the event log." +msgid "Toggle Ansible logging to syslog on the target when it executes tasks. On Windows hosts this will disable a newer style PowerShell modules from writing to the event log." msgstr "タスクの実行時に、Ansible ログをターゲットの syslog へ切り替えます。Windows ホストでは、これにより、新しいスタイルの PowerShell モジュールがイベントログに書き込むことができなくなります。" #: ../../rst/reference_appendices/config.rst:1620 @@ -4115,7 +4115,7 @@ msgstr "コレクションのインストール中に GPG 署名の検証を無 #: ../../rst/reference_appendices/config.rst:2195 #: ../../rst/reference_appendices/config.rst:2224 -#: ../../rst/reference_appendices/release_and_maintenance.rst:84 +#: ../../rst/reference_appendices/release_and_maintenance.rst:85 msgid "2.13" msgstr "2.13" @@ -4182,7 +4182,7 @@ msgid "GALAXY_IGNORE_INVALID_SIGNATURE_STATUS_CODES" msgstr "GALAXY_IGNORE_INVALID_SIGNATURE_STATUS_CODES" #: ../../rst/reference_appendices/config.rst:2249 -msgid "A list of GPG status codes to ignore during GPG signature verfication. See L(https://github.com/gpg/gnupg/blob/master/doc/DETAILS#general-status-codes) for status code descriptions. If fewer signatures successfully verify the collection than `GALAXY_REQUIRED_VALID_SIGNATURE_COUNT`, signature verification will fail even if all error codes are ignored." +msgid "A list of GPG status codes to ignore during GPG signature verification. See L(https://github.com/gpg/gnupg/blob/master/doc/DETAILS#general-status-codes) for status code descriptions. If fewer signatures successfully verify the collection than `GALAXY_REQUIRED_VALID_SIGNATURE_COUNT`, signature verification will fail even if all error codes are ignored." msgstr "GPG 署名の検証中に無視する GPG ステータスコードのリスト。ステータスコードの説明は、L(https://github.com/gpg/gnupg/blob/master/doc/DETAILS#general-status-codes) を参照してください。コレクションの検証で正常な署名数が `GALAXY_REQUIRED_VALID_SIGNATURE_COUNT` よりも少ない場合には、エラーコードが無視されている場合でも署名の検証に失敗します。" #: ../../rst/reference_appendices/config.rst:2252 @@ -6139,7 +6139,7 @@ msgid "See also :ref:`GALAXY_GPG_KEYRING `" msgstr "「:ref:`GALAXY_GPG_KEYRING `」も参照してください。" #: ../../rst/reference_appendices/config.rst:4287 -msgid "A list of GPG status codes to ignore during GPG signature verfication. See L(https://github.com/gpg/gnupg/blob/master/doc/DETAILS#general-status-codes) for status code descriptions.If fewer signatures successfully verify the collection than `GALAXY_REQUIRED_VALID_SIGNATURE_COUNT`, signature verification will fail even if all error codes are ignored." +msgid "A list of GPG status codes to ignore during GPG signature verification. See L(https://github.com/gpg/gnupg/blob/master/doc/DETAILS#general-status-codes) for status code descriptions.If fewer signatures successfully verify the collection than `GALAXY_REQUIRED_VALID_SIGNATURE_COUNT`, signature verification will fail even if all error codes are ignored." msgstr "GPG 署名の検証中に無視する GPG ステータスコードのリスト。ステータスコードの説明は、L(https://github.com/gpg/gnupg/blob/master/doc/DETAILS#general-status-codes) を参照してください。コレクションの検証で正常な署名数が `GALAXY_REQUIRED_VALID_SIGNATURE_COUNT` よりも少ない場合には、エラーコードが無視されている場合でも署名の検証に失敗します。" #: ../../rst/reference_appendices/config.rst:4289 @@ -6531,705 +6531,726 @@ msgid "You can set a ``ProxyCommand`` in the ``ansible_ssh_common_args`` invento msgstr "``ansible_ssh_common_args`` インベントリー変数に ``ProxyCommand`` を設定することができます。該当のホストに接続したときに、この変数に指定した引数は、sftp/scp/ssh コマンドラインに追加されます。次のインベントリーグループについて考えてみます。" #: ../../rst/reference_appendices/faq.rst:117 -msgid "You can create `group_vars/gatewayed.yml` with the following contents::" +msgid "You can create `group_vars/gatewayed.yml` with the following contents:" msgstr "以下の内容で `group_vars/gatewayed.yml` を作成できます。" -#: ../../rst/reference_appendices/faq.rst:121 +#: ../../rst/reference_appendices/faq.rst:123 msgid "Ansible will append these arguments to the command line when trying to connect to any hosts in the group ``gatewayed``. (These arguments are used in addition to any ``ssh_args`` from ``ansible.cfg``, so you do not need to repeat global ``ControlPersist`` settings in ``ansible_ssh_common_args``.)" msgstr "Ansible は、``gatewayed`` グループのホストに接続しようとすると、コマンドラインに 3 つの引数を追加します。(``ansible.cfg`` からの ``ssh_args`` に加えて、上記の引数が使用されるため、``ansible_ssh_common_args`` のグローバル ``ControlPersist`` 設定を繰り返す必要はありません)。" -#: ../../rst/reference_appendices/faq.rst:126 +#: ../../rst/reference_appendices/faq.rst:128 msgid "Note that ``ssh -W`` is available only with OpenSSH 5.4 or later. With older versions, it's necessary to execute ``nc %h:%p`` or some equivalent command on the bastion host." msgstr "``ssh -W`` は、OpenSSH 5.4 以降でのみ利用できます。以前のバージョンでは、bastion ホストで ``nc %h:%p`` を実行するか、同等のコマンドを実行する必要があります。" -#: ../../rst/reference_appendices/faq.rst:130 +#: ../../rst/reference_appendices/faq.rst:132 msgid "With earlier versions of Ansible, it was necessary to configure a suitable ``ProxyCommand`` for one or more hosts in ``~/.ssh/config``, or globally by setting ``ssh_args`` in ``ansible.cfg``." msgstr "Ansible の以前のバージョンでは、``~/.ssh/config`` のホスト 1 台または複数台に適切な ``ProxyCommand`` を設定するか、``ansible.cfg`` に ``ssh_args`` をグローバルに設定する必要がありました。" -#: ../../rst/reference_appendices/faq.rst:137 +#: ../../rst/reference_appendices/faq.rst:139 msgid "How do I get Ansible to notice a dead target in a timely manner?" msgstr "Ansible がダウンしているターゲットを適宜検出できるようにするにはどうすれば良いですか" -#: ../../rst/reference_appendices/faq.rst:139 -msgid "You can add ``-o ServerAliveInterval=NumberOfSeconds`` in ``ssh_args`` from ``ansible.cfg``. Without this option, SSH and therefore Ansible will wait until the TCP connection times out. Another solution is to add ``ServerAliveInterval`` into your global SSH configuration. A good value for ``ServerAliveInterval`` is up to you to decide; keep in mind that ``ServerAliveCountMax=3`` is the SSH default so any value you set will be tripled before terminating the SSH session." -msgstr "``ansible.cfg`` から、``ssh_args`` に ``-o ServerAliveInterval=NumberOfSeconds`` を追加できます。このオプションがないと、SSH と Ansible は TCP 接続がタイムアウトになるまで待機します。別の解決方法は、``ServerAliveInterval`` をグローバルの SSH 設定に追加することです。``ServerAliveInterval`` に適した値は、ユーザーが決定します。ただし、SSH のデフォルトは ``ServerAliveCountMax=3`` であるため、SSH セッションの終了前に設定した値が 3 倍になる点に注意してください。" +#: ../../rst/reference_appendices/faq.rst:141 +msgid "You can add ``-o ServerAliveInterval=NumberOfSeconds`` with the ``ssh_args`` parameter in `SSH connection plugin `_. Without this option, SSH and therefore Ansible will wait until the TCP connection times out. Another solution is to add ``ServerAliveInterval`` into your global SSH configuration. A good value for ``ServerAliveInterval`` is up to you to decide; keep in mind that ``ServerAliveCountMax=3`` is the SSH default so any value you set will be tripled before terminating the SSH session." +msgstr "`SSH connection plugin ` から、``ssh_args`` パラメーターに指定して ``-o ServerAliveInterval=NumberOfSeconds`` を追加できます。このオプションがないと、SSH と Ansible は TCP 接続がタイムアウトになるまで待機します。別の解決方法は、``ServerAliveInterval`` をグローバルの SSH 設定に追加することです。``ServerAliveInterval`` に適した値は、ユーザーが決定します。ただし、SSH のデフォルトは ``ServerAliveCountMax=3`` であるため、SSH セッションの終了前に設定した値が 3 倍になる点に注意してください。" -#: ../../rst/reference_appendices/faq.rst:147 +#: ../../rst/reference_appendices/faq.rst:149 msgid "How do I speed up run of ansible for servers from cloud providers (EC2, openstack,.. )?" msgstr "クラウドプロバイダー (EC2、openstack など) からのサーバーで Ansible の実行を高速化するにはどうすれば良いですか" -#: ../../rst/reference_appendices/faq.rst:149 +#: ../../rst/reference_appendices/faq.rst:151 msgid "Don't try to manage a fleet of machines of a cloud provider from your laptop. Rather connect to a management node inside this cloud provider first and run Ansible from there." msgstr "ラップトップからクラウドプロバイダーのマシンのフリートを管理しようとしないでください。代わりに、最初にこのクラウドプロバイダー内の管理ノードに接続し、そこから Ansible を実行します。" -#: ../../rst/reference_appendices/faq.rst:155 +#: ../../rst/reference_appendices/faq.rst:157 msgid "How do I handle not having a Python interpreter at /usr/bin/python on a remote machine?" msgstr "リモートマシンの /usr/bin/python に Python インタープリターを配置せずに対応するにはどうすれば良いですか" -#: ../../rst/reference_appendices/faq.rst:157 +#: ../../rst/reference_appendices/faq.rst:159 msgid "While you can write Ansible modules in any language, most Ansible modules are written in Python, including the ones central to letting Ansible work." msgstr "Ansible モジュールはどの言語でも記述できますが、Ansible の機能を司るコアモジュールなど、Ansible モジュールの多くは Python で記述されています。" -#: ../../rst/reference_appendices/faq.rst:160 +#: ../../rst/reference_appendices/faq.rst:162 msgid "By default, Ansible assumes it can find a :command:`/usr/bin/python` on your remote system that is either Python2, version 2.6 or higher or Python3, 3.5 or higher." msgstr "デフォルトでは、Ansible は、Python2 のバージョン 2.6 以降または Python3 の 3.5 以降のリモートマシンの :command:`/usr/bin/python` を検出できます。" -#: ../../rst/reference_appendices/faq.rst:163 +#: ../../rst/reference_appendices/faq.rst:165 msgid "Setting the inventory variable ``ansible_python_interpreter`` on any host will tell Ansible to auto-replace the Python interpreter with that value instead. Thus, you can point to any Python you want on the system if :command:`/usr/bin/python` on your system does not point to a compatible Python interpreter." msgstr "ホストにインベントリー変数 ``ansible_python_interpreter`` を設定すると、Ansible に対して、代わりに Python インタープリターをこのインベントリー変数の値に自動で置き換えるように指示を出します。このように、お使いのシステムの :command:`/usr/bin/python` が互換性のある Python インタープリターを指定していない場合は、使用する Python を指定できます。" -#: ../../rst/reference_appendices/faq.rst:168 -msgid "Some platforms may only have Python 3 installed by default. If it is not installed as :command:`/usr/bin/python`, you will need to configure the path to the interpreter via ``ansible_python_interpreter``. Although most core modules will work with Python 3, there may be some special purpose ones which do not or you may encounter a bug in an edge case. As a temporary workaround you can install Python 2 on the managed host and configure Ansible to use that Python via ``ansible_python_interpreter``. If there's no mention in the module's documentation that the module requires Python 2, you can also report a bug on our `bug tracker `_ so that the incompatibility can be fixed in a future release." -msgstr "プラットフォームによっては、デフォルトで Python3 のみがインストールされている場合があります。:command:`/usr/bin/python` としてインストールされていない場合は、``ansible_python_interpreter`` を介してインタープリターへのパスを設定する必要があります。コアモジュールの多くが Python 3 と連携しますが、いくつかの特殊用途のモジュールは動作しないかもしれないし、特殊なケースでバグが発生するかもしれません。一時的な回避策として、管理対象ホストに Python 2をインストールし、``ansible_python_interpreter`` からその Python を使用するように Ansible を構成できます。モジュールのドキュメントに Python 2 が必要あるとの記載がない場合は、今後このリリースで非互換性の問題が解決されるように、`バグトラッカー `_ で、バグを報告できます。" +#: ../../rst/reference_appendices/faq.rst:170 +msgid "Some platforms may only have Python 3 installed by default. If it is not installed as :command:`/usr/bin/python`, you will need to configure the path to the interpreter through ``ansible_python_interpreter``. Although most core modules will work with Python 3, there may be some special purpose ones which do not or you may encounter a bug in an edge case. As a temporary workaround you can install Python 2 on the managed host and configure Ansible to use that Python through ``ansible_python_interpreter``. If there's no mention in the module's documentation that the module requires Python 2, you can also report a bug on our `bug tracker `_ so that the incompatibility can be fixed in a future release." +msgstr "プラットフォームによっては、デフォルトで Python3 のみがインストールされている場合があります。:command:`/usr/bin/python` としてインストールされていない場合は、``ansible_python_interpreter`` を介してインタープリターへのパスを設定する必要があります。コアモジュールの多くが Python 3 と連携しますが、いくつかの特殊用途のモジュールは動作しないかもしれないし、特殊なケースでバグが発生するかもしれません。一時的な回避策として、管理対象ホストに Python 2をインストールし、``ansible_python_interpreter`` からその Python を使用するように Ansible を構成できます。モジュールのドキュメントに Python 2 が必要あるとの記載がない場合は、今後このリリースで非互換性の問題が解決されるように、`bug tracker `_ で、バグを報告できます。" -#: ../../rst/reference_appendices/faq.rst:177 +#: ../../rst/reference_appendices/faq.rst:179 msgid "Do not replace the shebang lines of your python modules. Ansible will do this for you automatically at deploy time." msgstr "Python モジュールのシバン行は置き換えないでください。デプロイ時に Ansible が自動でこれを行います。" -#: ../../rst/reference_appendices/faq.rst:179 +#: ../../rst/reference_appendices/faq.rst:181 msgid "Also, this works for ANY interpreter, for example ruby: ``ansible_ruby_interpreter``, perl: ``ansible_perl_interpreter``, and so on, so you can use this for custom modules written in any scripting language and control the interpreter location." msgstr "また、これは、ruby などのすべてのインタープリター (ruby: ``ansible_ruby_interpreter``、perl: ``ansible_perl_interpreter`` など) で機能するため、任意のスクリプト言語で記述したカスタムモジュールにこれを使用して、インタープリターの場所を管理できます。" -#: ../../rst/reference_appendices/faq.rst:182 +#: ../../rst/reference_appendices/faq.rst:184 msgid "Keep in mind that if you put ``env`` in your module shebang line (``#!/usr/bin/env ``), this facility will be ignored so you will be at the mercy of the remote `$PATH`." msgstr "モジュールのシバンの行 (``#!/usr/bin/env ``) に ``env`` を挿入すると、この機能は無視され、リモートの `$PATH` の設定が使用されます。" -#: ../../rst/reference_appendices/faq.rst:188 +#: ../../rst/reference_appendices/faq.rst:190 msgid "How do I handle the package dependencies required by Ansible package dependencies during Ansible installation ?" msgstr "Ansible インストール中に Ansible パッケージに必要な依存関係にどのように対応すれば良いですか" -#: ../../rst/reference_appendices/faq.rst:190 +#: ../../rst/reference_appendices/faq.rst:192 msgid "While installing Ansible, sometimes you may encounter errors such as `No package 'libffi' found` or `fatal error: Python.h: No such file or directory` These errors are generally caused by the missing packages, which are dependencies of the packages required by Ansible. For example, `libffi` package is dependency of `pynacl` and `paramiko` (Ansible -> paramiko -> pynacl -> libffi)." msgstr "Ansible のインストール中に、`No package 'libffi' found` または `fatal error: Python.h: No such file or directory` などのエラーが発生する場合があります。このようなエラーは通常、Ansible で必要なパッケージの依存関係パッケージが不足している場合に発生します。たとえば、`libffi` パッケージは `pynacl` および `paramiko` の依存関係です (Ansible -> paramiko -> pynacl -> libffi)。" -#: ../../rst/reference_appendices/faq.rst:194 +#: ../../rst/reference_appendices/faq.rst:196 msgid "In order to solve these kinds of dependency issues, you might need to install required packages using the OS native package managers, such as `yum`, `dnf`, or `apt`, or as mentioned in the package installation guide." msgstr "このような依存関係の問題を解決するには、OS ネイティブのパッケージマネージャー (`yum`、`dnf`、`apt`、またはパッケージのインストールガイドに記載のもの) を使用して必要なパッケージをインストールしないといけない場合があります。" -#: ../../rst/reference_appendices/faq.rst:197 +#: ../../rst/reference_appendices/faq.rst:199 msgid "Refer to the documentation of the respective package for such dependencies and their installation methods." msgstr "このような依存関係とそのインストール方法については、各パッケージのドキュメントを参照してください。" -#: ../../rst/reference_appendices/faq.rst:200 +#: ../../rst/reference_appendices/faq.rst:202 msgid "Common Platform Issues" msgstr "一般的なプラットフォームの問題" -#: ../../rst/reference_appendices/faq.rst:203 +#: ../../rst/reference_appendices/faq.rst:205 msgid "What customer platforms does Red Hat support?" msgstr "Red Hat では、どのような顧客のプラットフォームをサポートしていますか" -#: ../../rst/reference_appendices/faq.rst:205 +#: ../../rst/reference_appendices/faq.rst:207 msgid "A number of them! For a definitive list please see this `Knowledge Base article `_." msgstr "その数は多数です。具体的な一覧は、`ナレッジベースの記事 `_ を参照してください。" -#: ../../rst/reference_appendices/faq.rst:208 +#: ../../rst/reference_appendices/faq.rst:210 msgid "Running in a virtualenv" msgstr "virtualenv での実行" -#: ../../rst/reference_appendices/faq.rst:210 +#: ../../rst/reference_appendices/faq.rst:212 msgid "You can install Ansible into a virtualenv on the controller quite simply:" msgstr "コントローラーの virtualenv に Ansible を簡単にインストールできます。" -#: ../../rst/reference_appendices/faq.rst:218 +#: ../../rst/reference_appendices/faq.rst:220 msgid "If you want to run under Python 3 instead of Python 2 you may want to change that slightly:" msgstr "Python 2 ではなく Python 3 で実行する場合は、以下のように変更する場合があります。" -#: ../../rst/reference_appendices/faq.rst:226 -msgid "If you need to use any libraries which are not available via pip (for instance, SELinux Python bindings on systems such as Red Hat Enterprise Linux or Fedora that have SELinux enabled), then you need to install them into the virtualenv. There are two methods:" +#: ../../rst/reference_appendices/faq.rst:228 +msgid "If you need to use any libraries which are not available through pip (for instance, SELinux Python bindings on systems such as Red Hat Enterprise Linux or Fedora that have SELinux enabled), then you need to install them into the virtualenv. There are two methods:" msgstr "pip で入手できないライブラリーを使用する必要がある場合は (例: SELinux が有効な Red Hat Enterprise Linux または Fedora などのシステムにある SELinux Python のバインディング)、virtualenv にインストールする必要があります。2 つの方法があります。" -#: ../../rst/reference_appendices/faq.rst:230 +#: ../../rst/reference_appendices/faq.rst:232 msgid "When you create the virtualenv, specify ``--system-site-packages`` to make use of any libraries installed in the system's Python:" msgstr "virtualenv の作成時に、``--system-site-packages`` を指定して、お使いのシステムの Python にインストールされているライブラリーを使用します。" -#: ../../rst/reference_appendices/faq.rst:237 +#: ../../rst/reference_appendices/faq.rst:239 msgid "Copy those files in manually from the system. For instance, for SELinux bindings you might do:" msgstr "システムから手動でこれらのファイルをコピーします。たとえば、SELinux バインディングでは、以下を行うことができます。" -#: ../../rst/reference_appendices/faq.rst:247 +#: ../../rst/reference_appendices/faq.rst:249 msgid "Running on macOS" msgstr "macOS での実行" -#: ../../rst/reference_appendices/faq.rst:249 +#: ../../rst/reference_appendices/faq.rst:251 msgid "When executing Ansible on a system with macOS as a controller machine one might encounter the following error:" msgstr "コントローラーマシンとして macOS を使用しているシステムで Ansible を実行すると、次のエラーが発生する場合があります。" -#: ../../rst/reference_appendices/faq.rst:252 +#: ../../rst/reference_appendices/faq.rst:254 msgid "+[__NSCFConstantString initialize] may have been in progress in another thread when fork() was called. We cannot safely call it or ignore it in the fork() child process. Crashing instead. Set a breakpoint on objc_initializeAfterForkError to debug. ERROR! A worker was found in a dead state" msgstr "+[__NSCFConstantString initialize] may have been in progress in another thread when fork() was called. We cannot safely call it or ignore it in the fork() child process. Crashing instead. Set a breakpoint on objc_initializeAfterForkError to debug. ERROR! A worker was found in a dead state" -#: ../../rst/reference_appendices/faq.rst:255 +#: ../../rst/reference_appendices/faq.rst:257 msgid "In general the recommended workaround is to set the following environment variable in your shell:" msgstr "一般的に推奨される回避策は、シェルに次の環境変数を設定することです。" -#: ../../rst/reference_appendices/faq.rst:263 +#: ../../rst/reference_appendices/faq.rst:265 msgid "Running on BSD" msgstr "BSD での実行" -#: ../../rst/reference_appendices/faq.rst:265 +#: ../../rst/reference_appendices/faq.rst:267 msgid ":ref:`working_with_bsd`" msgstr ":ref:`working_with_bsd`" -#: ../../rst/reference_appendices/faq.rst:269 +#: ../../rst/reference_appendices/faq.rst:271 msgid "Running on Solaris" msgstr "Solaris での実行" -#: ../../rst/reference_appendices/faq.rst:271 +#: ../../rst/reference_appendices/faq.rst:273 msgid "By default, Solaris 10 and earlier run a non-POSIX shell which does not correctly expand the default tmp directory Ansible uses ( :file:`~/.ansible/tmp`). If you see module failures on Solaris machines, this is likely the problem. There are several workarounds:" msgstr "デフォルトでは Solaris 10 以前では POSIX 以外のシェルを実行しますが、Ansible が使用するデフォルトの tmp ディレクトリー (:file:`~/.ansible/tmp`) を正しく展開しません。Solaris マシンでモジュールの問題が発生する場合には、上記が問題の可能性が高いです。回避策はいくつかあります。" -#: ../../rst/reference_appendices/faq.rst:275 -msgid "You can set ``remote_tmp`` to a path that will expand correctly with the shell you are using (see the plugin documentation for :ref:`C shell`, :ref:`fish shell`, and :ref:`Powershell`). For example, in the ansible config file you can set::" +#: ../../rst/reference_appendices/faq.rst:277 +msgid "You can set ``remote_tmp`` to a path that will expand correctly with the shell you are using (see the plugin documentation for :ref:`C shell`, :ref:`fish shell`, and :ref:`Powershell`). For example, in the ansible config file you can set:" msgstr "使用するシェル (:ref:`C shell`、:ref:`fish shell`、および :ref:`Powershell` のプラグインのドキュメントを参照) で正しく展開されるパスに ``remote_tmp`` を設定します。設定する ansible 設定ファイルで、以下を指定します。" -#: ../../rst/reference_appendices/faq.rst:281 -msgid "In Ansible 2.5 and later, you can also set it per-host in inventory like this::" +#: ../../rst/reference_appendices/faq.rst:285 +msgid "In Ansible 2.5 and later, you can also set it per-host in inventory like this:" msgstr "Ansible 2.5 以降では、以下のようにインベントリーでホストごとに設定することも可能です。" -#: ../../rst/reference_appendices/faq.rst:285 -msgid "You can set :ref:`ansible_shell_executable` to the path to a POSIX compatible shell. For instance, many Solaris hosts have a POSIX shell located at :file:`/usr/xpg4/bin/sh` so you can set this in inventory like so::" +#: ../../rst/reference_appendices/faq.rst:291 +msgid "You can set :ref:`ansible_shell_executable` to the path to a POSIX compatible shell. For instance, many Solaris hosts have a POSIX shell located at :file:`/usr/xpg4/bin/sh` so you can set this in inventory like so:" msgstr ":ref:`ansible_shell_executable` を、POSIX の互換性のあるパスに設定します。たとえば、多数の Solaris ホストでは POSIX シェルが、:file:`/usr/xpg4/bin/sh` に配置されているため、インベントリーにこの値を以下のように設定できます。" -#: ../../rst/reference_appendices/faq.rst:291 +#: ../../rst/reference_appendices/faq.rst:299 msgid "(bash, ksh, and zsh should also be POSIX compatible if you have any of those installed)." msgstr "(bash、ksh、または zsh のいずれかがインストールされている場合には、これも POSIX の互換性が必要です)。" -#: ../../rst/reference_appendices/faq.rst:294 +#: ../../rst/reference_appendices/faq.rst:302 msgid "Running on z/OS" msgstr "z/OS での実行" -#: ../../rst/reference_appendices/faq.rst:296 +#: ../../rst/reference_appendices/faq.rst:304 msgid "There are a few common errors that one might run into when trying to execute Ansible on z/OS as a target." msgstr "z/OS でターゲットとして Ansible を実行しようとすると、複数の共通のエラーが発生する可能性があります。" -#: ../../rst/reference_appendices/faq.rst:298 +#: ../../rst/reference_appendices/faq.rst:306 msgid "Version 2.7.6 of python for z/OS will not work with Ansible because it represents strings internally as EBCDIC." msgstr "z/OS 向けの Python バージョン 2.7.6 は、内部で文字列を EBCDIC として表現するため、Ansible では機能しない。" -#: ../../rst/reference_appendices/faq.rst:300 +#: ../../rst/reference_appendices/faq.rst:308 msgid "To get around this limitation, download and install a later version of `python for z/OS `_ (2.7.13 or 3.6.1) that represents strings internally as ASCII. Version 2.7.13 is verified to work." msgstr "この制限を回避するには、文字列を ASCII で表現する `python for z/OS `_ (2.7.13 または 3.6.1) をダウンロードしてインストールしてください。バージョン 2.7.13 では機能することが確認されています。" -#: ../../rst/reference_appendices/faq.rst:302 -msgid "When ``pipelining = False`` in `/etc/ansible/ansible.cfg` then Ansible modules are transferred in binary mode via sftp however execution of python fails with" +#: ../../rst/reference_appendices/faq.rst:310 +msgid "When ``pipelining = False`` in `/etc/ansible/ansible.cfg` then Ansible modules are transferred in binary mode through sftp however execution of python fails with" msgstr "`/etc/ansible/ansible.cfg` で ``pipelining = False`` と指定されている場合、以下により、Ansible モジュールは Python の実行エラーが何であっても、sftp 経由でバイナリーモードで転送される。" -#: ../../rst/reference_appendices/faq.rst:305 +#: ../../rst/reference_appendices/faq.rst:313 msgid "SyntaxError: Non-UTF-8 code starting with \\'\\\\x83\\' in file /a/user1/.ansible/tmp/ansible-tmp-1548232945.35-274513842609025/AnsiballZ_stat.py on line 1, but no encoding declared; see https://python.org/dev/peps/pep-0263/ for details" msgstr "SyntaxError: Non-UTF-8 code starting with \\'\\\\x83\\' in file /a/user1/.ansible/tmp/ansible-tmp-1548232945.35-274513842609025/AnsiballZ_stat.py on line 1, but no encoding declared; see https://python.org/dev/peps/pep-0263/ for details" -#: ../../rst/reference_appendices/faq.rst:307 +#: ../../rst/reference_appendices/faq.rst:315 msgid "To fix it set ``pipelining = True`` in `/etc/ansible/ansible.cfg`." msgstr "これを修正するには、`/etc/ansible/ansible.cfg` に ``pipelining = True`` を設定します。" -#: ../../rst/reference_appendices/faq.rst:309 +#: ../../rst/reference_appendices/faq.rst:317 msgid "Python interpret cannot be found in default location ``/usr/bin/python`` on target host." msgstr "Python インタープリターがターゲットホストのデフォルトの場所 ``/usr/bin/python`` で検出できない。" -#: ../../rst/reference_appendices/faq.rst:312 +#: ../../rst/reference_appendices/faq.rst:320 msgid "/usr/bin/python: EDC5129I No such file or directory" msgstr "/usr/bin/python: EDC5129I No such file or directory" -#: ../../rst/reference_appendices/faq.rst:314 +#: ../../rst/reference_appendices/faq.rst:322 msgid "To fix this set the path to the python installation in your inventory like so::" msgstr "これを解決するには、以下のようにインベントリーでパスを Python インストールに設定してください。" -#: ../../rst/reference_appendices/faq.rst:318 +#: ../../rst/reference_appendices/faq.rst:326 +msgid "zos1 ansible_python_interpreter=/usr/lpp/python/python-2017-04-12-py27/python27/bin/python" +msgstr "zos1 ansible_python_interpreter=/usr/lpp/python/python-2017-04-12-py27/python27/bin/python" + +#: ../../rst/reference_appendices/faq.rst:328 msgid "Start of python fails with ``The module libpython2.7.so was not found.``" msgstr "python の起動に失敗し、``The module libpython2.7.so was not found.`` が表示される。" -#: ../../rst/reference_appendices/faq.rst:321 +#: ../../rst/reference_appendices/faq.rst:331 msgid "EE3501S The module libpython2.7.so was not found." msgstr "EE3501S The module libpython2.7.so was not found." -#: ../../rst/reference_appendices/faq.rst:323 -msgid "On z/OS, you must execute python from gnu bash. If gnu bash is installed at ``/usr/lpp/bash``, you can fix this in your inventory by specifying an ``ansible_shell_executable``::" +#: ../../rst/reference_appendices/faq.rst:333 +msgid "On z/OS, you must execute python from gnu bash. If gnu bash is installed at ``/usr/lpp/bash``, you can fix this in your inventory by specifying an ``ansible_shell_executable``:" msgstr "z/OS では、gnu bash から python を実行する必要があります。gnu bash が ``/usr/lpp/bash`` にインストールされている場合は、インベントリーで ``ansible_shell_executable`` を指定して修正できます。" -#: ../../rst/reference_appendices/faq.rst:329 +#: ../../rst/reference_appendices/faq.rst:341 msgid "Running under fakeroot" msgstr "fakeroot 下で実行" -#: ../../rst/reference_appendices/faq.rst:331 +#: ../../rst/reference_appendices/faq.rst:343 msgid "Some issues arise as ``fakeroot`` does not create a full nor POSIX compliant system by default. It is known that it will not correctly expand the default tmp directory Ansible uses (:file:`~/.ansible/tmp`). If you see module failures, this is likely the problem. The simple workaround is to set ``remote_tmp`` to a path that will expand correctly (see documentation of the shell plugin you are using for specifics)." msgstr "``fakeroot`` は、デフォルトでは完全なシステムも POSIX 準拠のシステムも作成しないため、いくつかの問題が発生します。Ansible が使用するデフォルトの tmp ディレクトリー (:file:`~/.ansible/tmp`) を正しく展開しないことがわかっています。モジュール障害が発生している場合は、これが問題である可能性があります。簡単な回避策は、正しく展開されるパスに ``remote_tmp`` を設定することです (詳細については、使用している shell プラグインのドキュメントを参照してください)。" -#: ../../rst/reference_appendices/faq.rst:336 -msgid "For example, in the ansible config file (or via environment variable) you can set::" +#: ../../rst/reference_appendices/faq.rst:348 +msgid "For example, in the ansible config file (or through environment variable) you can set:" msgstr "設定する ansible 設定ファイルで (または環境変数を介して)、以下を指定します。" -#: ../../rst/reference_appendices/faq.rst:345 +#: ../../rst/reference_appendices/faq.rst:359 msgid "What is the best way to make content reusable/redistributable?" msgstr "コンテンツを再利用/再配信できるようにする最適な方法にはどんなものがありますか" -#: ../../rst/reference_appendices/faq.rst:347 +#: ../../rst/reference_appendices/faq.rst:361 msgid "If you have not done so already, read all about \"Roles\" in the playbooks documentation. This helps you make playbook content self-contained, and works well with things like git submodules for sharing content with others." msgstr "Playbook ドキュメントの「ロール」の情報をまだ確認していない場合は、一読してください。Playbook のコンテンツを自己完結型にし、git submodules などと連携させて、他とのコンテンツ共有が容易になります。" -#: ../../rst/reference_appendices/faq.rst:350 +#: ../../rst/reference_appendices/faq.rst:364 msgid "If some of these plugin types look strange to you, see the API documentation for more details about ways Ansible can be extended." msgstr "このようなプラグインタイプの詳細は、Ansible の拡張方法に関する詳細を API ドキュメントで確認してください。" -#: ../../rst/reference_appendices/faq.rst:355 +#: ../../rst/reference_appendices/faq.rst:369 msgid "Where does the configuration file live and what can I configure in it?" msgstr "設定ファイルの配置場所はどこですか。または、どのように設定すれば良いですか" -#: ../../rst/reference_appendices/faq.rst:358 +#: ../../rst/reference_appendices/faq.rst:372 msgid "See :ref:`intro_configuration`." msgstr "「:ref:`intro_configuration`」を参照してください。" -#: ../../rst/reference_appendices/faq.rst:363 +#: ../../rst/reference_appendices/faq.rst:377 msgid "How do I disable cowsay?" msgstr "cowsay はどのように無効化すれば良いですか" -#: ../../rst/reference_appendices/faq.rst:365 +#: ../../rst/reference_appendices/faq.rst:379 msgid "If cowsay is installed, Ansible takes it upon itself to make your day happier when running playbooks. If you decide that you would like to work in a professional cow-free environment, you can either uninstall cowsay, set ``nocows=1`` in ``ansible.cfg``, or set the :envvar:`ANSIBLE_NOCOWS` environment variable:" msgstr "cowsay がインストールされている場合は、Playbook を実行すると、Ansible がすべてを引き受けて処理します。プロフェッショナルな cowsay のない環境で作業する場合は、cowsay をアンインストールするか、``ansible.cfg`` に ``nocows=1`` を設定するか、:envvar:`ANSIBLE_NOCOWS` の環境変数を設定します。" -#: ../../rst/reference_appendices/faq.rst:376 +#: ../../rst/reference_appendices/faq.rst:390 msgid "How do I see a list of all of the ansible\\_ variables?" msgstr "ansible\\_ 変数一覧を確認するにはどうすれば良いですか" -#: ../../rst/reference_appendices/faq.rst:378 +#: ../../rst/reference_appendices/faq.rst:392 msgid "Ansible by default gathers \"facts\" about the machines under management, and these facts can be accessed in playbooks and in templates. To see a list of all of the facts that are available about a machine, you can run the ``setup`` module as an ad hoc action:" msgstr "Ansible はデフォルトで、管理対象のマシンの「ファクト」を収集し、このファクトには Playbook またはテンプレートでアクセスできます。あるマシンで利用可能なファクトの一覧を表示するには、``setup`` モジュールを ad-hoc アクションとして実行できます。" -#: ../../rst/reference_appendices/faq.rst:386 +#: ../../rst/reference_appendices/faq.rst:400 msgid "This will print out a dictionary of all of the facts that are available for that particular host. You might want to pipe the output to a pager.This does NOT include inventory variables or internal 'magic' variables. See the next question if you need more than just 'facts'." msgstr "これにより、特定のホストで利用可能な全ファクトのディクショナリーが出力されます。ページャーの出力をパイプする場合は、インベントリー変数や内部の「magic」変数は含まれません。「ファクト」以外の情報が必要な場合は、次の質問を確認してください。" -#: ../../rst/reference_appendices/faq.rst:394 +#: ../../rst/reference_appendices/faq.rst:408 msgid "How do I see all the inventory variables defined for my host?" msgstr "ホストに定義されたインベントリー変数をすべて確認するにはどうすれば良いですか" -#: ../../rst/reference_appendices/faq.rst:396 +#: ../../rst/reference_appendices/faq.rst:410 msgid "By running the following command, you can see inventory variables for a host:" msgstr "以下のコマンドを実行すると、ホストのインベントリー変数を確認できます。" -#: ../../rst/reference_appendices/faq.rst:406 +#: ../../rst/reference_appendices/faq.rst:420 msgid "How do I see all the variables specific to my host?" msgstr "ホスト固有の全変数を確認するにはどうすれば良いですか" -#: ../../rst/reference_appendices/faq.rst:408 +#: ../../rst/reference_appendices/faq.rst:422 msgid "To see all host specific variables, which might include facts and other sources:" msgstr "ホスト固有の変数をすべて確認するには以下を実行します (ファクトや他のソースが含まれる可能性があります)。" -#: ../../rst/reference_appendices/faq.rst:414 +#: ../../rst/reference_appendices/faq.rst:428 msgid "Unless you are using a fact cache, you normally need to use a play that gathers facts first, for facts included in the task above." msgstr "ファクトキャッシュを使用していない限り、上記のタスクに含まれるファクトについては、通常、先にファクトを収集するプレイを使用する必要があります。" -#: ../../rst/reference_appendices/faq.rst:420 +#: ../../rst/reference_appendices/faq.rst:434 msgid "How do I loop over a list of hosts in a group, inside of a template?" msgstr "テンプレート内のグループに含まれるホストの一覧をループするにはどうすれば良いですか" -#: ../../rst/reference_appendices/faq.rst:422 +#: ../../rst/reference_appendices/faq.rst:436 msgid "A pretty common pattern is to iterate over a list of hosts inside of a host group, perhaps to populate a template configuration file with a list of servers. To do this, you can just access the \"$groups\" dictionary in your template, like this:" msgstr "非常に一般的なパターンでは、ホストグループ内でホストのリストを反復処理することです。おそらく、テンプレート設定ファイルにサーバーの一覧を入力します。これを行うには、次のように、テンプレートで「$ groups」ディクショナリーにアクセスするだけです。" -#: ../../rst/reference_appendices/faq.rst:431 -msgid "If you need to access facts about these hosts, for instance, the IP address of each hostname, you need to make sure that the facts have been populated. For example, make sure you have a play that talks to db_servers::" +#: ../../rst/reference_appendices/faq.rst:445 +msgid "If you need to access facts about these hosts, for instance, the IP address of each hostname, you need to make sure that the facts have been populated. For example, make sure you have a play that talks to db_servers:" msgstr "このようなホストに関するファクト (各ホスト名の IP アドレスなど) にアクセスする必要がある場合には、ファクトが生成されていることを確認する必要があります。たとえば、db_servers と対話するプレイがあることを確認します::" -#: ../../rst/reference_appendices/faq.rst:438 +#: ../../rst/reference_appendices/faq.rst:454 msgid "Then you can use the facts inside your template, like this:" msgstr "次に、以下のように、テンプレート内のファクトを使用できます。" -#: ../../rst/reference_appendices/faq.rst:449 +#: ../../rst/reference_appendices/faq.rst:465 msgid "How do I access a variable name programmatically?" msgstr "プログラムで変数名にアクセスするにはどうすれば良いですか" -#: ../../rst/reference_appendices/faq.rst:451 -msgid "An example may come up where we need to get the ipv4 address of an arbitrary interface, where the interface to be used may be supplied via a role parameter or other input. Variable names can be built by adding strings together using \"~\", like so:" +#: ../../rst/reference_appendices/faq.rst:467 +msgid "An example may come up where we need to get the ipv4 address of an arbitrary interface, where the interface to be used may be supplied through a role parameter or other input. Variable names can be built by adding strings together using \"~\", like so:" msgstr "たとえば、任意のインターフェースの ipv4 アドレスを取得する必要があるかもしれません。そこでは、使用されるインターフェースがロールパラメーターまたは他の入力を介して提供される場合があります。変数名は、次のように「~」を使用して文字列を一緒に追加することで作成できます。" -#: ../../rst/reference_appendices/faq.rst:458 +#: ../../rst/reference_appendices/faq.rst:474 msgid "The trick about going through hostvars is necessary because it's a dictionary of the entire namespace of variables. ``inventory_hostname`` is a magic variable that indicates the current host you are looping over in the host loop." msgstr "それは、変数の名前空間全体のディクショナリーであるため、hostvars 全体をチェックするにはコツが必要です。``inventory_hostname`` はマジック変数で、ホストループでループを行う現在のホストを指定します。" -#: ../../rst/reference_appendices/faq.rst:461 +#: ../../rst/reference_appendices/faq.rst:477 msgid "In the example above, if your interface names have dashes, you must replace them with underscores:" msgstr "上記の例では、インターフェース名にダッシュが含まれている場合は、アンダースコアに置き換える必要があります。" -#: ../../rst/reference_appendices/faq.rst:467 +#: ../../rst/reference_appendices/faq.rst:483 msgid "Also see dynamic_variables_." msgstr "「dynamic_variables_」も参照してください。" -#: ../../rst/reference_appendices/faq.rst:473 +#: ../../rst/reference_appendices/faq.rst:489 msgid "How do I access a group variable?" msgstr "グループ変数にアクセスするにはどうすれば良いですか" -#: ../../rst/reference_appendices/faq.rst:475 +#: ../../rst/reference_appendices/faq.rst:491 msgid "Technically, you don't, Ansible does not really use groups directly. Groups are labels for host selection and a way to bulk assign variables, they are not a first class entity, Ansible only cares about Hosts and Tasks." msgstr "技術的には、Ansible は実際にはグループを直接使用しません。グループはホスト選択のラベルであり、変数を一括で割り当てる手段を提供します。グループは第一級のエンティティーではなく、Ansible はホストとタスクのみを考慮します。" -#: ../../rst/reference_appendices/faq.rst:478 +#: ../../rst/reference_appendices/faq.rst:494 msgid "That said, you could just access the variable by selecting a host that is part of that group, see first_host_in_a_group_ below for an example." msgstr "ただし、対象のグループに含まれるホストを選択すると、変数にアクセスできます。例については、以下の「first_host_in_a_group_」を参照してください。" -#: ../../rst/reference_appendices/faq.rst:484 +#: ../../rst/reference_appendices/faq.rst:500 msgid "How do I access a variable of the first host in a group?" msgstr "グループ内の最初のホストの変数にアクセスするにはどうすれば良いですか" -#: ../../rst/reference_appendices/faq.rst:486 +#: ../../rst/reference_appendices/faq.rst:502 msgid "What happens if we want the ip address of the first webserver in the webservers group? Well, we can do that too. Note that if we are using dynamic inventory, which host is the 'first' may not be consistent, so you wouldn't want to do this unless your inventory is static and predictable. (If you are using AWX or the :ref:`Red Hat Ansible Automation Platform `, it will use database order, so this isn't a problem even if you are using cloud based inventory scripts)." msgstr "webservers グループの最初の webserver の IP アドレスが必要な場合にはどうすれば良いですか。それも行うことができます。動的インベントリーを使用している場合は、どのホストが「最初」であるかが一貫していない可能性があるため、インベントリーが静的で予測可能でない限り、実行しないようにしてください (AWX または :ref:`Red Hat Ansible Automation Platform ` を使用している場合は、データベースの順序を使用するため、クラウドベースのインベントリースクリプトを使用している場合でも、これは問題になりません)。" -#: ../../rst/reference_appendices/faq.rst:491 +#: ../../rst/reference_appendices/faq.rst:507 msgid "Anyway, here's the trick:" msgstr "以下に方法を示します。" -#: ../../rst/reference_appendices/faq.rst:497 -msgid "Notice how we're pulling out the hostname of the first machine of the webservers group. If you are doing this in a template, you could use the Jinja2 '#set' directive to simplify this, or in a playbook, you could also use set_fact::" +#: ../../rst/reference_appendices/faq.rst:513 +msgid "Notice how we're pulling out the hostname of the first machine of the webservers group. If you are doing this in a template, you could use the Jinja2 '#set' directive to simplify this, or in a playbook, you could also use set_fact:" msgstr "webserver グループの最初のマシンのホスト名を取得している点に注意してください。テンプレートでこれを実行する場合は、Jinja2 '#set' ディレクティブを使用して簡素化するか、Playbook の場合は set_fact を使用することも可能です。" -#: ../../rst/reference_appendices/faq.rst:504 +#: ../../rst/reference_appendices/faq.rst:522 msgid "Notice how we interchanged the bracket syntax for dots -- that can be done anywhere." msgstr "ドットの代わりに括弧の構文を使用している点に注意してください。これはどこでも使用できます。" -#: ../../rst/reference_appendices/faq.rst:509 +#: ../../rst/reference_appendices/faq.rst:527 msgid "How do I copy files recursively onto a target host?" msgstr "ターゲットホストにファイルを再帰的にコピーするにはどうすれば良いですか" -#: ../../rst/reference_appendices/faq.rst:511 +#: ../../rst/reference_appendices/faq.rst:529 msgid "The ``copy`` module has a recursive parameter. However, take a look at the ``synchronize`` module if you want to do something more efficient for a large number of files. The ``synchronize`` module wraps rsync. See the module index for info on both of these modules." msgstr "``copy`` モジュールには再帰的なパラメーターがありますが、多数のファイルにより効率的な場合は、``synchronize`` モジュールを参照してください。``synchronize`` モジュールは rsync をラップします。これらの両方のモジュールの情報は、モジュールインデックスを参照してください。" -#: ../../rst/reference_appendices/faq.rst:517 +#: ../../rst/reference_appendices/faq.rst:535 msgid "How do I access shell environment variables?" msgstr "shell 環境変数にアクセスするにはどうすれば良いですか" -#: ../../rst/reference_appendices/faq.rst:520 -msgid "**On controller machine :** Access existing variables from controller use the ``env`` lookup plugin. For example, to access the value of the HOME environment variable on the management machine::" +#: ../../rst/reference_appendices/faq.rst:538 +msgid "**On controller machine :** Access existing variables from controller use the ``env`` lookup plugin. For example, to access the value of the HOME environment variable on the management machine:" msgstr "**コントローラーマシンの場合:** コントローラーから既存の変数にアクセスするには、``env`` lookup プラグインを使用します。たとえば、管理マシンで HOME 環境変数の値にアクセスするには、以下を指定します。" -#: ../../rst/reference_appendices/faq.rst:529 -msgid "**On target machines :** Environment variables are available via facts in the ``ansible_env`` variable:" +#: ../../rst/reference_appendices/faq.rst:549 +msgid "**On target machines :** Environment variables are available through facts in the ``ansible_env`` variable:" msgstr "**ターゲットマシン:** 環境変数の場合には、``ansible_env`` 変数のファクトを使用して入手します。" -#: ../../rst/reference_appendices/faq.rst:535 +#: ../../rst/reference_appendices/faq.rst:555 msgid "If you need to set environment variables for TASK execution, see :ref:`playbooks_environment` in the :ref:`Advanced Playbooks ` section. There are several ways to set environment variables on your target machines. You can use the :ref:`template `, :ref:`replace `, or :ref:`lineinfile ` modules to introduce environment variables into files. The exact files to edit vary depending on your OS and distribution and local configuration." msgstr "タスクを実行するために環境変数を設定する必要がある場合は、:ref:`詳細な Playbook ` セクションの「:ref:`playbooks_environment`」を参照してください。ターゲットマシンで環境変数を設定するには、いくつかの方法があります。:ref:`template ` モジュール、:ref:`replace ` モジュール、または :ref:`lineinfile ` モジュールを使用して、環境変数をファイルに取り込むことができます。編集するファイルは、OS、ディストリビューション、およびローカル設定によって異なります。" -#: ../../rst/reference_appendices/faq.rst:545 +#: ../../rst/reference_appendices/faq.rst:565 msgid "How do I generate encrypted passwords for the user module?" msgstr "ユーザーモジュールの暗号化パスワードを生成するにはどうすれば良いですか" -#: ../../rst/reference_appendices/faq.rst:547 +#: ../../rst/reference_appendices/faq.rst:567 msgid "Ansible ad hoc command is the easiest option:" msgstr "Ansible ad-hoc コマンドを使用するのが最も簡単なオプションです。" -#: ../../rst/reference_appendices/faq.rst:553 +#: ../../rst/reference_appendices/faq.rst:573 msgid "The ``mkpasswd`` utility that is available on most Linux systems is also a great option:" msgstr "ほとんどの Linux システムで利用できる ``mkpasswd`` ユーティリティーも優れたオプションです。" -#: ../../rst/reference_appendices/faq.rst:560 +#: ../../rst/reference_appendices/faq.rst:580 msgid "If this utility is not installed on your system (for example, you are using macOS) then you can still easily generate these passwords using Python. First, ensure that the `Passlib `_ password hashing library is installed:" msgstr "お使いのシステムにこのユーティリティーがインストールされていない場合 (例: MacOS を使用している場合など) には、Python を使用してこのようなパスワードを簡単に生成できます。まず、`Passlib `_ パスワードハッシュライブラリーがインストールされていることを確認します。" -#: ../../rst/reference_appendices/faq.rst:568 +#: ../../rst/reference_appendices/faq.rst:588 msgid "Once the library is ready, SHA512 password values can then be generated as follows:" msgstr "ライブラリーの準備ができたら、以下のように SHA512 パスワードの値を生成できます。" -#: ../../rst/reference_appendices/faq.rst:574 +#: ../../rst/reference_appendices/faq.rst:594 msgid "Use the integrated :ref:`hash_filters` to generate a hashed version of a password. You shouldn't put plaintext passwords in your playbook or host_vars; instead, use :ref:`playbooks_vault` to encrypt sensitive data." msgstr "統合された :ref:`hash_filters` を使用して、ハッシュ化されたパスワードを生成します。Playbook や host_vars にプレーンテキストのパスワードは使用しないでください。代わりに、:ref:`playbooks_vault` を使用して、機密データを暗号化してください。" -#: ../../rst/reference_appendices/faq.rst:577 +#: ../../rst/reference_appendices/faq.rst:597 msgid "In OpenBSD, a similar option is available in the base system called ``encrypt (1)``" msgstr "OpenBSDでは、``encrypt (1)`` と呼ばれるベースシステムで同様のオプションが利用可能です。" -#: ../../rst/reference_appendices/faq.rst:582 +#: ../../rst/reference_appendices/faq.rst:602 msgid "Ansible allows dot notation and array notation for variables. Which notation should I use?" msgstr "Ansible では、変数のドット表記とアレイ表記が可能です。どの表記を使用する必要がありますか" -#: ../../rst/reference_appendices/faq.rst:584 +#: ../../rst/reference_appendices/faq.rst:604 msgid "The dot notation comes from Jinja and works fine for variables without special characters. If your variable contains dots (.), colons (:), or dashes (-), if a key begins and ends with two underscores, or if a key uses any of the known public attributes, it is safer to use the array notation. See :ref:`playbooks_variables` for a list of the known public attributes." msgstr "ドット表記は Jinja からのもので、特殊文字なしに変数と合わせて使用できます。変数にドット (.)、コロン (:)、またはハイフン (-) が含まれていて、キーが 2 つのアンダースコアで開始および終了する場合、またはキーが既知のパブリック属性のいずれかを使用する場合は、配列表記を使用する方が安全です。既知のパブリック属性の一覧は、「:ref:`playbooks_variables`」を参照してください。" -#: ../../rst/reference_appendices/faq.rst:597 +#: ../../rst/reference_appendices/faq.rst:617 msgid "Also array notation allows for dynamic variable composition, see dynamic_variables_." msgstr "また、アレイ表記は、動的な変数の構成が可能です。詳細は、「dynamic_variables_」を参照してください。" -#: ../../rst/reference_appendices/faq.rst:599 +#: ../../rst/reference_appendices/faq.rst:619 msgid "Another problem with 'dot notation' is that some keys can cause problems because they collide with attributes and methods of python dictionaries." msgstr "「ドット表記」の他の問題として、ドット表記のキーによっては、Python ディクショナリーの属性とメソッドと競合するため、問題が発生する可能性があります。" -#: ../../rst/reference_appendices/faq.rst:610 +#: ../../rst/reference_appendices/faq.rst:621 +msgid "Example of incorrect syntax when ``item`` is a dictionary:" +msgstr "``item`` がディクショナリーの場合の誤った構文の例:" + +#: ../../rst/reference_appendices/faq.rst:627 +msgid "This variant causes a syntax error because ``update()`` is a Python method for dictionaries." +msgstr "``update()`` がディクショナリー用の Python メソッドであるため、このバリアントは構文エラーを引き起こします。" + +#: ../../rst/reference_appendices/faq.rst:629 +msgid "Example of correct syntax:" +msgstr "正しい構文の例:" + +#: ../../rst/reference_appendices/faq.rst:639 msgid "When is it unsafe to bulk-set task arguments from a variable?" msgstr "変数からタスク引数の一括設定をすると安全でないのはどのような場合ですか" -#: ../../rst/reference_appendices/faq.rst:613 -msgid "You can set all of a task's arguments from a dictionary-typed variable. This technique can be useful in some dynamic execution scenarios. However, it introduces a security risk. We do not recommend it, so Ansible issues a warning when you do something like this::" +#: ../../rst/reference_appendices/faq.rst:642 +msgid "You can set all of a task's arguments from a dictionary-typed variable. This technique can be useful in some dynamic execution scenarios. However, it introduces a security risk. We do not recommend it, so Ansible issues a warning when you do something like this:" msgstr "ディクショナリー型の変数からタスクの引数をすべて設定することができます。この手法は、動的な実行シナリオで便利な場合があります。ただし、セキュリティーリスクがあります。これは推奨されないため、このような操作を行うと、Ansible では警告を発行します。" -#: ../../rst/reference_appendices/faq.rst:627 +#: ../../rst/reference_appendices/faq.rst:658 msgid "This particular example is safe. However, constructing tasks like this is risky because the parameters and values passed to ``usermod_args`` could be overwritten by malicious values in the ``host facts`` on a compromised target machine. To mitigate this risk:" msgstr "この特定の例は、安全です。ただし、``usermod_args`` に渡されるパラメーターや値が、セキュリティー侵害を受けたターゲットマシンの ``host facts`` に含まれる悪意のある値で置き換えられる可能性があるため、このようなタスクの構築にはリスクがあります。このリスクを軽減するには、以下を行います。" -#: ../../rst/reference_appendices/faq.rst:632 +#: ../../rst/reference_appendices/faq.rst:663 msgid "set bulk variables at a level of precedence greater than ``host facts`` in the order of precedence found in :ref:`ansible_variable_precedence` (the example above is safe because play vars take precedence over facts)" msgstr ":ref:`ansible_variable_precedence` にある優先順位で、``host facts`` より優先順位の高いレベルで一括変数を設定します (プレイ変数はファクトより優先度が高いため、上記の例は安全です)。" -#: ../../rst/reference_appendices/faq.rst:635 +#: ../../rst/reference_appendices/faq.rst:666 msgid "disable the :ref:`inject_facts_as_vars` configuration setting to prevent fact values from colliding with variables (this will also disable the original warning)" msgstr "ファクトの値が変数と競合しないように :ref:`inject_facts_as_vars` 設定オプションを無効にします (元の警告も無効になります)。" -#: ../../rst/reference_appendices/faq.rst:642 +#: ../../rst/reference_appendices/faq.rst:673 msgid "Can I get training on Ansible?" msgstr "Ansible のトレーニングはありますか" -#: ../../rst/reference_appendices/faq.rst:644 +#: ../../rst/reference_appendices/faq.rst:675 msgid "Yes! See our `services page `_ for information on our services and training offerings. Email `info@ansible.com `_ for further details." msgstr "サービスおよびトレーニングサービスに関する情報は、「`サービスページ `_」を参照してください。詳細は、`info@ansible.com `_ にお問い合わせください。" -#: ../../rst/reference_appendices/faq.rst:647 +#: ../../rst/reference_appendices/faq.rst:678 msgid "We also offer free web-based training classes on a regular basis. See our `webinar page `_ for more info on upcoming webinars." msgstr "また、定期的に、Web ベースのトレーニングも無料で提供しています。今後予定されているウェビナーの詳細は、`ウェビナーページ `_ を参照してください。" -#: ../../rst/reference_appendices/faq.rst:654 +#: ../../rst/reference_appendices/faq.rst:685 msgid "Is there a web interface / REST API / GUI?" msgstr "Web インターフェース、REST API、GUI はありますか" -#: ../../rst/reference_appendices/faq.rst:656 +#: ../../rst/reference_appendices/faq.rst:687 msgid "Yes! The open-source web interface is Ansible AWX. The supported Red Hat product that makes Ansible even more powerful and easy to use is :ref:`Red Hat Ansible Automation Platform `." msgstr "はい。オープンソース Web インターフェースは Ansible AWX です。Ansible がより強力で、使いやすい、Red Hat のサポート対象製品は、 :ref:`Red Hat Ansible Automation Platform ` です。" -#: ../../rst/reference_appendices/faq.rst:662 +#: ../../rst/reference_appendices/faq.rst:693 msgid "How do I keep secret data in my playbook?" msgstr "Playbook に機密データを保存するにはどうすれば良いですか" -#: ../../rst/reference_appendices/faq.rst:664 +#: ../../rst/reference_appendices/faq.rst:695 msgid "If you would like to keep secret data in your Ansible content and still share it publicly or keep things in source control, see :ref:`playbooks_vault`." msgstr "Ansible のコンテンツに機密データを保存してそのコンテンツを公開するか、ソースコントロールに保持する場合は、「:ref:`playbooks_vault`」を参照してください。" -#: ../../rst/reference_appendices/faq.rst:666 -msgid "If you have a task that you don't want to show the results or command given to it when using -v (verbose) mode, the following task or playbook attribute can be useful::" +#: ../../rst/reference_appendices/faq.rst:697 +msgid "If you have a task that you don't want to show the results or command given to it when using -v (verbose) mode, the following task or playbook attribute can be useful:" msgstr "-v (詳細) モードの使用時に、結果や指定したコマンドを表示したくないタスクがある場合は、次のようなタスクや Playbook 属性が便利です。" -#: ../../rst/reference_appendices/faq.rst:672 +#: ../../rst/reference_appendices/faq.rst:705 msgid "This can be used to keep verbose output but hide sensitive information from others who would otherwise like to be able to see the output." msgstr "これは、詳細な出力を維持しつつ、出力を見たいと思っている人から機密情報を隠すために使うことができます。" -#: ../../rst/reference_appendices/faq.rst:674 -msgid "The ``no_log`` attribute can also apply to an entire play::" +#: ../../rst/reference_appendices/faq.rst:707 +msgid "The ``no_log`` attribute can also apply to an entire play:" msgstr "``no_log`` 属性は、プレイ全体にも適用できます。" -#: ../../rst/reference_appendices/faq.rst:679 -msgid "Though this will make the play somewhat difficult to debug. It's recommended that this be applied to single tasks only, once a playbook is completed. Note that the use of the ``no_log`` attribute does not prevent data from being shown when debugging Ansible itself via the :envvar:`ANSIBLE_DEBUG` environment variable." +#: ../../rst/reference_appendices/faq.rst:714 +msgid "Though this will make the play somewhat difficult to debug. It's recommended that this be applied to single tasks only, once a playbook is completed. Note that the use of the ``no_log`` attribute does not prevent data from being shown when debugging Ansible itself through the :envvar:`ANSIBLE_DEBUG` environment variable." msgstr "ただし、これを使用すると、プレイのデバッグが困難になります。Playbook が完了すると、この属性は単一のタスクにのみ適用することが推奨されます。``no_log`` 属性を使用しても、:envvar:`ANSIBLE_DEBUG` 環境変数で Ansible 自体をデバッグするときに、データが表示されてしまう点に注意してください。" -#: ../../rst/reference_appendices/faq.rst:690 +#: ../../rst/reference_appendices/faq.rst:725 msgid "When should I use {{ }}? Also, how to interpolate variables or dynamic variable names" msgstr "{{ }} はいつ使用する必要がありますか。また、変数または動的な変数名を補間するにはどうすれば良いですか" -#: ../../rst/reference_appendices/faq.rst:692 +#: ../../rst/reference_appendices/faq.rst:727 msgid "A steadfast rule is 'always use ``{{ }}`` except when ``when:``'. Conditionals are always run through Jinja2 as to resolve the expression, so ``when:``, ``failed_when:`` and ``changed_when:`` are always templated and you should avoid adding ``{{ }}``." msgstr "不動のルールは「``when:`` の場合を除いて常に ``{{ }}`` を使用する」です。この条件は、式の解決として Jinja2 を介して実行するため、``when:``、``failed_when:``、および ``changed_when:`` は常にテンプレート化され、``{{ }}`` の追加は回避してください。" -#: ../../rst/reference_appendices/faq.rst:696 +#: ../../rst/reference_appendices/faq.rst:731 msgid "In most other cases you should always use the brackets, even if previously you could use variables without specifying (like ``loop`` or ``with_`` clauses), as this made it hard to distinguish between an undefined variable and a string." msgstr "それ以外のケースでは、以前は ``loop`` 句または ``with_`` 句などを指定しなくても変数を使用できていた場合でも、常に括弧を使用するようにしてください。理由は、未定義の変数と文字列を区別しにくいためです。" -#: ../../rst/reference_appendices/faq.rst:699 +#: ../../rst/reference_appendices/faq.rst:734 msgid "Another rule is 'moustaches don't stack'. We often see this:" msgstr "他には「波括弧は並べて使用できない」というルールがありますが、これは頻繁に見受けられます。" -#: ../../rst/reference_appendices/faq.rst:705 +#: ../../rst/reference_appendices/faq.rst:740 msgid "The above DOES NOT WORK as you expect, if you need to use a dynamic variable use the following as appropriate:" msgstr "上記の例は想定通り、機能しません。動的変数を使用する必要がある場合には、随時、以下を使用してください。" -#: ../../rst/reference_appendices/faq.rst:711 +#: ../../rst/reference_appendices/faq.rst:746 msgid "For 'non host vars' you can use the :ref:`vars lookup` plugin:" msgstr "「non host vars」の場合には、:ref:`vars lookup` プラグインを使用できます。" -#: ../../rst/reference_appendices/faq.rst:717 +#: ../../rst/reference_appendices/faq.rst:752 msgid "To determine if a keyword requires ``{{ }}`` or even supports templating, use ``ansible-doc -t keyword ``, this will return documentation on the keyword including a ``template`` field with the values ``explicit`` (requires ``{{ }}``), ``implicit`` (assumes ``{{ }}``, so no needed) or ``static`` (no templating supported, all characters will be interpreted literally)" msgstr "キーワードに ``{{ }}`` が必要か、テンプレートをサポートするかを判断するには、``ansible-doc -t keyword `` を使用します。これにより、値 ``explicit`` (``{{ }}`` が必要)、``implicit`` (``{{ }}`` を前提、必要なし)、または ``static`` (テンプレートのサポートなし、文字はすべてそのまま文字通り解釈される) の値が含まれる ``template`` フィールドを含むキーワードのドキュメントを返します。" -#: ../../rst/reference_appendices/faq.rst:724 +#: ../../rst/reference_appendices/faq.rst:759 msgid "How do I get the original ansible_host when I delegate a task?" msgstr "タスクを委譲した場合に元の ansible_host をどのように取得すれば良いですか" -#: ../../rst/reference_appendices/faq.rst:726 -msgid "As the documentation states, connection variables are taken from the ``delegate_to`` host so ``ansible_host`` is overwritten, but you can still access the original via ``hostvars``::" +#: ../../rst/reference_appendices/faq.rst:761 +msgid "As the documentation states, connection variables are taken from the ``delegate_to`` host so ``ansible_host`` is overwritten, but you can still access the original through ``hostvars``:" msgstr "ドキュメントに記載されているように、接続変数は ``delegate_to`` ホストから取得されるため、``ansible_host`` は上書きされますが、``hostvars`` を使用して元の ansible_host にアクセスできます。" -#: ../../rst/reference_appendices/faq.rst:731 +#: ../../rst/reference_appendices/faq.rst:768 msgid "This works for all overridden connection variables, like ``ansible_user``, ``ansible_port``, and so on." msgstr "これは、``ansible_user``、``ansible_port`` などのように、すべての上書きされた接続変数に有効です。" -#: ../../rst/reference_appendices/faq.rst:737 +#: ../../rst/reference_appendices/faq.rst:774 msgid "How do I fix 'protocol error: filename does not match request' when fetching a file?" msgstr "ファイルの取得時の「protocol error: filename does not match request」のエラーはどのように修正すれば良いですか" -#: ../../rst/reference_appendices/faq.rst:739 -msgid "Since release ``7.9p1`` of OpenSSH there is a `bug `_ in the SCP client that can trigger this error on the Ansible controller when using SCP as the file transfer mechanism::" +#: ../../rst/reference_appendices/faq.rst:776 +msgid "Since release ``7.9p1`` of OpenSSH there is a `bug `_ in the SCP client that can trigger this error on the Ansible controller when using SCP as the file transfer mechanism:" msgstr "OpenSSH のリリース ``7.9p1`` では、SCP クライアントに `bug `_ があり、ファイル転送メカニズムとして SCP を使用する場合に、Ansible コントローラーで以下のエラーが出力される可能性があります。" -#: ../../rst/reference_appendices/faq.rst:744 +#: ../../rst/reference_appendices/faq.rst:781 +msgid "failed to transfer file to /tmp/ansible/file.txt\\r\\nprotocol error: filename does not match request" +msgstr "ファイルを /tmp/ansible/file.txt\\r\\n" +"protocol に転送できませんでした。エラー: ファイル名はリクエストに一致しません。" + +#: ../../rst/reference_appendices/faq.rst:783 msgid "In these releases, SCP tries to validate that the path of the file to fetch matches the requested path. The validation fails if the remote filename requires quotes to escape spaces or non-ascii characters in its path. To avoid this error:" msgstr "新しいリリースでは、SCP は、取得するファイルのパスが要求したパスと一致することを検証しようとします。リモートのファイル名が、パスでスペースや ASCII 文字以外の文字を引用符でエスケープする必要がある場合には、検証に失敗します。このエラーを回避するには、以下を行います。" -#: ../../rst/reference_appendices/faq.rst:752 +#: ../../rst/reference_appendices/faq.rst:791 msgid "Use SFTP instead of SCP by setting ``scp_if_ssh`` to ``smart`` (which tries SFTP first) or to ``False``. You can do this in one of four ways:" msgstr "``scp_if_ssh`` を ``smart`` (先に SFTP を試す)、または ``False`` に設定して、SCP の代わりに SFTP を使用します。" -#: ../../rst/reference_appendices/faq.rst:749 +#: ../../rst/reference_appendices/faq.rst:788 msgid "Rely on the default setting, which is ``smart`` - this works if ``scp_if_ssh`` is not explicitly set anywhere" msgstr "``smart`` のデフォルトの設定に依存します。``scp_if_ssh`` が明示的にどこにも設定されていない場合に機能します。" -#: ../../rst/reference_appendices/faq.rst:750 +#: ../../rst/reference_appendices/faq.rst:789 msgid "Set a :ref:`host variable ` or :ref:`group variable ` in inventory: ``ansible_scp_if_ssh: False``" msgstr "インベントリーに :ref:`ホスト変数 ` または :ref:`グループ変数 ` を設定します (``ansible_scp_if_ssh: False``)。" -#: ../../rst/reference_appendices/faq.rst:751 +#: ../../rst/reference_appendices/faq.rst:790 msgid "Set an environment variable on your control node: ``export ANSIBLE_SCP_IF_SSH=False``" msgstr "コントロールノードで環境変数を設定します (``export ANSIBLE_SCP_IF_SSH=False``)。" -#: ../../rst/reference_appendices/faq.rst:752 +#: ../../rst/reference_appendices/faq.rst:791 msgid "Pass an environment variable when you run Ansible: ``ANSIBLE_SCP_IF_SSH=smart ansible-playbook``" msgstr "Ansible を実行するときに環境変数を渡します (``ANSIBLE_SCP_IF_SSH=smart ansible-playbook``)。" -#: ../../rst/reference_appendices/faq.rst:753 +#: ../../rst/reference_appendices/faq.rst:792 msgid "Modify your ``ansible.cfg`` file: add ``scp_if_ssh=False`` to the ``[ssh_connection]`` section" msgstr "``ansible.cfg`` ファイルの変更: ``scp_if_ssh=False`` を ``[ssh_connection]`` セクションに追加します。" -#: ../../rst/reference_appendices/faq.rst:757 +#: ../../rst/reference_appendices/faq.rst:796 msgid "If you must use SCP, set the ``-T`` arg to tell the SCP client to ignore path validation. You can do this in one of three ways:" msgstr "SCP を使用する必要がある場合は、``-T`` 引数を設定して、SCP クライアントにパスの検証を無視するように指示します。以下の 3 つの方法のいずれかで実行できます。" -#: ../../rst/reference_appendices/faq.rst:755 +#: ../../rst/reference_appendices/faq.rst:794 msgid "Set a :ref:`host variable ` or :ref:`group variable `: ``ansible_scp_extra_args=-T``," msgstr ":ref:`ホスト変数 ` または :ref:`グループ変数 ` を設定します (``ansible_scp_extra_args=-T``)。" -#: ../../rst/reference_appendices/faq.rst:756 +#: ../../rst/reference_appendices/faq.rst:795 msgid "Export or pass an environment variable: ``ANSIBLE_SCP_EXTRA_ARGS=-T``" msgstr "環境変数をエクスポートするか、渡します (``ANSIBLE_SCP_EXTRA_ARGS=-T``)。" -#: ../../rst/reference_appendices/faq.rst:757 +#: ../../rst/reference_appendices/faq.rst:796 msgid "Modify your ``ansible.cfg`` file: add ``scp_extra_args=-T`` to the ``[ssh_connection]`` section" msgstr "``ansible.cfg`` ファイルの変更: ``scp_extra_args=-T`` を ``[ssh_connection]`` セクションに追加します。" -#: ../../rst/reference_appendices/faq.rst:759 +#: ../../rst/reference_appendices/faq.rst:798 msgid "If you see an ``invalid argument`` error when using ``-T``, then your SCP client is not performing filename validation and will not trigger this error." msgstr "``-T`` の使用時に ``invalid argument`` エラーが表示される場合は、SCP クライアントがファイル名を検証しておらず、このエラーは発生しません。" -#: ../../rst/reference_appendices/faq.rst:764 +#: ../../rst/reference_appendices/faq.rst:803 msgid "Does Ansible support multiple factor authentication 2FA/MFA/biometrics/finterprint/usbkey/OTP/..." msgstr "Ansible では、複数のファクター認証 2FA/MFA/biometrics/finterprint/usbkey/OTP/... がサポートされますか" -#: ../../rst/reference_appendices/faq.rst:766 +#: ../../rst/reference_appendices/faq.rst:805 msgid "No, Ansible is designed to execute multiple tasks against multiple targets, minimizing user interaction. As with most automation tools, it is not compatible with interactive security systems designed to handle human interaction. Most of these systems require a secondary prompt per target, which prevents scaling to thousands of targets. They also tend to have very short expiration periods so it requires frequent reauthorization, also an issue with many hosts and/or a long set of tasks." msgstr "いいえ、Ansible は複数のターゲットに対して複数のタスクを実行するように設計されており、ユーザーの操作を最小限に抑えることができます。ほとんどの自動化ツールと同様に、人間の相互作用を処理するように設計されたインタラクティブなセキュリティーシステムとの互換性はありません。これらのシステムのほとんどは、ターゲットごとにセカンダリープロンプトを必要とするため、数千のターゲットに拡張することができません。また、これらのシステムは有効期限が非常に短いため、再認証が頻繁に必要となりますが、これも多くのホストや長いタスクセットでは問題となります。" -#: ../../rst/reference_appendices/faq.rst:772 +#: ../../rst/reference_appendices/faq.rst:811 msgid "In such environments we recommend securing around Ansible's execution but still allowing it to use an 'automation user' that does not require such measures. With AWX or the :ref:`Red Hat Ansible Automation Platform `, administrators can set up RBAC access to inventory, along with managing credentials and job execution." msgstr "このような環境では、Ansible の実行を保護しながら、そのような手段を必要としない「自動化ユーザー」の使用を許可することが推奨されます。AWX または :ref:`Red Hat Ansible Automation Platform ` を使用すると、管理者がインベントリーへの RBAC アクセスを設定し、認証情報とジョブの実行を管理できます。" -#: ../../rst/reference_appendices/faq.rst:779 +#: ../../rst/reference_appendices/faq.rst:818 msgid "The 'validate' option is not enough for my needs, what do I do?" msgstr "弊社の要件には、「validate」オプションは十分ではありません。どうすればよいでしょうか?" -#: ../../rst/reference_appendices/faq.rst:781 +#: ../../rst/reference_appendices/faq.rst:820 msgid "Many Ansible modules that create or update files have a ``validate`` option that allows you to abort the update if the validation command fails. This uses the temporary file Ansible creates before doing the final update. In many cases this does not work since the validation tools for the specific application require either specific names, multiple files or some other factor that is not present in this simple feature." msgstr "ファイル作成または更新の Ansible モジュールの多くには ``validate`` オプションがあり、検証コマンドが失敗した場合に更新を中止できます。これは、最終更新を行う前に Ansible が作成する一時ファイルを使用します。多くの場合、特定のアプリケーションの検証ツールには特定の名前、複数のファイル以外に、この単純な機能に含まれていない他の要素が必要になるため、これは機能しません。" -#: ../../rst/reference_appendices/faq.rst:785 +#: ../../rst/reference_appendices/faq.rst:824 msgid "For these cases you have to handle the validation and restoration yourself. The following is a simple example of how to do this with block/rescue and backups, which most file based modules also support:" msgstr "このような場合は、検証と復元を自分で処理する必要があります。以下は、ブロック/レスキューおよびバックアップでこの作業を行う簡単な例で、ほとんどのファイルベースのモジュールもサポートしています。" -#: ../../rst/reference_appendices/faq.rst:817 +#: ../../rst/reference_appendices/faq.rst:856 msgid "Why does the ``regex_search`` filter return `None` instead of an empty string?" msgstr "``regex_search`` フィルターが空の文字列ではなく `None` を返すのはなぜですか。" -#: ../../rst/reference_appendices/faq.rst:819 +#: ../../rst/reference_appendices/faq.rst:858 msgid "Until the jinja2 2.10 release, Jinja was only able to return strings, but Ansible needed Python objects in some cases. Ansible uses ``safe_eval`` and only sends strings that look like certain types of Python objects through this function. With ``regex_search`` that does not find a match, the result (``None``) is converted to the string \"None\" which is not useful in non-native jinja2." msgstr "jinja2 2.10 リリースまで、Jinja は文字列しか返すことができませんでしたが、Ansible で Python オブジェクトが必要な場合がありました。Ansible は``safe_eval`` を使用し、この関数を介して特定のタイプの Python オブジェクトのように見える文字列のみを送信します。``regex_search`` で一致するものが見つからない場合、結果 (``None``) は、非ネイティブの jinja2 では役に立たない文字列「None」に変換されます。" -#: ../../rst/reference_appendices/faq.rst:821 +#: ../../rst/reference_appendices/faq.rst:860 msgid "The following example of a single templating action shows this behavior:" msgstr "次の単一のテンプレートアクション例は、この動作を示しています。" -#: ../../rst/reference_appendices/faq.rst:827 +#: ../../rst/reference_appendices/faq.rst:866 msgid "This example does not result in a Python ``None``, so Ansible historically converted it to \"\" (empty string)." msgstr "この例では Python ``None`` が発生しないため、これまで Ansible はこれを \"\" (空の文字列) に変換していました。" -#: ../../rst/reference_appendices/faq.rst:829 +#: ../../rst/reference_appendices/faq.rst:868 msgid "The native jinja2 functionality actually allows us to return full Python objects, that are always represented as Python objects everywhere, and as such the result of a single templating action with ``regex_search`` can result in the Python ``None``." msgstr "ネイティブ jinja2 機能を使用すると、実際に完全な Python オブジェクトを返すことができます。これは、常にどこでも Python オブジェクトとして表され、そのため、``regex_search`` の結果が Python ``None`` になる可能性があります。" -#: ../../rst/reference_appendices/faq.rst:833 +#: ../../rst/reference_appendices/faq.rst:872 msgid "Native jinja2 functionality is not needed when ``regex_search`` is used as an intermediate result that is then compared to the jinja2 ``none`` test." msgstr "``regex_search`` を中間結果として使用し、jinja2 ``none`` テストと比較する場合、ネイティブ jinja2 機能は必要ありません。" -#: ../../rst/reference_appendices/faq.rst:843 +#: ../../rst/reference_appendices/faq.rst:882 msgid "How do I submit a change to the documentation?" msgstr "ドキュメントへの変更を提出するにはどうすれば良いですか" -#: ../../rst/reference_appendices/faq.rst:845 +#: ../../rst/reference_appendices/faq.rst:884 msgid "Documentation for Ansible is kept in the main project git repository, and complete instructions for contributing can be found in the docs README `viewable on GitHub `_. Thanks!" msgstr "Ansible のドキュメントは、主要プロジェクトの git リポジトリーに保存されており、貢献に関する説明が `GitHub で確認できる `_ README に記載されています。" -#: ../../rst/reference_appendices/faq.rst:852 +#: ../../rst/reference_appendices/faq.rst:891 msgid "What is the difference between ``ansible.legacy`` and ``ansible.builtin`` collections?" msgstr "``ansible.legacy`` コレクションと ``ansible.builtin`` コレクションの違いは何ですか ?" -#: ../../rst/reference_appendices/faq.rst:854 +#: ../../rst/reference_appendices/faq.rst:893 msgid "Neither is a real collection. They are virtually constructed by the core engine (synthetic collections)." msgstr "どちらも本当のコレクションではありません。これらは、コアエンジン (合成コレクション) によって仮想的に構築されます。" -#: ../../rst/reference_appendices/faq.rst:856 +#: ../../rst/reference_appendices/faq.rst:895 msgid "The ``ansible.builtin`` collection only refers to plugins that ship with ``ansible-core``." msgstr "``ansible.builtin`` コレクションは、``ansible-core`` に同梱されるプラグインのみを参照します。" -#: ../../rst/reference_appendices/faq.rst:858 +#: ../../rst/reference_appendices/faq.rst:897 msgid "The ``ansible.legacy`` collection is a superset of ``ansible.builtin`` (you can reference the plugins from builtin through ``ansible.legacy``). You also get the ability to add 'custom' plugins in the :ref:`configured paths and adjacent directories `, with the ability to override the builtin plugins that have the same name." msgstr "``ansible.legacy`` コレクションは、``ansible.builtin`` のスーパーセット (``ansible.legacy`` を使用して組子荒れたプラグインを参照可能) です。さらに、同じ名前の組み込みプラグインを上書きできるので、:ref:`configured paths and adjacent directories ` のカスタムプラグインを追加できるようになります。" -#: ../../rst/reference_appendices/faq.rst:861 +#: ../../rst/reference_appendices/faq.rst:900 msgid "Also, ``ansible.legacy`` is what you get by default when you do not specify an FQCN. So this:" -msgstr "また、``ansible.legacy`` は、FQCN を指定しない場合にデフォルトで取得するので、これは " +msgstr "また、``ansible.legacy`` は、FQCN を指定しない場合にデフォルトで取得するものです。" -#: ../../rst/reference_appendices/faq.rst:868 +#: ../../rst/reference_appendices/faq.rst:907 msgid "Is really equivalent to:" -msgstr "は、以下と同じようなものです。" +msgstr "これは以下と同等です。" -#: ../../rst/reference_appendices/faq.rst:874 +#: ../../rst/reference_appendices/faq.rst:913 msgid "Though, if you do not override the ``shell`` module, you can also just write it as ``ansible.builtin.shell``, since legacy will resolve to the builtin collection." msgstr "``shell`` モジュールを上書きしない場合は、レガシーが組み込みコレクションに対して解決するので、``ansible.builtin.shell`` と記述することもできます。" -#: ../../rst/reference_appendices/faq.rst:880 +#: ../../rst/reference_appendices/faq.rst:919 msgid "I don't see my question here" msgstr "ここに記載されている以外に質問があります" -#: ../../rst/reference_appendices/faq.rst:882 +#: ../../rst/reference_appendices/faq.rst:921 msgid "If you have not found an answer to your questions, you can ask on one of our mailing lists or chat channels. For instructions on subscribing to a list or joining a chat channel, see :ref:`communication`." msgstr "ご不明な点がございましたら、メーリングリストまたはチャットチャンネルのいずれかを尋ねることができます。リストのサブスクライブ方法や、チャットチャンネルへの参加方法は、:ref:`communication`を参照してください。" -#: ../../rst/reference_appendices/faq.rst:887 +#: ../../rst/reference_appendices/faq.rst:926 #: ../../rst/reference_appendices/glossary.rst:537 -#: ../../rst/reference_appendices/test_strategies.rst:268 +#: ../../rst/reference_appendices/test_strategies.rst:297 msgid "An introduction to playbooks" msgstr "Playbook の概要" -#: ../../rst/reference_appendices/faq.rst:888 +#: ../../rst/reference_appendices/faq.rst:927 #: ../../rst/reference_appendices/glossary.rst:538 msgid ":ref:`playbooks_best_practices`" msgstr ":ref:`playbooks_best_practices`" -#: ../../rst/reference_appendices/faq.rst:889 +#: ../../rst/reference_appendices/faq.rst:928 #: ../../rst/reference_appendices/glossary.rst:539 msgid "Tips and tricks for playbooks" msgstr "Playbook のヒントと裏技" -#: ../../rst/reference_appendices/faq.rst:890 -#: ../../rst/reference_appendices/test_strategies.rst:271 +#: ../../rst/reference_appendices/faq.rst:929 +#: ../../rst/reference_appendices/test_strategies.rst:300 msgid "`User Mailing List `_" -msgstr "`メーリングリストの使用 `_" +msgstr "`User Mailing List `_" -#: ../../rst/reference_appendices/faq.rst:891 +#: ../../rst/reference_appendices/faq.rst:930 #: ../../rst/reference_appendices/glossary.rst:541 -#: ../../rst/reference_appendices/test_strategies.rst:272 +#: ../../rst/reference_appendices/test_strategies.rst:301 msgid "Have a question? Stop by the google group!" msgstr "ご質問はございますか。Google Group をご覧ください。" @@ -7264,7 +7285,7 @@ msgid "Command-line options" msgstr "コマンドラインオプション" #: ../../rst/reference_appendices/general_precedence.rst:22 -#: ../../rst/reference_appendices/general_precedence.rst:61 +#: ../../rst/reference_appendices/general_precedence.rst:65 msgid "Playbook keywords" msgstr "Playbook キーワード" @@ -7297,86 +7318,86 @@ msgid "You can override all other settings from all other sources in all other p msgstr ":ref:`general_precedence_extra_vars` により、コマンドラインで、他の優先順位カテゴリーの他のソースからの他の設定をすべて上書きできます。ただし、これはコマンドラインオプションではなく、:ref:`variable` を渡す手段としてコマンドラインを使用しています。" #: ../../rst/reference_appendices/general_precedence.rst:50 -msgid "At the command line, if you pass multiple values for a parameter that accepts only a single value, the last defined value wins. For example, this :ref:`ad hoc task` will connect as ``carol``, not as ``mike``::" -msgstr "コマンドラインで、単値のみを受け入れるパラメーターに多値を渡すと、最後に定義された値が優先されます。たとえば、この :ref:`アドホックタスク` は、``mike`` ではなく、``carol`` として接続します。" +msgid "At the command line, if you pass multiple values for a parameter that accepts only a single value, the last defined value wins. For example, this :ref:`ad hoc task` will connect as ``carol``, not as ``mike``:" +msgstr "コマンドラインで、単値のみを受け入れるパラメーターに多値を渡すと、最後に定義された値が優先されます。たとえば、この :ref:`ad hoc task` は、``mike`` ではなく、``carol`` として接続します。" -#: ../../rst/reference_appendices/general_precedence.rst:54 -msgid "Some parameters allow multiple values. In this case, Ansible will append all values from the hosts listed in inventory files inventory1 and inventory2::" +#: ../../rst/reference_appendices/general_precedence.rst:56 +msgid "Some parameters allow multiple values. In this case, Ansible will append all values from the hosts listed in inventory files inventory1 and inventory2:" msgstr "パラメーターによっては、多値を使用できます。以下の場合には、Ansible は、インベントリーファイル「inventory1」および「inventory2」に記載されているホストからの値をすべて追加します。" -#: ../../rst/reference_appendices/general_precedence.rst:58 +#: ../../rst/reference_appendices/general_precedence.rst:62 msgid "The help for each :ref:`command-line tool` lists available options for that tool." msgstr "各 :ref:`コマンドラインツール` のヘルプは、対象のツールで利用可能なオプションを表示します。" -#: ../../rst/reference_appendices/general_precedence.rst:63 +#: ../../rst/reference_appendices/general_precedence.rst:67 msgid "Any :ref:`playbook keyword` will override any command-line option and any configuration setting." msgstr ":ref:`Playbook キーワード` は、コマンドラインオプションと、構成設定をすべてオーバーライドします。" -#: ../../rst/reference_appendices/general_precedence.rst:65 +#: ../../rst/reference_appendices/general_precedence.rst:69 msgid "Within playbook keywords, precedence flows with the playbook itself; the more specific wins against the more general:" msgstr "Playbook キーワード内の優先順位は、Playbook の内容により左右されます (一般的な設定より具体的な設定が優先されます)。" -#: ../../rst/reference_appendices/general_precedence.rst:67 +#: ../../rst/reference_appendices/general_precedence.rst:71 msgid "play (most general)" msgstr "プレイ (最も一般的)" -#: ../../rst/reference_appendices/general_precedence.rst:68 +#: ../../rst/reference_appendices/general_precedence.rst:72 msgid "blocks/includes/imports/roles (optional and can contain tasks and each other)" msgstr "blocks/includes/imports/roles (任意で、タスクを含めることも、相互に含めることも可能)" -#: ../../rst/reference_appendices/general_precedence.rst:69 +#: ../../rst/reference_appendices/general_precedence.rst:73 msgid "tasks (most specific)" msgstr "タスク (最も具体的)" -#: ../../rst/reference_appendices/general_precedence.rst:71 -msgid "A simple example::" -msgstr "簡単な例::" +#: ../../rst/reference_appendices/general_precedence.rst:75 +msgid "A simple example:" +msgstr "簡単な例:" -#: ../../rst/reference_appendices/general_precedence.rst:83 +#: ../../rst/reference_appendices/general_precedence.rst:89 msgid "In this example, the ``connection`` keyword is set to ``ssh`` at the play level. The first task inherits that value, and connects using ``ssh``. The second task inherits that value, overrides it, and connects using ``paramiko``. The same logic applies to blocks and roles as well. All tasks, blocks, and roles within a play inherit play-level keywords; any task, block, or role can override any keyword by defining a different value for that keyword within the task, block, or role." msgstr "この例では、``connection`` キーワードはプレイレベルで ``ssh`` に設定されています。最初のタスクはその値を継承し、``ssh`` を使用して接続します。2 番目のタスクは、その値を継承してオーバーライドし、``paramiko`` を使用して接続します。ブロックやロールでも同じロジックが適用されます。プレイ内のタスク、ブロック、およびロールはすべて、プレイレベルのキーワードを継承します。キーワードよりタスク、ブロック、またはロールを優先させるには、タスク、ブロック、またはロール内の対象のキーワードに異なる値を定義します。" -#: ../../rst/reference_appendices/general_precedence.rst:86 +#: ../../rst/reference_appendices/general_precedence.rst:92 msgid "Remember that these are KEYWORDS, not variables. Both playbooks and variable files are defined in YAML but they have different significance. Playbooks are the command or 'state description' structure for Ansible, variables are data we use to help make playbooks more dynamic." msgstr "上記は、変数ではなく、キーワードである点に注意してください。Playbook や変数ファイルはいずれも YAML で定義しますが、それぞれ重要性が異なります。Playbook はコマンドまたは Ansible の「状態記述」構造で、変数は Playbook をより動的に使用できるようにするためのデータです。" -#: ../../rst/reference_appendices/general_precedence.rst:94 +#: ../../rst/reference_appendices/general_precedence.rst:100 msgid "Any variable will override any playbook keyword, any command-line option, and any configuration setting." msgstr "変数は、Playbook のキーワード、コマンドラインオプション、構成設定をすべてオーバーライドします。" -#: ../../rst/reference_appendices/general_precedence.rst:96 +#: ../../rst/reference_appendices/general_precedence.rst:102 msgid "Variables that have equivalent playbook keywords, command-line options, and configuration settings are known as :ref:`connection_variables`. Originally designed for connection parameters, this category has expanded to include other core variables like the temporary directory and the python interpreter." msgstr "同等の Playbook キーワード、コマンドラインオプション、および構成設定を含む変数は :ref:`connection_variables` と呼ばれています。このカテゴリーは、当初は設定パラメーター向けに設計されてましたが、一時ディレクトリーや Python インタープリターなど、他のコア変数を含めるように拡張されました。" -#: ../../rst/reference_appendices/general_precedence.rst:98 +#: ../../rst/reference_appendices/general_precedence.rst:104 msgid "Connection variables, like all variables, can be set in multiple ways and places. You can define variables for hosts and groups in :ref:`inventory`. You can define variables for tasks and plays in ``vars:`` blocks in :ref:`playbooks`. However, they are still variables - they are data, not keywords or configuration settings. Variables that override playbook keywords, command-line options, and configuration settings follow the same rules of :ref:`variable precedence ` as any other variables." msgstr "接続変数はすべての変数と同様、複数の手法や場所で設定できます。:ref:`インベントリー` でホストとグループの変数を定義できます。:ref:`Playbook` の ``vars:`` ブロックに、タスクとプレイの変数を定義できます。ただし、上記は、キーワードや構成設定ではなく、データを格納する変数です。Playbook キーワード、コマンドラインオプション、および設定オプションをオーバーライドする変数は、他の変数が使用する :ref:`変数の優先順位 ` と同じルールに従います。" -#: ../../rst/reference_appendices/general_precedence.rst:100 -msgid "When set in a playbook, variables follow the same inheritance rules as playbook keywords. You can set a value for the play, then override it in a task, block, or role::" +#: ../../rst/reference_appendices/general_precedence.rst:106 +msgid "When set in a playbook, variables follow the same inheritance rules as playbook keywords. You can set a value for the play, then override it in a task, block, or role:" msgstr "変数は、Playbook に設定されると、Playbook キーワードと同じ継承ルールに従います。プレイの値を設定すると、タスク、ブロック、またはロールの値をオーバーライドできます。" -#: ../../rst/reference_appendices/general_precedence.rst:125 +#: ../../rst/reference_appendices/general_precedence.rst:133 msgid "Variable scope: how long is a value available?" msgstr "変数の範囲: 値が有効な期間" -#: ../../rst/reference_appendices/general_precedence.rst:127 +#: ../../rst/reference_appendices/general_precedence.rst:135 msgid "Variable values set in a playbook exist only within the playbook object that defines them. These 'playbook object scope' variables are not available to subsequent objects, including other plays." msgstr "Playbook に設定した変数の値は、その値を定義する Playbook オブジェクト内にのみ存在します。このような「Playbook オブジェクトの範囲」の変数は、他のプレイなど、後続のオブジェクトでは利用できません。" -#: ../../rst/reference_appendices/general_precedence.rst:129 -msgid "Variable values associated directly with a host or group, including variables defined in inventory, by vars plugins, or using modules like :ref:`set_fact` and :ref:`include_vars`, are available to all plays. These 'host scope' variables are also available via the ``hostvars[]`` dictionary." +#: ../../rst/reference_appendices/general_precedence.rst:137 +msgid "Variable values associated directly with a host or group, including variables defined in inventory, by vars plugins, or using modules like :ref:`set_fact` and :ref:`include_vars`, are available to all plays. These 'host scope' variables are also available through the ``hostvars[]`` dictionary." msgstr "インベントリー、vars プラグイン、:ref:`set_fact` や :ref:`include_vars` といったモジュールの使用など、ホストやグループに直接関連付けられた変数値は、全プレイで利用できます。また、これらの「ホスト範囲」変数は、``hostvars[]`` ディクショナリーから利用できます。" -#: ../../rst/reference_appendices/general_precedence.rst:134 +#: ../../rst/reference_appendices/general_precedence.rst:142 msgid "Using ``-e`` extra variables at the command line" msgstr "コマンドラインでの追加変数 (``-e``) の使用" -#: ../../rst/reference_appendices/general_precedence.rst:136 -msgid "To override all other settings in all other categories, you can use extra variables: ``--extra-vars`` or ``-e`` at the command line. Values passed with ``-e`` are variables, not command-line options, and they will override configuration settings, command-line options, and playbook keywords as well as variables set elsewhere. For example, this task will connect as ``brian`` not as ``carol``::" +#: ../../rst/reference_appendices/general_precedence.rst:144 +msgid "To override all other settings in all other categories, you can use extra variables: ``--extra-vars`` or ``-e`` at the command line. Values passed with ``-e`` are variables, not command-line options, and they will override configuration settings, command-line options, and playbook keywords as well as variables set elsewhere. For example, this task will connect as ``brian`` not as ``carol``:" msgstr "他のカテゴリーの全設定をオーバーライドするには、コマンドラインで追加変数 (``--extra-vars`` または ``-e``) を使用します。``-e`` で渡される値は、コマンドラインオプションではなく変数で、他で設定した変数をはじめ、構成設定、コマンドラインオプション、Playbook キーワードをオーバーライドします。たとえば、このタスクは、``carol`` ではなく ``brian`` として接続します。" -#: ../../rst/reference_appendices/general_precedence.rst:140 +#: ../../rst/reference_appendices/general_precedence.rst:150 msgid "You must specify both the variable name and the value with ``--extra-vars``." msgstr "変数名と値は、``--extra-vars`` で指定する必要があります。" @@ -7451,7 +7472,7 @@ msgstr "完了を待たずにバックグラウンドで実行するように構 #: ../../rst/reference_appendices/glossary.rst:47 msgid "Callback Plugin" -msgstr "Callback プラグイン" +msgstr "Callback Plugin (コールバックプラグイン)" #: ../../rst/reference_appendices/glossary.rst:49 msgid "Refers to some user-written code that can intercept results from Ansible and do something with them. Some supplied examples in the GitHub project perform custom logging, send email, or even play sound effects." @@ -7551,8 +7572,8 @@ msgid "Facts" msgstr "ファクト" #: ../../rst/reference_appendices/glossary.rst:122 -msgid "Facts are simply things that are discovered about remote nodes. While they can be used in :term:`playbooks` and templates just like variables, facts are things that are inferred, rather than set. Facts are automatically discovered by Ansible when running plays by executing the internal :ref:`setup module ` on the remote nodes. You never have to call the setup module explicitly, it just runs, but it can be disabled to save time if it is not needed or you can tell ansible to collect only a subset of the full facts via the ``gather_subset:`` option. For the convenience of users who are switching from other configuration management systems, the fact module will also pull in facts from the :program:`ohai` and :program:`facter` tools if they are installed. These are fact libraries from Chef and Puppet, respectively. (These may also be disabled via ``gather_subset:``)" -msgstr "端的に言うと、ファクトはリモートノードについて発見される事柄を指します。ファクトは変数のように :term:`Playbook` やテンプレートで使用できますが、ファクトは設定される事柄というよりは推測される事柄と言えます。ファクトは、リモートノードで内部 :ref:`セットアップモジュール ` を実行することでプレイの実行中に Ansible により自動的に検出されるため、セットアップモジュールを明示的に呼び出すことはありません。それはただ実行されます。その必要がなければ時間を節約するために無効にすることもできますし、``gather_subset:`` オプションで全ファクトのサブセットだけを収集するように Ansible に指示することもできます。他の設定管理システムから切り替えを行われている場合の利点として、ファクトモジュールは、Chef と Puppet のファクトライブラリーから、それぞれ :program:`ohai` ツールおよび :program:`facter` ツールからも (インストールされている場合) ファクトを取り込みます (これは ``gather_subset:`` で無効にすることもできます)。" +msgid "Facts are simply things that are discovered about remote nodes. While they can be used in :term:`playbooks` and templates just like variables, facts are things that are inferred, rather than set. Facts are automatically discovered by Ansible when running plays by executing the internal :ref:`setup module ` on the remote nodes. You never have to call the setup module explicitly, it just runs, but it can be disabled to save time if it is not needed or you can tell ansible to collect only a subset of the full facts through the ``gather_subset:`` option. For the convenience of users who are switching from other configuration management systems, the fact module will also pull in facts from the :program:`ohai` and :program:`facter` tools if they are installed. These are fact libraries from Chef and Puppet, respectively. (These may also be disabled through ``gather_subset:``)" +msgstr "端的に言うと、ファクトはリモートノードについて発見される事柄を指します。ファクトは変数のように :term:`playbooks` やテンプレートで使用できますが、ファクトは設定される事柄というよりは推測される事柄と言えます。ファクトは、リモートノードで内部 :ref:`setup module ` を実行することでプレイの実行中に Ansible により自動的に検出されるため、セットアップモジュールを明示的に呼び出すことはありません。それはただ実行されます。その必要がなければ時間を節約するために無効にすることもできますし、``gather_subset:`` オプションで全ファクトのサブセットだけを収集するように Ansible に指示することもできます。他の設定管理システムから切り替えを行われている場合の利点として、ファクトモジュールは、Chef と Puppet のファクトライブラリーから、それぞれ :program:`ohai` ツールおよび :program:`facter` ツールからも (インストールされている場合) ファクトを取り込みます (これは ``gather_subset:`` で無効にすることもできます)。" #: ../../rst/reference_appendices/glossary.rst:136 msgid "Filter Plugin" @@ -7604,7 +7625,7 @@ msgstr "グループは、プールに割り当てられた複数のホストで #: ../../rst/reference_appendices/glossary.rst:175 msgid "Group Vars" -msgstr "グループ変数" +msgstr "Group Vars (グループ変数)" #: ../../rst/reference_appendices/glossary.rst:177 msgid "The :file:`group_vars/` files are files that live in a directory alongside an inventory file, with an optional filename named after each group. This is a convenient place to put variables that are provided to a given group, especially complex data structures, so that these variables do not have to be embedded in the :term:`inventory` file or :term:`playbook `." @@ -7612,7 +7633,7 @@ msgstr ":file:`group_vars/` ファイルは、各グループに由来する任 #: ../../rst/reference_appendices/glossary.rst:183 msgid "Handlers" -msgstr "ハンドラー" +msgstr "Handler (ハンドラー)" #: ../../rst/reference_appendices/glossary.rst:185 msgid "Handlers are just like regular tasks in an Ansible :term:`playbook ` (see :term:`Tasks`) but are only run if the Task contains a ``notify`` keyword and also indicates that it changed something. For example, if a config file is changed, then the task referencing the config file templating operation may notify a service restart handler. This means services can be bounced only if they need to be restarted. Handlers can be used for things other than service restarts, but service restarts are the most common usage." @@ -7628,7 +7649,7 @@ msgstr "ホストとは、Ansible が管理するリモートマシンのこと #: ../../rst/reference_appendices/glossary.rst:200 msgid "Host Specifier" -msgstr "ホスト指定子" +msgstr "Host Specifier (ホスト指定子)" #: ../../rst/reference_appendices/glossary.rst:202 msgid "Each :term:`Play ` in Ansible maps a series of :term:`tasks` (which define the role, purpose, or orders of a system) to a set of systems." @@ -7671,12 +7692,12 @@ msgid "Inventory" msgstr "インベントリー" #: ../../rst/reference_appendices/glossary.rst:234 -msgid "A file (by default, Ansible uses a simple INI format) that describes :term:`Hosts ` and :term:`Groups ` in Ansible. Inventory can also be provided via an :term:`Inventory Script` (sometimes called an \"External Inventory Script\")." -msgstr "Ansible で :term:`ホスト ` と :term:`グループ ` を記述したファイル (デフォルトでは、Ansible は簡単な INI 形式を使用)。インベントリーは、:term:`インベントリースクリプト` (「外部インベントリースクリプト」と呼ばれることもあります) を介して提供することもできます。" +msgid "A file (by default, Ansible uses a simple INI format) that describes :term:`Hosts ` and :term:`Groups ` in Ansible. Inventory can also be provided through an :term:`Inventory Script` (sometimes called an \"External Inventory Script\")." +msgstr "Ansible で :term:`Hosts ` と :term:`Groups ` を記述したファイル (デフォルトでは、Ansible は簡単な INI 形式を使用)。インベントリーは、:term:`Inventory Script` (「外部インベントリースクリプト」と呼ばれることもあります) を介して提供することもできます。" #: ../../rst/reference_appendices/glossary.rst:238 msgid "Inventory Script" -msgstr "インベントリースクリプト" +msgstr "Inventory Script (インベントリースクリプト)" #: ../../rst/reference_appendices/glossary.rst:240 msgid "A very simple program (or a complicated one) that looks up :term:`hosts `, :term:`group` membership for hosts, and variable information from an external resource -- whether that be a SQL database, a CMDB solution, or something like LDAP. This concept was adapted from Puppet (where it is called an \"External Nodes Classifier\") and works more or less exactly the same way." @@ -7907,7 +7928,7 @@ msgid "SSH (Native)" msgstr "SSH (ネイティブ)" #: ../../rst/reference_appendices/glossary.rst:461 -msgid "Native OpenSSH as an Ansible transport is specified with ``-c ssh`` (or a config file, or a keyword in the :term:`playbook `) and can be useful if wanting to login via Kerberized SSH or using SSH jump hosts, and so on. In 1.2.1, ``ssh`` will be used by default if the OpenSSH binary on the control machine is sufficiently new. Previously, Ansible selected ``paramiko`` as a default. Using a client that supports ``ControlMaster`` and ``ControlPersist`` is recommended for maximum performance -- if you don't have that and don't need Kerberos, jump hosts, or other features, ``paramiko`` is a good choice. Ansible will warn you if it doesn't detect ControlMaster/ControlPersist capability." +msgid "Native OpenSSH as an Ansible transport is specified with ``-c ssh`` (or a config file, or a keyword in the :term:`playbook `) and can be useful if wanting to login through Kerberized SSH or using SSH jump hosts, and so on. In 1.2.1, ``ssh`` will be used by default if the OpenSSH binary on the control machine is sufficiently new. Previously, Ansible selected ``paramiko`` as a default. Using a client that supports ``ControlMaster`` and ``ControlPersist`` is recommended for maximum performance -- if you don't have that and don't need Kerberos, jump hosts, or other features, ``paramiko`` is a good choice. Ansible will warn you if it doesn't detect ControlMaster/ControlPersist capability." msgstr "Ansible のトランスポートとしてのネイティブな OpenSSH は、``-c ssh`` (または設定ファイル、あるいは :term:`playbook ` のキーワード) で指定します。これは Kerberized SSH でログインしたい場合や、SSH ジャンプホストを使用したい場合などに便利です。1.2.1 では、コントロールマシン上の OpenSSH バイナリーが十分に新しい場合は、``ssh`` がデフォルトで使用されます。これまでの Ansible では、デフォルトで ``paramiko`` が選択されていました。最大限のパフォーマンスを得るためには、``ControlMaster`` および ``ControlPersist`` をサポートしているクライアントを使用することが推奨されています。もしそれがなく、Kerberos やジャンプホストなどの機能が不要な場合は、``paramiko`` を使用することが推奨されます。Ansible は、ControlMaster/ControlPersist 機能を検出できないと警告を発します。" #: ../../rst/reference_appendices/glossary.rst:472 @@ -7985,7 +8006,7 @@ msgstr "よくある質問 (FAQ)" #: ../../rst/reference_appendices/glossary.rst:540 msgid "`User Mailing List `_" -msgstr "`メーリングリストの使用 `_" +msgstr "`User Mailing List `_" #: ../../rst/reference_appendices/interpreter_discovery.rst:4 msgid "Interpreter Discovery" @@ -8137,11 +8158,11 @@ msgstr "パスを取得し、そのマウントポイントを返します。" #: ../../rst/reference_appendices/module_utils.rst:50 #: ansible.module_utils.basic.AnsibleModule.find_mount_point #: ansible.module_utils.basic.AnsibleModule.get_bin_path -#: ansible.module_utils.basic.AnsibleModule.is_executable #: ansible.module_utils.basic.AnsibleModule.run_command #: ansible.module_utils.common.arg_spec.ArgumentSpecValidator #: ansible.module_utils.common.arg_spec.ArgumentSpecValidator.validate #: ansible.module_utils.common.arg_spec.ValidationResult +#: ansible.module_utils.common.file.is_executable #: ansible.module_utils.common.parameters.sanitize_keys #: ansible.module_utils.common.validation.check_missing_parameters #: ansible.module_utils.common.validation.check_mutually_exclusive @@ -8211,23 +8232,23 @@ msgstr "``PATH`` と、検索するディレクトリーのオプションの一 msgid "if found return full path; otherwise return None" msgstr "見つかった場合はフルパスを返します。見つからない場合は None を返します。" -#: ansible.module_utils.basic.AnsibleModule.is_executable:1 of +#: ansible.module_utils.common.file.is_executable:1 of msgid "is the given path executable?" msgstr "指定のパスは実行ファイルですか。" -#: ansible.module_utils.basic.AnsibleModule.is_executable:3 of +#: ansible.module_utils.common.file.is_executable:3 of msgid "The path of the file to check." msgstr "確認するファイルのパス。" -#: ansible.module_utils.basic.AnsibleModule.is_executable:5 of +#: ansible.module_utils.common.file.is_executable:5 of msgid "Limitations:" msgstr "制限事項:" -#: ansible.module_utils.basic.AnsibleModule.is_executable:7 of +#: ansible.module_utils.common.file.is_executable:7 of msgid "Does not account for FSACLs." msgstr "FSACL を考慮しません。" -#: ansible.module_utils.basic.AnsibleModule.is_executable:8 of +#: ansible.module_utils.common.file.is_executable:8 of msgid "Most times we really want to know \"Can the current user execute this file\". This function does not tell us that, only if any execute bit is set." msgstr "ほとんどの場合は、「現在のユーザーがこのファイルを実行できるかどうか」を本当に知りたいのです。この関数は、実行ビットが設定されているかどうかだけで、それを知ることはできません。" @@ -8545,12 +8566,9 @@ msgstr "これは、検証したパラメーターおよびエラーが含まれ #: ansible.module_utils.common.arg_spec.ValidationResult:7 of msgid "Terms to be validated and coerced to the correct type." -msgstr "検証され、正しいタイプに強制される用語。" - -#: ansible.module_utils.common.arg_spec.ValidationResult._no_log_values:1 of -msgid ":class:`set` of values marked as ``no_log`` in the argument spec. This is a temporary holding place for these values and may move in the future." -msgstr "引数仕様で ``no_log`` とマークされた値の :class:`set`。これは、これらの値の一時的な保持となり、今後移動する可能性があります。" +msgstr "検証され、正しいタイプに強制される用語です。" +#: ../../docstring #: ansible.module_utils.common.arg_spec.ValidationResult.errors:1 of msgid ":class:`~ansible.module_utils.errors.AnsibleValidationErrorMultiple` containing all :class:`~ansible.module_utils.errors.AnsibleValidationError` objects if there were any failures during validation." msgstr "検証中に失敗した場合は、すべての :class:`~ansible.module_utils.errors.AnsibleValidationError` オブジェクトを含む :class:`~ansible.module_utils.errors.AnsibleValidationErrorMultiple`。" @@ -8949,6 +8967,7 @@ msgstr "フォールバックバリデーターが見つかりませんでした msgid "Single argument spec validation error" msgstr "単一の引数の仕様検証エラー" +#: ../../docstring #: ansible.module_utils.errors.AnsibleValidationError.error_message:1 #: ansible.module_utils.errors.AnsibleValidationError.msg:1 of msgid "The error message passed in when the exception was raised." @@ -8958,6 +8977,7 @@ msgstr "例外が発生したときに渡されたエラーメッセージ" msgid "Multiple argument spec validation errors" msgstr "複数の引数仕様検証エラー" +#: ../../docstring #: ansible.module_utils.errors.AnsibleValidationErrorMultiple.errors:1 of msgid ":class:`list` of :class:`AnsibleValidationError` objects" msgstr ":class:`AnsibleValidationError` オブジェクトの :class:`list`" @@ -8994,6 +9014,10 @@ msgstr "パラメータータイプのエラー" msgid "Error with parameter value" msgstr "パラメーター値のエラー" +#: ansible.module_utils.errors.DeprecationError:1 of +msgid "Error processing parameter deprecations" +msgstr "パラメーターの非推奨アイテムの処理中に発生するエラー" + #: ansible.module_utils.errors.ElementError:1 of msgid "Error when validating elements" msgstr "要素検証時のエラー" @@ -9226,7 +9250,7 @@ msgstr "ハンドラーとして扱われるタスクが含まれるセクショ #: ../../rst/reference_appendices/playbooks_keywords.rst:86 msgid "hosts" -msgstr "hosts" +msgstr "ホスト" #: ../../rst/reference_appendices/playbooks_keywords.rst:86 msgid "A list of groups, hosts or host pattern that translates into a list of hosts that are the play's target." @@ -9373,7 +9397,7 @@ msgstr "プレイに使用する connection プラグインを選択できます #: ../../rst/reference_appendices/playbooks_keywords.rst:332 #: ../../rst/reference_appendices/playbooks_keywords.rst:461 msgid "tags" -msgstr "tags" +msgstr "タグ" #: ../../rst/reference_appendices/playbooks_keywords.rst:134 #: ../../rst/reference_appendices/playbooks_keywords.rst:230 @@ -9619,7 +9643,7 @@ msgstr "until" msgid "This keyword implies a ':term:`retries` loop' that will go on until the condition supplied here is met or we hit the :term:`retries` limit." msgstr "このキーワードは、ここで提供された条件が満たされるまで、または :term:`retries` の制限に到達するまで実行される ':term:`retries` loop' を意味します。" -#: ../../:1 +#: ../../rst/reference_appendices/playbooks_keywords.rst:481 msgid "with_" msgstr "with_" @@ -9636,8 +9660,8 @@ msgid "Ansible 2.5 and above work with Python 3. Previous to 2.5, using Python 3 msgstr "Ansible 2.5 以降では Python 3 を使用しますが、Python 3 を使用する Ansible 2.4 以前のバージョンは、テクノロジープレビューとみなされます。以下のトピックでは、Python 3 を使用できるようにコントローラーと管理マシンを設定する方法を説明します。" #: ../../rst/reference_appendices/python_3_support.rst:9 -msgid "On the controller we support Python 3.5 or greater and Python 2.7 or greater. Module-side, we support Python 3.5 or greater and Python 2.6 or greater." -msgstr "コントローラーでは、Python 3.5 以降、および Python 2.7 以降をサポートしています。モジュール側では、Python 3.5 以降、Python 2.6 以降をサポートします。" +msgid "See :ref: `Control Node Requirements ` and :ref: `Managed Node Requirements ` for the specific versions supported." +msgstr "サポート対象のバージョンは、:ref:`Control Node Requirements ` および :ref:`Managed Node Requirements ` を参照してください。" #: ../../rst/reference_appendices/python_3_support.rst:12 msgid "On the controller side" @@ -9648,11 +9672,11 @@ msgid "The easiest way to run :command:`/usr/bin/ansible` under Python 3 is to i msgstr "Python 3 で :command:`/usr/bin/ansible` を最も簡単に実行するには、pip の Python 3 バージョンをインストールします。これでデフォルトで、Python 3 を使用して :command:`/usr/bin/ansible` を実行できます。" #: ../../rst/reference_appendices/python_3_support.rst:23 -msgid "If you are running Ansible :ref:`from_source` and want to use Python 3 with your source checkout, run your command via ``python3``. For example:" +msgid "If you are running Ansible :ref:`from_source` and want to use Python 3 with your source checkout, run your command through ``python3``. For example:" msgstr "Ansible :ref:`from_source` を実行していて、ソースのチェックアウトに Python 3 を使用するには、``python3`` でコマンドを実行します。以下に例を示します。" #: ../../rst/reference_appendices/python_3_support.rst:32 -msgid "Individual Linux distribution packages may be packaged for Python2 or Python3. When running from distro packages you'll only be able to use Ansible with the Python version for which it was installed. Sometimes distros will provide a means of installing for several Python versions (via a separate package or via some commands that are run after install). You'll need to check with your distro to see if that applies in your case." +msgid "Individual Linux distribution packages may be packaged for Python2 or Python3. When running from distro packages you'll only be able to use Ansible with the Python version for which it was installed. Sometimes distros will provide a means of installing for several Python versions (through a separate package or through some commands that are run after install). You'll need to check with your distro to see if that applies in your case." msgstr "個々の Linux ディストリビューションパッケージは、Python2 または Python3 にパッケージ化されます。ディストリビューションから実行する場合は、インストールされている Python バージョンでのみ Ansible を使用できます。障害により、複数の Python バージョン (別のパッケージ、またはインストール後に実行される一部のコマンドを介して) インストールを行う手段が提供されます。" #: ../../rst/reference_appendices/python_3_support.rst:40 @@ -9864,7 +9888,6 @@ msgid "Ansible Community Package Release" msgstr "Ansible コミュニティーパッケージのリリース" #: ../../rst/reference_appendices/release_and_maintenance.rst:81 -#: ../../rst/reference_appendices/release_and_maintenance.rst:125 msgid "Status" msgstr "ステータス" @@ -9873,359 +9896,462 @@ msgid "Core version dependency" msgstr "Core バージョンの依存関係" #: ../../rst/reference_appendices/release_and_maintenance.rst:83 -msgid "7.0.0" -msgstr "7.0.0" +msgid "8.0.0" +msgstr "8.0.0" #: ../../rst/reference_appendices/release_and_maintenance.rst:83 msgid "In development (unreleased)" msgstr "開発中 (未リリース)" #: ../../rst/reference_appendices/release_and_maintenance.rst:84 -msgid "`6.x Changelogs`_" -msgstr "`6.x Changelogs`_" +msgid "`7.x Changelogs`_" +msgstr "`7.x Changelogs`_" #: ../../rst/reference_appendices/release_and_maintenance.rst:84 msgid "Current" msgstr "現行" #: ../../rst/reference_appendices/release_and_maintenance.rst:85 +msgid "`6.x Changelogs`_" +msgstr "`6.x Changelogs`_" + +#: ../../rst/reference_appendices/release_and_maintenance.rst:85 +msgid "Unmaintained (end of life) after Ansible 6.7.0" +msgstr "Ansible 6.7.0 以降、メンテナンス対象外 (サポート終了)" + +#: ../../rst/reference_appendices/release_and_maintenance.rst:86 msgid "`5.x Changelogs`_" msgstr "`5.x Changelogs`_" -#: ../../rst/reference_appendices/release_and_maintenance.rst:85 #: ../../rst/reference_appendices/release_and_maintenance.rst:86 #: ../../rst/reference_appendices/release_and_maintenance.rst:87 #: ../../rst/reference_appendices/release_and_maintenance.rst:88 -#: ../../rst/reference_appendices/release_and_maintenance.rst:132 -#: ../../rst/reference_appendices/release_and_maintenance.rst:133 -#: ../../rst/reference_appendices/release_and_maintenance.rst:134 -#: ../../rst/reference_appendices/release_and_maintenance.rst:135 -#: ../../rst/reference_appendices/release_and_maintenance.rst:136 -#: ../../rst/reference_appendices/release_and_maintenance.rst:137 -#: ../../rst/reference_appendices/release_and_maintenance.rst:138 +#: ../../rst/reference_appendices/release_and_maintenance.rst:89 msgid "Unmaintained (end of life)" msgstr "メンテナンス対象外 (エンドオフライフ)" -#: ../../rst/reference_appendices/release_and_maintenance.rst:86 +#: ../../rst/reference_appendices/release_and_maintenance.rst:87 msgid "`4.x Changelogs`_" msgstr "`4.x Changelogs`_" -#: ../../rst/reference_appendices/release_and_maintenance.rst:87 +#: ../../rst/reference_appendices/release_and_maintenance.rst:88 msgid "`3.x Changelogs`_" msgstr "`3.x Changelogs`_" -#: ../../rst/reference_appendices/release_and_maintenance.rst:88 +#: ../../rst/reference_appendices/release_and_maintenance.rst:89 msgid "`2.10 Changelogs`_" msgstr "`2.10 Changelogs`_" -#: ../../rst/reference_appendices/release_and_maintenance.rst:99 +#: ../../rst/reference_appendices/release_and_maintenance.rst:101 msgid "ansible-core release cycle" msgstr "ansible-core リリースサイクル" -#: ../../rst/reference_appendices/release_and_maintenance.rst:101 +#: ../../rst/reference_appendices/release_and_maintenance.rst:103 msgid "``ansible-core`` is developed and released on a flexible release cycle. We can extend this cycle to properly implement and test larger changes before a new release is made available. See :ref:`ansible_core_roadmaps` for upcoming release details." msgstr "``ansible-core`` は、柔軟なリリースサイクルで開発およびリリースされます。このサイクルを延長して、新しいリリースが利用可能になる前に、より大きな変更を適切に実装およびテストできます。今後のリリースの詳細については :ref:`ansible_core_roadmaps` を参照してください。" -#: ../../rst/reference_appendices/release_and_maintenance.rst:103 +#: ../../rst/reference_appendices/release_and_maintenance.rst:105 msgid "``ansible-core`` has a graduated maintenance structure that extends to three major releases. For more information, read about the :ref:`development_and_stable_version_maintenance_workflow` or see the chart in :ref:`release_schedule` for the degrees to which current releases are maintained." msgstr "``ansible-core`` には、3 つのメジャーリリースで展開される段階的なメンテナンス構造があります。詳細は、「:ref:`development_and_stable_version_maintenance_workflow`」を参照してください。また、現在のリリースがどの程度メンテナンスされているかについては、:ref:`release_schedule` の表を参照してください。" -#: ../../rst/reference_appendices/release_and_maintenance.rst:109 +#: ../../rst/reference_appendices/release_and_maintenance.rst:111 msgid "Older, unmaintained versions of ``ansible-core`` can contain unfixed security vulnerabilities (*CVEs*). If you are using a release of ``ansible-core`` that is no longer maintained, we strongly encourage you to upgrade as soon as possible to benefit from the latest features and security fixes. ``ansible-core`` maintenance continues for 3 releases. Thus the latest release receives security and general bug fixes when it is first released, security and critical bug fixes when the next ``ansible-core`` version is released, and **only** security fixes once the follow on to that version is released." msgstr "``ansible-core``のメンテナンスされていない以前のバージョンには、セキュリティー脆弱性 (*CVE*) が含まれる場合があります。保守のない``ansible-core``のリリースを使用している場合には、最新の機能およびセキュリティー修正を活用できるように、すぐにアップグレードすることを強く推奨します。``ansible-core``の保守は、3リリース分継続されます。そのため、最新のリリースでは、初回リリース時にセキュリティーと一般的なバグ修正が、次の``ansible-core``バージョンがリリースされると、セキュリティーと重大なバグ修正が、その次のバージョンがリリースされると、セキュリティー修正**のみ**が提供されます。" -#: ../../rst/reference_appendices/release_and_maintenance.rst:111 +#: ../../rst/reference_appendices/release_and_maintenance.rst:113 msgid "You can refer to the :ref:`core_porting_guides` for tips on updating your playbooks to run on newer versions of ``ansible-core``." msgstr "Playbook を更新して``ansible-core`` の新しいバージョンで実行するときのヒントは、「:ref:`core_porting_guides`」を参照してください。" -#: ../../rst/reference_appendices/release_and_maintenance.rst:113 +#: ../../rst/reference_appendices/release_and_maintenance.rst:115 msgid "You can install ``ansible-core`` with ``pip``. See :ref:`intro_installation_guide` for details." msgstr "``pip`` で ``ansible-core`` をインストールできます。詳細は、「:ref:`intro_installation_guide`」を参照してください。" -#: ../../rst/reference_appendices/release_and_maintenance.rst:118 -msgid "``ansible-core`` changelogs" -msgstr "``ansible-core`` 変更ログ (Changelog)" +#: ../../rst/reference_appendices/release_and_maintenance.rst:121 +msgid "``ansible-core`` support matrix" +msgstr "``ansible-core`` サポートマトリックス" + +#: ../../rst/reference_appendices/release_and_maintenance.rst:123 +msgid "This table links to the changelogs for each major ``ansible-core`` release. These changelogs contain the dates and significant changes in each minor release. Dates listed indicate the start date of the maintenance cycle." +msgstr "以下の表には、``ansible-core`` の各メジャーリリースの変更ログへのリンクが含まれています。このような変更ログには、各マイナーリリースの日付や、大きな変更が含まれます。記載の日付は、メンテナンスサイクルの開始日を指します。" + +#: ../../rst/reference_appendices/release_and_maintenance.rst:129 +msgid "Version" +msgstr "バージョン" -#: ../../rst/reference_appendices/release_and_maintenance.rst:120 -msgid "This table links to the changelogs for each major ``ansible-core`` release. These changelogs contain the dates and significant changes in each minor release." -msgstr "以下の表には、``ansible-core`` の各メジャーリリースの変更ログへのリンクが含まれています。このような変更ログには、各マイナーリリースの日付や、大きな変更が含まれます。" +#: ../../rst/reference_appendices/release_and_maintenance.rst:130 +msgid "Support" +msgstr "サポート" -#: ../../rst/reference_appendices/release_and_maintenance.rst:125 -msgid "``ansible-core``/``ansible-base``" -msgstr "``ansible-core``/``ansible-base``" +#: ../../rst/reference_appendices/release_and_maintenance.rst:131 +msgid "End Of Life" +msgstr "ライフサイクル終了日" -#: ../../rst/reference_appendices/release_and_maintenance.rst:125 -msgid "Expected end of life" -msgstr "想定のライフサイクル終了日" +#: ../../rst/reference_appendices/release_and_maintenance.rst:132 +msgid "Controller Python" +msgstr "Controller Python" -#: ../../rst/reference_appendices/release_and_maintenance.rst:126 -msgid "Release" -msgstr "Release" +#: ../../rst/reference_appendices/release_and_maintenance.rst:133 +msgid "Target Python / PowerShell" +msgstr "Target Python / PowerShell" -#: ../../rst/reference_appendices/release_and_maintenance.rst:128 -msgid "devel" -msgstr "devel" +#: ../../rst/reference_appendices/release_and_maintenance.rst:134 +msgid "`2.15`_" +msgstr "`2.15`_" -#: ../../rst/reference_appendices/release_and_maintenance.rst:128 -msgid "In development (ansible-core 2.14 unreleased, trunk)" -msgstr "開発中 (未リリースの ansible-core 2.14 (trunk))" +#: ../../rst/reference_appendices/release_and_maintenance.rst +msgid "GA: 22 May 2023" +msgstr "一般提供: 2023 年 5 月 22 日" -#: ../../rst/reference_appendices/release_and_maintenance.rst:128 -msgid "TBD" -msgstr "TBD" +#: ../../rst/reference_appendices/release_and_maintenance.rst +msgid "Critical: 06 Nov 2023" +msgstr "クリティカル: 2023 年 11 月 6 日" -#: ../../rst/reference_appendices/release_and_maintenance.rst:129 -msgid "`2.13 ansible-core Changelogs`_" -msgstr "`2.10 ansible-base Release Notes`_" +#: ../../rst/reference_appendices/release_and_maintenance.rst +msgid "Security: 20 May 2024" +msgstr "セキュリティー: 2024 年 5 月 20 日" -#: ../../rst/reference_appendices/release_and_maintenance.rst:129 -msgid "Maintained (security **and** general bug fixes)" -msgstr "メンテナンス対象 (セキュリティー **および** 一般的なバグの修正)" +#: ../../rst/reference_appendices/release_and_maintenance.rst:138 +msgid "Nov 2024" +msgstr "2024 年 11 月" -#: ../../rst/reference_appendices/release_and_maintenance.rst:129 -msgid "Nov 2023" -msgstr "2023 年 11 月" +#: ../../rst/reference_appendices/release_and_maintenance.rst +msgid "Python 3.9 - 3.11" +msgstr "Python 3.9 - 3.11" -#: ../../rst/reference_appendices/release_and_maintenance.rst:130 -msgid "`2.12 ansible-core Changelogs`_" -msgstr "`2.10 ansible-base Release Notes`_" +#: ../../rst/reference_appendices/release_and_maintenance.rst +msgid "Python 2.7" +msgstr "Python 2.7" -#: ../../rst/reference_appendices/release_and_maintenance.rst:130 -msgid "Maintained (security **and** critical bug fixes)" -msgstr "メンテナンス対象 (セキュリティー **および** 重大なバグの修正)" +#: ../../rst/reference_appendices/release_and_maintenance.rst +msgid "Python 3.5 - 3.11" +msgstr "Python 3.5 - 3.11" -#: ../../rst/reference_appendices/release_and_maintenance.rst:130 -msgid "May 2023" -msgstr "2023 年 5 月" +#: ../../rst/reference_appendices/release_and_maintenance.rst +msgid "PowerShell 3 - 5.1" +msgstr "PowerShell 3 - 5.1" -#: ../../rst/reference_appendices/release_and_maintenance.rst:131 -msgid "`2.11 ansible-core Changelogs`_" -msgstr "`2.10 ansible-base Release Notes`_" +#: ../../rst/reference_appendices/release_and_maintenance.rst:143 +msgid "`2.14`_" +msgstr "`2.14`_" -#: ../../rst/reference_appendices/release_and_maintenance.rst:131 -msgid "Maintained (security bug fixes only)" -msgstr "メンテナンス対象 (セキュリティーバグ修正のみ)" +#: ../../rst/reference_appendices/release_and_maintenance.rst +msgid "GA: 07 Nov 2022" +msgstr "一般提供: 2022 年 11 月 7 日" -#: ../../rst/reference_appendices/release_and_maintenance.rst:131 -msgid "Nov 2022" -msgstr "2022 年 11 月" +#: ../../rst/reference_appendices/release_and_maintenance.rst +msgid "Critical: 22 May 2023" +msgstr "クリティカル: 2023 年 5 月 22 日" -#: ../../rst/reference_appendices/release_and_maintenance.rst:132 -msgid "`2.10 ansible-base Changelogs`_" -msgstr "`2.10 ansible-base Release Notes`_" +#: ../../rst/reference_appendices/release_and_maintenance.rst +msgid "Security: 06 Nov 2023" +msgstr "セキュリティー: 2023 年 11 月 6 日" -#: ../../rst/reference_appendices/release_and_maintenance.rst:132 -#: ../../rst/reference_appendices/release_and_maintenance.rst:133 -#: ../../rst/reference_appendices/release_and_maintenance.rst:134 -#: ../../rst/reference_appendices/release_and_maintenance.rst:135 -#: ../../rst/reference_appendices/release_and_maintenance.rst:136 -#: ../../rst/reference_appendices/release_and_maintenance.rst:137 -#: ../../rst/reference_appendices/release_and_maintenance.rst:138 -msgid "EOL" -msgstr "EOL" +#: ../../rst/reference_appendices/release_and_maintenance.rst:147 +msgid "20 May 2024" +msgstr "2024 年 5 月 20 日" -#: ../../rst/reference_appendices/release_and_maintenance.rst:133 -msgid "`2.9 Changelogs`_" -msgstr "`2.9 Changelogs`_" +#: ../../rst/reference_appendices/release_and_maintenance.rst:152 +msgid "`2.13`_" +msgstr "`2.13`_" -#: ../../rst/reference_appendices/release_and_maintenance.rst:134 -msgid "`2.8 Changelogs`_" -msgstr "`2.8 Changelogs`_" +#: ../../rst/reference_appendices/release_and_maintenance.rst +msgid "GA: 23 May 2022" +msgstr "一般提供: 2022 年 5 月 23 日" -#: ../../rst/reference_appendices/release_and_maintenance.rst:135 -msgid "`2.7 Changelogs`_" -msgstr "`2.7 Changelogs`_" +#: ../../rst/reference_appendices/release_and_maintenance.rst +msgid "Critical: 07 Nov 2022" +msgstr "クリティカル: 2022 年 11 月 7 日" -#: ../../rst/reference_appendices/release_and_maintenance.rst:136 -msgid "`2.6 Changelogs`_" -msgstr "`2.6 Changelogs`_" +#: ../../rst/reference_appendices/release_and_maintenance.rst +msgid "Security: 22 May 2023" +msgstr "セキュリティー: 2023 年 5 月 22 日" -#: ../../rst/reference_appendices/release_and_maintenance.rst:137 -msgid "`2.5 Changelogs`_" -msgstr "`2.5 Changelogs`_" +#: ../../rst/reference_appendices/release_and_maintenance.rst:156 +msgid "06 Nov 2023" +msgstr "2023 年 11 月 6 日" -#: ../../rst/reference_appendices/release_and_maintenance.rst:138 -msgid "<2.5" -msgstr "2.5 より前のバージョン" +#: ../../rst/reference_appendices/release_and_maintenance.rst +msgid "Python 3.8 - 3.10" +msgstr "Python 3.8 - 3.10" + +#: ../../rst/reference_appendices/release_and_maintenance.rst +msgid "Python 3.5 - 3.10" +msgstr "Python 3.5 - 3.10" #: ../../rst/reference_appendices/release_and_maintenance.rst:161 +msgid "`2.12`_" +msgstr "`2.12`_" + +#: ../../rst/reference_appendices/release_and_maintenance.rst +msgid "GA: 08 Nov 2021" +msgstr "一般提供: 2021 年 11 月 8 日" + +#: ../../rst/reference_appendices/release_and_maintenance.rst +msgid "Critical: 23 May 2022" +msgstr "クリティカル: 2022 年 5 月 23 日" + +#: ../../rst/reference_appendices/release_and_maintenance.rst +msgid "Security: 07 Nov 2022" +msgstr "セキュリティー: 2022 年 11 月 7 日" + +#: ../../rst/reference_appendices/release_and_maintenance.rst:165 +msgid "22 May 2023" +msgstr "2023 年 5 月 22 日" + +#: ../../rst/reference_appendices/release_and_maintenance.rst +msgid "Python 2.6" +msgstr "Python 2.6" + +#: ../../rst/reference_appendices/release_and_maintenance.rst:170 +msgid "`2.11`_" +msgstr "`2.11`_" + +#: ../../rst/reference_appendices/release_and_maintenance.rst +msgid "GA: 26 Apr 2021" +msgstr "一般提供: 2021 年 4 月 26 日" + +#: ../../rst/reference_appendices/release_and_maintenance.rst +msgid "Critical: 08 Nov 2021" +msgstr "クリティカル: 2021 年 11 月 8 日" + +#: ../../rst/reference_appendices/release_and_maintenance.rst +msgid "Security: 23 May 2022" +msgstr "セキュリティー: 2022 年 5 月 23 日" + +#: ../../rst/reference_appendices/release_and_maintenance.rst +msgid "**EOL**" +msgstr "**EOL**" + +#: ../../rst/reference_appendices/release_and_maintenance.rst +msgid "07 Nov 2022" +msgstr "2023 年 11 月 7 日" + +#: ../../rst/reference_appendices/release_and_maintenance.rst +msgid "Python 3.5 - 3.9" +msgstr "Python 3.5 - 3.9" + +#: ../../rst/reference_appendices/release_and_maintenance.rst +msgid "Python 2.6 - 2.7" +msgstr "Python 2.6 - 2.7" + +#: ../../rst/reference_appendices/release_and_maintenance.rst:181 +msgid "`2.10`_" +msgstr "`2.10`_" + +#: ../../rst/reference_appendices/release_and_maintenance.rst +msgid "GA: 13 Aug 2020" +msgstr "一般提供: 2020 年 8 月 13 日" + +#: ../../rst/reference_appendices/release_and_maintenance.rst +msgid "Critical: 26 Apr 2021" +msgstr "クリティカル: 2021 年 4 月 26 日" + +#: ../../rst/reference_appendices/release_and_maintenance.rst +msgid "Security: 08 Nov 2021" +msgstr "セキュリティー: 2021 年 11 月 8 日" + +#: ../../rst/reference_appendices/release_and_maintenance.rst +msgid "23 May 2022" +msgstr "2022 年 5 月 23 日" + +#: ../../rst/reference_appendices/release_and_maintenance.rst:192 +msgid "`2.9`_" +msgstr "`2.9`_" + +#: ../../rst/reference_appendices/release_and_maintenance.rst +msgid "GA: 31 Oct 2019" +msgstr "一般提供: 2019 年 10 月 31 日" + +#: ../../rst/reference_appendices/release_and_maintenance.rst +msgid "Critical: 13 Aug 2020" +msgstr "クリティカル: 2020 年 8 月 13 日" + +#: ../../rst/reference_appendices/release_and_maintenance.rst +msgid "Security: 26 Apr 2021" +msgstr "セキュリティー: 2021 年 4 月 26 日" + +#: ../../rst/reference_appendices/release_and_maintenance.rst +msgid "Python 3.5 - 3.8" +msgstr "Python 3.5 - 3.8" + +#: ../../rst/reference_appendices/release_and_maintenance.rst:295 msgid "Preparing for a new release" msgstr "新しいリリースの準備" -#: ../../rst/reference_appendices/release_and_maintenance.rst:166 +#: ../../rst/reference_appendices/release_and_maintenance.rst:300 msgid "Feature freezes" msgstr "機能フリーズ" -#: ../../rst/reference_appendices/release_and_maintenance.rst:168 +#: ../../rst/reference_appendices/release_and_maintenance.rst:302 msgid "During final preparations for a new release, core developers and maintainers focus on improving the release candidate, not on adding or reviewing new features. We may impose a feature freeze." msgstr "新しいリリースの最終準備中、コア開発者とメンテナは、新機能の追加やレビューではなく、リリース候補の改善に集中します。機能フリーズを指示する場合があります。" -#: ../../rst/reference_appendices/release_and_maintenance.rst:170 +#: ../../rst/reference_appendices/release_and_maintenance.rst:304 msgid "A feature freeze means that we delay new features and fixes unrelated to the pending release so we can create the new release as soon as possible." msgstr "機能フリーズとは、保留中のリリースに関連のない新機能や修正を遅らせて、新しいリリースをできるだけ早く作成できるようにすることを意味します。" -#: ../../rst/reference_appendices/release_and_maintenance.rst:175 +#: ../../rst/reference_appendices/release_and_maintenance.rst:309 msgid "Release candidates" msgstr "リリースの候補 (Release Candidate)" -#: ../../rst/reference_appendices/release_and_maintenance.rst:177 +#: ../../rst/reference_appendices/release_and_maintenance.rst:311 msgid "We create at least one release candidate before each new major release of Ansible or ``ansible-core``. Release candidates allow the Ansible community to try out new features, test existing playbooks on the release candidate, and report bugs or issues they find." msgstr "Ansibleまたは``ansible-core``の新しいメジャーリリースの前に毎回、少なくとも1つのリリース候補を作成します。リリース候補を使用することで、Ansibleコミュニティは新機能を試したり、リリース候補で既存のPlaybookをテストしたり、見つかったバグや問題を報告したりできます。" -#: ../../rst/reference_appendices/release_and_maintenance.rst:179 +#: ../../rst/reference_appendices/release_and_maintenance.rst:313 msgid "Ansible and ``ansible-core`` tag the first release candidate (RC1) which is usually scheduled to last five business days. If no major bugs or issues are identified during this period, the release candidate becomes the final release." msgstr "Ansible および ``ansible-core`` は、最初のリリース候補のタグ (RC1) が付けられます。通常、RC1 は最後の5営業日にスケジュールされます。この期間にメジャーなバグや問題が特定されない場合には、リリース候補が最終リリースとなります。" -#: ../../rst/reference_appendices/release_and_maintenance.rst:181 +#: ../../rst/reference_appendices/release_and_maintenance.rst:315 msgid "If there are major problems with the first candidate, the team and the community fix them and tag a second release candidate (RC2). This second candidate lasts for a shorter duration than the first. If no problems have been reported for an RC2 after two business days, the second release candidate becomes the final release." msgstr "最初の候補に大きな問題がある場合は、チームおよびコミュニティーが修正を加えて、2 番目の候補のタグ (RC2) が付けられます。2 番目の候補は、1 番目よりも期間は短くなります。2 営業日が経過して問題が報告されない場合は、この2番目のリリース候補が最終的なリリースとなります。" -#: ../../rst/reference_appendices/release_and_maintenance.rst:183 +#: ../../rst/reference_appendices/release_and_maintenance.rst:317 msgid "If there are major problems in RC2, the cycle begins again with another release candidate and repeats until the maintainers agree that all major problems have been fixed." msgstr "RC2に重大な問題がある場合には、サイクルは別のリリース候補から再開され、すべての主要な問題が修正されたことにメンテナが同意するまで繰り返されます。" -#: ../../rst/reference_appendices/release_and_maintenance.rst:189 +#: ../../rst/reference_appendices/release_and_maintenance.rst:323 msgid "Development and maintenance workflows" msgstr "開発と保守のワークフロー" -#: ../../rst/reference_appendices/release_and_maintenance.rst:191 +#: ../../rst/reference_appendices/release_and_maintenance.rst:325 msgid "In between releases, the Ansible community develops new features, maintains existing functionality, and fixes bugs in ``ansible-core`` and in the collections included in the Ansible community package." msgstr "次のリリースまでの間に、Ansibleコミュニティは新しい機能を開発して既存の機能のメンテナンスを行い、``ansible-core`` や Ansible コミュニティーパッケージに含まれるコレクションのバグを修正します。" -#: ../../rst/reference_appendices/release_and_maintenance.rst:194 +#: ../../rst/reference_appendices/release_and_maintenance.rst:328 msgid "Ansible community package workflow" msgstr "Ansible コミュニティパッケージのワークフロー" -#: ../../rst/reference_appendices/release_and_maintenance.rst:196 +#: ../../rst/reference_appendices/release_and_maintenance.rst:330 msgid "The Ansible community develops and maintains the features and functionality included in the Ansible community package in Collections repositories, with a workflow that looks like this:" msgstr "Ansibleコミュニティは、コレクションリポジトリのAnsibleコミュニティパッケージに含まれる機能を開発および保守します。ワークフローは次のようになります。" -#: ../../rst/reference_appendices/release_and_maintenance.rst:198 +#: ../../rst/reference_appendices/release_and_maintenance.rst:332 msgid "Developers add new features and bug fixes to the individual Collections, following each Collection's rules on contributing." msgstr "開発者は、貢献に関する各コレクションのルールに従って、個々のコレクションに新機能とバグ修正を追加する。" -#: ../../rst/reference_appendices/release_and_maintenance.rst:199 -#: ../../rst/reference_appendices/release_and_maintenance.rst:213 +#: ../../rst/reference_appendices/release_and_maintenance.rst:333 +#: ../../rst/reference_appendices/release_and_maintenance.rst:347 msgid "Each new feature and each bug fix includes a changelog fragment describing the work." msgstr "各新機能と各バグ修正には、作業を説明する変更ログフラグメントが含まれている。" -#: ../../rst/reference_appendices/release_and_maintenance.rst:200 +#: ../../rst/reference_appendices/release_and_maintenance.rst:334 msgid "Release engineers create a minor release for the current version every three weeks to ensure that the latest bug fixes are available to users." msgstr "リリースエンジニアは、最新のバグ修正をユーザーが利用できるように、現在のバージョンのマイナーリリースを3週間ごとに作成する。" -#: ../../rst/reference_appendices/release_and_maintenance.rst:201 +#: ../../rst/reference_appendices/release_and_maintenance.rst:335 msgid "At the end of the development period, the release engineers announce which Collections, and which major version of each included Collection, will be included in the next release of the Ansible community package. New Collections and new major versions may not be added after this, and the work of creating a new release begins." msgstr "開発期間の終わりに、リリースエンジニアは、Ansibleコミュニティパッケージの次のリリースに含まれるコレクションと、追加済みの各コレクションのメジャーバージョンを発表します。これ以降は、コレクションおよびメジャーバージョンは新たに追加できず、新しいリリースの作成準備が開始されます。" -#: ../../rst/reference_appendices/release_and_maintenance.rst:203 +#: ../../rst/reference_appendices/release_and_maintenance.rst:337 msgid "We generally do not provide fixes for unmaintained releases of the Ansible community package, however, there can sometimes be exceptions for critical issues." msgstr "通常、Ansible コミュニティーパッケージで保守されていないバージョンに対する修正は提供していませんが、重大な問題に関しては例外で対応する可能性があります。" -#: ../../rst/reference_appendices/release_and_maintenance.rst:205 +#: ../../rst/reference_appendices/release_and_maintenance.rst:339 msgid "Some Collections are maintained by the Ansible team, some by Partner organizations, and some by community teams. For more information on adding features or fixing bugs in Ansible-maintained Collections, see :ref:`contributing_maintained_collections`." msgstr "Ansibleチーム、パートナー組織、コミュニティチームがコレクションをそれぞれ部分的に管理しています。 Ansibleで管理されているコレクションの機能の追加やバグの修正の詳細については、:ref:`contributing_maintained_collections` を参照してください。" -#: ../../rst/reference_appendices/release_and_maintenance.rst:208 +#: ../../rst/reference_appendices/release_and_maintenance.rst:342 msgid "ansible-core workflow" msgstr "ansible-core ワークフロー" -#: ../../rst/reference_appendices/release_and_maintenance.rst:210 +#: ../../rst/reference_appendices/release_and_maintenance.rst:344 msgid "The Ansible community develops and maintains ``ansible-core`` on GitHub_, with a workflow that looks like this:" msgstr "Ansibleコミュニティは、GitHub_の``ansible-core``で開発と維持を行っており、次のようなワークフローを使用します。" -#: ../../rst/reference_appendices/release_and_maintenance.rst:212 +#: ../../rst/reference_appendices/release_and_maintenance.rst:346 msgid "Developers add new features and bug fixes to the ``devel`` branch." msgstr "開発者は、``devel``ブランチに新機能とバグ修正を追加する。" -#: ../../rst/reference_appendices/release_and_maintenance.rst:214 +#: ../../rst/reference_appendices/release_and_maintenance.rst:348 msgid "The development team backports bug fixes to one, two, or three stable branches, depending on the severity of the bug. They do not backport new features." msgstr "開発チームは、バグの重大度に応じて、バグ修正を1つ、2つ、または3つの安定したブランチにバックポートし、新機能のバックポートは行わない。" -#: ../../rst/reference_appendices/release_and_maintenance.rst:215 +#: ../../rst/reference_appendices/release_and_maintenance.rst:349 msgid "Release engineers create a minor release for each maintained version every three weeks to ensure that the latest bug fixes are available to users." msgstr "リリースエンジニアは、最新のバグ修正をユーザーが利用できるように、各保守バージョンのマイナーリリースを3週間ごとに作成する。" -#: ../../rst/reference_appendices/release_and_maintenance.rst:216 +#: ../../rst/reference_appendices/release_and_maintenance.rst:350 msgid "At the end of the development period, the release engineers impose a feature freeze and the work of creating a new release begins." msgstr "開発期間の終わりに、リリースエンジニアは機能をフリーズし、新しいリリースの準備を開始する。" -#: ../../rst/reference_appendices/release_and_maintenance.rst:218 +#: ../../rst/reference_appendices/release_and_maintenance.rst:352 msgid "We generally do not provide fixes for unmaintained releases of ``ansible-core``, however, there can sometimes be exceptions for critical issues." msgstr "通常、メンテナンスされていない``ansible-core``リリースに対する修正は提供していませんが、重大な問題に関しては例外で対応する可能性があります。" -#: ../../rst/reference_appendices/release_and_maintenance.rst:220 +#: ../../rst/reference_appendices/release_and_maintenance.rst:354 msgid "For more information about adding features or fixing bugs in ``ansible-core`` see :ref:`community_development_process`." msgstr "``ansible-core`` の機能の追加またはバグの修正の詳細については、:ref:`community_development_process` を参照してください。" -#: ../../rst/reference_appendices/release_and_maintenance.rst:227 +#: ../../rst/reference_appendices/release_and_maintenance.rst:361 msgid "Generating changelogs" msgstr "変更ログの生成" -#: ../../rst/reference_appendices/release_and_maintenance.rst:229 +#: ../../rst/reference_appendices/release_and_maintenance.rst:363 msgid "We generate changelogs based on fragments. When creating new features for existing modules and plugins or fixing bugs, create a changelog fragment describing the change. A changelog entry is not needed for new modules or plugins. Details for those items will be generated from the module documentation." msgstr "変更ログは、フラグメントに基づいて生成されます。既存のモジュールやプラグインの新しい機能を作成したり、バグを修正したりするときは、変更点を記述した変更ログフラグメントを作成します。変更ログのエントリーは、新しいモジュールやプラグインには必要ありません。それらの項目の詳細は、モジュールのドキュメントから生成されます。" -#: ../../rst/reference_appendices/release_and_maintenance.rst:231 +#: ../../rst/reference_appendices/release_and_maintenance.rst:365 msgid "To add changelog fragments to Collections in the Ansible community package, we recommend the `antsibull-changelog utility `_." msgstr "Ansibleコミュニティパッケージのコレクションに変更ログフラグメントを追加するには、`antsibull-changelog utility `_を推奨します。" -#: ../../rst/reference_appendices/release_and_maintenance.rst:233 +#: ../../rst/reference_appendices/release_and_maintenance.rst:367 msgid "To add changelog fragments for new features and bug fixes in ``ansible-core``, see the :ref:`changelog examples and instructions` in the Community Guide." msgstr "``ansible-core``に新機能とバグ修正の変更ログフラグメントを追加するには、コミュニティガイドの:ref:`changelog examples and instructions`を参照してください。" -#: ../../rst/reference_appendices/release_and_maintenance.rst:236 +#: ../../rst/reference_appendices/release_and_maintenance.rst:370 msgid "Deprecation cycles" msgstr "非推奨サイクル" -#: ../../rst/reference_appendices/release_and_maintenance.rst:238 +#: ../../rst/reference_appendices/release_and_maintenance.rst:372 msgid "Sometimes we remove a feature, normally in favor of a reimplementation that we hope does a better job. To do this we have a deprecation cycle. First we mark a feature as 'deprecated'. This is normally accompanied with warnings to the user as to why we deprecated it, what alternatives they should switch to and when (which version) we are scheduled to remove the feature permanently." msgstr "通常、再実装してジョブ実行の改善を希望する場合など、機能を削除することがあります。これを行うために、非推奨のサイクルがあります。まず、機能を「非推奨」としてマークします。これには通常、非推奨になった理由、ユーザーが切り替える必要のある代替手段、および機能を完全に削除する予定の時期 (バージョン) に関する警告が伴います。" -#: ../../rst/reference_appendices/release_and_maintenance.rst:241 +#: ../../rst/reference_appendices/release_and_maintenance.rst:375 msgid "Ansible community package deprecation cycle" msgstr "Ansibleコミュニティパッケージの非推奨サイクル" -#: ../../rst/reference_appendices/release_and_maintenance.rst:243 +#: ../../rst/reference_appendices/release_and_maintenance.rst:377 msgid "Since Ansible is a package of individual collections, the deprecation cycle depends on the collection maintainers. We recommend the collection maintainers deprecate a feature in one Ansible major version and do not remove that feature for one year, or at least until the next major Ansible version. For example, deprecate the feature in 3.1.0 and do not remove the feature until 5.0.0 or 4.0.0 at the earliest. Collections should use semantic versioning, such that the major collection version cannot be changed within an Ansible major version. Therefore, the removal should not happen before the next major Ansible community package release. This is up to each collection maintainer and cannot be guaranteed." msgstr "Ansible は個別のコレクションのパッケージであるため、非推奨のサイクルはコレクションのメンテナーによって異なります。コレクションメンテナーは 1 つの Ansible メジャーバージョンでこの機能を非推奨にし、1 年間でその機能を削除するか、少なくとも次の Ansible バージョンまでに削除しないことを推奨します。たとえば、3.1.0 でこの機能を非推奨にした場合は、最低でも 5.0.0 または 4.0.0 までの機能を削除しないでください。コレクションはセマンティックバージョニングを使用する必要があります。したがって、メジャーコレクションバージョンは、Ansible メジャーバージョン内で変更できません。したがって、次のメジャーリリースの Ansible コミュニティーパッケージリリースの前に削除することはできません。これは、各コレクションのメンテナーの役割であり、保証されているものではありません。" -#: ../../rst/reference_appendices/release_and_maintenance.rst:246 +#: ../../rst/reference_appendices/release_and_maintenance.rst:380 msgid "ansible-core deprecation cycle" msgstr "ansible-core 非推奨サイクル" -#: ../../rst/reference_appendices/release_and_maintenance.rst:248 +#: ../../rst/reference_appendices/release_and_maintenance.rst:382 msgid "The deprecation cycle in ``ansible-core`` is normally across 4 feature releases (2.x. where the x marks a feature release). The feature is normally removed in the 4th release after we announce the deprecation. For example, something deprecated in 2.10 will be removed in 2.14. The tracking is tied to the number of releases, not the release numbering itself." msgstr "``ansible-core`` の非推奨サイクルは通常 4 つの機能リリース (たとえば 2.x. の x は機能リリースを示す) にまたがるため、機能は通常、非推奨を発表してから 4 番目のリリースで削除されます。たとえば、2.10 で非推奨になったものは、2.14 で削除されます。追跡は、リリース番号ではなく、リリースの数に自体に関連付けられています。" -#: ../../rst/reference_appendices/release_and_maintenance.rst:252 +#: ../../rst/reference_appendices/release_and_maintenance.rst:386 msgid ":ref:`community_committer_guidelines`" msgstr ":ref:`community_committer_guidelines`" -#: ../../rst/reference_appendices/release_and_maintenance.rst:253 +#: ../../rst/reference_appendices/release_and_maintenance.rst:387 msgid "Guidelines for Ansible core contributors and maintainers" msgstr "Ansible で中心となる貢献者およびメンテナー向けガイドライン" -#: ../../rst/reference_appendices/release_and_maintenance.rst:254 +#: ../../rst/reference_appendices/release_and_maintenance.rst:388 msgid ":ref:`testing_strategies`" msgstr ":ref:`testing_strategies`" -#: ../../rst/reference_appendices/release_and_maintenance.rst:255 +#: ../../rst/reference_appendices/release_and_maintenance.rst:389 msgid "Testing strategies" msgstr "ストラテジーのテスト" -#: ../../rst/reference_appendices/release_and_maintenance.rst:256 +#: ../../rst/reference_appendices/release_and_maintenance.rst:390 msgid ":ref:`ansible_community_guide`" msgstr ":ref:`ansible_community_guide`" -#: ../../rst/reference_appendices/release_and_maintenance.rst:257 +#: ../../rst/reference_appendices/release_and_maintenance.rst:391 msgid "Community information and contributing" msgstr "コミュニティー情報および貢献" -#: ../../rst/reference_appendices/release_and_maintenance.rst:258 +#: ../../rst/reference_appendices/release_and_maintenance.rst:392 msgid "`Development Mailing List `_" msgstr "`Development Mailing List `_" -#: ../../rst/reference_appendices/release_and_maintenance.rst:259 +#: ../../rst/reference_appendices/release_and_maintenance.rst:393 msgid "Mailing list for development topics" msgstr "開発トピックのメーリングリスト" @@ -10302,7 +10428,7 @@ msgid "ansible_loop" msgstr "ansible_loop" #: ../../rst/reference_appendices/special_variables.rst:32 -msgid "A dictionary/map containing extended loop information when enabled via ``loop_control.extended``" +msgid "A dictionary/map containing extended loop information when enabled through ``loop_control.extended``" msgstr "``loop_control.extended`` で有効にした場合に loop の拡張情報を含むディクショナリー/マップ" #: ../../rst/reference_appendices/special_variables.rst:35 @@ -10370,7 +10496,7 @@ msgid "ansible_play_role_names" msgstr "ansible_play_role_names" #: ../../rst/reference_appendices/special_variables.rst:60 -msgid "The names of the roles currently imported into the current play. This list does **not** contain the role names that are implicitly included via dependencies." +msgid "The names of the roles currently imported into the current play. This list does **not** contain the role names that are implicitly included through dependencies." msgstr "現在のプレイにインポートされているロール名。この一覧には、依存関係で暗黙的に含まれるロール名は **含まれません**。" #: ../../rst/reference_appendices/special_variables.rst:64 @@ -10455,7 +10581,7 @@ msgstr "現在のホストが所属するグループの一覧" #: ../../rst/reference_appendices/special_variables.rst:95 msgid "groups" -msgstr "groups" +msgstr "グループ" #: ../../rst/reference_appendices/special_variables.rst:95 msgid "A dictionary/map with all the groups in inventory and each group has the list of hosts that belong to it" @@ -10609,7 +10735,7 @@ msgstr "ansible_python_interpreter" msgid "The path to the Python executable Ansible should use on the target host." msgstr "Ansible がターゲットホストで使用すべき Python 実行ファイルへのパス" -#: ../../:1 +#: ../../rst/reference_appendices/special_variables.rst:168 msgid "ansible_user" msgstr "ansible_user" @@ -10658,154 +10784,154 @@ msgid "In the above setup, ``--check`` mode in Ansible can be used as a layer of msgstr "上記の設定では、Ansible の ``--check`` モードは、テストのレイヤーとしても使用できます。既存のシステムに対してデプロイメントの Playbook を実行する場合に ``--check`` フラグを `ansible` コマンドに使用すると、変更が加えられてシステムが適切な状態になっていると Ansible が判断しているかどうかをレポートします。" #: ../../rst/reference_appendices/test_strategies.rst:49 -msgid "This can let you know up front if there is any need to deploy onto the given system. Ordinarily, scripts and commands don't run in check mode, so if you want certain steps to execute in normal mode even when the ``--check`` flag is used, such as calls to the script module, disable check mode for those tasks::" +msgid "This can let you know up front if there is any need to deploy onto the given system. Ordinarily, scripts and commands don't run in check mode, so if you want certain steps to execute in normal mode even when the ``--check`` flag is used, such as calls to the script module, disable check mode for those tasks:" msgstr "このレポートにより、特定のシステムにデプロイメントが必要かどうかを事前に把握できます。check モードでは、一般的なスクリプトやコマンドは実行されないため、スクリプトモジュールへの呼び出しなど、``--check`` フラグが使用されていても通常モードで特定の手順を実行する場合は、このようなタスクのチェックモードを無効にしてください::" -#: ../../rst/reference_appendices/test_strategies.rst:61 +#: ../../rst/reference_appendices/test_strategies.rst:63 msgid "Modules That Are Useful for Testing" msgstr "テストに便利なモジュール" -#: ../../rst/reference_appendices/test_strategies.rst:63 -msgid "Certain playbook modules are particularly good for testing. Below is an example that ensures a port is open::" +#: ../../rst/reference_appendices/test_strategies.rst:65 +msgid "Certain playbook modules are particularly good for testing. Below is an example that ensures a port is open:" msgstr "Playbook のモジュールでは、特にテストに適しているものもあります。以下の例は、ポートが開放されていることを確認します。" -#: ../../rst/reference_appendices/test_strategies.rst:72 -msgid "Here's an example of using the URI module to make sure a web service returns::" +#: ../../rst/reference_appendices/test_strategies.rst:76 +msgid "Here's an example of using the URI module to make sure a web service returns:" msgstr "以下の例は、URI モジュールを使用して、Web サービスが返されることを確認します。" -#: ../../rst/reference_appendices/test_strategies.rst:83 -msgid "It's easy to push an arbitrary script (in any language) on a remote host and the script will automatically fail if it has a non-zero return code::" +#: ../../rst/reference_appendices/test_strategies.rst:89 +msgid "It's easy to push an arbitrary script (in any language) on a remote host and the script will automatically fail if it has a non-zero return code:" msgstr "リモートホストで任意のスクリプト (言語は問わない) が簡単にプッシュされるため、ゼロ以外のリターンコードが指定されていると、スクリプトは自動的に失敗します。" -#: ../../rst/reference_appendices/test_strategies.rst:90 +#: ../../rst/reference_appendices/test_strategies.rst:98 msgid "If using roles (you should be, roles are great!), scripts pushed by the script module can live in the 'files/' directory of a role." msgstr "ロールを使用する場合 (ロールは便利なので使用を推奨)、スクリプトモジュールがプッシュするスクリプトは、ロールの「files/」ディレクトリーに配置されます。" -#: ../../rst/reference_appendices/test_strategies.rst:92 -msgid "And the assert module makes it very easy to validate various kinds of truth::" +#: ../../rst/reference_appendices/test_strategies.rst:100 +msgid "And the assert module makes it very easy to validate various kinds of truth:" msgstr "また、アサートモジュールを使用すると、さまざまな真偽の検証が非常に簡単にできます。" -#: ../../rst/reference_appendices/test_strategies.rst:104 -msgid "Should you feel the need to test for the existence of files that are not declaratively set by your Ansible configuration, the 'stat' module is a great choice::" +#: ../../rst/reference_appendices/test_strategies.rst:114 +msgid "Should you feel the need to test for the existence of files that are not declaratively set by your Ansible configuration, the 'stat' module is a great choice:" msgstr "Ansible 設定で設定が宣言されていないファイルの存在をテストする必要がある場合は、「stat」モジュールが最適です。" -#: ../../rst/reference_appendices/test_strategies.rst:117 +#: ../../rst/reference_appendices/test_strategies.rst:129 msgid "As mentioned above, there's no need to check things like the return codes of commands. Ansible is checking them automatically. Rather than checking for a user to exist, consider using the user module to make it exist." msgstr "上記のように、コマンドのリターンコードなどをチェックする必要はありません。Ansible がこのようなコードを自動的にチェックします。ユーザーの存在をチェックする代わりに、ユーザーモジュールを使用してユーザーを存在させます。" -#: ../../rst/reference_appendices/test_strategies.rst:120 +#: ../../rst/reference_appendices/test_strategies.rst:132 msgid "Ansible is a fail-fast system, so when there is an error creating that user, it will stop the playbook run. You do not have to check up behind it." msgstr "Ansible はフェイルファーストシステムであるため、ユーザーの作成時にエラーがあると、Playbook の実行が停止します。バックグラウンドで行われている内容を確認する必要はありません。" -#: ../../rst/reference_appendices/test_strategies.rst:124 +#: ../../rst/reference_appendices/test_strategies.rst:136 msgid "Testing Lifecycle" msgstr "ライフサイクルのテスト" -#: ../../rst/reference_appendices/test_strategies.rst:126 +#: ../../rst/reference_appendices/test_strategies.rst:138 msgid "If writing some degree of basic validation of your application into your playbooks, they will run every time you deploy." msgstr "アプリケーションの基本検証を Playbook に記述すると、デプロイ時に必ずこの検証が実行されます。" -#: ../../rst/reference_appendices/test_strategies.rst:128 +#: ../../rst/reference_appendices/test_strategies.rst:140 msgid "As such, deploying into a local development VM and a staging environment will both validate that things are according to plan ahead of your production deploy." msgstr "そのため、ローカルの開発仮想マシンやステージ環境にデプロイするといずれも、実稼働でのデプロイの前に計画通りに作業が進んでいるかどうかを検証します。" -#: ../../rst/reference_appendices/test_strategies.rst:131 -msgid "Your workflow may be something like this::" +#: ../../rst/reference_appendices/test_strategies.rst:143 +msgid "Your workflow may be something like this:" msgstr "ワークフローは、次のようになります。" -#: ../../rst/reference_appendices/test_strategies.rst:138 +#: ../../rst/reference_appendices/test_strategies.rst:152 msgid "Something like an integration test battery should be written by your QA team if you are a production webservice. This would include things like Selenium tests or automated API tests and would usually not be something embedded into your Ansible playbooks." msgstr "実稼働の Web サービスを使用する場合には、QA チームが同様の統合テストバッテリーを記述するようにしてください。このようなテストには Selenium テストや自動化 API テストなどが含まれ、通常は、Ansible Playbook に組み込まれているものではありません。" -#: ../../rst/reference_appendices/test_strategies.rst:141 +#: ../../rst/reference_appendices/test_strategies.rst:155 msgid "However, it does make sense to include some basic health checks into your playbooks, and in some cases it may be possible to run a subset of the QA battery against remote nodes. This is what the next section covers." msgstr "ただし、いくつかの基本的なヘルスチェックを Playbook に追加すると便利です。場合によっては、リモートノードに対して QA バッテリーのサブセットを実行することもできます。この点については、次のセクションで説明します。" -#: ../../rst/reference_appendices/test_strategies.rst:145 +#: ../../rst/reference_appendices/test_strategies.rst:159 msgid "Integrating Testing With Rolling Updates" msgstr "ローリングアップデートへのテストの統合" -#: ../../rst/reference_appendices/test_strategies.rst:147 +#: ../../rst/reference_appendices/test_strategies.rst:161 msgid "If you have read into :ref:`playbooks_delegation` it may quickly become apparent that the rolling update pattern can be extended, and you can use the success or failure of the playbook run to decide whether to add a machine into a load balancer or not." msgstr ":ref:`playbooks_delegation` を読むと、ローリングアップデートのパターンを拡張でき、また、Playbook 実行の成否でロードバランサーにマシンを 1 台追加するかどうかを決定できることが即座に明確になったことでしょう。" -#: ../../rst/reference_appendices/test_strategies.rst:150 -msgid "This is the great culmination of embedded tests::" +#: ../../rst/reference_appendices/test_strategies.rst:164 +msgid "This is the great culmination of embedded tests:" msgstr "これは、組み込みテストの集大成です。" -#: ../../rst/reference_appendices/test_strategies.rst:175 +#: ../../rst/reference_appendices/test_strategies.rst:200 msgid "Of course in the above, the \"take out of the pool\" and \"add back\" steps would be replaced with a call to an Ansible load balancer module or appropriate shell command. You might also have steps that use a monitoring module to start and end an outage window for the machine." msgstr "上記では当然、「プールから取得する」手順や「追加し直す」手順は、Ansible のロードバランサーモジュールや、適切な shell コマンドの呼び出しに置き換えられます。また、マシンのサービス停止期間を開始/終了するモニタリングモジュールを使用する手順なども含まれている場合がありますが、" -#: ../../rst/reference_appendices/test_strategies.rst:179 +#: ../../rst/reference_appendices/test_strategies.rst:204 msgid "However, what you can see from the above is that tests are used as a gate -- if the \"apply_testing_checks\" step is not performed, the machine will not go back into the pool." msgstr "上記で分かるように、テストはゲートとして使用されています。つまり、「apply_testing_checks」の手順が実行されない場合は、マシンがプールに戻らないようになっています。" -#: ../../rst/reference_appendices/test_strategies.rst:182 +#: ../../rst/reference_appendices/test_strategies.rst:207 msgid "Read the delegation chapter about \"max_fail_percentage\" and you can also control how many failing tests will stop a rolling update from proceeding." msgstr "ローリングアップデートの続行を妨げるテストの失敗回数を制御できます。この点については、「max_fail_percentage」向けの章を参照してください。" -#: ../../rst/reference_appendices/test_strategies.rst:185 -msgid "This above approach can also be modified to run a step from a testing machine remotely against a machine::" +#: ../../rst/reference_appendices/test_strategies.rst:210 +msgid "This above approach can also be modified to run a step from a testing machine remotely against a machine:" msgstr "上記のアプローチを変更して、マシンに対してリモートのテストマシンから手順を実行することも可能です。" -#: ../../rst/reference_appendices/test_strategies.rst:213 +#: ../../rst/reference_appendices/test_strategies.rst:240 msgid "In the above example, a script is run from the testing server against a remote node prior to bringing it back into the pool." msgstr "上記の例では、プールにマシンを戻す前に、リモートのノードに対してテストサーバーからスクリプトを実行します。" -#: ../../rst/reference_appendices/test_strategies.rst:216 +#: ../../rst/reference_appendices/test_strategies.rst:243 msgid "In the event of a problem, fix the few servers that fail using Ansible's automatically generated retry file to repeat the deploy on just those servers." msgstr "問題が発生した場合には、Ansible が自動で生成した再試行ファイルを使用して、失敗したサーバー数台を修正し、そのサーバーだけにデプロイメントを繰り返し実行します。" -#: ../../rst/reference_appendices/test_strategies.rst:220 +#: ../../rst/reference_appendices/test_strategies.rst:247 msgid "Achieving Continuous Deployment" msgstr "継続的なデプロイメントの実現" -#: ../../rst/reference_appendices/test_strategies.rst:222 +#: ../../rst/reference_appendices/test_strategies.rst:249 msgid "If desired, the above techniques may be extended to enable continuous deployment practices." msgstr "任意で、上記の手法を拡張して、継続してデプロイメントができるようにします。" -#: ../../rst/reference_appendices/test_strategies.rst:224 -msgid "The workflow may look like this::" +#: ../../rst/reference_appendices/test_strategies.rst:251 +msgid "The workflow may look like this:" msgstr "ワークフローは、次のようになります。" -#: ../../rst/reference_appendices/test_strategies.rst:231 +#: ../../rst/reference_appendices/test_strategies.rst:260 msgid "Some Ansible users use the above approach to deploy a half-dozen or dozen times an hour without taking all of their infrastructure offline. A culture of automated QA is vital if you wish to get to this level." msgstr "Ansible ユーザーによっては、上記のアプローチを使用して、すべてのインフラストラクチャーをオフラインにすることなく、1 時間に 6 回、または 12 回デプロイしています。このレベルに到達するには、自動化 QA の文化が必要不可欠です。" -#: ../../rst/reference_appendices/test_strategies.rst:234 +#: ../../rst/reference_appendices/test_strategies.rst:263 msgid "If you are still doing a large amount of manual QA, you should still make the decision on whether to deploy manually as well, but it can still help to work in the rolling update patterns of the previous section and incorporate some basic health checks using modules like 'script', 'stat', 'uri', and 'assert'." msgstr "大量の QA を手動で続けている場合には、手動でデプロイするべきかどうか決定する必要がありますが、前項のようにローリングアップデートのパターンを使用して作業をし、「script」、「stat」、「uri」、「assert」などのモジュールで基本的なヘルスチェックを組み込むだけでも役立つ場合があります。" -#: ../../rst/reference_appendices/test_strategies.rst:239 +#: ../../rst/reference_appendices/test_strategies.rst:268 msgid "Conclusion" msgstr "まとめ" -#: ../../rst/reference_appendices/test_strategies.rst:241 +#: ../../rst/reference_appendices/test_strategies.rst:270 msgid "Ansible believes you should not need another framework to validate basic things of your infrastructure is true. This is the case because Ansible is an order-based system that will fail immediately on unhandled errors for a host, and prevent further configuration of that host. This forces errors to the top and shows them in a summary at the end of the Ansible run." msgstr "Ansible では、インフラストラクチャーの基本的な内容が正しいかを検証するフレームワークを別に用意する必要はないと考えます。これは、Ansible は順序ベースのシステムで、ホストに未処理のエラーがあると即座に失敗し、そのホストの設定がこれ以上進まないようにします。こうすることで、エラーが表面化し、Ansible の実行の最後にまとめとして、エラーが表示されます。" -#: ../../rst/reference_appendices/test_strategies.rst:245 +#: ../../rst/reference_appendices/test_strategies.rst:274 msgid "However, as Ansible is designed as a multi-tier orchestration system, it makes it very easy to incorporate tests into the end of a playbook run, either using loose tasks or roles. When used with rolling updates, testing steps can decide whether to put a machine back into a load balanced pool or not." msgstr "ただし、Ansible は、複数階層のオーケストレーションシステムとして設計されているため、非常に簡単にタスクまたはロールを使用して Playbook 実行の最後にテストを組み込むことができます。ローリングアップデートで使用する場合は、テストの手順で、ロードバランサーのプールにマシンを戻すかどうかを判断できます。" -#: ../../rst/reference_appendices/test_strategies.rst:249 +#: ../../rst/reference_appendices/test_strategies.rst:278 msgid "Finally, because Ansible errors propagate all the way up to the return code of the Ansible program itself, and Ansible by default runs in an easy push-based mode, Ansible is a great step to put into a build environment if you wish to use it to roll out systems as part of a Continuous Integration/Continuous Delivery pipeline, as is covered in sections above." msgstr "最後に、Ansible のエラーは、Ansible のプログラム自体のリターンコードにまで伝搬され、また Ansible はデフォルトで簡単なプッシュベースモードで実行されるため、上記のセクションで説明されているように、これを使用して継続的な統合/継続的なデリバリーパイプラインの一部としてシステムを展開する場合に Ansible をビルド環境に活用すると大きな一歩になります。" -#: ../../rst/reference_appendices/test_strategies.rst:253 +#: ../../rst/reference_appendices/test_strategies.rst:282 msgid "The focus should not be on infrastructure testing, but on application testing, so we strongly encourage getting together with your QA team and ask what sort of tests would make sense to run every time you deploy development VMs, and which sort of tests they would like to run against the staging environment on every deploy. Obviously at the development stage, unit tests are great too. But don't unit test your playbook. Ansible describes states of resources declaratively, so you don't have to. If there are cases where you want to be sure of something though, that's great, and things like stat/assert are great go-to modules for that purpose." msgstr "インフラストラクチャーテストではなく、アプリケーションのテストに焦点を当てるため、QA チームと連携して、どのようなテストを、開発仮想マシンのデプロイメント時に毎回実行すると便利か、またデプロイメント時に毎回、ステージ環境にどのようなテストを実行するかを確認してください。明らかに、開発段階では、ユニットテストも素晴らしいですが、Playbook をユニットテストにはしないでください。Ansible はリソースの状態を宣言的に記述するため、その必要はありません。ただし、何かを確認したい場合は、stat/assert のようなモジュールを使用すると良いでしょう。" -#: ../../rst/reference_appendices/test_strategies.rst:259 +#: ../../rst/reference_appendices/test_strategies.rst:288 msgid "In all, testing is a very organizational and site-specific thing. Everybody should be doing it, but what makes the most sense for your environment will vary with what you are deploying and who is using it -- but everyone benefits from a more robust and reliable deployment system." msgstr "結局、テストは非常に組織的で、サイト固有の内容となっています。テストは必ず行うべきですが、貴社の環境に最も有用なテストは、デプロイメントの内容や、誰が使用するかにより異なります。しかし、誰もが、強力で信頼性の高いデプロイメントシステムから恩恵を受けることができます。" -#: ../../rst/reference_appendices/test_strategies.rst:269 +#: ../../rst/reference_appendices/test_strategies.rst:298 msgid ":ref:`playbooks_delegation`" msgstr ":ref:`playbooks_delegation`" -#: ../../rst/reference_appendices/test_strategies.rst:270 +#: ../../rst/reference_appendices/test_strategies.rst:299 msgid "Delegation, useful for working with load balancers, clouds, and locally executed steps." msgstr "委譲 (ロードバランサー、クラウド、およびローカルで実行した手順を使用する際に役に立ちます)" @@ -10813,6 +10939,10 @@ msgstr "委譲 (ロードバランサー、クラウド、およびローカル msgid "Red Hat Ansible Automation Platform" msgstr "Red Hat Ansible Automation Platform" +#: ../../rst/reference_appendices/tower.rst:8 +msgid "Red Hat Ansible Automation Platform is available on multiple cloud platforms. See `Ansible on Clouds `_ for details." +msgstr "Red Hat Ansible Automation Platform は、複数のクラウドプラットフォームで利用できます。詳細は、`Ansible on Clouds `_ を参照してください。" + #: ../../rst/reference_appendices/tower.rst:10 msgid "`Red Hat Ansible Automation Platform `_ (RHAAP) is an integrated solution for operationalizing Ansible across your team, organization, and enterprise. The platform includes a controller with a web console and REST API, analytics, execution environments, and much more." msgstr "`Red Hat Ansible Automation Platform `_(RHAAP)は、チーム、組織、企業全体で Ansible を操作する統合ソリューションです。このプラットフォームには、Web コンソールおよび REST API、解析、実行環境を備えたコントローラーが含まれます。" @@ -11402,4 +11532,73 @@ msgstr "RHAAP は、Red Hat がサポートする Ansible AWX の製品バージ #~ msgid "Ansible Tower is the downstream Red-Hat supported product version of Ansible AWX. Find out more about Ansible Tower features and how to download it on the `Ansible Tower webpage `_. Ansible Tower is part of the Red Hat Ansible Automation subscription, and comes bundled with amazing support from Red Hat, Inc." #~ msgstr "Ansible Tower は、Red Hat がサポートする Ansible AWX の製品のバージョン (ダウンストリーム) です。Ansible Tower の機能とそのダウンロード方法の詳細は、`Ansible Tower web ページ `_ を参照してください。Ansible Tower は、Red Hat Ansible Automation サブスクリプションに含まれ、Red Hat, Inc のサポートが利用できます。" +#~ msgid "You can add ``-o ServerAliveInterval=NumberOfSeconds`` in ``ssh_args`` from ``ansible.cfg``. Without this option, SSH and therefore Ansible will wait until the TCP connection times out. Another solution is to add ``ServerAliveInterval`` into your global SSH configuration. A good value for ``ServerAliveInterval`` is up to you to decide; keep in mind that ``ServerAliveCountMax=3`` is the SSH default so any value you set will be tripled before terminating the SSH session." +#~ msgstr "``ansible.cfg`` から、``ssh_args`` に ``-o ServerAliveInterval=NumberOfSeconds`` を追加できます。このオプションがないと、SSH と Ansible は TCP 接続がタイムアウトになるまで待機します。別の解決方法は、``ServerAliveInterval`` をグローバルの SSH 設定に追加することです。``ServerAliveInterval`` に適した値は、ユーザーが決定します。ただし、SSH のデフォルトは ``ServerAliveCountMax=3`` であるため、SSH セッションの終了前に設定した値が 3 倍になる点に注意してください。" + +#~ msgid "A file (by default, Ansible uses a simple INI format) that describes :term:`Hosts ` and :term:`Groups ` in Ansible. Inventory can also be provided via an :term:`Inventory Script` (sometimes called an \"External Inventory Script\")." +#~ msgstr "Ansible で :term:`ホスト ` と :term:`グループ ` を記述したファイル (デフォルトでは、Ansible は簡単な INI 形式を使用)。インベントリーは、:term:`インベントリースクリプト` (「外部インベントリースクリプト」と呼ばれることもあります) を介して提供することもできます。" + +#~ msgid ":class:`set` of values marked as ``no_log`` in the argument spec. This is a temporary holding place for these values and may move in the future." +#~ msgstr "引数仕様で ``no_log`` とマークされた値の :class:`set`。これは、これらの値の一時的な保持となり、今後移動する可能性があります。" + +#~ msgid "On the controller we support Python 3.5 or greater and Python 2.7 or greater. Module-side, we support Python 3.5 or greater and Python 2.6 or greater." +#~ msgstr "コントローラーでは、Python 3.5 以降、および Python 2.7 以降をサポートしています。モジュール側では、Python 3.5 以降、Python 2.6 以降をサポートします。" + +#~ msgid "``ansible-core``/``ansible-base``" +#~ msgstr "``ansible-core``/``ansible-base``" + +#~ msgid "Release" +#~ msgstr "Release" + +#~ msgid "devel" +#~ msgstr "devel" + +#~ msgid "In development (ansible-core 2.14 unreleased, trunk)" +#~ msgstr "開発中 (未リリースの ansible-core 2.14 (trunk))" + +#~ msgid "TBD" +#~ msgstr "TBD" + +#~ msgid "`2.13 ansible-core Changelogs`_" +#~ msgstr "`2.10 ansible-base Release Notes`_" + +#~ msgid "Maintained (security **and** general bug fixes)" +#~ msgstr "メンテナンス対象 (セキュリティー **および** 一般的なバグの修正)" + +#~ msgid "`2.12 ansible-core Changelogs`_" +#~ msgstr "`2.10 ansible-base Release Notes`_" + +#~ msgid "Maintained (security **and** critical bug fixes)" +#~ msgstr "メンテナンス対象 (セキュリティー **および** 重大なバグの修正)" + +#~ msgid "`2.11 ansible-core Changelogs`_" +#~ msgstr "`2.10 ansible-base Release Notes`_" + +#~ msgid "Maintained (security bug fixes only)" +#~ msgstr "メンテナンス対象 (セキュリティーバグ修正のみ)" + +#~ msgid "`2.10 ansible-base Changelogs`_" +#~ msgstr "`2.10 ansible-base Release Notes`_" + +#~ msgid "EOL" +#~ msgstr "EOL" + +#~ msgid "`2.9 Changelogs`_" +#~ msgstr "`2.9 Changelogs`_" + +#~ msgid "`2.8 Changelogs`_" +#~ msgstr "`2.8 Changelogs`_" + +#~ msgid "`2.7 Changelogs`_" +#~ msgstr "`2.7 Changelogs`_" + +#~ msgid "`2.6 Changelogs`_" +#~ msgstr "`2.6 Changelogs`_" + +#~ msgid "`2.5 Changelogs`_" +#~ msgstr "`2.5 Changelogs`_" + +#~ msgid "<2.5" +#~ msgstr "2.5 より前のバージョン" + diff --git a/docs/docsite/rst/locales/ja/LC_MESSAGES/roadmap.po b/docs/docsite/rst/locales/ja/LC_MESSAGES/roadmap.po index cb0b0559..04857f63 100644 --- a/docs/docsite/rst/locales/ja/LC_MESSAGES/roadmap.po +++ b/docs/docsite/rst/locales/ja/LC_MESSAGES/roadmap.po @@ -7,14 +7,14 @@ msgid "" msgstr "" "Project-Id-Version: Ansible devel\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-10-05 09:34+0200\n" +"POT-Creation-Date: 2023-03-01 20:16+0100\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.8.1\n" +"Generated-By: Babel 2.9.0\n" #: ../../rst/roadmap/COLLECTIONS_2_10.rst:3 msgid "Ansible project 2.10" @@ -113,7 +113,7 @@ msgstr "ansible-3.0 で重大な変更が導入される可能性があります #: ../../rst/roadmap/COLLECTIONS_4.rst:55 #: ../../rst/roadmap/COLLECTIONS_5.rst:58 #: ../../rst/roadmap/COLLECTIONS_6.rst:56 -#: ../../rst/roadmap/COLLECTIONS_7.rst:55 +#: ../../rst/roadmap/COLLECTIONS_7.rst:57 msgid "For more information, reach out on a mailing list or a chat channel - see :ref:`communication` for more details." msgstr "詳細は、メーリングリストまたはチャットチャンネルをご利用ください。「:ref:`communication`」を参照してください。" @@ -193,7 +193,7 @@ msgstr "この日付以降は、新しいモジュールやメジャー機能は #: ../../rst/roadmap/COLLECTIONS_4.rst:35 #: ../../rst/roadmap/COLLECTIONS_5.rst:38 #: ../../rst/roadmap/COLLECTIONS_6.rst:36 -#: ../../rst/roadmap/COLLECTIONS_7.rst:35 +#: ../../rst/roadmap/COLLECTIONS_7.rst:37 msgid "After this date only changes blocking a release are accepted. Accepted changes require creating a new rc and may slip the final release date." msgstr "この日付以降は、リリースをブロックする変更のみが許可されます。受け入れ可能な変更には、新しい rc を作成する必要があり、最終リリース日は処理されない可能性があります。" @@ -209,7 +209,7 @@ msgstr "Ansible3.0.0 で重大な変更が導入される可能性がありま #: ../../rst/roadmap/COLLECTIONS_4.rst:45 #: ../../rst/roadmap/COLLECTIONS_5.rst:48 #: ../../rst/roadmap/COLLECTIONS_6.rst:46 -#: ../../rst/roadmap/COLLECTIONS_7.rst:45 +#: ../../rst/roadmap/COLLECTIONS_7.rst:47 msgid "Ansible minor releases" msgstr "Ansible マイナーリリース" @@ -522,7 +522,7 @@ msgstr "この日付以降は、新しいモジュールやメジャー機能は #: ../../rst/roadmap/COLLECTIONS_5.rst:40 #: ../../rst/roadmap/COLLECTIONS_6.rst:38 -#: ../../rst/roadmap/COLLECTIONS_7.rst:37 +#: ../../rst/roadmap/COLLECTIONS_7.rst:39 msgid "Collections will only be updated to a new version if a blocker is approved. Collection owners should discuss any blockers at a community IRC meeting (before this freeze) to decide whether to bump the version of the collection for a fix. See the `Community IRC meeting agenda `_." msgstr "コレクションは、ブロッカーが承認された場合にのみ新しいバージョンに更新されます。コレクションの所有者は、(フリーズの前に) 修正のためにコレクションのバージョンを上げるかどうかを決定するために、コミュニティー IRC ミーティングのブロッカーについて検討する必要があります。`コミュニティー IRC ミーティングの議題 `_ を参照してください。" @@ -754,8 +754,8 @@ msgid "First ansible-core 2.14 release candidate." msgstr "最初の ansible-core 2.14 リリース候補。" #: ../../rst/roadmap/COLLECTIONS_7.rst -msgid "2022-10-18" -msgstr "2022-10-18" +msgid "2022-10-25" +msgstr "2022-10-25" #: ../../rst/roadmap/COLLECTIONS_7.rst:22 msgid "Ansible-7.0.0 alpha2." @@ -798,42 +798,58 @@ msgid "Ansible-7.0.0 rc1 [2]_ [3]_ (weekly release candidates as needed; test an msgstr "Ansible-7.0.0 rc1 [2]_ [3]_ (必要に応じて週次リリース候補。すべてのブロッカーバグに対してテストし、警告します)。ブロッカーバグはリリースを遅延させます。" #: ../../rst/roadmap/COLLECTIONS_7.rst -msgid "2022-11-29" -msgstr "2022-11-29" +msgid "2022-11-18" +msgstr "2022-11-18" #: ../../rst/roadmap/COLLECTIONS_7.rst:29 -msgid "Ansible-7.0.0 release." -msgstr "Ansible-7.0.0 リリース" +msgid "Last day to trigger an Ansible-7.0.0rc2 release because of major defects in Ansible-7.0.0rc1." +msgstr "Ansible-7.0.0rc2 リリースをトリガーする最終日 (Ansible-7.0.0rc1 に重大な問題がある場合)。" #: ../../rst/roadmap/COLLECTIONS_7.rst -msgid "2022-12-06" -msgstr "2022-12-06" +msgid "2022-11-22" +msgstr "2022-11-22" #: ../../rst/roadmap/COLLECTIONS_7.rst:30 -msgid "Release of ansible-core 2.14.1." -msgstr "Ansible-core 2.14.1 のリリース" +msgid "Ansible-7.0.0rc2 when necessary, otherwise Ansible-7.0.0 release." +msgstr "必要に応じて Ansible-7.0.0rc2。それ以外は Ansible-7.0.0 リリース。" #: ../../rst/roadmap/COLLECTIONS_7.rst -msgid "2022-12-20" -msgstr "2022-12-20" +msgid "2022-11-29" +msgstr "2022-11-29" #: ../../rst/roadmap/COLLECTIONS_7.rst:31 -msgid "Release of Ansible-7.1.0 (bugfix + compatible features: every three weeks.)" -msgstr "Ansible-7.1.0 のリリース (バグ修正 + 互換性のある機能: 3 週間ごと)" +msgid "Ansible-7.0.0 release when Ansible-7.0.0rc2 was necessary." +msgstr "Ansible-7.0.0 リリース (Ansible-7.0.0rc2 が必要だった場合)。" + +#: ../../rst/roadmap/COLLECTIONS_7.rst +msgid "2022-12-05" +msgstr "2022-12-05" + +#: ../../rst/roadmap/COLLECTIONS_7.rst:32 +msgid "Release of ansible-core 2.14.1." +msgstr "Ansible-core 2.14.1 のリリース" + +#: ../../rst/roadmap/COLLECTIONS_7.rst +msgid "2022-12-06" +msgstr "2022-12-06" #: ../../rst/roadmap/COLLECTIONS_7.rst:33 +msgid "Release of Ansible-7.1.0 (bugfix + compatible features: every four weeks.)" +msgstr "Ansible-7.1.0 のリリース (バグ修正 + 互換性のある機能: 4 週間ごと)" + +#: ../../rst/roadmap/COLLECTIONS_7.rst:35 msgid "No new modules or major features accepted after this date. In practice, this means we will freeze the semver collection versions to compatible release versions. For example, if the version of community.crypto on this date was community.crypto 2.3.0; Ansible-7.0.0 could ship with community.crypto 2.3.1. It would not ship with community.crypto 2.4.0." msgstr "この日付以降は、新しいモジュールやメジャー機能は追加されません。実際には、semver コレクションのバージョンは互換性のあるリリースバージョンにフリーズします。たとえば、この日付の community.crypto のバージョンが community.crypto 2.3.0 であれば、ansible-7.0.0 は community.crypto 2.3.1 に同梱される可能性がありました。community.crypto 2.4.0 には同梱されません。" -#: ../../rst/roadmap/COLLECTIONS_7.rst:41 +#: ../../rst/roadmap/COLLECTIONS_7.rst:43 msgid "Breaking changes will be introduced in Ansible 7.0.0, although we encourage the use of deprecation periods that will show up in at least one Ansible release before the breaking change happens, this is not guaranteed." msgstr "Ansible 7.0.0 で 重大な変更が導入されますが、重大な変更が発生する前に少なくとも 1 つの Ansible リリースに表示される非推奨期間の使用が推奨されますが、これは保証されません。" -#: ../../rst/roadmap/COLLECTIONS_7.rst:47 -msgid "Ansible 7.x minor releases will occur approximately every three weeks if changes to collections have been made or if it is deemed necessary to force an upgrade to a later ansible-core-2.14.x. Ansible 7.x minor releases may contain new features but not backwards incompatibilities. In practice, this means we will include new collection versions where either the patch or the minor version number has changed but not when the major number has changed. For example, if Ansible-7.0.0 ships with community.crypto 2.3.0; Ansible-6.1.0 may ship with community.crypto 2.4.0 but would not ship with community.crypto 3.0.0." -msgstr "コレクションに変更が加えられた場合、または後で ansible-core-2.14.x へのアップグレードを強制する必要があると見なされた場合、Ansible 7.x マイナーリリースは約 3 週間ごとに行われます。Ansible 7.x マイナーリリースには新機能が含まれている可能性がありますが、後方互換性は含まれていません。実際には、これは、パッチまたはマイナーバージョン番号のいずれかが変更されたにもかかわらず、メジャー番号が変更されたときに変更されない新しいコレクションバージョンを含めることを意味します。たとえば、Ansible-7.0.0 が community.crypto 2.3.0 に同梱されると、Ansible-6.1.0 は community.crypto 2.4.0 に同梱される場合がありますが、community.crypto.3.0.0 には同梱されません。" +#: ../../rst/roadmap/COLLECTIONS_7.rst:49 +msgid "Ansible 7.x minor releases will occur approximately every four weeks if changes to collections have been made or to align to a later ansible-core-2.14.x. Ansible 7.x minor releases may contain new features but not backwards incompatibilities. In practice, this means we will include new collection versions where either the patch or the minor version number has changed but not when the major number has changed. For example, if Ansible-7.0.0 ships with community.crypto 2.3.0; Ansible-7.1.0 may ship with community.crypto 2.4.0 but would not ship with community.crypto 3.0.0." +msgstr "コレクションに変更が加えられた場合、または後にリリースされる ansible-core-2.14.x と調整する必要がある場合に、Ansible 7.x マイナーリリースは約 4 週間ごとに行われます。Ansible 7.x マイナーリリースには新機能が含まれている可能性がありますが、後方互換性は含まれていません。実際には、これは、パッチまたはマイナーバージョン番号のいずれかが変更されたにもかかわらず、メジャー番号が変更されたときに変更されない新しいコレクションバージョンを含めることを意味します。たとえば、Ansible-7.0.0 が community.crypto 2.3.0 に同梱されると、Ansible-6.1.0 は community.crypto 2.4.0 に同梱される場合がありますが、community.crypto.3.0.0 には同梱されません。" -#: ../../rst/roadmap/COLLECTIONS_7.rst:52 +#: ../../rst/roadmap/COLLECTIONS_7.rst:54 msgid "Minor releases will stop when Ansible-8 is released. See the :ref:`Release and Maintenance Page ` for more information." msgstr "Ansible-8 がリリースされると、マイナーリリースは停止します。詳細は :ref:`Release and Maintenance Page ` を参照してください。" @@ -906,7 +922,7 @@ msgstr "``ansible-base`` リポジトリーを表す新しい ``ansible/ansible` #: ../../rst/roadmap/ROADMAP_2_10.rst:43 msgid "Additional Resources" -msgstr "追加情報" +msgstr "関連情報" #: ../../rst/roadmap/ROADMAP_2_10.rst:45 msgid "The 2.10 release of Ansible will fundamentally change the scope of plugins included in the ``ansible/ansible`` repository, by moving much of the plugins into smaller collection repositories that will be shipped through https://galaxy.ansible.com/" @@ -2062,4 +2078,10 @@ msgstr "現在の Ansible および ``ansible-base`` のロードマップを確 #~ msgid "Post on the ``#ansible-community`` Freenode IRC channel" #~ msgstr "Freenode IRC チャンネル ``#ansible-community`` で発言" +#~ msgid "2022-10-18" +#~ msgstr "2022-10-18" + +#~ msgid "Ansible-7.0.0 release." +#~ msgstr "Ansible-7.0.0 リリース" + diff --git a/docs/docsite/rst/locales/ja/LC_MESSAGES/scenario_guides.po b/docs/docsite/rst/locales/ja/LC_MESSAGES/scenario_guides.po index a9909292..156f5bc4 100644 --- a/docs/docsite/rst/locales/ja/LC_MESSAGES/scenario_guides.po +++ b/docs/docsite/rst/locales/ja/LC_MESSAGES/scenario_guides.po @@ -7,14 +7,14 @@ msgid "" msgstr "" "Project-Id-Version: Ansible devel\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-10-05 09:34+0200\n" +"POT-Creation-Date: 2023-03-01 20:16+0100\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.8.1\n" +"Generated-By: Babel 2.9.0\n" #: ../../rst/scenario_guides/cloud_guides.rst:5 #: ../../rst/scenario_guides/guides.rst:17 @@ -166,8 +166,8 @@ msgid "Gathering facts" msgstr "ファクトの収集" #: ../../rst/scenario_guides/guide_aci.rst:114 -msgid "Because we run the modules on the Ansible controller gathering facts will not work. That is why when using these ACI modules it is mandatory to disable facts gathering. You can do this globally in your ``ansible.cfg`` or by adding ``gather_facts: no`` to every play." -msgstr "Ansible コントローラーでモジュールを実行するため、ファクトの収集は機能しません。そのため、これらの ACI モジュールを使用する場合はファクトの収集を無効にする必要があります。これは、``ansible.cfg`` でグローバルに行うか、すべてのプレイに ``gather_facts: no`` を追加して行うことができます。" +msgid "Because we run the modules on the Ansible controller gathering facts will not work. That is why when using these ACI modules it is mandatory to disable facts gathering. You can do this globally in your ``ansible.cfg`` or by adding ``gather_facts: false`` to every play." +msgstr "Ansible コントローラーでモジュールを実行するため、ファクトの収集は機能しません。そのため、これらの ACI モジュールを使用する場合はファクトの収集を無効にする必要があります。これは、``ansible.cfg`` でグローバルに行うか、すべてのプレイに ``gather_facts: false`` を追加して行うことができます。" #: ../../rst/scenario_guides/guide_aci.rst:128 msgid "Delegating to localhost" @@ -319,8 +319,8 @@ msgid "HTTP redirects can redirect from HTTP to HTTPS so ensure that the proxy e msgstr "HTTP リダイレクトは HTTP から HTTPS へリダイレクトできるため、両方のプロトコルのプロキシー環境が正しく設定されていることを確認します。" #: ../../rst/scenario_guides/guide_aci.rst:238 -msgid "If proxy support is not needed, but the system may have it configured nevertheless, use the parameter ``use_proxy: no`` to avoid accidental system proxy usage." -msgstr "プロキシーサポートが必要なくても、システムがそれを設定する可能性がある場合は、``use_proxy: no`` パラメーターを使用して、誤ったシステムプロキシーの使用を回避します。" +msgid "If proxy support is not needed, but the system may have it configured nevertheless, use the parameter ``use_proxy: false`` to avoid accidental system proxy usage." +msgstr "プロキシーサポートが必要なくても、システムがそれを設定する可能性がある場合は、``use_proxy: false`` パラメーターを使用して、誤ったシステムプロキシーの使用を回避します。" #: ../../rst/scenario_guides/guide_aci.rst:240 msgid "Selective proxy support using the ``no_proxy`` environment variable is also supported." @@ -822,7 +822,7 @@ msgstr "Ansible Network コミュニティーページ。連絡先情報およ #: ../../rst/scenario_guides/guide_aci.rst:658 msgid "`User Mailing List `_" -msgstr "`メーリングリストの使用 `_" +msgstr "`User Mailing List `_" #: ../../rst/scenario_guides/guide_aci.rst:659 msgid "Have a question? Stop by the google group!" @@ -865,52 +865,52 @@ msgid "Cloud modules, including Alicloud modules, execute on your local machine msgstr "Alicloud モジュールを含むクラウドモジュールは、ホストに定義されたリモートマシンではなく、ローカルマシン (コントロールマシン) で ``connection: local`` を使用して実行します。" #: ../../rst/scenario_guides/guide_alicloud.rst:16 -msgid "Normally, you'll use the following pattern for plays that provision Alicloud resources::" +msgid "Normally, you'll use the following pattern for plays that provision Alicloud resources:" msgstr "通常、Alicloud リソースをプロビジョニングするプレイには次のパターンを使用します。" -#: ../../rst/scenario_guides/guide_alicloud.rst:28 +#: ../../rst/scenario_guides/guide_alicloud.rst:30 #: ../../rst/scenario_guides/guide_vultr.rst:45 msgid "Authentication" msgstr "認証" -#: ../../rst/scenario_guides/guide_alicloud.rst:30 +#: ../../rst/scenario_guides/guide_alicloud.rst:32 msgid "You can specify your Alicloud authentication credentials (access key and secret key) by passing them as environment variables or by storing them in a vars file." msgstr "Alicloud の認証情報 (アクセスキーおよびシークレットキー) を指定するには、その認証情報を環境変数として渡すか、vars ファイルに保存します。" -#: ../../rst/scenario_guides/guide_alicloud.rst:33 -msgid "To pass authentication credentials as environment variables::" +#: ../../rst/scenario_guides/guide_alicloud.rst:35 +msgid "To pass authentication credentials as environment variables:" msgstr "環境変数として認証情報を渡すには、以下を実行します。" -#: ../../rst/scenario_guides/guide_alicloud.rst:38 -msgid "To store authentication credentials in a vars_file, encrypt them with :ref:`Ansible Vault` to keep them secure, then list them::" +#: ../../rst/scenario_guides/guide_alicloud.rst:42 +msgid "To store authentication credentials in a vars_files, encrypt them with :ref:`Ansible Vault` to keep them secure, then list them:" msgstr "認証情報を vars_file に保存するには、:ref:`Ansible Vault` で認証情報を暗号化してセキュアに維持してから、その認証情報の一覧を表示します。" -#: ../../rst/scenario_guides/guide_alicloud.rst:44 -msgid "Note that if you store your credentials in a vars_file, you need to refer to them in each Alicloud module. For example::" +#: ../../rst/scenario_guides/guide_alicloud.rst:50 +msgid "Note that if you store your credentials in a vars_files, you need to refer to them in each Alicloud module. For example:" msgstr "認証情報を vars_file に保存する場合は、各 Alicloud モジュールで認証情報を参照する必要があることに注意してください。以下に例を示します。" -#: ../../rst/scenario_guides/guide_alicloud.rst:54 +#: ../../rst/scenario_guides/guide_alicloud.rst:62 #: ../../rst/scenario_guides/guide_rax.rst:86 msgid "Provisioning" msgstr "プロビジョニング" -#: ../../rst/scenario_guides/guide_alicloud.rst:56 +#: ../../rst/scenario_guides/guide_alicloud.rst:64 msgid "Alicloud modules create Alicloud ECS instances, disks, virtual private clouds, virtual switches, security groups and other resources." msgstr "Alicloud モジュールは、Alicloud ECS インスタンス、ディスク、仮想プライベートクラウド、仮想スイッチ、セキュリティーグループ、およびその他のリソースを作成します。" -#: ../../rst/scenario_guides/guide_alicloud.rst:58 +#: ../../rst/scenario_guides/guide_alicloud.rst:66 msgid "You can use the ``count`` parameter to control the number of resources you create or terminate. For example, if you want exactly 5 instances tagged ``NewECS``, set the ``count`` of instances to 5 and the ``count_tag`` to ``NewECS``, as shown in the last task of the example playbook below. If there are no instances with the tag ``NewECS``, the task creates 5 new instances. If there are 2 instances with that tag, the task creates 3 more. If there are 8 instances with that tag, the task terminates 3 of those instances." msgstr "``count`` パラメーターを使用して、作成または終了するリソースの数を制御することができます。たとえば、``NewECS`` とタグが付いたインスタンスが 5 つ必要な場合は、以下の Playbook の例の最後のタスクのように、インスタンスの ``count`` を 5 に、``count_tag`` を ``NewECS`` に、それぞれ設定します。タグが ``NewECS`` のインスタンスがない場合、タスクは 5 つの新規インスタンスを作成します。そのタグを持つインスタンスが 2 つある場合、このタスクはさらに 3 つのインスタンスを作成します。そのタグを持つ 8 つのインスタンスがある場合、タスクはそのインスタンスのうち 3 つを終了します。" -#: ../../rst/scenario_guides/guide_alicloud.rst:63 +#: ../../rst/scenario_guides/guide_alicloud.rst:71 msgid "If you do not specify a ``count_tag``, the task creates the number of instances you specify in ``count`` with the ``instance_name`` you provide." msgstr "``count_tag`` を指定しないと、タスクは、指定した ``instance_name`` で ``count`` に指定したインスタンスの数を作成します。" -#: ../../rst/scenario_guides/guide_alicloud.rst:121 +#: ../../rst/scenario_guides/guide_alicloud.rst:129 msgid "In the example playbook above, data about the vpc, vswitch, group, and instances created by this playbook are saved in the variables defined by the \"register\" keyword in each task." msgstr "上記のサンプル Playbook では、この Playbook で作成される vpc、vswitch、group、およびインスタンスに関するデータが、各タスクの「register」キーワードで定義される変数に保存されます。" -#: ../../rst/scenario_guides/guide_alicloud.rst:124 +#: ../../rst/scenario_guides/guide_alicloud.rst:132 msgid "Each Alicloud module offers a variety of parameter options. Not all options are demonstrated in the above example. See each individual module for further details and examples." msgstr "各 Alicloud モジュールは、さまざまなパラメーターオプションを提供します。上記の例で、すべてのオプションが示されているわけではありません。詳細およびサンプルは、各モジュールを参照してください。" @@ -1044,7 +1044,7 @@ msgid "Using Environment Variables" msgstr "追加の環境変数" #: ../../rst/scenario_guides/guide_azure.rst:80 -msgid "To pass service principal credentials via the environment, define the following variables:" +msgid "To pass service principal credentials through the environment, define the following variables:" msgstr "環境経由でサービスプリンシパルの認証情報を渡すには、以下の変数を定義します。" #: ../../rst/scenario_guides/guide_azure.rst:82 @@ -1067,7 +1067,7 @@ msgid "AZURE_TENANT" msgstr "AZURE_TENANT" #: ../../rst/scenario_guides/guide_azure.rst:87 -msgid "To pass Active Directory username/password via the environment, define the following variables:" +msgid "To pass Active Directory username/password through the environment, define the following variables:" msgstr "環境経由で Active Directory のユーザー名/パスワードを渡すには、以下の変数を定義します。" #: ../../rst/scenario_guides/guide_azure.rst:89 @@ -1081,8 +1081,8 @@ msgid "AZURE_PASSWORD" msgstr "AZURE_PASSWORD" #: ../../rst/scenario_guides/guide_azure.rst:93 -msgid "To pass Active Directory username/password in ADFS via the environment, define the following variables:" -msgstr "環境経由で Active Directory のユーザー名/パスワードを渡すには、以下の変数を定義します。" +msgid "To pass Active Directory username/password in ADFS through the environment, define the following variables:" +msgstr "環境経由で ADFS に Active Directory のユーザー名/パスワードを渡すには、以下の変数を定義します。" #: ../../rst/scenario_guides/guide_azure.rst:99 msgid "AZURE_ADFS_AUTHORITY_URL" @@ -1380,7 +1380,7 @@ msgid "Disabling certificate validation on Azure endpoints" msgstr "Azure エンドポイントでの証明書検証の無効化" #: ../../rst/scenario_guides/guide_azure.rst:478 -msgid "When an HTTPS proxy is present, or when using Azure Stack, it may be necessary to disable certificate validation for Azure endpoints in the Azure modules. This is not a recommended security practice, but may be necessary when the system CA store cannot be altered to include the necessary CA certificate. Certificate validation can be controlled by setting the \"cert_validation_mode\" value in a credential profile, via the \"AZURE_CERT_VALIDATION_MODE\" environment variable, or by passing the \"cert_validation_mode\" argument to any Azure module. The default value is \"validate\"; setting the value to \"ignore\" will prevent all certificate validation. The module argument takes precedence over a credential profile value, which takes precedence over the environment value." +msgid "When an HTTPS proxy is present, or when using Azure Stack, it may be necessary to disable certificate validation for Azure endpoints in the Azure modules. This is not a recommended security practice, but may be necessary when the system CA store cannot be altered to include the necessary CA certificate. Certificate validation can be controlled by setting the \"cert_validation_mode\" value in a credential profile, through the \"AZURE_CERT_VALIDATION_MODE\" environment variable, or by passing the \"cert_validation_mode\" argument to any Azure module. The default value is \"validate\"; setting the value to \"ignore\" will prevent all certificate validation. The module argument takes precedence over a credential profile value, which takes precedence over the environment value." msgstr "HTTPS プロキシーが存在する場合、または Azure Stack を使用している場合は、Azure モジュールで Azure エンドポイントの証明書検証を無効にしなければならない場合があります。これは推奨されるセキュリティー対策ではありませんが、システム CA ストアを変更して必要な CA 証明書を含めることができない場合に必要になることがあります。証明書の検証は、認証情報プロファイルで「cert_validation_mode」値を設定するか、環境変数「AZURE_CERT_VALIDATION_MODE」を経由するか、「cert_validation_mode」引数を任意の Azure モジュールに渡すことで制御できます。デフォルト値は「validate」で、「ignore」に設定すると証明書の検証は行われません。モジュールの引数は、環境の値よりも優先される認証情報プロファイルの値よりも優先されます。" #: ../../rst/scenario_guides/guide_cloudstack.rst:2 @@ -1925,7 +1925,7 @@ msgstr "project" #: ../../rst/scenario_guides/guide_gce.rst:274 msgid "name" -msgstr "name" +msgstr "名前" #: ../../rst/scenario_guides/guide_gce.rst:274 msgid "This field does not accept an array of names. Use a loop to create multiple instances." @@ -2210,7 +2210,7 @@ msgstr "また、インベントリーディレクトリー (``etc/ansible/hosts #: ../../rst/scenario_guides/guide_infoblox.rst:283 msgid "`Infoblox website `_" -msgstr "`Infoblox Web サイト `_" +msgstr "`Infoblox website `_" #: ../../rst/scenario_guides/guide_infoblox.rst:284 msgid "The Infoblox website" @@ -2536,7 +2536,7 @@ msgstr "Ansible を root でインストールする場合は、以下を実行 #: ../../rst/scenario_guides/guide_oracle.rst:66 #: ../../rst/scenario_guides/guide_vultr.rst:16 msgid "Configuration" -msgstr "設定" +msgstr "Configuration (構成)" #: ../../rst/scenario_guides/guide_oracle.rst:68 msgid "When creating and configuring Oracle Cloud Infrastructure resources, Ansible modules use the authentication information outlined `here `_. ." @@ -2623,7 +2623,7 @@ msgid "Packet.net Guide" msgstr "Packet.net ガイド" #: ../../rst/scenario_guides/guide_packet.rst:8 -msgid "`Packet.net `_ is a bare metal infrastructure host that's supported by Ansible (>=2.3) via a dynamic inventory script and two cloud modules. The two modules are:" +msgid "`Packet.net `_ is a bare metal infrastructure host that's supported by Ansible (>=2.3) through a dynamic inventory script and two cloud modules. The two modules are:" msgstr "`Packet.net `_ は、動的インベントリースクリプトと 2 つのクラウドモジュールを介して Ansible (2.3 以降) で対応しているベアメタルインフラストラクチャーホストです。この 2 つのモジュールは次のとおりです。" #: ../../rst/scenario_guides/guide_packet.rst:10 @@ -2636,27 +2636,27 @@ msgstr "packet_device: パケット上のサーバーを管理します。この #: ../../rst/scenario_guides/guide_packet.rst:13 msgid "Note, this guide assumes you are familiar with Ansible and how it works. If you're not, have a look at their :ref:`docs ` before getting started." -msgstr "本ガイドでは、Ansible に精通していることを前提としています。Ansible にあまり精通していない場合は、開始する前に「:ref:`docs `」をお読みください。" +msgstr "注記: 本ガイドでは、Ansible に精通していることを前提としています。Ansible にあまり精通していない場合は、開始する前に「:ref:`docs `」をお読みください。" #: ../../rst/scenario_guides/guide_packet.rst:18 msgid "The Packet modules and inventory script connect to the Packet API using the packet-python package. You can install it with pip:" msgstr "Packet モジュールとインベントリースクリプトは、packets-python パッケージを使用して Packet API に接続します。これは、pip でインストールできます。" #: ../../rst/scenario_guides/guide_packet.rst:24 -msgid "In order to check the state of devices created by Ansible on Packet, it's a good idea to install one of the `Packet CLI clients `_. Otherwise you can check them via the `Packet portal `_." +msgid "In order to check the state of devices created by Ansible on Packet, it's a good idea to install one of the `Packet CLI clients `_. Otherwise you can check them through the `Packet portal `_." msgstr "パケット上で Ansible が作成したデバイスの状態をチェックするには、`Packet CLI clients `_ のいずれかをインストールすることが推奨されます。そうでない場合は、`Packet portal `_ で確認することができます。" #: ../../rst/scenario_guides/guide_packet.rst:26 -msgid "To use the modules and inventory script you'll need a Packet API token. You can generate an API token via the Packet portal `here `__. The simplest way to authenticate yourself is to set the Packet API token in an environment variable:" -msgstr "モジュールおよびインベントリースクリプトを使用するには、パケット API トークンが必要です。パケットポータル (`こちら `__) を使用して API トークンを生成することができます。認証する最も簡単な方法は、環境変数で Packet API トークンを設定することです。" +msgid "To use the modules and inventory script you'll need a Packet API token. You can generate an API token through the Packet portal `here `__. The simplest way to authenticate yourself is to set the Packet API token in an environment variable:" +msgstr "モジュールおよびインベントリースクリプトを使用するには、パケット API トークンが必要です。パケットポータル (`here `__) を使用して API トークンを生成することができます。認証する最も簡単な方法は、環境変数で Packet API トークンを設定することです。" #: ../../rst/scenario_guides/guide_packet.rst:32 msgid "If you're not comfortable exporting your API token, you can pass it as a parameter to the modules." msgstr "API トークンのエクスポートが不明な場合は、これをパラメーターとしてモジュールに渡すことができます。" #: ../../rst/scenario_guides/guide_packet.rst:34 -msgid "On Packet, devices and reserved IP addresses belong to `projects `_. In order to use the packet_device module, you need to specify the UUID of the project in which you want to create or manage devices. You can find a project's UUID in the Packet portal `here `_ (it's just under the project table) or via one of the available `CLIs `_." -msgstr "パケットでは、デバイスと予約済みの IP アドレスは、`プロジェクト `_ に属します。packet_device モジュールを使用するには、デバイスの作成または管理を行うプロジェクトの UUID を指定する必要があります。プロジェクトの UUID は、パケットポータル (`こちら `_ (プロジェクトテーブルのすぐ下にあります)) または利用可能な `CLI `_ のいずれかを介して見つけることができます。" +msgid "On Packet, devices and reserved IP addresses belong to `projects `_. In order to use the packet_device module, you need to specify the UUID of the project in which you want to create or manage devices. You can find a project's UUID in the Packet portal `here `_ (it's just under the project table) or through one of the available `CLIs `_." +msgstr "パケットでは、デバイスと予約済みの IP アドレスは、`projects `_ に属します。packet_device モジュールを使用するには、デバイスの作成または管理を行うプロジェクトの UUID を指定する必要があります。プロジェクトの UUID は、パケットポータル (`here `_ (プロジェクトテーブルのすぐ下にあります)) または利用可能な `CLIs `_ のいずれかを介して見つけることができます。" #: ../../rst/scenario_guides/guide_packet.rst:37 #: ../../rst/scenario_guides/guide_scaleway.rst:39 @@ -2673,12 +2673,12 @@ msgid "Device Creation" msgstr "デバイスの作成" #: ../../rst/scenario_guides/guide_packet.rst:49 -msgid "The following code block is a simple playbook that creates one `Type 0 `_ server (the 'plan' parameter). You have to supply 'plan' and 'operating_system'. 'location' defaults to 'ewr1' (Parsippany, NJ). You can find all the possible values for the parameters via a `CLI client `_." -msgstr "以下のコードブロックは、`Type 0 `_ サーバー (「plan」パラメーター) を作成する簡単な Playbook です。「plan」および「operating_system」を定義する必要があります。「location」は、「ewr1」(Parsippany、NJ) に設定されます。`CLI クライアント `_ を介して、パラメーターで可能な値をすべて確認できます。" +msgid "The following code block is a simple playbook that creates one `Type 0 `_ server (the 'plan' parameter). You have to supply 'plan' and 'operating_system'. 'location' defaults to 'ewr1' (Parsippany, NJ). You can find all the possible values for the parameters through a `CLI client `_." +msgstr "以下のコードブロックは、`Type 0 `_ サーバー (「plan」パラメーター) を作成する簡単な Playbook です。「plan」および「operating_system」を定義する必要があります。「location」は、「ewr1」(Parsippany、NJ) に設定されます。`CLI client `_ を介して、パラメーターで可能な値をすべて確認できます。" #: ../../rst/scenario_guides/guide_packet.rst:70 -msgid "After running ``ansible-playbook playbook_create.yml``, you should have a server provisioned on Packet. You can verify via a CLI or in the `Packet portal `__." -msgstr "``ansible-playbook playbook_create.yml`` の実行後に、パケット上にサーバーをプロビジョニングする必要があります。CLI または `パケットポータル `__ で確認することができます。" +msgid "After running ``ansible-playbook playbook_create.yml``, you should have a server provisioned on Packet. You can verify through a CLI or in the `Packet portal `__." +msgstr "``ansible-playbook playbook_create.yml`` の実行後に、パケット上にサーバーをプロビジョニングする必要があります。CLI または `Packet portal `__ で確認することができます。" #: ../../rst/scenario_guides/guide_packet.rst:72 msgid "If you get an error with the message \"failed to set machine state present, error: Error 404: Not Found\", please verify your project UUID." @@ -2746,7 +2746,7 @@ msgid "As with most Ansible modules, the default states of the Packet modules ar msgstr "ほとんどの Ansible モジュールと同様に、Packet モジュールのデフォルト状態は冪等です。つまり、Playbook を再実行した後もプロジェクトのリソースは同じままになります。したがって、Playbook で ``packet_sshkey`` モジュールの呼び出しを維持できます。パブリックキーがすでにパケットアカウントにある場合は、呼び出しても効果がありません。" #: ../../rst/scenario_guides/guide_packet.rst:186 -msgid "The second module call provisions 3 Packet Type 0 (specified using the 'plan' parameter) servers in the project identified via the 'project_id' parameter. The servers are all provisioned with CoreOS beta (the 'operating_system' parameter) and are customized with cloud-config user data passed to the 'user_data' parameter." +msgid "The second module call provisions 3 Packet Type 0 (specified using the 'plan' parameter) servers in the project identified by the 'project_id' parameter. The servers are all provisioned with CoreOS beta (the 'operating_system' parameter) and are customized with cloud-config user data passed to the 'user_data' parameter." msgstr "2 つ目のモジュール呼び出しは、「project_id」パラメーターで識別されるプロジェクトの 3 Packet タイプ 0 (「plan」パラメーターで指定) サーバーをプロビジョニングします。サーバーはすべて CoreOS ベータでプロビジョニングされ (「operating_system」パラメーター)、「user_data」パラメーターに渡される cloud-config ユーザーデータでカスタマイズされます。" #: ../../rst/scenario_guides/guide_packet.rst:188 @@ -2758,7 +2758,7 @@ msgid "Run the playbook:" msgstr "Playbook を実行します。" #: ../../rst/scenario_guides/guide_packet.rst:196 -msgid "Once the playbook quits, your new devices should be reachable via SSH. Try to connect to one and check if etcd has started properly:" +msgid "Once the playbook quits, your new devices should be reachable through SSH. Try to connect to one and check if etcd has started properly:" msgstr "Playbook が終了すると、SSH を介して新規デバイスにアクセスできるはずです。1 つのデバイスに接続して、etcd が正常に起動したかどうかを確認します。" #: ../../rst/scenario_guides/guide_packet.rst:203 @@ -2834,7 +2834,7 @@ msgid "Prerequisites for using the rax modules are minimal. In addition to ansi msgstr "rax モジュール使用の前提条件は最小限です。Ansible 自体の他に、すべてのモジュールが必要で、pyrax 1.5 以降に対してテストされています。実行ホストに、この Python モジュールをインストールする必要があります。" #: ../../rst/scenario_guides/guide_rax.rst:20 -msgid "``pyrax`` is not currently available in many operating system package repositories, so you will likely need to install it via pip:" +msgid "``pyrax`` is not currently available in many operating system package repositories, so you will likely need to install it through pip:" msgstr "``pyrax`` は、現在多くのオペレーティングシステムパッケージリポジトリーでは利用できないため、pip を使用してインストールしなければならない場合があります。" #: ../../rst/scenario_guides/guide_rax.rst:27 @@ -2870,7 +2870,7 @@ msgid "Most users will not be using virtualenv, but some users, particularly Pyt msgstr "ほとんどのユーザーは virtualenv を使用しませんが、一部のユーザー、特に Python の開発者はそれを使用する場合があります。" #: ../../rst/scenario_guides/guide_rax.rst:72 -msgid "There are special considerations when Ansible is installed to a Python virtualenv, rather than the default of installing at a global scope. Ansible assumes, unless otherwise instructed, that the python binary will live at /usr/bin/python. This is done via the interpreter line in modules, however when instructed by setting the inventory variable 'ansible_python_interpreter', Ansible will use this specified path instead to find Python. This can be a cause of confusion as one may assume that modules running on 'localhost', or perhaps running via 'local_action', are using the virtualenv Python interpreter. By setting this line in the inventory, the modules will execute in the virtualenv interpreter and have available the virtualenv packages, specifically pyrax. If using virtualenv, you may wish to modify your localhost inventory definition to find this location as follows:" +msgid "There are special considerations when Ansible is installed to a Python virtualenv, rather than the default of installing at a global scope. Ansible assumes, unless otherwise instructed, that the python binary will live at /usr/bin/python. This is done through the interpreter line in modules, however when instructed by setting the inventory variable 'ansible_python_interpreter', Ansible will use this specified path instead to find Python. This can be a cause of confusion as one may assume that modules running on 'localhost', or perhaps running through 'local_action', are using the virtualenv Python interpreter. By setting this line in the inventory, the modules will execute in the virtualenv interpreter and have available the virtualenv packages, specifically pyrax. If using virtualenv, you may wish to modify your localhost inventory definition to find this location as follows:" msgstr "Ansible が Python virtualenv にインストールされる場合には、デフォルトのグローバルスコープでのインストールではなく、特別な考慮事項があります。Ansible は、特に指示がない限り、Python のバイナリーを /usr/bin/python に置くことを前提としています。これは、モジュールのインタープリターの行から行われますが、インベントリー変数「ansible_python_interpreter」を設定して指示すると、Ansible は Python の検索の代わりに、この指定されたパスを使用します。これは、「localhost」で実行しているモジュール、または「local_action」で実行されるモジュールが virtualenv Python インタープリターを使用していると思い込んでしまうため、混乱が生じる可能性があります。この行をインベントリーに設定すると、モジュールは virtualenv インタープリターで実行し、virtualenv パッケージ (具体的には pyrax) が利用できるようになります。virtualenv を使用している場合は、以下のように、localhost インベントリー定義を変更してこの場所が検出されるようにします。" #: ../../rst/scenario_guides/guide_rax.rst:81 @@ -2926,7 +2926,7 @@ msgid "Host Inventory" msgstr "ホストインベントリー" #: ../../rst/scenario_guides/guide_rax.rst:157 -msgid "Once your nodes are spun up, you'll probably want to talk to them again. The best way to handle this is to use the \"rax\" inventory plugin, which dynamically queries Rackspace Cloud and tells Ansible what nodes you have to manage. You might want to use this even if you are spinning up cloud instances via other tools, including the Rackspace Cloud user interface. The inventory plugin can be used to group resources by metadata, region, OS, and so on. Utilizing metadata is highly recommended in \"rax\" and can provide an easy way to sort between host groups and roles. If you don't want to use the ``rax.py`` dynamic inventory script, you could also still choose to manually manage your INI inventory file, though this is less recommended." +msgid "Once your nodes are spun up, you'll probably want to talk to them again. The best way to handle this is to use the \"rax\" inventory plugin, which dynamically queries Rackspace Cloud and tells Ansible what nodes you have to manage. You might want to use this even if you are spinning up cloud instances through other tools, including the Rackspace Cloud user interface. The inventory plugin can be used to group resources by metadata, region, OS, and so on. Utilizing metadata is highly recommended in \"rax\" and can provide an easy way to sort between host groups and roles. If you don't want to use the ``rax.py`` dynamic inventory script, you could also still choose to manually manage your INI inventory file, though this is less recommended." msgstr "ノードが起動したら、再びノードとやり取りしたくなるでしょう。これを処理する最善の方法は、「rax」インベントリープラグインを使用することです。これは、Rackspace Cloud に動的にクエリーを実行し、管理する必要があるノードを Ansible に通知します。Rackspace Cloud ユーザーインターフェースなど、他のツールでクラウドインスタンスを起動している場合でも、このプラグインを使用することができます。インベントリープラグインは、メタデータ、リージョン、OS などでリソースをグループ化するために使用できます。メタデータの使用は「rax」で強く推奨され、ホストグループとロールとの間で簡単に並べ替えることができます。``rax.py`` ダイナミックインベントリースクリプトを使用したくない場合は、INI インベントリーファイルを手動で管理することもできますが、これはあまりお勧めできません。" #: ../../rst/scenario_guides/guide_rax.rst:159 @@ -3090,7 +3090,7 @@ msgid "Scaleway Guide" msgstr "Scaleway ガイド" #: ../../rst/scenario_guides/guide_scaleway.rst:12 -msgid "`Scaleway `_ is a cloud provider supported by Ansible, version 2.6 or higher via a dynamic inventory plugin and modules. Those modules are:" +msgid "`Scaleway `_ is a cloud provider supported by Ansible, version 2.6 or higher through a dynamic inventory plugin and modules. Those modules are:" msgstr "`Scaleway `_ は、動的インベントリープラグインおよびモジュールを介して Ansible (バージョン 2.6 以降) が対応するクラウドプロバイダーです。このモジュールは以下のようになります。" #: ../../rst/scenario_guides/guide_scaleway.rst:15 @@ -3110,8 +3110,8 @@ msgid "This guide assumes you are familiar with Ansible and how it works. If you msgstr "本ガイドでは、Ansible に精通していることを前提としています。Ansible にあまり精通していない場合は、開始する前に「:ref:`ansible_documentation`」をお読みください。" #: ../../rst/scenario_guides/guide_scaleway.rst:28 -msgid "The Scaleway modules and inventory script connect to the Scaleway API using `Scaleway REST API `_. To use the modules and inventory script you'll need a Scaleway API token. You can generate an API token via the Scaleway console `here `__. The simplest way to authenticate yourself is to set the Scaleway API token in an environment variable:" -msgstr "Scaleway モジュールとインベントリースクリプトは、`Scaleway REST API `_ を使用して Scaleway API に接続します。モジュールとインベントリースクリプトを使用するには、Scaleway API トークンが必要です。API トークンは、Scaleway コンソール (`こちら `__) で生成できます。自身を認証する最も簡単な方法は、環境変数に Scaleway API トークンを設定することです。" +msgid "The Scaleway modules and inventory script connect to the Scaleway API using `Scaleway REST API `_. To use the modules and inventory script you'll need a Scaleway API token. You can generate an API token through the Scaleway console `here `__. The simplest way to authenticate yourself is to set the Scaleway API token in an environment variable:" +msgstr "Scaleway モジュールとインベントリースクリプトは、`Scaleway REST API `_ を使用して Scaleway API に接続します。モジュールとインベントリースクリプトを使用するには、Scaleway API トークンが必要です。API トークンは、Scaleway コンソール (`here `__) で生成できます。自身を認証する最も簡単な方法は、環境変数に Scaleway API トークンを設定することです。" #: ../../rst/scenario_guides/guide_scaleway.rst:37 msgid "If you're not comfortable exporting your API token, you can pass it as a parameter to the modules using the ``api_token`` argument." @@ -3295,7 +3295,7 @@ msgstr "ローカルの ``ansible.cfg`` 設定ファイルを統合する方法" #: ../../rst/scenario_guides/guide_vagrant.rst:127 msgid "`Vagrant Home `_" -msgstr "`Vagrant ホーム `_" +msgstr "`Vagrant Home `_" #: ../../rst/scenario_guides/guide_vagrant.rst:128 msgid "The Vagrant homepage with downloads" @@ -3303,7 +3303,7 @@ msgstr "ダウンロードを含む Vagrant ホームページ" #: ../../rst/scenario_guides/guide_vagrant.rst:129 msgid "`Vagrant Documentation `_" -msgstr "`Vagrant ドキュメント `_" +msgstr "`Vagrant Documentation `_" #: ../../rst/scenario_guides/guide_vagrant.rst:130 msgid "Vagrant Documentation" @@ -3604,8 +3604,8 @@ msgid "All the vcenter_rest modules accept the following arguments:" msgstr "すべての vcenter_rest モジュールは、以下の引数を受け入れます。" #: ../../rst/scenario_guides/vmware_rest_scenarios/authentication.rst:36 -msgid "``vcenter_host``" -msgstr "``vcenter_host``" +msgid "``vcenter_hostname``" +msgstr "``vcenter_hostname``" #: ../../rst/scenario_guides/vmware_rest_scenarios/authentication.rst:37 msgid "``vcenter_username``" @@ -3683,7 +3683,7 @@ msgstr "情報の収集方法" #: ../../rst/scenario_guides/vmware_rest_scenarios/collect_information.rst:35 msgid "In these examples, we use the ``vcenter_*_info`` module to collect information about the associated resources." -msgstr "この例では、``vcenter_*_info`` モジュールを使用して、関連付けられたリソースに関する情報を収集します。" +msgstr "これらの例では、``vcenter_*_info`` モジュールを使用して、関連付けられたリソースに関する情報を収集します。" #: ../../rst/scenario_guides/vmware_rest_scenarios/collect_information.rst:37 msgid "All these modules return a ``value`` key. Depending on the context, this ``value`` key will be either a list or a dictionary." @@ -3741,7 +3741,7 @@ msgstr "想定どおりに、出力の ``value`` キーはリストになりま #: ../../rst/scenario_guides/vmware_rest_scenarios/collect_information.rst:54 msgid "Cluster" -msgstr "クラスター" +msgstr "Cluster" #: ../../rst/scenario_guides/vmware_rest_scenarios/collect_information.rst:56 msgid "Here we do the same with ``vcenter_cluster_info``:" @@ -7203,4 +7203,7 @@ msgstr "仮想マシンのルートテーブルを確認するには、``vcenter #~ msgid "Wait for ``netplan`` support in ``open-vm-tools``" #~ msgstr "``open-vm-tools`` で ``netplan`` がサポートされるのを待ちます。" +#~ msgid "To pass Active Directory username/password in ADFS via the environment, define the following variables:" +#~ msgstr "環境経由で Active Directory のユーザー名/パスワードを渡すには、以下の変数を定義します。" + diff --git a/docs/docsite/rst/playbook_guide/complex_data_manipulation.rst b/docs/docsite/rst/playbook_guide/complex_data_manipulation.rst index 11ed3c38..e7d23b33 100644 --- a/docs/docsite/rst/playbook_guide/complex_data_manipulation.rst +++ b/docs/docsite/rst/playbook_guide/complex_data_manipulation.rst @@ -230,7 +230,7 @@ These example produces ``{"a": "b", "c": "d"}`` vars: single_list: [ 'a', 'b', 'c', 'd' ] - mydict: "{{ dict(single_list | slice(2)) }}" + mydict: "{{ dict(single_list[::2] | zip_longest(single_list[1::2])) }}" .. code-block:: YAML+Jinja @@ -240,7 +240,7 @@ These example produces ``{"a": "b", "c": "d"}`` list_of_pairs: [ ['a', 'b'], ['c', 'd'] ] mydict: "{{ dict(list_of_pairs) }}" -Both end up being the same thing, with ``slice(2)`` transforming ``single_list`` to a ``list_of_pairs`` generator. +Both end up being the same thing, with ``zip_longest`` transforming ``single_list`` to a ``list_of_pairs`` generator. diff --git a/docs/docsite/rst/playbook_guide/playbooks_checkmode.rst b/docs/docsite/rst/playbook_guide/playbooks_checkmode.rst index 4b21f7cf..6b8c8277 100644 --- a/docs/docsite/rst/playbook_guide/playbooks_checkmode.rst +++ b/docs/docsite/rst/playbook_guide/playbooks_checkmode.rst @@ -27,8 +27,8 @@ Enforcing or preventing check mode on tasks If you want certain tasks to run in check mode always, or never, regardless of whether you run the playbook with or without ``--check``, you can add the ``check_mode`` option to those tasks: - - To force a task to run in check mode, even when the playbook is called without ``--check``, set ``check_mode: yes``. - - To force a task to run in normal mode and make changes to the system, even when the playbook is called with ``--check``, set ``check_mode: no``. + - To force a task to run in check mode, even when the playbook is called without ``--check``, set ``check_mode: true``. + - To force a task to run in normal mode and make changes to the system, even when the playbook is called with ``--check``, set ``check_mode: false``. For example: @@ -47,9 +47,9 @@ For example: check_mode: true register: changes_to_important_config -Running single tasks with ``check_mode: yes`` can be useful for testing Ansible modules, either to test the module itself or to test the conditions under which a module would make changes. You can register variables (see :ref:`playbooks_conditionals`) on these tasks for even more detail on the potential changes. +Running single tasks with ``check_mode: true`` can be useful for testing Ansible modules, either to test the module itself or to test the conditions under which a module would make changes. You can register variables (see :ref:`playbooks_conditionals`) on these tasks for even more detail on the potential changes. -.. note:: Prior to version 2.2 only the equivalent of ``check_mode: no`` existed. The notation for that was ``always_run: yes``. +.. note:: Prior to version 2.2 only the equivalent of ``check_mode: false`` existed. The notation for that was ``always_run: yes``. Skipping tasks or ignoring errors in check mode ----------------------------------------------- diff --git a/docs/docsite/rst/playbook_guide/playbooks_conditionals.rst b/docs/docsite/rst/playbook_guide/playbooks_conditionals.rst index f920fd74..1de9ec39 100644 --- a/docs/docsite/rst/playbook_guide/playbooks_conditionals.rst +++ b/docs/docsite/rst/playbook_guide/playbooks_conditionals.rst @@ -175,6 +175,10 @@ Ansible always registers something in a registered variable for every host, even ansible.builtin.command: /bin/still/something_else when: result is skipped + - name: Run only if the task that registered the "result" variable changed something. + ansible.builtin.command: /bin/still/something_else + when: result is changed + .. note:: Older versions of Ansible used ``success`` and ``fail``, but ``succeeded`` and ``failed`` use the correct tense. All of these options are now valid. @@ -460,6 +464,44 @@ For example, you can template out a configuration file that is very different be - default.conf mypaths: ['search_location_one/somedir/', '/opt/other_location/somedir/'] +.. _debugging_conditionals: + +Debugging conditionals +====================== + +If your conditional ``when`` statement is not behaving as you intended, you can add a ``debug`` statement to determine if the condition evaluates to ``true`` or ``false``. A common cause of unexpected behavior in conditionals is testing an integer as a string or a string as an integer. To debug a conditional statement, add the entire statement as the ``var:`` value in a ``debug`` task. Ansible then shows the test and how the statement evaluates. For example, here is a set of tasks and sample output: + +.. code-block:: yaml + + - name: check value of return code + ansible.builtin.debug: + var: bar_status.rc + + - name: check test for rc value as string + ansible.builtin.debug: + var: bar_status.rc == "127" + + - name: check test for rc value as integer + ansible.builtin.debug: + var: bar_status.rc == 127 + +.. code-block:: ansible-output + + TASK [check value of return code] ********************************************************************************* + ok: [foo-1] => { + "bar_status.rc": "127" + } + + TASK [check test for rc value as string] ************************************************************************** + ok: [foo-1] => { + "bar_status.rc == \"127\"": false + } + + TASK [check test for rc value as integer] ************************************************************************* + ok: [foo-1] => { + "bar_status.rc == 127": true + } + .. _commonly_used_facts: Commonly-used facts diff --git a/docs/docsite/rst/playbook_guide/playbooks_tags.rst b/docs/docsite/rst/playbook_guide/playbooks_tags.rst index 4da0af02..deff48bd 100644 --- a/docs/docsite/rst/playbook_guide/playbooks_tags.rst +++ b/docs/docsite/rst/playbook_guide/playbooks_tags.rst @@ -257,7 +257,7 @@ If you want tag inheritance, you probably want to use imports. However, using bo .. code-block:: yaml - - name: Apply the db tag to the include and to all tasks in db.yaml + - name: Apply the db tag to the include and to all tasks in db.yml include_tasks: file: db.yml # adds 'db' tag to tasks within db.yml @@ -301,7 +301,7 @@ For example: .. warning:: * Fact gathering is tagged with 'always' by default. It is only skipped if - you apply a tag and then use a different tag in ``--tags`` or the same + you apply a tag to the play and then use a different tag in ``--tags`` or the same tag in ``--skip-tags``. .. warning:: @@ -339,7 +339,7 @@ Once you have added tags to your tasks, includes, blocks, plays, roles, and impo * ``--tags tagged`` - run only tasks with at least one tag * ``--tags untagged`` - run only tasks with no tags -For example, to run only tasks and blocks tagged ``configuration`` and ``packages`` in a very long playbook: +For example, to run only tasks and blocks tagged either ``configuration`` or ``packages`` in a very long playbook: .. code-block:: bash diff --git a/docs/docsite/rst/playbook_guide/playbooks_tests.rst b/docs/docsite/rst/playbook_guide/playbooks_tests.rst index 71eaee83..ccf6f9e6 100644 --- a/docs/docsite/rst/playbook_guide/playbooks_tests.rst +++ b/docs/docsite/rst/playbook_guide/playbooks_tests.rst @@ -461,11 +461,11 @@ When looking to determine types, it may be tempting to use the ``type_debug`` fi a_list: ["a", "list"] assert: that: - # Note that a string is classed as also being "iterable", "sequence" and "mapping" - - a_string is string + # Note that a string is classed as also being "iterable" and "sequence", but not "mapping" + - a_string is string and a_string is iterable and a_string is sequence and a_string is not mapping # Note that a dictionary is classed as not being a "string", but is "iterable", "sequence" and "mapping" - - a_dictionary is not string and a_dictionary is mapping + - a_dictionary is not string and a_dictionary is iterable and a_dictionary is mapping # Note that a list is classed as not being a "string" or "mapping" but is "iterable" and "sequence" - a_list is not string and a_list is not mapping and a_list is iterable diff --git a/docs/docsite/rst/plugins/connection.rst b/docs/docsite/rst/plugins/connection.rst index e29842b6..3652ffe1 100644 --- a/docs/docsite/rst/plugins/connection.rst +++ b/docs/docsite/rst/plugins/connection.rst @@ -9,7 +9,7 @@ Connection plugins Connection plugins allow Ansible to connect to the target hosts so it can execute tasks on them. Ansible ships with many connection plugins, but only one can be used per host at a time. -By default, Ansible ships with several connection plugins. The most commonly used are the :ref:`paramiko SSH`, native ssh (just called :ref:`ssh`), and :ref:`local` connection types. All of these can be used in playbooks and with :command:`/usr/bin/ansible` to decide how you want to talk to remote machines. If necessary, you can :ref:`create custom connection plugins `. +By default, Ansible ships with several connection plugins. The most commonly used are the :ref:`paramiko SSH`, native ssh (just called :ref:`ssh`), and :ref:`local` connection types. All of these can be used in playbooks and with :command:`/usr/bin/ansible` to decide how you want to talk to remote machines. If necessary, you can :ref:`create custom connection plugins `. The basics of these connection types are covered in the :ref:`getting started` section. @@ -43,7 +43,7 @@ Plugins are self-documenting. Each plugin should document its configuration opti :ref:`ansible_host` The name of the host to connect to, if different from the :ref:`inventory ` hostname. :ref:`ansible_port` - The ssh port number, for :ref:`ssh ` and :ref:`paramiko_ssh ` it defaults to 22. + The ssh port number, for :ref:`ssh ` and :ref:`paramiko_ssh ` it defaults to 22. :ref:`ansible_user` The default user name to use for log in. Most plugins default to the 'current user running Ansible'. diff --git a/docs/docsite/rst/plugins/test.rst b/docs/docsite/rst/plugins/test.rst index 9bad4e72..7922c122 100644 --- a/docs/docsite/rst/plugins/test.rst +++ b/docs/docsite/rst/plugins/test.rst @@ -60,7 +60,7 @@ Tests will always have an ``_input`` and this is normally what is on the left si Using test plugins with lists ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -As mentioned above, one way to use tests is with the ``select`` familiy of filters (``select``, ``reject``, ``selectattr``, ``rejectattr``). +As mentioned above, one way to use tests is with the ``select`` family of filters (``select``, ``reject``, ``selectattr``, ``rejectattr``). .. code-block:: YAML+Jinja diff --git a/docs/docsite/rst/porting_guides/porting_guide_4.rst b/docs/docsite/rst/porting_guides/porting_guide_4.rst index 4e91a30d..5f45910b 100644 --- a/docs/docsite/rst/porting_guides/porting_guide_4.rst +++ b/docs/docsite/rst/porting_guides/porting_guide_4.rst @@ -160,7 +160,7 @@ cisco.nxos junipernetworks.junos ~~~~~~~~~~~~~~~~~~~~~ -- 'router_id' options is deprecated from junos_ospf_interfaces, junos_ospfv2 and junos_ospfv3 resuorce module. +- 'router_id' options is deprecated from junos_ospf_interfaces, junos_ospfv2 and junos_ospfv3 resource module. Porting Guide for v4.9.0 ======================== diff --git a/docs/docsite/rst/porting_guides/porting_guide_5.rst b/docs/docsite/rst/porting_guides/porting_guide_5.rst index 6257ccd1..7afc11e2 100644 --- a/docs/docsite/rst/porting_guides/porting_guide_5.rst +++ b/docs/docsite/rst/porting_guides/porting_guide_5.rst @@ -173,7 +173,7 @@ vmware.vmware_rest - The vmware_rest 2.0.0 support vSphere 7.0.2 onwards. - vcenter_vm_storage_policy - the format of the ``disks`` parameter has changed. -- vcenter_vm_storage_policy - the module has a new mandatory paramter: ``vm_home``. +- vcenter_vm_storage_policy - the module has a new mandatory parameter: ``vm_home``. Major Changes ------------- @@ -412,7 +412,7 @@ community.hashi_vault junipernetworks.junos ~~~~~~~~~~~~~~~~~~~~~ -- 'router_id' options is deprecated from junos_ospf_interfaces, junos_ospfv2 and junos_ospfv3 resuorce module. +- 'router_id' options is deprecated from junos_ospf_interfaces, junos_ospfv2 and junos_ospfv3 resource module. Porting Guide for v5.0.1 ======================== @@ -618,7 +618,7 @@ amazon.aws ~~~~~~~~~~ - amazon.aws collection - Due to the AWS SDKs announcing the end of support for Python less than 3.6 (https://boto3.amazonaws.com/v1/documentation/api/1.17.64/guide/migrationpy3.html) this collection now requires Python 3.6+ (https://github.com/ansible-collections/amazon.aws/pull/298). -- amazon.aws collection - The amazon.aws collection has dropped support for ``botocore<1.18.0`` and ``boto3<1.15.0``. Most modules will continue to work with older versions of the AWS SDK, however compatability with older versions of the SDK is not guaranteed and will not be tested. When using older versions of the SDK a warning will be emitted by Ansible (https://github.com/ansible-collections/amazon.aws/pull/502). +- amazon.aws collection - The amazon.aws collection has dropped support for ``botocore<1.18.0`` and ``boto3<1.15.0``. Most modules will continue to work with older versions of the AWS SDK, however compatibility with older versions of the SDK is not guaranteed and will not be tested. When using older versions of the SDK a warning will be emitted by Ansible (https://github.com/ansible-collections/amazon.aws/pull/502). - ec2_instance - The module has been migrated from the ``community.aws`` collection. Playbooks using the Fully Qualified Collection Name for this module should be updated to use ``amazon.aws.ec2_instance``. - ec2_instance_info - The module has been migrated from the ``community.aws`` collection. Playbooks using the Fully Qualified Collection Name for this module should be updated to use ``amazon.aws.ec2_instance_info``. - ec2_vpc_endpoint - The module has been migrated from the ``community.aws`` collection. Playbooks using the Fully Qualified Collection Name for this module should be updated to use ``amazon.aws.ec2_vpc_endpoint``. @@ -680,7 +680,7 @@ cloudscale_ch.cloud community.aws ~~~~~~~~~~~~~ -- community.aws collection - The community.aws collection has dropped support for ``botocore<1.18.0`` and ``boto3<1.15.0`` (https://github.com/ansible-collections/community.aws/pull/711). Most modules will continue to work with older versions of the AWS SDK, however compatability with older versions of the SDK is not guaranteed and will not be tested. When using older versions of the SDK a warning will be emitted by Ansible (https://github.com/ansible-collections/amazon.aws/pull/442). +- community.aws collection - The community.aws collection has dropped support for ``botocore<1.18.0`` and ``boto3<1.15.0`` (https://github.com/ansible-collections/community.aws/pull/711). Most modules will continue to work with older versions of the AWS SDK, however compatibility with older versions of the SDK is not guaranteed and will not be tested. When using older versions of the SDK a warning will be emitted by Ansible (https://github.com/ansible-collections/amazon.aws/pull/442). community.ciscosmb ~~~~~~~~~~~~~~~~~~ diff --git a/docs/docsite/rst/porting_guides/porting_guide_6.rst b/docs/docsite/rst/porting_guides/porting_guide_6.rst index a111451f..d7a0e98d 100644 --- a/docs/docsite/rst/porting_guides/porting_guide_6.rst +++ b/docs/docsite/rst/porting_guides/porting_guide_6.rst @@ -273,7 +273,7 @@ Deprecated Features ------------------- - The google.cloud collection is considered unmaintained and will be removed from Ansible 8 if no one starts maintaining it again before Ansible 8. See `the removal process for details on how this works `__ (https://github.com/ansible-community/community-topics/issues/105). -- The servicenow.servicenow collection has been deprecated by its maintainers (https://github.com/ServiceNowITOM/servicenow-ansible/pull/69) and will be removed from Ansible 7. It can still be installed manually, but it is suggested to swich to `servicenow.itsm `__ instead (https://github.com/ansible-community/community-topics/issues/124). +- The servicenow.servicenow collection has been deprecated by its maintainers (https://github.com/ServiceNowITOM/servicenow-ansible/pull/69) and will be removed from Ansible 7. It can still be installed manually, but it is suggested to switch to `servicenow.itsm `__ instead (https://github.com/ansible-community/community-topics/issues/124). Porting Guide for v6.2.0 ======================== @@ -576,7 +576,7 @@ Ansible-core amazon.aws ~~~~~~~~~~ -- amazon.aws collection - The amazon.aws collection has dropped support for ``botocore<1.19.0`` and ``boto3<1.16.0``. Most modules will continue to work with older versions of the AWS SDK, however compatability with older versions of the SDK is not guaranteed and will not be tested. When using older versions of the SDK a warning will be emitted by Ansible (https://github.com/ansible-collections/amazon.aws/pull/574). +- amazon.aws collection - The amazon.aws collection has dropped support for ``botocore<1.19.0`` and ``boto3<1.16.0``. Most modules will continue to work with older versions of the AWS SDK, however compatibility with older versions of the SDK is not guaranteed and will not be tested. When using older versions of the SDK a warning will be emitted by Ansible (https://github.com/ansible-collections/amazon.aws/pull/574). ansible.netcommon ~~~~~~~~~~~~~~~~~ @@ -678,12 +678,12 @@ cisco.nxos - The minimum required ansible.netcommon version has been bumped to v2.6.1. - Updated base plugin references to ansible.netcommon. - `nxos_facts` - change default gather_subset to `min` from `!config` (https://github.com/ansible-collections/cisco.nxos/issues/418). -- nxos_file_copy has been rewritten as a module. This change also removes the dependency on pexpect for file_pull operation. Since this now uses AnsibleModule class for argspec validation, the validation messages will be slighlty different. Expect changes in the return payload in some cases. All functionality remains unchanged. +- nxos_file_copy has been rewritten as a module. This change also removes the dependency on pexpect for file_pull operation. Since this now uses AnsibleModule class for argspec validation, the validation messages will be slightly different. Expect changes in the return payload in some cases. All functionality remains unchanged. community.aws ~~~~~~~~~~~~~ -- community.aws collection - The community.aws collection has dropped support for ``botocore<1.19.0`` and ``boto3<1.16.0``. Most modules will continue to work with older versions of the AWS SDK, however compatability with older versions of the SDK is not guaranteed and will not be tested. When using older versions of the SDK a warning will be emitted by Ansible (https://github.com/ansible-collections/community.aws/pull/809). +- community.aws collection - The community.aws collection has dropped support for ``botocore<1.19.0`` and ``boto3<1.16.0``. Most modules will continue to work with older versions of the AWS SDK, however compatibility with older versions of the SDK is not guaranteed and will not be tested. When using older versions of the SDK a warning will be emitted by Ansible (https://github.com/ansible-collections/community.aws/pull/809). - s3_bucket_notifications - refactor module to support SNS / SQS targets as well as the existing support for Lambda functions (https://github.com/ansible-collections/community.aws/issues/140). community.general @@ -956,7 +956,7 @@ community.network junipernetworks.junos ~~~~~~~~~~~~~~~~~~~~~ -- 'router_id' options is deprecated from junos_ospf_interfaces, junos_ospfv2 and junos_ospfv3 resuorce module. +- 'router_id' options is deprecated from junos_ospf_interfaces, junos_ospfv2 and junos_ospfv3 resource module. purestorage.flasharray ~~~~~~~~~~~~~~~~~~~~~~ diff --git a/docs/docsite/rst/porting_guides/porting_guide_7.rst b/docs/docsite/rst/porting_guides/porting_guide_7.rst index bb8b01bf..d5a94f26 100644 --- a/docs/docsite/rst/porting_guides/porting_guide_7.rst +++ b/docs/docsite/rst/porting_guides/porting_guide_7.rst @@ -92,6 +92,105 @@ Networking No notable changes +Porting Guide for v7.4.0 +======================== + +Breaking Changes +---------------- + +Ansible-core +~~~~~~~~~~~~ + +- ansible-test - Integration tests which depend on specific file permissions when running in an ansible-test managed host environment may require changes. Tests that require permissions other than ``755`` or ``644`` may need to be updated to set the necessary permissions as part of the test run. + +Major Changes +------------- + +community.hrobot +~~~~~~~~~~~~~~~~ + +- firewall - Hetzner added output rules support to the firewall. This change unfortunately means that using old versions of the firewall module will always set the output rule list to empty, thus disallowing the server to send out packets (https://github.com/ansible-collections/community.hrobot/issues/75, https://github.com/ansible-collections/community.hrobot/pull/76). + +community.vmware +~~~~~~~~~~~~~~~~ + +- Use true/false (lowercase) for boolean values in documentation and examples (https://github.com/ansible-collections/community.vmware/issues/1660). + +fortinet.fortios +~~~~~~~~~~~~~~~~ + +- Add annotations of member operation for every module. +- Update ``fortios.py`` for higher performance; +- supports temporary session key and pre/post login banner; +- update the examples on how to use member operation in Q&A. + +purestorage.fusion +~~~~~~~~~~~~~~~~~~ + +- Patching of resource properties was brought to parity with underlying Python SDK, meaning the collection can create/update/delete all resource properties the SDK can +- fusion_volume - fixed and reorganized, arguments changed + +Deprecated Features +------------------- + +amazon.aws +~~~~~~~~~~ + +- support for passing both profile and security tokens through a mix of environment variables and parameters has been deprecated and support will be removed in release 6.0.0. After release 6.0.0 it will only be possible to pass either a profile or security tokens, regardless of mechanism used to pass them. To explicitly block a parameter coming from an environment variable pass an empty string as the parameter value. Support for passing profile and security tokens together was originally deprecated in release 1.2.0, however only partially implemented in release 5.0.0 (https://github.com/ansible-collections/amazon.aws/pull/1355). + +community.aws +~~~~~~~~~~~~~ + +- ecs_service - In a release after 2024-06-01, tha default value of ``purge_placement_constraints`` will be change from ``false`` to ``true`` (https://github.com/ansible-collections/community.aws/pull/1716). +- ecs_service - In a release after 2024-06-01, tha default value of ``purge_placement_strategy`` will be change from ``false`` to ``true`` (https://github.com/ansible-collections/community.aws/pull/1716). +- iam_role - All top level return values other than ``iam_role`` and ``changed`` have been deprecated and will be removed in a release after 2023-12-01 (https://github.com/ansible-collections/community.aws/issues/551). +- iam_role - In a release after 2023-12-01 the contents of ``assume_role_policy_document`` will no longer be converted from CamelCase to snake_case. The ``assume_role_policy_document_raw`` return value already returns the policy document in this future format (https://github.com/ansible-collections/community.aws/issues/551). +- iam_role_info - In a release after 2023-12-01 the contents of ``assume_role_policy_document`` will no longer be converted from CamelCase to snake_case. The ``assume_role_policy_document_raw`` return value already returns the policy document in this future format (https://github.com/ansible-collections/community.aws/issues/551). + +community.hashi_vault +~~~~~~~~~~~~~~~~~~~~~ + +- hashi_vault lookup - in ``v5.0.0`` duplicate term string options will raise an exception instead of showing a warning (https://github.com/ansible-collections/community.hashi_vault/issues/356). + +purestorage.fusion +~~~~~~~~~~~~~~~~~~ + +- fusion_hw - hardware module is being removed as changing hardware type has never been supported by Pure Storage Fusion +- fusion_info - nigs subset is deprecated in favor of network_interface_groups and will be removed in the version 1.7.0 (https://github.com/Pure-Storage-Ansible/Fusion-Collection/pull/46). +- fusion_info - placements subset is deprecated in favor of placement_groups and will be removed in the version 1.7.0 (https://github.com/Pure-Storage-Ansible/Fusion-Collection/pull/62). +- fusion_pg - placement_engine option is deprecated because Fusion API does not longer support this parameter It will be removed in the version 2.0.0 (https://github.com/Pure-Storage-Ansible/Fusion-Collection/pull/53). +- fusion_se - parameters "addresses", "gateway" and "network_interface_groups" are deprecated in favor of "iscsi" and will be removed in version 2.0.0 +- fusion_tn - tenant networks are being replaced by storage endpoints ```fusion_se``` and Network Interface Groups ```fusion_nig``` + +Porting Guide for v7.3.0 +======================== + +Breaking Changes +---------------- + +hetzner.hcloud +~~~~~~~~~~~~~~ + +- inventory plugin - Python v3.5+ is now required. + +Major Changes +------------- + +kubernetes.core +~~~~~~~~~~~~~~~ + +- refactor K8sAnsibleMixin into module_utils/k8s/ (https://github.com/ansible-collections/kubernetes.core/pull/481). + +Deprecated Features +------------------- + +- Since the google.cloud collection seems to be maintained again, we `cancelled the removal process `__. So contrary to an earlier announcement, this collection is NOT deprecated and will NOT be removed from Ansible 8 (https://github.com/ansible-community/community-topics/issues/105). + +community.general +~~~~~~~~~~~~~~~~~ + +- gitlab_runner - the option ``access_level`` will lose its default value in community.general 8.0.0. From that version on, you have set this option to ``ref_protected`` explicitly, if you want to have a protected runner (https://github.com/ansible-collections/community.general/issues/5925). + Porting Guide for v7.2.0 ======================== @@ -322,7 +421,7 @@ amazon.aws - Tags beginning with ``aws:`` will not be removed when purging tags, these tags are reserved by Amazon and may not be updated or deleted (https://github.com/ansible-collections/amazon.aws/issues/817). - amazon.aws collection - Support for ansible-core < 2.11 has been dropped (https://github.com/ansible-collections/amazon.aws/pull/1087). -- amazon.aws collection - The amazon.aws collection has dropped support for ``botocore<1.21.0`` and ``boto3<1.18.0``. Most modules will continue to work with older versions of the AWS SDK, however compatability with older versions of the SDK is not guaranteed and will not be tested. When using older versions of the SDK a warning will be emitted by Ansible (https://github.com/ansible-collections/amazon.aws/pull/934). +- amazon.aws collection - The amazon.aws collection has dropped support for ``botocore<1.21.0`` and ``boto3<1.18.0``. Most modules will continue to work with older versions of the AWS SDK, however compatibility with older versions of the SDK is not guaranteed and will not be tested. When using older versions of the SDK a warning will be emitted by Ansible (https://github.com/ansible-collections/amazon.aws/pull/934). - amazon.aws collection - the ``profile`` parameter is now mutually exclusive with the ``aws_access_key``, ``aws_secret_key`` and ``security_token`` parameters (https://github.com/ansible-collections/amazon.aws/pull/834). - aws_az_info - the module alias ``aws_az_facts`` was deprecated in Ansible 2.9 and has now been removed (https://github.com/ansible-collections/amazon.aws/pull/832). - aws_s3 - the default value for ``ensure overwrite`` has been changed to ``different`` instead of ``always`` so that the module is idempotent by default (https://github.com/ansible-collections/amazon.aws/issues/811). @@ -370,7 +469,7 @@ community.aws - cloudwatchlogs_log_group_metric_filter - The module has been migrated from the ``community.aws`` collection. Playbooks using the Fully Qualified Collection Name for this module should be updated to use ``amazon.aws.cloudwatchlogs_log_group_metric_filter``. - community.aws collection - Support for ansible-core < 2.11 has been dropped (https://github.com/ansible-collections/community.aws/pull/1541). - community.aws collection - The ``community.aws`` collection has now dropped support for and any requirements upon the original ``boto`` AWS SDK, and now uses the ``boto3``/``botocore`` AWS SDK (https://github.com/ansible-collections/community.aws/pull/898). -- community.aws collection - The community.aws collection has dropped support for ``botocore<1.21.0`` and ``boto3<1.18.0``. Most modules will continue to work with older versions of the AWS SDK, however compatability with older versions of the SDK is not guaranteed and will not be tested. When using older versions of the SDK a warning will be emitted by Ansible (https://github.com/ansible-collections/community.aws/pull/1362). +- community.aws collection - The community.aws collection has dropped support for ``botocore<1.21.0`` and ``boto3<1.18.0``. Most modules will continue to work with older versions of the AWS SDK, however compatibility with older versions of the SDK is not guaranteed and will not be tested. When using older versions of the SDK a warning will be emitted by Ansible (https://github.com/ansible-collections/community.aws/pull/1362). - community.aws collection - the ``profile`` parameter is now mutually exclusive with the ``aws_access_key``, ``aws_secret_key`` and ``security_token`` parameters (https://github.com/ansible-collections/amazon.aws/pull/834). - ec2_eip - The module has been migrated from the ``community.aws`` collection. Playbooks using the Fully Qualified Collection Name for this module should be updated to use ``amazon.aws.ec2_eip``. - ec2_eip_info - The module has been migrated from the ``community.aws`` collection. Playbooks using the Fully Qualified Collection Name for this module should be updated to use ``amazon.aws.ec2_eip_info``. @@ -481,7 +580,7 @@ Ansible-core amazon.aws ~~~~~~~~~~ -- amazon.aws collection - The amazon.aws collection has dropped support for ``botocore<1.20.0`` and ``boto3<1.17.0``. Most modules will continue to work with older versions of the AWS SDK, however compatability with older versions of the SDK is not guaranteed and will not be tested. When using older versions of the SDK a warning will be emitted by Ansible (https://github.com/ansible-collections/amazon.aws/pull/574). +- amazon.aws collection - The amazon.aws collection has dropped support for ``botocore<1.20.0`` and ``boto3<1.17.0``. Most modules will continue to work with older versions of the AWS SDK, however compatibility with older versions of the SDK is not guaranteed and will not be tested. When using older versions of the SDK a warning will be emitted by Ansible (https://github.com/ansible-collections/amazon.aws/pull/574). - autoscaling_group - The module has been migrated from the ``community.aws`` collection. Playbooks using the Fully Qualified Collection Name for this module should be updated to use ``amazon.aws.autoscaling_group``. - autoscaling_group_info - The module has been migrated from the ``community.aws`` collection. Playbooks using the Fully Qualified Collection Name for this module should be updated to use ``amazon.aws.autoscaling_group_info``. - cloudtrail - The module has been migrated from the ``community.aws`` collection. Playbooks using the Fully Qualified Collection Name for this module should be updated to use ``amazon.aws.cloudtrail``. @@ -578,7 +677,7 @@ cisco.nxos community.aws ~~~~~~~~~~~~~ -- community.aws collection - The amazon.aws collection has dropped support for ``botocore<1.20.0`` and ``boto3<1.17.0``. Most modules will continue to work with older versions of the AWS SDK, however compatability with older versions of the SDK is not guaranteed and will not be tested. When using older versions of the SDK a warning will be emitted by Ansible (https://github.com/ansible-collections/community.aws/pull/956). +- community.aws collection - The amazon.aws collection has dropped support for ``botocore<1.20.0`` and ``boto3<1.17.0``. Most modules will continue to work with older versions of the AWS SDK, however compatibility with older versions of the SDK is not guaranteed and will not be tested. When using older versions of the SDK a warning will be emitted by Ansible (https://github.com/ansible-collections/community.aws/pull/956). community.docker ~~~~~~~~~~~~~~~~ diff --git a/docs/docsite/rst/reference_appendices/release_and_maintenance.rst b/docs/docsite/rst/reference_appendices/release_and_maintenance.rst index cf523778..551ff25f 100644 --- a/docs/docsite/rst/reference_appendices/release_and_maintenance.rst +++ b/docs/docsite/rst/reference_appendices/release_and_maintenance.rst @@ -41,8 +41,8 @@ The two community releases are related - the release cycle follows this pattern: * Work on new features continues in Collections * Individual Collections can make multiple minor and major releases -#. Minor releases of three maintained ansible-core versions every three weeks (2.11.1) -#. Minor releases of the single maintained Ansible community package version every three weeks (4.1.0) +#. Minor releases of three maintained ansible-core versions every four weeks (2.11.1) +#. Minor releases of the single maintained Ansible community package version every four weeks (4.1.0) #. Feature freeze on ansible-core #. Release candidate for ansible-core, testing, additional release candidates as necessary #. Release of the next ansible-core major version, cycle begins again @@ -50,7 +50,7 @@ The two community releases are related - the release cycle follows this pattern: Ansible community package release cycle --------------------------------------- -The Ansible community team typically releases two major versions of the community package per year, on a flexible release cycle that trails the release of ``ansible-core``. This cycle can be extended to allow for larger changes to be properly implemented and tested before a new release is made available. See :ref:`ansible_roadmaps` for upcoming release details. Between major versions, we release a new minor version of the Ansible community package every three weeks. Minor releases include new backwards-compatible features, modules and plugins, as well as bug fixes. +The Ansible community team typically releases two major versions of the community package per year, on a flexible release cycle that trails the release of ``ansible-core``. This cycle can be extended to allow for larger changes to be properly implemented and tested before a new release is made available. See :ref:`ansible_roadmaps` for upcoming release details. Between major versions, we release a new minor version of the Ansible community package every four weeks. Minor releases include new backwards-compatible features, modules and plugins, as well as bug fixes. Starting with version 2.10, the Ansible community team guarantees maintenance for only one major community package release at a time. For example, when Ansible 4.0.0 gets released, the team will stop making new 3.x releases. Community members may maintain older versions if desired. @@ -331,7 +331,7 @@ The Ansible community develops and maintains the features and functionality incl * Developers add new features and bug fixes to the individual Collections, following each Collection's rules on contributing. * Each new feature and each bug fix includes a changelog fragment describing the work. - * Release engineers create a minor release for the current version every three weeks to ensure that the latest bug fixes are available to users. + * Release engineers create a minor release for the current version every four weeks to ensure that the latest bug fixes are available to users. * At the end of the development period, the release engineers announce which Collections, and which major version of each included Collection, will be included in the next release of the Ansible community package. New Collections and new major versions may not be added after this, and the work of creating a new release begins. We generally do not provide fixes for unmaintained releases of the Ansible community package, however, there can sometimes be exceptions for critical issues. @@ -346,7 +346,7 @@ The Ansible community develops and maintains ``ansible-core`` on GitHub_, with a * Developers add new features and bug fixes to the ``devel`` branch. * Each new feature and each bug fix includes a changelog fragment describing the work. * The development team backports bug fixes to one, two, or three stable branches, depending on the severity of the bug. They do not backport new features. - * Release engineers create a minor release for each maintained version every three weeks to ensure that the latest bug fixes are available to users. + * Release engineers create a minor release for each maintained version every four weeks to ensure that the latest bug fixes are available to users. * At the end of the development period, the release engineers impose a feature freeze and the work of creating a new release begins. We generally do not provide fixes for unmaintained releases of ``ansible-core``, however, there can sometimes be exceptions for critical issues. diff --git a/docs/docsite/rst/reference_appendices/special_variables.rst b/docs/docsite/rst/reference_appendices/special_variables.rst index e159f476..73bd07c0 100644 --- a/docs/docsite/rst/reference_appendices/special_variables.rst +++ b/docs/docsite/rst/reference_appendices/special_variables.rst @@ -7,141 +7,145 @@ Magic variables --------------- These variables cannot be set directly by the user; Ansible will always override them to reflect internal state. -ansible_check_mode - Boolean that indicates if we are in check mode or not +.. glossary:: -ansible_config_file - The full path of used Ansible configuration file + ansible_check_mode + Boolean that indicates if we are in check mode or not -ansible_dependent_role_names - The names of the roles currently imported into the current play as dependencies of other plays + ansible_config_file + The full path of used Ansible configuration file -ansible_diff_mode - Boolean that indicates if we are in diff mode or not + ansible_dependent_role_names + The names of the roles currently imported into the current play as dependencies of other plays -ansible_forks - Integer reflecting the number of maximum forks available to this run + ansible_diff_mode + Boolean that indicates if we are in diff mode or not -ansible_inventory_sources - List of sources used as inventory + ansible_forks + Integer reflecting the number of maximum forks available to this run -ansible_limit - Contents of the ``--limit`` CLI option for the current execution of Ansible + ansible_inventory_sources + List of sources used as inventory -ansible_loop - A dictionary/map containing extended loop information when enabled through ``loop_control.extended`` + ansible_limit + Contents of the ``--limit`` CLI option for the current execution of Ansible -ansible_loop_var - The name of the value provided to ``loop_control.loop_var``. Added in ``2.8`` + ansible_loop + A dictionary/map containing extended loop information when enabled through ``loop_control.extended`` -ansible_index_var - The name of the value provided to ``loop_control.index_var``. Added in ``2.9`` + ansible_loop_var + The name of the value provided to ``loop_control.loop_var``. Added in ``2.8`` -ansible_parent_role_names - When the current role is being executed by means of an :ref:`include_role ` or :ref:`import_role ` action, this variable contains a list of all parent roles, with the most recent role (in other words, the role that included/imported this role) being the first item in the list. - When multiple inclusions occur, this list lists the *last* role (in other words, the role that included this role) as the *first* item in the list. It is also possible that a specific role exists more than once in this list. + ansible_index_var + The name of the value provided to ``loop_control.index_var``. Added in ``2.9`` - For example: When role **A** includes role **B**, inside role B, ``ansible_parent_role_names`` will equal to ``['A']``. If role **B** then includes role **C**, the list becomes ``['B', 'A']``. + ansible_parent_role_names + When the current role is being executed by means of an :ref:`include_role ` or :ref:`import_role ` action, this variable contains a list of all parent roles, with the most recent role (in other words, the role that included/imported this role) being the first item in the list. + When multiple inclusions occur, this list lists the *last* role (in other words, the role that included this role) as the *first* item in the list. It is also possible that a specific role exists more than once in this list. -ansible_parent_role_paths - When the current role is being executed by means of an :ref:`include_role ` or :ref:`import_role ` action, this variable contains a list of all parent roles paths, with the most recent role (in other words, the role that included/imported this role) being the first item in the list. - Please refer to ``ansible_parent_role_names`` for the order of items in this list. + For example: When role **A** includes role **B**, inside role B, ``ansible_parent_role_names`` will equal to ``['A']``. If role **B** then includes role **C**, the list becomes ``['B', 'A']``. -ansible_play_batch - List of active hosts in the current play run limited by the serial, aka 'batch'. Failed/Unreachable hosts are not considered 'active'. + ansible_parent_role_paths + When the current role is being executed by means of an :ref:`include_role ` or :ref:`import_role ` action, this variable contains a list of all parent roles paths, with the most recent role (in other words, the role that included/imported this role) being the first item in the list. + Please refer to ``ansible_parent_role_names`` for the order of items in this list. -ansible_play_hosts - List of hosts in the current play run, not limited by the serial. Failed/Unreachable hosts are excluded from this list. + ansible_play_batch + List of active hosts in the current play run limited by the serial, aka 'batch'. Failed/Unreachable hosts are not considered 'active'. -ansible_play_hosts_all - List of all the hosts that were targeted by the play + ansible_play_hosts + List of hosts in the current play run, not limited by the serial. Failed/Unreachable hosts are excluded from this list. -ansible_play_role_names - The names of the roles currently imported into the current play. This list does **not** contain the role names that are - implicitly included through dependencies. + ansible_play_hosts_all + List of all the hosts that were targeted by the play -ansible_playbook_python - The path to the python interpreter being used by Ansible on the controller + ansible_play_role_names + The names of the roles currently imported into the current play. This list does **not** contain the role names that are + implicitly included through dependencies. -ansible_role_names - The names of the roles currently imported into the current play, or roles referenced as dependencies of the roles - imported into the current play. + ansible_playbook_python + The path to the python interpreter being used by Ansible on the controller -ansible_role_name - The fully qualified collection role name, in the format of ``namespace.collection.role_name`` + ansible_role_names + The names of the roles currently imported into the current play, or roles referenced as dependencies of the roles + imported into the current play. -ansible_collection_name - The name of the collection the task that is executing is a part of. In the format of ``namespace.collection`` + ansible_role_name + The fully qualified collection role name, in the format of ``namespace.collection.role_name`` -ansible_run_tags - Contents of the ``--tags`` CLI option, which specifies which tags will be included for the current run. Note that if ``--tags`` is not passed, this variable will default to ``["all"]``. + ansible_collection_name + The name of the collection the task that is executing is a part of. In the format of ``namespace.collection`` -ansible_search_path - Current search path for action plugins and lookups, in other words, where we search for relative paths when you do ``template: src=myfile`` + ansible_run_tags + Contents of the ``--tags`` CLI option, which specifies which tags will be included for the current run. Note that if ``--tags`` is not passed, this variable will default to ``["all"]``. -ansible_skip_tags - Contents of the ``--skip-tags`` CLI option, which specifies which tags will be skipped for the current run. + ansible_search_path + Current search path for action plugins and lookups, in other words, where we search for relative paths when you do ``template: src=myfile`` -ansible_verbosity - Current verbosity setting for Ansible + ansible_skip_tags + Contents of the ``--skip-tags`` CLI option, which specifies which tags will be skipped for the current run. -ansible_version - Dictionary/map that contains information about the current running version of ansible, it has the following keys: full, major, minor, revision and string. + ansible_verbosity + Current verbosity setting for Ansible -group_names - List of groups the current host is part of + ansible_version + Dictionary/map that contains information about the current running version of ansible, it has the following keys: full, major, minor, revision and string. -groups - A dictionary/map with all the groups in inventory and each group has the list of hosts that belong to it + group_names + List of groups the current host is part of -hostvars - A dictionary/map with all the hosts in inventory and variables assigned to them + groups + A dictionary/map with all the groups in inventory and each group has the list of hosts that belong to it -inventory_hostname - The inventory name for the 'current' host being iterated over in the play + hostvars + A dictionary/map with all the hosts in inventory and variables assigned to them -inventory_hostname_short - The short version of `inventory_hostname` + inventory_hostname + The inventory name for the 'current' host being iterated over in the play -inventory_dir - The directory of the inventory source in which the `inventory_hostname` was first defined + inventory_hostname_short + The short version of `inventory_hostname` -inventory_file - The file name of the inventory source in which the `inventory_hostname` was first defined + inventory_dir + The directory of the inventory source in which the `inventory_hostname` was first defined -omit - Special variable that allows you to 'omit' an option in a task, for example ``- user: name=bob home={{ bobs_home|default(omit) }}`` + inventory_file + The file name of the inventory source in which the `inventory_hostname` was first defined -play_hosts - Deprecated, the same as ansible_play_batch + omit + Special variable that allows you to 'omit' an option in a task, for example ``- user: name=bob home={{ bobs_home|default(omit) }}`` -ansible_play_name - The name of the currently executed play. Added in ``2.8``. (`name` attribute of the play, not file name of the playbook.) + play_hosts + Deprecated, the same as ansible_play_batch -playbook_dir - The path to the directory of the current playbook being executed. NOTE: This might be different than directory of the playbook passed to the ``ansible-playbook`` command line when a playbook contains a ``import_playbook`` statement. + ansible_play_name + The name of the currently executed play. Added in ``2.8``. (`name` attribute of the play, not file name of the playbook.) -role_name - The name of the role currently being executed. + playbook_dir + The path to the directory of the current playbook being executed. NOTE: This might be different than directory of the playbook passed to the ``ansible-playbook`` command line when a playbook contains a ``import_playbook`` statement. -role_names - Deprecated, the same as ansible_play_role_names + role_name + The name of the role currently being executed. -role_path - The path to the dir of the currently running role + role_names + Deprecated, the same as ansible_play_role_names + + role_path + The path to the dir of the currently running role Facts ----- These are variables that contain information pertinent to the current host (`inventory_hostname`). They are only available if gathered first. See :ref:`vars_and_facts` for more information. -ansible_facts - Contains any facts gathered or cached for the `inventory_hostname` - Facts are normally gathered by the :ref:`setup ` module automatically in a play, but any module can return facts. +.. glossary:: + + ansible_facts + Contains any facts gathered or cached for the `inventory_hostname` + Facts are normally gathered by the :ref:`setup ` module automatically in a play, but any module can return facts. -ansible_local - Contains any 'local facts' gathered or cached for the `inventory_hostname`. - The keys available depend on the custom facts created. - See the :ref:`setup ` module and :ref:`local_facts` for more details. + ansible_local + Contains any 'local facts' gathered or cached for the `inventory_hostname`. + The keys available depend on the custom facts created. + See the :ref:`setup ` module and :ref:`local_facts` for more details. .. _connection_variables: @@ -151,17 +155,19 @@ Connection variables are normally used to set the specifics on how to execute ac Only the common ones are described as each connection/become/shell/etc plugin can define its own overrides and specific variables. See :ref:`general_precedence_rules` for how connection variables interact with :ref:`configuration settings`, :ref:`command-line options`, and :ref:`playbook keywords`. -ansible_become_user - The user Ansible 'becomes' after using privilege escalation. This must be available to the 'login user'. +.. glossary:: + + ansible_become_user + The user Ansible 'becomes' after using privilege escalation. This must be available to the 'login user'. -ansible_connection - The connection plugin actually used for the task on the target host. + ansible_connection + The connection plugin actually used for the task on the target host. -ansible_host - The ip/name of the target host to use instead of `inventory_hostname`. + ansible_host + The ip/name of the target host to use instead of `inventory_hostname`. -ansible_python_interpreter - The path to the Python executable Ansible should use on the target host. + ansible_python_interpreter + The path to the Python executable Ansible should use on the target host. -ansible_user - The user Ansible 'logs in' as. + ansible_user + The user Ansible 'logs in' as. diff --git a/docs/docsite/sphinx_conf/core_conf.py b/docs/docsite/sphinx_conf/core_conf.py index 7f1663b3..a279c02f 100644 --- a/docs/docsite/sphinx_conf/core_conf.py +++ b/docs/docsite/sphinx_conf/core_conf.py @@ -104,6 +104,7 @@ exclude_patterns = [ 'community/collection_contributors/collection_integration_tests.rst', 'community/collection_contributors/collection_integration_running.rst', 'community/collection_contributors/collection_reviewing.rst', + 'community/collection_contributors/collection_requirements.rst', 'community/collection_contributors/collection_unit_tests.rst', 'community/maintainers.rst', 'community/contributions_collections.rst', diff --git a/docs/docsite/sphinx_conf/core_lang_conf.py b/docs/docsite/sphinx_conf/core_lang_conf.py index 49efc6ee..2d4ecc14 100644 --- a/docs/docsite/sphinx_conf/core_lang_conf.py +++ b/docs/docsite/sphinx_conf/core_lang_conf.py @@ -104,6 +104,7 @@ exclude_patterns = [ 'community/collection_contributors/collection_integration_tests.rst', 'community/collection_contributors/collection_integration_running.rst', 'community/collection_contributors/collection_reviewing.rst', + 'community/collection_contributors/collection_requirements.rst', 'community/collection_contributors/collection_unit_tests.rst', 'community/maintainers.rst', 'community/contributions_collections.rst', diff --git a/docs/man/man1/ansible-config.1 b/docs/man/man1/ansible-config.1 index 28b88cde..a5724586 100644 --- a/docs/man/man1/ansible-config.1 +++ b/docs/man/man1/ansible-config.1 @@ -27,7 +27,7 @@ level margin: \\n[rst2man-indent\\n[rst2man-indent-level]] .\" new: \\n[rst2man-indent\\n[rst2man-indent-level]] .in \\n[rst2man-indent\\n[rst2man-indent-level]]u .. -.TH "ANSIBLE-CONFIG" 1 "" "Ansible 2.14.3" "System administration commands" +.TH "ANSIBLE-CONFIG" 1 "" "Ansible 2.14.6" "System administration commands" .SH NAME ansible-config \- View ansible configuration. .SH SYNOPSIS diff --git a/docs/man/man1/ansible-console.1 b/docs/man/man1/ansible-console.1 index 039959b2..026ae8a5 100644 --- a/docs/man/man1/ansible-console.1 +++ b/docs/man/man1/ansible-console.1 @@ -27,27 +27,16 @@ level margin: \\n[rst2man-indent\\n[rst2man-indent-level]] .\" new: \\n[rst2man-indent\\n[rst2man-indent-level]] .in \\n[rst2man-indent\\n[rst2man-indent-level]]u .. -.TH "ANSIBLE-CONSOLE" 1 "" "Ansible 2.14.3" "System administration commands" +.TH "ANSIBLE-CONSOLE" 1 "" "Ansible 2.14.6" "System administration commands" .SH NAME ansible-console \- REPL console for executing Ansible tasks. .SH SYNOPSIS .INDENT 0.0 .TP -.B usage: ansible\-console [\-h] [\-\-version] [\-v] [\-b] -[\-\-become\-method BECOME_METHOD] -[\-\-become\-user BECOME_USER] -[\-K | \-\-become\-password\-file BECOME_PASSWORD_FILE] -[\-i INVENTORY] [\-\-list\-hosts] [\-l SUBSET] -[\-\-private\-key PRIVATE_KEY_FILE] [\-u REMOTE_USER] -[\-c CONNECTION] [\-T TIMEOUT] -[\-\-ssh\-common\-args SSH_COMMON_ARGS] -[\-\-sftp\-extra\-args SFTP_EXTRA_ARGS] -[\-\-scp\-extra\-args SCP_EXTRA_ARGS] -[\-\-ssh\-extra\-args SSH_EXTRA_ARGS] -[\-k | \-\-connection\-password\-file CONNECTION_PASSWORD_FILE] -[\-C] [\-\-syntax\-check] [\-D] [\-\-vault\-id VAULT_IDS] -[\-\-ask\-vault\-password | \-\-vault\-password\-file VAULT_PASSWORD_FILES] -[\-f FORKS] [\-M MODULE_PATH] [\-\-playbook\-dir BASEDIR] +.B usage: ansible\-console [\-h] [\-\-version] [\-v] [\-b] [\-\-become\-method BECOME_METHOD] [\-\-become\-user BECOME_USER] [\-K | \-\-become\-password\-file BECOME_PASSWORD_FILE] [\-i INVENTORY] +[\-\-list\-hosts] [\-l SUBSET] [\-\-private\-key PRIVATE_KEY_FILE] [\-u REMOTE_USER] [\-c CONNECTION] [\-T TIMEOUT] [\-\-ssh\-common\-args SSH_COMMON_ARGS] +[\-\-sftp\-extra\-args SFTP_EXTRA_ARGS] [\-\-scp\-extra\-args SCP_EXTRA_ARGS] [\-\-ssh\-extra\-args SSH_EXTRA_ARGS] [\-k | \-\-connection\-password\-file CONNECTION_PASSWORD_FILE] +[\-C] [\-D] [\-\-vault\-id VAULT_IDS] [\-\-ask\-vault\-password | \-\-vault\-password\-file VAULT_PASSWORD_FILES] [\-f FORKS] [\-M MODULE_PATH] [\-\-playbook\-dir BASEDIR] [\-e EXTRA_VARS] [\-\-task\-timeout TASK_TIMEOUT] [\-\-step] [pattern] .UNINDENT @@ -63,7 +52,7 @@ runtime: .IP \(bu 2 \fIcd [pattern]\fP: change host/group (you can use host patterns eg.: .UNINDENT -.IP "System Message: WARNING/2 (docs/man/man1/ansible-console.1.rst:, line 46)" +.IP "System Message: WARNING/2 (:, line 35)" Bullet list ends without a blank line; unexpected unindent. .sp app*.dc*:!app01*) @@ -179,13 +168,6 @@ one\-step\-at\-a\-time: confirm each task before running .UNINDENT .UNINDENT .sp -\fB\-\-syntax\-check\fP -.INDENT 0.0 -.INDENT 3.5 -perform a syntax check on the playbook, but do not execute it -.UNINDENT -.UNINDENT -.sp \fB\-\-task\-timeout\fP \(aqTASK_TIMEOUT\(aq .INDENT 0.0 .INDENT 3.5 diff --git a/docs/man/man1/ansible-doc.1 b/docs/man/man1/ansible-doc.1 index 434e92c4..8c262a24 100644 --- a/docs/man/man1/ansible-doc.1 +++ b/docs/man/man1/ansible-doc.1 @@ -27,18 +27,15 @@ level margin: \\n[rst2man-indent\\n[rst2man-indent-level]] .\" new: \\n[rst2man-indent\\n[rst2man-indent-level]] .in \\n[rst2man-indent\\n[rst2man-indent-level]]u .. -.TH "ANSIBLE-DOC" 1 "" "Ansible 2.14.3" "System administration commands" +.TH "ANSIBLE-DOC" 1 "" "Ansible 2.14.6" "System administration commands" .SH NAME ansible-doc \- plugin documentation tool .SH SYNOPSIS .INDENT 0.0 .TP -.B usage: ansible\-doc [\-h] [\-\-version] [\-v] [\-M MODULE_PATH] -[\-\-playbook\-dir BASEDIR] -[\-t {become,cache,callback,cliconf,connection,httpapi,inventory,lookup,netconf,shell,vars,module,strategy,test,filter,role,keyword}] -[\-j] [\-r ROLES_PATH] -[\-e ENTRY_POINT | \-s | \-F | \-l | \-\-metadata\-dump] -[\-\-no\-fail\-on\-errors] +.B usage: ansible\-doc [\-h] [\-\-version] [\-v] [\-M MODULE_PATH] [\-\-playbook\-dir BASEDIR] +[\-t {become,cache,callback,cliconf,connection,httpapi,inventory,lookup,netconf,shell,vars,module,strategy,test,filter,role,keyword}] [\-j] [\-r ROLES_PATH] +[\-e ENTRY_POINT | \-s | \-F | \-l | \-\-metadata\-dump] [\-\-no\-fail\-on\-errors] [plugin ...] .UNINDENT .SH DESCRIPTION diff --git a/docs/man/man1/ansible-galaxy.1 b/docs/man/man1/ansible-galaxy.1 index 646e1b93..36d42830 100644 --- a/docs/man/man1/ansible-galaxy.1 +++ b/docs/man/man1/ansible-galaxy.1 @@ -27,7 +27,7 @@ level margin: \\n[rst2man-indent\\n[rst2man-indent-level]] .\" new: \\n[rst2man-indent\\n[rst2man-indent-level]] .in \\n[rst2man-indent\\n[rst2man-indent-level]]u .. -.TH "ANSIBLE-GALAXY" 1 "" "Ansible 2.14.3" "System administration commands" +.TH "ANSIBLE-GALAXY" 1 "" "Ansible 2.14.6" "System administration commands" .SH NAME ansible-galaxy \- Perform various Role and Collection related operations. .SH SYNOPSIS diff --git a/docs/man/man1/ansible-inventory.1 b/docs/man/man1/ansible-inventory.1 index dcf9152d..e35df15c 100644 --- a/docs/man/man1/ansible-inventory.1 +++ b/docs/man/man1/ansible-inventory.1 @@ -27,18 +27,14 @@ level margin: \\n[rst2man-indent\\n[rst2man-indent-level]] .\" new: \\n[rst2man-indent\\n[rst2man-indent-level]] .in \\n[rst2man-indent\\n[rst2man-indent-level]]u .. -.TH "ANSIBLE-INVENTORY" 1 "" "Ansible 2.14.3" "System administration commands" +.TH "ANSIBLE-INVENTORY" 1 "" "Ansible 2.14.6" "System administration commands" .SH NAME ansible-inventory \- None .SH SYNOPSIS .INDENT 0.0 .TP -.B usage: ansible\-inventory [\-h] [\-\-version] [\-v] [\-i INVENTORY] -[\-\-vault\-id VAULT_IDS] -[\-\-ask\-vault\-password | \-\-vault\-password\-file VAULT_PASSWORD_FILES] -[\-\-playbook\-dir BASEDIR] [\-e EXTRA_VARS] [\-\-list] -[\-\-host HOST] [\-\-graph] [\-y] [\-\-toml] [\-\-vars] -[\-\-export] [\-\-output OUTPUT_FILE] +.B usage: ansible\-inventory [\-h] [\-\-version] [\-v] [\-i INVENTORY] [\-\-vault\-id VAULT_IDS] [\-\-ask\-vault\-password | \-\-vault\-password\-file VAULT_PASSWORD_FILES] [\-\-playbook\-dir BASEDIR] +[\-e EXTRA_VARS] [\-\-list] [\-\-host HOST] [\-\-graph] [\-y] [\-\-toml] [\-\-vars] [\-\-export] [\-\-output OUTPUT_FILE] [host|group] .UNINDENT .SH DESCRIPTION diff --git a/docs/man/man1/ansible-playbook.1 b/docs/man/man1/ansible-playbook.1 index 42b123f9..82f0599e 100644 --- a/docs/man/man1/ansible-playbook.1 +++ b/docs/man/man1/ansible-playbook.1 @@ -27,28 +27,17 @@ level margin: \\n[rst2man-indent\\n[rst2man-indent-level]] .\" new: \\n[rst2man-indent\\n[rst2man-indent-level]] .in \\n[rst2man-indent\\n[rst2man-indent-level]]u .. -.TH "ANSIBLE-PLAYBOOK" 1 "" "Ansible 2.14.3" "System administration commands" +.TH "ANSIBLE-PLAYBOOK" 1 "" "Ansible 2.14.6" "System administration commands" .SH NAME ansible-playbook \- Runs Ansible playbooks, executing the defined tasks on the targeted hosts. .SH SYNOPSIS .INDENT 0.0 .TP -.B usage: ansible\-playbook [\-h] [\-\-version] [\-v] [\-\-private\-key PRIVATE_KEY_FILE] -[\-u REMOTE_USER] [\-c CONNECTION] [\-T TIMEOUT] -[\-\-ssh\-common\-args SSH_COMMON_ARGS] -[\-\-sftp\-extra\-args SFTP_EXTRA_ARGS] -[\-\-scp\-extra\-args SCP_EXTRA_ARGS] -[\-\-ssh\-extra\-args SSH_EXTRA_ARGS] -[\-k | \-\-connection\-password\-file CONNECTION_PASSWORD_FILE] -[\-\-force\-handlers] [\-\-flush\-cache] [\-b] -[\-\-become\-method BECOME_METHOD] -[\-\-become\-user BECOME_USER] -[\-K | \-\-become\-password\-file BECOME_PASSWORD_FILE] -[\-t TAGS] [\-\-skip\-tags SKIP_TAGS] [\-C] -[\-\-syntax\-check] [\-D] [\-i INVENTORY] [\-\-list\-hosts] -[\-l SUBSET] [\-e EXTRA_VARS] [\-\-vault\-id VAULT_IDS] -[\-\-ask\-vault\-password | \-\-vault\-password\-file VAULT_PASSWORD_FILES] -[\-f FORKS] [\-M MODULE_PATH] [\-\-list\-tasks] +.B usage: ansible\-playbook [\-h] [\-\-version] [\-v] [\-\-private\-key PRIVATE_KEY_FILE] [\-u REMOTE_USER] [\-c CONNECTION] [\-T TIMEOUT] [\-\-ssh\-common\-args SSH_COMMON_ARGS] +[\-\-sftp\-extra\-args SFTP_EXTRA_ARGS] [\-\-scp\-extra\-args SCP_EXTRA_ARGS] [\-\-ssh\-extra\-args SSH_EXTRA_ARGS] +[\-k | \-\-connection\-password\-file CONNECTION_PASSWORD_FILE] [\-\-force\-handlers] [\-\-flush\-cache] [\-b] [\-\-become\-method BECOME_METHOD] [\-\-become\-user BECOME_USER] +[\-K | \-\-become\-password\-file BECOME_PASSWORD_FILE] [\-t TAGS] [\-\-skip\-tags SKIP_TAGS] [\-C] [\-D] [\-i INVENTORY] [\-\-list\-hosts] [\-l SUBSET] [\-e EXTRA_VARS] +[\-\-vault\-id VAULT_IDS] [\-\-ask\-vault\-password | \-\-vault\-password\-file VAULT_PASSWORD_FILES] [\-f FORKS] [\-M MODULE_PATH] [\-\-syntax\-check] [\-\-list\-tasks] [\-\-list\-tags] [\-\-step] [\-\-start\-at\-task START_AT_TASK] playbook [playbook ...] .UNINDENT diff --git a/docs/man/man1/ansible-pull.1 b/docs/man/man1/ansible-pull.1 index 2fe0c038..bafa0193 100644 --- a/docs/man/man1/ansible-pull.1 +++ b/docs/man/man1/ansible-pull.1 @@ -27,28 +27,17 @@ level margin: \\n[rst2man-indent\\n[rst2man-indent-level]] .\" new: \\n[rst2man-indent\\n[rst2man-indent-level]] .in \\n[rst2man-indent\\n[rst2man-indent-level]]u .. -.TH "ANSIBLE-PULL" 1 "" "Ansible 2.14.3" "System administration commands" +.TH "ANSIBLE-PULL" 1 "" "Ansible 2.14.6" "System administration commands" .SH NAME ansible-pull \- pulls playbooks from a VCS repo and executes them for the local host .SH SYNOPSIS .INDENT 0.0 .TP -.B usage: ansible\-pull [\-h] [\-\-version] [\-v] [\-\-private\-key PRIVATE_KEY_FILE] -[\-u REMOTE_USER] [\-c CONNECTION] [\-T TIMEOUT] -[\-\-ssh\-common\-args SSH_COMMON_ARGS] -[\-\-sftp\-extra\-args SFTP_EXTRA_ARGS] -[\-\-scp\-extra\-args SCP_EXTRA_ARGS] -[\-\-ssh\-extra\-args SSH_EXTRA_ARGS] -[\-k | \-\-connection\-password\-file CONNECTION_PASSWORD_FILE] -[\-\-vault\-id VAULT_IDS] -[\-\-ask\-vault\-password | \-\-vault\-password\-file VAULT_PASSWORD_FILES] -[\-e EXTRA_VARS] [\-t TAGS] [\-\-skip\-tags SKIP_TAGS] -[\-i INVENTORY] [\-\-list\-hosts] [\-l SUBSET] [\-M MODULE_PATH] -[\-K | \-\-become\-password\-file BECOME_PASSWORD_FILE] -[\-\-purge] [\-o] [\-s SLEEP] [\-f] [\-d DEST] [\-U URL] [\-\-full] -[\-C CHECKOUT] [\-\-accept\-host\-key] [\-m MODULE_NAME] -[\-\-verify\-commit] [\-\-clean] [\-\-track\-subs] [\-\-check] -[\-\-diff] +.B usage: ansible\-pull [\-h] [\-\-version] [\-v] [\-\-private\-key PRIVATE_KEY_FILE] [\-u REMOTE_USER] [\-c CONNECTION] [\-T TIMEOUT] [\-\-ssh\-common\-args SSH_COMMON_ARGS] +[\-\-sftp\-extra\-args SFTP_EXTRA_ARGS] [\-\-scp\-extra\-args SCP_EXTRA_ARGS] [\-\-ssh\-extra\-args SSH_EXTRA_ARGS] [\-k | \-\-connection\-password\-file CONNECTION_PASSWORD_FILE] +[\-\-vault\-id VAULT_IDS] [\-\-ask\-vault\-password | \-\-vault\-password\-file VAULT_PASSWORD_FILES] [\-e EXTRA_VARS] [\-t TAGS] [\-\-skip\-tags SKIP_TAGS] [\-i INVENTORY] +[\-\-list\-hosts] [\-l SUBSET] [\-M MODULE_PATH] [\-K | \-\-become\-password\-file BECOME_PASSWORD_FILE] [\-\-purge] [\-o] [\-s SLEEP] [\-f] [\-d DEST] [\-U URL] [\-\-full] +[\-C CHECKOUT] [\-\-accept\-host\-key] [\-m MODULE_NAME] [\-\-verify\-commit] [\-\-clean] [\-\-track\-subs] [\-\-check] [\-\-diff] [playbook.yml ...] .UNINDENT .SH DESCRIPTION diff --git a/docs/man/man1/ansible-vault.1 b/docs/man/man1/ansible-vault.1 index 42e7d7a4..4127214d 100644 --- a/docs/man/man1/ansible-vault.1 +++ b/docs/man/man1/ansible-vault.1 @@ -27,16 +27,12 @@ level margin: \\n[rst2man-indent\\n[rst2man-indent-level]] .\" new: \\n[rst2man-indent\\n[rst2man-indent-level]] .in \\n[rst2man-indent\\n[rst2man-indent-level]]u .. -.TH "ANSIBLE-VAULT" 1 "" "Ansible 2.14.3" "System administration commands" +.TH "ANSIBLE-VAULT" 1 "" "Ansible 2.14.6" "System administration commands" .SH NAME ansible-vault \- encryption/decryption utility for Ansible data files .SH SYNOPSIS -.INDENT 0.0 -.TP -.B usage: ansible\-vault [\-h] [\-\-version] [\-v] -{create,decrypt,edit,view,encrypt,encrypt_string,rekey} -\&... -.UNINDENT +.sp +usage: ansible\-vault [\-h] [\-\-version] [\-v] {create,decrypt,edit,view,encrypt,encrypt_string,rekey} ... .SH DESCRIPTION .sp can encrypt any structured data file used by Ansible. diff --git a/docs/man/man1/ansible.1 b/docs/man/man1/ansible.1 index 5f29078d..2d2a551c 100644 --- a/docs/man/man1/ansible.1 +++ b/docs/man/man1/ansible.1 @@ -27,27 +27,18 @@ level margin: \\n[rst2man-indent\\n[rst2man-indent-level]] .\" new: \\n[rst2man-indent\\n[rst2man-indent-level]] .in \\n[rst2man-indent\\n[rst2man-indent-level]]u .. -.TH "ANSIBLE" 1 "" "Ansible 2.14.3" "System administration commands" +.TH "ANSIBLE" 1 "" "Ansible 2.14.6" "System administration commands" .SH NAME ansible \- Define and run a single task 'playbook' against a set of hosts .SH SYNOPSIS .INDENT 0.0 .TP -.B usage: ansible [\-h] [\-\-version] [\-v] [\-b] [\-\-become\-method BECOME_METHOD] -[\-\-become\-user BECOME_USER] -[\-K | \-\-become\-password\-file BECOME_PASSWORD_FILE] -[\-i INVENTORY] [\-\-list\-hosts] [\-l SUBSET] [\-P POLL_INTERVAL] -[\-B SECONDS] [\-o] [\-t TREE] [\-\-private\-key PRIVATE_KEY_FILE] -[\-u REMOTE_USER] [\-c CONNECTION] [\-T TIMEOUT] -[\-\-ssh\-common\-args SSH_COMMON_ARGS] -[\-\-sftp\-extra\-args SFTP_EXTRA_ARGS] -[\-\-scp\-extra\-args SCP_EXTRA_ARGS] -[\-\-ssh\-extra\-args SSH_EXTRA_ARGS] -[\-k | \-\-connection\-password\-file CONNECTION_PASSWORD_FILE] [\-C] -[\-\-syntax\-check] [\-D] [\-e EXTRA_VARS] [\-\-vault\-id VAULT_IDS] -[\-\-ask\-vault\-password | \-\-vault\-password\-file VAULT_PASSWORD_FILES] -[\-f FORKS] [\-M MODULE_PATH] [\-\-playbook\-dir BASEDIR] -[\-\-task\-timeout TASK_TIMEOUT] [\-a MODULE_ARGS] [\-m MODULE_NAME] +.B usage: ansible [\-h] [\-\-version] [\-v] [\-b] [\-\-become\-method BECOME_METHOD] [\-\-become\-user BECOME_USER] [\-K | \-\-become\-password\-file BECOME_PASSWORD_FILE] [\-i INVENTORY] [\-\-list\-hosts] +[\-l SUBSET] [\-P POLL_INTERVAL] [\-B SECONDS] [\-o] [\-t TREE] [\-\-private\-key PRIVATE_KEY_FILE] [\-u REMOTE_USER] [\-c CONNECTION] [\-T TIMEOUT] +[\-\-ssh\-common\-args SSH_COMMON_ARGS] [\-\-sftp\-extra\-args SFTP_EXTRA_ARGS] [\-\-scp\-extra\-args SCP_EXTRA_ARGS] [\-\-ssh\-extra\-args SSH_EXTRA_ARGS] +[\-k | \-\-connection\-password\-file CONNECTION_PASSWORD_FILE] [\-C] [\-D] [\-e EXTRA_VARS] [\-\-vault\-id VAULT_IDS] +[\-\-ask\-vault\-password | \-\-vault\-password\-file VAULT_PASSWORD_FILES] [\-f FORKS] [\-M MODULE_PATH] [\-\-playbook\-dir BASEDIR] [\-\-task\-timeout TASK_TIMEOUT] [\-a MODULE_ARGS] +[\-m MODULE_NAME] pattern .UNINDENT .SH DESCRIPTION @@ -146,13 +137,6 @@ specify extra arguments to pass to ssh only (e.g. \-R) .UNINDENT .UNINDENT .sp -\fB\-\-syntax\-check\fP -.INDENT 0.0 -.INDENT 3.5 -perform a syntax check on the playbook, but do not execute it -.UNINDENT -.UNINDENT -.sp \fB\-\-task\-timeout\fP \(aqTASK_TIMEOUT\(aq .INDENT 0.0 .INDENT 3.5 diff --git a/lib/ansible/cli/arguments/option_helpers.py b/lib/ansible/cli/arguments/option_helpers.py index cb37d57c..a3efb1e2 100644 --- a/lib/ansible/cli/arguments/option_helpers.py +++ b/lib/ansible/cli/arguments/option_helpers.py @@ -235,8 +235,6 @@ def add_check_options(parser): """Add options for commands which can run with diagnostic information of tasks""" parser.add_argument("-C", "--check", default=False, dest='check', action='store_true', help="don't make any changes; instead, try to predict some of the changes that may occur") - parser.add_argument('--syntax-check', dest='syntax', action='store_true', - help="perform a syntax check on the playbook, but do not execute it") parser.add_argument("-D", "--diff", default=C.DIFF_ALWAYS, dest='diff', action='store_true', help="when changing (small) files and templates, show the differences in those" " files; works great with --check") diff --git a/lib/ansible/cli/doc.py b/lib/ansible/cli/doc.py index 80365303..9f560bcb 100755 --- a/lib/ansible/cli/doc.py +++ b/lib/ansible/cli/doc.py @@ -1241,10 +1241,16 @@ class DocCLI(CLI, RoleMixin): if 'module' in item: text.append(textwrap.fill(DocCLI.tty_ify('Module %s' % item['module']), limit - 6, initial_indent=opt_indent[:-2] + "* ", subsequent_indent=opt_indent)) - description = item.get('description', 'The official documentation on the %s module.' % item['module']) - text.append(textwrap.fill(DocCLI.tty_ify(description), limit - 6, initial_indent=opt_indent + ' ', subsequent_indent=opt_indent + ' ')) - text.append(textwrap.fill(DocCLI.tty_ify(get_versioned_doclink('modules/%s_module.html' % item['module'])), - limit - 6, initial_indent=opt_indent + ' ', subsequent_indent=opt_indent)) + description = item.get('description') + if description is None and item['module'].startswith('ansible.builtin.'): + description = 'The official documentation on the %s module.' % item['module'] + if description is not None: + text.append(textwrap.fill(DocCLI.tty_ify(description), + limit - 6, initial_indent=opt_indent + ' ', subsequent_indent=opt_indent + ' ')) + if item['module'].startswith('ansible.builtin.'): + relative_url = 'collections/%s_module.html' % item['module'].replace('.', '/', 2) + text.append(textwrap.fill(DocCLI.tty_ify(get_versioned_doclink(relative_url)), + limit - 6, initial_indent=opt_indent + ' ', subsequent_indent=opt_indent)) elif 'name' in item and 'link' in item and 'description' in item: text.append(textwrap.fill(DocCLI.tty_ify(item['name']), limit - 6, initial_indent=opt_indent[:-2] + "* ", subsequent_indent=opt_indent)) diff --git a/lib/ansible/cli/galaxy.py b/lib/ansible/cli/galaxy.py index 3cb7fe2c..c280380c 100755 --- a/lib/ansible/cli/galaxy.py +++ b/lib/ansible/cli/galaxy.py @@ -27,7 +27,7 @@ from ansible import context from ansible.cli.arguments import option_helpers as opt_help from ansible.errors import AnsibleError, AnsibleOptionsError from ansible.galaxy import Galaxy, get_collections_galaxy_meta_info -from ansible.galaxy.api import GalaxyAPI +from ansible.galaxy.api import GalaxyAPI, GalaxyError from ansible.galaxy.collection import ( build_collection, download_collections, @@ -242,7 +242,7 @@ class GalaxyCLI(CLI): help='The Ansible Galaxy API key which can be found at ' 'https://galaxy.ansible.com/me/preferences.') common.add_argument('-c', '--ignore-certs', action='store_true', dest='ignore_certs', help='Ignore SSL certificate validation errors.', default=None) - common.add_argument('--timeout', dest='timeout', type=int, + common.add_argument('--timeout', dest='timeout', type=int, default=60, help="The time to wait for operations against the galaxy server, defaults to 60s.") opt_help.add_verbosity_options(common) @@ -1214,7 +1214,7 @@ class GalaxyCLI(CLI): remote_data = None try: remote_data = self.api.lookup_role_by_name(role, False) - except AnsibleError as e: + except GalaxyError as e: if e.http_code == 400 and 'Bad Request' in e.message: # Role does not exist in Ansible Galaxy data = u"- the role %s was not found" % role diff --git a/lib/ansible/cli/playbook.py b/lib/ansible/cli/playbook.py index c94cf0ff..9c091a67 100755 --- a/lib/ansible/cli/playbook.py +++ b/lib/ansible/cli/playbook.py @@ -54,6 +54,8 @@ class PlaybookCLI(CLI): opt_help.add_module_options(self.parser) # ansible playbook specific opts + self.parser.add_argument('--syntax-check', dest='syntax', action='store_true', + help="perform a syntax check on the playbook, but do not execute it") self.parser.add_argument('--list-tasks', dest='listtasks', action='store_true', help="list all tasks that would be executed") self.parser.add_argument('--list-tags', dest='listtags', action='store_true', diff --git a/lib/ansible/executor/powershell/module_manifest.py b/lib/ansible/executor/powershell/module_manifest.py index 970e8489..87e2ce0a 100644 --- a/lib/ansible/executor/powershell/module_manifest.py +++ b/lib/ansible/executor/powershell/module_manifest.py @@ -319,7 +319,7 @@ def _create_powershell_wrapper(b_module_data, module_path, module_args, exec_manifest["actions"].insert(0, 'async_watchdog') exec_manifest["actions"].insert(0, 'async_wrapper') - exec_manifest["async_jid"] = str(random.randint(0, 999999999999)) + exec_manifest["async_jid"] = f'j{random.randint(0, 999999999999)}' exec_manifest["async_timeout_sec"] = async_timeout exec_manifest["async_startup_timeout"] = C.config.get_config_value("WIN_ASYNC_STARTUP_TIMEOUT", variables=task_vars) diff --git a/lib/ansible/galaxy/api.py b/lib/ansible/galaxy/api.py index 8dea8049..0d519980 100644 --- a/lib/ansible/galaxy/api.py +++ b/lib/ansible/galaxy/api.py @@ -11,12 +11,15 @@ import functools import hashlib import json import os +import socket import stat import tarfile import time import threading -from urllib.error import HTTPError +from http import HTTPStatus +from http.client import BadStatusLine, IncompleteRead +from urllib.error import HTTPError, URLError from urllib.parse import quote as urlquote, urlencode, urlparse, parse_qs, urljoin from ansible import constants as C @@ -34,10 +37,11 @@ from ansible.utils.path import makedirs_safe display = Display() _CACHE_LOCK = threading.Lock() COLLECTION_PAGE_SIZE = 100 -RETRY_HTTP_ERROR_CODES = [ # TODO: Allow user-configuration - 429, # Too Many Requests +RETRY_HTTP_ERROR_CODES = { # TODO: Allow user-configuration + HTTPStatus.TOO_MANY_REQUESTS, 520, # Galaxy rate limit error code (Cloudflare unknown error) -] + HTTPStatus.BAD_GATEWAY, # Common error from galaxy that may represent any number of transient backend issues +} def cache_lock(func): @@ -48,11 +52,24 @@ def cache_lock(func): return wrapped -def is_rate_limit_exception(exception): +def should_retry_error(exception): # Note: cloud.redhat.com masks rate limit errors with 403 (Forbidden) error codes. # Since 403 could reflect the actual problem (such as an expired token), we should # not retry by default. - return isinstance(exception, GalaxyError) and exception.http_code in RETRY_HTTP_ERROR_CODES + if isinstance(exception, GalaxyError) and exception.http_code in RETRY_HTTP_ERROR_CODES: + return True + + if isinstance(exception, AnsibleError) and (orig_exc := getattr(exception, 'orig_exc', None)): + # URLError is often a proxy for an underlying error, handle wrapped exceptions + if isinstance(orig_exc, URLError): + orig_exc = orig_exc.reason + + # Handle common URL related errors such as TimeoutError, and BadStatusLine + # Note: socket.timeout is only required for Py3.9 + if isinstance(orig_exc, (TimeoutError, BadStatusLine, IncompleteRead, socket.timeout)): + return True + + return False def g_connect(versions): @@ -327,7 +344,7 @@ class GalaxyAPI: @retry_with_delays_and_condition( backoff_iterator=generate_jittered_backoff(retries=6, delay_base=2, delay_threshold=40), - should_retry_error=is_rate_limit_exception + should_retry_error=should_retry_error ) def _call_galaxy(self, url, args=None, headers=None, method=None, auth_required=False, error_context_msg=None, cache=False, cache_key=None): @@ -385,7 +402,10 @@ class GalaxyAPI: except HTTPError as e: raise GalaxyError(e, error_context_msg) except Exception as e: - raise AnsibleError("Unknown error when attempting to call Galaxy at '%s': %s" % (url, to_native(e))) + raise AnsibleError( + "Unknown error when attempting to call Galaxy at '%s': %s" % (url, to_native(e)), + orig_exc=e + ) resp_data = to_text(resp.read(), errors='surrogate_or_strict') try: @@ -906,8 +926,7 @@ class GalaxyAPI: try: signatures = data["signatures"] except KeyError: - # Noisy since this is used by the dep resolver, so require more verbosity than Galaxy calls - display.vvvvvv(f"Server {self.api_server} has not signed {namespace}.{name}:{version}") + display.vvvv(f"Server {self.api_server} has not signed {namespace}.{name}:{version}") return [] else: return [signature_info["signature"] for signature_info in signatures] diff --git a/lib/ansible/galaxy/collection/__init__.py b/lib/ansible/galaxy/collection/__init__.py index 7a144c0d..23482665 100644 --- a/lib/ansible/galaxy/collection/__init__.py +++ b/lib/ansible/galaxy/collection/__init__.py @@ -767,6 +767,9 @@ def install_collections( "Skipping signature verification." ) + if concrete_coll_pin.type == 'galaxy': + concrete_coll_pin = concrete_coll_pin.with_signatures_repopulated() + try: install(concrete_coll_pin, output_path, artifacts_manager) except AnsibleError as err: @@ -911,7 +914,7 @@ def verify_collections( # NOTE: If there are no Galaxy server signatures, only user-provided signature URLs, # NOTE: those alone validate the MANIFEST.json and the remote collection is not downloaded. # NOTE: The remote MANIFEST.json is only used in verification if there are no signatures. - if not signatures and not collection.signature_sources: + if artifacts_manager.keyring is None or not signatures: api_proxy.get_collection_version_metadata( remote_collection, ) diff --git a/lib/ansible/galaxy/collection/concrete_artifact_manager.py b/lib/ansible/galaxy/collection/concrete_artifact_manager.py index 7c920b85..67d8e43f 100644 --- a/lib/ansible/galaxy/collection/concrete_artifact_manager.py +++ b/lib/ansible/galaxy/collection/concrete_artifact_manager.py @@ -27,9 +27,12 @@ if t.TYPE_CHECKING: from ansible.errors import AnsibleError from ansible.galaxy import get_collections_galaxy_meta_info +from ansible.galaxy.api import should_retry_error from ansible.galaxy.dependency_resolution.dataclasses import _GALAXY_YAML from ansible.galaxy.user_agent import user_agent from ansible.module_utils._text import to_bytes, to_native, to_text +from ansible.module_utils.api import retry_with_delays_and_condition +from ansible.module_utils.api import generate_jittered_backoff from ansible.module_utils.common.process import get_bin_path from ansible.module_utils.common._collections_compat import MutableMapping from ansible.module_utils.common.yaml import yaml_load @@ -160,17 +163,24 @@ class ConcreteArtifactsManager: token=token, ) # type: bytes except URLError as err: - raise_from( - AnsibleError( - 'Failed to download collection tar ' - "from '{coll_src!s}': {download_err!s}". - format( - coll_src=to_native(collection.src), - download_err=to_native(err), - ), + raise AnsibleError( + 'Failed to download collection tar ' + "from '{coll_src!s}': {download_err!s}". + format( + coll_src=to_native(collection.src), + download_err=to_native(err), ), - err, - ) + ) from err + except Exception as err: + raise AnsibleError( + 'Failed to download collection tar ' + "from '{coll_src!s}' due to the following unforeseen error: " + '{download_err!s}'. + format( + coll_src=to_native(collection.src), + download_err=to_native(err), + ), + ) from err else: display.vvv( "Collection '{coll!s}' obtained from " @@ -460,6 +470,10 @@ def _extract_collection_from_git(repo_url, coll_ver, b_path): # FIXME: use random subdirs while preserving the file names +@retry_with_delays_and_condition( + backoff_iterator=generate_jittered_backoff(retries=6, delay_base=2, delay_threshold=40), + should_retry_error=should_retry_error +) def _download_file(url, b_path, expected_hash, validate_certs, token=None, timeout=60): # type: (str, bytes, t.Optional[str], bool, GalaxyToken, int) -> bytes # ^ NOTE: used in download and verify_collections ^ @@ -478,13 +492,16 @@ def _download_file(url, b_path, expected_hash, validate_certs, token=None, timeo display.display("Downloading %s to %s" % (url, to_text(b_tarball_dir))) # NOTE: Galaxy redirects downloads to S3 which rejects the request # NOTE: if an Authorization header is attached so don't redirect it - resp = open_url( - to_native(url, errors='surrogate_or_strict'), - validate_certs=validate_certs, - headers=None if token is None else token.headers(), - unredirected_headers=['Authorization'], http_agent=user_agent(), - timeout=timeout - ) + try: + resp = open_url( + to_native(url, errors='surrogate_or_strict'), + validate_certs=validate_certs, + headers=None if token is None else token.headers(), + unredirected_headers=['Authorization'], http_agent=user_agent(), + timeout=timeout + ) + except Exception as err: + raise AnsibleError(to_native(err), orig_exc=err) with open(b_file_path, 'wb') as download_file: # type: t.BinaryIO actual_hash = _consume_file(resp, write_to=download_file) diff --git a/lib/ansible/galaxy/dependency_resolution/dataclasses.py b/lib/ansible/galaxy/dependency_resolution/dataclasses.py index 16fd6318..32acabdf 100644 --- a/lib/ansible/galaxy/dependency_resolution/dataclasses.py +++ b/lib/ansible/galaxy/dependency_resolution/dataclasses.py @@ -27,7 +27,7 @@ if t.TYPE_CHECKING: ) -from ansible.errors import AnsibleError +from ansible.errors import AnsibleError, AnsibleAssertionError from ansible.galaxy.api import GalaxyAPI from ansible.module_utils._text import to_bytes, to_native, to_text from ansible.module_utils.common.arg_spec import ArgumentSpecValidator @@ -166,6 +166,7 @@ def _is_concrete_artifact_pointer(tested_str): class _ComputedReqKindsMixin: + UNIQUE_ATTRS = ('fqcn', 'ver', 'src', 'type') def __init__(self, *args, **kwargs): if not self.may_have_offline_galaxy_info: @@ -180,6 +181,12 @@ class _ComputedReqKindsMixin: self.ver ) + def __hash__(self): + return hash(tuple(getattr(self, attr) for attr in _ComputedReqKindsMixin.UNIQUE_ATTRS)) + + def __eq__(self, candidate): + return hash(self) == hash(candidate) + @classmethod def from_dir_path_as_unknown( # type: ignore[misc] cls, # type: t.Type[Collection] @@ -571,3 +578,13 @@ class Candidate( def __init__(self, *args, **kwargs): super(Candidate, self).__init__() + + def with_signatures_repopulated(self): # type: (Candidate) -> Candidate + """Populate a new Candidate instance with Galaxy signatures. + :raises AnsibleAssertionError: If the supplied candidate is not sourced from a Galaxy-like index. + """ + if self.type != 'galaxy': + raise AnsibleAssertionError(f"Invalid collection type for {self!r}: unable to get signatures from a galaxy server.") + + signatures = self.src.get_collection_signatures(self.namespace, self.name, self.ver) + return self.__class__(self.fqcn, self.ver, self.src, self.type, frozenset([*self.signatures, *signatures])) diff --git a/lib/ansible/galaxy/dependency_resolution/providers.py b/lib/ansible/galaxy/dependency_resolution/providers.py index 817a1eb2..6ad1de84 100644 --- a/lib/ansible/galaxy/dependency_resolution/providers.py +++ b/lib/ansible/galaxy/dependency_resolution/providers.py @@ -28,8 +28,6 @@ from ansible.galaxy.dependency_resolution.versioning import ( from ansible.module_utils.six import string_types from ansible.utils.version import SemanticVersion, LooseVersion -from collections.abc import Set - try: from resolvelib import AbstractProvider from resolvelib import __version__ as resolvelib_version @@ -46,34 +44,6 @@ RESOLVELIB_UPPERBOUND = SemanticVersion("0.9.0") RESOLVELIB_VERSION = SemanticVersion.from_loose_version(LooseVersion(resolvelib_version)) -class PinnedCandidateRequests(Set): - """Custom set class to store Candidate objects. Excludes the 'signatures' attribute when determining if a Candidate instance is in the set.""" - CANDIDATE_ATTRS = ('fqcn', 'ver', 'src', 'type') - - def __init__(self, candidates): - self._candidates = set(candidates) - - def __iter__(self): - return iter(self._candidates) - - def __contains__(self, value): - if not isinstance(value, Candidate): - raise ValueError(f"Expected a Candidate object but got {value!r}") - for candidate in self._candidates: - # Compare Candidate attributes excluding "signatures" since it is - # unrelated to whether or not a matching Candidate is user-requested. - # Candidate objects in the set are not expected to have signatures. - for attr in PinnedCandidateRequests.CANDIDATE_ATTRS: - if getattr(value, attr) != getattr(candidate, attr): - break - else: - return True - return False - - def __len__(self): - return len(self._candidates) - - class CollectionDependencyProviderBase(AbstractProvider): """Delegate providing a requirement interface for the resolver.""" @@ -117,7 +87,7 @@ class CollectionDependencyProviderBase(AbstractProvider): Requirement.from_requirement_dict, art_mgr=concrete_artifacts_manager, ) - self._pinned_candidate_requests = PinnedCandidateRequests( + self._pinned_candidate_requests = set( # NOTE: User-provided signatures are supplemental, so signatures # NOTE: are not used to determine if a candidate is user-requested Candidate(req.fqcn, req.ver, req.src, req.type, None) @@ -392,7 +362,6 @@ class CollectionDependencyProviderBase(AbstractProvider): if not unsatisfied: if self._include_signatures: - signatures = src_server.get_collection_signatures(first_req.namespace, first_req.name, version) for extra_source in extra_signature_sources: signatures.append(get_signature_from_source(extra_source)) latest_matches.append( diff --git a/lib/ansible/module_utils/ansible_release.py b/lib/ansible/module_utils/ansible_release.py index 66a04b98..f59976b8 100644 --- a/lib/ansible/module_utils/ansible_release.py +++ b/lib/ansible/module_utils/ansible_release.py @@ -19,6 +19,6 @@ from __future__ import (absolute_import, division, print_function) __metaclass__ = type -__version__ = '2.14.3' +__version__ = '2.14.6' __author__ = 'Ansible, Inc.' __codename__ = "C'mon Everybody" diff --git a/lib/ansible/module_utils/api.py b/lib/ansible/module_utils/api.py index e780ec6b..2de8a4ef 100644 --- a/lib/ansible/module_utils/api.py +++ b/lib/ansible/module_utils/api.py @@ -26,11 +26,15 @@ The 'api' module provides the following common argument specs: from __future__ import (absolute_import, division, print_function) __metaclass__ = type +import copy import functools +import itertools import random import sys import time +import ansible.module_utils.compat.typing as t + def rate_limit_argument_spec(spec=None): """Creates an argument spec for working with rate limiting""" @@ -141,6 +145,15 @@ def retry_with_delays_and_condition(backoff_iterator, should_retry_error=None): :param backoff_iterator: An iterable of delays in seconds. :param should_retry_error: A callable that takes an exception of the decorated function and decides whether to retry or not (returns a bool). """ + def _emit_isolated_iterator_copies(original_iterator): # type: (t.Iterable[t.Any]) -> t.Generator + # Ref: https://stackoverflow.com/a/30232619/595220 + _copiable_iterator, _first_iterator_copy = itertools.tee(original_iterator) + yield _first_iterator_copy + while True: + yield copy.copy(_copiable_iterator) + backoff_iterator_generator = _emit_isolated_iterator_copies(backoff_iterator) + del backoff_iterator # prevent accidental use elsewhere + if should_retry_error is None: should_retry_error = retry_never @@ -152,7 +165,7 @@ def retry_with_delays_and_condition(backoff_iterator, should_retry_error=None): """ call_retryable_function = functools.partial(function, *args, **kwargs) - for delay in backoff_iterator: + for delay in next(backoff_iterator_generator): try: return call_retryable_function() except Exception as e: diff --git a/lib/ansible/module_utils/csharp/Ansible.Basic.cs b/lib/ansible/module_utils/csharp/Ansible.Basic.cs index c68281ef..97f5f3e2 100644 --- a/lib/ansible/module_utils/csharp/Ansible.Basic.cs +++ b/lib/ansible/module_utils/csharp/Ansible.Basic.cs @@ -1,6 +1,8 @@ +using Microsoft.Win32.SafeHandles; using System; using System.Collections; using System.Collections.Generic; +using System.ComponentModel; using System.Diagnostics; using System.IO; using System.Linq; @@ -176,7 +178,8 @@ namespace Ansible.Basic } string dateTime = DateTime.Now.ToFileTime().ToString(); - string dirName = String.Format("ansible-moduletmp-{0}-{1}", dateTime, new Random().Next(0, int.MaxValue)); + string dirName = String.Format("ansible-moduletmp-{0}-{1}-{2}", dateTime, System.Diagnostics.Process.GetCurrentProcess().Id, + new Random().Next(0, int.MaxValue)); string newTmpdir = Path.Combine(baseDir, dirName); #if CORECLR DirectoryInfo tmpdirInfo = Directory.CreateDirectory(newTmpdir); @@ -309,8 +312,8 @@ namespace Ansible.Basic public void ExitJson() { - WriteLine(GetFormattedResults(Result)); CleanupFiles(null, null); + WriteLine(GetFormattedResults(Result)); Exit(0); } @@ -337,8 +340,8 @@ namespace Ansible.Basic Result["exception"] = exception.ToString(); } - WriteLine(GetFormattedResults(Result)); CleanupFiles(null, null); + WriteLine(GetFormattedResults(Result)); Exit(1); } @@ -1444,10 +1447,22 @@ namespace Ansible.Basic { foreach (string path in cleanupFiles) { - if (File.Exists(path)) - File.Delete(path); - else if (Directory.Exists(path)) - Directory.Delete(path, true); + try + { +#if WINDOWS + FileCleaner.Delete(path); +#else + if (File.Exists(path)) + File.Delete(path); + else if (Directory.Exists(path)) + Directory.Delete(path, true); +#endif + } + catch (Exception e) + { + Warn(string.Format("Failure cleaning temp path '{0}': {1} {2}", + path, e.GetType().Name, e.Message)); + } } cleanupFiles = new List(); } @@ -1486,4 +1501,247 @@ namespace Ansible.Basic Console.WriteLine(line); } } + +#if WINDOWS + // Windows is tricky as AVs and other software might still + // have an open handle to files causing a failure. Use a + // custom deletion mechanism to remove the files/dirs. + // https://github.com/ansible/ansible/pull/80247 + internal static class FileCleaner + { + private const int FileDispositionInformation = 13; + private const int FileDispositionInformationEx = 64; + + private const int ERROR_INVALID_PARAMETER = 0x00000057; + private const int ERROR_DIR_NOT_EMPTY = 0x00000091; + + private static bool? _supportsPosixDelete = null; + + [Flags()] + public enum DispositionFlags : uint + { + FILE_DISPOSITION_DO_NOT_DELETE = 0x00000000, + FILE_DISPOSITION_DELETE = 0x00000001, + FILE_DISPOSITION_POSIX_SEMANTICS = 0x00000002, + FILE_DISPOSITION_FORCE_IMAGE_SECTION_CHECK = 0x00000004, + FILE_DISPOSITION_ON_CLOSE = 0x00000008, + FILE_DISPOSITION_IGNORE_READONLY_ATTRIBUTE = 0x00000010, + } + + [Flags()] + public enum FileFlags : uint + { + FILE_FLAG_OPEN_NO_RECALL = 0x00100000, + FILE_FLAG_OPEN_REPARSE_POINT = 0x00200000, + FILE_FLAG_SESSION_AWARE = 0x00800000, + FILE_FLAG_POSIX_SEMANTICS = 0x01000000, + FILE_FLAG_BACKUP_SEMANTICS = 0x02000000, + FILE_FLAG_DELETE_ON_CLOSE = 0x04000000, + FILE_FLAG_SEQUENTIAL_SCAN = 0x08000000, + FILE_FLAG_RANDOM_ACCESS = 0x10000000, + FILE_FLAG_NO_BUFFERING = 0x20000000, + FILE_FLAG_OVERLAPPED = 0x40000000, + FILE_FLAG_WRITE_THROUGH = 0x80000000, + } + + [DllImport("Kernel32.dll", CharSet = CharSet.Unicode, SetLastError = true)] + private static extern SafeFileHandle CreateFileW( + [MarshalAs(UnmanagedType.LPWStr)] string lpFileName, + FileSystemRights dwDesiredAccess, + FileShare dwShareMode, + IntPtr lpSecurityAttributes, + FileMode dwCreationDisposition, + uint dwFlagsAndAttributes, + IntPtr hTemplateFile); + + private static SafeFileHandle CreateFile(string path, FileSystemRights access, FileShare share, FileMode mode, + FileAttributes attributes, FileFlags flags) + { + uint flagsAndAttributes = (uint)attributes | (uint)flags; + SafeFileHandle handle = CreateFileW(path, access, share, IntPtr.Zero, mode, flagsAndAttributes, + IntPtr.Zero); + if (handle.IsInvalid) + { + int errCode = Marshal.GetLastWin32Error(); + string msg = string.Format("CreateFileW({0}) failed 0x{1:X8}: {2}", + path, errCode, new Win32Exception(errCode).Message); + throw new Win32Exception(errCode, msg); + } + + return handle; + } + + [DllImport("Ntdll.dll")] + private static extern int NtSetInformationFile( + SafeFileHandle FileHandle, + out IntPtr IoStatusBlock, + ref int FileInformation, + int Length, + int FileInformationClass); + + [DllImport("Ntdll.dll")] + private static extern int RtlNtStatusToDosError( + int Status); + + public static void Delete(string path) + { + if (File.Exists(path)) + { + DeleteEntry(path, FileAttributes.ReadOnly); + } + else if (Directory.Exists(path)) + { + Queue dirQueue = new Queue(); + dirQueue.Enqueue(new DirectoryInfo(path)); + bool nonEmptyDirs = false; + HashSet processedDirs = new HashSet(); + + while (dirQueue.Count > 0) + { + DirectoryInfo currentDir = dirQueue.Dequeue(); + + bool deleteDir = true; + if (processedDirs.Add(currentDir.FullName)) + { + foreach (FileSystemInfo entry in currentDir.EnumerateFileSystemInfos()) + { + // Tries to delete each entry. Failures are ignored + // as they will be picked up when the dir is + // deleted and not empty. + if (entry is DirectoryInfo) + { + if ((entry.Attributes & FileAttributes.ReparsePoint) != 0) + { + // If it's a reparse point, just delete it directly. + DeleteEntry(entry.FullName, entry.Attributes, ignoreFailure: true); + } + else + { + // Add the dir to the queue to delete and it will be processed next round. + dirQueue.Enqueue((DirectoryInfo)entry); + deleteDir = false; + } + } + else + { + DeleteEntry(entry.FullName, entry.Attributes, ignoreFailure: true); + } + } + } + + if (deleteDir) + { + try + { + DeleteEntry(currentDir.FullName, FileAttributes.Directory); + } + catch (Win32Exception e) + { + if (e.NativeErrorCode == ERROR_DIR_NOT_EMPTY) + { + nonEmptyDirs = true; + } + else + { + throw; + } + } + } + else + { + dirQueue.Enqueue(currentDir); + } + } + + if (nonEmptyDirs) + { + throw new IOException("Directory contains files still open by other processes"); + } + } + } + + private static void DeleteEntry(string path, FileAttributes attr, bool ignoreFailure = false) + { + try + { + if ((attr & FileAttributes.ReadOnly) != 0) + { + // Windows does not allow files set with ReadOnly to be + // deleted. Pre-emptively unset the attribute. + // FILE_DISPOSITION_IGNORE_READONLY_ATTRIBUTE is quite new, + // look at using that flag with POSIX delete once Server 2019 + // is the baseline. + File.SetAttributes(path, FileAttributes.Normal); + } + + // REPARSE - Only touch the symlink itself and not the target + // BACKUP - Needed for dir handles, bypasses access checks for admins + // DELETE_ON_CLOSE is not used as it interferes with the POSIX delete + FileFlags flags = FileFlags.FILE_FLAG_OPEN_REPARSE_POINT | + FileFlags.FILE_FLAG_BACKUP_SEMANTICS; + + using (SafeFileHandle fileHandle = CreateFile(path, FileSystemRights.Delete, + FileShare.ReadWrite | FileShare.Delete, FileMode.Open, FileAttributes.Normal, flags)) + { + if (_supportsPosixDelete == null || _supportsPosixDelete == true) + { + // A POSIX delete will delete the filesystem entry even if + // it's still opened by another process so favour that if + // available. + DispositionFlags deleteFlags = DispositionFlags.FILE_DISPOSITION_DELETE | + DispositionFlags.FILE_DISPOSITION_POSIX_SEMANTICS; + + SetInformationFile(fileHandle, FileDispositionInformationEx, (int)deleteFlags); + if (_supportsPosixDelete == true) + { + return; + } + } + + // FileDispositionInformation takes in a struct with only a BOOLEAN value. + // Using an int will also do the same thing to set that flag to true. + SetInformationFile(fileHandle, FileDispositionInformation, Int32.MaxValue); + } + } + catch + { + if (!ignoreFailure) + { + throw; + } + } + } + + private static void SetInformationFile(SafeFileHandle handle, int infoClass, int value) + { + IntPtr ioStatusBlock = IntPtr.Zero; + + int ntStatus = NtSetInformationFile(handle, out ioStatusBlock, ref value, + Marshal.SizeOf(typeof(int)), infoClass); + + if (ntStatus != 0) + { + int errCode = RtlNtStatusToDosError(ntStatus); + + // The POSIX delete was added in Server 2016 (Win 10 14393/Redstone 1) + // Mark this flag so we don't try again. + if (infoClass == FileDispositionInformationEx && _supportsPosixDelete == null && + errCode == ERROR_INVALID_PARAMETER) + { + _supportsPosixDelete = false; + return; + } + + string msg = string.Format("NtSetInformationFile() failed 0x{0:X8}: {1}", + errCode, new Win32Exception(errCode).Message); + throw new Win32Exception(errCode, msg); + } + + if (infoClass == FileDispositionInformationEx) + { + _supportsPosixDelete = true; + } + } + } +#endif } diff --git a/lib/ansible/modules/copy.py b/lib/ansible/modules/copy.py index 37115faf..9bbc02f7 100644 --- a/lib/ansible/modules/copy.py +++ b/lib/ansible/modules/copy.py @@ -616,6 +616,8 @@ def main(): e.result['msg'] += ' Could not copy to {0}'.format(dest) module.fail_json(**e.results) + if module.check_mode: + module.exit_json(msg='dest directory %s would be created' % dirname, changed=True, src=src) os.makedirs(b_dirname) directory_args = module.load_file_common_arguments(module.params) directory_mode = module.params["directory_mode"] @@ -814,9 +816,8 @@ def main(): if backup_file: res_args['backup_file'] = backup_file - if not module.check_mode: - file_args = module.load_file_common_arguments(module.params, path=dest) - res_args['changed'] = module.set_fs_attributes_if_different(file_args, res_args['changed']) + file_args = module.load_file_common_arguments(module.params, path=dest) + res_args['changed'] = module.set_fs_attributes_if_different(file_args, res_args['changed']) module.exit_json(**res_args) diff --git a/lib/ansible/modules/package_facts.py b/lib/ansible/modules/package_facts.py index 57c1d3ea..ea3c6999 100644 --- a/lib/ansible/modules/package_facts.py +++ b/lib/ansible/modules/package_facts.py @@ -37,6 +37,8 @@ version_added: "2.5" requirements: - For 'portage' support it requires the C(qlist) utility, which is part of 'app-portage/portage-utils'. - For Debian-based systems C(python-apt) package must be installed on targeted hosts. + - For SUSE-based systems C(python3-rpm) package must be installed on targeted hosts. + This package is required because SUSE does not include RPM Python bindings by default. author: - Matthew Jones (@matburt) - Brian Coca (@bcoca) diff --git a/lib/ansible/modules/uri.py b/lib/ansible/modules/uri.py index f68b86a5..7919b9b2 100644 --- a/lib/ansible/modules/uri.py +++ b/lib/ansible/modules/uri.py @@ -94,9 +94,16 @@ options: force_basic_auth: description: - Force the sending of the Basic authentication header upon initial request. - - The library used by the uri module only sends authentication information when a webservice - responds to an initial request with a 401 status. Since some basic auth services do not properly - send a 401, logins will fail. + - When this setting is C(false), this module will first try an unauthenticated request, and when the server replies + with an C(HTTP 401) error, it will submit the Basic authentication header. + - When this setting is C(true), this module will immediately send a Basic authentication header on the first + request. + - "Use this setting in any of the following scenarios:" + - You know the webservice endpoint always requires HTTP Basic authentication, and you want to speed up your + requests by eliminating the first roundtrip. + - The web service does not properly send an HTTP 401 error to your client, so Ansible's HTTP library will not + properly respond with HTTP credentials, and logins will fail. + - The webservice bans or rate-limits clients that cause any HTTP 401 errors. type: bool default: no follow_redirects: diff --git a/lib/ansible/playbook/attribute.py b/lib/ansible/playbook/attribute.py index b28405d2..692aa9a7 100644 --- a/lib/ansible/playbook/attribute.py +++ b/lib/ansible/playbook/attribute.py @@ -178,7 +178,6 @@ class FieldAttribute(Attribute): value = self.default if callable(value): value = value() - setattr(obj, f'_{self.name}', value) return value diff --git a/lib/ansible/playbook/handler.py b/lib/ansible/playbook/handler.py index 675eecb3..68970b4f 100644 --- a/lib/ansible/playbook/handler.py +++ b/lib/ansible/playbook/handler.py @@ -19,14 +19,14 @@ from __future__ import (absolute_import, division, print_function) __metaclass__ = type -from ansible.playbook.attribute import FieldAttribute +from ansible.playbook.attribute import NonInheritableFieldAttribute from ansible.playbook.task import Task from ansible.module_utils.six import string_types class Handler(Task): - listen = FieldAttribute(isa='list', default=list, listof=string_types, static=True) + listen = NonInheritableFieldAttribute(isa='list', default=list, listof=string_types, static=True) def __init__(self, block=None, role=None, task_include=None): self.notified_hosts = [] diff --git a/lib/ansible/playbook/helpers.py b/lib/ansible/playbook/helpers.py index 38e32ef9..ff5042a7 100644 --- a/lib/ansible/playbook/helpers.py +++ b/lib/ansible/playbook/helpers.py @@ -308,6 +308,7 @@ def load_list_of_tasks(ds, play, block=None, role=None, task_include=None, use_h # template the role name now, if needed all_vars = variable_manager.get_vars(play=play, task=ir) templar = Templar(loader=loader, variables=all_vars) + ir.post_validate(templar=templar) ir._role_name = templar.template(ir._role_name) # uses compiled list from object diff --git a/lib/ansible/playbook/included_file.py b/lib/ansible/playbook/included_file.py index 409eaec7..b833077c 100644 --- a/lib/ansible/playbook/included_file.py +++ b/lib/ansible/playbook/included_file.py @@ -187,6 +187,7 @@ class IncludedFile: role_name = templar.template(role_name) new_task = original_task.copy() + new_task.post_validate(templar=templar) new_task._role_name = role_name for from_arg in new_task.FROM_ARGS: if from_arg in include_args: diff --git a/lib/ansible/playbook/loop_control.py b/lib/ansible/playbook/loop_control.py index 2f561665..d69e14fb 100644 --- a/lib/ansible/playbook/loop_control.py +++ b/lib/ansible/playbook/loop_control.py @@ -19,18 +19,18 @@ from __future__ import (absolute_import, division, print_function) __metaclass__ = type -from ansible.playbook.attribute import FieldAttribute +from ansible.playbook.attribute import NonInheritableFieldAttribute from ansible.playbook.base import FieldAttributeBase class LoopControl(FieldAttributeBase): - loop_var = FieldAttribute(isa='str', default='item', always_post_validate=True) - index_var = FieldAttribute(isa='str', always_post_validate=True) - label = FieldAttribute(isa='str') - pause = FieldAttribute(isa='float', default=0, always_post_validate=True) - extended = FieldAttribute(isa='bool', always_post_validate=True) - extended_allitems = FieldAttribute(isa='bool', default=True, always_post_validate=True) + loop_var = NonInheritableFieldAttribute(isa='str', default='item', always_post_validate=True) + index_var = NonInheritableFieldAttribute(isa='str', always_post_validate=True) + label = NonInheritableFieldAttribute(isa='str') + pause = NonInheritableFieldAttribute(isa='float', default=0, always_post_validate=True) + extended = NonInheritableFieldAttribute(isa='bool', always_post_validate=True) + extended_allitems = NonInheritableFieldAttribute(isa='bool', default=True, always_post_validate=True) def __init__(self): super(LoopControl, self).__init__() diff --git a/lib/ansible/playbook/play.py b/lib/ansible/playbook/play.py index 23bb36b2..3b763b9e 100644 --- a/lib/ansible/playbook/play.py +++ b/lib/ansible/playbook/play.py @@ -25,7 +25,7 @@ from ansible.errors import AnsibleParserError, AnsibleAssertionError from ansible.module_utils._text import to_native from ansible.module_utils.common.collections import is_sequence from ansible.module_utils.six import binary_type, string_types, text_type -from ansible.playbook.attribute import FieldAttribute +from ansible.playbook.attribute import NonInheritableFieldAttribute from ansible.playbook.base import Base from ansible.playbook.block import Block from ansible.playbook.collectionsearch import CollectionSearch @@ -55,35 +55,35 @@ class Play(Base, Taggable, CollectionSearch): """ # ================================================================================= - hosts = FieldAttribute(isa='list', required=True, listof=string_types, always_post_validate=True, priority=-2) + hosts = NonInheritableFieldAttribute(isa='list', required=True, listof=string_types, always_post_validate=True, priority=-2) # Facts - gather_facts = FieldAttribute(isa='bool', default=None, always_post_validate=True) + gather_facts = NonInheritableFieldAttribute(isa='bool', default=None, always_post_validate=True) # defaults to be deprecated, should be 'None' in future - gather_subset = FieldAttribute(isa='list', default=(lambda: C.DEFAULT_GATHER_SUBSET), listof=string_types, always_post_validate=True) - gather_timeout = FieldAttribute(isa='int', default=C.DEFAULT_GATHER_TIMEOUT, always_post_validate=True) - fact_path = FieldAttribute(isa='string', default=C.DEFAULT_FACT_PATH) + gather_subset = NonInheritableFieldAttribute(isa='list', default=(lambda: C.DEFAULT_GATHER_SUBSET), listof=string_types, always_post_validate=True) + gather_timeout = NonInheritableFieldAttribute(isa='int', default=C.DEFAULT_GATHER_TIMEOUT, always_post_validate=True) + fact_path = NonInheritableFieldAttribute(isa='string', default=C.DEFAULT_FACT_PATH) # Variable Attributes - vars_files = FieldAttribute(isa='list', default=list, priority=99) - vars_prompt = FieldAttribute(isa='list', default=list, always_post_validate=False) + vars_files = NonInheritableFieldAttribute(isa='list', default=list, priority=99) + vars_prompt = NonInheritableFieldAttribute(isa='list', default=list, always_post_validate=False) # Role Attributes - roles = FieldAttribute(isa='list', default=list, priority=90) + roles = NonInheritableFieldAttribute(isa='list', default=list, priority=90) # Block (Task) Lists Attributes - handlers = FieldAttribute(isa='list', default=list, priority=-1) - pre_tasks = FieldAttribute(isa='list', default=list, priority=-1) - post_tasks = FieldAttribute(isa='list', default=list, priority=-1) - tasks = FieldAttribute(isa='list', default=list, priority=-1) + handlers = NonInheritableFieldAttribute(isa='list', default=list, priority=-1) + pre_tasks = NonInheritableFieldAttribute(isa='list', default=list, priority=-1) + post_tasks = NonInheritableFieldAttribute(isa='list', default=list, priority=-1) + tasks = NonInheritableFieldAttribute(isa='list', default=list, priority=-1) # Flag/Setting Attributes - force_handlers = FieldAttribute(isa='bool', default=context.cliargs_deferred_get('force_handlers'), always_post_validate=True) - max_fail_percentage = FieldAttribute(isa='percent', always_post_validate=True) - serial = FieldAttribute(isa='list', default=list, always_post_validate=True) - strategy = FieldAttribute(isa='string', default=C.DEFAULT_STRATEGY, always_post_validate=True) - order = FieldAttribute(isa='string', always_post_validate=True) + force_handlers = NonInheritableFieldAttribute(isa='bool', default=context.cliargs_deferred_get('force_handlers'), always_post_validate=True) + max_fail_percentage = NonInheritableFieldAttribute(isa='percent', always_post_validate=True) + serial = NonInheritableFieldAttribute(isa='list', default=list, always_post_validate=True) + strategy = NonInheritableFieldAttribute(isa='string', default=C.DEFAULT_STRATEGY, always_post_validate=True) + order = NonInheritableFieldAttribute(isa='string', always_post_validate=True) # ================================================================================= diff --git a/lib/ansible/playbook/playbook_include.py b/lib/ansible/playbook/playbook_include.py index 03210ea3..8e3116f4 100644 --- a/lib/ansible/playbook/playbook_include.py +++ b/lib/ansible/playbook/playbook_include.py @@ -27,7 +27,7 @@ from ansible.module_utils._text import to_bytes from ansible.module_utils.six import string_types from ansible.parsing.splitter import split_args, parse_kv from ansible.parsing.yaml.objects import AnsibleBaseYAMLObject, AnsibleMapping -from ansible.playbook.attribute import FieldAttribute +from ansible.playbook.attribute import NonInheritableFieldAttribute from ansible.playbook.base import Base from ansible.playbook.conditional import Conditional from ansible.playbook.taggable import Taggable @@ -41,8 +41,8 @@ display = Display() class PlaybookInclude(Base, Conditional, Taggable): - import_playbook = FieldAttribute(isa='string') - vars_val = FieldAttribute(isa='dict', default=dict, alias='vars') + import_playbook = NonInheritableFieldAttribute(isa='string') + vars_val = NonInheritableFieldAttribute(isa='dict', default=dict, alias='vars') @staticmethod def load(data, basedir, variable_manager=None, loader=None): diff --git a/lib/ansible/playbook/role/definition.py b/lib/ansible/playbook/role/definition.py index b27a2317..f7ca3a85 100644 --- a/lib/ansible/playbook/role/definition.py +++ b/lib/ansible/playbook/role/definition.py @@ -25,7 +25,7 @@ from ansible import constants as C from ansible.errors import AnsibleError, AnsibleAssertionError from ansible.module_utils.six import string_types from ansible.parsing.yaml.objects import AnsibleBaseYAMLObject, AnsibleMapping -from ansible.playbook.attribute import FieldAttribute +from ansible.playbook.attribute import NonInheritableFieldAttribute from ansible.playbook.base import Base from ansible.playbook.collectionsearch import CollectionSearch from ansible.playbook.conditional import Conditional @@ -43,7 +43,7 @@ display = Display() class RoleDefinition(Base, Conditional, Taggable, CollectionSearch): - role = FieldAttribute(isa='string') + role = NonInheritableFieldAttribute(isa='string') def __init__(self, play=None, role_basedir=None, variable_manager=None, loader=None, collection_list=None): diff --git a/lib/ansible/playbook/role/metadata.py b/lib/ansible/playbook/role/metadata.py index 275ee548..a4dbcf7e 100644 --- a/lib/ansible/playbook/role/metadata.py +++ b/lib/ansible/playbook/role/metadata.py @@ -24,7 +24,7 @@ import os from ansible.errors import AnsibleParserError, AnsibleError from ansible.module_utils._text import to_native from ansible.module_utils.six import string_types -from ansible.playbook.attribute import FieldAttribute +from ansible.playbook.attribute import NonInheritableFieldAttribute from ansible.playbook.base import Base from ansible.playbook.collectionsearch import CollectionSearch from ansible.playbook.helpers import load_list_of_roles @@ -39,10 +39,10 @@ class RoleMetadata(Base, CollectionSearch): within each Role (meta/main.yml). ''' - allow_duplicates = FieldAttribute(isa='bool', default=False) - dependencies = FieldAttribute(isa='list', default=list) - galaxy_info = FieldAttribute(isa='GalaxyInfo') - argument_specs = FieldAttribute(isa='dict', default=dict) + allow_duplicates = NonInheritableFieldAttribute(isa='bool', default=False) + dependencies = NonInheritableFieldAttribute(isa='list', default=list) + galaxy_info = NonInheritableFieldAttribute(isa='GalaxyInfo') + argument_specs = NonInheritableFieldAttribute(isa='dict', default=dict) def __init__(self, owner=None): self._owner = owner diff --git a/lib/ansible/playbook/role_include.py b/lib/ansible/playbook/role_include.py index 39460372..75d26fb8 100644 --- a/lib/ansible/playbook/role_include.py +++ b/lib/ansible/playbook/role_include.py @@ -22,7 +22,7 @@ from os.path import basename import ansible.constants as C from ansible.errors import AnsibleParserError -from ansible.playbook.attribute import FieldAttribute +from ansible.playbook.attribute import NonInheritableFieldAttribute from ansible.playbook.block import Block from ansible.playbook.task_include import TaskInclude from ansible.playbook.role import Role @@ -52,9 +52,9 @@ class IncludeRole(TaskInclude): # ATTRIBUTES # private as this is a 'module options' vs a task property - allow_duplicates = FieldAttribute(isa='bool', default=True, private=True) - public = FieldAttribute(isa='bool', default=False, private=True) - rolespec_validate = FieldAttribute(isa='bool', default=True) + allow_duplicates = NonInheritableFieldAttribute(isa='bool', default=True, private=True, always_post_validate=True) + public = NonInheritableFieldAttribute(isa='bool', default=False, private=True, always_post_validate=True) + rolespec_validate = NonInheritableFieldAttribute(isa='bool', default=True, private=True, always_post_validate=True) def __init__(self, block=None, role=None, task_include=None): diff --git a/lib/ansible/playbook/task.py b/lib/ansible/playbook/task.py index 6a9136d2..ba35fcf0 100644 --- a/lib/ansible/playbook/task.py +++ b/lib/ansible/playbook/task.py @@ -66,22 +66,22 @@ class Task(Base, Conditional, Taggable, CollectionSearch): # inheritance is only triggered if the 'current value' is Sentinel, # default can be set at play/top level object and inheritance will take it's course. - args = FieldAttribute(isa='dict', default=dict) - action = FieldAttribute(isa='string') + args = NonInheritableFieldAttribute(isa='dict', default=dict) + action = NonInheritableFieldAttribute(isa='string') - async_val = FieldAttribute(isa='int', default=0, alias='async') - changed_when = FieldAttribute(isa='list', default=list) - delay = FieldAttribute(isa='int', default=5) + async_val = NonInheritableFieldAttribute(isa='int', default=0, alias='async') + changed_when = NonInheritableFieldAttribute(isa='list', default=list) + delay = NonInheritableFieldAttribute(isa='int', default=5) delegate_to = FieldAttribute(isa='string') delegate_facts = FieldAttribute(isa='bool') - failed_when = FieldAttribute(isa='list', default=list) - loop = FieldAttribute() + failed_when = NonInheritableFieldAttribute(isa='list', default=list) + loop = NonInheritableFieldAttribute() loop_control = NonInheritableFieldAttribute(isa='class', class_type=LoopControl, default=LoopControl) notify = FieldAttribute(isa='list') - poll = FieldAttribute(isa='int', default=C.DEFAULT_POLL_INTERVAL) - register = FieldAttribute(isa='string', static=True) - retries = FieldAttribute(isa='int', default=3) - until = FieldAttribute(isa='list', default=list) + poll = NonInheritableFieldAttribute(isa='int', default=C.DEFAULT_POLL_INTERVAL) + register = NonInheritableFieldAttribute(isa='string', static=True) + retries = NonInheritableFieldAttribute(isa='int', default=3) + until = NonInheritableFieldAttribute(isa='list', default=list) # deprecated, used to be loop and loop_args but loop has been repurposed loop_with = NonInheritableFieldAttribute(isa='string', private=True) diff --git a/lib/ansible/plugins/action/__init__.py b/lib/ansible/plugins/action/__init__.py index d199207c..436fb65a 100644 --- a/lib/ansible/plugins/action/__init__.py +++ b/lib/ansible/plugins/action/__init__.py @@ -1125,7 +1125,7 @@ class ActionBase(ABC): remote_files.append(remote_async_module_path) async_limit = self._task.async_val - async_jid = str(random.randint(0, 999999999999)) + async_jid = f'j{random.randint(0, 999999999999)}' # call the interpreter for async_wrapper directly # this permits use of a script for an interpreter on non-Linux platforms diff --git a/lib/ansible/plugins/filter/basename.yml b/lib/ansible/plugins/filter/basename.yml index 4e868df8..b6e31d23 100644 --- a/lib/ansible/plugins/filter/basename.yml +++ b/lib/ansible/plugins/filter/basename.yml @@ -5,6 +5,8 @@ DOCUMENTATION: short_description: get a path's base name description: - Returns the last name component of a path, what is left in the string that is not 'dirname'. + notes: + - The result of this filter is different from the Unix basename program; where basename for C(/foo/bar/) returns C(bar), the basename filter returns an empty string (C('')). options: _input: description: A path. @@ -15,7 +17,7 @@ DOCUMENTATION: plugin: ansible.builtin.dirname EXAMPLES: | - # To get the last name of a file path, like 'foo.txt' out of '/etc/asdf/foo.txt' + # To get the last name of a file path, like 'foo.txt' out of '/etc/asdf/foo.txt'. {{ mypath | basename }} RETURN: diff --git a/lib/ansible/plugins/filter/combine.yml b/lib/ansible/plugins/filter/combine.yml index 86788f31..4787b447 100644 --- a/lib/ansible/plugins/filter/combine.yml +++ b/lib/ansible/plugins/filter/combine.yml @@ -34,9 +34,14 @@ DOCUMENTATION: EXAMPLES: | # ab => {'a':1, 'b':3, 'c': 4} - ab: {{ {'a':1, 'b':2} | combine({'b':3, 'c':4}) }} + ab: {{ {'a':1, 'b':2} | ansible.builtin.combine({'b':3, 'c':4}) }} - many: "{{ dict1 | combine(dict2, dict3, dict4) }}" + many: "{{ dict1 | ansible.builtin.combine(dict2, dict3, dict4) }}" + + # defaults => {'a':{'b':3, 'c':4}, 'd': 5} + # customization => {'a':{'c':20}} + # final => {'a':{'b':3, 'c':20}, 'd': 5} + final: "{{ defaults | ansible.builtin.combine(customization, recursive=true) }}" RETURN: _value: diff --git a/lib/ansible/plugins/filter/dirname.yml b/lib/ansible/plugins/filter/dirname.yml index 52f7d5d4..4b8b0f7b 100644 --- a/lib/ansible/plugins/filter/dirname.yml +++ b/lib/ansible/plugins/filter/dirname.yml @@ -5,6 +5,8 @@ DOCUMENTATION: short_description: get a path's directory name description: - Returns the 'head' component of a path, basically everything that is not the 'basename'. + notes: + - The result of this filter is different from the Unix dirname program; where dirname for C(/foo/bar/) returns C(/foo), the dirname filter returns the full path (C(/foo/bar/)). options: _input: description: A path. @@ -15,7 +17,7 @@ DOCUMENTATION: plugin_type: filter EXAMPLES: | - # To get the dir name of a file path, like '/etc/asdf' out of '/etc/asdf/foo.txt' + # To get the dir name of a file path, like '/etc/asdf' out of '/etc/asdf/foo.txt'. {{ mypath | dirname }} RETURN: diff --git a/lib/ansible/plugins/filter/subelements.yml b/lib/ansible/plugins/filter/subelements.yml index a2d1a940..818237e9 100644 --- a/lib/ansible/plugins/filter/subelements.yml +++ b/lib/ansible/plugins/filter/subelements.yml @@ -1,7 +1,7 @@ DOCUMENTATION: name: subelements version_added: "2.7" - short_description: retuns a product of a list and it's elements + short_description: returns a product of a list and its elements positional: _input, _subelement, skip_missing description: - This produces a product of an object and the subelement values of that object, similar to the subelements lookup. This lets you specify individual subelements to use in a template I(_input). diff --git a/lib/ansible/plugins/filter/unvault.yml b/lib/ansible/plugins/filter/unvault.yml index 96a82ca8..7f91180a 100644 --- a/lib/ansible/plugins/filter/unvault.yml +++ b/lib/ansible/plugins/filter/unvault.yml @@ -28,7 +28,7 @@ EXAMPLES: | - name: save templated unvaulted data template: src=dump_template_data.j2 dest=/some/key/clear.txt vars: - template_data: '{{ secretdata|uvault(vaultsecret) }}' + template_data: '{{ secretdata|unvault(vaultsecret) }}' RETURN: _value: diff --git a/lib/ansible/plugins/lookup/password.py b/lib/ansible/plugins/lookup/password.py index 06ea8b36..b08845a7 100644 --- a/lib/ansible/plugins/lookup/password.py +++ b/lib/ansible/plugins/lookup/password.py @@ -86,30 +86,30 @@ EXAMPLES = """ - name: create a mysql user with a random password community.mysql.mysql_user: name: "{{ client }}" - password: "{{ lookup('ansible.builtin.password', 'credentials/' + client + '/' + tier + '/' + role + '/mysqlpassword length=15') }}" + password: "{{ lookup('ansible.builtin.password', 'credentials/' + client + '/' + tier + '/' + role + '/mysqlpassword', length=15) }}" priv: "{{ client }}_{{ tier }}_{{ role }}.*:ALL" - name: create a mysql user with a random password using only ascii letters community.mysql.mysql_user: name: "{{ client }}" - password: "{{ lookup('ansible.builtin.password', '/tmp/passwordfile chars=ascii_letters') }}" + password: "{{ lookup('ansible.builtin.password', '/tmp/passwordfile', chars=['ascii_letters']) }}" priv: '{{ client }}_{{ tier }}_{{ role }}.*:ALL' - name: create a mysql user with an 8 character random password using only digits community.mysql.mysql_user: name: "{{ client }}" - password: "{{ lookup('ansible.builtin.password', '/tmp/passwordfile length=8 chars=digits') }}" + password: "{{ lookup('ansible.builtin.password', '/tmp/passwordfile', length=8, chars=['digits']) }}" priv: "{{ client }}_{{ tier }}_{{ role }}.*:ALL" - name: create a mysql user with a random password using many different char sets community.mysql.mysql_user: name: "{{ client }}" - password: "{{ lookup('ansible.builtin.password', '/tmp/passwordfile chars=ascii_letters,digits,punctuation') }}" + password: "{{ lookup('ansible.builtin.password', '/tmp/passwordfile', chars=['ascii_letters', 'digits', 'punctuation']) }}" priv: "{{ client }}_{{ tier }}_{{ role }}.*:ALL" - name: create lowercase 8 character name for Kubernetes pod name ansible.builtin.set_fact: - random_pod_name: "web-{{ lookup('ansible.builtin.password', '/dev/null chars=ascii_lowercase,digits length=8') }}" + random_pod_name: "web-{{ lookup('ansible.builtin.password', '/dev/null', chars=['ascii_lowercase', 'digits'], length=8) }}" - name: create random but idempotent password ansible.builtin.set_fact: @@ -197,18 +197,31 @@ def _parse_content(content): ''' password = content salt = None + ident = None salt_slug = u' salt=' + ident_slug = u' ident=' + rem = u'' try: sep = content.rindex(salt_slug) except ValueError: # No salt pass else: - salt = password[sep + len(salt_slug):] + rem = content[sep + len(salt_slug):] password = content[:sep] - return password, salt + if rem: + try: + sep = rem.rindex(ident_slug) + except ValueError: + # no ident + salt = rem + else: + ident = rem[sep + len(ident_slug):] + salt = rem[:sep] + + return password, salt, ident def _format_content(password, salt, encrypt=None, ident=None): @@ -338,47 +351,73 @@ class LookupModule(LookupBase): self.set_options(var_options=variables, direct=kwargs) for term in terms: + + changed = None relpath, params = self._parse_parameters(term) path = self._loader.path_dwim(relpath) b_path = to_bytes(path, errors='surrogate_or_strict') chars = _gen_candidate_chars(params['chars']) - - changed = None - # make sure only one process finishes all the job first - first_process, lockfile = _get_lock(b_path) - - content = _read_password_file(b_path) - - if content is None or b_path == to_bytes('/dev/null'): - plaintext_password = random_password(params['length'], chars, params['seed']) - salt = None - changed = True - else: - plaintext_password, salt = _parse_content(content) - - encrypt = params['encrypt'] - if encrypt and not salt: - changed = True - try: - salt = random_salt(BaseHash.algorithms[encrypt].salt_size) - except KeyError: - salt = random_salt() - - ident = params['ident'] - if encrypt and not ident: - changed = True - try: - ident = BaseHash.algorithms[encrypt].implicit_ident - except KeyError: - ident = None - - if changed and b_path != to_bytes('/dev/null'): - content = _format_content(plaintext_password, salt, encrypt=encrypt, ident=ident) - _write_password_file(b_path, content) - - if first_process: - # let other processes continue - _release_lock(lockfile) + ident = None + first_process = None + lockfile = None + + try: + # make sure only one process finishes all the job first + first_process, lockfile = _get_lock(b_path) + content = _read_password_file(b_path) + + if content is None or b_path == to_bytes('/dev/null'): + plaintext_password = random_password(params['length'], chars, params['seed']) + salt = None + changed = True + else: + plaintext_password, salt, ident = _parse_content(content) + + encrypt = params['encrypt'] + if encrypt and not salt: + changed = True + try: + salt = random_salt(BaseHash.algorithms[encrypt].salt_size) + except KeyError: + salt = random_salt() + + ident = params['ident'] + if encrypt and not ident: + changed = True + try: + ident = BaseHash.algorithms[encrypt].implicit_ident + except KeyError: + ident = None + + encrypt = params['encrypt'] + if encrypt and not salt: + changed = True + try: + salt = random_salt(BaseHash.algorithms[encrypt].salt_size) + except KeyError: + salt = random_salt() + + if not ident: + ident = params['ident'] + elif params['ident'] and ident != params['ident']: + raise AnsibleError('The ident parameter provided (%s) does not match the stored one (%s).' % (ident, params['ident'])) + + if encrypt and not ident: + try: + ident = BaseHash.algorithms[encrypt].implicit_ident + except KeyError: + ident = None + if ident: + changed = True + + if changed and b_path != to_bytes('/dev/null'): + content = _format_content(plaintext_password, salt, encrypt=encrypt, ident=ident) + _write_password_file(b_path, content) + + finally: + if first_process: + # let other processes continue + _release_lock(lockfile) if encrypt: password = do_encrypt(plaintext_password, encrypt, salt=salt, ident=ident) diff --git a/lib/ansible/release.py b/lib/ansible/release.py index 66a04b98..f59976b8 100644 --- a/lib/ansible/release.py +++ b/lib/ansible/release.py @@ -19,6 +19,6 @@ from __future__ import (absolute_import, division, print_function) __metaclass__ = type -__version__ = '2.14.3' +__version__ = '2.14.6' __author__ = 'Ansible, Inc.' __codename__ = "C'mon Everybody" diff --git a/lib/ansible/template/__init__.py b/lib/ansible/template/__init__.py index 1498d3f8..17bee104 100644 --- a/lib/ansible/template/__init__.py +++ b/lib/ansible/template/__init__.py @@ -970,7 +970,7 @@ class Templar: # In case this is a recursive call and we set different concat # function up the stack, reset it in case the value of convert_data # changed in this call - self.environment.concat = self.environment.__class__.concat + myenv.concat = myenv.__class__.concat # the concat function is set for each Ansible environment, # however for convert_data=False we need to use the concat # function that avoids any evaluation and set it temporarily @@ -978,13 +978,13 @@ class Templar: # the concat function is called internally in Jinja, # most notably for macro execution if not self.jinja2_native and not convert_data: - self.environment.concat = ansible_concat + myenv.concat = ansible_concat self.cur_context = t.new_context(jvars, shared=True) rf = t.root_render_func(self.cur_context) try: - res = self.environment.concat(rf) + res = myenv.concat(rf) unsafe = getattr(self.cur_context, 'unsafe', False) if unsafe: res = wrap_var(res) @@ -1012,7 +1012,7 @@ class Templar: # "Hello world\n!\n" instead of "Hello world!\n". res_newlines = _count_newlines_from_end(res) if data_newlines > res_newlines: - res += self.environment.newline_sequence * (data_newlines - res_newlines) + res += myenv.newline_sequence * (data_newlines - res_newlines) if unsafe: res = wrap_var(res) return res diff --git a/lib/ansible/template/native_helpers.py b/lib/ansible/template/native_helpers.py index 343e10c7..3014c745 100644 --- a/lib/ansible/template/native_helpers.py +++ b/lib/ansible/template/native_helpers.py @@ -14,7 +14,6 @@ from ansible.module_utils._text import to_text from ansible.module_utils.six import string_types from ansible.parsing.yaml.objects import AnsibleVaultEncryptedUnicode from ansible.utils.native_jinja import NativeJinjaText -from ansible.utils.unsafe_proxy import wrap_var _JSON_MAP = { @@ -60,7 +59,6 @@ def ansible_eval_concat(nodes): # if this looks like a dictionary, list or bool, convert it to such if out.startswith(('{', '[')) or out in ('True', 'False'): - unsafe = hasattr(out, '__UNSAFE__') try: out = ast.literal_eval( ast.fix_missing_locations( @@ -71,9 +69,6 @@ def ansible_eval_concat(nodes): ) except (ValueError, SyntaxError, MemoryError): pass - else: - if unsafe: - out = wrap_var(out) return out diff --git a/lib/ansible/utils/_junit_xml.py b/lib/ansible/utils/_junit_xml.py index 3b958672..76c8878b 100644 --- a/lib/ansible/utils/_junit_xml.py +++ b/lib/ansible/utils/_junit_xml.py @@ -10,6 +10,7 @@ import datetime import decimal from xml.dom import minidom + # noinspection PyPep8Naming from xml.etree import ElementTree as ET @@ -17,6 +18,7 @@ from xml.etree import ElementTree as ET @dataclasses.dataclass # type: ignore[misc] # https://github.com/python/mypy/issues/5374 class TestResult(metaclass=abc.ABCMeta): """Base class for the result of a test case.""" + output: str | None = None message: str | None = None type: str | None = None @@ -48,6 +50,7 @@ class TestResult(metaclass=abc.ABCMeta): @dataclasses.dataclass class TestFailure(TestResult): """Failure info for a test case.""" + @property def tag(self) -> str: """Tag name for the XML element created by this result type.""" @@ -57,6 +60,7 @@ class TestFailure(TestResult): @dataclasses.dataclass class TestError(TestResult): """Error info for a test case.""" + @property def tag(self) -> str: """Tag name for the XML element created by this result type.""" @@ -66,6 +70,7 @@ class TestError(TestResult): @dataclasses.dataclass class TestCase: """An individual test case.""" + name: str assertions: int | None = None classname: str | None = None @@ -127,6 +132,7 @@ class TestCase: @dataclasses.dataclass class TestSuite: """A collection of test cases.""" + name: str hostname: str | None = None id: str | None = None @@ -138,6 +144,10 @@ class TestSuite: system_out: str | None = None system_err: str | None = None + def __post_init__(self): + if self.timestamp and self.timestamp.tzinfo != datetime.timezone.utc: + raise ValueError(f'timestamp.tzinfo must be {datetime.timezone.utc!r}') + @property def disabled(self) -> int: """The number of disabled test cases.""" @@ -181,7 +191,7 @@ class TestSuite: skipped=self.skipped, tests=self.tests, time=self.time, - timestamp=self.timestamp.isoformat(timespec='seconds') if self.timestamp else None, + timestamp=self.timestamp.replace(tzinfo=None).isoformat(timespec='seconds') if self.timestamp else None, ) def get_xml_element(self) -> ET.Element: @@ -205,6 +215,7 @@ class TestSuite: @dataclasses.dataclass class TestSuites: """A collection of test suites.""" + name: str | None = None suites: list[TestSuite] = dataclasses.field(default_factory=list) diff --git a/lib/ansible/utils/display.py b/lib/ansible/utils/display.py index e521f2a4..7d98ad47 100644 --- a/lib/ansible/utils/display.py +++ b/lib/ansible/utils/display.py @@ -228,6 +228,12 @@ class Display(metaclass=Singleton): except Exception as ex: self.warning(f"failed to patch stdout/stderr for fork-safety: {ex}") + try: + sys.stdout.reconfigure(errors='replace') + sys.stderr.reconfigure(errors='replace') + except Exception as ex: + self.warning(f"failed to reconfigure stdout/stderr with the replace error handler: {ex}") + def set_queue(self, queue): """Set the _final_q on Display, so that we know to proxy display over the queue instead of directly writing to stdout/stderr from forks diff --git a/lib/ansible/utils/encrypt.py b/lib/ansible/utils/encrypt.py index 3a8642d8..661fde34 100644 --- a/lib/ansible/utils/encrypt.py +++ b/lib/ansible/utils/encrypt.py @@ -240,12 +240,15 @@ class PasslibHash(BaseHash): settings['ident'] = ident # starting with passlib 1.7 'using' and 'hash' should be used instead of 'encrypt' - if hasattr(self.crypt_algo, 'hash'): - result = self.crypt_algo.using(**settings).hash(secret) - elif hasattr(self.crypt_algo, 'encrypt'): - result = self.crypt_algo.encrypt(secret, **settings) - else: - raise AnsibleError("installed passlib version %s not supported" % passlib.__version__) + try: + if hasattr(self.crypt_algo, 'hash'): + result = self.crypt_algo.using(**settings).hash(secret) + elif hasattr(self.crypt_algo, 'encrypt'): + result = self.crypt_algo.encrypt(secret, **settings) + else: + raise AnsibleError("installed passlib version %s not supported" % passlib.__version__) + except ValueError as e: + raise AnsibleError("Could not hash the secret.", orig_exc=e) # passlib.hash should always return something or raise an exception. # Still ensure that there is always a result. diff --git a/lib/ansible_core.egg-info/PKG-INFO b/lib/ansible_core.egg-info/PKG-INFO index 0c7edcf5..b625a17a 100644 --- a/lib/ansible_core.egg-info/PKG-INFO +++ b/lib/ansible_core.egg-info/PKG-INFO @@ -1,6 +1,6 @@ Metadata-Version: 2.1 Name: ansible-core -Version: 2.14.3 +Version: 2.14.6 Summary: Radically simple IT automation Home-page: https://ansible.com/ Author: Ansible, Inc. diff --git a/lib/ansible_core.egg-info/SOURCES.txt b/lib/ansible_core.egg-info/SOURCES.txt index 9444d2ff..dd37d2ed 100644 --- a/lib/ansible_core.egg-info/SOURCES.txt +++ b/lib/ansible_core.egg-info/SOURCES.txt @@ -91,6 +91,7 @@ docs/docsite/rst/community/collection_contributors/collection_integration_updati docs/docsite/rst/community/collection_contributors/collection_release_with_branches.rst docs/docsite/rst/community/collection_contributors/collection_release_without_branches.rst docs/docsite/rst/community/collection_contributors/collection_releasing.rst +docs/docsite/rst/community/collection_contributors/collection_requirements.rst docs/docsite/rst/community/collection_contributors/collection_reviewing.rst docs/docsite/rst/community/collection_contributors/collection_test_pr_locally.rst docs/docsite/rst/community/collection_contributors/collection_unit_tests.rst @@ -1353,6 +1354,10 @@ licenses/Apache-License.txt licenses/MIT-license.txt licenses/PSF-license.txt licenses/simplified_bsd.txt +packaging/release.py +packaging/pep517_backend/__init__.py +packaging/pep517_backend/_backend.py +packaging/pep517_backend/hooks.py packaging/release/Makefile packaging/release/tests/__init__.py packaging/release/tests/version_helper_test.py @@ -1387,6 +1392,7 @@ test/integration/targets/ansible-doc/aliases test/integration/targets/ansible-doc/fakecollrole.output test/integration/targets/ansible-doc/fakemodule.output test/integration/targets/ansible-doc/fakerole.output +test/integration/targets/ansible-doc/fix-urls.py test/integration/targets/ansible-doc/inventory test/integration/targets/ansible-doc/noop.output test/integration/targets/ansible-doc/noop_vars_plugin.output @@ -1628,10 +1634,13 @@ test/integration/targets/ansible-test-integration-constraints/ansible_collection test/integration/targets/ansible-test-integration-targets/aliases test/integration/targets/ansible-test-integration-targets/runme.sh test/integration/targets/ansible-test-integration-targets/test.py +test/integration/targets/ansible-test-integration-targets/ansible_collections/ns/col/tests/integration/target-prefixes.something test/integration/targets/ansible-test-integration-targets/ansible_collections/ns/col/tests/integration/targets/destructive_a/aliases test/integration/targets/ansible-test-integration-targets/ansible_collections/ns/col/tests/integration/targets/destructive_b/aliases test/integration/targets/ansible-test-integration-targets/ansible_collections/ns/col/tests/integration/targets/disabled_a/aliases test/integration/targets/ansible-test-integration-targets/ansible_collections/ns/col/tests/integration/targets/disabled_b/aliases +test/integration/targets/ansible-test-integration-targets/ansible_collections/ns/col/tests/integration/targets/one-part_test/aliases +test/integration/targets/ansible-test-integration-targets/ansible_collections/ns/col/tests/integration/targets/two_part_test/aliases test/integration/targets/ansible-test-integration-targets/ansible_collections/ns/col/tests/integration/targets/unstable_a/aliases test/integration/targets/ansible-test-integration-targets/ansible_collections/ns/col/tests/integration/targets/unstable_b/aliases test/integration/targets/ansible-test-integration-targets/ansible_collections/ns/col/tests/integration/targets/unsupported_a/aliases @@ -1727,6 +1736,9 @@ test/integration/targets/ansible-test-units/ansible_collections/ns/col/tests/uni test/integration/targets/ansible-test-unsupported-directory/aliases test/integration/targets/ansible-test-unsupported-directory/runme.sh test/integration/targets/ansible-test-unsupported-directory/ansible_collections/ns/col/.keep +test/integration/targets/ansible-test-vendoring/aliases +test/integration/targets/ansible-test-vendoring/runme.sh +test/integration/targets/ansible-test-vendoring/ansible_collections/ns/col/tests/config.yml test/integration/targets/ansible-vault/aliases test/integration/targets/ansible-vault/empty-password test/integration/targets/ansible-vault/encrypted-vault-password @@ -2000,6 +2012,11 @@ test/integration/targets/callback_default/test_async.yml test/integration/targets/callback_default/test_dryrun.yml test/integration/targets/callback_default/test_non_lockstep.yml test/integration/targets/callback_default/test_yaml.yml +test/integration/targets/canonical-pep517-self-packaging/aliases +test/integration/targets/canonical-pep517-self-packaging/minimum-build-constraints.txt +test/integration/targets/canonical-pep517-self-packaging/modernish-build-constraints.txt +test/integration/targets/canonical-pep517-self-packaging/runme.sh +test/integration/targets/canonical-pep517-self-packaging/runme_test.py test/integration/targets/changed_when/aliases test/integration/targets/changed_when/meta/main.yml test/integration/targets/changed_when/tasks/main.yml @@ -2861,6 +2878,8 @@ test/integration/targets/include_import/roles/role3/tasks/tasks.yml test/integration/targets/include_import/roles/role3/tasks/vartest.yml test/integration/targets/include_import/roles/role3/vars/main.yml test/integration/targets/include_import/roles/role3/vars/role3vars.yml +test/integration/targets/include_import/roles/role_with_argspec/meta/argument_specs.yml +test/integration/targets/include_import/roles/role_with_argspec/tasks/main.yml test/integration/targets/include_import/roles/role_with_deps/meta/main.yml test/integration/targets/include_import/roles/role_with_deps/tasks/main.yml test/integration/targets/include_import/run_once/include_me.yml @@ -2879,6 +2898,7 @@ test/integration/targets/include_import/tasks/test_include_dupe_loop.yml test/integration/targets/include_import/tasks/test_include_tasks.yml test/integration/targets/include_import/tasks/test_include_tasks_tags.yml test/integration/targets/include_import/tasks/test_recursion.yml +test/integration/targets/include_import/tasks/test_templating_IncludeRole_FA.yml test/integration/targets/include_import/tasks/validate3.yml test/integration/targets/include_import/tasks/validate_tags.yml test/integration/targets/include_import/tasks/hello/.gitignore @@ -3067,8 +3087,10 @@ test/integration/targets/json_cleanup/module_output_cleaning.yml test/integration/targets/json_cleanup/runme.sh test/integration/targets/json_cleanup/library/bad_json test/integration/targets/keyword_inheritance/aliases +test/integration/targets/keyword_inheritance/dep_keyword_inheritance.yml test/integration/targets/keyword_inheritance/runme.sh test/integration/targets/keyword_inheritance/test.yml +test/integration/targets/keyword_inheritance/roles/role-meta-inheritance/meta/main.yml test/integration/targets/keyword_inheritance/roles/whoami/tasks/main.yml test/integration/targets/known_hosts/aliases test/integration/targets/known_hosts/defaults/main.yml @@ -4053,8 +4075,10 @@ test/integration/targets/template/templates/unused_vars_template.j2 test/integration/targets/template/vars/main.yml test/integration/targets/template_jinja2_non_native/46169.yml test/integration/targets/template_jinja2_non_native/aliases +test/integration/targets/template_jinja2_non_native/macro_override.yml test/integration/targets/template_jinja2_non_native/runme.sh test/integration/targets/template_jinja2_non_native/templates/46169.json.j2 +test/integration/targets/template_jinja2_non_native/templates/macro_override.j2 test/integration/targets/templating/aliases test/integration/targets/templating/tasks/main.yml test/integration/targets/templating/templates/invalid_test_name.j2 @@ -4726,6 +4750,7 @@ test/sanity/code-smell/update-bundled.json test/sanity/code-smell/update-bundled.py test/sanity/code-smell/update-bundled.requirements.in test/sanity/code-smell/update-bundled.requirements.txt +test/support/README.md test/support/integration/plugins/filter/json_query.py test/support/integration/plugins/module_utils/compat/__init__.py test/support/integration/plugins/module_utils/compat/ipaddress.py diff --git a/packaging/pep517_backend/__init__.py b/packaging/pep517_backend/__init__.py new file mode 100644 index 00000000..1d3bc14c --- /dev/null +++ b/packaging/pep517_backend/__init__.py @@ -0,0 +1 @@ +"""PEP 517 build backend for optionally pre-building docs before setuptools.""" diff --git a/packaging/pep517_backend/_backend.py b/packaging/pep517_backend/_backend.py new file mode 100644 index 00000000..ce97cfab --- /dev/null +++ b/packaging/pep517_backend/_backend.py @@ -0,0 +1,173 @@ +"""PEP 517 build backend wrapper for optionally pre-building docs for sdist.""" + +from __future__ import annotations + +import os +import re +import subprocess +import sys +import typing as t +from configparser import ConfigParser +from contextlib import contextmanager, suppress +from importlib import import_module +from io import StringIO +from pathlib import Path +from shutil import copytree +from tempfile import TemporaryDirectory + +try: + from contextlib import chdir as _chdir_cm +except ImportError: + @contextmanager + def _chdir_cm(path: os.PathLike) -> t.Iterator[None]: + original_wd = Path.cwd() + os.chdir(path) + try: + yield + finally: + os.chdir(original_wd) + +from setuptools.build_meta import ( + build_sdist as _setuptools_build_sdist, + get_requires_for_build_sdist as _setuptools_get_requires_for_build_sdist, +) + +with suppress(ImportError): + # NOTE: Only available for sdist builds that bundle manpages. Declared by + # NOTE: `get_requires_for_build_sdist()` when `--build-manpages` is passed. + from docutils.core import publish_file + from docutils.writers import manpage + + +__all__ = ( # noqa: WPS317, WPS410 + 'build_sdist', 'get_requires_for_build_sdist', +) + + +BUILD_MANPAGES_CONFIG_SETTING = '--build-manpages' +"""Config setting name toggle that is used to request manpage in sdists.""" + + +@contextmanager +def _run_in_temporary_directory() -> t.Iterator[Path]: + with TemporaryDirectory(prefix='.tmp-ansible-pep517-') as tmp_dir: + with _chdir_cm(tmp_dir): + yield Path(tmp_dir) + + +def _make_in_tree_ansible_importable() -> None: + """Add the library directory to module lookup paths.""" + lib_path = str(Path.cwd() / 'lib/') + sys.path.insert(0, lib_path) # NOTE: for the current runtime session + + +def _get_package_distribution_version() -> str: + """Retrieve the current version number from setuptools config.""" + setup_cfg_path = Path.cwd() / 'setup.cfg' + setup_cfg = ConfigParser() + setup_cfg.read_string(setup_cfg_path.read_text()) + cfg_version = setup_cfg.get('metadata', 'version') + importable_version_str = cfg_version.removeprefix('attr: ') + version_mod_str, version_var_str = importable_version_str.rsplit('.', 1) + _make_in_tree_ansible_importable() + return getattr(import_module(version_mod_str), version_var_str) + + +def _generate_rst_in_templates() -> t.Iterable[Path]: + """Create ``*.1.rst.in`` files out of CLI Python modules.""" + generate_man_cmd = ( + sys.executable, + 'hacking/build-ansible.py', + 'generate-man', + '--template-file=docs/templates/man.j2', + '--output-dir=docs/man/man1/', + '--output-format=man', + *Path('lib/ansible/cli/').glob('*.py'), + ) + subprocess.check_call(tuple(map(str, generate_man_cmd))) + return Path('docs/man/man1/').glob('*.1.rst.in') + + +def _convert_rst_in_template_to_manpage( + rst_doc_template: str, + destination_path: os.PathLike, + version_number: str, +) -> None: + """Render pre-made ``*.1.rst.in`` templates into manpages. + + This includes pasting the hardcoded version into the resulting files. + The resulting ``in``-files are wiped in the process. + """ + templated_rst_doc = rst_doc_template.replace('%VERSION%', version_number) + + with StringIO(templated_rst_doc) as in_mem_rst_doc: + publish_file( + source=in_mem_rst_doc, + destination_path=destination_path, + writer=manpage.Writer(), + ) + + +def build_sdist( # noqa: WPS210, WPS430 + sdist_directory: os.PathLike, + config_settings: dict[str, str] | None = None, +) -> str: + build_manpages_requested = BUILD_MANPAGES_CONFIG_SETTING in ( + config_settings or {} + ) + original_src_dir = Path.cwd().resolve() + with _run_in_temporary_directory() as tmp_dir: + tmp_src_dir = Path(tmp_dir) / 'src' + copytree(original_src_dir, tmp_src_dir, symlinks=True) + os.chdir(tmp_src_dir) + + if build_manpages_requested: + Path('docs/man/man1/').mkdir(exist_ok=True, parents=True) + version_number = _get_package_distribution_version() + for rst_in in _generate_rst_in_templates(): + _convert_rst_in_template_to_manpage( + rst_doc_template=rst_in.read_text(), + destination_path=rst_in.with_suffix('').with_suffix(''), + version_number=version_number, + ) + rst_in.unlink() + + Path('pyproject.toml').write_text( + re.sub( + r"""(?x) + backend-path\s=\s\[ # value is a list of double-quoted strings + [^]]+ + ].*\n + build-backend\s=\s"[^"]+".*\n # value is double-quoted + """, + 'build-backend = "setuptools.build_meta"\n', + Path('pyproject.toml').read_text(), + ) + ) + + built_sdist_basename = _setuptools_build_sdist( + sdist_directory=sdist_directory, + config_settings=config_settings, + ) + + return built_sdist_basename + + +def get_requires_for_build_sdist( + config_settings: dict[str, str] | None = None, +) -> list[str]: + build_manpages_requested = BUILD_MANPAGES_CONFIG_SETTING in ( + config_settings or {} + ) + build_manpages_requested = True # FIXME: Once pypa/build#559 is addressed. + + manpage_build_deps = [ + 'docutils', # provides `rst2man` + 'jinja2', # used in `hacking/build-ansible.py generate-man` + 'straight.plugin', # used in `hacking/build-ansible.py` for subcommand + 'pyyaml', # needed for importing in-tree `ansible-core` from `lib/` + ] if build_manpages_requested else [] + + return _setuptools_get_requires_for_build_sdist( + config_settings=config_settings, + ) + manpage_build_deps diff --git a/packaging/pep517_backend/hooks.py b/packaging/pep517_backend/hooks.py new file mode 100644 index 00000000..b834338a --- /dev/null +++ b/packaging/pep517_backend/hooks.py @@ -0,0 +1,9 @@ +# -*- coding: utf-8 -*- + +"""PEP 517 build backend for optionally pre-building docs before setuptools.""" + +from setuptools.build_meta import * # Re-exporting PEP 517 hooks # pylint: disable=unused-wildcard-import,wildcard-import + +from ._backend import ( # noqa: WPS436 # Re-exporting PEP 517 hooks + build_sdist, get_requires_for_build_sdist, +) diff --git a/packaging/release.py b/packaging/release.py new file mode 100755 index 00000000..795e3336 --- /dev/null +++ b/packaging/release.py @@ -0,0 +1,1469 @@ +#!/usr/bin/env python +# PYTHON_ARGCOMPLETE_OK +"""Manage upstream ansible-core releases.""" + +from __future__ import annotations + +import argparse +import contextlib +import dataclasses +import datetime +import enum +import functools +import gzip +import hashlib +import http.client +import inspect +import json +import math +import os +import pathlib +import re +import secrets +import shlex +import shutil +import stat +import subprocess +import sys +import tarfile +import tempfile +import typing as t +import urllib.error +import urllib.parse +import urllib.request +import venv +import webbrowser +import zipfile + +import jinja2 + +from packaging.version import Version, InvalidVersion + +# region CLI Framework + + +C = t.TypeVar("C", bound=t.Callable[[...], None]) + + +def path_to_str(value: t.Any) -> str: + """Return the given value converted to a string suitable for use as a command line argument.""" + return f"{value}/" if isinstance(value, pathlib.Path) and value.is_dir() else str(value) + + +def run( + *args: t.Any, + env: dict[str, t.Any] | None, + cwd: pathlib.Path | str, + capture_output: bool = False, +) -> CompletedProcess: + """Run the specified command.""" + args = [arg.relative_to(cwd) if isinstance(arg, pathlib.Path) else arg for arg in args] + + str_args = tuple(path_to_str(arg) for arg in args) + str_env = {key: path_to_str(value) for key, value in env.items()} if env is not None else None + + display.show(f"--> {shlex.join(str_args)}", color=Display.CYAN) + + try: + p = subprocess.run(str_args, check=True, text=True, env=str_env, cwd=cwd, capture_output=capture_output) + except subprocess.CalledProcessError as ex: + # improve type hinting and include stdout/stderr (if any) in the message + raise CalledProcessError( + message=str(ex), + cmd=str_args, + status=ex.returncode, + stdout=ex.stdout, + stderr=ex.stderr, + ) from None + + # improve type hinting + return CompletedProcess( + args=str_args, + stdout=p.stdout, + stderr=p.stderr, + ) + + +@contextlib.contextmanager +def suppress_when(error_as_warning: bool) -> None: + """Conditionally convert an ApplicationError in the provided context to a warning.""" + if error_as_warning: + try: + yield + except ApplicationError as ex: + display.warning(ex) + else: + yield + + +class ApplicationError(Exception): + """A fatal application error which will be shown without a traceback.""" + + +class CalledProcessError(Exception): + """Results from a failed process.""" + + def __init__(self, message: str, cmd: tuple[str, ...], status: int, stdout: str | None, stderr: str | None) -> None: + if stdout and (stdout := stdout.strip()): + message += f"\n>>> Standard Output\n{stdout}" + + if stderr and (stderr := stderr.strip()): + message += f"\n>>> Standard Error\n{stderr}" + + super().__init__(message) + + self.cmd = cmd + self.status = status + self.stdout = stdout + self.stderr = stderr + + +@dataclasses.dataclass(frozen=True) +class CompletedProcess: + """Results from a completed process.""" + + args: tuple[str, ...] + stdout: str | None + stderr: str | None + + +class Display: + """Display interface for sending output to the console.""" + + CLEAR = "\033[0m" + RED = "\033[31m" + BLUE = "\033[34m" + PURPLE = "\033[35m" + CYAN = "\033[36m" + + def fatal(self, message: t.Any) -> None: + """Print a fatal message to the console.""" + self.show(f"FATAL: {message}", color=self.RED) + + def warning(self, message: t.Any) -> None: + """Print a warning message to the console.""" + self.show(f"WARNING: {message}", color=self.PURPLE) + + def show(self, message: t.Any, color: str | None = None) -> None: + """Print a message to the console.""" + print(f"{color or self.CLEAR}{message}{self.CLEAR}", flush=True) + + +class CommandFramework: + """ + Simple command line framework inspired by nox. + + Argument parsing is handled by argparse. Each function annotated with an instance of this class becomes a subcommand. + Options are shared across all commands, and are defined by providing kwargs when creating an instance of this class. + Options are only defined for commands which have a matching parameter. + + The name of each kwarg is the option name, which will be prefixed with `--` and with underscores converted to dashes. + The value of each kwarg is passed as kwargs to ArgumentParser.add_argument. Passing None results in an internal only parameter. + + The following custom kwargs are recognized and are not passed to add_argument: + + name - Override the positional argument (option) passed to add_argument. + exclusive - Put the argument in an exclusive group of the given name. + """ + + def __init__(self, **kwargs: dict[str, t.Any] | None) -> None: + self.commands: list[C] = [] + self.arguments = kwargs + self.parsed_arguments: argparse.Namespace | None = None + + def __call__(self, func: C) -> C: + """Register the decorated function as a CLI command.""" + self.commands.append(func) + return func + + def run(self, *args: C, **kwargs) -> None: + """Run the specified command(s), using any provided internal args.""" + for arg in args: + self._run(arg, **kwargs) + + def main(self) -> None: + """Main program entry point.""" + parser = argparse.ArgumentParser(description=__doc__) + subparsers = parser.add_subparsers(metavar="COMMAND", required=True) + + for func in self.commands: + func_parser = subparsers.add_parser(self._format_command_name(func), description=func.__doc__, help=func.__doc__) + func_parser.set_defaults(func=func) + + exclusive_groups = {} + signature = inspect.signature(func) + + for name in signature.parameters: + if name not in self.arguments: + raise RuntimeError(f"The '{name}' argument, used by '{func.__name__}', has not been defined.") + + if (arguments := self.arguments.get(name)) is None: + continue # internal use + + arguments = arguments.copy() + exclusive = arguments.pop("exclusive", None) + + if exclusive: + if exclusive not in exclusive_groups: + exclusive_groups[exclusive] = func_parser.add_mutually_exclusive_group() + + command_parser = exclusive_groups[exclusive] + else: + command_parser = func_parser + + if option_name := arguments.pop("name", None): + arguments.update(dest=name) + else: + option_name = f"--{name.replace('_', '-')}" + + command_parser.add_argument(option_name, **arguments) + + try: + # noinspection PyUnresolvedReferences + import argcomplete + except ImportError: + pass + else: + argcomplete.autocomplete(parser) + + self.parsed_arguments = parser.parse_args() + + try: + self.run(self.parsed_arguments.func) + except ApplicationError as ex: + display.fatal(ex) + sys.exit(1) + + def _run(self, func: C, **kwargs) -> None: + """Run the specified command, using any provided internal args.""" + signature = inspect.signature(func) + func_args = {name: getattr(self.parsed_arguments, name) for name in signature.parameters if hasattr(self.parsed_arguments, name)} + func_args.update({name: value for name, value in kwargs.items() if name in signature.parameters}) + printable_args = ", ".join(f"{name}={repr(value)}" for name, value in func_args.items()) + label = f"{self._format_command_name(func)}({printable_args})" + + display.show(f"==> {label}", color=Display.BLUE) + + try: + func(**func_args) + except BaseException: + display.show(f"!!! {label}", color=Display.RED) + raise + + display.show(f"<== {label}", color=Display.BLUE) + + @staticmethod + def _format_command_name(func: C) -> str: + """Return the friendly name of the given command.""" + return func.__name__.replace("_", "-") + + +display = Display() + + +# endregion +# region Data Classes + + +@dataclasses.dataclass(frozen=True) +class GitHubRelease: + """Details required to create a GitHub release.""" + + user: str + repo: str + tag: str + target: str + title: str + body: str + pre_release: bool + + +@dataclasses.dataclass(frozen=True) +class PullRequest: + """Details required to create a pull request.""" + + upstream_user: str + upstream_repo: str + upstream_branch: str + user: str + repo: str + branch: str + title: str + body: str + + +@dataclasses.dataclass(frozen=True) +class Remote: + """Details about a git remote.""" + + name: str + user: str + repo: str + + +@dataclasses.dataclass(frozen=True) +class Remotes: + """Details about git removes.""" + + fork: Remote + upstream: Remote + + +@dataclasses.dataclass(frozen=True) +class GitState: + """Details about the state of the git repository.""" + + remotes: Remotes + branch: str | None + commit: str + + +@dataclasses.dataclass(frozen=True) +class ReleaseArtifact: + """Information about a release artifact on PyPI.""" + + package_type: str + package_label: str + url: str + size: int + digest: str + digest_algorithm: str + + +@dataclasses.dataclass(frozen=True) +class ReleaseAnnouncement: + """Contents of a release announcement.""" + + subject: str + body: str + + +# endregion +# region Utilities + + +SCRIPT_DIR = pathlib.Path(__file__).parent.resolve() +CHECKOUT_DIR = SCRIPT_DIR.parent + +ANSIBLE_LIB_DIR = CHECKOUT_DIR / "lib" +ANSIBLE_DIR = ANSIBLE_LIB_DIR / "ansible" +ANSIBLE_BIN_DIR = CHECKOUT_DIR / "bin" +ANSIBLE_RELEASE_FILE = ANSIBLE_DIR / "release.py" +ANSIBLE_REQUIREMENTS_FILE = CHECKOUT_DIR / "requirements.txt" + +DIST_DIR = CHECKOUT_DIR / "dist" +VENV_DIR = DIST_DIR / ".venv" / "release" + +CHANGELOGS_DIR = CHECKOUT_DIR / "changelogs" +CHANGELOGS_FRAGMENTS_DIR = CHANGELOGS_DIR / "fragments" + +ANSIBLE_VERSION_PATTERN = re.compile("^__version__ = '(?P.*)'$", re.MULTILINE) +ANSIBLE_VERSION_FORMAT = "__version__ = '{version}'" + +DIGEST_ALGORITHM = "sha256" + +# These endpoint names match those defined as defaults in twine. +# See: https://github.com/pypa/twine/blob/9c2c0a1c535155931c3d879359330cb836950c6a/twine/utils.py#L82-L85 +PYPI_ENDPOINTS = dict( + pypi="https://pypi.org/pypi", + testpypi="https://test.pypi.org/pypi", +) + +PIP_ENV = dict( + PIP_REQUIRE_VIRTUALENV="yes", + PIP_DISABLE_PIP_VERSION_CHECK="yes", +) + + +class VersionMode(enum.Enum): + """How to handle the ansible-core version.""" + + DEFAULT = enum.auto() + """Do not allow development versions. Do not allow post release versions.""" + STRIP_POST = enum.auto() + """Do not allow development versions. Strip the post release from the version if present.""" + REQUIRE_POST = enum.auto() + """Do not allow development versions. Require a post release version.""" + REQUIRE_DEV_POST = enum.auto() + """Require a development or post release version.""" + ALLOW_DEV_POST = enum.auto() + """Allow development and post release versions.""" + + def apply(self, version: Version) -> Version: + """Apply the mode to the given version and return the result.""" + original_version = version + + release_component_count = 3 + + if len(version.release) != release_component_count: + raise ApplicationError(f"Version {version} contains {version.release} release components instead of {release_component_count}.") + + if version.epoch: + raise ApplicationError(f"Version {version} contains an epoch component: {version.epoch}") + + if version.local is not None: + raise ApplicationError(f"Version {version} contains a local component: {version.local}") + + if version.is_devrelease and version.is_postrelease: + raise ApplicationError(f"Version {version} is a development and post release version.") + + if self == VersionMode.ALLOW_DEV_POST: + return version + + if self == VersionMode.REQUIRE_DEV_POST: + if not version.is_devrelease and not version.is_postrelease: + raise ApplicationError(f"Version {version} is not a development or post release version.") + + return version + + if version.is_devrelease: + raise ApplicationError(f"Version {version} is a development release: {version.dev}") + + if self == VersionMode.STRIP_POST: + if version.is_postrelease: + version = Version(str(version).removesuffix(f".post{version.post}")) + display.warning(f"Using version {version} by stripping the post release suffix from version {original_version}.") + + return version + + if self == VersionMode.REQUIRE_POST: + if not version.is_postrelease: + raise ApplicationError(f"Version {version} is not a post release version.") + + return version + + if version.is_postrelease: + raise ApplicationError(f"Version {version} is a post release.") + + if self == VersionMode.DEFAULT: + return version + + raise NotImplementedError(self) + + +def git(*args: t.Any, capture_output: bool = False) -> CompletedProcess: + """Run the specified git command.""" + return run("git", *args, env=None, cwd=CHECKOUT_DIR, capture_output=capture_output) + + +def get_commit(rev: str | None = None) -> str: + """Return the commit associated with the given rev, or HEAD if no rev is given.""" + try: + return git("rev-parse", "--quiet", "--verify", "--end-of-options", f"{rev or 'HEAD'}^{{commit}}", capture_output=True).stdout.strip() + except CalledProcessError as ex: + if ex.status == 1 and not ex.stdout and not ex.stderr: + raise ApplicationError(f"Could not find commit: {rev}") from None + + raise + + +def prepare_pull_request(version: Version, branch: str, title: str, add: t.Iterable[pathlib.Path | str], allow_stale: bool) -> PullRequest: + """Return pull request parameters using the provided details.""" + git_state = get_git_state(version, allow_stale) + + if not git("status", "--porcelain", "--untracked-files=no", capture_output=True).stdout.strip(): + raise ApplicationError("There are no changes to commit. Did you skip a step?") + + upstream_branch = get_upstream_branch(version) + body = create_pull_request_body(title) + + git("checkout", "-b", branch) + git("add", *add) + git("commit", "-m", title) + git("push", "--set-upstream", git_state.remotes.fork.name, branch) + git("checkout", git_state.branch or git_state.commit) + git("branch", "-d", branch) + + pr = PullRequest( + upstream_user=git_state.remotes.upstream.user, + upstream_repo=git_state.remotes.upstream.repo, + upstream_branch=upstream_branch, + user=git_state.remotes.fork.user, + repo=git_state.remotes.fork.repo, + branch=branch, + title=title, + body=body, + ) + + return pr + + +def create_github_release(release: GitHubRelease) -> None: + """Open a browser tab for creating the given GitHub release.""" + # See: https://docs.github.com/en/repositories/releasing-projects-on-github/automation-for-release-forms-with-query-parameters + + params = dict( + tag=release.tag, + target=release.target, + title=release.title, + body=release.body, + prerelease=1 if release.pre_release else 0, + ) + + query_string = urllib.parse.urlencode(params) + url = f"https://github.com/{release.user}/{release.repo}/releases/new?{query_string}" + + display.show("Opening release creation page in new tab using default browser ...") + webbrowser.open_new_tab(url) + + +def create_pull_request(pr: PullRequest) -> None: + """Open a browser tab for creating the given pull request.""" + # See: https://docs.github.com/en/pull-requests/collaborating-with-pull-requests/proposing-changes-to-your-work-with-pull-requests/using-query-parameters-to-create-a-pull-request # noqa + + params = dict( + quick_pull=1, + title=pr.title, + body=pr.body, + ) + + query_string = urllib.parse.urlencode(params) + url = f"https://github.com/{pr.upstream_user}/{pr.upstream_repo}/compare/{pr.upstream_branch}...{pr.user}:{pr.repo}:{pr.branch}?{query_string}" + + display.show("Opening pull request in new tab using default browser ...") + webbrowser.open_new_tab(url) + + +def create_pull_request_body(title: str) -> str: + """Return a simple pull request body created from the given title.""" + body = f""" +##### SUMMARY + +{title} + +##### ISSUE TYPE + +Feature Pull Request + +##### COMPONENT NAME + +ansible +""" + + return body.lstrip() + + +def get_remote(name: str, push: bool) -> Remote: + """Return details about the specified remote.""" + remote_url = git("remote", "get-url", *(["--push"] if push else []), name, capture_output=True).stdout.strip() + remote_match = re.search(r"[@/]github[.]com[:/](?P[^/]+)/(?P[^.]+)(?:[.]git)?$", remote_url) + + if not remote_match: + raise RuntimeError(f"Unable to identify the user and repo in the '{name}' remote: {remote_url}") + + remote = Remote( + name=name, + user=remote_match.group("user"), + repo=remote_match.group("repo"), + ) + + return remote + + +@functools.cache +def get_remotes() -> Remotes: + """Return details about the remotes we need to use.""" + # assume the devel branch has its upstream remote pointing to the user's fork + fork_remote_name = git("branch", "--list", "devel", "--format=%(upstream:remotename)", capture_output=True).stdout.strip() + + if not fork_remote_name: + raise ApplicationError("Could not determine the remote for your fork of Ansible.") + + display.show(f"Detected '{fork_remote_name}' as the remote for your fork of Ansible.") + + # assume there is only one ansible org remote, which would allow release testing using another repo in the same org without special configuration + all_remotes = git("remote", "-v", capture_output=True).stdout.strip().splitlines() + ansible_remote_names = set(line.split()[0] for line in all_remotes if re.search(r"[@/]github[.]com[:/]ansible/", line)) + + if not ansible_remote_names: + raise ApplicationError(f"Could not determine the remote which '{fork_remote_name}' was forked from.") + + if len(ansible_remote_names) > 1: + raise ApplicationError(f"Found multiple candidates for the remote from which '{fork_remote_name}' was forked from: {', '.join(ansible_remote_names)}") + + upstream_remote_name = ansible_remote_names.pop() + + display.show(f"Detected '{upstream_remote_name}' as the remote from which '{fork_remote_name}' was forked from.") + + if fork_remote_name == upstream_remote_name: + raise ApplicationError("The remote for your fork of Ansible cannot be the same as the remote from which it was forked.") + + remotes = Remotes( + fork=get_remote(fork_remote_name, push=True), + upstream=get_remote(upstream_remote_name, push=False), + ) + + return remotes + + +def get_upstream_branch(version: Version) -> str: + """Return the upstream branch name for the given version.""" + return f"stable-{version.major}.{version.minor}" + + +def get_git_state(version: Version, allow_stale: bool) -> GitState: + """Return information about the current state of the git repository.""" + remotes = get_remotes() + upstream_branch = get_upstream_branch(version) + + git("fetch", remotes.upstream.name, upstream_branch) + + upstream_ref = f"{remotes.upstream.name}/{upstream_branch}" + upstream_commit = get_commit(upstream_ref) + + commit = get_commit() + + if commit != upstream_commit: + with suppress_when(allow_stale): + raise ApplicationError(f"The current commit ({commit}) does not match {upstream_ref} ({upstream_commit}).") + + branch = git("branch", "--show-current", capture_output=True).stdout.strip() or None + + state = GitState( + remotes=remotes, + branch=branch, + commit=commit, + ) + + return state + + +@functools.cache +def ensure_venv() -> dict[str, str]: + """Ensure the release venv is ready and return the env vars needed to use it.""" + + # TODO: consider freezing the ansible and release requirements along with their dependencies + + ansible_requirements = ANSIBLE_REQUIREMENTS_FILE.read_text() + + release_requirements = """ +build +twine +""" + + requirements_file = CHECKOUT_DIR / "test/sanity/code-smell/package-data.requirements.txt" + requirements_content = requirements_file.read_text() + requirements_content += ansible_requirements + requirements_content += release_requirements + + requirements_hash = hashlib.sha256(requirements_content.encode()).hexdigest()[:8] + + python_version = ".".join(map(str, sys.version_info[:2])) + + venv_dir = VENV_DIR / python_version / requirements_hash + venv_bin_dir = venv_dir / "bin" + venv_requirements_file = venv_dir / "requirements.txt" + venv_marker_file = venv_dir / "marker.txt" + + env = os.environ.copy() + env.pop("PYTHONPATH", None) # avoid interference from ansible being injected into the environment + env.update( + PATH=os.pathsep.join((str(venv_bin_dir), env["PATH"])), + ) + + if not venv_marker_file.exists(): + display.show(f"Creating a Python {python_version} virtual environment ({requirements_hash}) ...") + + if venv_dir.exists(): + shutil.rmtree(venv_dir) + + venv.create(venv_dir, with_pip=True) + + venv_requirements_file.write_text(requirements_content) + + run("pip", "install", "-r", venv_requirements_file, env=env | PIP_ENV, cwd=CHECKOUT_DIR) + + venv_marker_file.touch() + + return env + + +def get_ansible_version(version: str | None = None, /, commit: str | None = None, mode: VersionMode = VersionMode.DEFAULT) -> Version: + """Parse and return the current ansible-core version, the provided version or the version from the provided commit.""" + if version and commit: + raise ValueError("Specify only one of: version, commit") + + if version: + source = "" + else: + if commit: + current = git("show", f"{commit}:{ANSIBLE_RELEASE_FILE.relative_to(CHECKOUT_DIR)}", capture_output=True).stdout + else: + current = ANSIBLE_RELEASE_FILE.read_text() + + if not (match := ANSIBLE_VERSION_PATTERN.search(current)): + raise RuntimeError("Failed to get the ansible-core version.") + + version = match.group("version") + source = f" in '{ANSIBLE_RELEASE_FILE}'" + + try: + parsed_version = Version(version) + except InvalidVersion: + raise ApplicationError(f"Invalid version{source}: {version}") from None + + parsed_version = mode.apply(parsed_version) + + return parsed_version + + +def get_next_version(version: Version, /, final: bool = False, pre: str | None = None, mode: VersionMode = VersionMode.DEFAULT) -> Version: + """Return the next version after the specified version.""" + + # TODO: consider using development versions instead of post versions after a release is published + + pre = pre or "" + micro = version.micro + + if version.is_devrelease: + # The next version of a development release is the same version without the development component. + if final: + pre = "" + elif not pre and version.pre is not None: + pre = f"{version.pre[0]}{version.pre[1]}" + elif version.is_postrelease: + # The next version of a post release is the next pre-release *or* micro release component. + if final: + pre = "" + elif not pre and version.pre is not None: + pre = f"{version.pre[0]}{version.pre[1] + 1}" + + if version.pre is None: + micro = version.micro + 1 + else: + raise ApplicationError(f"Version {version} is not a development or post release version.") + + version = f"{version.major}.{version.minor}.{micro}{pre}" + + return get_ansible_version(version, mode=mode) + + +def check_ansible_version(current_version: Version, requested_version: Version) -> None: + """Verify the requested version is valid for the current version.""" + if requested_version.release[:2] != current_version.release[:2]: + raise ApplicationError(f"Version {requested_version} does not match the major and minor portion of the current version: {current_version}") + + if requested_version < current_version: + raise ApplicationError(f"Version {requested_version} is older than the current version: {current_version}") + + # TODO: consider additional checks to avoid mistakes when incrementing the release version + + +def set_ansible_version(current_version: Version, requested_version: Version) -> None: + """Set the current ansible-core version.""" + check_ansible_version(current_version, requested_version) + + if requested_version == current_version: + return + + display.show(f"Updating version {current_version} to {requested_version} ...") + + current = ANSIBLE_RELEASE_FILE.read_text() + updated = ANSIBLE_VERSION_PATTERN.sub(ANSIBLE_VERSION_FORMAT.format(version=requested_version), current) + + if current == updated: + raise RuntimeError("Failed to set the ansible-core version.") + + ANSIBLE_RELEASE_FILE.write_text(updated) + + +def create_reproducible_sdist(original_path: pathlib.Path, output_path: pathlib.Path, mtime: int) -> None: + """Read the specified sdist and write out a new copy with uniform file metadata at the specified location.""" + with tarfile.open(original_path) as original_archive: + with tempfile.TemporaryDirectory() as temp_dir: + tar_file = pathlib.Path(temp_dir) / "sdist.tar" + + with tarfile.open(tar_file, mode="w") as tar_archive: + for original_info in original_archive.getmembers(): # type: tarfile.TarInfo + tar_archive.addfile(create_reproducible_tar_info(original_info, mtime), original_archive.extractfile(original_info)) + + with tar_file.open("rb") as tar_archive: + with gzip.GzipFile(output_path, "wb", mtime=mtime) as output_archive: + shutil.copyfileobj(tar_archive, output_archive) + + +def create_reproducible_tar_info(original: tarfile.TarInfo, mtime: int) -> tarfile.TarInfo: + """Return a copy of the given TarInfo with uniform file metadata.""" + sanitized = tarfile.TarInfo() + sanitized.name = original.name + sanitized.size = original.size + sanitized.mtime = mtime + sanitized.mode = (original.mode & ~(stat.S_IRWXU | stat.S_IRWXG | stat.S_IRWXO)) | stat.S_IRUSR | stat.S_IRGRP | stat.S_IROTH | stat.S_IWUSR + sanitized.type = original.type + sanitized.linkname = original.linkname + sanitized.uid = 0 + sanitized.gid = 0 + sanitized.uname = "root" + sanitized.gname = "root" + + if original.mode & (stat.S_IXUSR | stat.S_IXGRP | stat.S_IXOTH): + sanitized.mode |= stat.S_IXUSR | stat.S_IXGRP | stat.S_IXOTH + + return sanitized + + +def test_built_artifact(path: pathlib.Path) -> None: + """Test the specified built artifact by installing it in a venv and running some basic commands.""" + with tempfile.TemporaryDirectory() as temp_dir_name: + temp_dir = pathlib.Path(temp_dir_name) + + venv_dir = temp_dir / "venv" + venv_bin_dir = venv_dir / "bin" + + venv.create(venv_dir, with_pip=True) + + env = os.environ.copy() + env.pop("PYTHONPATH", None) # avoid interference from ansible being injected into the environment + env.update( + PATH=os.pathsep.join((str(venv_bin_dir), env["PATH"])), + ) + + run("pip", "install", path, env=env | PIP_ENV, cwd=CHECKOUT_DIR) + + run("ansible", "--version", env=env, cwd=CHECKOUT_DIR) + run("ansible-test", "--version", env=env, cwd=CHECKOUT_DIR) + + +def get_sdist_path(version: Version, dist_dir: pathlib.Path = DIST_DIR) -> pathlib.Path: + """Return the path to the sdist file.""" + return dist_dir / f"ansible-core-{version}.tar.gz" + + +def get_wheel_path(version: Version, dist_dir: pathlib.Path = DIST_DIR) -> pathlib.Path: + """Return the path to the wheel file.""" + return dist_dir / f"ansible_core-{version}-py3-none-any.whl" + + +def calculate_digest(path: pathlib.Path) -> str: + """Return the digest for the specified file.""" + # TODO: use hashlib.file_digest once Python 3.11 is the minimum supported version + return hashlib.new(DIGEST_ALGORITHM, path.read_bytes()).hexdigest() + + +@functools.cache +def get_release_artifact_details(repository: str, version: Version, validate: bool) -> list[ReleaseArtifact]: + """Return information about the release artifacts hosted on PyPI.""" + endpoint = PYPI_ENDPOINTS[repository] + url = f"{endpoint}/ansible-core/{version}/json" + + opener = urllib.request.build_opener() + response: http.client.HTTPResponse + + try: + with opener.open(url) as response: + data = json.load(response) + except urllib.error.HTTPError as ex: + if ex.status == http.HTTPStatus.NOT_FOUND: + raise ApplicationError(f"Version {version} not found on PyPI.") from None + + raise RuntimeError(f"Failed to get {version} from PyPI: {ex}") from ex + + artifacts = [describe_release_artifact(version, item, validate) for item in data["urls"]] + + expected_artifact_types = {"bdist_wheel", "sdist"} + found_artifact_types = set(artifact.package_type for artifact in artifacts) + + if found_artifact_types != expected_artifact_types: + raise RuntimeError(f"Expected {expected_artifact_types} artifact types, but found {found_artifact_types} instead.") + + return artifacts + + +def describe_release_artifact(version: Version, item: dict[str, t.Any], validate: bool) -> ReleaseArtifact: + """Return release artifact details extracted from the given PyPI data.""" + package_type = item["packagetype"] + + # The artifact URL is documented as stable, so is safe to put in release notes and announcements. + # See: https://github.com/pypi/warehouse/blame/c95be4a1055f4b36a8852715eb80318c81fc00ca/docs/api-reference/integration-guide.rst#L86-L90 + url = item["url"] + + pypi_size = item["size"] + pypi_digest = item["digests"][DIGEST_ALGORITHM] + + if package_type == "bdist_wheel": + local_artifact_file = get_wheel_path(version) + package_label = "Built Distribution" + elif package_type == "sdist": + local_artifact_file = get_sdist_path(version) + package_label = "Source Distribution" + else: + raise NotImplementedError(f"Package type '{package_type}' is not supported.") + + if validate: + try: + local_size = local_artifact_file.stat().st_size + local_digest = calculate_digest(local_artifact_file) + except FileNotFoundError: + raise ApplicationError(f"Missing local artifact: {local_artifact_file.relative_to(CHECKOUT_DIR)}") from None + + if local_size != pypi_size: + raise ApplicationError(f"The {version} local {package_type} size {local_size} does not match the PyPI size {pypi_size}.") + + if local_digest != pypi_digest: + raise ApplicationError(f"The {version} local {package_type} digest '{local_digest}' does not match the PyPI digest '{pypi_digest}'.") + + return ReleaseArtifact( + package_type=package_type, + package_label=package_label, + url=url, + size=pypi_size, + digest=pypi_digest, + digest_algorithm=DIGEST_ALGORITHM.upper(), + ) + + +def get_next_release_date(start: datetime.date, step: int, after: datetime.date) -> datetime.date: + """Return the next release date.""" + if start > after: + raise ValueError(f"{start=} is greater than {after=}") + + current_delta = after - start + release_delta = datetime.timedelta(days=(math.floor(current_delta.days / step) + 1) * step) + + release = start + release_delta + + return release + + +def create_template_environment() -> jinja2.Environment: + """Create and return a jinja2 environment.""" + env = jinja2.Environment() + env.filters.update( + basename=os.path.basename, + ) + + return env + + +def create_github_release_notes(upstream: Remote, repository: str, version: Version, validate: bool) -> str: + """Create and return GitHub release notes.""" + env = create_template_environment() + template = env.from_string(GITHUB_RELEASE_NOTES_TEMPLATE) + + variables = dict( + version=version, + releases=get_release_artifact_details(repository, version, validate), + changelog=f"https://github.com/{upstream.user}/{upstream.repo}/blob/v{ version }/changelogs/CHANGELOG-v{ version.major }.{ version.minor }.rst", + ) + + release_notes = template.render(**variables).strip() + + return release_notes + + +def create_release_announcement(upstream: Remote, repository: str, version: Version, validate: bool) -> ReleaseAnnouncement: + """Create and return a release announcement message.""" + env = create_template_environment() + subject_template = env.from_string(RELEASE_ANNOUNCEMENT_SUBJECT_TEMPLATE) + body_template = env.from_string(RELEASE_ANNOUNCEMENT_BODY_TEMPLATE) + + today = datetime.datetime.now(tz=datetime.timezone.utc).date() + + variables = dict( + version=version, + info=dict( + name="ansible-core", + short=f"{version.major}.{version.minor}", + releases=get_release_artifact_details(repository, version, validate), + ), + next_rc=get_next_release_date(datetime.date(2021, 8, 9), 28, today), + next_ga=get_next_release_date(datetime.date(2021, 8, 16), 28, today), + rc=version.pre and version.pre[0] == "rc", + beta=version.pre and version.pre[0] == "b", + alpha=version.pre and version.pre[0] == "a", + major=version.micro == 0, + upstream=upstream, + ) + + if version.pre and version.pre[0] in ("a", "b"): + display.warning("The release announcement template does not populate the date for the next release.") + + subject = subject_template.render(**variables).strip() + body = body_template.render(**variables).strip() + + message = ReleaseAnnouncement( + subject=subject, + body=body, + ) + + return message + + +# endregion +# region Templates + + +FINAL_RELEASE_ANNOUNCEMENT_RECIPIENTS = [ + "ansible-announce@googlegroups.com", + "ansible-project@googlegroups.com", + "ansible-devel@googlegroups.com", +] + +PRE_RELEASE_ANNOUNCEMENT_RECIPIENTS = [ + "ansible-devel@googlegroups.com", +] + +GITHUB_RELEASE_NOTES_TEMPLATE = """ +# Changelog + +See the [full changelog]({{ changelog }}) for the changes included in this release. + +# Release Artifacts + +{%- for release in releases %} +* {{ release.package_label }}: [{{ release.url|basename }}]({{ release.url }}) - {{ release.size }} bytes + * {{ release.digest }} ({{ release.digest_algorithm }}) +{%- endfor %} +""" + +# These release templates were adapted from sivel's release announcement script. +# See: https://gist.github.com/sivel/937bc2862a9677d8db875f3b10744d8c + +RELEASE_ANNOUNCEMENT_SUBJECT_TEMPLATE = """ +New release{% if rc %} candidate{% elif beta %} beta{% elif alpha %} alpha{% endif %}: {{ info.name }} {{ version }} +""" + +# NOTE: Gmail will automatically wrap the plain text version when sending. +# There's no need to perform wrapping ahead of time for normal sentences. +# However, lines with special formatting should be kept short to avoid unwanted wrapping. +RELEASE_ANNOUNCEMENT_BODY_TEMPLATE = """ +Hi all- we're happy to announce the{{ " " }} +{%- if rc -%} +following release candidate +{%- elif beta -%} +beta release of +{%- elif alpha -%} +alpha release of +{%- else -%} +general release of +{%- endif -%}: + +{{ info.name }} {{ version }} + + +How to get it +------------- + +$ python3 -m pip install --user {{ info.name }}=={{ version }} + +The release artifacts can be found here: +{% for release in info.releases %} +# {{ release.package_label }}: {{ release.size }} bytes +# {{ release.digest_algorithm }}: {{ release.digest }} +{{ release.url }} +{%- endfor %} + + +What's new +---------- + +{% if major %} +This release is a major release. +{%- else -%} +This release is a maintenance release containing numerous bugfixes. +{% endif %} +The full changelog can be found here: + +https://github.com/{{ upstream.user }}/{{ upstream.repo }}/blob/v{{ version }}/changelogs/CHANGELOG-v{{ info.short }}.rst + + +Schedule for future releases +---------------------------- +{% if rc %} +The release candidate will become a general availability release on {{ next_ga.strftime('%-d %B %Y') }}. +{% elif beta %} +Subject to the need for additional beta releases, the first release candidate is scheduled for X. +{% elif alpha %} +Subject to the need for additional alpha releases, the first release beta is scheduled for X. +{% else %} +The next release candidate is planned to be released on {{ next_rc.strftime('%-d %B %Y') }}. The next general availability release will be one week after. +{% endif %} + +Porting help +------------ + +If you discover any errors or if any of your working playbooks break when you upgrade, please use the following link to report the regression: + +https://github.com/{{ upstream.user }}/{{ upstream.repo }}/issues/new/choose + +In your issue, be sure to mention the version that works and the one that doesn't. + +Thanks! +""" + +# endregion +# region Commands + +command = CommandFramework( + repository=dict(metavar="REPO", choices=tuple(PYPI_ENDPOINTS), default="pypi", help="PyPI repository to use: %(choices)s [%(default)s]"), + version=dict(exclusive="version", help="version to set"), + pre=dict(exclusive="version", help="increment version to the specified pre-release (aN, bN, rcN)"), + final=dict(exclusive="version", action="store_true", help="increment version to the next final release"), + commit=dict(help="commit to tag"), + mailto=dict(name="--no-mailto", action="store_false", help="write announcement to console instead of using a mailto: link"), + validate=dict(name="--no-validate", action="store_false", help="disable validation of PyPI artifacts against local ones"), + prompt=dict(name="--no-prompt", action="store_false", help="disable interactive prompt before publishing with twine"), + allow_tag=dict(action="store_true", help="allow an existing release tag (for testing)"), + allow_stale=dict(action="store_true", help="allow a stale checkout (for testing)"), + allow_dirty=dict(action="store_true", help="allow untracked files and files with changes (for testing)"), +) + + +@command +def instructions() -> None: + """Show instructions for the release process.""" + message = """ +Releases must be performed using an up-to-date checkout of a fork of the Ansible repository. + +1. Make sure your checkout is up-to-date. +2. Run the `prepare` command [1], then: + a. Submit the PR opened in the browser. + b. Wait for CI to pass. + c. Merge the PR. +3. Update your checkout to include the commit from the PR which was just merged. +4. Run the `complete` command [2], then: + a. Submit the GitHub release opened in the browser. + b. Submit the PR opened in the browser. + c. Send the release announcement opened in your browser. + d. Wait for CI to pass. + e. Merge the PR. + +[1] Use the `--final`, `--pre` or `--version` option for control over the version. +[2] During the `publish` step, `twine` may prompt for credentials. +""" + + display.show(message.strip()) + + +@command +def show_version(final: bool = False, pre: str | None = None) -> None: + """Show the current and next ansible-core version.""" + current_version = get_ansible_version(mode=VersionMode.ALLOW_DEV_POST) + display.show(f"Current version: {current_version}") + + try: + next_version = get_next_version(current_version, final=final, pre=pre) + except ApplicationError as ex: + display.show(f" Next version: Unknown - {ex}") + else: + display.show(f" Next version: {next_version}") + + check_ansible_version(current_version, next_version) + + +@command +def check_state(allow_stale: bool = False) -> None: + """Verify the git repository is in a usable state for creating a pull request.""" + get_git_state(get_ansible_version(), allow_stale) + + +# noinspection PyUnusedLocal +@command +def prepare(final: bool = False, pre: str | None = None, version: str | None = None) -> None: + """Prepare a release.""" + command.run( + update_version, + check_state, + generate_summary, + generate_changelog, + create_release_pr, + ) + + +@command +def update_version(final: bool = False, pre: str | None = None, version: str | None = None) -> None: + """Update the version embedded in the source code.""" + current_version = get_ansible_version(mode=VersionMode.REQUIRE_DEV_POST) + + if version: + requested_version = get_ansible_version(version) + else: + requested_version = get_next_version(current_version, final=final, pre=pre) + + set_ansible_version(current_version, requested_version) + + +@command +def generate_summary() -> None: + """Generate a summary changelog fragment for this release.""" + version = get_ansible_version() + release_date = datetime.datetime.now(datetime.timezone.utc).strftime("%Y-%m-%d") + summary_path = CHANGELOGS_FRAGMENTS_DIR / f"{version}_summary.yaml" + major_minor = f"{version.major}.{version.minor}" + + content = f""" +release_summary: | + | Release Date: {release_date} + | `Porting Guide `__ +""" + + summary_path.write_text(content.lstrip()) + + +@command +def generate_changelog() -> None: + """Generate the changelog and validate the results.""" + env = ensure_venv() + env.update( + PATH=os.pathsep.join((str(ANSIBLE_BIN_DIR), env["PATH"])), + PYTHONPATH=ANSIBLE_LIB_DIR, + ) + + # TODO: consider switching back to the original changelog generator instead of using antsibull-changelog + + run("antsibull-changelog", "release", "-vv", "--use-ansible-doc", env=env, cwd=CHECKOUT_DIR) + run("antsibull-changelog", "generate", "-vv", "--use-ansible-doc", env=env, cwd=CHECKOUT_DIR) + + run("ansible-test", "sanity", CHANGELOGS_DIR, ANSIBLE_RELEASE_FILE, env=env, cwd=CHECKOUT_DIR) + + +@command +def create_release_pr(allow_stale: bool = False) -> None: + """Create a branch and open a browser tab for creating a release pull request.""" + version = get_ansible_version() + + pr = prepare_pull_request( + version=version, + branch=f"release-{version}-{secrets.token_hex(4)}", + title=f"New release v{version}", + add=( + CHANGELOGS_DIR, + ANSIBLE_RELEASE_FILE, + ), + allow_stale=allow_stale, + ) + + create_pull_request(pr) + + +# noinspection PyUnusedLocal +@command +def complete(repository: str, mailto: bool = True, allow_dirty: bool = False) -> None: + """Complete a release after the prepared changes have been merged.""" + command.run( + check_state, + build, + test, + publish, + tag_release, + post_version, + create_post_pr, + release_announcement, + ) + + +@command +def build(allow_dirty: bool = False) -> None: + """Build the sdist and wheel.""" + version = get_ansible_version(mode=VersionMode.ALLOW_DEV_POST) + env = ensure_venv() + + dirty = git("status", "--porcelain", "--untracked-files=all", capture_output=True).stdout.strip().splitlines() + + if dirty: + with suppress_when(allow_dirty): + raise ApplicationError(f"There are {len(dirty)} files which are untracked and/or have changes, which will be omitted from the build.") + + sdist_file = get_sdist_path(version) + wheel_file = get_wheel_path(version) + + with tempfile.TemporaryDirectory(dir=DIST_DIR, prefix=f"build-{version}-", suffix=".tmp") as temp_dir_name: + temp_dir = pathlib.Path(temp_dir_name) + dist_dir = temp_dir / "dist" + + commit_time = int(git("show", "-s", "--format=%ct", capture_output=True).stdout) + + env.update( + SOURCE_DATE_EPOCH=str(commit_time), + ) + + git("worktree", "add", "-d", temp_dir) + + try: + run("python", "-m", "build", "--config-setting=--build-manpages", env=env, cwd=temp_dir) + + create_reproducible_sdist(get_sdist_path(version, dist_dir), sdist_file, commit_time) + get_wheel_path(version, dist_dir).rename(wheel_file) + finally: + git("worktree", "remove", temp_dir) + + +@command +def test() -> None: + """Test the sdist and wheel.""" + command.run( + test_sdist, + test_wheel, + ) + + +@command +def test_sdist() -> None: + """Test the sdist.""" + version = get_ansible_version(mode=VersionMode.ALLOW_DEV_POST) + sdist_file = get_sdist_path(version) + + with tempfile.TemporaryDirectory() as temp_dir_name: + temp_dir = pathlib.Path(temp_dir_name) + + with contextlib.ExitStack() as stack: + try: + sdist = stack.enter_context(tarfile.open(sdist_file)) + except FileNotFoundError: + raise ApplicationError(f"Missing sdist: {sdist_file.relative_to(CHECKOUT_DIR)}") from None + + sdist.extractall(temp_dir) + + man1_dir = temp_dir / sdist_file.with_suffix("").with_suffix("").name / "docs" / "man" / "man1" + man1_pages = sorted(man1_dir.glob("*.1")) + + if not man1_pages: + raise ApplicationError(f"No man pages found in the sdist at: {man1_dir.relative_to(temp_dir)}") + + pyc_glob = "*.pyc*" + pyc_files = sorted(path.relative_to(temp_dir) for path in temp_dir.rglob(pyc_glob)) + + if pyc_files: + raise ApplicationError(f"Found {len(pyc_files)} '{pyc_glob}' file(s): {', '.join(map(str, pyc_files))}") + + display.show(f"Found man1 pages: {', '.join([path.name for path in man1_pages])}") + + test_built_artifact(sdist_file) + + +@command +def test_wheel() -> None: + """Test the wheel.""" + version = get_ansible_version(mode=VersionMode.ALLOW_DEV_POST) + wheel_file = get_wheel_path(version) + + with tempfile.TemporaryDirectory() as temp_dir_name: + temp_dir = pathlib.Path(temp_dir_name) + + with contextlib.ExitStack() as stack: + try: + wheel = stack.enter_context(zipfile.ZipFile(wheel_file)) + except FileNotFoundError: + raise ApplicationError(f"Missing wheel for version {version}: {wheel_file}") from None + + wheel.extractall(temp_dir) + + test_built_artifact(wheel_file) + + +@command +def publish(repository: str, prompt: bool = True) -> None: + """Publish to PyPI.""" + version = get_ansible_version() + sdist_file = get_sdist_path(version) + wheel_file = get_wheel_path(version) + env = ensure_venv() + + if prompt: + try: + while input(f"Do you want to publish {version} to the '{repository}' repository?\nEnter the repository name to confirm: ") != repository: + pass + except KeyboardInterrupt: + display.show("") + raise ApplicationError("Publishing was aborted by the user.") from None + + run("twine", "upload", "-r", repository, sdist_file, wheel_file, env=env, cwd=CHECKOUT_DIR) + + +@command +def tag_release(repository: str, commit: str | None = None, validate: bool = True, allow_tag: bool = False) -> None: + """Create a GitHub release using the current or specified commit.""" + upstream = get_remotes().upstream + + if commit: + git("fetch", upstream.name) # fetch upstream to make sure the commit can be found + + commit = get_commit(commit) + version = get_ansible_version(commit=commit) + tag = f"v{version}" + + if upstream_tag := git("ls-remote", "--tags", upstream.name, tag, capture_output=True).stdout.strip(): + with suppress_when(allow_tag): + raise ApplicationError(f"Version {version} has already been tagged: {upstream_tag}") + + upstream_branch = get_upstream_branch(version) + upstream_refs = git("branch", "-r", "--format=%(refname)", "--contains", commit, capture_output=True).stdout.strip().splitlines() + upstream_ref = f"refs/remotes/{upstream.name}/{upstream_branch}" + + if upstream_ref not in upstream_refs: + raise ApplicationError(f"Commit {upstream_ref} not found. Found {len(upstream_refs)} upstream ref(s): {', '.join(upstream_refs)}") + + body = create_github_release_notes(upstream, repository, version, validate) + + release = GitHubRelease( + user=upstream.user, + repo=upstream.repo, + target=commit, + tag=tag, + title=tag, + body=body, + pre_release=version.pre is not None, + ) + + create_github_release(release) + + +@command +def post_version() -> None: + """Set the post release version.""" + current_version = get_ansible_version() + requested_version = get_ansible_version(f"{current_version}.post0", mode=VersionMode.REQUIRE_POST) + + set_ansible_version(current_version, requested_version) + + +@command +def create_post_pr(allow_stale: bool = False) -> None: + """Create a branch and open a browser tab for creating a post release pull request.""" + version = get_ansible_version(mode=VersionMode.REQUIRE_POST) + + pr = prepare_pull_request( + version=version, + branch=f"release-{version}-{secrets.token_hex(4)}", + title=f"Update Ansible release version to v{version}.", + add=(ANSIBLE_RELEASE_FILE,), + allow_stale=allow_stale, + ) + + create_pull_request(pr) + + +@command +def release_announcement(repository: str, version: str | None = None, mailto: bool = True, validate: bool = True) -> None: + """Generate a release announcement for the current or specified version.""" + parsed_version = get_ansible_version(version, mode=VersionMode.STRIP_POST) + upstream = get_remotes().upstream + message = create_release_announcement(upstream, repository, parsed_version, validate) + recipient_list = PRE_RELEASE_ANNOUNCEMENT_RECIPIENTS if parsed_version.is_prerelease else FINAL_RELEASE_ANNOUNCEMENT_RECIPIENTS + recipients = ", ".join(recipient_list) + + if mailto: + to = urllib.parse.quote(recipients) + + params = dict( + subject=message.subject, + body=message.body, + ) + + query_string = urllib.parse.urlencode(params) + url = f"mailto:{to}?{query_string}" + + display.show("Opening email client through default web browser ...") + webbrowser.open(url) + else: + print(f"TO: {recipients}") + print(f"SUBJECT: {message.subject}") + print() + print(message.body) + + +# endregion + + +if __name__ == "__main__": + command.main() diff --git a/test/integration/targets/ansible-doc/collections/ansible_collections/testns/testcol/plugins/modules/randommodule.py b/test/integration/targets/ansible-doc/collections/ansible_collections/testns/testcol/plugins/modules/randommodule.py index f251a69f..79b7a704 100644 --- a/test/integration/targets/ansible-doc/collections/ansible_collections/testns/testcol/plugins/modules/randommodule.py +++ b/test/integration/targets/ansible-doc/collections/ansible_collections/testns/testcol/plugins/modules/randommodule.py @@ -48,6 +48,18 @@ options: version: '2.0.0' extends_documentation_fragment: - testns.testcol2.module +seealso: + - module: ansible.builtin.ping + - module: ansible.builtin.uri + description: Use this to fetch an URI + - module: testns.testcol.test + - module: testns.testcol.fakemodule + description: A fake module + - link: https://docs.ansible.com + name: Ansible docsite + description: See also the Ansible docsite. + - ref: foo_bar + description: Some foo bar. ''' EXAMPLES = ''' diff --git a/test/integration/targets/ansible-doc/fix-urls.py b/test/integration/targets/ansible-doc/fix-urls.py new file mode 100644 index 00000000..1379a4e4 --- /dev/null +++ b/test/integration/targets/ansible-doc/fix-urls.py @@ -0,0 +1,15 @@ +"""Unwrap URLs to docs.ansible.com and remove version""" + +import re +import sys + + +def main(): + data = sys.stdin.read() + data = re.sub('(https://docs\\.ansible\\.com/[^ ]+)\n +([^ ]+)\n', '\\1\\2\n', data, flags=re.MULTILINE) + data = re.sub('https://docs\\.ansible\\.com/ansible(|-core)/(?:[^/]+)/', 'https://docs.ansible.com/ansible\\1/devel/', data) + sys.stdout.write(data) + + +if __name__ == '__main__': + main() diff --git a/test/integration/targets/ansible-doc/randommodule-text.output b/test/integration/targets/ansible-doc/randommodule-text.output index 51d7930a..602d66ec 100644 --- a/test/integration/targets/ansible-doc/randommodule-text.output +++ b/test/integration/targets/ansible-doc/randommodule-text.output @@ -65,6 +65,25 @@ OPTIONS (= is mandatory): type: str +SEE ALSO: + * Module ansible.builtin.ping + The official documentation on the + ansible.builtin.ping module. + https://docs.ansible.com/ansible-core/devel/collections/ansible/builtin/ping_module.html + * Module ansible.builtin.uri + Use this to fetch an URI + https://docs.ansible.com/ansible-core/devel/collections/ansible/builtin/uri_module.html + * Module testns.testcol.test + * Module testns.testcol.fakemodule + A fake module + * Ansible docsite + See also the Ansible docsite. + https://docs.ansible.com + * Ansible documentation [foo_bar] + Some foo bar. + https://docs.ansible.com/ansible-core/devel/#stq=foo_bar&stp=1 + + AUTHOR: Ansible Core Team EXAMPLES: diff --git a/test/integration/targets/ansible-doc/randommodule.output b/test/integration/targets/ansible-doc/randommodule.output index 25f46c36..cf036000 100644 --- a/test/integration/targets/ansible-doc/randommodule.output +++ b/test/integration/targets/ansible-doc/randommodule.output @@ -70,6 +70,31 @@ "type": "str" } }, + "seealso": [ + { + "module": "ansible.builtin.ping" + }, + { + "description": "Use this to fetch an URI", + "module": "ansible.builtin.uri" + }, + { + "module": "testns.testcol.test" + }, + { + "description": "A fake module", + "module": "testns.testcol.fakemodule" + }, + { + "description": "See also the Ansible docsite.", + "link": "https://docs.ansible.com", + "name": "Ansible docsite" + }, + { + "description": "Some foo bar.", + "ref": "foo_bar" + } + ], "short_description": "A random module", "version_added": "1.0.0", "version_added_collection": "testns.testcol" diff --git a/test/integration/targets/ansible-doc/runme.sh b/test/integration/targets/ansible-doc/runme.sh index 887d3c41..f51fa8a4 100755 --- a/test/integration/targets/ansible-doc/runme.sh +++ b/test/integration/targets/ansible-doc/runme.sh @@ -19,8 +19,8 @@ current_out="$(ansible-doc --playbook-dir ./ testns.testcol.fakemodule | sed '1 expected_out="$(sed '1 s/\(^> TESTNS\.TESTCOL\.FAKEMODULE\).*(.*)$/\1/' fakemodule.output)" test "$current_out" == "$expected_out" -# we use sed to strip the module path from the first line -current_out="$(ansible-doc --playbook-dir ./ testns.testcol.randommodule | sed '1 s/\(^> TESTNS\.TESTCOL\.RANDOMMODULE\).*(.*)$/\1/')" +# we use sed to strip the plugin path from the first line, and fix-urls.py to unbreak and replace URLs from stable-X branches +current_out="$(ansible-doc --playbook-dir ./ testns.testcol.randommodule | sed '1 s/\(^> TESTNS\.TESTCOL\.RANDOMMODULE\).*(.*)$/\1/' | python fix-urls.py)" expected_out="$(sed '1 s/\(^> TESTNS\.TESTCOL\.RANDOMMODULE\).*(.*)$/\1/' randommodule-text.output)" test "$current_out" == "$expected_out" diff --git a/test/integration/targets/ansible-galaxy-collection/tasks/install.yml b/test/integration/targets/ansible-galaxy-collection/tasks/install.yml index 8916faf5..cca83c7b 100644 --- a/test/integration/targets/ansible-galaxy-collection/tasks/install.yml +++ b/test/integration/targets/ansible-galaxy-collection/tasks/install.yml @@ -5,7 +5,7 @@ state: directory - name: install simple collection from first accessible server - command: ansible-galaxy collection install namespace1.name1 {{ galaxy_verbosity }} + command: ansible-galaxy collection install namespace1.name1 -vvvv environment: ANSIBLE_COLLECTIONS_PATH: '{{ galaxy_dir }}/ansible_collections' register: from_first_good_server @@ -30,6 +30,7 @@ - install_normal_files.files[1].path | basename in ['MANIFEST.json', 'FILES.json', 'README.md'] - install_normal_files.files[2].path | basename in ['MANIFEST.json', 'FILES.json', 'README.md'] - (install_normal_manifest.content | b64decode | from_json).collection_info.version == '1.0.9' + - 'from_first_good_server.stdout|regex_findall("has not signed namespace1\.name1")|length == 1' - name: Remove the collection file: diff --git a/test/integration/targets/ansible-test-integration-targets/ansible_collections/ns/col/tests/integration/target-prefixes.something b/test/integration/targets/ansible-test-integration-targets/ansible_collections/ns/col/tests/integration/target-prefixes.something new file mode 100644 index 00000000..b3065492 --- /dev/null +++ b/test/integration/targets/ansible-test-integration-targets/ansible_collections/ns/col/tests/integration/target-prefixes.something @@ -0,0 +1,2 @@ +one-part +two_part diff --git a/test/integration/targets/ansible-test-integration-targets/ansible_collections/ns/col/tests/integration/targets/one-part_test/aliases b/test/integration/targets/ansible-test-integration-targets/ansible_collections/ns/col/tests/integration/targets/one-part_test/aliases new file mode 100644 index 00000000..e69de29b diff --git a/test/integration/targets/ansible-test-integration-targets/ansible_collections/ns/col/tests/integration/targets/two_part_test/aliases b/test/integration/targets/ansible-test-integration-targets/ansible_collections/ns/col/tests/integration/targets/two_part_test/aliases new file mode 100644 index 00000000..e69de29b diff --git a/test/integration/targets/ansible-test-integration-targets/test.py b/test/integration/targets/ansible-test-integration-targets/test.py index 443ed59d..8effb647 100755 --- a/test/integration/targets/ansible-test-integration-targets/test.py +++ b/test/integration/targets/ansible-test-integration-targets/test.py @@ -31,5 +31,17 @@ class OptionsTest(unittest.TestCase): raise Exception(f'{ex}:\n>>> Standard Output:\n{ex.stdout}\n>>> Standard Error:\n{ex.stderr}') from ex +class PrefixesTest(unittest.TestCase): + def test_prefixes(self): + try: + command = ['ansible-test', 'integration', '--list-targets'] + + something = subprocess.run([*command, 'something/'], text=True, capture_output=True, check=True) + + self.assertEqual(something.stdout.splitlines(), ['one-part_test', 'two_part_test']) + except subprocess.CalledProcessError as ex: + raise Exception(f'{ex}:\n>>> Standard Output:\n{ex.stdout}\n>>> Standard Error:\n{ex.stderr}') from ex + + if __name__ == '__main__': unittest.main() diff --git a/test/integration/targets/ansible-test-vendoring/aliases b/test/integration/targets/ansible-test-vendoring/aliases new file mode 100644 index 00000000..09cbf4b8 --- /dev/null +++ b/test/integration/targets/ansible-test-vendoring/aliases @@ -0,0 +1,5 @@ +shippable/posix/group3 # runs in the distro test containers +shippable/generic/group1 # runs in the default test container +context/controller +needs/target/collection +destructive # adds and then removes packages into lib/ansible/_vendor/ diff --git a/test/integration/targets/ansible-test-vendoring/ansible_collections/ns/col/tests/config.yml b/test/integration/targets/ansible-test-vendoring/ansible_collections/ns/col/tests/config.yml new file mode 100644 index 00000000..c73de69d --- /dev/null +++ b/test/integration/targets/ansible-test-vendoring/ansible_collections/ns/col/tests/config.yml @@ -0,0 +1,4 @@ +# This config file is included to cause ansible-test to import the `packaging` module. + +modules: + python_requires: default diff --git a/test/integration/targets/ansible-test-vendoring/runme.sh b/test/integration/targets/ansible-test-vendoring/runme.sh new file mode 100755 index 00000000..fa6f652a --- /dev/null +++ b/test/integration/targets/ansible-test-vendoring/runme.sh @@ -0,0 +1,33 @@ +#!/usr/bin/env bash + +set -eux + +# Run import sanity tests which require modifications to the source directory. + +vendor_dir="$(python -c 'import pathlib, ansible._vendor; print(pathlib.Path(ansible._vendor.__file__).parent)')" + +mkdir "${vendor_dir}/packaging/" # intended to fail if packaging is already present (to avoid deleting it later) + +cleanup() { + rm -rf "${vendor_dir}/packaging/" +} + +trap cleanup EXIT + +# Verify that packages installed in the vendor directory are loaded by ansible-test. +# This is done by injecting a broken `packaging` package, which should cause ansible-test to fail. + +echo 'raise Exception("intentional failure from ansible-test-vendoring integration test")' > "${vendor_dir}/packaging/__init__.py" + +if ansible-test sanity --test import --color --truncate 0 "${@}" > output.log 2>&1; then + echo "ansible-test did not exit with a non-zero status" + cat output.log + exit 1 +fi + +if ! grep '^Exception: intentional failure from ansible-test-vendoring integration test$' output.log; then + echo "ansible-test did not fail with the expected output" + cat output.log + exit 1 +fi + diff --git a/test/integration/targets/async/tasks/main.yml b/test/integration/targets/async/tasks/main.yml index 05c789e6..f5e5c992 100644 --- a/test/integration/targets/async/tasks/main.yml +++ b/test/integration/targets/async/tasks/main.yml @@ -122,7 +122,7 @@ - name: assert task failed correctly assert: that: - - async_result.ansible_job_id is match('\d+\.\d+') + - async_result.ansible_job_id is match('j\d+\.\d+') - async_result.finished == 1 - async_result is finished - async_result is not changed @@ -140,7 +140,7 @@ - name: validate response assert: that: - - async_result.ansible_job_id is match('\d+\.\d+') + - async_result.ansible_job_id is match('j\d+\.\d+') - async_result.finished == 1 - async_result is finished - async_result.changed == false @@ -159,7 +159,7 @@ - name: validate response assert: that: - - async_result.ansible_job_id is match('\d+\.\d+') + - async_result.ansible_job_id is match('j\d+\.\d+') - async_result.finished == 1 - async_result is finished - async_result.changed == true @@ -176,7 +176,7 @@ - name: validate response assert: that: - - async_result.ansible_job_id is match('\d+\.\d+') + - async_result.ansible_job_id is match('j\d+\.\d+') - async_result.finished == 1 - async_result is finished - async_result.changed == true diff --git a/test/integration/targets/async_fail/tasks/main.yml b/test/integration/targets/async_fail/tasks/main.yml index 40f72e10..24cea1d5 100644 --- a/test/integration/targets/async_fail/tasks/main.yml +++ b/test/integration/targets/async_fail/tasks/main.yml @@ -28,7 +28,7 @@ - name: validate that by the end of the retry interval, we succeeded assert: that: - - async_result.ansible_job_id is match('\d+\.\d+') + - async_result.ansible_job_id is match('j\d+\.\d+') - async_result.finished == 1 - async_result is finished - async_result is changed diff --git a/test/integration/targets/callback_default/runme.sh b/test/integration/targets/callback_default/runme.sh index 0ee4259d..a815132a 100755 --- a/test/integration/targets/callback_default/runme.sh +++ b/test/integration/targets/callback_default/runme.sh @@ -135,8 +135,8 @@ run_test default test.yml # Check for async output # NOTE: regex to match 1 or more digits works for both BSD and GNU grep ansible-playbook -i inventory test_async.yml 2>&1 | tee async_test.out -grep "ASYNC OK .* jid=[0-9]\{1,\}" async_test.out -grep "ASYNC FAILED .* jid=[0-9]\{1,\}" async_test.out +grep "ASYNC OK .* jid=j[0-9]\{1,\}" async_test.out +grep "ASYNC FAILED .* jid=j[0-9]\{1,\}" async_test.out rm -f async_test.out # Hide skipped diff --git a/test/integration/targets/canonical-pep517-self-packaging/aliases b/test/integration/targets/canonical-pep517-self-packaging/aliases new file mode 100644 index 00000000..4667aa4f --- /dev/null +++ b/test/integration/targets/canonical-pep517-self-packaging/aliases @@ -0,0 +1,3 @@ +shippable/posix/group3 +context/controller +packaging diff --git a/test/integration/targets/canonical-pep517-self-packaging/minimum-build-constraints.txt b/test/integration/targets/canonical-pep517-self-packaging/minimum-build-constraints.txt new file mode 100644 index 00000000..ea5d8084 --- /dev/null +++ b/test/integration/targets/canonical-pep517-self-packaging/minimum-build-constraints.txt @@ -0,0 +1,16 @@ +# Lowest supporting Python 3.9 and 3.10: +setuptools == 57.0.0; python_version == "3.9" or python_version == "3.10" + +# Lowest supporting Python 3.11: +setuptools == 60.0.0; python_version >= "3.11" + + +# An arbitrary old version that was released before Python 3.9.0: +wheel == 0.33.6 + +# Conditional dependencies: +docutils == 0.16 +Jinja2 == 3.0.0 +MarkupSafe == 2.0.0 +PyYAML == 5.3 +straight.plugin == 1.4.2 diff --git a/test/integration/targets/canonical-pep517-self-packaging/modernish-build-constraints.txt b/test/integration/targets/canonical-pep517-self-packaging/modernish-build-constraints.txt new file mode 100644 index 00000000..7f744afd --- /dev/null +++ b/test/integration/targets/canonical-pep517-self-packaging/modernish-build-constraints.txt @@ -0,0 +1,11 @@ +setuptools == 67.4.0 + +# Wheel-only build dependency +wheel == 0.38.4 + +# Conditional dependencies: +docutils == 0.19 +Jinja2 == 3.1.2 +MarkupSafe == 2.1.2 +PyYAML == 6.0 +straight.plugin == 1.5.0 # WARNING: v1.5.0 doesn't have a Git tag / src diff --git a/test/integration/targets/canonical-pep517-self-packaging/runme.sh b/test/integration/targets/canonical-pep517-self-packaging/runme.sh new file mode 100755 index 00000000..028348f8 --- /dev/null +++ b/test/integration/targets/canonical-pep517-self-packaging/runme.sh @@ -0,0 +1,31 @@ +#!/usr/bin/env bash + +if [[ "${ANSIBLE_DEBUG}" == true ]] # `ansible-test` invoked with `--debug` +then + PYTEST_VERY_VERBOSE_FLAG=-vvvvv + SET_DEBUG_MODE=-x +else + ANSIBLE_DEBUG=false + PYTEST_VERY_VERBOSE_FLAG= + SET_DEBUG_MODE=+x +fi + + +set -eEuo pipefail + +source virtualenv.sh + +set "${SET_DEBUG_MODE}" + +export PIP_DISABLE_PIP_VERSION_CHECK=true +export PIP_NO_PYTHON_VERSION_WARNING=true +export PIP_NO_WARN_SCRIPT_LOCATION=true + +python -Im pip install 'pytest ~= 7.2.0' +python -Im pytest ${PYTEST_VERY_VERBOSE_FLAG} \ + --basetemp="${OUTPUT_DIR}/pytest-tmp" \ + --color=yes \ + --showlocals \ + -p no:forked \ + -p no:mock \ + -ra diff --git a/test/integration/targets/canonical-pep517-self-packaging/runme_test.py b/test/integration/targets/canonical-pep517-self-packaging/runme_test.py new file mode 100644 index 00000000..86b0f753 --- /dev/null +++ b/test/integration/targets/canonical-pep517-self-packaging/runme_test.py @@ -0,0 +1,385 @@ +"""Smoke tests for the in-tree PEP 517 backend.""" + +from __future__ import annotations + +from filecmp import dircmp +from os import chdir, environ, PathLike +from pathlib import Path +from shutil import rmtree +from subprocess import check_call, check_output, PIPE +from sys import executable as current_interpreter, version_info +from tarfile import TarFile +import typing as t + +try: + from contextlib import chdir as _chdir_cm +except ImportError: + from contextlib import contextmanager as _contextmanager + + @_contextmanager + def _chdir_cm(path: PathLike) -> t.Iterator[None]: + original_wd = Path.cwd() + chdir(path) + try: + yield + finally: + chdir(original_wd) + +import pytest + + +DIST_NAME = 'ansible_core' +DIST_FILENAME_BASE = 'ansible-core' +OUTPUT_DIR = Path(environ['OUTPUT_DIR']).resolve().absolute() +SRC_ROOT_DIR = OUTPUT_DIR.parents[3] +GENERATED_MANPAGES_SUBDIR = SRC_ROOT_DIR / 'docs' / 'man' / 'man1' +LOWEST_SUPPORTED_BUILD_DEPS_FILE = ( + Path(__file__).parent / 'minimum-build-constraints.txt' +).resolve().absolute() +MODERNISH_BUILD_DEPS_FILE = ( + Path(__file__).parent / 'modernish-build-constraints.txt' +).resolve().absolute() +RELEASE_MODULE = SRC_ROOT_DIR / 'lib' / 'ansible' / 'release.py' +VERSION_LINE_PREFIX = "__version__ = '" +PKG_DIST_VERSION = next( + line[len(VERSION_LINE_PREFIX):-1] + for line in RELEASE_MODULE.read_text().splitlines() + if line.startswith(VERSION_LINE_PREFIX) +) +EXPECTED_SDIST_NAME_BASE = f'{DIST_FILENAME_BASE}-{PKG_DIST_VERSION}' +EXPECTED_SDIST_NAME = f'{EXPECTED_SDIST_NAME_BASE}.tar.gz' +EXPECTED_WHEEL_NAME = f'{DIST_NAME}-{PKG_DIST_VERSION}-py3-none-any.whl' + +IS_PYTHON310_PLUS = version_info[:2] >= (3, 10) + + +def wipe_generated_manpages() -> None: + """Ensure man1 pages aren't present in the source checkout.""" + # Cleaning up the gitignored manpages... + if not GENERATED_MANPAGES_SUBDIR.exists(): + return + + rmtree(GENERATED_MANPAGES_SUBDIR) + # Removed the generated manpages... + + +def contains_man1_pages(sdist_tarball: Path) -> Path: + """Check if the man1 pages are present in given tarball.""" + with sdist_tarball.open(mode='rb') as tarball_fd: + with TarFile.gzopen(fileobj=tarball_fd, name=None) as tarball: + try: + tarball.getmember( + name=f'{EXPECTED_SDIST_NAME_BASE}/docs/man/man1', + ) + except KeyError: + return False + + return True + + +def unpack_sdist(sdist_tarball: Path, target_directory: Path) -> Path: + """Unarchive given tarball. + + :returns: Path of the package source checkout. + """ + with sdist_tarball.open(mode='rb') as tarball_fd: + with TarFile.gzopen(fileobj=tarball_fd, name=None) as tarball: + tarball.extractall(path=target_directory) + return target_directory / EXPECTED_SDIST_NAME_BASE + + +def assert_dirs_equal(*dir_paths: t.List[Path]) -> None: + dir_comparison = dircmp(*dir_paths) + assert not dir_comparison.left_only + assert not dir_comparison.right_only + assert not dir_comparison.diff_files + assert not dir_comparison.funny_files + + +def normalize_unpacked_rebuilt_sdist(sdist_path: Path) -> None: + top_pkg_info_path = sdist_path / 'PKG-INFO' + nested_pkg_info_path = ( + sdist_path / 'lib' / f'{DIST_NAME}.egg-info' / 'PKG-INFO' + ) + entry_points_path = nested_pkg_info_path.parent / 'entry_points.txt' + + # setuptools v39 write out two trailing empty lines and an unknown platform + # while the recent don't + top_pkg_info_path.write_text( + top_pkg_info_path.read_text().replace( + 'Classifier: Development Status :: 5', + 'Platform: UNKNOWN\nClassifier: Development Status :: 5', + ) + '\n\n' + ) + nested_pkg_info_path.write_text( + nested_pkg_info_path.read_text().replace( + 'Classifier: Development Status :: 5', + 'Platform: UNKNOWN\nClassifier: Development Status :: 5', + ) + '\n\n' + ) + + # setuptools v39 write out one trailing empty line while the recent don't + entry_points_path.write_text(entry_points_path.read_text() + '\n') + + +@pytest.fixture +def venv_python_exe(tmp_path: Path) -> t.Iterator[Path]: + venv_path = tmp_path / 'pytest-managed-venv' + mkvenv_cmd = ( + current_interpreter, '-m', 'venv', str(venv_path), + ) + check_call(mkvenv_cmd, env={}, stderr=PIPE, stdout=PIPE) + yield venv_path / 'bin' / 'python' + rmtree(venv_path) + + +def run_with_venv_python( + python_exe: Path, *cli_args: t.Iterable[str], + env_vars: t.Dict[str, str] = None, +) -> str: + if env_vars is None: + env_vars = {} + full_cmd = str(python_exe), *cli_args + return check_output(full_cmd, env=env_vars, stderr=PIPE) + + +def build_dists( + python_exe: Path, *cli_args: t.Iterable[str], + env_vars: t.Dict[str, str], +) -> str: + return run_with_venv_python( + python_exe, '-m', 'build', + *cli_args, env_vars=env_vars, + ) + + +def pip_install( + python_exe: Path, *cli_args: t.Iterable[str], + env_vars: t.Dict[str, str] = None, +) -> str: + return run_with_venv_python( + python_exe, '-m', 'pip', 'install', + *cli_args, env_vars=env_vars, + ) + + +def test_installing_sdist_build_with_modern_deps_to_old_env( + venv_python_exe: Path, tmp_path: Path, +) -> None: + pip_install(venv_python_exe, 'build ~= 0.10.0') + tmp_dir_sdist_w_modern_tools = tmp_path / 'sdist-w-modern-tools' + build_dists( + venv_python_exe, '--sdist', + '--config-setting=--build-manpages', + f'--outdir={tmp_dir_sdist_w_modern_tools!s}', + str(SRC_ROOT_DIR), + env_vars={ + 'PIP_CONSTRAINT': str(MODERNISH_BUILD_DEPS_FILE), + }, + ) + tmp_path_sdist_w_modern_tools = ( + tmp_dir_sdist_w_modern_tools / EXPECTED_SDIST_NAME + ) + + # Downgrading pip, because v20+ supports in-tree build backends + pip_install(venv_python_exe, 'pip ~= 19.3.1') + + # Smoke test — installing an sdist with pip that does not support + # in-tree build backends. + pip_install( + venv_python_exe, str(tmp_path_sdist_w_modern_tools), '--no-deps', + ) + + # Downgrading pip, because versions that support PEP 517 don't allow + # disabling it with `--no-use-pep517` when `build-backend` is set in + # the `[build-system]` section of `pyproject.toml`, considering this + # an explicit opt-in. + if not IS_PYTHON310_PLUS: + pip_install(venv_python_exe, 'pip == 18.0') + + # Smoke test — installing an sdist with pip that does not support invoking + # PEP 517 interface at all. + # In this scenario, pip will run `setup.py install` since `wheel` is not in + # the environment. + if IS_PYTHON310_PLUS: + tmp_dir_unpacked_sdist_root = tmp_path / 'unpacked-sdist' + tmp_dir_unpacked_sdist_path = tmp_dir_unpacked_sdist_root / EXPECTED_SDIST_NAME_BASE + with TarFile.gzopen(tmp_path_sdist_w_modern_tools) as sdist_fd: + sdist_fd.extractall(path=tmp_dir_unpacked_sdist_root) + + pip_install( + venv_python_exe, 'setuptools', + env_vars={ + 'PIP_CONSTRAINT': str(LOWEST_SUPPORTED_BUILD_DEPS_FILE), + }, + ) + with _chdir_cm(tmp_dir_unpacked_sdist_path): + run_with_venv_python( + venv_python_exe, 'setup.py', 'sdist', + env_vars={'PATH': environ['PATH']}, + ) + else: + pip_install( + venv_python_exe, str(tmp_path_sdist_w_modern_tools), '--no-deps', + env_vars={ + 'PIP_CONSTRAINT': str(LOWEST_SUPPORTED_BUILD_DEPS_FILE), + }, + ) + + # Smoke test — installing an sdist with pip that does not support invoking + # PEP 517 interface at all. + # With `wheel` present, pip will run `setup.py bdist_wheel` and then, + # unpack the result. + pip_install(venv_python_exe, 'wheel') + if IS_PYTHON310_PLUS: + with _chdir_cm(tmp_dir_unpacked_sdist_path): + run_with_venv_python( + venv_python_exe, 'setup.py', 'bdist_wheel', + env_vars={'PATH': environ['PATH']}, + ) + else: + pip_install( + venv_python_exe, str(tmp_path_sdist_w_modern_tools), '--no-deps', + ) + + +def test_dist_rebuilds_with_manpages_premutations( + venv_python_exe: Path, tmp_path: Path, +) -> None: + """Test a series of sdist rebuilds under different conditions. + + This check builds sdists right from the Git checkout with and without + the manpages. It also does this using different versions of the setuptools + PEP 517 build backend being pinned. Finally, it builds a wheel out of one + of the rebuilt sdists. + As intermediate assertions, this test makes simple smoke tests along + the way. + """ + pip_install(venv_python_exe, 'build ~= 0.10.0') + + # Test building an sdist without manpages from the Git checkout + tmp_dir_sdist_without_manpages = tmp_path / 'sdist-without-manpages' + wipe_generated_manpages() + build_dists( + venv_python_exe, '--sdist', + f'--outdir={tmp_dir_sdist_without_manpages!s}', + str(SRC_ROOT_DIR), + env_vars={ + 'PIP_CONSTRAINT': str(MODERNISH_BUILD_DEPS_FILE), + }, + ) + tmp_path_sdist_without_manpages = ( + tmp_dir_sdist_without_manpages / EXPECTED_SDIST_NAME + ) + assert tmp_path_sdist_without_manpages.exists() + assert not contains_man1_pages(tmp_path_sdist_without_manpages) + sdist_without_manpages_path = unpack_sdist( + tmp_path_sdist_without_manpages, + tmp_dir_sdist_without_manpages / 'src', + ) + + # Test building an sdist with manpages from the Git checkout + # and lowest supported build deps + wipe_generated_manpages() + tmp_dir_sdist_with_manpages = tmp_path / 'sdist-with-manpages' + build_dists( + venv_python_exe, '--sdist', + '--config-setting=--build-manpages', + f'--outdir={tmp_dir_sdist_with_manpages!s}', + str(SRC_ROOT_DIR), + env_vars={ + 'PIP_CONSTRAINT': str(LOWEST_SUPPORTED_BUILD_DEPS_FILE), + }, + ) + tmp_path_sdist_with_manpages = ( + tmp_dir_sdist_with_manpages / EXPECTED_SDIST_NAME + ) + assert tmp_path_sdist_with_manpages.exists() + assert contains_man1_pages(tmp_path_sdist_with_manpages) + sdist_with_manpages_path = unpack_sdist( + tmp_path_sdist_with_manpages, + tmp_dir_sdist_with_manpages / 'src', + ) + + # Test re-building an sdist with manpages from the + # sdist contents that does not include the manpages + tmp_dir_rebuilt_sdist = tmp_path / 'rebuilt-sdist' + build_dists( + venv_python_exe, '--sdist', + '--config-setting=--build-manpages', + f'--outdir={tmp_dir_rebuilt_sdist!s}', + str(sdist_without_manpages_path), + env_vars={ + 'PIP_CONSTRAINT': str(MODERNISH_BUILD_DEPS_FILE), + }, + ) + tmp_path_rebuilt_sdist = tmp_dir_rebuilt_sdist / EXPECTED_SDIST_NAME + # Checking that the expected sdist got created + # from the previous unpacked sdist... + assert tmp_path_rebuilt_sdist.exists() + # NOTE: The following assertion is disabled due to the fact that, when + # NOTE: building an sdist from the original source checkout, the build + # NOTE: backend replaces itself with pure setuptools in the resulting + # NOTE: sdist, and the following rebuilds from that sdist are no longer + # NOTE: able to process the custom config settings that are implemented in + # NOTE: the in-tree build backend. It is expected that said + # NOTE: `pyproject.toml` mutation change will be reverted once all of the + # NOTE: supported `ansible-core` versions ship wheels, meaning that the + # NOTE: end-users won't be building the distribution from sdist on install. + # NOTE: Another case, when it can be reverted is declaring pip below v20 + # NOTE: unsupported — it is the first version to support in-tree build + # NOTE: backends natively. + # assert contains_man1_pages(tmp_path_rebuilt_sdist) # FIXME: See #80255 + rebuilt_sdist_path = unpack_sdist( + tmp_path_rebuilt_sdist, + tmp_dir_rebuilt_sdist / 'src', + ) + assert rebuilt_sdist_path.exists() + assert rebuilt_sdist_path.is_dir() + normalize_unpacked_rebuilt_sdist(rebuilt_sdist_path) + assert_dirs_equal(rebuilt_sdist_path, sdist_with_manpages_path) + + # Test building a wheel from the rebuilt sdist with manpages contents + # and lowest supported build deps + tmp_dir_rebuilt_wheel = tmp_path / 'rebuilt-wheel' + build_dists( + venv_python_exe, '--wheel', + f'--outdir={tmp_dir_rebuilt_wheel!s}', + str(sdist_with_manpages_path), + env_vars={ + 'PIP_CONSTRAINT': str(LOWEST_SUPPORTED_BUILD_DEPS_FILE), + }, + ) + tmp_path_rebuilt_wheel = tmp_dir_rebuilt_wheel / EXPECTED_WHEEL_NAME + # Checking that the expected wheel got created... + assert tmp_path_rebuilt_wheel.exists() + + +def test_pep660_editable_install_smoke(venv_python_exe: Path) -> None: + """Smoke-test PEP 660 editable install. + + This verifies that the in-tree build backend wrapper + does not break any required interfaces. + """ + pip_install(venv_python_exe, '-e', str(SRC_ROOT_DIR)) + + pip_show_cmd = ( + str(venv_python_exe), '-m', + 'pip', 'show', DIST_FILENAME_BASE, + ) + installed_ansible_meta = check_output( + pip_show_cmd, + env={}, stderr=PIPE, text=True, + ).splitlines() + assert f'Name: {DIST_FILENAME_BASE}' in installed_ansible_meta + assert f'Version: {PKG_DIST_VERSION}' in installed_ansible_meta + + pip_runtime_version_cmd = ( + str(venv_python_exe), '-c', + 'from ansible import __version__; print(__version__)', + ) + runtime_ansible_version = check_output( + pip_runtime_version_cmd, + env={}, stderr=PIPE, text=True, + ).strip() + assert runtime_ansible_version == PKG_DIST_VERSION diff --git a/test/integration/targets/copy/tasks/check_mode.yml b/test/integration/targets/copy/tasks/check_mode.yml index 5b405cc4..9702e070 100644 --- a/test/integration/targets/copy/tasks/check_mode.yml +++ b/test/integration/targets/copy/tasks/check_mode.yml @@ -113,8 +113,7 @@ - check_mode_subdir_first is changed - check_mode_trailing_slash_first is changed - # TODO: This is a legitimate bug - #- not check_mode_trailing_slash_first_stat.stat.exists + - not check_mode_trailing_slash_first_stat.stat.exists - check_mode_trailing_slash_real is changed - check_mode_trailing_slash_real_stat.stat.exists - check_mode_trailing_slash_second is not changed @@ -124,3 +123,41 @@ - check_mode_foo_real is changed - check_mode_foo_real_stat.stat.exists - check_mode_foo_second is not changed + + - name: check_mode - Do a basic copy to setup next test (without check mode) + copy: + src: foo.txt + dest: "{{ remote_dir }}/foo-check_mode.txt" + mode: 0444 + + - name: check_mode - Copy the same src with a different mode (check mode) + copy: + src: foo.txt + dest: "{{ remote_dir }}/foo-check_mode.txt" + mode: 0666 + check_mode: True + register: check_mode_file_attribute + + - name: stat the file to make sure the mode was not updated in check mode + stat: + path: "{{ remote_dir }}/foo-check_mode.txt" + register: check_mode_file_attribute_stat + + - name: check_mode - Copy the same src with a different mode (without check mode) + copy: + src: foo.txt + dest: "{{ remote_dir }}/foo-check_mode.txt" + mode: 0666 + register: real_file_attribute + + - name: stat the file to make sure the mode was updated without check mode + stat: + path: "{{ remote_dir }}/foo-check_mode.txt" + register: real_file_attribute_stat + + - assert: + that: + - check_mode_file_attribute is changed + - real_file_attribute is changed + - "check_mode_file_attribute_stat.stat.mode == '0444'" + - "real_file_attribute_stat.stat.mode == '0666'" diff --git a/test/integration/targets/entry_points/aliases b/test/integration/targets/entry_points/aliases index 9d967564..7f0ffcf0 100644 --- a/test/integration/targets/entry_points/aliases +++ b/test/integration/targets/entry_points/aliases @@ -1,2 +1,3 @@ context/controller shippable/posix/group4 +packaging diff --git a/test/integration/targets/include_import/roles/role_with_argspec/meta/argument_specs.yml b/test/integration/targets/include_import/roles/role_with_argspec/meta/argument_specs.yml new file mode 100644 index 00000000..e6d200c1 --- /dev/null +++ b/test/integration/targets/include_import/roles/role_with_argspec/meta/argument_specs.yml @@ -0,0 +1,7 @@ +argument_specs: + main: + short_description: The main entry point for dup_allowed_role + options: + optional_int: + type: int + description: An integer value diff --git a/test/integration/targets/include_import/roles/role_with_argspec/tasks/main.yml b/test/integration/targets/include_import/roles/role_with_argspec/tasks/main.yml new file mode 100644 index 00000000..23f52ef5 --- /dev/null +++ b/test/integration/targets/include_import/roles/role_with_argspec/tasks/main.yml @@ -0,0 +1 @@ +- debug: msg='Running role_with_argspec' diff --git a/test/integration/targets/include_import/runme.sh b/test/integration/targets/include_import/runme.sh index d384a12e..078f080b 100755 --- a/test/integration/targets/include_import/runme.sh +++ b/test/integration/targets/include_import/runme.sh @@ -121,6 +121,11 @@ ansible-playbook valid_include_keywords/playbook.yml "$@" ansible-playbook tasks/test_allow_single_role_dup.yml 2>&1 | tee test_allow_single_role_dup.out test "$(grep -c 'ok=3' test_allow_single_role_dup.out)" = 1 +# test templating public, allow_duplicates, and rolespec_validate +ansible-playbook tasks/test_templating_IncludeRole_FA.yml 2>&1 | tee IncludeRole_FA_template.out +test "$(grep -c 'ok=4' IncludeRole_FA_template.out)" = 1 +test "$(grep -c 'failed=0' IncludeRole_FA_template.out)" = 1 + # https://github.com/ansible/ansible/issues/66764 ANSIBLE_HOST_PATTERN_MISMATCH=error ansible-playbook empty_group_warning/playbook.yml diff --git a/test/integration/targets/include_import/tasks/test_templating_IncludeRole_FA.yml b/test/integration/targets/include_import/tasks/test_templating_IncludeRole_FA.yml new file mode 100644 index 00000000..cb67a9bb --- /dev/null +++ b/test/integration/targets/include_import/tasks/test_templating_IncludeRole_FA.yml @@ -0,0 +1,28 @@ +--- +- name: test templating allow_duplicates, public, and rolespec_validate + hosts: localhost + gather_facts: false + tasks: + - name: prevent duplicate roles with a templated value + block: + - import_role: + name: dup_allowed_role + allow_duplicates: "{{ False | bool }}" + - import_role: + name: dup_allowed_role + allow_duplicates: "{{ False | bool }}" + + - name: prevent leaky vars with a templated value + include_role: + name: role1 + public: "{{ False | bool }}" + - assert: + that: + - where_am_i_defined is undefined + + - name: skip role argspec validation with a templated value + include_role: + name: role_with_argspec + rolespec_validate: "{{ False | bool }}" + vars: + optional_int: wrong_type diff --git a/test/integration/targets/keyword_inheritance/dep_keyword_inheritance.yml b/test/integration/targets/keyword_inheritance/dep_keyword_inheritance.yml new file mode 100644 index 00000000..3d3b684a --- /dev/null +++ b/test/integration/targets/keyword_inheritance/dep_keyword_inheritance.yml @@ -0,0 +1,8 @@ +- hosts: localhost + gather_facts: false + tasks: + - include_role: + name: "{{ item }}" + loop: + - setup_test_user + - role-meta-inheritance diff --git a/test/integration/targets/keyword_inheritance/roles/role-meta-inheritance/meta/main.yml b/test/integration/targets/keyword_inheritance/roles/role-meta-inheritance/meta/main.yml new file mode 100644 index 00000000..b0af49fb --- /dev/null +++ b/test/integration/targets/keyword_inheritance/roles/role-meta-inheritance/meta/main.yml @@ -0,0 +1,4 @@ +dependencies: + - role: whoami + become: true + become_user: ansibletest0 diff --git a/test/integration/targets/keyword_inheritance/runme.sh b/test/integration/targets/keyword_inheritance/runme.sh index 6b78a06d..1f13ef85 100755 --- a/test/integration/targets/keyword_inheritance/runme.sh +++ b/test/integration/targets/keyword_inheritance/runme.sh @@ -3,3 +3,5 @@ set -eux ANSIBLE_ROLES_PATH=../ ansible-playbook -i ../../inventory test.yml "$@" + +ANSIBLE_ROLES_PATH=../ ansible-playbook -i ../../inventory dep_keyword_inheritance.yml "$@" diff --git a/test/integration/targets/lookup_url/tasks/main.yml b/test/integration/targets/lookup_url/tasks/main.yml index a7de5063..2fb227ad 100644 --- a/test/integration/targets/lookup_url/tasks/main.yml +++ b/test/integration/targets/lookup_url/tasks/main.yml @@ -1,11 +1,11 @@ - name: Test that retrieving a url works set_fact: - web_data: "{{ lookup('url', 'https://gist.githubusercontent.com/abadger/9858c22712f62a8effff/raw/43dd47ea691c90a5fa7827892c70241913351963/test') }}" + web_data: "{{ lookup('url', 'https://{{ httpbin_host }}/get?one') }}" - name: Assert that the url was retrieved assert: that: - - "'one' in web_data" + - "'one' in web_data.args" - name: Test that retrieving a url with invalid cert fails set_fact: diff --git a/test/integration/targets/module_utils_Ansible.Basic/library/ansible_basic_tests.ps1 b/test/integration/targets/module_utils_Ansible.Basic/library/ansible_basic_tests.ps1 index cfa73c60..6170f046 100644 --- a/test/integration/targets/module_utils_Ansible.Basic/library/ansible_basic_tests.ps1 +++ b/test/integration/targets/module_utils_Ansible.Basic/library/ansible_basic_tests.ps1 @@ -1747,6 +1747,168 @@ test_no_log - Invoked with: Remove-Item -LiteralPath $actual_tmpdir -Force -Recurse } + "Module tmpdir with symlinks" = { + $remote_tmp = Join-Path -Path $tmpdir -ChildPath "moduletmpdir-$(Get-Random)" + New-Item -Path $remote_tmp -ItemType Directory > $null + Set-Variable -Name complex_args -Scope Global -Value @{ + _ansible_remote_tmp = $remote_tmp.ToString() + } + $m = [Ansible.Basic.AnsibleModule]::Create(@(), @{}) + + $actual_tmpdir = $m.Tmpdir + + $dir1 = Join-Path $actual_tmpdir Dir1 + $dir2 = Join-Path $actual_tmpdir Dir2 + $dir1, $dir2 | New-Item -Path { $_ } -ItemType Directory > $null + + $file1 = Join-Path $dir1 test.txt + $file2 = Join-Path $dir2 test.txt + $file3 = Join-Path $actual_tmpdir test.txt + Set-Content -LiteralPath $file1 '' + Set-Content -LiteralPath $file2 '' + Set-Content -LiteralPath $file3 '' + + $outside_target = Join-Path -Path $tmpdir -ChildPath "moduleoutsidedir-$(Get-Random)" + $outside_file = Join-Path -Path $outside_target -ChildPath "file" + New-Item -Path $outside_target -ItemType Directory > $null + Set-Content -LiteralPath $outside_file '' + + cmd.exe /c mklink /d "$dir1\missing-dir-link" "$actual_tmpdir\fake" + cmd.exe /c mklink /d "$dir1\good-dir-link" "$dir2" + cmd.exe /c mklink /d "$dir1\recursive-target-link" "$dir1" + cmd.exe /c mklink "$dir1\missing-file-link" "$actual_tmpdir\fake" + cmd.exe /c mklink "$dir1\good-file-link" "$dir2\test.txt" + cmd.exe /c mklink /d "$actual_tmpdir\outside-dir" $outside_target + cmd.exe /c mklink "$actual_tmpdir\outside-file" $outside_file + + try { + $m.ExitJson() + } + catch [System.Management.Automation.RuntimeException] { + $output = [Ansible.Basic.AnsibleModule]::FromJson($_.Exception.InnerException.Output) + } + + $output.warnings.Count | Assert-Equal -Expected 0 + (Test-Path -LiteralPath $actual_tmpdir -PathType Container) | Assert-Equal -Expected $false + (Test-Path -LiteralPath $outside_target -PathType Container) | Assert-Equal -Expected $true + (Test-Path -LiteralPath $outside_file -PathType Leaf) | Assert-Equal -Expected $true + + Remove-Item -LiteralPath $remote_tmp -Force -Recurse + } + + "Module tmpdir with undeletable file" = { + $remote_tmp = Join-Path -Path $tmpdir -ChildPath "moduletmpdir-$(Get-Random)" + New-Item -Path $remote_tmp -ItemType Directory > $null + Set-Variable -Name complex_args -Scope Global -Value @{ + _ansible_remote_tmp = $remote_tmp.ToString() + } + $m = [Ansible.Basic.AnsibleModule]::Create(@(), @{}) + + $actual_tmpdir = $m.Tmpdir + + $dir1 = Join-Path $actual_tmpdir Dir1 + $dir2 = Join-Path $actual_tmpdir Dir2 + $dir1, $dir2 | New-Item -Path { $_ } -ItemType Directory > $null + + $file1 = Join-Path $dir1 test.txt + $file2 = Join-Path $dir2 test.txt + $file3 = Join-Path $actual_tmpdir test.txt + Set-Content -LiteralPath $file1 '' + Set-Content -LiteralPath $file2 '' + Set-Content -LiteralPath $file3 '' + + $fs = [System.IO.File]::Open($file1, "Open", "Read", "None") + try { + $m.ExitJson() + } + catch [System.Management.Automation.RuntimeException] { + $output = [Ansible.Basic.AnsibleModule]::FromJson($_.Exception.InnerException.Output) + } + + $expected_msg = "Failure cleaning temp path '$actual_tmpdir': IOException Directory contains files still open by other processes" + $output.warnings.Count | Assert-Equal -Expected 1 + $output.warnings[0] | Assert-Equal -Expected $expected_msg + + (Test-Path -LiteralPath $actual_tmpdir -PathType Container) | Assert-Equal -Expected $true + (Test-Path -LiteralPath $dir1 -PathType Container) | Assert-Equal -Expected $true + # Test-Path tries to open the file in a way that fails if it's marked as deleted + (Get-ChildItem -LiteralPath $dir1 -File).Count | Assert-Equal -Expected 1 + (Test-Path -LiteralPath $dir2 -PathType Container) | Assert-Equal -Expected $false + (Test-Path -LiteralPath $file3 -PathType Leaf) | Assert-Equal -Expected $false + + # Releasing the file handle releases the lock on the file but as the + # cleanup couldn't access the file to mark as delete on close it is + # still going to be present. + $fs.Dispose() + (Test-Path -LiteralPath $dir1 -PathType Container) | Assert-Equal -Expected $true + (Test-Path -LiteralPath $file1 -PathType Leaf) | Assert-Equal -Expected $true + + Remove-Item -LiteralPath $remote_tmp -Force -Recurse + } + + "Module tmpdir delete with locked handle" = { + $remote_tmp = Join-Path -Path $tmpdir -ChildPath "moduletmpdir-$(Get-Random)" + New-Item -Path $remote_tmp -ItemType Directory > $null + Set-Variable -Name complex_args -Scope Global -Value @{ + _ansible_remote_tmp = $remote_tmp.ToString() + } + $m = [Ansible.Basic.AnsibleModule]::Create(@(), @{}) + + $actual_tmpdir = $m.Tmpdir + + $dir1 = Join-Path $actual_tmpdir Dir1 + $dir2 = Join-Path $actual_tmpdir Dir2 + $dir1, $dir2 | New-Item -Path { $_ } -ItemType Directory > $null + + $file1 = Join-Path $dir1 test.txt + $file2 = Join-Path $dir2 test.txt + $file3 = Join-Path $actual_tmpdir test.txt + Set-Content -LiteralPath $file1 '' + Set-Content -LiteralPath $file2 '' + Set-Content -LiteralPath $file3 '' + + [System.IO.File]::SetAttributes($file1, "ReadOnly") + [System.IO.File]::SetAttributes($file2, "ReadOnly") + [System.IO.File]::SetAttributes($file3, "ReadOnly") + $fs = [System.IO.File]::Open($file1, "Open", "Read", "Delete") + try { + $m.ExitJson() + } + catch [System.Management.Automation.RuntimeException] { + $output = [Ansible.Basic.AnsibleModule]::FromJson($_.Exception.InnerException.Output) + } + + if ([System.Environment]::OSVersion.Version -lt [Version]'10.0') { + # Older hosts can only do delete on close. This means Dir1 and its + # file will still be present but Dir2 should be deleted. + $expected_msg = "Failure cleaning temp path '$actual_tmpdir': IOException Directory contains files still open by other processes" + $output.warnings.Count | Assert-Equal -Expected 1 + $output.warnings[0] | Assert-Equal -Expected $expected_msg + + (Test-Path -LiteralPath $actual_tmpdir -PathType Container) | Assert-Equal -Expected $true + (Test-Path -LiteralPath $dir1 -PathType Container) | Assert-Equal -Expected $true + # Test-Path tries to open the file in a way that fails if it's marked as deleted + (Get-ChildItem -LiteralPath $dir1 -File).Count | Assert-Equal -Expected 1 + (Test-Path -LiteralPath $dir2 -PathType Container) | Assert-Equal -Expected $false + (Test-Path -LiteralPath $file3 -PathType Leaf) | Assert-Equal -Expected $false + + # Releasing the file handle releases the lock on the file deleting + # it. Unfortunately the parent dir will still be present + $fs.Dispose() + (Test-Path -LiteralPath $dir1 -PathType Container) | Assert-Equal -Expected $true + (Test-Path -LiteralPath $file1 -PathType Leaf) | Assert-Equal -Expected $false + } + else { + # Server 2016+ can use the POSIX APIs which will delete it straight away + (Test-Path -LiteralPath $actual_tmpdir -PathType Container) | Assert-Equal -Expected $false + $output.warnings.Count | Assert-Equal -Expected 0 + + $fs.Dispose() + } + + Remove-Item -LiteralPath $remote_tmp -Force -Recurse + } + "Invalid argument spec key" = { $spec = @{ invalid = $true diff --git a/test/integration/targets/template_jinja2_non_native/macro_override.yml b/test/integration/targets/template_jinja2_non_native/macro_override.yml new file mode 100644 index 00000000..8a1cabd2 --- /dev/null +++ b/test/integration/targets/template_jinja2_non_native/macro_override.yml @@ -0,0 +1,15 @@ +- hosts: localhost + gather_facts: false + vars: + output_dir: "{{ lookup('env', 'OUTPUT_DIR') }}" + tasks: + - template: + src: macro_override.j2 + dest: "{{ output_dir }}/macro_override.out" + + - assert: + that: + - "'foobar' not in data" + - "'\"foo\" \"bar\"' in data" + vars: + data: "{{ lookup('file', '{{ output_dir }}/macro_override.out') }}" diff --git a/test/integration/targets/template_jinja2_non_native/runme.sh b/test/integration/targets/template_jinja2_non_native/runme.sh index fe9d495a..c02d6b33 100755 --- a/test/integration/targets/template_jinja2_non_native/runme.sh +++ b/test/integration/targets/template_jinja2_non_native/runme.sh @@ -4,4 +4,6 @@ set -eux export ANSIBLE_JINJA2_NATIVE=1 ansible-playbook 46169.yml -v "$@" +python -m pip install "Jinja2>=3.1.0" +ansible-playbook macro_override.yml -v "$@" unset ANSIBLE_JINJA2_NATIVE diff --git a/test/integration/targets/template_jinja2_non_native/templates/macro_override.j2 b/test/integration/targets/template_jinja2_non_native/templates/macro_override.j2 new file mode 100644 index 00000000..51908da0 --- /dev/null +++ b/test/integration/targets/template_jinja2_non_native/templates/macro_override.j2 @@ -0,0 +1,7 @@ +#jinja2: variable_start_string:'<<',variable_end_string:'>>' +Use a jinja2 override to trigger creating and using an environment overlay. + +{% macro m() %} +"foo" "bar" +{% endmacro %} +<< m() >> diff --git a/test/integration/targets/uri/tasks/main.yml b/test/integration/targets/uri/tasks/main.yml index d821f286..7fa687b4 100644 --- a/test/integration/targets/uri/tasks/main.yml +++ b/test/integration/targets/uri/tasks/main.yml @@ -305,7 +305,7 @@ environment: https_proxy: 'https://localhost:3456' uri: - url: 'https://httpbin.org/get' + url: 'https://{{ httpbin_host }}/get' register: result ignore_errors: true @@ -318,7 +318,7 @@ environment: https_proxy: 'https://localhost:3456' uri: - url: 'https://httpbin.org/get' + url: 'https://{{ httpbin_host }}/get' use_proxy: no # Ubuntu12.04 doesn't have python-urllib3, this makes handling required dependencies a pain across all variations diff --git a/test/integration/targets/win_async_wrapper/tasks/main.yml b/test/integration/targets/win_async_wrapper/tasks/main.yml index 91b45846..0fc64d8c 100644 --- a/test/integration/targets/win_async_wrapper/tasks/main.yml +++ b/test/integration/targets/win_async_wrapper/tasks/main.yml @@ -12,12 +12,12 @@ - name: validate response assert: that: - - asyncresult.ansible_job_id is match('\d+\.\d+') + - asyncresult.ansible_job_id is match('j\d+\.\d+') - asyncresult.started == 1 - asyncresult is started - asyncresult.finished == 0 - asyncresult is not finished - - asyncresult.results_file is search('\.ansible_async.+\d+\.\d+') + - asyncresult.results_file is search('\.ansible_async.+j\d+\.\d+') # ensure that async is actually async- this test will fail if # hosts > forks or if the target host is VERY slow - (lookup('pipe', 'date +%s') | int) - (start_timestamp | int) < 15 @@ -31,7 +31,7 @@ - name: validate response assert: that: - - asyncresult.ansible_job_id is match('\d+\.\d+') + - asyncresult.ansible_job_id is match('j\d+\.\d+') - asyncresult.finished == 1 - asyncresult is finished - asyncresult is changed @@ -69,7 +69,7 @@ - name: validate response assert: that: - - asyncresult.ansible_job_id is match('\d+\.\d+') + - asyncresult.ansible_job_id is match('j\d+\.\d+') - asyncresult.finished == 1 - asyncresult is finished - asyncresult is changed @@ -107,7 +107,7 @@ - name: validate response assert: that: - - asyncresult.ansible_job_id is match('\d+\.\d+') + - asyncresult.ansible_job_id is match('j\d+\.\d+') - asyncresult.finished == 1 - asyncresult is finished - asyncresult is not changed @@ -125,7 +125,7 @@ - name: validate response assert: that: - - asyncresult.ansible_job_id is match('\d+\.\d+') + - asyncresult.ansible_job_id is match('j\d+\.\d+') - asyncresult.finished == 1 - asyncresult is finished - asyncresult is changed @@ -143,7 +143,7 @@ - name: validate response assert: that: - - asyncresult.ansible_job_id is match('\d+\.\d+') + - asyncresult.ansible_job_id is match('j\d+\.\d+') - asyncresult.finished == 1 - asyncresult is finished - asyncresult is not changed @@ -231,7 +231,7 @@ # - item is finished # - item.slept_sec == 3 # - item is changed -# - item.ansible_job_id is match('\d+\.\d+') +# - item.ansible_job_id is match('j\d+\.\d+') # with_items: "{{ asyncout.results }}" # this part of the test is flaky- Windows PIDs are reused aggressively, so this occasionally fails due to a new process with the same ID diff --git a/test/lib/ansible_test/_internal/__init__.py b/test/lib/ansible_test/_internal/__init__.py index d218b561..ee24a852 100644 --- a/test/lib/ansible_test/_internal/__init__.py +++ b/test/lib/ansible_test/_internal/__init__.py @@ -18,6 +18,7 @@ from .constants import ( from .util import ( ApplicationError, HostConnectionError, + TimeoutExpiredError, display, report_locale, ) @@ -109,6 +110,9 @@ def main(cli_args: t.Optional[list[str]] = None) -> None: except ApplicationError as ex: display.fatal('%s' % ex) sys.exit(1) + except TimeoutExpiredError as ex: + display.fatal('%s' % ex) + sys.exit(1) except KeyboardInterrupt: sys.exit(2) except BrokenPipeError: diff --git a/test/lib/ansible_test/_internal/ansible_util.py b/test/lib/ansible_test/_internal/ansible_util.py index 9efcda26..9548d37c 100644 --- a/test/lib/ansible_test/_internal/ansible_util.py +++ b/test/lib/ansible_test/_internal/ansible_util.py @@ -114,27 +114,27 @@ def ansible_environment(args: CommonConfig, color: bool = True, ansible_config: # standard path injection is not effective for ansible-connection, instead the location must be configured # ansible-connection only requires the injector for code coverage # the correct python interpreter is already selected using the sys.executable used to invoke ansible - ansible.update(dict( + ansible.update( ANSIBLE_CONNECTION_PATH=os.path.join(get_injector_path(), 'ansible-connection'), - )) + ) if isinstance(args, PosixIntegrationConfig): - ansible.update(dict( + ansible.update( ANSIBLE_PYTHON_INTERPRETER='/set/ansible_python_interpreter/in/inventory', # force tests to set ansible_python_interpreter in inventory - )) + ) env.update(ansible) if args.debug: - env.update(dict( + env.update( ANSIBLE_DEBUG='true', ANSIBLE_LOG_PATH=os.path.join(ResultType.LOGS.name, 'debug.log'), - )) + ) if data_context().content.collection: - env.update(dict( + env.update( ANSIBLE_COLLECTIONS_PATH=data_context().content.collection.root, - )) + ) if data_context().content.is_ansible: env.update(configure_plugin_paths(args)) @@ -252,12 +252,14 @@ License: GPLv3+ class CollectionDetail: """Collection detail.""" + def __init__(self) -> None: self.version: t.Optional[str] = None class CollectionDetailError(ApplicationError): """An error occurred retrieving collection detail.""" + def __init__(self, reason: str) -> None: super().__init__('Error collecting collection detail: %s' % reason) self.reason = reason diff --git a/test/lib/ansible_test/_internal/become.py b/test/lib/ansible_test/_internal/become.py index e653959a..f8320b3b 100644 --- a/test/lib/ansible_test/_internal/become.py +++ b/test/lib/ansible_test/_internal/become.py @@ -11,6 +11,7 @@ from .util import ( class Become(metaclass=abc.ABCMeta): """Base class for become implementations.""" + @classmethod def name(cls) -> str: """The name of this plugin.""" @@ -28,6 +29,7 @@ class Become(metaclass=abc.ABCMeta): class Doas(Become): """Become using 'doas'.""" + @property def method(self) -> str: """The name of the Ansible become plugin that is equivalent to this.""" @@ -47,6 +49,7 @@ class Doas(Become): class DoasSudo(Doas): """Become using 'doas' in ansible-test and then after bootstrapping use 'sudo' for other ansible commands.""" + @classmethod def name(cls) -> str: """The name of this plugin.""" @@ -60,6 +63,7 @@ class DoasSudo(Doas): class Su(Become): """Become using 'su'.""" + @property def method(self) -> str: """The name of the Ansible become plugin that is equivalent to this.""" @@ -77,6 +81,7 @@ class Su(Become): class SuSudo(Su): """Become using 'su' in ansible-test and then after bootstrapping use 'sudo' for other ansible commands.""" + @classmethod def name(cls) -> str: """The name of this plugin.""" @@ -90,6 +95,7 @@ class SuSudo(Su): class Sudo(Become): """Become using 'sudo'.""" + @property def method(self) -> str: """The name of the Ansible become plugin that is equivalent to this.""" diff --git a/test/lib/ansible_test/_internal/bootstrap.py b/test/lib/ansible_test/_internal/bootstrap.py index 261ef59b..b0cfb601 100644 --- a/test/lib/ansible_test/_internal/bootstrap.py +++ b/test/lib/ansible_test/_internal/bootstrap.py @@ -26,6 +26,7 @@ from .core_ci import ( @dataclasses.dataclass class Bootstrap: """Base class for bootstrapping systems.""" + controller: bool python_versions: list[str] ssh_key: SshKey @@ -65,6 +66,7 @@ class Bootstrap: @dataclasses.dataclass class BootstrapDocker(Bootstrap): """Bootstrap docker instances.""" + def get_variables(self) -> dict[str, t.Union[str, list[str]]]: """The variables to template in the bootstrapping script.""" variables = super().get_variables() @@ -80,6 +82,7 @@ class BootstrapDocker(Bootstrap): @dataclasses.dataclass class BootstrapRemote(Bootstrap): """Bootstrap remote instances.""" + platform: str platform_version: str diff --git a/test/lib/ansible_test/_internal/cache.py b/test/lib/ansible_test/_internal/cache.py index 3afe422f..d291dcee 100644 --- a/test/lib/ansible_test/_internal/cache.py +++ b/test/lib/ansible_test/_internal/cache.py @@ -13,6 +13,7 @@ TValue = t.TypeVar('TValue') class CommonCache: """Common cache.""" + def __init__(self, args: CommonConfig) -> None: self.args = args diff --git a/test/lib/ansible_test/_internal/cgroup.py b/test/lib/ansible_test/_internal/cgroup.py index 977e359d..a08513a5 100644 --- a/test/lib/ansible_test/_internal/cgroup.py +++ b/test/lib/ansible_test/_internal/cgroup.py @@ -9,6 +9,7 @@ import re class CGroupPath: """Linux cgroup path constants.""" + ROOT = '/sys/fs/cgroup' SYSTEMD = '/sys/fs/cgroup/systemd' SYSTEMD_RELEASE_AGENT = '/sys/fs/cgroup/systemd/release_agent' @@ -16,6 +17,7 @@ class CGroupPath: class MountType: """Linux filesystem mount type constants.""" + TMPFS = 'tmpfs' CGROUP_V1 = 'cgroup' CGROUP_V2 = 'cgroup2' @@ -24,6 +26,7 @@ class MountType: @dataclasses.dataclass(frozen=True) class CGroupEntry: """A single cgroup entry parsed from '/proc/{pid}/cgroup' in the proc filesystem.""" + id: int subsystem: str path: pathlib.PurePosixPath @@ -46,7 +49,7 @@ class CGroupEntry: return cls( id=int(cid), subsystem=subsystem.removeprefix('name='), - path=pathlib.PurePosixPath(path) + path=pathlib.PurePosixPath(path), ) @classmethod @@ -58,6 +61,7 @@ class CGroupEntry: @dataclasses.dataclass(frozen=True) class MountEntry: """A single mount info entry parsed from '/proc/{pid}/mountinfo' in the proc filesystem.""" + mount_id: int parent_id: int device_major: int diff --git a/test/lib/ansible_test/_internal/ci/__init__.py b/test/lib/ansible_test/_internal/ci/__init__.py index 97e41dae..5e53b150 100644 --- a/test/lib/ansible_test/_internal/ci/__init__.py +++ b/test/lib/ansible_test/_internal/ci/__init__.py @@ -39,6 +39,7 @@ class ChangeDetectionNotSupported(ApplicationError): class CIProvider(metaclass=abc.ABCMeta): """Base class for CI provider plugins.""" + priority = 500 @staticmethod @@ -61,8 +62,8 @@ class CIProvider(metaclass=abc.ABCMeta): """Return a resource prefix specific to this CI provider.""" @abc.abstractmethod - def get_base_branch(self) -> str: - """Return the base branch or an empty string.""" + def get_base_commit(self, args: CommonConfig) -> str: + """Return the base commit or an empty string.""" @abc.abstractmethod def detect_changes(self, args: TestConfig) -> t.Optional[list[str]]: @@ -103,6 +104,7 @@ def get_ci_provider() -> CIProvider: class AuthHelper(metaclass=abc.ABCMeta): """Public key based authentication helper for Ansible Core CI.""" + def sign_request(self, request: dict[str, t.Any]) -> None: """Sign the given auth request and make the public key available.""" payload_bytes = to_bytes(json.dumps(request, sort_keys=True)) @@ -141,6 +143,7 @@ class AuthHelper(metaclass=abc.ABCMeta): class CryptographyAuthHelper(AuthHelper, metaclass=abc.ABCMeta): """Cryptography based public key based authentication helper for Ansible Core CI.""" + def sign_bytes(self, payload_bytes: bytes) -> bytes: """Sign the given payload and return the signature, initializing a new key pair if required.""" # import cryptography here to avoid overhead and failures in environments which do not use/provide it @@ -186,6 +189,7 @@ class CryptographyAuthHelper(AuthHelper, metaclass=abc.ABCMeta): class OpenSSLAuthHelper(AuthHelper, metaclass=abc.ABCMeta): """OpenSSL based public key based authentication helper for Ansible Core CI.""" + def sign_bytes(self, payload_bytes: bytes) -> bytes: """Sign the given payload and return the signature, initializing a new key pair if required.""" private_key_pem = self.initialize_private_key() diff --git a/test/lib/ansible_test/_internal/ci/azp.py b/test/lib/ansible_test/_internal/ci/azp.py index 9170dfec..404f8056 100644 --- a/test/lib/ansible_test/_internal/ci/azp.py +++ b/test/lib/ansible_test/_internal/ci/azp.py @@ -40,9 +40,12 @@ CODE = 'azp' class AzurePipelines(CIProvider): """CI provider implementation for Azure Pipelines.""" + def __init__(self) -> None: self.auth = AzurePipelinesAuthHelper() + self._changes: AzurePipelinesChanges | None = None + @staticmethod def is_supported() -> bool: """Return True if this provider is supported in the current running environment.""" @@ -71,18 +74,20 @@ class AzurePipelines(CIProvider): return prefix - def get_base_branch(self) -> str: - """Return the base branch or an empty string.""" - base_branch = os.environ.get('SYSTEM_PULLREQUEST_TARGETBRANCH') or os.environ.get('BUILD_SOURCEBRANCHNAME') + def get_base_commit(self, args: CommonConfig) -> str: + """Return the base commit or an empty string.""" + return self._get_changes(args).base_commit or '' - if base_branch: - base_branch = 'origin/%s' % base_branch + def _get_changes(self, args: CommonConfig) -> AzurePipelinesChanges: + """Return an AzurePipelinesChanges instance, which will be created on first use.""" + if not self._changes: + self._changes = AzurePipelinesChanges(args) - return base_branch or '' + return self._changes def detect_changes(self, args: TestConfig) -> t.Optional[list[str]]: """Initialize change detection.""" - result = AzurePipelinesChanges(args) + result = self._get_changes(args) if result.is_pr: job_type = 'pull request' @@ -128,7 +133,7 @@ class AzurePipelines(CIProvider): def get_git_details(self, args: CommonConfig) -> t.Optional[dict[str, t.Any]]: """Return details about git in the current environment.""" - changes = AzurePipelinesChanges(args) + changes = self._get_changes(args) details = dict( base_commit=changes.base_commit, @@ -143,6 +148,7 @@ class AzurePipelinesAuthHelper(CryptographyAuthHelper): Authentication helper for Azure Pipelines. Based on cryptography since it is provided by the default Azure Pipelines environment. """ + def publish_public_key(self, public_key_pem: str) -> None: """Publish the given public key.""" try: @@ -162,6 +168,7 @@ class AzurePipelinesAuthHelper(CryptographyAuthHelper): class AzurePipelinesChanges: """Change information for an Azure Pipelines build.""" + def __init__(self, args: CommonConfig) -> None: self.args = args self.git = Git() diff --git a/test/lib/ansible_test/_internal/ci/local.py b/test/lib/ansible_test/_internal/ci/local.py index ec031944..4b9ab13e 100644 --- a/test/lib/ansible_test/_internal/ci/local.py +++ b/test/lib/ansible_test/_internal/ci/local.py @@ -36,6 +36,7 @@ CODE = '' # not really a CI provider, so use an empty string for the code class Local(CIProvider): """CI provider implementation when not using CI.""" + priority = 1000 @staticmethod @@ -62,8 +63,8 @@ class Local(CIProvider): return prefix - def get_base_branch(self) -> str: - """Return the base branch or an empty string.""" + def get_base_commit(self, args: CommonConfig) -> str: + """Return the base commit or an empty string.""" return '' def detect_changes(self, args: TestConfig) -> t.Optional[list[str]]: @@ -149,6 +150,7 @@ class Local(CIProvider): class InvalidBranch(ApplicationError): """Exception for invalid branch specification.""" + def __init__(self, branch: str, reason: str) -> None: message = 'Invalid branch: %s\n%s' % (branch, reason) @@ -159,6 +161,7 @@ class InvalidBranch(ApplicationError): class LocalChanges: """Change information for local work.""" + def __init__(self, args: TestConfig) -> None: self.args = args self.git = Git() diff --git a/test/lib/ansible_test/_internal/classification/__init__.py b/test/lib/ansible_test/_internal/classification/__init__.py index aacc2ca9..bca02403 100644 --- a/test/lib/ansible_test/_internal/classification/__init__.py +++ b/test/lib/ansible_test/_internal/classification/__init__.py @@ -176,6 +176,7 @@ def categorize_changes(args: TestConfig, paths: list[str], verbose_command: t.Op class PathMapper: """Map file paths to test commands and targets.""" + def __init__(self, args: TestConfig) -> None: self.args = args self.integration_all_target = get_integration_all_target(self.args) @@ -661,21 +662,58 @@ class PathMapper: def _classify_ansible(self, path: str) -> t.Optional[dict[str, str]]: """Return the classification for the given path using rules specific to Ansible.""" + dirname = os.path.dirname(path) + filename = os.path.basename(path) + name, ext = os.path.splitext(filename) + + minimal: dict[str, str] = {} + + packaging = { + 'integration': 'packaging/', + } + + # Early classification that needs to occur before common classification belongs here. + if path.startswith('test/units/compat/'): return { 'units': 'test/units/', } + if dirname == '.azure-pipelines/commands': + test_map = { + 'cloud.sh': 'integration:cloud/', + 'linux.sh': 'integration:all', + 'network.sh': 'network-integration:all', + 'remote.sh': 'integration:all', + 'sanity.sh': 'sanity:all', + 'units.sh': 'units:all', + 'windows.sh': 'windows-integration:all', + } + + test_match = test_map.get(filename) + + if test_match: + test_command, test_target = test_match.split(':') + + return { + test_command: test_target, + } + + cloud_target = f'cloud/{name}/' + + if cloud_target in self.integration_targets_by_alias: + return { + 'integration': cloud_target, + } + + # Classification common to both ansible and collections. + result = self._classify_common(path) if result is not None: return result - dirname = os.path.dirname(path) - filename = os.path.basename(path) - name, ext = os.path.splitext(filename) - - minimal: dict[str, str] = {} + # Classification here is specific to ansible, and runs after common classification. if path.startswith('bin/'): return all_tests(self.args) # broad impact, run all tests @@ -715,6 +753,9 @@ class PathMapper: return minimal if path.startswith('packaging/'): + if path.startswith('packaging/pep517_backend/'): + return packaging + return minimal if path.startswith('test/ansible_test/'): @@ -791,39 +832,6 @@ class PathMapper: if path.startswith('test/support/'): return all_tests(self.args) # test infrastructure, run all tests - if path.startswith('test/utils/shippable/'): - if dirname == 'test/utils/shippable': - test_map = { - 'cloud.sh': 'integration:cloud/', - 'linux.sh': 'integration:all', - 'network.sh': 'network-integration:all', - 'remote.sh': 'integration:all', - 'sanity.sh': 'sanity:all', - 'units.sh': 'units:all', - 'windows.sh': 'windows-integration:all', - } - - test_match = test_map.get(filename) - - if test_match: - test_command, test_target = test_match.split(':') - - return { - test_command: test_target, - } - - cloud_target = 'cloud/%s/' % name - - if cloud_target in self.integration_targets_by_alias: - return { - 'integration': cloud_target, - } - - return all_tests(self.args) # test infrastructure, run all tests - - if path.startswith('test/utils/'): - return minimal - if '/' not in path: if path in ( '.gitattributes', @@ -835,16 +843,17 @@ class PathMapper: return minimal if path in ( - 'setup.py', + 'MANIFEST.in', + 'pyproject.toml', + 'requirements.txt', + 'setup.cfg', + 'setup.py', ): - return all_tests(self.args) # broad impact, run all tests + return packaging if ext in ( - '.in', '.md', '.rst', - '.toml', - '.txt', ): return minimal diff --git a/test/lib/ansible_test/_internal/classification/python.py b/test/lib/ansible_test/_internal/classification/python.py index 77ffeacf..7036de1a 100644 --- a/test/lib/ansible_test/_internal/classification/python.py +++ b/test/lib/ansible_test/_internal/classification/python.py @@ -231,6 +231,7 @@ def relative_to_absolute(name: str, level: int, module: str, path: str, lineno: class ModuleUtilFinder(ast.NodeVisitor): """AST visitor to find valid module_utils imports.""" + def __init__(self, path: str, module_utils: set[str]) -> None: self.path = path self.module_utils = module_utils diff --git a/test/lib/ansible_test/_internal/cli/actions.py b/test/lib/ansible_test/_internal/cli/actions.py index 3359a848..9e1b7b44 100644 --- a/test/lib/ansible_test/_internal/cli/actions.py +++ b/test/lib/ansible_test/_internal/cli/actions.py @@ -22,6 +22,7 @@ from .parsers import ( class OriginControllerAction(CompositeAction): """Composite action parser for the controller when the only option is `origin`.""" + def create_parser(self) -> NamespaceParser: """Return a namespace parser to parse the argument associated with this action.""" return OriginControllerParser() @@ -29,6 +30,7 @@ class OriginControllerAction(CompositeAction): class DelegatedControllerAction(CompositeAction): """Composite action parser for the controller when delegation is supported.""" + def create_parser(self) -> NamespaceParser: """Return a namespace parser to parse the argument associated with this action.""" return DelegatedControllerParser() @@ -36,6 +38,7 @@ class DelegatedControllerAction(CompositeAction): class PosixTargetAction(CompositeAction): """Composite action parser for a POSIX target.""" + def create_parser(self) -> NamespaceParser: """Return a namespace parser to parse the argument associated with this action.""" return PosixTargetParser() @@ -43,6 +46,7 @@ class PosixTargetAction(CompositeAction): class WindowsTargetAction(CompositeAction): """Composite action parser for a Windows target.""" + def create_parser(self) -> NamespaceParser: """Return a namespace parser to parse the argument associated with this action.""" return WindowsTargetParser() @@ -50,6 +54,7 @@ class WindowsTargetAction(CompositeAction): class NetworkTargetAction(CompositeAction): """Composite action parser for a network target.""" + def create_parser(self) -> NamespaceParser: """Return a namespace parser to parse the argument associated with this action.""" return NetworkTargetParser() @@ -57,6 +62,7 @@ class NetworkTargetAction(CompositeAction): class SanityPythonTargetAction(CompositeAction): """Composite action parser for a sanity target.""" + def create_parser(self) -> NamespaceParser: """Return a namespace parser to parse the argument associated with this action.""" return SanityPythonTargetParser() @@ -64,6 +70,7 @@ class SanityPythonTargetAction(CompositeAction): class UnitsPythonTargetAction(CompositeAction): """Composite action parser for a units target.""" + def create_parser(self) -> NamespaceParser: """Return a namespace parser to parse the argument associated with this action.""" return UnitsPythonTargetParser() @@ -71,6 +78,7 @@ class UnitsPythonTargetAction(CompositeAction): class PosixSshTargetAction(CompositeAction): """Composite action parser for a POSIX SSH target.""" + def create_parser(self) -> NamespaceParser: """Return a namespace parser to parse the argument associated with this action.""" return PosixSshTargetParser() @@ -78,6 +86,7 @@ class PosixSshTargetAction(CompositeAction): class WindowsSshTargetAction(CompositeAction): """Composite action parser for a Windows SSH target.""" + def create_parser(self) -> NamespaceParser: """Return a namespace parser to parse the argument associated with this action.""" return WindowsSshTargetParser() @@ -85,6 +94,7 @@ class WindowsSshTargetAction(CompositeAction): class NetworkSshTargetAction(CompositeAction): """Composite action parser for a network SSH target.""" + def create_parser(self) -> NamespaceParser: """Return a namespace parser to parse the argument associated with this action.""" return NetworkSshTargetParser() diff --git a/test/lib/ansible_test/_internal/cli/argparsing/__init__.py b/test/lib/ansible_test/_internal/cli/argparsing/__init__.py index 540cf552..4ee845f7 100644 --- a/test/lib/ansible_test/_internal/cli/argparsing/__init__.py +++ b/test/lib/ansible_test/_internal/cli/argparsing/__init__.py @@ -34,6 +34,7 @@ class RegisteredCompletionFinder(OptionCompletionFinder): These registered completions, if provided, are used to filter the final completion results. This works around a known bug: https://github.com/kislyuk/argcomplete/issues/221 """ + def __init__(self, *args, **kwargs) -> None: super().__init__(*args, **kwargs) @@ -86,6 +87,7 @@ class RegisteredCompletionFinder(OptionCompletionFinder): class CompositeAction(argparse.Action, metaclass=abc.ABCMeta): """Base class for actions that parse composite arguments.""" + documentation_state: dict[t.Type[CompositeAction], DocumentationState] = {} def __init__( @@ -134,6 +136,7 @@ class CompositeAction(argparse.Action, metaclass=abc.ABCMeta): class CompositeActionCompletionFinder(RegisteredCompletionFinder): """Completion finder with support for composite argument parsing.""" + def get_completions( self, prefix: str, @@ -255,7 +258,7 @@ def complete( list_mode=True, # abuse list mode to enable preservation of the literal results consumed='', continuation='', - matches=['completion', 'invalid'] + matches=['completion', 'invalid'], ) else: answer = ex diff --git a/test/lib/ansible_test/_internal/cli/argparsing/actions.py b/test/lib/ansible_test/_internal/cli/argparsing/actions.py index 2bcf982c..7399fe9c 100644 --- a/test/lib/ansible_test/_internal/cli/argparsing/actions.py +++ b/test/lib/ansible_test/_internal/cli/argparsing/actions.py @@ -8,6 +8,7 @@ import typing as t class EnumAction(argparse.Action): """Parse an enum using the lowercase enum names.""" + def __init__(self, **kwargs: t.Any) -> None: self.enum_type: t.Type[enum.Enum] = kwargs.pop('type', None) kwargs.setdefault('choices', tuple(e.name.lower() for e in self.enum_type)) diff --git a/test/lib/ansible_test/_internal/cli/argparsing/argcompletion.py b/test/lib/ansible_test/_internal/cli/argparsing/argcompletion.py index cf5776da..26abcf82 100644 --- a/test/lib/ansible_test/_internal/cli/argparsing/argcompletion.py +++ b/test/lib/ansible_test/_internal/cli/argparsing/argcompletion.py @@ -9,6 +9,7 @@ import typing as t class Substitute: """Substitute for missing class which accepts all arguments.""" + def __init__(self, *args, **kwargs) -> None: pass @@ -16,10 +17,19 @@ class Substitute: try: import argcomplete - from argcomplete import ( - CompletionFinder, - default_validator, - ) + try: + # argcomplete 3+ + # see: https://github.com/kislyuk/argcomplete/commit/bd781cb08512b94966312377186ebc5550f46ae0 + from argcomplete.finders import ( + CompletionFinder, + default_validator, + ) + except ImportError: + # argcomplete <3 + from argcomplete import ( + CompletionFinder, + default_validator, + ) warn = argcomplete.warn # pylint: disable=invalid-name except ImportError: @@ -35,6 +45,7 @@ class CompType(enum.Enum): Bash COMP_TYPE argument completion types. For documentation, see: https://www.gnu.org/software/bash/manual/html_node/Bash-Variables.html#index-COMP_005fTYPE """ + COMPLETION = '\t' """ Standard completion, typically triggered by a single tab. @@ -70,7 +81,13 @@ class CompType(enum.Enum): def register_safe_action(action_type: t.Type[argparse.Action]) -> None: """Register the given action as a safe action for argcomplete to use during completion if it is not already registered.""" if argcomplete and action_type not in argcomplete.safe_actions: - argcomplete.safe_actions += (action_type,) + if isinstance(argcomplete.safe_actions, set): + # argcomplete 3+ + # see: https://github.com/kislyuk/argcomplete/commit/bd781cb08512b94966312377186ebc5550f46ae0 + argcomplete.safe_actions.add(action_type) + else: + # argcomplete <3 + argcomplete.safe_actions += (action_type,) def get_comp_type() -> t.Optional[CompType]: @@ -85,6 +102,7 @@ class OptionCompletionFinder(CompletionFinder): Custom completion finder for argcomplete. It provides support for running completion in list mode, which argcomplete natively handles the same as standard completion. """ + enabled = bool(argcomplete) def __init__(self, *args, validator=None, **kwargs) -> None: diff --git a/test/lib/ansible_test/_internal/cli/argparsing/parsers.py b/test/lib/ansible_test/_internal/cli/argparsing/parsers.py index d07e03cb..00fa97e8 100644 --- a/test/lib/ansible_test/_internal/cli/argparsing/parsers.py +++ b/test/lib/ansible_test/_internal/cli/argparsing/parsers.py @@ -32,18 +32,21 @@ class Completion(Exception): @dataclasses.dataclass class CompletionUnavailable(Completion): """Argument completion unavailable.""" + message: str = 'No completions available.' @dataclasses.dataclass class CompletionError(Completion): """Argument completion error.""" + message: t.Optional[str] = None @dataclasses.dataclass class CompletionSuccess(Completion): """Successful argument completion result.""" + list_mode: bool consumed: str continuation: str @@ -72,6 +75,7 @@ class CompletionSuccess(Completion): class ParserMode(enum.Enum): """Mode the parser is operating in.""" + PARSE = enum.auto() COMPLETE = enum.auto() LIST = enum.auto() @@ -84,6 +88,7 @@ class ParserError(Exception): @dataclasses.dataclass class ParserBoundary: """Boundary details for parsing composite input.""" + delimiters: str required: bool match: t.Optional[str] = None @@ -93,6 +98,7 @@ class ParserBoundary: @dataclasses.dataclass class ParserState: """State of the composite argument parser.""" + mode: ParserMode remainder: str = '' consumed: str = '' @@ -194,11 +200,13 @@ class ParserState: @dataclasses.dataclass class DocumentationState: """State of the composite argument parser's generated documentation.""" + sections: dict[str, str] = dataclasses.field(default_factory=dict) class Parser(metaclass=abc.ABCMeta): """Base class for all composite argument parsers.""" + @abc.abstractmethod def parse(self, state: ParserState) -> t.Any: """Parse the input from the given state and return the result.""" @@ -210,6 +218,7 @@ class Parser(metaclass=abc.ABCMeta): class MatchConditions(enum.Flag): """Acceptable condition(s) for matching user input to available choices.""" + CHOICE = enum.auto() """Match any choice.""" ANY = enum.auto() @@ -220,6 +229,7 @@ class MatchConditions(enum.Flag): class DynamicChoicesParser(Parser, metaclass=abc.ABCMeta): """Base class for composite argument parsers which use a list of choices that can be generated during completion.""" + def __init__(self, conditions: MatchConditions = MatchConditions.CHOICE) -> None: self.conditions = conditions @@ -275,6 +285,7 @@ class DynamicChoicesParser(Parser, metaclass=abc.ABCMeta): class ChoicesParser(DynamicChoicesParser): """Composite argument parser which relies on a static list of choices.""" + def __init__(self, choices: list[str], conditions: MatchConditions = MatchConditions.CHOICE) -> None: self.choices = choices @@ -291,6 +302,7 @@ class ChoicesParser(DynamicChoicesParser): class EnumValueChoicesParser(ChoicesParser): """Composite argument parser which relies on a static list of choices derived from the values of an enum.""" + def __init__(self, enum_type: t.Type[enum.Enum], conditions: MatchConditions = MatchConditions.CHOICE) -> None: self.enum_type = enum_type @@ -304,6 +316,7 @@ class EnumValueChoicesParser(ChoicesParser): class IntegerParser(DynamicChoicesParser): """Composite argument parser for integers.""" + PATTERN = re.compile('^[1-9][0-9]*$') def __init__(self, maximum: t.Optional[int] = None) -> None: @@ -341,6 +354,7 @@ class IntegerParser(DynamicChoicesParser): class BooleanParser(ChoicesParser): """Composite argument parser for boolean (yes/no) values.""" + def __init__(self) -> None: super().__init__(['yes', 'no']) @@ -352,6 +366,7 @@ class BooleanParser(ChoicesParser): class AnyParser(ChoicesParser): """Composite argument parser which accepts any input value.""" + def __init__(self, nothing: bool = False, no_match_message: t.Optional[str] = None) -> None: self.no_match_message = no_match_message @@ -379,6 +394,7 @@ class AnyParser(ChoicesParser): class RelativePathNameParser(DynamicChoicesParser): """Composite argument parser for relative path names.""" + RELATIVE_NAMES = ['.', '..'] def __init__(self, choices: list[str]) -> None: @@ -400,6 +416,7 @@ class RelativePathNameParser(DynamicChoicesParser): class FileParser(Parser): """Composite argument parser for absolute or relative file paths.""" + def parse(self, state: ParserState) -> str: """Parse the input from the given state and return the result.""" if state.mode == ParserMode.PARSE: @@ -432,6 +449,7 @@ class FileParser(Parser): class AbsolutePathParser(Parser): """Composite argument parser for absolute file paths. Paths are only verified for proper syntax, not for existence.""" + def parse(self, state: ParserState) -> t.Any: """Parse the input from the given state and return the result.""" path = '' @@ -443,13 +461,14 @@ class AbsolutePathParser(Parser): else: path += ChoicesParser([PATH_DELIMITER]).parse(state) - path += (boundary.match or '') + path += boundary.match or '' return path class NamespaceParser(Parser, metaclass=abc.ABCMeta): """Base class for composite argument parsers that store their results in a namespace.""" + def parse(self, state: ParserState) -> t.Any: """Parse the input from the given state and return the result.""" namespace = state.current_namespace @@ -496,6 +515,7 @@ class NamespaceParser(Parser, metaclass=abc.ABCMeta): class NamespaceWrappedParser(NamespaceParser): """Composite argument parser that wraps a non-namespace parser and stores the result in a namespace.""" + def __init__(self, dest: str, parser: Parser) -> None: self._dest = dest self.parser = parser @@ -512,6 +532,7 @@ class NamespaceWrappedParser(NamespaceParser): class KeyValueParser(Parser, metaclass=abc.ABCMeta): """Base class for key/value composite argument parsers.""" + @abc.abstractmethod def get_parsers(self, state: ParserState) -> dict[str, Parser]: """Return a dictionary of key names and value parsers.""" @@ -538,6 +559,7 @@ class KeyValueParser(Parser, metaclass=abc.ABCMeta): class PairParser(Parser, metaclass=abc.ABCMeta): """Base class for composite argument parsers consisting of a left and right argument parser, with input separated by a delimiter.""" + def parse(self, state: ParserState) -> t.Any: """Parse the input from the given state and return the result.""" namespace = self.create_namespace() @@ -577,6 +599,7 @@ class PairParser(Parser, metaclass=abc.ABCMeta): class TypeParser(Parser, metaclass=abc.ABCMeta): """Base class for composite argument parsers which parse a type name, a colon and then parse results based on the type given by the type name.""" + def get_parsers(self, state: ParserState) -> dict[str, Parser]: # pylint: disable=unused-argument """Return a dictionary of type names and type parsers.""" return self.get_stateless_parsers() diff --git a/test/lib/ansible_test/_internal/cli/commands/env.py b/test/lib/ansible_test/_internal/cli/commands/env.py index 0cd21145..8b56e4f1 100644 --- a/test/lib/ansible_test/_internal/cli/commands/env.py +++ b/test/lib/ansible_test/_internal/cli/commands/env.py @@ -55,7 +55,7 @@ def do_env( env.add_argument( '--timeout', - type=int, + type=float, metavar='MINUTES', help='timeout for future ansible-test commands (0 clears)', ) diff --git a/test/lib/ansible_test/_internal/cli/commands/integration/network.py b/test/lib/ansible_test/_internal/cli/commands/integration/network.py index a05985b5..a42ba919 100644 --- a/test/lib/ansible_test/_internal/cli/commands/integration/network.py +++ b/test/lib/ansible_test/_internal/cli/commands/integration/network.py @@ -50,7 +50,8 @@ def do_network_integration( parser.set_defaults( func=command_network_integration, targets_func=walk_network_integration_targets, - config=NetworkIntegrationConfig) + config=NetworkIntegrationConfig, + ) network_integration = t.cast(argparse.ArgumentParser, parser.add_argument_group(title='network integration test arguments')) diff --git a/test/lib/ansible_test/_internal/cli/commands/sanity.py b/test/lib/ansible_test/_internal/cli/commands/sanity.py index 8b4a9ae5..c4f0c0a0 100644 --- a/test/lib/ansible_test/_internal/cli/commands/sanity.py +++ b/test/lib/ansible_test/_internal/cli/commands/sanity.py @@ -16,10 +16,6 @@ from ...target import ( walk_sanity_targets, ) -from ...data import ( - data_context, -) - from ..environments import ( CompositeActionCompletionFinder, ControllerMode, @@ -43,7 +39,8 @@ def do_sanity( parser.set_defaults( func=command_sanity, targets_func=walk_sanity_targets, - config=SanityConfig) + config=SanityConfig, + ) sanity = parser.add_argument_group(title='sanity test arguments') @@ -81,17 +78,6 @@ def do_sanity( help='enable optional errors', ) - if data_context().content.is_ansible: - sanity.add_argument( - '--keep-git', - action='store_true', - help='transfer git related files to the remote host/container', - ) - else: - sanity.set_defaults( - keep_git=False, - ) - sanity.add_argument( '--lint', action='store_true', @@ -113,7 +99,7 @@ def do_sanity( sanity.add_argument( '--prime-venvs', action='store_true', - help='prepare virtual environments without running tests' + help='prepare virtual environments without running tests', ) add_environments(parser, completer, ControllerMode.DELEGATED, TargetMode.SANITY) # sanity diff --git a/test/lib/ansible_test/_internal/cli/compat.py b/test/lib/ansible_test/_internal/cli/compat.py index 93006d5c..19996faf 100644 --- a/test/lib/ansible_test/_internal/cli/compat.py +++ b/test/lib/ansible_test/_internal/cli/compat.py @@ -84,24 +84,28 @@ def get_option_name(name: str) -> str: class PythonVersionUnsupportedError(ApplicationError): """A Python version was requested for a context which does not support that version.""" + def __init__(self, context: str, version: str, versions: c.Iterable[str]) -> None: super().__init__(f'Python {version} is not supported by environment `{context}`. Supported Python version(s) are: {", ".join(versions)}') class PythonVersionUnspecifiedError(ApplicationError): """A Python version was not specified for a context which is unknown, thus the Python version is unknown.""" + def __init__(self, context: str) -> None: super().__init__(f'A Python version was not specified for environment `{context}`. Use the `--python` option to specify a Python version.') class ControllerNotSupportedError(ApplicationError): """Option(s) were specified which do not provide support for the controller and would be ignored because they are irrelevant for the target.""" + def __init__(self, context: str) -> None: super().__init__(f'Environment `{context}` does not provide a Python version supported by the controller.') class OptionsConflictError(ApplicationError): """Option(s) were specified which conflict with other options.""" + def __init__(self, first: c.Iterable[str], second: c.Iterable[str]) -> None: super().__init__(f'Options `{" ".join(first)}` cannot be combined with options `{" ".join(second)}`.') @@ -109,6 +113,7 @@ class OptionsConflictError(ApplicationError): @dataclasses.dataclass(frozen=True) class LegacyHostOptions: """Legacy host options used prior to the availability of separate controller and target host configuration.""" + python: t.Optional[str] = None python_interpreter: t.Optional[str] = None local: t.Optional[bool] = None @@ -161,6 +166,7 @@ class LegacyHostOptions: class TargetMode(enum.Enum): """Type of provisioning to use for the targets.""" + WINDOWS_INTEGRATION = enum.auto() # windows-integration NETWORK_INTEGRATION = enum.auto() # network-integration POSIX_INTEGRATION = enum.auto() # integration diff --git a/test/lib/ansible_test/_internal/cli/environments.py b/test/lib/ansible_test/_internal/cli/environments.py index 5063715a..94cafae3 100644 --- a/test/lib/ansible_test/_internal/cli/environments.py +++ b/test/lib/ansible_test/_internal/cli/environments.py @@ -75,6 +75,7 @@ from ..ci import ( class ControllerMode(enum.Enum): """Type of provisioning to use for the controller.""" + NO_DELEGATION = enum.auto() ORIGIN = enum.auto() DELEGATED = enum.auto() @@ -252,7 +253,8 @@ def add_legacy_environment_options( ): """Add legacy options for controlling the test environment.""" environment: argparse.ArgumentParser = parser.add_argument_group( # type: ignore[assignment] # real type private - title='environment arguments (mutually exclusive with "composite environment arguments" below)') + title='environment arguments (mutually exclusive with "composite environment arguments" below)', + ) add_environments_python(environment, target_mode) add_environments_host(environment, controller_mode, target_mode) @@ -383,7 +385,8 @@ def add_environment_venv( environments_parser.add_argument( '--venv-system-site-packages', action='store_true', - help='enable system site packages') + help='enable system site packages', + ) def add_global_docker( diff --git a/test/lib/ansible_test/_internal/cli/parsers/__init__.py b/test/lib/ansible_test/_internal/cli/parsers/__init__.py index 1aedf630..93ead807 100644 --- a/test/lib/ansible_test/_internal/cli/parsers/__init__.py +++ b/test/lib/ansible_test/_internal/cli/parsers/__init__.py @@ -53,6 +53,7 @@ from .base_argument_parsers import ( class OriginControllerParser(ControllerNamespaceParser, TypeParser): """Composite argument parser for the controller when delegation is not supported.""" + def get_stateless_parsers(self) -> dict[str, Parser]: """Return a dictionary of type names and type parsers.""" return dict( @@ -71,6 +72,7 @@ class OriginControllerParser(ControllerNamespaceParser, TypeParser): class DelegatedControllerParser(ControllerNamespaceParser, TypeParser): """Composite argument parser for the controller when delegation is supported.""" + def get_stateless_parsers(self) -> dict[str, Parser]: """Return a dictionary of type names and type parsers.""" parsers: dict[str, Parser] = dict( @@ -97,6 +99,7 @@ class DelegatedControllerParser(ControllerNamespaceParser, TypeParser): class PosixTargetParser(TargetNamespaceParser, TypeParser): """Composite argument parser for a POSIX target.""" + def get_stateless_parsers(self) -> dict[str, Parser]: """Return a dictionary of type names and type parsers.""" parsers: dict[str, Parser] = dict( @@ -127,6 +130,7 @@ class PosixTargetParser(TargetNamespaceParser, TypeParser): class WindowsTargetParser(TargetsNamespaceParser, TypeParser): """Composite argument parser for a Windows target.""" + @property def allow_inventory(self) -> bool: """True if inventory is allowed, otherwise False.""" @@ -169,6 +173,7 @@ class WindowsTargetParser(TargetsNamespaceParser, TypeParser): class NetworkTargetParser(TargetsNamespaceParser, TypeParser): """Composite argument parser for a network target.""" + @property def allow_inventory(self) -> bool: """True if inventory is allowed, otherwise False.""" @@ -211,6 +216,7 @@ class NetworkTargetParser(TargetsNamespaceParser, TypeParser): class PythonTargetParser(TargetsNamespaceParser, Parser): """Composite argument parser for a Python target.""" + def __init__(self, allow_venv: bool) -> None: super().__init__() @@ -249,18 +255,21 @@ class PythonTargetParser(TargetsNamespaceParser, Parser): class SanityPythonTargetParser(PythonTargetParser): """Composite argument parser for a sanity Python target.""" + def __init__(self) -> None: super().__init__(allow_venv=False) class UnitsPythonTargetParser(PythonTargetParser): """Composite argument parser for a units Python target.""" + def __init__(self) -> None: super().__init__(allow_venv=True) class PosixSshTargetParser(PosixTargetParser): """Composite argument parser for a POSIX SSH target.""" + @property def option_name(self) -> str: """The option name used for this parser.""" @@ -269,6 +278,7 @@ class PosixSshTargetParser(PosixTargetParser): class WindowsSshTargetParser(WindowsTargetParser): """Composite argument parser for a Windows SSH target.""" + @property def option_name(self) -> str: """The option name used for this parser.""" @@ -287,6 +297,7 @@ class WindowsSshTargetParser(WindowsTargetParser): class NetworkSshTargetParser(NetworkTargetParser): """Composite argument parser for a network SSH target.""" + @property def option_name(self) -> str: """The option name used for this parser.""" diff --git a/test/lib/ansible_test/_internal/cli/parsers/base_argument_parsers.py b/test/lib/ansible_test/_internal/cli/parsers/base_argument_parsers.py index aac7a694..d0124cf5 100644 --- a/test/lib/ansible_test/_internal/cli/parsers/base_argument_parsers.py +++ b/test/lib/ansible_test/_internal/cli/parsers/base_argument_parsers.py @@ -13,6 +13,7 @@ from ..argparsing.parsers import ( class ControllerNamespaceParser(NamespaceParser, metaclass=abc.ABCMeta): """Base class for controller namespace parsers.""" + @property def dest(self) -> str: """The name of the attribute where the value should be stored.""" @@ -28,6 +29,7 @@ class ControllerNamespaceParser(NamespaceParser, metaclass=abc.ABCMeta): class TargetNamespaceParser(NamespaceParser, metaclass=abc.ABCMeta): """Base class for target namespace parsers involving a single target.""" + @property def option_name(self) -> str: """The option name used for this parser.""" @@ -51,6 +53,7 @@ class TargetNamespaceParser(NamespaceParser, metaclass=abc.ABCMeta): class TargetsNamespaceParser(NamespaceParser, metaclass=abc.ABCMeta): """Base class for controller namespace parsers involving multiple targets.""" + @property def option_name(self) -> str: """The option name used for this parser.""" @@ -69,5 +72,6 @@ class TargetsNamespaceParser(NamespaceParser, metaclass=abc.ABCMeta): class ControllerRequiredFirstError(CompletionError): """Exception raised when controller and target options are specified out-of-order.""" + def __init__(self) -> None: super().__init__('The `--controller` option must be specified before `--target` option(s).') diff --git a/test/lib/ansible_test/_internal/cli/parsers/host_config_parsers.py b/test/lib/ansible_test/_internal/cli/parsers/host_config_parsers.py index ee6f146c..a90a59ac 100644 --- a/test/lib/ansible_test/_internal/cli/parsers/host_config_parsers.py +++ b/test/lib/ansible_test/_internal/cli/parsers/host_config_parsers.py @@ -63,6 +63,7 @@ from .helpers import ( class OriginParser(Parser): """Composite argument parser for the origin.""" + def parse(self, state: ParserState) -> t.Any: """Parse the input from the given state and return the result.""" namespace = OriginConfig() @@ -81,6 +82,7 @@ class OriginParser(Parser): class ControllerParser(Parser): """Composite argument parser for the controller.""" + def parse(self, state: ParserState) -> t.Any: """Parse the input from the given state and return the result.""" namespace = ControllerConfig() @@ -99,6 +101,7 @@ class ControllerParser(Parser): class DockerParser(PairParser): """Composite argument parser for a docker host.""" + def __init__(self, controller: bool) -> None: self.controller = controller @@ -142,6 +145,7 @@ class DockerParser(PairParser): class PosixRemoteParser(PairParser): """Composite argument parser for a POSIX remote host.""" + def __init__(self, controller: bool) -> None: self.controller = controller @@ -184,6 +188,7 @@ class PosixRemoteParser(PairParser): class WindowsRemoteParser(PairParser): """Composite argument parser for a Windows remote host.""" + def create_namespace(self) -> t.Any: """Create and return a namespace.""" return WindowsRemoteConfig() @@ -217,6 +222,7 @@ class WindowsRemoteParser(PairParser): class NetworkRemoteParser(PairParser): """Composite argument parser for a network remote host.""" + def create_namespace(self) -> t.Any: """Create and return a namespace.""" return NetworkRemoteConfig() @@ -250,6 +256,7 @@ class NetworkRemoteParser(PairParser): class WindowsInventoryParser(PairParser): """Composite argument parser for a Windows inventory.""" + def create_namespace(self) -> t.Any: """Create and return a namespace.""" return WindowsInventoryConfig() @@ -269,6 +276,7 @@ class WindowsInventoryParser(PairParser): class NetworkInventoryParser(PairParser): """Composite argument parser for a network inventory.""" + def create_namespace(self) -> t.Any: """Create and return a namespace.""" return NetworkInventoryConfig() @@ -288,6 +296,7 @@ class NetworkInventoryParser(PairParser): class PosixSshParser(PairParser): """Composite argument parser for a POSIX SSH host.""" + def create_namespace(self) -> t.Any: """Create and return a namespace.""" return PosixSshConfig() diff --git a/test/lib/ansible_test/_internal/cli/parsers/key_value_parsers.py b/test/lib/ansible_test/_internal/cli/parsers/key_value_parsers.py index 049b71ee..a046e51a 100644 --- a/test/lib/ansible_test/_internal/cli/parsers/key_value_parsers.py +++ b/test/lib/ansible_test/_internal/cli/parsers/key_value_parsers.py @@ -52,6 +52,7 @@ from .helpers import ( class OriginKeyValueParser(KeyValueParser): """Composite argument parser for origin key/value pairs.""" + def get_parsers(self, state: ParserState) -> dict[str, Parser]: """Return a dictionary of key names and value parsers.""" versions = CONTROLLER_PYTHON_VERSIONS @@ -75,6 +76,7 @@ class OriginKeyValueParser(KeyValueParser): class ControllerKeyValueParser(KeyValueParser): """Composite argument parser for controller key/value pairs.""" + def get_parsers(self, state: ParserState) -> dict[str, Parser]: """Return a dictionary of key names and value parsers.""" versions = get_controller_pythons(state.root_namespace.controller, False) @@ -99,6 +101,7 @@ class ControllerKeyValueParser(KeyValueParser): class DockerKeyValueParser(KeyValueParser): """Composite argument parser for docker key/value pairs.""" + def __init__(self, image: str, controller: bool) -> None: self.controller = controller self.versions = get_docker_pythons(image, controller, False) @@ -135,6 +138,7 @@ class DockerKeyValueParser(KeyValueParser): class PosixRemoteKeyValueParser(KeyValueParser): """Composite argument parser for POSIX remote key/value pairs.""" + def __init__(self, name: str, controller: bool) -> None: self.controller = controller self.versions = get_remote_pythons(name, controller, False) @@ -167,6 +171,7 @@ class PosixRemoteKeyValueParser(KeyValueParser): class WindowsRemoteKeyValueParser(KeyValueParser): """Composite argument parser for Windows remote key/value pairs.""" + def get_parsers(self, state: ParserState) -> dict[str, Parser]: """Return a dictionary of key names and value parsers.""" return dict( @@ -188,6 +193,7 @@ class WindowsRemoteKeyValueParser(KeyValueParser): class NetworkRemoteKeyValueParser(KeyValueParser): """Composite argument parser for network remote key/value pairs.""" + def get_parsers(self, state: ParserState) -> dict[str, Parser]: """Return a dictionary of key names and value parsers.""" return dict( @@ -213,6 +219,7 @@ class NetworkRemoteKeyValueParser(KeyValueParser): class PosixSshKeyValueParser(KeyValueParser): """Composite argument parser for POSIX SSH host key/value pairs.""" + def get_parsers(self, state: ParserState) -> dict[str, Parser]: """Return a dictionary of key names and value parsers.""" return dict( @@ -234,6 +241,7 @@ class PosixSshKeyValueParser(KeyValueParser): class EmptyKeyValueParser(KeyValueParser): """Composite argument parser when a key/value parser is required but there are no keys available.""" + def get_parsers(self, state: ParserState) -> dict[str, Parser]: """Return a dictionary of key names and value parsers.""" return {} diff --git a/test/lib/ansible_test/_internal/cli/parsers/value_parsers.py b/test/lib/ansible_test/_internal/cli/parsers/value_parsers.py index 9453b760..f416281e 100644 --- a/test/lib/ansible_test/_internal/cli/parsers/value_parsers.py +++ b/test/lib/ansible_test/_internal/cli/parsers/value_parsers.py @@ -60,12 +60,14 @@ class PythonParser(Parser): Known docker/remote environments limit the available Python versions to configured values known to be valid. The origin host and unknown environments assume all relevant Python versions are available. """ - def __init__(self, - versions: c.Sequence[str], - *, - allow_default: bool, - allow_venv: bool, - ): + + def __init__( + self, + versions: c.Sequence[str], + *, + allow_default: bool, + allow_venv: bool, + ): version_choices = list(versions) if allow_default: @@ -134,6 +136,7 @@ class PythonParser(Parser): class PlatformParser(ChoicesParser): """Composite argument parser for "{platform}/{version}" formatted choices.""" + def __init__(self, choices: list[str]) -> None: super().__init__(choices, conditions=MatchConditions.CHOICE | MatchConditions.ANY) @@ -152,6 +155,7 @@ class SshConnectionParser(Parser): Composite argument parser for connecting to a host using SSH. Format: user@host[:port] """ + EXPECTED_FORMAT = '{user}@{host}[:{port}]' def parse(self, state: ParserState) -> t.Any: diff --git a/test/lib/ansible_test/_internal/commands/coverage/__init__.py b/test/lib/ansible_test/_internal/commands/coverage/__init__.py index 139cf3c6..c4c5f09e 100644 --- a/test/lib/ansible_test/_internal/commands/coverage/__init__.py +++ b/test/lib/ansible_test/_internal/commands/coverage/__init__.py @@ -68,6 +68,7 @@ COVERAGE_OUTPUT_FILE_NAME = 'coverage' class CoverageConfig(EnvironmentConfig): """Configuration for the coverage command.""" + def __init__(self, args: t.Any) -> None: super().__init__(args, 'coverage') @@ -96,7 +97,7 @@ def initialize_coverage(args: CoverageConfig, host_state: HostState) -> coverage def run_coverage(args: CoverageConfig, host_state: HostState, output_file: str, command: str, cmd: list[str]) -> None: """Run the coverage cli tool with the specified options.""" env = common_environment() - env.update(dict(COVERAGE_FILE=output_file)) + env.update(COVERAGE_FILE=output_file) cmd = ['python', '-m', 'coverage.__main__', command, '--rcfile', COVERAGE_CONFIG_PATH] + cmd @@ -340,6 +341,7 @@ def sanitize_filename( class PathChecker: """Checks code coverage paths to verify they are valid and reports on the findings.""" + def __init__(self, args: CoverageConfig, collection_search_re: t.Optional[t.Pattern] = None) -> None: self.args = args self.collection_search_re = collection_search_re diff --git a/test/lib/ansible_test/_internal/commands/coverage/analyze/__init__.py b/test/lib/ansible_test/_internal/commands/coverage/analyze/__init__.py index 37859e8f..2029d7be 100644 --- a/test/lib/ansible_test/_internal/commands/coverage/analyze/__init__.py +++ b/test/lib/ansible_test/_internal/commands/coverage/analyze/__init__.py @@ -9,6 +9,7 @@ from .. import ( class CoverageAnalyzeConfig(CoverageConfig): """Configuration for the `coverage analyze` command.""" + def __init__(self, args: t.Any) -> None: super().__init__(args) diff --git a/test/lib/ansible_test/_internal/commands/coverage/analyze/targets/combine.py b/test/lib/ansible_test/_internal/commands/coverage/analyze/targets/combine.py index e3782cee..0bbb2873 100644 --- a/test/lib/ansible_test/_internal/commands/coverage/analyze/targets/combine.py +++ b/test/lib/ansible_test/_internal/commands/coverage/analyze/targets/combine.py @@ -28,6 +28,7 @@ from . import ( class CoverageAnalyzeTargetsCombineConfig(CoverageAnalyzeTargetsConfig): """Configuration for the `coverage analyze targets combine` command.""" + def __init__(self, args: t.Any) -> None: super().__init__(args) diff --git a/test/lib/ansible_test/_internal/commands/coverage/analyze/targets/expand.py b/test/lib/ansible_test/_internal/commands/coverage/analyze/targets/expand.py index ba903878..93197543 100644 --- a/test/lib/ansible_test/_internal/commands/coverage/analyze/targets/expand.py +++ b/test/lib/ansible_test/_internal/commands/coverage/analyze/targets/expand.py @@ -26,6 +26,7 @@ from . import ( class CoverageAnalyzeTargetsExpandConfig(CoverageAnalyzeTargetsConfig): """Configuration for the `coverage analyze targets expand` command.""" + def __init__(self, args: t.Any) -> None: super().__init__(args) diff --git a/test/lib/ansible_test/_internal/commands/coverage/analyze/targets/filter.py b/test/lib/ansible_test/_internal/commands/coverage/analyze/targets/filter.py index 29a8ee5b..ccedae7d 100644 --- a/test/lib/ansible_test/_internal/commands/coverage/analyze/targets/filter.py +++ b/test/lib/ansible_test/_internal/commands/coverage/analyze/targets/filter.py @@ -31,6 +31,7 @@ from . import ( class CoverageAnalyzeTargetsFilterConfig(CoverageAnalyzeTargetsConfig): """Configuration for the `coverage analyze targets filter` command.""" + def __init__(self, args: t.Any) -> None: super().__init__(args) diff --git a/test/lib/ansible_test/_internal/commands/coverage/analyze/targets/generate.py b/test/lib/ansible_test/_internal/commands/coverage/analyze/targets/generate.py index 127b5b7f..0f0da5de 100644 --- a/test/lib/ansible_test/_internal/commands/coverage/analyze/targets/generate.py +++ b/test/lib/ansible_test/_internal/commands/coverage/analyze/targets/generate.py @@ -52,6 +52,7 @@ from . import ( class CoverageAnalyzeTargetsGenerateConfig(CoverageAnalyzeTargetsConfig): """Configuration for the `coverage analyze targets generate` command.""" + def __init__(self, args: t.Any) -> None: super().__init__(args) diff --git a/test/lib/ansible_test/_internal/commands/coverage/analyze/targets/missing.py b/test/lib/ansible_test/_internal/commands/coverage/analyze/targets/missing.py index c1c77e75..0a756643 100644 --- a/test/lib/ansible_test/_internal/commands/coverage/analyze/targets/missing.py +++ b/test/lib/ansible_test/_internal/commands/coverage/analyze/targets/missing.py @@ -32,6 +32,7 @@ from . import ( class CoverageAnalyzeTargetsMissingConfig(CoverageAnalyzeTargetsConfig): """Configuration for the `coverage analyze targets missing` command.""" + def __init__(self, args: t.Any) -> None: super().__init__(args) diff --git a/test/lib/ansible_test/_internal/commands/coverage/combine.py b/test/lib/ansible_test/_internal/commands/coverage/combine.py index 66210c73..12cb54e2 100644 --- a/test/lib/ansible_test/_internal/commands/coverage/combine.py +++ b/test/lib/ansible_test/_internal/commands/coverage/combine.py @@ -34,6 +34,7 @@ from ...executor import ( from ...data import ( data_context, + PayloadConfig, ) from ...host_configs import ( @@ -82,9 +83,10 @@ def combine_coverage_files(args: CoverageCombineConfig, host_state: HostState) - pairs = [(path, os.path.relpath(path, data_context().content.root)) for path in exported_paths] - def coverage_callback(files: list[tuple[str, str]]) -> None: + def coverage_callback(payload_config: PayloadConfig) -> None: """Add the coverage files to the payload file list.""" display.info('Including %d exported coverage file(s) in payload.' % len(pairs), verbosity=1) + files = payload_config.files files.extend(pairs) data_context().register_payload_callback(coverage_callback) @@ -101,11 +103,13 @@ def combine_coverage_files(args: CoverageCombineConfig, host_state: HostState) - class ExportedCoverageDataNotFound(ApplicationError): """Exception when no combined coverage data is present yet is required.""" + def __init__(self) -> None: super().__init__( 'Coverage data must be exported before processing with the `--docker` or `--remote` option.\n' 'Export coverage with `ansible-test coverage combine` using the `--export` option.\n' - 'The exported files must be in the directory: %s/' % ResultType.COVERAGE.relative_path) + 'The exported files must be in the directory: %s/' % ResultType.COVERAGE.relative_path + ) def _command_coverage_combine_python(args: CoverageCombineConfig, host_state: HostState) -> list[str]: @@ -351,6 +355,7 @@ def get_coverage_group(args: CoverageCombineConfig, coverage_file: str) -> t.Opt class CoverageCombineConfig(CoverageConfig): """Configuration for the coverage combine command.""" + def __init__(self, args: t.Any) -> None: super().__init__(args) diff --git a/test/lib/ansible_test/_internal/commands/coverage/report.py b/test/lib/ansible_test/_internal/commands/coverage/report.py index fadc13f3..c0f40186 100644 --- a/test/lib/ansible_test/_internal/commands/coverage/report.py +++ b/test/lib/ansible_test/_internal/commands/coverage/report.py @@ -144,6 +144,7 @@ def _generate_powershell_output_report(args: CoverageReportConfig, coverage_file class CoverageReportConfig(CoverageCombineConfig): """Configuration for the coverage report command.""" + def __init__(self, args: t.Any) -> None: super().__init__(args) diff --git a/test/lib/ansible_test/_internal/commands/env/__init__.py b/test/lib/ansible_test/_internal/commands/env/__init__.py index 44f229f8..92d2c973 100644 --- a/test/lib/ansible_test/_internal/commands/env/__init__.py +++ b/test/lib/ansible_test/_internal/commands/env/__init__.py @@ -42,16 +42,20 @@ from ...ci import ( get_ci_provider, ) +from ...timeout import ( + TimeoutDetail, +) + class EnvConfig(CommonConfig): """Configuration for the `env` command.""" def __init__(self, args: t.Any) -> None: super().__init__(args, 'env') - self.show = args.show - self.dump = args.dump - self.timeout = args.timeout - self.list_files = args.list_files + self.show: bool = args.show + self.dump: bool = args.dump + self.timeout: int | float | None = args.timeout + self.list_files: bool = args.list_files if not self.show and not self.dump and self.timeout is None and not self.list_files: # default to --show if no options were given @@ -85,7 +89,7 @@ def show_dump_env(args: EnvConfig) -> None: ), git=get_ci_provider().get_git_details(args), platform=dict( - datetime=datetime.datetime.utcnow().strftime('%Y-%m-%dT%H:%M:%SZ'), + datetime=datetime.datetime.now(tz=datetime.timezone.utc).strftime('%Y-%m-%dT%H:%M:%SZ'), platform=platform.platform(), uname=platform.uname(), ), @@ -124,25 +128,18 @@ def set_timeout(args: EnvConfig) -> None: if args.timeout is None: return - if args.timeout: - deadline = (datetime.datetime.utcnow() + datetime.timedelta(minutes=args.timeout)).strftime('%Y-%m-%dT%H:%M:%SZ') + timeout = TimeoutDetail.create(args.timeout) - display.info('Setting a %d minute test timeout which will end at: %s' % (args.timeout, deadline), verbosity=1) + if timeout: + display.info(f'Setting a {timeout.duration} minute test timeout which will end at: {timeout.deadline}', verbosity=1) else: - deadline = None - display.info('Clearing existing test timeout.', verbosity=1) if args.explain: return - if deadline: - data = dict( - duration=args.timeout, - deadline=deadline, - ) - - write_json_file(TIMEOUT_PATH, data) + if timeout: + write_json_file(TIMEOUT_PATH, timeout.to_dict()) elif os.path.exists(TIMEOUT_PATH): os.remove(TIMEOUT_PATH) diff --git a/test/lib/ansible_test/_internal/commands/integration/__init__.py b/test/lib/ansible_test/_internal/commands/integration/__init__.py index 8864d2ee..5bd04407 100644 --- a/test/lib/ansible_test/_internal/commands/integration/__init__.py +++ b/test/lib/ansible_test/_internal/commands/integration/__init__.py @@ -90,6 +90,7 @@ from .cloud import ( from ...data import ( data_context, + PayloadConfig, ) from ...host_configs import ( @@ -214,11 +215,13 @@ def delegate_inventory(args: IntegrationConfig, inventory_path_src: str) -> None if isinstance(args, PosixIntegrationConfig): return - def inventory_callback(files: list[tuple[str, str]]) -> None: + def inventory_callback(payload_config: PayloadConfig) -> None: """ Add the inventory file to the payload file list. This will preserve the file during delegation even if it is ignored or is outside the content and install roots. """ + files = payload_config.files + inventory_path = get_inventory_relative_path(args) inventory_tuple = inventory_path_src, inventory_path @@ -311,7 +314,7 @@ def integration_test_environment( directory_copies = [ ( os.path.join(integration_targets_relative_path, target.relative_path), - os.path.join(temp_dir, integration_targets_relative_path, target.relative_path) + os.path.join(temp_dir, integration_targets_relative_path, target.relative_path), ) for target in target_dependencies ] @@ -354,12 +357,12 @@ def integration_test_config_file( config_vars = (env_config.ansible_vars or {}).copy() - config_vars.update(dict( + config_vars.update( ansible_test=dict( environment=env_config.env_vars, module_defaults=env_config.module_defaults, ) - )) + ) config_file = json.dumps(config_vars, indent=4, sort_keys=True) @@ -563,7 +566,7 @@ def command_integration_filtered( coverage_manager.teardown() result_name = '%s-%s.json' % ( - args.command, re.sub(r'[^0-9]', '-', str(datetime.datetime.utcnow().replace(microsecond=0)))) + args.command, re.sub(r'[^0-9]', '-', str(datetime.datetime.now(tz=datetime.timezone.utc).replace(microsecond=0, tzinfo=None)))) data = dict( targets=results, @@ -612,10 +615,10 @@ def command_integration_script( env = integration_environment(args, target, test_dir, test_env.inventory_path, test_env.ansible_config, env_config, test_env) cwd = os.path.join(test_env.targets_dir, target.relative_path) - env.update(dict( + env.update( # support use of adhoc ansible commands in collections without specifying the fully qualified collection name ANSIBLE_PLAYBOOK_DIR=cwd, - )) + ) if env_config and env_config.env_vars: env.update(env_config.env_vars) @@ -650,9 +653,9 @@ def command_integration_role( if isinstance(args, WindowsIntegrationConfig): hosts = 'windows' gather_facts = False - variables.update(dict( + variables.update( win_output_dir=r'C:\ansible_testing', - )) + ) elif isinstance(args, NetworkIntegrationConfig): hosts = target.network_platform gather_facts = False @@ -697,10 +700,10 @@ def command_integration_role( if env_config.ansible_vars: variables.update(env_config.ansible_vars) - play.update(dict( + play.update( environment=env_config.env_vars, module_defaults=env_config.module_defaults, - )) + ) playbook = json.dumps([play], indent=4, sort_keys=True) @@ -733,10 +736,10 @@ def command_integration_role( env = integration_environment(args, target, test_dir, test_env.inventory_path, test_env.ansible_config, env_config, test_env) cwd = test_env.integration_dir - env.update(dict( + env.update( # support use of adhoc ansible commands in collections without specifying the fully qualified collection name ANSIBLE_PLAYBOOK_DIR=cwd, - )) + ) if env_config and env_config.env_vars: env.update(env_config.env_vars) @@ -804,13 +807,13 @@ def integration_environment( ) if args.debug_strategy: - env.update(dict(ANSIBLE_STRATEGY='debug')) + env.update(ANSIBLE_STRATEGY='debug') if 'non_local/' in target.aliases: if args.coverage: display.warning('Skipping coverage reporting on Ansible modules for non-local test: %s' % target.name) - env.update(dict(ANSIBLE_TEST_REMOTE_INTERPRETER='')) + env.update(ANSIBLE_TEST_REMOTE_INTERPRETER='') env.update(integration) @@ -819,6 +822,7 @@ def integration_environment( class IntegrationEnvironment: """Details about the integration environment.""" + def __init__(self, test_dir: str, integration_dir: str, targets_dir: str, inventory_path: str, ansible_config: str, vars_file: str) -> None: self.test_dir = test_dir self.integration_dir = integration_dir @@ -830,6 +834,7 @@ class IntegrationEnvironment: class IntegrationCache(CommonCache): """Integration cache.""" + @property def integration_targets(self) -> list[IntegrationTarget]: """The list of integration test targets.""" @@ -897,9 +902,10 @@ If necessary, context can be controlled by adding entries to the "aliases" file return exclude -def command_integration_filter(args: TIntegrationConfig, - targets: c.Iterable[TIntegrationTarget], - ) -> tuple[HostState, tuple[TIntegrationTarget, ...]]: +def command_integration_filter( + args: TIntegrationConfig, + targets: c.Iterable[TIntegrationTarget], +) -> tuple[HostState, tuple[TIntegrationTarget, ...]]: """Filter the given integration test targets.""" targets = tuple(target for target in targets if 'hidden/' not in target.aliases) changes = get_changes_filter(args) @@ -937,11 +943,13 @@ def command_integration_filter(args: TIntegrationConfig, vars_file_src = os.path.join(data_context().content.root, data_context().content.integration_vars_path) if os.path.exists(vars_file_src): - def integration_config_callback(files: list[tuple[str, str]]) -> None: + + def integration_config_callback(payload_config: PayloadConfig) -> None: """ Add the integration config vars file to the payload file list. This will preserve the file during delegation even if the file is ignored by source control. """ + files = payload_config.files files.append((vars_file_src, data_context().content.integration_vars_path)) data_context().register_payload_callback(integration_config_callback) diff --git a/test/lib/ansible_test/_internal/commands/integration/cloud/__init__.py b/test/lib/ansible_test/_internal/commands/integration/cloud/__init__.py index 0c078b98..eac9265a 100644 --- a/test/lib/ansible_test/_internal/commands/integration/cloud/__init__.py +++ b/test/lib/ansible_test/_internal/commands/integration/cloud/__init__.py @@ -47,6 +47,7 @@ from ....ci import ( from ....data import ( data_context, + PayloadConfig, ) from ....docker_util import ( @@ -169,7 +170,7 @@ def cloud_init(args: IntegrationConfig, targets: tuple[IntegrationTarget, ...]) if not args.explain and results: result_name = '%s-%s.json' % ( - args.command, re.sub(r'[^0-9]', '-', str(datetime.datetime.utcnow().replace(microsecond=0)))) + args.command, re.sub(r'[^0-9]', '-', str(datetime.datetime.now(tz=datetime.timezone.utc).replace(microsecond=0, tzinfo=None)))) data = dict( clouds=results, @@ -180,6 +181,7 @@ def cloud_init(args: IntegrationConfig, targets: tuple[IntegrationTarget, ...]) class CloudBase(metaclass=abc.ABCMeta): """Base class for cloud plugins.""" + _CONFIG_PATH = 'config_path' _RESOURCE_PREFIX = 'resource_prefix' _MANAGED = 'managed' @@ -189,13 +191,14 @@ class CloudBase(metaclass=abc.ABCMeta): self.args = args self.platform = self.__module__.rsplit('.', 1)[-1] - def config_callback(files: list[tuple[str, str]]) -> None: + def config_callback(payload_config: PayloadConfig) -> None: """Add the config file to the payload file list.""" if self.platform not in self.args.metadata.cloud_config: return # platform was initialized, but not used -- such as being skipped due to all tests being disabled if self._get_cloud_config(self._CONFIG_PATH, ''): pair = (self.config_path, os.path.relpath(self.config_path, data_context().content.root)) + files = payload_config.files if pair not in files: display.info('Including %s config: %s -> %s' % (self.platform, pair[0], pair[1]), verbosity=3) @@ -257,6 +260,7 @@ class CloudBase(metaclass=abc.ABCMeta): class CloudProvider(CloudBase): """Base class for cloud provider plugins. Sets up cloud resources before delegation.""" + def __init__(self, args: IntegrationConfig, config_extension: str = '.ini') -> None: super().__init__(args) @@ -356,6 +360,7 @@ class CloudProvider(CloudBase): class CloudEnvironment(CloudBase): """Base class for cloud environment plugins. Updates integration test environment after delegation.""" + def setup_once(self) -> None: """Run setup if it has not already been run.""" if self.setup_executed: @@ -377,12 +382,14 @@ class CloudEnvironment(CloudBase): class CloudEnvironmentConfig: """Configuration for the environment.""" - def __init__(self, - env_vars: t.Optional[dict[str, str]] = None, - ansible_vars: t.Optional[dict[str, t.Any]] = None, - module_defaults: t.Optional[dict[str, dict[str, t.Any]]] = None, - callback_plugins: t.Optional[list[str]] = None, - ): + + def __init__( + self, + env_vars: t.Optional[dict[str, str]] = None, + ansible_vars: t.Optional[dict[str, t.Any]] = None, + module_defaults: t.Optional[dict[str, dict[str, t.Any]]] = None, + callback_plugins: t.Optional[list[str]] = None, + ): self.env_vars = env_vars self.ansible_vars = ansible_vars self.module_defaults = module_defaults diff --git a/test/lib/ansible_test/_internal/commands/integration/cloud/acme.py b/test/lib/ansible_test/_internal/commands/integration/cloud/acme.py index 007d383c..e8020ca9 100644 --- a/test/lib/ansible_test/_internal/commands/integration/cloud/acme.py +++ b/test/lib/ansible_test/_internal/commands/integration/cloud/acme.py @@ -21,6 +21,7 @@ from . import ( class ACMEProvider(CloudProvider): """ACME plugin. Sets up cloud resources for tests.""" + DOCKER_SIMULATOR_NAME = 'acme-simulator' def __init__(self, args: IntegrationConfig) -> None: @@ -68,6 +69,7 @@ class ACMEProvider(CloudProvider): class ACMEEnvironment(CloudEnvironment): """ACME environment plugin. Updates integration test environment after delegation.""" + def get_environment_config(self) -> CloudEnvironmentConfig: """Return environment configuration for use in the test environment after delegation.""" ansible_vars = dict( diff --git a/test/lib/ansible_test/_internal/commands/integration/cloud/aws.py b/test/lib/ansible_test/_internal/commands/integration/cloud/aws.py index 234f3112..470f3be5 100644 --- a/test/lib/ansible_test/_internal/commands/integration/cloud/aws.py +++ b/test/lib/ansible_test/_internal/commands/integration/cloud/aws.py @@ -37,6 +37,7 @@ from . import ( class AwsCloudProvider(CloudProvider): """AWS cloud provider plugin. Sets up cloud resources before delegation.""" + def __init__(self, args: IntegrationConfig) -> None: super().__init__(args) @@ -97,6 +98,7 @@ class AwsCloudProvider(CloudProvider): class AwsCloudEnvironment(CloudEnvironment): """AWS cloud environment plugin. Updates integration test environment after delegation.""" + def get_environment_config(self) -> CloudEnvironmentConfig: """Return environment configuration for use in the test environment after delegation.""" parser = configparser.ConfigParser() diff --git a/test/lib/ansible_test/_internal/commands/integration/cloud/azure.py b/test/lib/ansible_test/_internal/commands/integration/cloud/azure.py index dc5136ac..4225f8f4 100644 --- a/test/lib/ansible_test/_internal/commands/integration/cloud/azure.py +++ b/test/lib/ansible_test/_internal/commands/integration/cloud/azure.py @@ -31,6 +31,7 @@ from . import ( class AzureCloudProvider(CloudProvider): """Azure cloud provider plugin. Sets up cloud resources before delegation.""" + def __init__(self, args: IntegrationConfig) -> None: super().__init__(args) @@ -103,6 +104,7 @@ class AzureCloudProvider(CloudProvider): class AzureCloudEnvironment(CloudEnvironment): """Azure cloud environment plugin. Updates integration test environment after delegation.""" + def get_environment_config(self) -> CloudEnvironmentConfig: """Return environment configuration for use in the test environment after delegation.""" env_vars = get_config(self.config_path) diff --git a/test/lib/ansible_test/_internal/commands/integration/cloud/cloudscale.py b/test/lib/ansible_test/_internal/commands/integration/cloud/cloudscale.py index f453ef3e..cbc80997 100644 --- a/test/lib/ansible_test/_internal/commands/integration/cloud/cloudscale.py +++ b/test/lib/ansible_test/_internal/commands/integration/cloud/cloudscale.py @@ -25,6 +25,7 @@ from . import ( class CloudscaleCloudProvider(CloudProvider): """Cloudscale cloud provider plugin. Sets up cloud resources before delegation.""" + def __init__(self, args: IntegrationConfig) -> None: super().__init__(args) @@ -39,6 +40,7 @@ class CloudscaleCloudProvider(CloudProvider): class CloudscaleCloudEnvironment(CloudEnvironment): """Cloudscale cloud environment plugin. Updates integration test environment after delegation.""" + def get_environment_config(self) -> CloudEnvironmentConfig: """Return environment configuration for use in the test environment after delegation.""" parser = configparser.ConfigParser() diff --git a/test/lib/ansible_test/_internal/commands/integration/cloud/cs.py b/test/lib/ansible_test/_internal/commands/integration/cloud/cs.py index 0037b423..8588df7d 100644 --- a/test/lib/ansible_test/_internal/commands/integration/cloud/cs.py +++ b/test/lib/ansible_test/_internal/commands/integration/cloud/cs.py @@ -35,6 +35,7 @@ from . import ( class CsCloudProvider(CloudProvider): """CloudStack cloud provider plugin. Sets up cloud resources before delegation.""" + DOCKER_SIMULATOR_NAME = 'cloudstack-sim' def __init__(self, args: IntegrationConfig) -> None: @@ -131,6 +132,7 @@ class CsCloudProvider(CloudProvider): def _get_credentials(self, container_name: str) -> dict[str, t.Any]: """Wait for the CloudStack simulator to return credentials.""" + def check(value) -> bool: """Return True if the given configuration is valid JSON, otherwise return False.""" # noinspection PyBroadException @@ -148,6 +150,7 @@ class CsCloudProvider(CloudProvider): class CsCloudEnvironment(CloudEnvironment): """CloudStack cloud environment plugin. Updates integration test environment after delegation.""" + def get_environment_config(self) -> CloudEnvironmentConfig: """Return environment configuration for use in the test environment after delegation.""" parser = configparser.ConfigParser() diff --git a/test/lib/ansible_test/_internal/commands/integration/cloud/digitalocean.py b/test/lib/ansible_test/_internal/commands/integration/cloud/digitalocean.py index a46bf70e..1a15a98d 100644 --- a/test/lib/ansible_test/_internal/commands/integration/cloud/digitalocean.py +++ b/test/lib/ansible_test/_internal/commands/integration/cloud/digitalocean.py @@ -20,6 +20,7 @@ from . import ( class DigitalOceanCloudProvider(CloudProvider): """Checks if a configuration file has been passed or fixtures are going to be used for testing""" + def __init__(self, args: IntegrationConfig) -> None: super().__init__(args) @@ -34,6 +35,7 @@ class DigitalOceanCloudProvider(CloudProvider): class DigitalOceanCloudEnvironment(CloudEnvironment): """Updates integration test environment after delegation. Will setup the config file as parameter.""" + def get_environment_config(self) -> CloudEnvironmentConfig: """Return environment configuration for use in the test environment after delegation.""" parser = configparser.ConfigParser() diff --git a/test/lib/ansible_test/_internal/commands/integration/cloud/foreman.py b/test/lib/ansible_test/_internal/commands/integration/cloud/foreman.py index c2413ee8..9e919cd8 100644 --- a/test/lib/ansible_test/_internal/commands/integration/cloud/foreman.py +++ b/test/lib/ansible_test/_internal/commands/integration/cloud/foreman.py @@ -21,6 +21,7 @@ from . import ( class ForemanProvider(CloudProvider): """Foreman plugin. Sets up Foreman stub server for tests.""" + DOCKER_SIMULATOR_NAME = 'foreman-stub' # Default image to run Foreman stub from. @@ -82,6 +83,7 @@ class ForemanProvider(CloudProvider): class ForemanEnvironment(CloudEnvironment): """Foreman environment plugin. Updates integration test environment after delegation.""" + def get_environment_config(self) -> CloudEnvironmentConfig: """Return environment configuration for use in the test environment after delegation.""" env_vars = dict( diff --git a/test/lib/ansible_test/_internal/commands/integration/cloud/galaxy.py b/test/lib/ansible_test/_internal/commands/integration/cloud/galaxy.py index e180a024..1391cd84 100644 --- a/test/lib/ansible_test/_internal/commands/integration/cloud/galaxy.py +++ b/test/lib/ansible_test/_internal/commands/integration/cloud/galaxy.py @@ -77,6 +77,7 @@ class GalaxyProvider(CloudProvider): Galaxy plugin. Sets up pulp (ansible-galaxy) servers for tests. The pulp source itself resides at: https://github.com/pulp/pulp-oci-images """ + def __init__(self, args: IntegrationConfig) -> None: super().__init__(args) @@ -143,6 +144,7 @@ class GalaxyProvider(CloudProvider): class GalaxyEnvironment(CloudEnvironment): """Galaxy environment plugin. Updates integration test environment after delegation.""" + def get_environment_config(self) -> CloudEnvironmentConfig: """Return environment configuration for use in the test environment after delegation.""" pulp_user = str(self._get_cloud_config('PULP_USER')) diff --git a/test/lib/ansible_test/_internal/commands/integration/cloud/gcp.py b/test/lib/ansible_test/_internal/commands/integration/cloud/gcp.py index 28ffb7b6..e3cd1df2 100644 --- a/test/lib/ansible_test/_internal/commands/integration/cloud/gcp.py +++ b/test/lib/ansible_test/_internal/commands/integration/cloud/gcp.py @@ -22,6 +22,7 @@ from . import ( class GcpCloudProvider(CloudProvider): """GCP cloud provider plugin. Sets up cloud resources before delegation.""" + def __init__(self, args: IntegrationConfig) -> None: super().__init__(args) @@ -39,6 +40,7 @@ class GcpCloudProvider(CloudProvider): class GcpCloudEnvironment(CloudEnvironment): """GCP cloud environment plugin. Updates integration test environment after delegation.""" + def get_environment_config(self) -> CloudEnvironmentConfig: """Return environment configuration for use in the test environment after delegation.""" parser = configparser.ConfigParser() diff --git a/test/lib/ansible_test/_internal/commands/integration/cloud/hcloud.py b/test/lib/ansible_test/_internal/commands/integration/cloud/hcloud.py index 4d75f221..04d6f7c6 100644 --- a/test/lib/ansible_test/_internal/commands/integration/cloud/hcloud.py +++ b/test/lib/ansible_test/_internal/commands/integration/cloud/hcloud.py @@ -29,6 +29,7 @@ from . import ( class HcloudCloudProvider(CloudProvider): """Hetzner Cloud provider plugin. Sets up cloud resources before delegation.""" + def __init__(self, args: IntegrationConfig) -> None: super().__init__(args) @@ -83,6 +84,7 @@ class HcloudCloudProvider(CloudProvider): class HcloudCloudEnvironment(CloudEnvironment): """Hetzner Cloud cloud environment plugin. Updates integration test environment after delegation.""" + def get_environment_config(self) -> CloudEnvironmentConfig: """Return environment configuration for use in the test environment after delegation.""" parser = configparser.ConfigParser() diff --git a/test/lib/ansible_test/_internal/commands/integration/cloud/httptester.py b/test/lib/ansible_test/_internal/commands/integration/cloud/httptester.py index e250eed7..85065d6f 100644 --- a/test/lib/ansible_test/_internal/commands/integration/cloud/httptester.py +++ b/test/lib/ansible_test/_internal/commands/integration/cloud/httptester.py @@ -28,6 +28,7 @@ KRB5_PASSWORD_ENV = 'KRB5_PASSWORD' class HttptesterProvider(CloudProvider): """HTTP Tester provider plugin. Sets up resources before delegation.""" + def __init__(self, args: IntegrationConfig) -> None: super().__init__(args) @@ -82,6 +83,7 @@ class HttptesterProvider(CloudProvider): class HttptesterEnvironment(CloudEnvironment): """HTTP Tester environment plugin. Updates integration test environment after delegation.""" + def get_environment_config(self) -> CloudEnvironmentConfig: """Return environment configuration for use in the test environment after delegation.""" return CloudEnvironmentConfig( diff --git a/test/lib/ansible_test/_internal/commands/integration/cloud/nios.py b/test/lib/ansible_test/_internal/commands/integration/cloud/nios.py index df0ebb0e..5bed8340 100644 --- a/test/lib/ansible_test/_internal/commands/integration/cloud/nios.py +++ b/test/lib/ansible_test/_internal/commands/integration/cloud/nios.py @@ -21,6 +21,7 @@ from . import ( class NiosProvider(CloudProvider): """Nios plugin. Sets up NIOS mock server for tests.""" + DOCKER_SIMULATOR_NAME = 'nios-simulator' # Default image to run the nios simulator. @@ -82,6 +83,7 @@ class NiosProvider(CloudProvider): class NiosEnvironment(CloudEnvironment): """NIOS environment plugin. Updates integration test environment after delegation.""" + def get_environment_config(self) -> CloudEnvironmentConfig: """Return environment configuration for use in the test environment after delegation.""" ansible_vars = dict( diff --git a/test/lib/ansible_test/_internal/commands/integration/cloud/opennebula.py b/test/lib/ansible_test/_internal/commands/integration/cloud/opennebula.py index d005a3ca..836cb22c 100644 --- a/test/lib/ansible_test/_internal/commands/integration/cloud/opennebula.py +++ b/test/lib/ansible_test/_internal/commands/integration/cloud/opennebula.py @@ -16,6 +16,7 @@ from . import ( class OpenNebulaCloudProvider(CloudProvider): """Checks if a configuration file has been passed or fixtures are going to be used for testing""" + def setup(self) -> None: """Setup the cloud resource before delegation and register a cleanup callback.""" super().setup() @@ -42,6 +43,7 @@ class OpenNebulaCloudProvider(CloudProvider): class OpenNebulaCloudEnvironment(CloudEnvironment): """Updates integration test environment after delegation. Will setup the config file as parameter.""" + def get_environment_config(self) -> CloudEnvironmentConfig: """Return environment configuration for use in the test environment after delegation.""" parser = configparser.ConfigParser() diff --git a/test/lib/ansible_test/_internal/commands/integration/cloud/openshift.py b/test/lib/ansible_test/_internal/commands/integration/cloud/openshift.py index da930c01..ddd434a8 100644 --- a/test/lib/ansible_test/_internal/commands/integration/cloud/openshift.py +++ b/test/lib/ansible_test/_internal/commands/integration/cloud/openshift.py @@ -30,6 +30,7 @@ from . import ( class OpenShiftCloudProvider(CloudProvider): """OpenShift cloud provider plugin. Sets up cloud resources before delegation.""" + DOCKER_CONTAINER_NAME = 'openshift-origin' def __init__(self, args: IntegrationConfig) -> None: @@ -103,6 +104,7 @@ class OpenShiftCloudProvider(CloudProvider): class OpenShiftCloudEnvironment(CloudEnvironment): """OpenShift cloud environment plugin. Updates integration test environment after delegation.""" + def get_environment_config(self) -> CloudEnvironmentConfig: """Return environment configuration for use in the test environment after delegation.""" env_vars = dict( diff --git a/test/lib/ansible_test/_internal/commands/integration/cloud/scaleway.py b/test/lib/ansible_test/_internal/commands/integration/cloud/scaleway.py index 04c2d89b..69df093e 100644 --- a/test/lib/ansible_test/_internal/commands/integration/cloud/scaleway.py +++ b/test/lib/ansible_test/_internal/commands/integration/cloud/scaleway.py @@ -20,6 +20,7 @@ from . import ( class ScalewayCloudProvider(CloudProvider): """Checks if a configuration file has been passed or fixtures are going to be used for testing""" + def __init__(self, args: IntegrationConfig) -> None: super().__init__(args) @@ -34,6 +35,7 @@ class ScalewayCloudProvider(CloudProvider): class ScalewayCloudEnvironment(CloudEnvironment): """Updates integration test environment after delegation. Will setup the config file as parameter.""" + def get_environment_config(self) -> CloudEnvironmentConfig: """Return environment configuration for use in the test environment after delegation.""" parser = configparser.ConfigParser() @@ -41,7 +43,7 @@ class ScalewayCloudEnvironment(CloudEnvironment): env_vars = dict( SCW_API_KEY=parser.get('default', 'key'), - SCW_ORG=parser.get('default', 'org') + SCW_ORG=parser.get('default', 'org'), ) display.sensitive.add(env_vars['SCW_API_KEY']) diff --git a/test/lib/ansible_test/_internal/commands/integration/cloud/vcenter.py b/test/lib/ansible_test/_internal/commands/integration/cloud/vcenter.py index df1651f9..242b0204 100644 --- a/test/lib/ansible_test/_internal/commands/integration/cloud/vcenter.py +++ b/test/lib/ansible_test/_internal/commands/integration/cloud/vcenter.py @@ -27,6 +27,7 @@ from . import ( class VcenterProvider(CloudProvider): """VMware vcenter/esx plugin. Sets up cloud resources for tests.""" + DOCKER_SIMULATOR_NAME = 'vcenter-simulator' def __init__(self, args: IntegrationConfig) -> None: @@ -92,6 +93,7 @@ class VcenterProvider(CloudProvider): class VcenterEnvironment(CloudEnvironment): """VMware vcenter/esx environment plugin. Updates integration test environment after delegation.""" + def get_environment_config(self) -> CloudEnvironmentConfig: """Return environment configuration for use in the test environment after delegation.""" try: diff --git a/test/lib/ansible_test/_internal/commands/integration/cloud/vultr.py b/test/lib/ansible_test/_internal/commands/integration/cloud/vultr.py index 1993cdab..57e4fca7 100644 --- a/test/lib/ansible_test/_internal/commands/integration/cloud/vultr.py +++ b/test/lib/ansible_test/_internal/commands/integration/cloud/vultr.py @@ -20,6 +20,7 @@ from . import ( class VultrCloudProvider(CloudProvider): """Checks if a configuration file has been passed or fixtures are going to be used for testing""" + def __init__(self, args: IntegrationConfig) -> None: super().__init__(args) @@ -34,6 +35,7 @@ class VultrCloudProvider(CloudProvider): class VultrCloudEnvironment(CloudEnvironment): """Updates integration test environment after delegation. Will setup the config file as parameter.""" + def get_environment_config(self) -> CloudEnvironmentConfig: """Return environment configuration for use in the test environment after delegation.""" parser = configparser.ConfigParser() diff --git a/test/lib/ansible_test/_internal/commands/integration/coverage.py b/test/lib/ansible_test/_internal/commands/integration/coverage.py index 5a486e93..ed072052 100644 --- a/test/lib/ansible_test/_internal/commands/integration/coverage.py +++ b/test/lib/ansible_test/_internal/commands/integration/coverage.py @@ -82,6 +82,7 @@ THostConfig = t.TypeVar('THostConfig', bound=HostConfig) class CoverageHandler(t.Generic[THostConfig], metaclass=abc.ABCMeta): """Base class for configuring hosts for integration test code coverage.""" + def __init__(self, args: IntegrationConfig, host_state: HostState, inventory_path: str) -> None: self.args = args self.host_state = host_state @@ -124,6 +125,7 @@ class CoverageHandler(t.Generic[THostConfig], metaclass=abc.ABCMeta): class PosixCoverageHandler(CoverageHandler[PosixConfig]): """Configure integration test code coverage for POSIX hosts.""" + def __init__(self, args: IntegrationConfig, host_state: HostState, inventory_path: str) -> None: super().__init__(args, host_state, inventory_path) @@ -263,6 +265,7 @@ class PosixCoverageHandler(CoverageHandler[PosixConfig]): class WindowsCoverageHandler(CoverageHandler[WindowsConfig]): """Configure integration test code coverage for Windows hosts.""" + def __init__(self, args: IntegrationConfig, host_state: HostState, inventory_path: str) -> None: super().__init__(args, host_state, inventory_path) @@ -334,6 +337,7 @@ class WindowsCoverageHandler(CoverageHandler[WindowsConfig]): class CoverageManager: """Manager for code coverage configuration and state.""" + def __init__(self, args: IntegrationConfig, host_state: HostState, inventory_path: str) -> None: self.args = args self.host_state = host_state diff --git a/test/lib/ansible_test/_internal/commands/integration/filters.py b/test/lib/ansible_test/_internal/commands/integration/filters.py index be03d7f4..571c8163 100644 --- a/test/lib/ansible_test/_internal/commands/integration/filters.py +++ b/test/lib/ansible_test/_internal/commands/integration/filters.py @@ -47,6 +47,7 @@ THostProfile = t.TypeVar('THostProfile', bound=HostProfile) class TargetFilter(t.Generic[THostConfig], metaclass=abc.ABCMeta): """Base class for target filters.""" + def __init__(self, args: IntegrationConfig, configs: list[THostConfig], controller: bool) -> None: self.args = args self.configs = configs @@ -138,6 +139,7 @@ class TargetFilter(t.Generic[THostConfig], metaclass=abc.ABCMeta): class PosixTargetFilter(TargetFilter[TPosixConfig]): """Target filter for POSIX hosts.""" + def filter_targets(self, targets: list[IntegrationTarget], exclude: set[str]) -> None: """Filter the list of targets, adding any which this host profile cannot support to the provided exclude list.""" super().filter_targets(targets, exclude) @@ -151,6 +153,7 @@ class PosixTargetFilter(TargetFilter[TPosixConfig]): class DockerTargetFilter(PosixTargetFilter[DockerConfig]): """Target filter for docker hosts.""" + def filter_targets(self, targets: list[IntegrationTarget], exclude: set[str]) -> None: """Filter the list of targets, adding any which this host profile cannot support to the provided exclude list.""" super().filter_targets(targets, exclude) @@ -167,6 +170,7 @@ class PosixSshTargetFilter(PosixTargetFilter[PosixSshConfig]): class RemoteTargetFilter(TargetFilter[TRemoteConfig]): """Target filter for remote Ansible Core CI managed hosts.""" + def filter_profiles(self, profiles: list[THostProfile], target: IntegrationTarget) -> list[THostProfile]: """Filter the list of profiles, returning only those which are not skipped for the given target.""" profiles = super().filter_profiles(profiles, target) @@ -224,6 +228,7 @@ class NetworkInventoryTargetFilter(TargetFilter[NetworkInventoryConfig]): class OriginTargetFilter(PosixTargetFilter[OriginConfig]): """Target filter for localhost.""" + def filter_targets(self, targets: list[IntegrationTarget], exclude: set[str]) -> None: """Filter the list of targets, adding any which this host profile cannot support to the provided exclude list.""" super().filter_targets(targets, exclude) diff --git a/test/lib/ansible_test/_internal/commands/sanity/__init__.py b/test/lib/ansible_test/_internal/commands/sanity/__init__.py index 00b30310..f399f2ad 100644 --- a/test/lib/ansible_test/_internal/commands/sanity/__init__.py +++ b/test/lib/ansible_test/_internal/commands/sanity/__init__.py @@ -160,6 +160,10 @@ def command_sanity(args: SanityConfig) -> None: if args.skip_test: tests = [target for target in tests if target.name not in args.skip_test] + if not args.host_path: + for test in tests: + test.origin_hook(args) + targets_use_pypi = any(isinstance(test, SanityMultipleVersion) and test.needs_pypi for test in tests) and not args.list_tests host_state = prepare_profiles(args, targets_use_pypi=targets_use_pypi) # sanity @@ -325,6 +329,7 @@ def collect_code_smell_tests() -> tuple[SanityTest, ...]: class SanityIgnoreParser: """Parser for the consolidated sanity test ignore file.""" + NO_CODE = '_' def __init__(self, args: SanityConfig) -> None: @@ -526,11 +531,13 @@ class SanityIgnoreParser: class SanityIgnoreProcessor: """Processor for sanity test ignores for a single run of one sanity test.""" - def __init__(self, - args: SanityConfig, - test: SanityTest, - python_version: t.Optional[str], - ) -> None: + + def __init__( + self, + args: SanityConfig, + test: SanityTest, + python_version: t.Optional[str], + ) -> None: name = test.name code = test.error_code @@ -618,18 +625,21 @@ class SanityIgnoreProcessor: class SanitySuccess(TestSuccess): """Sanity test success.""" + def __init__(self, test: str, python_version: t.Optional[str] = None) -> None: super().__init__(COMMAND, test, python_version) class SanitySkipped(TestSkipped): """Sanity test skipped.""" + def __init__(self, test: str, python_version: t.Optional[str] = None) -> None: super().__init__(COMMAND, test, python_version) class SanityFailure(TestFailure): """Sanity test failure.""" + def __init__( self, test: str, @@ -646,6 +656,7 @@ class SanityMessage(TestMessage): class SanityTargets: """Sanity test target information.""" + def __init__(self, targets: tuple[TestTarget, ...], include: tuple[TestTarget, ...]) -> None: self.targets = targets self.include = include @@ -695,6 +706,7 @@ class SanityTargets: class SanityTest(metaclass=abc.ABCMeta): """Sanity test base class.""" + ansible_only = False def __init__(self, name: t.Optional[str] = None) -> None: @@ -757,6 +769,9 @@ class SanityTest(metaclass=abc.ABCMeta): """A tuple of supported Python versions or None if the test does not depend on specific Python versions.""" return CONTROLLER_PYTHON_VERSIONS + def origin_hook(self, args: SanityConfig) -> None: + """This method is called on the origin, before the test runs or delegation occurs.""" + def filter_targets(self, targets: list[TestTarget]) -> list[TestTarget]: # pylint: disable=unused-argument """Return the given list of test targets, filtered to include only those relevant for the test.""" if self.no_targets: @@ -811,6 +826,7 @@ class SanityTest(metaclass=abc.ABCMeta): class SanitySingleVersion(SanityTest, metaclass=abc.ABCMeta): """Base class for sanity test plugins which should run on a single python version.""" + @property def require_libyaml(self) -> bool: """True if the test requires PyYAML to have libyaml support.""" @@ -827,6 +843,7 @@ class SanitySingleVersion(SanityTest, metaclass=abc.ABCMeta): class SanityCodeSmellTest(SanitySingleVersion): """Sanity test script.""" + def __init__(self, path) -> None: name = os.path.splitext(os.path.basename(path))[0] config_path = os.path.splitext(path)[0] + '.json' @@ -1030,6 +1047,7 @@ class SanityCodeSmellTest(SanitySingleVersion): class SanityVersionNeutral(SanityTest, metaclass=abc.ABCMeta): """Base class for sanity test plugins which are idependent of the python version being used.""" + @abc.abstractmethod def test(self, args: SanityConfig, targets: SanityTargets) -> TestResult: """Run the sanity test and return the result.""" @@ -1046,6 +1064,7 @@ class SanityVersionNeutral(SanityTest, metaclass=abc.ABCMeta): class SanityMultipleVersion(SanityTest, metaclass=abc.ABCMeta): """Base class for sanity test plugins which should run on multiple python versions.""" + @abc.abstractmethod def test(self, args: SanityConfig, targets: SanityTargets, python: PythonConfig) -> TestResult: """Run the sanity test and return the result.""" diff --git a/test/lib/ansible_test/_internal/commands/sanity/ansible_doc.py b/test/lib/ansible_test/_internal/commands/sanity/ansible_doc.py index 6815f884..04080f60 100644 --- a/test/lib/ansible_test/_internal/commands/sanity/ansible_doc.py +++ b/test/lib/ansible_test/_internal/commands/sanity/ansible_doc.py @@ -48,6 +48,7 @@ from ...host_configs import ( class AnsibleDocTest(SanitySingleVersion): """Sanity test for ansible-doc.""" + def filter_targets(self, targets: list[TestTarget]) -> list[TestTarget]: """Return the given list of test targets, filtered to include only those relevant for the test.""" plugin_paths = [plugin_path for plugin_type, plugin_path in data_context().content.plugin_paths.items() if plugin_type in DOCUMENTABLE_PLUGINS] diff --git a/test/lib/ansible_test/_internal/commands/sanity/compile.py b/test/lib/ansible_test/_internal/commands/sanity/compile.py index 45053383..a0f599f1 100644 --- a/test/lib/ansible_test/_internal/commands/sanity/compile.py +++ b/test/lib/ansible_test/_internal/commands/sanity/compile.py @@ -43,6 +43,7 @@ from ...host_configs import ( class CompileTest(SanityMultipleVersion): """Sanity test for proper python syntax.""" + def filter_targets(self, targets: list[TestTarget]) -> list[TestTarget]: """Return the given list of test targets, filtered to include only those relevant for the test.""" return [target for target in targets if os.path.splitext(target.path)[1] == '.py' or is_subdir(target.path, 'bin')] diff --git a/test/lib/ansible_test/_internal/commands/sanity/ignores.py b/test/lib/ansible_test/_internal/commands/sanity/ignores.py index 6d9837d0..251f8326 100644 --- a/test/lib/ansible_test/_internal/commands/sanity/ignores.py +++ b/test/lib/ansible_test/_internal/commands/sanity/ignores.py @@ -25,6 +25,7 @@ from ...config import ( class IgnoresTest(SanityVersionNeutral): """Sanity test for sanity test ignore entries.""" + @property def can_ignore(self) -> bool: """True if the test supports ignore entries.""" diff --git a/test/lib/ansible_test/_internal/commands/sanity/import.py b/test/lib/ansible_test/_internal/commands/sanity/import.py index 8511d7ac..b8083324 100644 --- a/test/lib/ansible_test/_internal/commands/sanity/import.py +++ b/test/lib/ansible_test/_internal/commands/sanity/import.py @@ -84,6 +84,7 @@ def _get_module_test(module_restrictions: bool) -> c.Callable[[str], bool]: class ImportTest(SanityMultipleVersion): """Sanity test for proper import exception handling.""" + def filter_targets(self, targets: list[TestTarget]) -> list[TestTarget]: """Return the given list of test targets, filtered to include only those relevant for the test.""" if data_context().content.is_ansible: diff --git a/test/lib/ansible_test/_internal/commands/sanity/mypy.py b/test/lib/ansible_test/_internal/commands/sanity/mypy.py index cb8ed12c..57ce1277 100644 --- a/test/lib/ansible_test/_internal/commands/sanity/mypy.py +++ b/test/lib/ansible_test/_internal/commands/sanity/mypy.py @@ -58,6 +58,7 @@ from ...host_configs import ( class MypyTest(SanityMultipleVersion): """Sanity test which executes mypy.""" + ansible_only = True vendored_paths = ( @@ -221,7 +222,7 @@ class MypyTest(SanityMultipleVersion): # Below are context specific arguments. # They are primarily useful for listing individual 'ignore_missing_imports' entries instead of using a global ignore. '--config-file', config_path, - ] + ] # fmt: skip cmd.extend(context_paths) @@ -254,6 +255,7 @@ class MypyTest(SanityMultipleVersion): @dataclasses.dataclass(frozen=True) class MyPyContext: """Context details for a single run of mypy.""" + name: str paths: list[str] python_versions: tuple[str, ...] diff --git a/test/lib/ansible_test/_internal/commands/sanity/pep8.py b/test/lib/ansible_test/_internal/commands/sanity/pep8.py index 5df9ace7..610dbd64 100644 --- a/test/lib/ansible_test/_internal/commands/sanity/pep8.py +++ b/test/lib/ansible_test/_internal/commands/sanity/pep8.py @@ -43,6 +43,7 @@ from ...host_configs import ( class Pep8Test(SanitySingleVersion): """Sanity test for PEP 8 style guidelines using pycodestyle.""" + @property def error_code(self) -> t.Optional[str]: """Error code for ansible-test matching the format used by the underlying test program, or None if the program does not use error codes.""" @@ -66,7 +67,7 @@ class Pep8Test(SanitySingleVersion): '--max-line-length', '160', '--config', '/dev/null', '--ignore', ','.join(sorted(current_ignore)), - ] + paths + ] + paths # fmt: skip if paths: try: diff --git a/test/lib/ansible_test/_internal/commands/sanity/pslint.py b/test/lib/ansible_test/_internal/commands/sanity/pslint.py index 9136d51c..1694488d 100644 --- a/test/lib/ansible_test/_internal/commands/sanity/pslint.py +++ b/test/lib/ansible_test/_internal/commands/sanity/pslint.py @@ -45,6 +45,7 @@ from ...data import ( class PslintTest(SanityVersionNeutral): """Sanity test using PSScriptAnalyzer.""" + @property def error_code(self) -> t.Optional[str]: """Error code for ansible-test matching the format used by the underlying test program, or None if the program does not use error codes.""" diff --git a/test/lib/ansible_test/_internal/commands/sanity/pylint.py b/test/lib/ansible_test/_internal/commands/sanity/pylint.py index 86f287ab..c089f834 100644 --- a/test/lib/ansible_test/_internal/commands/sanity/pylint.py +++ b/test/lib/ansible_test/_internal/commands/sanity/pylint.py @@ -18,6 +18,10 @@ from . import ( SANITY_ROOT, ) +from ...io import ( + make_dirs, +) + from ...test import ( TestResult, ) @@ -41,6 +45,7 @@ from ...ansible_util import ( get_collection_detail, CollectionDetail, CollectionDetailError, + ResultType, ) from ...config import ( @@ -58,6 +63,7 @@ from ...host_configs import ( class PylintTest(SanitySingleVersion): """Sanity test using pylint.""" + def __init__(self) -> None: super().__init__() self.optional_error_codes.update([ @@ -106,6 +112,7 @@ class PylintTest(SanitySingleVersion): def filter_path(path_filter: str = None) -> c.Callable[[str], bool]: """Return a function that filters out paths which are not a subdirectory of the given path.""" + def context_filter(path_to_filter: str) -> bool: """Return true if the given path matches, otherwise return False.""" return is_subdir(path_to_filter, path_filter) @@ -149,19 +156,19 @@ class PylintTest(SanitySingleVersion): except CollectionDetailError as ex: display.warning('Skipping pylint collection version checks since collection detail loading failed: %s' % ex.reason) - test_start = datetime.datetime.utcnow() + test_start = datetime.datetime.now(tz=datetime.timezone.utc) for context, context_paths in sorted(contexts): if not context_paths: continue - context_start = datetime.datetime.utcnow() + context_start = datetime.datetime.now(tz=datetime.timezone.utc) messages += self.pylint(args, context, context_paths, plugin_dir, plugin_names, python, collection_detail) - context_end = datetime.datetime.utcnow() + context_end = datetime.datetime.now(tz=datetime.timezone.utc) context_times.append('%s: %d (%s)' % (context, len(context_paths), context_end - context_start)) - test_end = datetime.datetime.utcnow() + test_end = datetime.datetime.now(tz=datetime.timezone.utc) for context_time in context_times: display.info(context_time, verbosity=4) @@ -227,7 +234,7 @@ class PylintTest(SanitySingleVersion): '--rcfile', rcfile, '--output-format', 'json', '--load-plugins', ','.join(sorted(load_plugins)), - ] + paths + ] + paths # fmt: skip if data_context().content.collection: cmd.extend(['--collection-name', data_context().content.collection.full_name]) @@ -246,6 +253,12 @@ class PylintTest(SanitySingleVersion): # expose plugin paths for use in custom plugins env.update(dict(('ANSIBLE_TEST_%s_PATH' % k.upper(), os.path.abspath(v) + os.path.sep) for k, v in data_context().content.plugin_paths.items())) + # Set PYLINTHOME to prevent pylint from checking for an obsolete directory, which can result in a test failure due to stderr output. + # See: https://github.com/PyCQA/pylint/blob/e6c6bf5dfd61511d64779f54264b27a368c43100/pylint/constants.py#L148 + pylint_home = os.path.join(ResultType.TMP.path, 'pylint') + make_dirs(pylint_home) + env.update(PYLINTHOME=pylint_home) + if paths: display.info('Checking %d file(s) in context "%s" with config: %s' % (len(paths), context, rcfile), verbosity=1) diff --git a/test/lib/ansible_test/_internal/commands/sanity/sanity_docs.py b/test/lib/ansible_test/_internal/commands/sanity/sanity_docs.py index 4f14a3a2..48f1b0b1 100644 --- a/test/lib/ansible_test/_internal/commands/sanity/sanity_docs.py +++ b/test/lib/ansible_test/_internal/commands/sanity/sanity_docs.py @@ -27,6 +27,7 @@ from ...data import ( class SanityDocsTest(SanityVersionNeutral): """Sanity test for documentation of sanity tests.""" + ansible_only = True @property diff --git a/test/lib/ansible_test/_internal/commands/sanity/shellcheck.py b/test/lib/ansible_test/_internal/commands/sanity/shellcheck.py index 7de0bdae..4576622c 100644 --- a/test/lib/ansible_test/_internal/commands/sanity/shellcheck.py +++ b/test/lib/ansible_test/_internal/commands/sanity/shellcheck.py @@ -44,6 +44,7 @@ from ...config import ( class ShellcheckTest(SanityVersionNeutral): """Sanity test using shellcheck.""" + @property def error_code(self) -> t.Optional[str]: """Error code for ansible-test matching the format used by the underlying test program, or None if the program does not use error codes.""" @@ -68,7 +69,7 @@ class ShellcheckTest(SanityVersionNeutral): 'shellcheck', '-e', ','.join(sorted(exclude)), '--format', 'checkstyle', - ] + paths + ] + paths # fmt: skip try: stdout, stderr = run_command(args, cmd, capture=True) diff --git a/test/lib/ansible_test/_internal/commands/sanity/validate_modules.py b/test/lib/ansible_test/_internal/commands/sanity/validate_modules.py index e1dacb7c..ab7dd93c 100644 --- a/test/lib/ansible_test/_internal/commands/sanity/validate_modules.py +++ b/test/lib/ansible_test/_internal/commands/sanity/validate_modules.py @@ -1,9 +1,12 @@ """Sanity test using validate-modules.""" from __future__ import annotations +import atexit import collections +import contextlib import json import os +import tarfile import typing as t from . import ( @@ -16,6 +19,10 @@ from . import ( SANITY_ROOT, ) +from ...io import ( + make_dirs, +) + from ...test import ( TestResult, ) @@ -30,7 +37,9 @@ from ...util import ( ) from ...util_common import ( + process_scoped_temporary_directory, run_command, + ResultType, ) from ...ansible_util import ( @@ -49,12 +58,21 @@ from ...ci import ( from ...data import ( data_context, + PayloadConfig, ) from ...host_configs import ( PythonConfig, ) +from ...git import ( + Git, +) + +from ...provider.source import ( + SourceProvider as GitSourceProvider, +) + class ValidateModulesTest(SanitySingleVersion): """Sanity test using validate-modules.""" @@ -115,7 +133,7 @@ class ValidateModulesTest(SanitySingleVersion): os.path.join(SANITY_ROOT, 'validate-modules', 'validate.py'), '--format', 'json', '--arg-spec', - ] + ] # fmt: skip if data_context().content.collection: cmd.extend(['--collection', data_context().content.collection.directory]) @@ -130,14 +148,17 @@ class ValidateModulesTest(SanitySingleVersion): except CollectionDetailError as ex: display.warning('Skipping validate-modules collection version checks since collection detail loading failed: %s' % ex.reason) else: - base_branch = args.base_branch or get_ci_provider().get_base_branch() + path = self.get_archive_path(args) + + if os.path.exists(path): + temp_dir = process_scoped_temporary_directory(args) + + with tarfile.open(path) as file: + file.extractall(temp_dir) - if base_branch: cmd.extend([ - '--base-branch', base_branch, + '--original-plugins', temp_dir, ]) - else: - display.warning('Cannot perform module comparison against the base branch because the base branch was not detected.') errors = [] @@ -188,3 +209,43 @@ class ValidateModulesTest(SanitySingleVersion): return SanityFailure(self.name, messages=all_errors) return SanitySuccess(self.name) + + def origin_hook(self, args: SanityConfig) -> None: + """This method is called on the origin, before the test runs or delegation occurs.""" + if not data_context().content.is_ansible: + return + + if not isinstance(data_context().source_provider, GitSourceProvider): + display.warning('The validate-modules sanity test cannot compare against the base commit because git is not being used.') + return + + base_commit = args.base_branch or get_ci_provider().get_base_commit(args) + + if not base_commit: + display.warning('The validate-modules sanity test cannot compare against the base commit because it was not detected.') + return + + path = self.get_archive_path(args) + + def cleanup() -> None: + """Cleanup callback called when the process exits.""" + with contextlib.suppress(FileNotFoundError): + os.unlink(path) + + def git_callback(payload_config: PayloadConfig) -> None: + """Include the previous plugin content archive in the payload.""" + files = payload_config.files + files.append((path, os.path.relpath(path, data_context().content.root))) + + atexit.register(cleanup) + data_context().register_payload_callback(git_callback) + + make_dirs(os.path.dirname(path)) + + git = Git() + git.run_git(['archive', '--output', path, base_commit, 'lib/ansible/modules/', 'lib/ansible/plugins/']) + + @staticmethod + def get_archive_path(args: SanityConfig) -> str: + """Return the path to the original plugin content archive.""" + return os.path.join(ResultType.TMP.path, f'validate-modules-{args.metadata.session_id}.tar') diff --git a/test/lib/ansible_test/_internal/commands/sanity/yamllint.py b/test/lib/ansible_test/_internal/commands/sanity/yamllint.py index a0d859f0..0af8d65e 100644 --- a/test/lib/ansible_test/_internal/commands/sanity/yamllint.py +++ b/test/lib/ansible_test/_internal/commands/sanity/yamllint.py @@ -47,6 +47,7 @@ from ...host_configs import ( class YamllintTest(SanitySingleVersion): """Sanity test using yamllint.""" + @property def error_code(self) -> t.Optional[str]: """Error code for ansible-test matching the format used by the underlying test program, or None if the program does not use error codes.""" diff --git a/test/lib/ansible_test/_internal/commands/shell/__init__.py b/test/lib/ansible_test/_internal/commands/shell/__init__.py index 5e8c101a..4ddce297 100644 --- a/test/lib/ansible_test/_internal/commands/shell/__init__.py +++ b/test/lib/ansible_test/_internal/commands/shell/__init__.py @@ -124,9 +124,11 @@ def command_shell(args: ShellConfig) -> None: # 255 indicates SSH itself failed, rather than a command run on the remote host. # In this case, report a host connection error so additional troubleshooting output is provided. if not args.delegate and not args.host_path: + def callback() -> None: """Callback to run during error display.""" target_profile.on_target_failure() # when the controller is not delegated, report failures immediately + else: callback = None diff --git a/test/lib/ansible_test/_internal/commands/units/__init__.py b/test/lib/ansible_test/_internal/commands/units/__init__.py index f666d418..7d192e1b 100644 --- a/test/lib/ansible_test/_internal/commands/units/__init__.py +++ b/test/lib/ansible_test/_internal/commands/units/__init__.py @@ -88,6 +88,7 @@ from ...host_profiles import ( class TestContext: """Contexts that unit tests run in based on the type of content.""" + controller = 'controller' modules = 'modules' module_utils = 'module_utils' @@ -255,14 +256,13 @@ def command_units(args: UnitsConfig) -> None: '--forked', '-r', 'a', '-n', str(args.num_workers) if args.num_workers else 'auto', - '--color', - 'yes' if args.color else 'no', + '--color', 'yes' if args.color else 'no', '-p', 'no:cacheprovider', '-c', os.path.join(ANSIBLE_TEST_DATA_ROOT, 'pytest', 'config', config_name), '--junit-xml', os.path.join(ResultType.JUNIT.path, 'python%s-%s-units.xml' % (python.version, test_context)), '--strict-markers', # added in pytest 4.5.0 '--rootdir', data_context().content.root, - ] + ] # fmt:skip if not data_context().content.collection: cmd.append('--durations=25') diff --git a/test/lib/ansible_test/_internal/compat/yaml.py b/test/lib/ansible_test/_internal/compat/yaml.py index 4b471365..fc338e21 100644 --- a/test/lib/ansible_test/_internal/compat/yaml.py +++ b/test/lib/ansible_test/_internal/compat/yaml.py @@ -9,6 +9,7 @@ from functools import ( try: import yaml as _yaml + YAML_IMPORT_ERROR = None except ImportError as ex: yaml_load = None # pylint: disable=invalid-name diff --git a/test/lib/ansible_test/_internal/completion.py b/test/lib/ansible_test/_internal/completion.py index f443181c..31f89087 100644 --- a/test/lib/ansible_test/_internal/completion.py +++ b/test/lib/ansible_test/_internal/completion.py @@ -29,6 +29,7 @@ from .become import ( class CGroupVersion(enum.Enum): """The control group version(s) required by a container.""" + NONE = 'none' V1_ONLY = 'v1-only' V2_ONLY = 'v2-only' @@ -40,6 +41,7 @@ class CGroupVersion(enum.Enum): class AuditMode(enum.Enum): """The audit requirements of a container.""" + NONE = 'none' REQUIRED = 'required' @@ -50,6 +52,7 @@ class AuditMode(enum.Enum): @dataclasses.dataclass(frozen=True) class CompletionConfig(metaclass=abc.ABCMeta): """Base class for completion configuration.""" + name: str @property @@ -61,6 +64,7 @@ class CompletionConfig(metaclass=abc.ABCMeta): @dataclasses.dataclass(frozen=True) class PosixCompletionConfig(CompletionConfig, metaclass=abc.ABCMeta): """Base class for completion configuration of POSIX environments.""" + @property @abc.abstractmethod def supported_pythons(self) -> list[str]: @@ -85,6 +89,7 @@ class PosixCompletionConfig(CompletionConfig, metaclass=abc.ABCMeta): @dataclasses.dataclass(frozen=True) class PythonCompletionConfig(PosixCompletionConfig, metaclass=abc.ABCMeta): """Base class for completion configuration of Python environments.""" + python: str = '' python_dir: str = '/usr/bin' @@ -103,6 +108,7 @@ class PythonCompletionConfig(PosixCompletionConfig, metaclass=abc.ABCMeta): @dataclasses.dataclass(frozen=True) class RemoteCompletionConfig(CompletionConfig): """Base class for completion configuration of remote environments provisioned through Ansible Core CI.""" + provider: t.Optional[str] = None arch: t.Optional[str] = None @@ -132,6 +138,7 @@ class RemoteCompletionConfig(CompletionConfig): @dataclasses.dataclass(frozen=True) class InventoryCompletionConfig(CompletionConfig): """Configuration for inventory files.""" + def __init__(self) -> None: super().__init__(name='inventory') @@ -144,6 +151,7 @@ class InventoryCompletionConfig(CompletionConfig): @dataclasses.dataclass(frozen=True) class PosixSshCompletionConfig(PythonCompletionConfig): """Configuration for a POSIX host reachable over SSH.""" + def __init__(self, user: str, host: str) -> None: super().__init__( name=f'{user}@{host}', @@ -159,6 +167,7 @@ class PosixSshCompletionConfig(PythonCompletionConfig): @dataclasses.dataclass(frozen=True) class DockerCompletionConfig(PythonCompletionConfig): """Configuration for Docker containers.""" + image: str = '' seccomp: str = 'default' cgroup: str = CGroupVersion.V1_V2.value @@ -201,6 +210,7 @@ class DockerCompletionConfig(PythonCompletionConfig): @dataclasses.dataclass(frozen=True) class NetworkRemoteCompletionConfig(RemoteCompletionConfig): """Configuration for remote network platforms.""" + collection: str = '' connection: str = '' placeholder: bool = False @@ -213,6 +223,7 @@ class NetworkRemoteCompletionConfig(RemoteCompletionConfig): @dataclasses.dataclass(frozen=True) class PosixRemoteCompletionConfig(RemoteCompletionConfig, PythonCompletionConfig): """Configuration for remote POSIX platforms.""" + become: t.Optional[str] = None placeholder: bool = False diff --git a/test/lib/ansible_test/_internal/config.py b/test/lib/ansible_test/_internal/config.py index 372c23ab..4e697933 100644 --- a/test/lib/ansible_test/_internal/config.py +++ b/test/lib/ansible_test/_internal/config.py @@ -24,6 +24,7 @@ from .metadata import ( from .data import ( data_context, + PayloadConfig, ) from .host_configs import ( @@ -41,6 +42,7 @@ THostConfig = t.TypeVar('THostConfig', bound=HostConfig) class TerminateMode(enum.Enum): """When to terminate instances.""" + ALWAYS = enum.auto() NEVER = enum.auto() SUCCESS = enum.auto() @@ -52,6 +54,7 @@ class TerminateMode(enum.Enum): @dataclasses.dataclass(frozen=True) class ModulesConfig: """Configuration for modules.""" + python_requires: str python_versions: tuple[str, ...] controller_only: bool @@ -60,6 +63,7 @@ class ModulesConfig: @dataclasses.dataclass(frozen=True) class ContentConfig: """Configuration for all content.""" + modules: ModulesConfig python_versions: tuple[str, ...] py2_support: bool @@ -67,6 +71,7 @@ class ContentConfig: class EnvironmentConfig(CommonConfig): """Configuration common to all commands which execute in an environment.""" + def __init__(self, args: t.Any, command: str) -> None: super().__init__(args, command) @@ -114,7 +119,7 @@ class EnvironmentConfig(CommonConfig): self.dev_systemd_debug: bool = args.dev_systemd_debug self.dev_probe_cgroups: t.Optional[str] = args.dev_probe_cgroups - def host_callback(files: list[tuple[str, str]]) -> None: + def host_callback(payload_config: PayloadConfig) -> None: """Add the host files to the payload file list.""" config = self @@ -123,6 +128,8 @@ class EnvironmentConfig(CommonConfig): state_path = os.path.join(config.host_path, 'state.dat') config_path = os.path.join(config.host_path, 'config.dat') + files = payload_config.files + files.append((os.path.abspath(settings_path), settings_path)) files.append((os.path.abspath(state_path), state_path)) files.append((os.path.abspath(config_path), config_path)) @@ -196,6 +203,7 @@ class EnvironmentConfig(CommonConfig): class TestConfig(EnvironmentConfig): """Configuration common to all test commands.""" + def __init__(self, args: t.Any, command: str) -> None: super().__init__(args, command) @@ -225,9 +233,10 @@ class TestConfig(EnvironmentConfig): if self.coverage_check: self.coverage = True - def metadata_callback(files: list[tuple[str, str]]) -> None: + def metadata_callback(payload_config: PayloadConfig) -> None: """Add the metadata file to the payload file list.""" config = self + files = payload_config.files if config.metadata_path: files.append((os.path.abspath(config.metadata_path), config.metadata_path)) @@ -237,6 +246,7 @@ class TestConfig(EnvironmentConfig): class ShellConfig(EnvironmentConfig): """Configuration for the shell command.""" + def __init__(self, args: t.Any) -> None: super().__init__(args, 'shell') @@ -250,6 +260,7 @@ class ShellConfig(EnvironmentConfig): class SanityConfig(TestConfig): """Configuration for the sanity command.""" + def __init__(self, args: t.Any) -> None: super().__init__(args, 'sanity') @@ -258,23 +269,14 @@ class SanityConfig(TestConfig): self.list_tests: bool = args.list_tests self.allow_disabled: bool = args.allow_disabled self.enable_optional_errors: bool = args.enable_optional_errors - self.keep_git: bool = args.keep_git self.prime_venvs: bool = args.prime_venvs self.display_stderr = self.lint or self.list_tests - if self.keep_git: - def git_callback(files: list[tuple[str, str]]) -> None: - """Add files from the content root .git directory to the payload file list.""" - for dirpath, _dirnames, filenames in os.walk(os.path.join(data_context().content.root, '.git')): - paths = [os.path.join(dirpath, filename) for filename in filenames] - files.extend((path, os.path.relpath(path, data_context().content.root)) for path in paths) - - data_context().register_payload_callback(git_callback) - class IntegrationConfig(TestConfig): """Configuration for the integration command.""" + def __init__(self, args: t.Any, command: str) -> None: super().__init__(args, command) @@ -319,18 +321,21 @@ TIntegrationConfig = t.TypeVar('TIntegrationConfig', bound=IntegrationConfig) class PosixIntegrationConfig(IntegrationConfig): """Configuration for the posix integration command.""" + def __init__(self, args: t.Any) -> None: super().__init__(args, 'integration') class WindowsIntegrationConfig(IntegrationConfig): """Configuration for the windows integration command.""" + def __init__(self, args: t.Any) -> None: super().__init__(args, 'windows-integration') class NetworkIntegrationConfig(IntegrationConfig): """Configuration for the network integration command.""" + def __init__(self, args: t.Any) -> None: super().__init__(args, 'network-integration') @@ -339,6 +344,7 @@ class NetworkIntegrationConfig(IntegrationConfig): class UnitsConfig(TestConfig): """Configuration for the units command.""" + def __init__(self, args: t.Any) -> None: super().__init__(args, 'units') diff --git a/test/lib/ansible_test/_internal/connections.py b/test/lib/ansible_test/_internal/connections.py index 4823b1a4..84dc84b2 100644 --- a/test/lib/ansible_test/_internal/connections.py +++ b/test/lib/ansible_test/_internal/connections.py @@ -44,33 +44,37 @@ from .become import ( class Connection(metaclass=abc.ABCMeta): """Base class for connecting to a host.""" + @abc.abstractmethod - def run(self, - command: list[str], - capture: bool, - interactive: bool = False, - data: t.Optional[str] = None, - stdin: t.Optional[t.IO[bytes]] = None, - stdout: t.Optional[t.IO[bytes]] = None, - output_stream: t.Optional[OutputStream] = None, - ) -> tuple[t.Optional[str], t.Optional[str]]: + def run( + self, + command: list[str], + capture: bool, + interactive: bool = False, + data: t.Optional[str] = None, + stdin: t.Optional[t.IO[bytes]] = None, + stdout: t.Optional[t.IO[bytes]] = None, + output_stream: t.Optional[OutputStream] = None, + ) -> tuple[t.Optional[str], t.Optional[str]]: """Run the specified command and return the result.""" - def extract_archive(self, - chdir: str, - src: t.IO[bytes], - ): + def extract_archive( + self, + chdir: str, + src: t.IO[bytes], + ): """Extract the given archive file stream in the specified directory.""" tar_cmd = ['tar', 'oxzf', '-', '-C', chdir] retry(lambda: self.run(tar_cmd, stdin=src, capture=True)) - def create_archive(self, - chdir: str, - name: str, - dst: t.IO[bytes], - exclude: t.Optional[str] = None, - ): + def create_archive( + self, + chdir: str, + name: str, + dst: t.IO[bytes], + exclude: t.Optional[str] = None, + ): """Create the specified archive file stream from the specified directory, including the given name and optionally excluding the given name.""" tar_cmd = ['tar', 'cf', '-', '-C', chdir] gzip_cmd = ['gzip'] @@ -90,18 +94,20 @@ class Connection(metaclass=abc.ABCMeta): class LocalConnection(Connection): """Connect to localhost.""" + def __init__(self, args: EnvironmentConfig) -> None: self.args = args - def run(self, - command: list[str], - capture: bool, - interactive: bool = False, - data: t.Optional[str] = None, - stdin: t.Optional[t.IO[bytes]] = None, - stdout: t.Optional[t.IO[bytes]] = None, - output_stream: t.Optional[OutputStream] = None, - ) -> tuple[t.Optional[str], t.Optional[str]]: + def run( + self, + command: list[str], + capture: bool, + interactive: bool = False, + data: t.Optional[str] = None, + stdin: t.Optional[t.IO[bytes]] = None, + stdout: t.Optional[t.IO[bytes]] = None, + output_stream: t.Optional[OutputStream] = None, + ) -> tuple[t.Optional[str], t.Optional[str]]: """Run the specified command and return the result.""" return run_command( args=self.args, @@ -117,6 +123,7 @@ class LocalConnection(Connection): class SshConnection(Connection): """Connect to a host using SSH.""" + def __init__(self, args: EnvironmentConfig, settings: SshConnectionDetail, become: t.Optional[Become] = None) -> None: self.args = args self.settings = settings @@ -136,15 +143,16 @@ class SshConnection(Connection): self.options.extend(ssh_options_to_list(ssh_options)) - def run(self, - command: list[str], - capture: bool, - interactive: bool = False, - data: t.Optional[str] = None, - stdin: t.Optional[t.IO[bytes]] = None, - stdout: t.Optional[t.IO[bytes]] = None, - output_stream: t.Optional[OutputStream] = None, - ) -> tuple[t.Optional[str], t.Optional[str]]: + def run( + self, + command: list[str], + capture: bool, + interactive: bool = False, + data: t.Optional[str] = None, + stdin: t.Optional[t.IO[bytes]] = None, + stdout: t.Optional[t.IO[bytes]] = None, + output_stream: t.Optional[OutputStream] = None, + ) -> tuple[t.Optional[str], t.Optional[str]]: """Run the specified command and return the result.""" options = list(self.options) @@ -213,20 +221,22 @@ class SshConnection(Connection): class DockerConnection(Connection): """Connect to a host using Docker.""" + def __init__(self, args: EnvironmentConfig, container_id: str, user: t.Optional[str] = None) -> None: self.args = args self.container_id = container_id self.user: t.Optional[str] = user - def run(self, - command: list[str], - capture: bool, - interactive: bool = False, - data: t.Optional[str] = None, - stdin: t.Optional[t.IO[bytes]] = None, - stdout: t.Optional[t.IO[bytes]] = None, - output_stream: t.Optional[OutputStream] = None, - ) -> tuple[t.Optional[str], t.Optional[str]]: + def run( + self, + command: list[str], + capture: bool, + interactive: bool = False, + data: t.Optional[str] = None, + stdin: t.Optional[t.IO[bytes]] = None, + stdout: t.Optional[t.IO[bytes]] = None, + output_stream: t.Optional[OutputStream] = None, + ) -> tuple[t.Optional[str], t.Optional[str]]: """Run the specified command and return the result.""" options = [] diff --git a/test/lib/ansible_test/_internal/containers.py b/test/lib/ansible_test/_internal/containers.py index a581ecf2..bfc36434 100644 --- a/test/lib/ansible_test/_internal/containers.py +++ b/test/lib/ansible_test/_internal/containers.py @@ -95,6 +95,7 @@ support_containers_mutex = threading.Lock() class HostType: """Enum representing the types of hosts involved in running tests.""" + origin = 'origin' control = 'control' managed = 'managed' @@ -102,6 +103,7 @@ class HostType: class CleanupMode(enum.Enum): """How container cleanup should be handled.""" + YES = enum.auto() NO = enum.auto() INFO = enum.auto() @@ -146,7 +148,7 @@ def run_support_container( if current_container_id: publish_ports = False # publishing ports is pointless if already running in a docker container - options = (options or []) + options = options or [] if start: options.append('-dt') # the -t option is required to cause systemd in the container to log output to the console @@ -378,6 +380,7 @@ def get_container_database(args: EnvironmentConfig) -> ContainerDatabase: class ContainerAccess: """Information needed for one test host to access a single container supporting tests.""" + def __init__(self, host_ip: str, names: list[str], ports: t.Optional[list[int]], forwards: t.Optional[dict[int, int]]) -> None: # if forwards is set # this is where forwards are sent (it is the host that provides an indirect connection to the containers on alternate ports) @@ -437,6 +440,7 @@ class ContainerAccess: class ContainerDatabase: """Database of running containers used to support tests.""" + def __init__(self, data: dict[str, dict[str, dict[str, ContainerAccess]]]) -> None: self.data = data @@ -576,6 +580,7 @@ def create_container_database(args: EnvironmentConfig) -> ContainerDatabase: class SupportContainerContext: """Context object for tracking information relating to access of support containers.""" + def __init__(self, containers: ContainerDatabase, process: t.Optional[SshProcess]) -> None: self.containers = containers self.process = process @@ -678,19 +683,21 @@ def create_support_container_context( class ContainerDescriptor: """Information about a support container.""" - def __init__(self, - image: str, - context: str, - name: str, - container_id: str, - ports: list[int], - aliases: list[str], - publish_ports: bool, - running: bool, - existing: bool, - cleanup: CleanupMode, - env: t.Optional[dict[str, str]], - ) -> None: + + def __init__( + self, + image: str, + context: str, + name: str, + container_id: str, + ports: list[int], + aliases: list[str], + publish_ports: bool, + running: bool, + existing: bool, + cleanup: CleanupMode, + env: t.Optional[dict[str, str]], + ) -> None: self.image = image self.context = context self.name = name @@ -757,23 +764,26 @@ class ContainerDescriptor: class SupportContainer: """Information about a running support container available for use by tests.""" - def __init__(self, - container: DockerInspect, - container_ip: str, - published_ports: dict[int, int], - ) -> None: + + def __init__( + self, + container: DockerInspect, + container_ip: str, + published_ports: dict[int, int], + ) -> None: self.container = container self.container_ip = container_ip self.published_ports = published_ports -def wait_for_file(args: EnvironmentConfig, - container_name: str, - path: str, - sleep: int, - tries: int, - check: t.Optional[c.Callable[[str], bool]] = None, - ) -> str: +def wait_for_file( + args: EnvironmentConfig, + container_name: str, + path: str, + sleep: int, + tries: int, + check: t.Optional[c.Callable[[str], bool]] = None, +) -> str: """Wait for the specified file to become available in the requested container and return its contents.""" display.info('Waiting for container "%s" to provide file: %s' % (container_name, path)) @@ -853,6 +863,7 @@ def create_container_hooks( """Clean up previously configured SSH port forwarding which was required by the specified target.""" cleanup_ssh_ports(args, control_connections, '%s_hosts_restore.yml' % control_type, control_state, target, HostType.control) cleanup_ssh_ports(args, managed_connections, '%s_hosts_restore.yml' % managed_type, managed_state, target, HostType.managed) + else: pre_target, post_target = None, None diff --git a/test/lib/ansible_test/_internal/core_ci.py b/test/lib/ansible_test/_internal/core_ci.py index d62b9039..6e44b3d9 100644 --- a/test/lib/ansible_test/_internal/core_ci.py +++ b/test/lib/ansible_test/_internal/core_ci.py @@ -6,6 +6,7 @@ import dataclasses import json import os import re +import stat import traceback import uuid import time @@ -46,12 +47,14 @@ from .ci import ( from .data import ( data_context, + PayloadConfig, ) @dataclasses.dataclass(frozen=True) class Resource(metaclass=abc.ABCMeta): """Base class for Ansible Core CI resources.""" + @abc.abstractmethod def as_tuple(self) -> tuple[str, str, str, str]: """Return the resource as a tuple of platform, version, architecture and provider.""" @@ -69,6 +72,7 @@ class Resource(metaclass=abc.ABCMeta): @dataclasses.dataclass(frozen=True) class VmResource(Resource): """Details needed to request a VM from Ansible Core CI.""" + platform: str version: str architecture: str @@ -92,6 +96,7 @@ class VmResource(Resource): @dataclasses.dataclass(frozen=True) class CloudResource(Resource): """Details needed to request cloud credentials from Ansible Core CI.""" + platform: str def as_tuple(self) -> tuple[str, str, str, str]: @@ -110,6 +115,7 @@ class CloudResource(Resource): class AnsibleCoreCI: """Client for Ansible Core CI services.""" + DEFAULT_ENDPOINT = 'https://ansible-core-ci.testing.ansible.com' def __init__( @@ -301,7 +307,7 @@ class AnsibleCoreCI: ) ) - data.update(dict(auth=auth)) + data.update(auth=auth) headers = { 'Content-Type': 'application/json', @@ -418,6 +424,7 @@ class AnsibleCoreCI: class CoreHttpError(HttpError): """HTTP response as an error.""" + def __init__(self, status: int, remote_message: str, remote_stack_trace: str) -> None: super().__init__(status, f'{remote_message}{remote_stack_trace}') @@ -427,6 +434,7 @@ class CoreHttpError(HttpError): class SshKey: """Container for SSH key used to connect to remote instances.""" + KEY_TYPE = 'rsa' # RSA is used to maintain compatibility with paramiko and EC2 KEY_NAME = f'id_{KEY_TYPE}' PUB_NAME = f'{KEY_NAME}.pub' @@ -441,14 +449,19 @@ class SshKey: key, pub = key_pair key_dst, pub_dst = self.get_in_tree_key_pair_paths() - def ssh_key_callback(files: list[tuple[str, str]]) -> None: + def ssh_key_callback(payload_config: PayloadConfig) -> None: """ Add the SSH keys to the payload file list. They are either outside the source tree or in the cache dir which is ignored by default. """ + files = payload_config.files + permissions = payload_config.permissions + files.append((key, os.path.relpath(key_dst, data_context().content.root))) files.append((pub, os.path.relpath(pub_dst, data_context().content.root))) + permissions[os.path.relpath(key_dst, data_context().content.root)] = stat.S_IRUSR | stat.S_IWUSR + data_context().register_payload_callback(ssh_key_callback) self.key, self.pub = key, pub @@ -525,14 +538,16 @@ class SshKey: class InstanceConnection: """Container for remote instance status and connection details.""" - def __init__(self, - running: bool, - hostname: t.Optional[str] = None, - port: t.Optional[int] = None, - username: t.Optional[str] = None, - password: t.Optional[str] = None, - response_json: t.Optional[dict[str, t.Any]] = None, - ) -> None: + + def __init__( + self, + running: bool, + hostname: t.Optional[str] = None, + port: t.Optional[int] = None, + username: t.Optional[str] = None, + password: t.Optional[str] = None, + response_json: t.Optional[dict[str, t.Any]] = None, + ) -> None: self.running = running self.hostname = hostname self.port = port diff --git a/test/lib/ansible_test/_internal/coverage_util.py b/test/lib/ansible_test/_internal/coverage_util.py index 0f445059..0af1cac4 100644 --- a/test/lib/ansible_test/_internal/coverage_util.py +++ b/test/lib/ansible_test/_internal/coverage_util.py @@ -60,6 +60,7 @@ from .thread import ( @dataclasses.dataclass(frozen=True) class CoverageVersion: """Details about a coverage version and its supported Python versions.""" + coverage_version: str schema_version: int min_python: tuple[int, int] @@ -81,6 +82,7 @@ CONTROLLER_COVERAGE_VERSION = COVERAGE_VERSIONS[0] class CoverageError(ApplicationError): """Exception caused while attempting to read a coverage file.""" + def __init__(self, path: str, message: str) -> None: self.path = path self.message = message diff --git a/test/lib/ansible_test/_internal/data.py b/test/lib/ansible_test/_internal/data.py index 635b0c32..379ee7b0 100644 --- a/test/lib/ansible_test/_internal/data.py +++ b/test/lib/ansible_test/_internal/data.py @@ -50,8 +50,17 @@ from .provider.layout.unsupported import ( ) +@dataclasses.dataclass(frozen=True) +class PayloadConfig: + """Configuration required to build a source tree payload for delegation.""" + + files: list[tuple[str, str]] + permissions: dict[str, int] + + class DataContext: """Data context providing details about the current execution environment for ansible-test.""" + def __init__(self) -> None: content_path = os.environ.get('ANSIBLE_TEST_CONTENT_ROOT') current_path = os.getcwd() @@ -63,16 +72,17 @@ class DataContext: self.__source_providers = source_providers self.__ansible_source: t.Optional[tuple[tuple[str, str], ...]] = None - self.payload_callbacks: list[c.Callable[[list[tuple[str, str]]], None]] = [] + self.payload_callbacks: list[c.Callable[[PayloadConfig], None]] = [] if content_path: - content = self.__create_content_layout(layout_providers, source_providers, content_path, False) + content, source_provider = self.__create_content_layout(layout_providers, source_providers, content_path, False) elif ANSIBLE_SOURCE_ROOT and is_subdir(current_path, ANSIBLE_SOURCE_ROOT): - content = self.__create_content_layout(layout_providers, source_providers, ANSIBLE_SOURCE_ROOT, False) + content, source_provider = self.__create_content_layout(layout_providers, source_providers, ANSIBLE_SOURCE_ROOT, False) else: - content = self.__create_content_layout(layout_providers, source_providers, current_path, True) + content, source_provider = self.__create_content_layout(layout_providers, source_providers, current_path, True) self.content: ContentLayout = content + self.source_provider = source_provider def create_collection_layouts(self) -> list[ContentLayout]: """ @@ -100,7 +110,7 @@ class DataContext: if collection_path == os.path.join(collection.root, collection.directory): collection_layout = layout else: - collection_layout = self.__create_content_layout(self.__layout_providers, self.__source_providers, collection_path, False) + collection_layout = self.__create_content_layout(self.__layout_providers, self.__source_providers, collection_path, False)[0] file_count = len(collection_layout.all_files()) @@ -113,11 +123,12 @@ class DataContext: return collections @staticmethod - def __create_content_layout(layout_providers: list[t.Type[LayoutProvider]], - source_providers: list[t.Type[SourceProvider]], - root: str, - walk: bool, - ) -> ContentLayout: + def __create_content_layout( + layout_providers: list[t.Type[LayoutProvider]], + source_providers: list[t.Type[SourceProvider]], + root: str, + walk: bool, + ) -> t.Tuple[ContentLayout, SourceProvider]: """Create a content layout using the given providers and root path.""" try: layout_provider = find_path_provider(LayoutProvider, layout_providers, root, walk) @@ -138,7 +149,7 @@ class DataContext: layout = layout_provider.create(layout_provider.root, source_provider.get_paths(layout_provider.root)) - return layout + return layout, source_provider def __create_ansible_source(self): """Return a tuple of Ansible source files with both absolute and relative paths.""" @@ -173,7 +184,7 @@ class DataContext: return self.__ansible_source - def register_payload_callback(self, callback: c.Callable[[list[tuple[str, str]]], None]) -> None: + def register_payload_callback(self, callback: c.Callable[[PayloadConfig], None]) -> None: """Register the given payload callback.""" self.payload_callbacks.append(callback) @@ -239,6 +250,7 @@ def data_context() -> DataContext: @dataclasses.dataclass(frozen=True) class PluginInfo: """Information about an Ansible plugin.""" + plugin_type: str name: str paths: list[str] diff --git a/test/lib/ansible_test/_internal/delegation.py b/test/lib/ansible_test/_internal/delegation.py index 0f181a23..7114f2ab 100644 --- a/test/lib/ansible_test/_internal/delegation.py +++ b/test/lib/ansible_test/_internal/delegation.py @@ -177,7 +177,6 @@ def delegate_command(args: EnvironmentConfig, host_state: HostState, exclude: li con.run(['mkdir', '-p'] + writable_dirs, capture=True) con.run(['chmod', '777'] + writable_dirs, capture=True) con.run(['chmod', '755', working_directory], capture=True) - con.run(['chmod', '644', os.path.join(content_root, args.metadata_path)], capture=True) con.run(['useradd', pytest_user, '--create-home'], capture=True) con.run(insert_options(command, options + ['--requirements-mode', 'only']), capture=False) @@ -347,7 +346,7 @@ def filter_options( ('--metadata', 1, args.metadata_path), ('--exclude', 1, exclude), ('--require', 1, require), - ('--base-branch', 1, args.base_branch or get_ci_provider().get_base_branch()), + ('--base-branch', 1, False), ]) pass_through_args: list[str] = [] diff --git a/test/lib/ansible_test/_internal/dev/container_probe.py b/test/lib/ansible_test/_internal/dev/container_probe.py index be22e01c..fcbfbe4f 100644 --- a/test/lib/ansible_test/_internal/dev/container_probe.py +++ b/test/lib/ansible_test/_internal/dev/container_probe.py @@ -45,6 +45,7 @@ from ..cgroup import ( class CGroupState(enum.Enum): """The expected state of a cgroup related mount point.""" + HOST = enum.auto() PRIVATE = enum.auto() SHADOWED = enum.auto() @@ -53,6 +54,7 @@ class CGroupState(enum.Enum): @dataclasses.dataclass(frozen=True) class CGroupMount: """Details on a cgroup mount point that is expected to be present in the container.""" + path: str type: t.Optional[str] writable: t.Optional[bool] diff --git a/test/lib/ansible_test/_internal/diff.py b/test/lib/ansible_test/_internal/diff.py index edaf6c5f..2ddc2ff9 100644 --- a/test/lib/ansible_test/_internal/diff.py +++ b/test/lib/ansible_test/_internal/diff.py @@ -18,6 +18,7 @@ def parse_diff(lines: list[str]) -> list[FileDiff]: class FileDiff: """Parsed diff for a single file.""" + def __init__(self, old_path: str, new_path: str) -> None: self.old = DiffSide(old_path, new=False) self.new = DiffSide(new_path, new=True) @@ -36,6 +37,7 @@ class FileDiff: class DiffSide: """Parsed diff for a single 'side' of a single file.""" + def __init__(self, path: str, new: bool) -> None: self.path = path self.new = new @@ -109,6 +111,7 @@ class DiffSide: class DiffParser: """Parse diff lines.""" + def __init__(self, lines: list[str]) -> None: self.lines = lines self.files: list[FileDiff] = [] diff --git a/test/lib/ansible_test/_internal/docker_util.py b/test/lib/ansible_test/_internal/docker_util.py index 6c38ddbd..06f383b5 100644 --- a/test/lib/ansible_test/_internal/docker_util.py +++ b/test/lib/ansible_test/_internal/docker_util.py @@ -243,6 +243,7 @@ def get_docker_info(args: CommonConfig) -> DockerInfo: class SystemdControlGroupV1Status(enum.Enum): """The state of the cgroup v1 systemd hierarchy on the container host.""" + SUBSYSTEM_MISSING = 'The systemd cgroup subsystem was not found.' FILESYSTEM_NOT_MOUNTED = 'The "/sys/fs/cgroup/systemd" filesystem is not mounted.' MOUNT_TYPE_NOT_CORRECT = 'The "/sys/fs/cgroup/systemd" mount type is not correct.' @@ -252,6 +253,7 @@ class SystemdControlGroupV1Status(enum.Enum): @dataclasses.dataclass(frozen=True) class ContainerHostProperties: """Container host properties detected at run time.""" + audit_code: str max_open_files: int loginuid: t.Optional[int] @@ -411,7 +413,7 @@ def run_utility_container( options = options + [ '--name', name, '--rm', - ] + ] # fmt: skip if data: options.append('-i') @@ -423,6 +425,7 @@ def run_utility_container( class DockerCommand: """Details about the available docker command.""" + def __init__(self, command: str, executable: str, version: str) -> None: self.command = command self.executable = executable @@ -720,6 +723,7 @@ class DockerError(Exception): class ContainerNotFoundError(DockerError): """The container identified by `identifier` was not found.""" + def __init__(self, identifier: str) -> None: super().__init__('The container "%s" was not found.' % identifier) @@ -728,6 +732,7 @@ class ContainerNotFoundError(DockerError): class DockerInspect: """The results of `docker inspect` for a single container.""" + def __init__(self, args: CommonConfig, inspection: dict[str, t.Any]) -> None: self.args = args self.inspection = inspection @@ -847,6 +852,7 @@ def docker_network_disconnect(args: CommonConfig, container_id: str, network: st class DockerImageInspect: """The results of `docker image inspect` for a single image.""" + def __init__(self, args: CommonConfig, inspection: dict[str, t.Any]) -> None: self.args = args self.inspection = inspection @@ -909,6 +915,7 @@ def docker_image_inspect(args: CommonConfig, image: str, always: bool = False) - class DockerNetworkInspect: """The results of `docker network inspect` for a single network.""" + def __init__(self, args: CommonConfig, inspection: dict[str, t.Any]) -> None: self.args = args self.inspection = inspection @@ -961,8 +968,16 @@ def docker_exec( if data or stdin or stdout: options.append('-i') - return docker_command(args, ['exec'] + options + [container_id] + cmd, capture=capture, stdin=stdin, stdout=stdout, interactive=interactive, - output_stream=output_stream, data=data) + return docker_command( + args, + ['exec'] + options + [container_id] + cmd, + capture=capture, + stdin=stdin, + stdout=stdout, + interactive=interactive, + output_stream=output_stream, + data=data, + ) def docker_command( @@ -983,8 +998,18 @@ def docker_command( if command[0] == 'podman' and get_podman_remote(): command.append('--remote') - return run_command(args, command + cmd, env=env, capture=capture, stdin=stdin, stdout=stdout, interactive=interactive, always=always, - output_stream=output_stream, data=data) + return run_command( + args, + command + cmd, + env=env, + capture=capture, + stdin=stdin, + stdout=stdout, + interactive=interactive, + always=always, + output_stream=output_stream, + data=data, + ) def docker_environment() -> dict[str, str]: diff --git a/test/lib/ansible_test/_internal/executor.py b/test/lib/ansible_test/_internal/executor.py index 0c94cf3b..d7d6f1a8 100644 --- a/test/lib/ansible_test/_internal/executor.py +++ b/test/lib/ansible_test/_internal/executor.py @@ -81,18 +81,21 @@ def detect_changes(args: TestConfig) -> t.Optional[list[str]]: class NoChangesDetected(ApplicationWarning): """Exception when change detection was performed, but no changes were found.""" + def __init__(self) -> None: super().__init__('No changes detected.') class NoTestsForChanges(ApplicationWarning): """Exception when changes detected, but no tests trigger as a result.""" + def __init__(self) -> None: super().__init__('No tests found for detected changes.') class Delegate(Exception): """Trigger command delegation.""" + def __init__(self, host_state: HostState, exclude: list[str] = None, require: list[str] = None) -> None: super().__init__() @@ -103,6 +106,7 @@ class Delegate(Exception): class ListTargets(Exception): """List integration test targets instead of executing them.""" + def __init__(self, target_names: list[str]) -> None: super().__init__() @@ -111,5 +115,6 @@ class ListTargets(Exception): class AllTargetsSkipped(ApplicationWarning): """All targets skipped.""" + def __init__(self) -> None: super().__init__('All targets skipped.') diff --git a/test/lib/ansible_test/_internal/git.py b/test/lib/ansible_test/_internal/git.py index c1909f08..4685f1d2 100644 --- a/test/lib/ansible_test/_internal/git.py +++ b/test/lib/ansible_test/_internal/git.py @@ -12,6 +12,7 @@ from .util import ( class Git: """Wrapper around git command-line tools.""" + def __init__(self, root: t.Optional[str] = None) -> None: self.git = 'git' self.root = root diff --git a/test/lib/ansible_test/_internal/host_configs.py b/test/lib/ansible_test/_internal/host_configs.py index 48d5fd31..ddc4727c 100644 --- a/test/lib/ansible_test/_internal/host_configs.py +++ b/test/lib/ansible_test/_internal/host_configs.py @@ -48,6 +48,7 @@ from .util import ( @dataclasses.dataclass(frozen=True) class OriginCompletionConfig(PosixCompletionConfig): """Pseudo completion config for the origin.""" + def __init__(self) -> None: super().__init__(name='origin') @@ -73,6 +74,7 @@ class OriginCompletionConfig(PosixCompletionConfig): @dataclasses.dataclass(frozen=True) class HostContext: """Context used when getting and applying defaults for host configurations.""" + controller_config: t.Optional['PosixConfig'] @property @@ -84,6 +86,7 @@ class HostContext: @dataclasses.dataclass class HostConfig(metaclass=abc.ABCMeta): """Base class for host configuration.""" + @abc.abstractmethod def get_defaults(self, context: HostContext) -> CompletionConfig: """Return the default settings.""" @@ -104,6 +107,7 @@ class HostConfig(metaclass=abc.ABCMeta): @dataclasses.dataclass class PythonConfig(metaclass=abc.ABCMeta): """Configuration for Python.""" + version: t.Optional[str] = None path: t.Optional[str] = None @@ -142,6 +146,7 @@ class PythonConfig(metaclass=abc.ABCMeta): @dataclasses.dataclass class NativePythonConfig(PythonConfig): """Configuration for native Python.""" + @property def is_managed(self) -> bool: """ @@ -154,6 +159,7 @@ class NativePythonConfig(PythonConfig): @dataclasses.dataclass class VirtualPythonConfig(PythonConfig): """Configuration for Python in a virtual environment.""" + system_site_packages: t.Optional[bool] = None def apply_defaults(self, context: HostContext, defaults: PosixCompletionConfig) -> None: @@ -175,6 +181,7 @@ class VirtualPythonConfig(PythonConfig): @dataclasses.dataclass class PosixConfig(HostConfig, metaclass=abc.ABCMeta): """Base class for POSIX host configuration.""" + python: t.Optional[PythonConfig] = None @property @@ -199,6 +206,7 @@ class PosixConfig(HostConfig, metaclass=abc.ABCMeta): @dataclasses.dataclass class ControllerHostConfig(PosixConfig, metaclass=abc.ABCMeta): """Base class for host configurations which support the controller.""" + @abc.abstractmethod def get_default_targets(self, context: HostContext) -> list[ControllerConfig]: """Return the default targets for this host config.""" @@ -207,6 +215,7 @@ class ControllerHostConfig(PosixConfig, metaclass=abc.ABCMeta): @dataclasses.dataclass class RemoteConfig(HostConfig, metaclass=abc.ABCMeta): """Base class for remote host configuration.""" + name: t.Optional[str] = None provider: t.Optional[str] = None arch: t.Optional[str] = None @@ -245,6 +254,7 @@ class RemoteConfig(HostConfig, metaclass=abc.ABCMeta): @dataclasses.dataclass class PosixSshConfig(PosixConfig): """Configuration for a POSIX SSH host.""" + user: t.Optional[str] = None host: t.Optional[str] = None port: t.Optional[int] = None @@ -265,6 +275,7 @@ class PosixSshConfig(PosixConfig): @dataclasses.dataclass class InventoryConfig(HostConfig): """Configuration using inventory.""" + path: t.Optional[str] = None def get_defaults(self, context: HostContext) -> InventoryCompletionConfig: @@ -279,6 +290,7 @@ class InventoryConfig(HostConfig): @dataclasses.dataclass class DockerConfig(ControllerHostConfig, PosixConfig): """Configuration for a docker host.""" + name: t.Optional[str] = None image: t.Optional[str] = None memory: t.Optional[int] = None @@ -343,6 +355,7 @@ class DockerConfig(ControllerHostConfig, PosixConfig): @dataclasses.dataclass class PosixRemoteConfig(RemoteConfig, ControllerHostConfig, PosixConfig): """Configuration for a POSIX remote host.""" + become: t.Optional[str] = None def get_defaults(self, context: HostContext) -> PosixRemoteCompletionConfig: @@ -385,6 +398,7 @@ class WindowsConfig(HostConfig, metaclass=abc.ABCMeta): @dataclasses.dataclass class WindowsRemoteConfig(RemoteConfig, WindowsConfig): """Configuration for a remote Windows host.""" + def get_defaults(self, context: HostContext) -> WindowsRemoteCompletionConfig: """Return the default settings.""" return filter_completion(windows_completion()).get(self.name) or windows_completion().get(self.platform) @@ -403,6 +417,7 @@ class NetworkConfig(HostConfig, metaclass=abc.ABCMeta): @dataclasses.dataclass class NetworkRemoteConfig(RemoteConfig, NetworkConfig): """Configuration for a remote network host.""" + collection: t.Optional[str] = None connection: t.Optional[str] = None @@ -431,6 +446,7 @@ class NetworkInventoryConfig(InventoryConfig, NetworkConfig): @dataclasses.dataclass class OriginConfig(ControllerHostConfig, PosixConfig): """Configuration for the origin host.""" + def get_defaults(self, context: HostContext) -> OriginCompletionConfig: """Return the default settings.""" return OriginCompletionConfig() @@ -448,6 +464,7 @@ class OriginConfig(ControllerHostConfig, PosixConfig): @dataclasses.dataclass class ControllerConfig(PosixConfig): """Configuration for the controller host.""" + controller: t.Optional[PosixConfig] = None def get_defaults(self, context: HostContext) -> PosixCompletionConfig: @@ -482,6 +499,7 @@ class ControllerConfig(PosixConfig): class FallbackReason(enum.Enum): """Reason fallback was performed.""" + ENVIRONMENT = enum.auto() PYTHON = enum.auto() @@ -489,6 +507,7 @@ class FallbackReason(enum.Enum): @dataclasses.dataclass(frozen=True) class FallbackDetail: """Details about controller fallback behavior.""" + reason: FallbackReason message: str @@ -496,6 +515,7 @@ class FallbackDetail: @dataclasses.dataclass(frozen=True) class HostSettings: """Host settings for the controller and targets.""" + controller: ControllerHostConfig targets: list[HostConfig] skipped_python_versions: list[str] diff --git a/test/lib/ansible_test/_internal/host_profiles.py b/test/lib/ansible_test/_internal/host_profiles.py index 0abc9961..a51eb693 100644 --- a/test/lib/ansible_test/_internal/host_profiles.py +++ b/test/lib/ansible_test/_internal/host_profiles.py @@ -139,6 +139,7 @@ TRemoteConfig = t.TypeVar('TRemoteConfig', bound=RemoteConfig) class ControlGroupError(ApplicationError): """Raised when the container host does not have the necessary cgroup support to run a container.""" + def __init__(self, args: CommonConfig, reason: str) -> None: engine = require_docker().command dd_wsl2 = get_docker_info(args).docker_desktop_wsl2 @@ -181,6 +182,7 @@ NOTE: These changes must be applied each time the container host is rebooted. @dataclasses.dataclass(frozen=True) class Inventory: """Simple representation of an Ansible inventory.""" + host_groups: dict[str, dict[str, dict[str, t.Union[str, int]]]] extra_groups: t.Optional[dict[str, list[str]]] = None @@ -226,12 +228,14 @@ class Inventory: class HostProfile(t.Generic[THostConfig], metaclass=abc.ABCMeta): """Base class for host profiles.""" - def __init__(self, - *, - args: EnvironmentConfig, - config: THostConfig, - targets: t.Optional[list[HostConfig]], - ) -> None: + + def __init__( + self, + *, + args: EnvironmentConfig, + config: THostConfig, + targets: t.Optional[list[HostConfig]], + ) -> None: self.args = args self.config = config self.controller = bool(targets) @@ -272,6 +276,7 @@ class HostProfile(t.Generic[THostConfig], metaclass=abc.ABCMeta): class PosixProfile(HostProfile[TPosixConfig], metaclass=abc.ABCMeta): """Base class for POSIX host profiles.""" + @property def python(self) -> PythonConfig: """ @@ -293,6 +298,7 @@ class PosixProfile(HostProfile[TPosixConfig], metaclass=abc.ABCMeta): class ControllerHostProfile(PosixProfile[TControllerHostConfig], metaclass=abc.ABCMeta): """Base class for profiles usable as a controller.""" + @abc.abstractmethod def get_origin_controller_connection(self) -> Connection: """Return a connection for accessing the host as a controller from the origin.""" @@ -304,6 +310,7 @@ class ControllerHostProfile(PosixProfile[TControllerHostConfig], metaclass=abc.A class SshTargetHostProfile(HostProfile[THostConfig], metaclass=abc.ABCMeta): """Base class for profiles offering SSH connectivity.""" + @abc.abstractmethod def get_controller_target_connections(self) -> list[SshConnection]: """Return SSH connection(s) for accessing the host as a target from the controller.""" @@ -311,6 +318,7 @@ class SshTargetHostProfile(HostProfile[THostConfig], metaclass=abc.ABCMeta): class RemoteProfile(SshTargetHostProfile[TRemoteConfig], metaclass=abc.ABCMeta): """Base class for remote instance profiles.""" + @property def core_ci_state(self) -> t.Optional[dict[str, str]]: """The saved Ansible Core CI state.""" @@ -387,6 +395,7 @@ class RemoteProfile(SshTargetHostProfile[TRemoteConfig], metaclass=abc.ABCMeta): class ControllerProfile(SshTargetHostProfile[ControllerConfig], PosixProfile[ControllerConfig]): """Host profile for the controller as a target.""" + def get_controller_target_connections(self) -> list[SshConnection]: """Return SSH connection(s) for accessing the host as a target from the controller.""" settings = SshConnectionDetail( @@ -409,6 +418,7 @@ class DockerProfile(ControllerHostProfile[DockerConfig], SshTargetHostProfile[Do @dataclasses.dataclass(frozen=True) class InitConfig: """Configuration details required to run the container init.""" + options: list[str] command: str command_privileged: bool @@ -1003,9 +1013,11 @@ class DockerProfile(ControllerHostProfile[DockerConfig], SshTargetHostProfile[Do display.info(last_error) if not self.args.delegate and not self.args.host_path: + def callback() -> None: """Callback to run during error display.""" self.on_target_failure() # when the controller is not delegated, report failures immediately + else: callback = None @@ -1105,6 +1117,7 @@ class NetworkInventoryProfile(HostProfile[NetworkInventoryConfig]): class NetworkRemoteProfile(RemoteProfile[NetworkRemoteConfig]): """Host profile for a network remote instance.""" + def wait(self) -> None: """Wait for the instance to be ready. Executed before delegation for the controller and after delegation for targets.""" self.wait_until_ready() @@ -1181,6 +1194,7 @@ class NetworkRemoteProfile(RemoteProfile[NetworkRemoteConfig]): class OriginProfile(ControllerHostProfile[OriginConfig]): """Host profile for origin.""" + def get_origin_controller_connection(self) -> LocalConnection: """Return a connection for accessing the host as a controller from the origin.""" return LocalConnection(self.args) @@ -1192,6 +1206,7 @@ class OriginProfile(ControllerHostProfile[OriginConfig]): class PosixRemoteProfile(ControllerHostProfile[PosixRemoteConfig], RemoteProfile[PosixRemoteConfig]): """Host profile for a POSIX remote instance.""" + def wait(self) -> None: """Wait for the instance to be ready. Executed before delegation for the controller and after delegation for targets.""" self.wait_until_ready() @@ -1298,6 +1313,7 @@ class PosixRemoteProfile(ControllerHostProfile[PosixRemoteConfig], RemoteProfile class PosixSshProfile(SshTargetHostProfile[PosixSshConfig], PosixProfile[PosixSshConfig]): """Host profile for a POSIX SSH instance.""" + def get_controller_target_connections(self) -> list[SshConnection]: """Return SSH connection(s) for accessing the host as a target from the controller.""" settings = SshConnectionDetail( @@ -1314,6 +1330,7 @@ class PosixSshProfile(SshTargetHostProfile[PosixSshConfig], PosixProfile[PosixSs class WindowsInventoryProfile(SshTargetHostProfile[WindowsInventoryConfig]): """Host profile for a Windows inventory.""" + def get_controller_target_connections(self) -> list[SshConnection]: """Return SSH connection(s) for accessing the host as a target from the controller.""" inventory = parse_inventory(self.args, self.config.path) @@ -1338,6 +1355,7 @@ class WindowsInventoryProfile(SshTargetHostProfile[WindowsInventoryConfig]): class WindowsRemoteProfile(RemoteProfile[WindowsRemoteConfig]): """Host profile for a Windows remote instance.""" + def wait(self) -> None: """Wait for the instance to be ready. Executed before delegation for the controller and after delegation for targets.""" self.wait_until_ready() diff --git a/test/lib/ansible_test/_internal/http.py b/test/lib/ansible_test/_internal/http.py index ca514470..8b4154bf 100644 --- a/test/lib/ansible_test/_internal/http.py +++ b/test/lib/ansible_test/_internal/http.py @@ -22,6 +22,7 @@ from .util_common import ( class HttpClient: """Make HTTP requests via curl.""" + def __init__(self, args: CommonConfig, always: bool = False, insecure: bool = False, proxy: t.Optional[str] = None) -> None: self.args = args self.always = always @@ -113,6 +114,7 @@ class HttpClient: class HttpResponse: """HTTP response from curl.""" + def __init__(self, method: str, url: str, status_code: int, response: str) -> None: self.method = method self.url = url @@ -129,6 +131,7 @@ class HttpResponse: class HttpError(ApplicationError): """HTTP response as an error.""" + def __init__(self, status: int, message: str) -> None: super().__init__('%s: %s' % (status, message)) self.status = status diff --git a/test/lib/ansible_test/_internal/io.py b/test/lib/ansible_test/_internal/io.py index 80d47699..eb745be4 100644 --- a/test/lib/ansible_test/_internal/io.py +++ b/test/lib/ansible_test/_internal/io.py @@ -34,12 +34,13 @@ def make_dirs(path: str) -> None: os.makedirs(to_bytes(path), exist_ok=True) -def write_json_file(path: str, - content: t.Any, - create_directories: bool = False, - formatted: bool = True, - encoder: t.Optional[t.Type[json.JSONEncoder]] = None, - ) -> str: +def write_json_file( + path: str, + content: t.Any, + create_directories: bool = False, + formatted: bool = True, + encoder: t.Optional[t.Type[json.JSONEncoder]] = None, +) -> str: """Write the given json content to the specified path, optionally creating missing directories.""" text_content = json.dumps(content, sort_keys=formatted, @@ -80,6 +81,7 @@ def open_binary_file(path: str, mode: str = 'rb') -> t.IO[bytes]: class SortedSetEncoder(json.JSONEncoder): """Encode sets as sorted lists.""" + def default(self, o: t.Any) -> t.Any: """Return a serialized version of the `o` object.""" if isinstance(o, set): diff --git a/test/lib/ansible_test/_internal/junit_xml.py b/test/lib/ansible_test/_internal/junit_xml.py index 3b958672..76c8878b 100644 --- a/test/lib/ansible_test/_internal/junit_xml.py +++ b/test/lib/ansible_test/_internal/junit_xml.py @@ -10,6 +10,7 @@ import datetime import decimal from xml.dom import minidom + # noinspection PyPep8Naming from xml.etree import ElementTree as ET @@ -17,6 +18,7 @@ from xml.etree import ElementTree as ET @dataclasses.dataclass # type: ignore[misc] # https://github.com/python/mypy/issues/5374 class TestResult(metaclass=abc.ABCMeta): """Base class for the result of a test case.""" + output: str | None = None message: str | None = None type: str | None = None @@ -48,6 +50,7 @@ class TestResult(metaclass=abc.ABCMeta): @dataclasses.dataclass class TestFailure(TestResult): """Failure info for a test case.""" + @property def tag(self) -> str: """Tag name for the XML element created by this result type.""" @@ -57,6 +60,7 @@ class TestFailure(TestResult): @dataclasses.dataclass class TestError(TestResult): """Error info for a test case.""" + @property def tag(self) -> str: """Tag name for the XML element created by this result type.""" @@ -66,6 +70,7 @@ class TestError(TestResult): @dataclasses.dataclass class TestCase: """An individual test case.""" + name: str assertions: int | None = None classname: str | None = None @@ -127,6 +132,7 @@ class TestCase: @dataclasses.dataclass class TestSuite: """A collection of test cases.""" + name: str hostname: str | None = None id: str | None = None @@ -138,6 +144,10 @@ class TestSuite: system_out: str | None = None system_err: str | None = None + def __post_init__(self): + if self.timestamp and self.timestamp.tzinfo != datetime.timezone.utc: + raise ValueError(f'timestamp.tzinfo must be {datetime.timezone.utc!r}') + @property def disabled(self) -> int: """The number of disabled test cases.""" @@ -181,7 +191,7 @@ class TestSuite: skipped=self.skipped, tests=self.tests, time=self.time, - timestamp=self.timestamp.isoformat(timespec='seconds') if self.timestamp else None, + timestamp=self.timestamp.replace(tzinfo=None).isoformat(timespec='seconds') if self.timestamp else None, ) def get_xml_element(self) -> ET.Element: @@ -205,6 +215,7 @@ class TestSuite: @dataclasses.dataclass class TestSuites: """A collection of test suites.""" + name: str | None = None suites: list[TestSuite] = dataclasses.field(default_factory=list) diff --git a/test/lib/ansible_test/_internal/locale_util.py b/test/lib/ansible_test/_internal/locale_util.py index 3fb74ad5..22ccce75 100644 --- a/test/lib/ansible_test/_internal/locale_util.py +++ b/test/lib/ansible_test/_internal/locale_util.py @@ -21,6 +21,7 @@ It was not needed in previous ansible-core releases since they do not verify the class LocaleError(SystemExit): """Exception to raise when locale related errors occur.""" + def __init__(self, message: str) -> None: super().__init__(f'ERROR: {message}') diff --git a/test/lib/ansible_test/_internal/metadata.py b/test/lib/ansible_test/_internal/metadata.py index 94bbc34a..b8b598e8 100644 --- a/test/lib/ansible_test/_internal/metadata.py +++ b/test/lib/ansible_test/_internal/metadata.py @@ -4,6 +4,7 @@ import typing as t from .util import ( display, + generate_name, ) from .io import ( @@ -19,12 +20,14 @@ from .diff import ( class Metadata: """Metadata object for passing data to delegated tests.""" + def __init__(self) -> None: """Initialize metadata.""" self.changes: dict[str, tuple[tuple[int, int], ...]] = {} self.cloud_config: t.Optional[dict[str, dict[str, t.Union[int, str, bool]]]] = None self.change_description: t.Optional[ChangeDescription] = None self.ci_provider: t.Optional[str] = None + self.session_id = generate_name() def populate_changes(self, diff: t.Optional[list[str]]) -> None: """Populate the changeset using the given diff.""" @@ -52,6 +55,7 @@ class Metadata: cloud_config=self.cloud_config, ci_provider=self.ci_provider, change_description=self.change_description.to_dict(), + session_id=self.session_id, ) def to_file(self, path: str) -> None: @@ -76,12 +80,14 @@ class Metadata: metadata.cloud_config = data['cloud_config'] metadata.ci_provider = data['ci_provider'] metadata.change_description = ChangeDescription.from_dict(data['change_description']) + metadata.session_id = data['session_id'] return metadata class ChangeDescription: """Description of changes.""" + def __init__(self) -> None: self.command: str = '' self.changed_paths: list[str] = [] diff --git a/test/lib/ansible_test/_internal/payload.py b/test/lib/ansible_test/_internal/payload.py index 94150cb4..10dde7b8 100644 --- a/test/lib/ansible_test/_internal/payload.py +++ b/test/lib/ansible_test/_internal/payload.py @@ -27,6 +27,7 @@ from .util import ( from .data import ( data_context, + PayloadConfig, ) from .util_common import ( @@ -44,11 +45,74 @@ def create_payload(args: CommonConfig, dst_path: str) -> None: return files = list(data_context().ansible_source) - filters = {} + permissions: dict[str, int] = {} + filters: dict[str, t.Callable[[tarfile.TarInfo], t.Optional[tarfile.TarInfo]]] = {} + + # Exclude vendored files from the payload. + # They may not be compatible with the delegated environment. + files = [ + (abs_path, rel_path) for abs_path, rel_path in files + if not rel_path.startswith('lib/ansible/_vendor/') + or rel_path == 'lib/ansible/_vendor/__init__.py' + ] + + def apply_permissions(tar_info: tarfile.TarInfo, mode: int) -> t.Optional[tarfile.TarInfo]: + """ + Apply the specified permissions to the given file. + Existing file type bits are preserved. + """ + tar_info.mode &= ~(stat.S_IRWXU | stat.S_IRWXG | stat.S_IRWXO) + tar_info.mode |= mode + + return tar_info def make_executable(tar_info: tarfile.TarInfo) -> t.Optional[tarfile.TarInfo]: - """Make the given file executable.""" - tar_info.mode |= stat.S_IXUSR | stat.S_IXOTH | stat.S_IXGRP + """ + Make the given file executable and readable by all, and writeable by the owner. + Existing file type bits are preserved. + This ensures consistency of test results when using unprivileged users. + """ + return apply_permissions( + tar_info, + stat.S_IRUSR | stat.S_IRGRP | stat.S_IROTH | + stat.S_IXUSR | stat.S_IXGRP | stat.S_IXOTH | + stat.S_IWUSR + ) # fmt: skip + + def make_non_executable(tar_info: tarfile.TarInfo) -> t.Optional[tarfile.TarInfo]: + """ + Make the given file readable by all, and writeable by the owner. + Existing file type bits are preserved. + This ensures consistency of test results when using unprivileged users. + """ + return apply_permissions( + tar_info, + stat.S_IRUSR | stat.S_IRGRP | stat.S_IROTH | + stat.S_IWUSR + ) # fmt: skip + + def detect_permissions(tar_info: tarfile.TarInfo) -> t.Optional[tarfile.TarInfo]: + """ + Detect and apply the appropriate permissions for a file. + Existing file type bits are preserved. + This ensures consistency of test results when using unprivileged users. + """ + if tar_info.path.startswith('ansible/'): + mode = permissions.get(os.path.relpath(tar_info.path, 'ansible')) + elif data_context().content.collection and is_subdir(tar_info.path, data_context().content.collection.directory): + mode = permissions.get(os.path.relpath(tar_info.path, data_context().content.collection.directory)) + else: + mode = None + + if mode: + tar_info = apply_permissions(tar_info, mode) + elif tar_info.mode & (stat.S_IXUSR | stat.S_IXGRP | stat.S_IXOTH): + # If any execute bit is set, treat the file as executable. + # This ensures that sanity tests which check execute bits behave correctly. + tar_info = make_executable(tar_info) + else: + tar_info = make_non_executable(tar_info) + return tar_info if not ANSIBLE_SOURCE_ROOT: @@ -85,10 +149,15 @@ def create_payload(args: CommonConfig, dst_path: str) -> None: # there are no extra files when testing ansible itself extra_files = [] + payload_config = PayloadConfig( + files=content_files, + permissions=permissions, + ) + for callback in data_context().payload_callbacks: # execute callbacks only on the content paths # this is done before placing them in the appropriate subdirectory (see below) - callback(content_files) + callback(payload_config) # place ansible source files under the 'ansible' directory on the delegated host files = [(src, os.path.join('ansible', dst)) for src, dst in files] @@ -109,7 +178,7 @@ def create_payload(args: CommonConfig, dst_path: str) -> None: with tarfile.open(dst_path, mode='w:gz', compresslevel=4, format=tarfile.GNU_FORMAT) as tar: for src, dst in files: display.info('%s -> %s' % (src, dst), verbosity=4) - tar.add(src, dst, filter=filters.get(dst)) + tar.add(src, dst, filter=filters.get(dst, detect_permissions)) duration = time.time() - start payload_size_bytes = os.path.getsize(dst_path) diff --git a/test/lib/ansible_test/_internal/provider/__init__.py b/test/lib/ansible_test/_internal/provider/__init__.py index 61d7baf9..9b73ae72 100644 --- a/test/lib/ansible_test/_internal/provider/__init__.py +++ b/test/lib/ansible_test/_internal/provider/__init__.py @@ -16,11 +16,12 @@ def get_path_provider_classes(provider_type: t.Type[TPathProvider]) -> list[t.Ty return sorted(get_subclasses(provider_type), key=lambda subclass: (subclass.priority, subclass.__name__)) -def find_path_provider(provider_type: t.Type[TPathProvider], - provider_classes: list[t.Type[TPathProvider]], - path: str, - walk: bool, - ) -> TPathProvider: +def find_path_provider( + provider_type: t.Type[TPathProvider], + provider_classes: list[t.Type[TPathProvider]], + path: str, + walk: bool, +) -> TPathProvider: """Return the first found path provider of the given type for the given path.""" sequences = sorted(set(pc.sequence for pc in provider_classes if pc.sequence > 0)) @@ -48,6 +49,7 @@ def find_path_provider(provider_type: t.Type[TPathProvider], class ProviderNotFoundForPath(ApplicationError): """Exception generated when a path based provider cannot be found for a given path.""" + def __init__(self, provider_type: t.Type, path: str) -> None: super().__init__('No %s found for path: %s' % (provider_type.__name__, path)) @@ -57,6 +59,7 @@ class ProviderNotFoundForPath(ApplicationError): class PathProvider(metaclass=abc.ABCMeta): """Base class for provider plugins that are path based.""" + sequence = 500 priority = 500 diff --git a/test/lib/ansible_test/_internal/provider/layout/__init__.py b/test/lib/ansible_test/_internal/provider/layout/__init__.py index aa6693f0..4eca05ce 100644 --- a/test/lib/ansible_test/_internal/provider/layout/__init__.py +++ b/test/lib/ansible_test/_internal/provider/layout/__init__.py @@ -17,10 +17,12 @@ from .. import ( class Layout: """Description of content locations and helper methods to access content.""" - def __init__(self, - root: str, - paths: list[str], - ) -> None: + + def __init__( + self, + root: str, + paths: list[str], + ) -> None: self.root = root self.__paths = paths # contains both file paths and symlinked directory paths (ending with os.path.sep) @@ -74,25 +76,27 @@ class Layout: class ContentLayout(Layout): """Information about the current Ansible content being tested.""" - def __init__(self, - root: str, - paths: list[str], - plugin_paths: dict[str, str], - collection: t.Optional[CollectionDetail], - test_path: str, - results_path: str, - sanity_path: str, - sanity_messages: t.Optional[LayoutMessages], - integration_path: str, - integration_targets_path: str, - integration_vars_path: str, - integration_messages: t.Optional[LayoutMessages], - unit_path: str, - unit_module_path: str, - unit_module_utils_path: str, - unit_messages: t.Optional[LayoutMessages], - unsupported: bool = False, - ) -> None: + + def __init__( + self, + root: str, + paths: list[str], + plugin_paths: dict[str, str], + collection: t.Optional[CollectionDetail], + test_path: str, + results_path: str, + sanity_path: str, + sanity_messages: t.Optional[LayoutMessages], + integration_path: str, + integration_targets_path: str, + integration_vars_path: str, + integration_messages: t.Optional[LayoutMessages], + unit_path: str, + unit_module_path: str, + unit_module_utils_path: str, + unit_messages: t.Optional[LayoutMessages], + unsupported: bool = False, + ) -> None: super().__init__(root, paths) self.plugin_paths = plugin_paths @@ -150,6 +154,7 @@ class ContentLayout(Layout): class LayoutMessages: """Messages generated during layout creation that should be deferred for later display.""" + def __init__(self) -> None: self.info: list[str] = [] self.warning: list[str] = [] @@ -158,11 +163,13 @@ class LayoutMessages: class CollectionDetail: """Details about the layout of the current collection.""" - def __init__(self, - name: str, - namespace: str, - root: str, - ) -> None: + + def __init__( + self, + name: str, + namespace: str, + root: str, + ) -> None: self.name = name self.namespace = namespace self.root = root @@ -173,6 +180,7 @@ class CollectionDetail: class LayoutProvider(PathProvider): """Base class for layout providers.""" + PLUGIN_TYPES = ( 'action', 'become', diff --git a/test/lib/ansible_test/_internal/provider/layout/ansible.py b/test/lib/ansible_test/_internal/provider/layout/ansible.py index e8d01919..d2f8cc81 100644 --- a/test/lib/ansible_test/_internal/provider/layout/ansible.py +++ b/test/lib/ansible_test/_internal/provider/layout/ansible.py @@ -11,6 +11,7 @@ from . import ( class AnsibleLayout(LayoutProvider): """Layout provider for Ansible source.""" + @staticmethod def is_content_root(path: str) -> bool: """Return True if the given path is a content root for this provider.""" @@ -20,25 +21,26 @@ class AnsibleLayout(LayoutProvider): """Create a Layout using the given root and paths.""" plugin_paths = dict((p, os.path.join('lib/ansible/plugins', p)) for p in self.PLUGIN_TYPES) - plugin_paths.update(dict( + plugin_paths.update( modules='lib/ansible/modules', module_utils='lib/ansible/module_utils', - )) - - return ContentLayout(root, - paths, - plugin_paths=plugin_paths, - collection=None, - test_path='test', - results_path='test/results', - sanity_path='test/sanity', - sanity_messages=None, - integration_path='test/integration', - integration_targets_path='test/integration/targets', - integration_vars_path='test/integration/integration_config.yml', - integration_messages=None, - unit_path='test/units', - unit_module_path='test/units/modules', - unit_module_utils_path='test/units/module_utils', - unit_messages=None, - ) + ) + + return ContentLayout( + root, + paths, + plugin_paths=plugin_paths, + collection=None, + test_path='test', + results_path='test/results', + sanity_path='test/sanity', + sanity_messages=None, + integration_path='test/integration', + integration_targets_path='test/integration/targets', + integration_vars_path='test/integration/integration_config.yml', + integration_messages=None, + unit_path='test/units', + unit_module_path='test/units/modules', + unit_module_utils_path='test/units/module_utils', + unit_messages=None, + ) diff --git a/test/lib/ansible_test/_internal/provider/layout/collection.py b/test/lib/ansible_test/_internal/provider/layout/collection.py index 299d0bc6..d747f31f 100644 --- a/test/lib/ansible_test/_internal/provider/layout/collection.py +++ b/test/lib/ansible_test/_internal/provider/layout/collection.py @@ -17,6 +17,7 @@ from ...util import ( class CollectionLayout(LayoutProvider): """Layout provider for Ansible collections.""" + @staticmethod def is_content_root(path: str) -> bool: """Return True if the given path is a content root for this provider.""" @@ -52,28 +53,29 @@ class CollectionLayout(LayoutProvider): integration_targets_path = self.__check_integration_path(paths, integration_messages) self.__check_unit_path(paths, unit_messages) - return ContentLayout(root, - paths, - plugin_paths=plugin_paths, - collection=CollectionDetail( - name=collection_name, - namespace=collection_namespace, - root=collection_root, - ), - test_path='tests', - results_path='tests/output', - sanity_path='tests/sanity', - sanity_messages=sanity_messages, - integration_path='tests/integration', - integration_targets_path=integration_targets_path.rstrip(os.path.sep), - integration_vars_path='tests/integration/integration_config.yml', - integration_messages=integration_messages, - unit_path='tests/unit', - unit_module_path='tests/unit/plugins/modules', - unit_module_utils_path='tests/unit/plugins/module_utils', - unit_messages=unit_messages, - unsupported=not (is_valid_identifier(collection_namespace) and is_valid_identifier(collection_name)), - ) + return ContentLayout( + root, + paths, + plugin_paths=plugin_paths, + collection=CollectionDetail( + name=collection_name, + namespace=collection_namespace, + root=collection_root, + ), + test_path='tests', + results_path='tests/output', + sanity_path='tests/sanity', + sanity_messages=sanity_messages, + integration_path='tests/integration', + integration_targets_path=integration_targets_path.rstrip(os.path.sep), + integration_vars_path='tests/integration/integration_config.yml', + integration_messages=integration_messages, + unit_path='tests/unit', + unit_module_path='tests/unit/plugins/modules', + unit_module_utils_path='tests/unit/plugins/module_utils', + unit_messages=unit_messages, + unsupported=not (is_valid_identifier(collection_namespace) and is_valid_identifier(collection_name)), + ) @staticmethod def __check_test_path(paths: list[str], messages: LayoutMessages) -> None: diff --git a/test/lib/ansible_test/_internal/provider/layout/unsupported.py b/test/lib/ansible_test/_internal/provider/layout/unsupported.py index 16aa254c..e3d81e63 100644 --- a/test/lib/ansible_test/_internal/provider/layout/unsupported.py +++ b/test/lib/ansible_test/_internal/provider/layout/unsupported.py @@ -9,6 +9,7 @@ from . import ( class UnsupportedLayout(LayoutProvider): """Layout provider for an unsupported directory layout.""" + sequence = 0 # disable automatic detection @staticmethod @@ -20,21 +21,22 @@ class UnsupportedLayout(LayoutProvider): """Create a Layout using the given root and paths.""" plugin_paths = dict((p, p) for p in self.PLUGIN_TYPES) - return ContentLayout(root, - paths, - plugin_paths=plugin_paths, - collection=None, - test_path='', - results_path='', - sanity_path='', - sanity_messages=None, - integration_path='', - integration_targets_path='', - integration_vars_path='', - integration_messages=None, - unit_path='', - unit_module_path='', - unit_module_utils_path='', - unit_messages=None, - unsupported=True, - ) + return ContentLayout( + root, + paths, + plugin_paths=plugin_paths, + collection=None, + test_path='', + results_path='', + sanity_path='', + sanity_messages=None, + integration_path='', + integration_targets_path='', + integration_vars_path='', + integration_messages=None, + unit_path='', + unit_module_path='', + unit_module_utils_path='', + unit_messages=None, + unsupported=True, + ) diff --git a/test/lib/ansible_test/_internal/provider/source/__init__.py b/test/lib/ansible_test/_internal/provider/source/__init__.py index aa8ca47f..68fe380f 100644 --- a/test/lib/ansible_test/_internal/provider/source/__init__.py +++ b/test/lib/ansible_test/_internal/provider/source/__init__.py @@ -10,6 +10,7 @@ from .. import ( class SourceProvider(PathProvider): """Base class for source providers.""" + @abc.abstractmethod def get_paths(self, path: str) -> list[str]: """Return the list of available content paths under the given path.""" diff --git a/test/lib/ansible_test/_internal/provider/source/git.py b/test/lib/ansible_test/_internal/provider/source/git.py index 37f16bfa..f8637edd 100644 --- a/test/lib/ansible_test/_internal/provider/source/git.py +++ b/test/lib/ansible_test/_internal/provider/source/git.py @@ -22,6 +22,7 @@ from . import ( class GitSource(SourceProvider): """Source provider for a content root managed by git version control.""" + @staticmethod def is_content_root(path: str) -> bool: """Return True if the given path is a content root for this provider.""" diff --git a/test/lib/ansible_test/_internal/provider/source/installed.py b/test/lib/ansible_test/_internal/provider/source/installed.py index 6b821888..1e5a6ba2 100644 --- a/test/lib/ansible_test/_internal/provider/source/installed.py +++ b/test/lib/ansible_test/_internal/provider/source/installed.py @@ -10,6 +10,7 @@ from . import ( class InstalledSource(SourceProvider): """Source provider for content which has been installed.""" + sequence = 0 # disable automatic detection @staticmethod diff --git a/test/lib/ansible_test/_internal/provider/source/unsupported.py b/test/lib/ansible_test/_internal/provider/source/unsupported.py index e2f8953e..caa49941 100644 --- a/test/lib/ansible_test/_internal/provider/source/unsupported.py +++ b/test/lib/ansible_test/_internal/provider/source/unsupported.py @@ -8,6 +8,7 @@ from . import ( class UnsupportedSource(SourceProvider): """Source provider to use when the layout is unsupported.""" + sequence = 0 # disable automatic detection @staticmethod diff --git a/test/lib/ansible_test/_internal/provider/source/unversioned.py b/test/lib/ansible_test/_internal/provider/source/unversioned.py index d8eff5d1..699de889 100644 --- a/test/lib/ansible_test/_internal/provider/source/unversioned.py +++ b/test/lib/ansible_test/_internal/provider/source/unversioned.py @@ -18,6 +18,7 @@ from . import ( class UnversionedSource(SourceProvider): """Fallback source provider when no other provider matches the content root.""" + sequence = 0 # disable automatic detection @staticmethod diff --git a/test/lib/ansible_test/_internal/provisioning.py b/test/lib/ansible_test/_internal/provisioning.py index 7547a302..e7f0fd31 100644 --- a/test/lib/ansible_test/_internal/provisioning.py +++ b/test/lib/ansible_test/_internal/provisioning.py @@ -55,6 +55,7 @@ class PrimeContainers(ApplicationError): @dataclasses.dataclass(frozen=True) class HostState: """State of hosts and profiles to be passed to ansible-test during delegation.""" + controller_profile: ControllerHostProfile target_profiles: list[HostProfile] diff --git a/test/lib/ansible_test/_internal/python_requirements.py b/test/lib/ansible_test/_internal/python_requirements.py index e3733a5c..fc88b637 100644 --- a/test/lib/ansible_test/_internal/python_requirements.py +++ b/test/lib/ansible_test/_internal/python_requirements.py @@ -48,6 +48,7 @@ from .data import ( from .host_configs import ( PosixConfig, PythonConfig, + VirtualPythonConfig, ) from .connections import ( @@ -70,13 +71,14 @@ VIRTUALENV_VERSION = '16.7.12' class PipUnavailableError(ApplicationError): """Exception raised when pip is not available.""" + def __init__(self, python: PythonConfig) -> None: super().__init__(f'Python {python.version} at "{python.path}" does not have pip available.') @dataclasses.dataclass(frozen=True) class PipCommand: - """Base class for pip commands.""""" + """Base class for pip commands.""" def serialize(self) -> tuple[str, dict[str, t.Any]]: """Return a serialized representation of this command.""" @@ -87,6 +89,7 @@ class PipCommand: @dataclasses.dataclass(frozen=True) class PipInstall(PipCommand): """Details required to perform a pip install.""" + requirements: list[tuple[str, str]] constraints: list[tuple[str, str]] packages: list[str] @@ -102,6 +105,7 @@ class PipInstall(PipCommand): @dataclasses.dataclass(frozen=True) class PipUninstall(PipCommand): """Details required to perform a pip uninstall.""" + packages: list[str] ignore_errors: bool @@ -114,6 +118,7 @@ class PipVersion(PipCommand): @dataclasses.dataclass(frozen=True) class PipBootstrap(PipCommand): """Details required to bootstrap pip.""" + pip_version: str packages: list[str] @@ -261,6 +266,20 @@ def run_pip( connection = connection or LocalConnection(args) script = prepare_pip_script(commands) + if isinstance(args, IntegrationConfig): + # Integration tests can involve two hosts (controller and target). + # The connection type can be used to disambiguate between the two. + context = " (controller)" if isinstance(connection, LocalConnection) else " (target)" + else: + context = "" + + if isinstance(python, VirtualPythonConfig): + context += " [venv]" + + # The interpreter path is not included below. + # It can be seen by running ansible-test with increased verbosity (showing all commands executed). + display.info(f'Installing requirements for Python {python.version}{context}') + if not args.explain: try: connection.run([python.path], data=script, capture=False) diff --git a/test/lib/ansible_test/_internal/ssh.py b/test/lib/ansible_test/_internal/ssh.py index 840edf62..b2a26787 100644 --- a/test/lib/ansible_test/_internal/ssh.py +++ b/test/lib/ansible_test/_internal/ssh.py @@ -32,6 +32,7 @@ from .config import ( @dataclasses.dataclass class SshConnectionDetail: """Information needed to establish an SSH connection to a host.""" + name: str host: str port: t.Optional[int] @@ -56,7 +57,7 @@ class SshConnectionDetail: # See: https://www.openssh.com/txt/release-8.8 algorithms = '+ssh-rsa' # append the algorithm to the default list, requires OpenSSH 7.0 or later - options.update(dict( + options.update( # Host key signature algorithms that the client wants to use. # Available options can be found with `ssh -Q HostKeyAlgorithms` or `ssh -Q key` on older clients. # This option was updated in OpenSSH 7.0, released on 2015-08-11, to support the "+" prefix. @@ -69,13 +70,14 @@ class SshConnectionDetail: # This option is an alias for PubkeyAcceptedAlgorithms, which was added in OpenSSH 8.5. # See: https://www.openssh.com/txt/release-8.5 PubkeyAcceptedKeyTypes=algorithms, - )) + ) return options class SshProcess: """Wrapper around an SSH process.""" + def __init__(self, process: t.Optional[subprocess.Popen]) -> None: self._process = process self.pending_forwards: t.Optional[list[tuple[str, int]]] = None @@ -161,7 +163,7 @@ def create_ssh_command( 'ssh', '-n', # prevent reading from stdin '-i', ssh.identity_file, # file from which the identity for public key authentication is read - ] + ] # fmt: skip if not command: cmd.append('-N') # do not execute a remote command diff --git a/test/lib/ansible_test/_internal/target.py b/test/lib/ansible_test/_internal/target.py index 80411483..a6fa3bf2 100644 --- a/test/lib/ansible_test/_internal/target.py +++ b/test/lib/ansible_test/_internal/target.py @@ -86,11 +86,12 @@ def walk_internal_targets( return tuple(sorted(internal_targets, key=lambda sort_target: sort_target.name)) -def filter_targets(targets: c.Iterable[TCompletionTarget], - patterns: list[str], - include: bool = True, - errors: bool = True, - ) -> c.Iterable[TCompletionTarget]: +def filter_targets( + targets: c.Iterable[TCompletionTarget], + patterns: list[str], + include: bool = True, + errors: bool = True, +) -> c.Iterable[TCompletionTarget]: """Iterate over the given targets and filter them based on the supplied arguments.""" unmatched = set(patterns or ()) compiled_patterns = dict((p, re.compile('^%s$' % p)) for p in patterns) if patterns else None @@ -401,6 +402,7 @@ def analyze_integration_target_dependencies(integration_targets: list[Integratio class CompletionTarget(metaclass=abc.ABCMeta): """Command-line argument completion target base class.""" + def __init__(self) -> None: self.name = '' self.path = '' @@ -435,6 +437,7 @@ class CompletionTarget(metaclass=abc.ABCMeta): class TestTarget(CompletionTarget): """Generic test target.""" + def __init__( self, path: str, @@ -476,6 +479,7 @@ class TestTarget(CompletionTarget): class IntegrationTargetType(enum.Enum): """Type of integration test target.""" + CONTROLLER = enum.auto() TARGET = enum.auto() UNKNOWN = enum.auto() @@ -606,13 +610,9 @@ class IntegrationTarget(CompletionTarget): if 'needs/httptester' in groups: groups.append('cloud/httptester') # backwards compatibility for when it was not a cloud plugin - if '_' in self.name: - prefix = self.name[:self.name.find('_')] - else: - prefix = None - - if prefix in prefixes: - group = prefixes[prefix] + for prefix, group in prefixes.items(): + if not self.name.startswith(f'{prefix}_'): + continue if group != prefix: group = '%s/%s' % (group, prefix) @@ -692,6 +692,7 @@ class IntegrationTarget(CompletionTarget): class TargetPatternsNotMatched(ApplicationError): """One or more targets were not matched when a match was required.""" + def __init__(self, patterns: set[str]) -> None: self.patterns = sorted(patterns) diff --git a/test/lib/ansible_test/_internal/test.py b/test/lib/ansible_test/_internal/test.py index 211635c5..c36d17e2 100644 --- a/test/lib/ansible_test/_internal/test.py +++ b/test/lib/ansible_test/_internal/test.py @@ -47,7 +47,7 @@ def calculate_confidence(path: str, line: int, metadata: Metadata) -> int: return 0 # changes were made to the same file and line - if any(r[0] <= line <= r[1] in r for r in ranges): + if any(r[0] <= line <= r[1] for r in ranges): return 100 # changes were made to the same file and the line number is unknown @@ -60,6 +60,7 @@ def calculate_confidence(path: str, line: int, metadata: Metadata) -> int: class TestResult: """Base class for test results.""" + def __init__(self, command: str, test: str, python_version: t.Optional[str] = None) -> None: self.command = command self.test = test @@ -113,7 +114,7 @@ class TestResult: junit_xml.TestSuite( name='ansible-test', cases=[test_case], - timestamp=datetime.datetime.utcnow(), + timestamp=datetime.datetime.now(tz=datetime.timezone.utc), ), ], ) @@ -128,7 +129,8 @@ class TestResult: class TestTimeout(TestResult): """Test timeout.""" - def __init__(self, timeout_duration: int) -> None: + + def __init__(self, timeout_duration: int | float) -> None: super().__init__(command='timeout', test='') self.timeout_duration = timeout_duration @@ -151,13 +153,11 @@ One or more of the following situations may be responsible: output += '\n\nConsult the console log for additional details on where the timeout occurred.' - timestamp = datetime.datetime.utcnow() - suites = junit_xml.TestSuites( suites=[ junit_xml.TestSuite( name='ansible-test', - timestamp=timestamp, + timestamp=datetime.datetime.now(tz=datetime.timezone.utc), cases=[ junit_xml.TestCase( name='timeout', @@ -180,6 +180,7 @@ One or more of the following situations may be responsible: class TestSuccess(TestResult): """Test success.""" + def write_junit(self, args: TestConfig) -> None: """Write results to a junit XML file.""" test_case = junit_xml.TestCase(classname=self.command, name=self.name) @@ -189,6 +190,7 @@ class TestSuccess(TestResult): class TestSkipped(TestResult): """Test skipped.""" + def __init__(self, command: str, test: str, python_version: t.Optional[str] = None) -> None: super().__init__(command, test, python_version) @@ -214,6 +216,7 @@ class TestSkipped(TestResult): class TestFailure(TestResult): """Test failure.""" + def __init__( self, command: str, @@ -378,6 +381,7 @@ class TestFailure(TestResult): class TestMessage: """Single test message for one file.""" + def __init__( self, message: str, diff --git a/test/lib/ansible_test/_internal/thread.py b/test/lib/ansible_test/_internal/thread.py index edaf1b5c..c4574377 100644 --- a/test/lib/ansible_test/_internal/thread.py +++ b/test/lib/ansible_test/_internal/thread.py @@ -15,6 +15,7 @@ TCallable = t.TypeVar('TCallable', bound=t.Callable[..., t.Any]) class WrappedThread(threading.Thread): """Wrapper around Thread which captures results and exceptions.""" + def __init__(self, action: c.Callable[[], t.Any]) -> None: super().__init__() self._result: queue.Queue[t.Any] = queue.Queue() diff --git a/test/lib/ansible_test/_internal/timeout.py b/test/lib/ansible_test/_internal/timeout.py index 90ba5835..2c57d4cf 100644 --- a/test/lib/ansible_test/_internal/timeout.py +++ b/test/lib/ansible_test/_internal/timeout.py @@ -1,6 +1,7 @@ """Timeout management for tests.""" from __future__ import annotations +import dataclasses import datetime import functools import os @@ -19,7 +20,7 @@ from .config import ( from .util import ( display, - ApplicationError, + TimeoutExpiredError, ) from .thread import ( @@ -35,15 +36,56 @@ from .test import ( ) -def get_timeout() -> t.Optional[dict[str, t.Any]]: - """Return details about the currently set timeout, if any, otherwise return None.""" - if not os.path.exists(TIMEOUT_PATH): - return None +@dataclasses.dataclass(frozen=True) +class TimeoutDetail: + """Details required to enforce a timeout on test execution.""" + + _DEADLINE_FORMAT = '%Y-%m-%dT%H:%M:%SZ' # format used to maintain backwards compatibility with previous versions of ansible-test + + deadline: datetime.datetime + duration: int | float # minutes + + @property + def remaining(self) -> datetime.timedelta: + """The amount of time remaining before the timeout occurs. If the timeout has passed, this will be a negative duration.""" + return self.deadline - datetime.datetime.now(tz=datetime.timezone.utc).replace(microsecond=0) + + def to_dict(self) -> dict[str, t.Any]: + """Return timeout details as a dictionary suitable for JSON serialization.""" + return dict( + deadline=self.deadline.strftime(self._DEADLINE_FORMAT), + duration=self.duration, + ) - data = read_json_file(TIMEOUT_PATH) - data['deadline'] = datetime.datetime.strptime(data['deadline'], '%Y-%m-%dT%H:%M:%SZ') + @staticmethod + def from_dict(value: dict[str, t.Any]) -> TimeoutDetail: + """Return a TimeoutDetail instance using the value previously returned by to_dict.""" + return TimeoutDetail( + deadline=datetime.datetime.strptime(value['deadline'], TimeoutDetail._DEADLINE_FORMAT).replace(tzinfo=datetime.timezone.utc), + duration=value['duration'], + ) - return data + @staticmethod + def create(duration: int | float) -> TimeoutDetail | None: + """Return a new TimeoutDetail instance for the specified duration (in minutes), or None if the duration is zero.""" + if not duration: + return None + + if duration == int(duration): + duration = int(duration) + + return TimeoutDetail( + deadline=datetime.datetime.now(datetime.timezone.utc).replace(microsecond=0) + datetime.timedelta(seconds=int(duration * 60)), + duration=duration, + ) + + +def get_timeout() -> TimeoutDetail | None: + """Return details about the currently set timeout, if any, otherwise return None.""" + try: + return TimeoutDetail.from_dict(read_json_file(TIMEOUT_PATH)) + except FileNotFoundError: + return None def configure_timeout(args: CommonConfig) -> None: @@ -59,27 +101,22 @@ def configure_test_timeout(args: TestConfig) -> None: if not timeout: return - timeout_start = datetime.datetime.utcnow() - timeout_duration = timeout['duration'] - timeout_deadline = timeout['deadline'] - timeout_remaining = timeout_deadline - timeout_start + timeout_remaining = timeout.remaining - test_timeout = TestTimeout(timeout_duration) + test_timeout = TestTimeout(timeout.duration) if timeout_remaining <= datetime.timedelta(): test_timeout.write(args) - raise ApplicationError('The %d minute test timeout expired %s ago at %s.' % ( - timeout_duration, timeout_remaining * -1, timeout_deadline)) + raise TimeoutExpiredError(f'The {timeout.duration} minute test timeout expired {timeout_remaining * -1} ago at {timeout.deadline}.') - display.info('The %d minute test timeout expires in %s at %s.' % ( - timeout_duration, timeout_remaining, timeout_deadline), verbosity=1) + display.info(f'The {timeout.duration} minute test timeout expires in {timeout_remaining} at {timeout.deadline}.', verbosity=1) def timeout_handler(_dummy1: t.Any, _dummy2: t.Any) -> None: """Runs when SIGUSR1 is received.""" test_timeout.write(args) - raise ApplicationError('Tests aborted after exceeding the %d minute time limit.' % timeout_duration) + raise TimeoutExpiredError(f'Tests aborted after exceeding the {timeout.duration} minute time limit.') def timeout_waiter(timeout_seconds: int) -> None: """Background thread which will kill the current process if the timeout elapses.""" @@ -88,6 +125,6 @@ def configure_test_timeout(args: TestConfig) -> None: signal.signal(signal.SIGUSR1, timeout_handler) - instance = WrappedThread(functools.partial(timeout_waiter, timeout_remaining.seconds)) + instance = WrappedThread(functools.partial(timeout_waiter, timeout_remaining.total_seconds())) instance.daemon = True instance.start() diff --git a/test/lib/ansible_test/_internal/util.py b/test/lib/ansible_test/_internal/util.py index ec485a2b..a5a9faba 100644 --- a/test/lib/ansible_test/_internal/util.py +++ b/test/lib/ansible_test/_internal/util.py @@ -23,10 +23,14 @@ import time import functools import shlex import typing as t +import warnings from struct import unpack, pack from termios import TIOCGWINSZ +# CAUTION: Avoid third-party imports in this module whenever possible. +# Any third-party imports occurring here will result in an error if they are vendored by ansible-core. + try: from typing_extensions import TypeGuard # TypeGuard was added in Python 3.10 except ImportError: @@ -129,6 +133,7 @@ class Architecture: Normalized architecture names. These are the architectures supported by ansible-test, such as when provisioning remote instances. """ + X86_64 = 'x86_64' AARCH64 = 'aarch64' @@ -338,6 +343,17 @@ def get_ansible_version() -> str: return ansible_version +def _enable_vendoring() -> None: + """Enable support for loading Python packages vendored by ansible-core.""" + # Load the vendoring code by file path, since ansible may not be in our sys.path. + # Convert warnings into errors, to avoid problems from surfacing later. + + with warnings.catch_warnings(): + warnings.filterwarnings('error') + + load_module(os.path.join(ANSIBLE_LIB_ROOT, '_vendor', '__init__.py'), 'ansible_vendor') + + @cache def get_available_python_versions() -> dict[str, str]: """Return a dictionary indicating which supported Python versions are available.""" @@ -553,6 +569,7 @@ def communicate_with_process( class WriterThread(WrappedThread): """Thread to write data to stdin of a subprocess.""" + def __init__(self, handle: t.IO[bytes], data: bytes) -> None: super().__init__(self._run) @@ -570,6 +587,7 @@ class WriterThread(WrappedThread): class ReaderThread(WrappedThread, metaclass=abc.ABCMeta): """Thread to read stdout from a subprocess.""" + def __init__(self, handle: t.IO[bytes], buffer: t.BinaryIO) -> None: super().__init__(self._run) @@ -584,6 +602,7 @@ class ReaderThread(WrappedThread, metaclass=abc.ABCMeta): class CaptureThread(ReaderThread): """Thread to capture stdout from a subprocess into a buffer.""" + def _run(self) -> None: """Workload to run on a thread.""" src = self.handle @@ -598,6 +617,7 @@ class CaptureThread(ReaderThread): class OutputThread(ReaderThread): """Thread to pass stdout from a subprocess to stdout.""" + def _run(self) -> None: """Workload to run on a thread.""" src = self.handle @@ -778,6 +798,7 @@ def generate_password() -> str: class Display: """Manages color console output.""" + clear = '\033[0m' red = '\033[31m' green = '\033[32m' @@ -886,6 +907,7 @@ class Display: class InternalError(Exception): """An unhandled internal error indicating a bug in the code.""" + def __init__(self, message: str) -> None: super().__init__(f'An internal error has occurred in ansible-test: {message}') @@ -898,8 +920,13 @@ class ApplicationWarning(Exception): """General application warning which interrupts normal program flow.""" +class TimeoutExpiredError(SystemExit): + """Error raised when the test timeout has been reached or exceeded.""" + + class SubprocessError(ApplicationError): """Error resulting from failed subprocess execution.""" + def __init__( self, cmd: list[str], @@ -936,6 +963,7 @@ class SubprocessError(ApplicationError): class MissingEnvironmentVariable(ApplicationError): """Error caused by missing environment variable.""" + def __init__(self, name: str) -> None: super().__init__('Missing environment variable: %s' % name) @@ -948,6 +976,7 @@ class HostConnectionError(ApplicationError): Raised by provisioning code when one or more provisioning threads raise this exception. Also raised when an SSH connection fails for the shell command. """ + def __init__(self, message: str, callback: t.Callable[[], None] = None) -> None: super().__init__(message) @@ -1144,3 +1173,5 @@ def type_guard(sequence: c.Sequence[t.Any], guard_type: t.Type[C]) -> TypeGuard[ display = Display() # pylint: disable=locally-disabled, invalid-name + +_enable_vendoring() diff --git a/test/lib/ansible_test/_internal/util_common.py b/test/lib/ansible_test/_internal/util_common.py index 1dfc7f38..79ff6c03 100644 --- a/test/lib/ansible_test/_internal/util_common.py +++ b/test/lib/ansible_test/_internal/util_common.py @@ -66,6 +66,7 @@ CHECK_YAML_VERSIONS: dict[str, t.Any] = {} class ShellScriptTemplate: """A simple substitution template for shell scripts.""" + def __init__(self, template: str) -> None: self.template = template @@ -87,6 +88,7 @@ class ShellScriptTemplate: class ResultType: """Test result type.""" + BOT: ResultType = None COVERAGE: ResultType = None DATA: ResultType = None @@ -128,6 +130,7 @@ ResultType._populate() # pylint: disable=protected-access class CommonConfig: """Configuration common to all commands.""" + def __init__(self, args: t.Any, command: str) -> None: self.command = command self.interactive = False @@ -237,12 +240,13 @@ def named_temporary_file(args: CommonConfig, prefix: str, suffix: str, directory yield tempfile_fd.name -def write_json_test_results(category: ResultType, - name: str, - content: t.Union[list[t.Any], dict[str, t.Any]], - formatted: bool = True, - encoder: t.Optional[t.Type[json.JSONEncoder]] = None, - ) -> None: +def write_json_test_results( + category: ResultType, + name: str, + content: t.Union[list[t.Any], dict[str, t.Any]], + formatted: bool = True, + encoder: t.Optional[t.Type[json.JSONEncoder]] = None, +) -> None: """Write the given json content to the specified test results path, creating directories as needed.""" path = os.path.join(category.path, name) write_json_file(path, content, create_directories=True, formatted=formatted, encoder=encoder) @@ -445,8 +449,21 @@ def run_command( ) -> tuple[t.Optional[str], t.Optional[str]]: """Run the specified command and return stdout and stderr as a tuple.""" explain = args.explain and not always - return raw_command(cmd, capture=capture, env=env, data=data, cwd=cwd, explain=explain, stdin=stdin, stdout=stdout, interactive=interactive, - output_stream=output_stream, cmd_verbosity=cmd_verbosity, str_errors=str_errors, error_callback=error_callback) + return raw_command( + cmd, + capture=capture, + env=env, + data=data, + cwd=cwd, + explain=explain, + stdin=stdin, + stdout=stdout, + interactive=interactive, + output_stream=output_stream, + cmd_verbosity=cmd_verbosity, + str_errors=str_errors, + error_callback=error_callback, + ) def yamlcheck(python: PythonConfig) -> t.Optional[bool]: diff --git a/test/lib/ansible_test/_internal/venv.py b/test/lib/ansible_test/_internal/venv.py index ec498ed9..a83fc8b9 100644 --- a/test/lib/ansible_test/_internal/venv.py +++ b/test/lib/ansible_test/_internal/venv.py @@ -78,12 +78,13 @@ def get_virtual_python( return virtual_environment_python -def create_virtual_environment(args: EnvironmentConfig, - python: PythonConfig, - path: str, - system_site_packages: bool = False, - pip: bool = False, - ) -> bool: +def create_virtual_environment( + args: EnvironmentConfig, + python: PythonConfig, + path: str, + system_site_packages: bool = False, + pip: bool = False, +) -> bool: """Create a virtual environment using venv or virtualenv for the requested Python version.""" if not os.path.exists(python.path): # the requested python version could not be found @@ -180,12 +181,13 @@ def get_python_real_prefix(python_path: str) -> t.Optional[str]: return real_prefix -def run_venv(args: EnvironmentConfig, - run_python: str, - system_site_packages: bool, - pip: bool, - path: str, - ) -> bool: +def run_venv( + args: EnvironmentConfig, + run_python: str, + system_site_packages: bool, + pip: bool, + path: str, +) -> bool: """Create a virtual environment using the 'venv' module. Not available on Python 2.x.""" cmd = [run_python, '-m', 'venv'] @@ -210,13 +212,14 @@ def run_venv(args: EnvironmentConfig, return True -def run_virtualenv(args: EnvironmentConfig, - run_python: str, - env_python: str, - system_site_packages: bool, - pip: bool, - path: str, - ) -> bool: +def run_virtualenv( + args: EnvironmentConfig, + run_python: str, + env_python: str, + system_site_packages: bool, + pip: bool, + path: str, +) -> bool: """Create a virtual environment using the 'virtualenv' module.""" # always specify which interpreter to use to guarantee the desired interpreter is provided # otherwise virtualenv may select a different interpreter than the one running virtualenv diff --git a/test/lib/ansible_test/_util/controller/sanity/mypy/ansible-test.ini b/test/lib/ansible_test/_util/controller/sanity/mypy/ansible-test.ini index 190e9529..55738f87 100644 --- a/test/lib/ansible_test/_util/controller/sanity/mypy/ansible-test.ini +++ b/test/lib/ansible_test/_util/controller/sanity/mypy/ansible-test.ini @@ -14,6 +14,9 @@ disable_error_code = misc [mypy-argcomplete] ignore_missing_imports = True +[mypy-argcomplete.finders] +ignore_missing_imports = True + [mypy-coverage] ignore_missing_imports = True diff --git a/test/lib/ansible_test/_util/controller/sanity/validate-modules/validate_modules/main.py b/test/lib/ansible_test/_util/controller/sanity/validate-modules/validate_modules/main.py index 270c9f44..25c61798 100644 --- a/test/lib/ansible_test/_util/controller/sanity/validate-modules/validate_modules/main.py +++ b/test/lib/ansible_test/_util/controller/sanity/validate-modules/validate_modules/main.py @@ -24,9 +24,7 @@ import datetime import json import os import re -import subprocess import sys -import tempfile import traceback import warnings @@ -301,8 +299,8 @@ class ModuleValidator(Validator): ACCEPTLIST_FUTURE_IMPORTS = frozenset(('absolute_import', 'division', 'print_function')) - def __init__(self, path, analyze_arg_spec=False, collection=None, collection_version=None, - base_branch=None, git_cache=None, reporter=None, routing=None, plugin_type='module'): + def __init__(self, path, git_cache: GitCache, analyze_arg_spec=False, collection=None, collection_version=None, + reporter=None, routing=None, plugin_type='module'): super(ModuleValidator, self).__init__(reporter=reporter or Reporter()) self.path = path @@ -328,8 +326,8 @@ class ModuleValidator(Validator): self.collection_version_str = collection_version self.collection_version = SemanticVersion(collection_version) - self.base_branch = base_branch - self.git_cache = git_cache or GitCache() + self.git_cache = git_cache + self.base_module = self.git_cache.get_original_path(self.path) self._python_module_override = False @@ -341,11 +339,6 @@ class ModuleValidator(Validator): except Exception: self.ast = None - if base_branch: - self.base_module = self._get_base_file() - else: - self.base_module = None - def _create_version(self, v, collection_name=None): if not v: raise ValueError('Empty string is not a valid version') @@ -368,13 +361,7 @@ class ModuleValidator(Validator): return self def __exit__(self, exc_type, exc_value, traceback): - if not self.base_module: - return - - try: - os.remove(self.base_module) - except Exception: - pass + pass @property def object_name(self): @@ -426,36 +413,9 @@ class ModuleValidator(Validator): except AttributeError: return False - def _get_base_branch_module_path(self): - """List all paths within lib/ansible/modules to try and match a moved module""" - return self.git_cache.base_module_paths.get(self.object_name) - - def _has_alias(self): - """Return true if the module has any aliases.""" - return self.object_name in self.git_cache.head_aliased_modules - - def _get_base_file(self): - # In case of module moves, look for the original location - base_path = self._get_base_branch_module_path() - ext = os.path.splitext(base_path or self.path)[1] - - command = ['git', 'show', '%s:%s' % (self.base_branch, base_path or self.path)] - p = subprocess.run(command, stdin=subprocess.DEVNULL, capture_output=True, check=False) - - if int(p.returncode) != 0: - return None - - t = tempfile.NamedTemporaryFile(delete=False, suffix=ext) - t.write(p.stdout) - t.close() - - return t.name - - def _is_new_module(self): - if self._has_alias(): - return False - - return not self.object_name.startswith('_') and bool(self.base_branch) and not bool(self.base_module) + def _is_new_module(self) -> bool | None: + """Return True if the content is new, False if it is not and None if the information is not available.""" + return self.git_cache.is_new(self.path) def _check_interpreter(self, powershell=False): if powershell: @@ -2050,7 +2010,7 @@ class ModuleValidator(Validator): ) def _check_for_new_args(self, doc): - if not self.base_branch or self._is_new_module(): + if not self.base_module: return with CaptureStd(): @@ -2284,7 +2244,7 @@ class ModuleValidator(Validator): # We can only validate PowerShell arg spec if it is using the new Ansible.Basic.AnsibleModule util pattern = r'(?im)^#\s*ansiblerequires\s+\-csharputil\s*Ansible\.Basic' if re.search(pattern, self.text) and self.object_name not in self.PS_ARG_VALIDATE_REJECTLIST: - with ModuleValidator(docs_path, base_branch=self.base_branch, git_cache=self.git_cache) as docs_mv: + with ModuleValidator(docs_path, git_cache=self.git_cache) as docs_mv: docs = docs_mv._validate_docs()[1] self._validate_ansible_module_call(docs) @@ -2329,6 +2289,84 @@ class PythonPackageValidator(Validator): ) +class GitCache(metaclass=abc.ABCMeta): + """Base class for access to original files.""" + @abc.abstractmethod + def get_original_path(self, path: str) -> str | None: + """Return the path to the original version of the specified file, or None if there isn't one.""" + + @abc.abstractmethod + def is_new(self, path: str) -> bool | None: + """Return True if the content is new, False if it is not and None if the information is not available.""" + + @staticmethod + def create(original_plugins: str | None, plugin_type: str) -> GitCache: + return CoreGitCache(original_plugins, plugin_type) if original_plugins else NoOpGitCache() + + +class CoreGitCache(GitCache): + """Provides access to original files when testing core.""" + def __init__(self, original_plugins: str | None, plugin_type: str) -> None: + super().__init__() + + self.original_plugins = original_plugins + + rel_path = 'lib/ansible/modules/' if plugin_type == 'module' else f'lib/ansible/plugins/{plugin_type}/' + head_tree = self._find_files(rel_path) + + head_aliased_modules = set() + + for path in head_tree: + filename = os.path.basename(path) + + if filename.startswith('_') and filename != '__init__.py': + if os.path.islink(path): + head_aliased_modules.add(os.path.basename(os.path.realpath(path))) + + self._head_aliased_modules = head_aliased_modules + + def get_original_path(self, path: str) -> str | None: + """Return the path to the original version of the specified file, or None if there isn't one.""" + path = os.path.join(self.original_plugins, path) + + if not os.path.exists(path): + path = None + + return path + + def is_new(self, path: str) -> bool | None: + """Return True if the content is new, False if it is not and None if the information is not available.""" + if os.path.basename(path).startswith('_'): + return False + + if os.path.basename(path) in self._head_aliased_modules: + return False + + return not self.get_original_path(path) + + @staticmethod + def _find_files(path: str) -> list[str]: + """Return a list of files found in the specified directory.""" + paths = [] + + for (dir_path, dir_names, file_names) in os.walk(path): + for file_name in file_names: + paths.append(os.path.join(dir_path, file_name)) + + return sorted(paths) + + +class NoOpGitCache(GitCache): + """Provides a no-op interface for access to original files.""" + def get_original_path(self, path: str) -> str | None: + """Return the path to the original version of the specified file, or None if there isn't one.""" + return None + + def is_new(self, path: str) -> bool | None: + """Return True if the content is new, False if it is not and None if the information is not available.""" + return None + + def re_compile(value): """ Argparse expects things to raise TypeError, re.compile raises an re.error @@ -2354,8 +2392,6 @@ def run(): type=re_compile) parser.add_argument('--arg-spec', help='Analyze module argument spec', action='store_true', default=False) - parser.add_argument('--base-branch', default=None, - help='Used in determining if new options were added') parser.add_argument('--format', choices=['json', 'plain'], default='plain', help='Output format. Default: "%(default)s"') parser.add_argument('--output', default='-', @@ -2372,13 +2408,14 @@ def run(): parser.add_argument('--plugin-type', default='module', help='The plugin type to validate. Defaults to %(default)s') + parser.add_argument('--original-plugins') args = parser.parse_args() args.plugins = [m.rstrip('/') for m in args.plugins] reporter = Reporter() - git_cache = GitCache(args.base_branch, args.plugin_type) + git_cache = GitCache.create(args.original_plugins, args.plugin_type) check_dirs = set() @@ -2403,7 +2440,7 @@ def run(): if ModuleValidator.is_on_rejectlist(path): continue with ModuleValidator(path, collection=args.collection, collection_version=args.collection_version, - analyze_arg_spec=args.arg_spec, base_branch=args.base_branch, + analyze_arg_spec=args.arg_spec, git_cache=git_cache, reporter=reporter, routing=routing, plugin_type=args.plugin_type) as mv1: mv1.validate() @@ -2428,7 +2465,7 @@ def run(): if ModuleValidator.is_on_rejectlist(path): continue with ModuleValidator(path, collection=args.collection, collection_version=args.collection_version, - analyze_arg_spec=args.arg_spec, base_branch=args.base_branch, + analyze_arg_spec=args.arg_spec, git_cache=git_cache, reporter=reporter, routing=routing, plugin_type=args.plugin_type) as mv2: mv2.validate() @@ -2444,75 +2481,6 @@ def run(): sys.exit(reporter.json(warnings=args.warnings, output=args.output)) -class GitCache: - def __init__(self, base_branch, plugin_type): - self.base_branch = base_branch - self.plugin_type = plugin_type - - self.rel_path = 'lib/ansible/modules/' - if plugin_type != 'module': - self.rel_path = 'lib/ansible/plugins/%s/' % plugin_type - - if self.base_branch: - self.base_tree = self._git(['ls-tree', '-r', '--name-only', self.base_branch, self.rel_path]) - else: - self.base_tree = [] - - try: - self.head_tree = self._git(['ls-tree', '-r', '--name-only', 'HEAD', self.rel_path]) - except GitError as ex: - if ex.status == 128: - # fallback when there is no .git directory - self.head_tree = self._get_module_files() - else: - raise - except FileNotFoundError: - # fallback when git is not installed - self.head_tree = self._get_module_files() - - allowed_exts = ('.py', '.ps1') - if plugin_type != 'module': - allowed_exts = ('.py', ) - self.base_module_paths = dict((os.path.basename(p), p) for p in self.base_tree if os.path.splitext(p)[1] in allowed_exts) - - self.base_module_paths.pop('__init__.py', None) - - self.head_aliased_modules = set() - - for path in self.head_tree: - filename = os.path.basename(path) - - if filename.startswith('_') and filename != '__init__.py': - if os.path.islink(path): - self.head_aliased_modules.add(os.path.basename(os.path.realpath(path))) - - def _get_module_files(self): - module_files = [] - - for (dir_path, dir_names, file_names) in os.walk(self.rel_path): - for file_name in file_names: - module_files.append(os.path.join(dir_path, file_name)) - - return module_files - - @staticmethod - def _git(args): - cmd = ['git'] + args - p = subprocess.run(cmd, stdin=subprocess.DEVNULL, capture_output=True, text=True, check=False) - - if p.returncode != 0: - raise GitError(p.stderr, p.returncode) - - return p.stdout.splitlines() - - -class GitError(Exception): - def __init__(self, message, status): - super(GitError, self).__init__(message) - - self.status = status - - def main(): try: run() diff --git a/test/lib/ansible_test/_util/target/setup/bootstrap.sh b/test/lib/ansible_test/_util/target/setup/bootstrap.sh index 732c122a..f2e82fbc 100644 --- a/test/lib/ansible_test/_util/target/setup/bootstrap.sh +++ b/test/lib/ansible_test/_util/target/setup/bootstrap.sh @@ -148,6 +148,7 @@ bootstrap_remote_freebsd() packages=" python${python_package_version} py${python_package_version}-sqlite3 + py${python_package_version}-setuptools bash curl gtar diff --git a/test/sanity/code-smell/package-data.py b/test/sanity/code-smell/package-data.py index 0c6e7613..fc894a77 100644 --- a/test/sanity/code-smell/package-data.py +++ b/test/sanity/code-smell/package-data.py @@ -29,9 +29,6 @@ def assemble_files_to_ship(complete_file_list): 'hacking/ticket_stubs/*', 'test/sanity/code-smell/botmeta.*', 'test/sanity/code-smell/release-names.*', - 'test/utils/*', - 'test/utils/*/*', - 'test/utils/*/*/*', 'test/results/.tmp/*', 'test/results/.tmp/*/*', 'test/results/.tmp/*/*/*', @@ -54,7 +51,6 @@ def assemble_files_to_ship(complete_file_list): 'hacking/report.py', 'hacking/return_skeleton_generator.py', 'hacking/test-module', - 'test/support/README.md', 'test/lib/ansible_test/_internal/commands/sanity/bin_symlinks.py', 'test/lib/ansible_test/_internal/commands/sanity/integration_aliases.py', '.cherry_picker.toml', diff --git a/test/support/README.md b/test/support/README.md new file mode 100644 index 00000000..850bc921 --- /dev/null +++ b/test/support/README.md @@ -0,0 +1,11 @@ +# IMPORTANT! + +Files under this directory are not actual plugins and modules used by Ansible +and as such should **not be modified**. They are used for testing purposes +only (and are temporary). + +In almost every case, pull requests affecting files under this directory +will be closed. + +**You are likely looking for something under +https://github.com/ansible-collections/ instead.** diff --git a/test/units/plugins/lookup/test_password.py b/test/units/plugins/lookup/test_password.py index 15207b2f..318bc10b 100644 --- a/test/units/plugins/lookup/test_password.py +++ b/test/units/plugins/lookup/test_password.py @@ -330,23 +330,34 @@ class TestRandomPassword(unittest.TestCase): class TestParseContent(unittest.TestCase): def test_empty_password_file(self): - plaintext_password, salt = password._parse_content(u'') + plaintext_password, salt, ident = password._parse_content(u'') self.assertEqual(plaintext_password, u'') self.assertEqual(salt, None) + self.assertEqual(ident, None) def test(self): expected_content = u'12345678' file_content = expected_content - plaintext_password, salt = password._parse_content(file_content) + plaintext_password, salt, ident = password._parse_content(file_content) self.assertEqual(plaintext_password, expected_content) self.assertEqual(salt, None) + self.assertEqual(ident, None) def test_with_salt(self): expected_content = u'12345678 salt=87654321' file_content = expected_content - plaintext_password, salt = password._parse_content(file_content) + plaintext_password, salt, ident = password._parse_content(file_content) self.assertEqual(plaintext_password, u'12345678') self.assertEqual(salt, u'87654321') + self.assertEqual(ident, None) + + def test_with_salt_and_ident(self): + expected_content = u'12345678 salt=87654321 ident=2a' + file_content = expected_content + plaintext_password, salt, ident = password._parse_content(file_content) + self.assertEqual(plaintext_password, u'12345678') + self.assertEqual(salt, u'87654321') + self.assertEqual(ident, u'2a') class TestFormatContent(unittest.TestCase): -- cgit v1.2.3