Compare commits
120 Commits
devel
...
v2.11.3rc1
| Author | SHA1 | Date | |
|---|---|---|---|
| 90c8ab0c8c | |||
| 78c7721052 | |||
| 420527bebf | |||
| 1f4d1dfa0b | |||
| 6d2e8f7729 | |||
| b3115e3c16 | |||
| 36eef4b9f8 | |||
| 35383360d2 | |||
| 1b6698aba8 | |||
| 3b5bc9b3fa | |||
| a2239d8819 | |||
| 40ecd27211 | |||
| b1e9da9d75 | |||
| ca1da07dda | |||
| 1ed901f7ef | |||
| 49950fa875 | |||
| e137398a84 | |||
| 348eee92bf | |||
| ff7bbe3f0a | |||
| f72720c7f8 | |||
| 37b3593720 | |||
| a5d1238f42 | |||
| ae9001ee18 | |||
| 7316e1b54a | |||
| c207402507 | |||
| 392e93135d | |||
| e009cd9733 | |||
| f752c7f179 | |||
| dce10b89ad | |||
| 7448c2fa62 | |||
| bf6f277edd | |||
| fad56bd4e6 | |||
| f92f039ea7 | |||
| 13e5c64918 | |||
| 25ac505975 | |||
| 93de61a8da | |||
| dad721d9dc | |||
| a16dd1150e | |||
| 03aff644cc | |||
| 578fa17af5 | |||
| 46378f0086 | |||
| b2808ed147 | |||
| 8b8996cb36 | |||
| 9627912180 | |||
| 56ab8508d0 | |||
| 13a829af2b | |||
| 8d6a8583c9 | |||
| 6f126a8d08 | |||
| 6987150d40 | |||
| ee38c4244b | |||
| 4ceaefc240 | |||
| f468ec7087 | |||
| 84707c60a4 | |||
| bbca98f622 | |||
| 15ae85269f | |||
| d24f793ab1 | |||
| 892f0bf644 | |||
| b5f13e5f28 | |||
| ed456f25f6 | |||
| 00d5a1610f | |||
| 22adad0f19 | |||
| 3d6c8ee3e0 | |||
| 5ee1fe2665 | |||
| 71fc9ec393 | |||
| 5b0a3ac43d | |||
| 85b4c70172 | |||
| 46b67b74c7 | |||
| 02d07dcace | |||
| 341834fe70 | |||
| 2c9389b193 | |||
| a81386fa62 | |||
| 3aab644285 | |||
| 3d4d43a1ce | |||
| a9b7625151 | |||
| dd7118c433 | |||
| ebf7233e35 | |||
| 45618a6f38 | |||
| 63cb289bf0 | |||
| d10195631e | |||
| 66a9ea2f23 | |||
| 162973d1a7 | |||
| fc84de8faa | |||
| a19d44ca7b | |||
| cf8df3faa4 | |||
| a624731700 | |||
| bcd7b61c03 | |||
| 83c5e57ce5 | |||
| 383559f8af | |||
| 0fbedb3364 | |||
| 3f0b92e0b6 | |||
| 4da2e2db79 | |||
| 167726e291 | |||
| 744412d0cd | |||
| 2743ea1e69 | |||
| 51d1ab036d | |||
| ccf646d3a6 | |||
| af07c35f98 | |||
| d51ec33d84 | |||
| 75d9fa648e | |||
| 8d03c2ddc4 | |||
| 4e3f422540 | |||
| b5ad0296a2 | |||
| 74c3c30063 | |||
| a4eff47860 | |||
| 1df28faad6 | |||
| 405da50dc7 | |||
| 2d931e101e | |||
| 2c16395054 | |||
| bd107203b2 | |||
| 1808502b51 | |||
| 62b68bf83e | |||
| 01a0e728c7 | |||
| cf18aa3d74 | |||
| ad2221fbc8 | |||
| 228c2782ad | |||
| f196914e13 | |||
| 275d0acfa1 | |||
| ccc44d9dc0 | |||
| 8f85594ff9 | |||
| 6711bb0364 |
@ -36,7 +36,7 @@ variables:
|
||||
resources:
|
||||
containers:
|
||||
- container: default
|
||||
image: quay.io/ansible/azure-pipelines-test-container:1.8.0
|
||||
image: quay.io/ansible/azure-pipelines-test-container:1.9.0
|
||||
|
||||
pool: Standard
|
||||
|
||||
|
||||
@ -7,7 +7,7 @@ set -o pipefail -eu
|
||||
|
||||
output_path="$1"
|
||||
|
||||
curl --silent --show-error https://codecov.io/bash > codecov.sh
|
||||
curl --silent --show-error https://ansible-ci-files.s3.us-east-1.amazonaws.com/codecov/codecov.sh > codecov.sh
|
||||
|
||||
for file in "${output_path}"/reports/coverage*.xml; do
|
||||
name="${file}"
|
||||
|
||||
1
.gitattributes
vendored
1
.gitattributes
vendored
@ -1,2 +1 @@
|
||||
.github/ export-ignore
|
||||
hacking/ export-ignore
|
||||
|
||||
4
Makefile
4
Makefile
@ -11,7 +11,7 @@
|
||||
# make deb ------------------ produce a DEB
|
||||
# make docs ----------------- rebuild the manpages (results are checked in)
|
||||
# make gettext -------------- produce POT files for docs
|
||||
# make generate-po ---------- generate language specfic po file
|
||||
# make generate-po ---------- generate language specific po file
|
||||
# make needs-translation ---- generate list of file with unstranlated or fuzzy string for a specific language
|
||||
# make tests ---------------- run the tests (see https://docs.ansible.com/ansible/devel/dev_guide/testing_units.html for requirements)
|
||||
|
||||
@ -34,7 +34,7 @@ else
|
||||
ASCII2MAN = @echo "ERROR: rst2man from docutils command is not installed but is required to build $(MANPAGES)" && exit 1
|
||||
endif
|
||||
|
||||
PYTHON=python
|
||||
PYTHON ?= python
|
||||
GENERATE_CLI = hacking/build-ansible.py generate-man
|
||||
|
||||
# fetch version from project release.py as single source-of-truth
|
||||
|
||||
@ -5,105 +5,127 @@ ansible-core 2.11 "Hey Hey, What Can I Do" Release Notes
|
||||
.. contents:: Topics
|
||||
|
||||
|
||||
v2.11.0b4
|
||||
=========
|
||||
v2.11.3rc1
|
||||
==========
|
||||
|
||||
Release Summary
|
||||
---------------
|
||||
|
||||
| Release Date: 2021-03-29
|
||||
| Release Date: 2021-07-13
|
||||
| `Porting Guide <https://docs.ansible.com/ansible/devel/porting_guides.html>`__
|
||||
|
||||
|
||||
Minor Changes
|
||||
-------------
|
||||
|
||||
- ansible-galaxy CLI - ``collection verify`` command now exits with a non-zero exit code on verification failure
|
||||
- ansible-galaxy CLI - ``collection verify`` command now supports a ``--offline`` option for local-only verification
|
||||
- ansible-test - aws creates and exposes a new tiny_prefix variable to provide a shorter prefix for the AWS tests.
|
||||
|
||||
Bugfixes
|
||||
--------
|
||||
|
||||
- Correctly set template_path and template_fullpath for usage in template lookup and action plugins.
|
||||
- Try to avoid kernel 'blocking' state on reading files while fact gathering.
|
||||
- apt - fix policy_rc_d parameter throwing an exception when restoring original file (https://github.com/ansible/ansible/issues/66211)
|
||||
- argument spec validation - fix behavior of ``apply_defaults=True`` when an empty dictionary is specified for such an option (https://github.com/ansible/ansible/pull/74029).
|
||||
- pause - do not accept enter to continue when a timeout is set (https://github.com/ansible/ansible/issues/73948)
|
||||
- setup module, fix error handling on bad subset given
|
||||
- wait_for module, move missing socket into function to get proper comparrison in time.
|
||||
- Add unicode support to ``ansible-inventory`` CLI (https://github.com/ansible/ansible/issues/57378)
|
||||
- Ensure we get full path for extra vars into cliargs to avoid realpath issues after initial load.
|
||||
- ansible-doc - in text output, do not show empty ``version_added_collection`` values (https://github.com/ansible/ansible/pull/74999).
|
||||
- ansible-test - restrict ``packaging`` to ``< 21.0`` for Python ``< 3.6`` (https://github.com/ansible/ansible/pull/75186).
|
||||
- command - remove unreachable code path when trying to convert the value for ``chdir`` to bytes (https://github.com/ansible/ansible/pull/75036)
|
||||
- module_common - handle exception when multiple workers try to create the cache directory
|
||||
- roles - make sure argspec validation task templates suboptions (https://github.com/ansible/ansible/issues/75070).
|
||||
- slurp - improve the logic in the error handling and remove ``os.stat()`` call (https://github.com/ansible/ansible/pull/75038)
|
||||
- ssh_connection - rename ``retries`` to ``reconnection_retries`` to avoid conflicts with task vars (https://github.com/ansible/ansible/issues/75142).
|
||||
- ssh_connection - set the default for ``reconnection_retries`` back to ``0`` (https://github.com/ansible/ansible/issues/75142).
|
||||
- task_executor/ssh_connection - use the ``retries`` value from ``ssh_connection`` settings, not the default from the ``Task`` field attributes (https://github.com/ansible/ansible/issues/75142).
|
||||
|
||||
v2.11.0b3
|
||||
=========
|
||||
v2.11.2
|
||||
=======
|
||||
|
||||
Release Summary
|
||||
---------------
|
||||
|
||||
| Release Date: 2021-03-19
|
||||
| Release Date: 2021-06-22
|
||||
| `Porting Guide <https://docs.ansible.com/ansible/devel/porting_guides.html>`__
|
||||
|
||||
|
||||
Major Changes
|
||||
-------------
|
||||
Security Fixes
|
||||
--------------
|
||||
|
||||
- AnsibleModule - use ``ArgumentSpecValidator`` class for validating argument spec and remove private methods related to argument spec validation. Any modules using private methods should now use the ``ArgumentSpecValidator`` class or the appropriate validation function.
|
||||
|
||||
Minor Changes
|
||||
-------------
|
||||
|
||||
- Callbacks - Migrate more places in the ``TaskExecutor`` to sending callbacks directly over the queue, instead of sending them as ``TaskResult`` and short circuiting in the Strategy to send the callback. This enables closer to real time callbacks of retries and loop results (https://github.com/ansible/ansible/issues/73899)
|
||||
- setup - fix distribution facts for Older Amazon Linux with ``/etc/os-release`` (https://github.com/ansible/ansible/issues/73946).
|
||||
- templating engine fix for not preserving usnafe status when trying to preserve newlines. CVE-2021-3583
|
||||
|
||||
Bugfixes
|
||||
--------
|
||||
|
||||
- Fix adding unrelated candidate names to the plugin loader redirect list.
|
||||
- Strategy - When building the task in the Strategy from the Worker, ensure it is properly marked as finalized and squashed. Addresses an issue with ``ansible_failed_task``. (https://github.com/ansible/ansible/issues/57399)
|
||||
- ansible-pull - Run all playbooks that when multiple are supplied via the command line (https://github.com/ansible/ansible/issues/72708)
|
||||
- find module, fix default pattern when use_regex is true.
|
||||
- AnsibleModule.set_mode_if_different - don't check file existence when check_mode is activated (https://github.com/ansible/ansible/issues/61185).
|
||||
- Apply ``display_failed_stderr`` callback option on loop item results. (https://github.com/ansible/ansible/issues/74864)
|
||||
- Avoid task executor from ending early as vars can come from delegated to host.
|
||||
- ansible-pull - update documentation for ``--directory`` option to clarify path must be absolute.
|
||||
- config, ensure 'quoted' lists from ini or env do not take the quotes literally as part of the list item.
|
||||
- gather_facts, package, service - fix using module_defaults for the modules in addition to the action plugins. (https://github.com/ansible/ansible/issues/72918)
|
||||
- psrp - Always cleanup the last run pipeline if a second pipeline is invoked to avoid violating any resource limits.
|
||||
- psrp - Fix error when resetting a connection that was initialised but not connected - (https://github.com/ansible/ansible/issues/74092).
|
||||
- psrp - Try to clean up any server-side resources when resetting a connection.
|
||||
- roles - make sure argspec validation task is tagged with ``always`` (https://github.com/ansible/ansible/pull/74994).
|
||||
- slurp - Fix error messages for unreadable files and directories (https://github.com/ansible/ansible/issues/67340).
|
||||
- slurp - handle error when ``path`` is a directory and not a file (https://github.com/ansible/ansible/pull/74930).
|
||||
- ssh connection - fix interaction between transfer settings options.
|
||||
- subversion - fix stack trace when getting information about the repository (https://github.com/ansible/ansible/issues/36498)
|
||||
- version test - improve error message when an empty version is provided
|
||||
|
||||
v2.11.0b2
|
||||
=========
|
||||
v2.11.1
|
||||
=======
|
||||
|
||||
Release Summary
|
||||
---------------
|
||||
|
||||
| Release Date: 2021-03-15
|
||||
| Release Date: 2021-05-24
|
||||
| `Porting Guide <https://docs.ansible.com/ansible/devel/porting_guides.html>`__
|
||||
|
||||
|
||||
Minor Changes
|
||||
-------------
|
||||
|
||||
- ansible-test - The generated ``resource_prefix`` variable now meets the host name syntax requirements specified in RFC 1123 and RFC 952. The value used for local tests now places the random number before the hostname component, rather than after. If the resulting value is too long, it will be truncated.
|
||||
- ansible-test validate-modules - option names that seem to indicate they contain secret information that should be marked ``no_log=True`` are now flagged in the validate-modules sanity test. False positives can be marked by explicitly setting ``no_log=False`` for these options in the argument spec. Please note that many false positives are expected; the assumption is that it is by far better to have false positives than false negatives (https://github.com/ansible/ansible/pull/73508).
|
||||
- distribution - add facts about Amazon Linux Distribution facts (https://github.com/ansible/ansible/issues/73742).
|
||||
- module payload builder - module_utils imports in any nested block (eg, ``try``, ``if``) are treated as optional during module payload builds; this allows modules to implement runtime fallback behavior for module_utils that do not exist in older versions of Ansible.
|
||||
- ansible adhoc, clarified the help to some options, also added some comments to code.
|
||||
- command - update the user warning message to point out command name (https://github.com/ansible/ansible/pull/74475).
|
||||
|
||||
Bugfixes
|
||||
--------
|
||||
|
||||
- A handler defined within a role will now search handlers subdir for included tasks (issue https://github.com/ansible/ansible/issues/71222).
|
||||
- ALLOW_WORLD_READABLE_TMP, switched to 'moved' message as 'deprecation' is misleading since config settings still work w/o needing change.
|
||||
- Automatically remove async cache files for polled async tasks that have completed (issue https://github.com/ansible/ansible/issues/73206).
|
||||
- Deal with failures when sorting JSON and you have incompatible key types.
|
||||
- Setup virtualization_facts - add RHV and oVirt type. This change will fully work for VMs in clusters at cluster level 4.4 or newer (https://github.com/ansible/ansible/pull/72876).
|
||||
- [set_fact] Corrected and expanded documentation as well as now raise errors that were previously ignored.
|
||||
- ansible-test - ensure unit test paths for connection and inventory plugins are correctly identified for collections (https://github.com/ansible/ansible/issues/73876).
|
||||
- connection/ssh, ensure parameters come from correct source get_option, so functionality matches docs.
|
||||
- connection/ssh, fix reset to use same parameters to check if socket exists as actually used, was hardcoded to default string construction previouslly.
|
||||
- j2 plugin loader clarified comments, made note with better fqcn detection.
|
||||
- notify keyword is not ignored anymore on import_tasks, also able to apply to blocks now.
|
||||
- restrict module valid JSON parsed output to objects as lists are not valid responses.
|
||||
- setup, don't give up on all local facts gathering if one script file fails.
|
||||
- su become plugin, ensure correct type for localization option.
|
||||
- Add RockyLinux to fact gathering (https://github.com/ansible/ansible/pull/74530).
|
||||
- Improve resilience of ``ansible-galaxy collection`` by increasing the page size to make fewer requests overall and retrying queries with a jittered exponential backoff when rate limiting HTTP codes (520 and 429) occur. (https://github.com/ansible/ansible/issues/74191)
|
||||
- Prevent ``ansible_failed_task`` from further templating (https://github.com/ansible/ansible/issues/74036)
|
||||
- Remove 'default' from ssh plugin as we want to rely on default from ssh itself or ssh/config.
|
||||
- The error message about the failure to import a ``gpg`` key by the ``apt_key`` module was incorrect (https://github.com/ansible/ansible/issues/74423).
|
||||
- ansible-test - Avoid publishing the port used by the ``pypi-test-container`` since it is only accessed by other containers. This avoids issues when trying to run tests in parallel on a single host.
|
||||
- ansible-test - Fix docker container IP address detection. The ``bridge`` network is no longer assumed to be the default.
|
||||
- ansible-test - Use documented API to retrieve build information from Azure Pipelines.
|
||||
- ansible.builtin.cron - Keep non-empty crontabs, when removing cron jobs (https://github.com/ansible/ansible/pull/74497).
|
||||
- ansible.utils.encrypt now handles missing or unusable 'crypt' library.
|
||||
- ansible_test - add constraint for ``MarkupSafe`` (https://github.com/ansible/ansible/pull/74666)
|
||||
- apt_key - Binary GnuPG keys downloaded via URLs were corrupted so GnuPG could not import them (https://github.com/ansible/ansible/issues/74424).
|
||||
- become - fix a regression on Solaris where chmod can return 5 which we interpret as auth failure and stop trying become tmpdir permission fallbacks
|
||||
- become - work around setfacl not existing on modern Solaris (and possibly failing on some filesystems even when it does exist)
|
||||
- callback default, now uses task delegate_to instead of delegate vars to display delegate to host
|
||||
- callbacks, restores missing delegate_vars
|
||||
- correct doc links for become on warnings over world readable settings.
|
||||
- correctly use world readable setting since old constant is not 'settable' anymore.
|
||||
- facts - detect homebrew installed at /opt/homebrew/bin/brew
|
||||
- filter plugins - patch new versions of Jinja2 to prevent warnings/errors on renamed filter decorators (https://github.com/ansible/ansible/issues/74667)
|
||||
- get_url - Fixed checksum validation for binary files (leading asterisk) in checksum files (https://github.com/ansible/ansible/pull/74502).
|
||||
- hostname - Add Rocky Linux support
|
||||
- ini lookup - handle errors for duplicate keys and missing sections (https://github.com/ansible/ansible/issues/74601)
|
||||
- interpreter discovery - Debian 8 and lower will avoid unsupported Python3 version in interpreter discovery
|
||||
- pause - ensure control characters are always set to an appropriate value (https://github.com/ansible/ansible/issues/73264)
|
||||
- playbook loaded from collection subdir now does not ignore subdirs.
|
||||
- plugin config now allows list type options to have multiple valid choices (#74225).
|
||||
- replace - better handling of file operation exceptions (https://github.com/ansible/ansible/pull/74686).
|
||||
- roles - allow for role arg specs in new meta file (https://github.com/ansible/ansible/issues/74525).
|
||||
- service - compare version without LooseVersion API (https://github.com/ansible/ansible/issues/74488).
|
||||
|
||||
v2.11.0b1
|
||||
=========
|
||||
v2.11.0
|
||||
=======
|
||||
|
||||
Release Summary
|
||||
---------------
|
||||
|
||||
| Release Date: 2021-03-02
|
||||
| Release Date: 2021-04-26
|
||||
| `Porting Guide <https://docs.ansible.com/ansible/devel/porting_guides.html>`__
|
||||
|
||||
|
||||
@ -111,6 +133,7 @@ Major Changes
|
||||
-------------
|
||||
|
||||
- A collection can be reinstalled with new version requirements without using the ``--force`` flag. The collection's dependencies will also be updated if necessary with the new requirements. Use ``--upgrade`` to force transitive dependency updates.
|
||||
- AnsibleModule - use ``ArgumentSpecValidator`` class for validating argument spec and remove private methods related to argument spec validation. Any modules using private methods should now use the ``ArgumentSpecValidator`` class or the appropriate validation function.
|
||||
- Declared ``resolvelib >= 0.5.3, < 0.6.0`` a direct dependency of
|
||||
ansible-core. Refs:
|
||||
- https://github.com/sarugaku/resolvelib
|
||||
@ -120,6 +143,7 @@ Major Changes
|
||||
- It became possible to upgrade Ansible collections from Galaxy servers using the ``--upgrade`` option with ``ansible-galaxy collection install``.
|
||||
- Support for role argument specification validation at role execution time. When a role contains an argument spec, an implicit validation task is inserted at the start of role execution.
|
||||
- add ``ArgumentSpecValidator`` class for validating parameters against an argument spec outside of ``AnsibleModule`` (https://github.com/ansible/ansible/pull/73335)
|
||||
- ansible-test - Tests run with the ``centos6`` and ``default`` test containers now use a PyPI proxy container to access PyPI when Python 2.6 is used. This allows tests running under Python 2.6 to continue functioning even though PyPI is discontinuing support for non-SNI capable clients.
|
||||
|
||||
Minor Changes
|
||||
-------------
|
||||
@ -147,6 +171,7 @@ Minor Changes
|
||||
- CLI - Specify jinja version in ``--version`` output
|
||||
- CLI - Specify whether PyYAML includes libyaml support in version output
|
||||
- CLI version displays clarified as core version
|
||||
- Callbacks - Migrate more places in the ``TaskExecutor`` to sending callbacks directly over the queue, instead of sending them as ``TaskResult`` and short circuiting in the Strategy to send the callback. This enables closer to real time callbacks of retries and loop results (https://github.com/ansible/ansible/issues/73899)
|
||||
- Collection routing: Cisco NSO content from community.network migrated to cisco.nso (https://github.com/ansible/ansible/pull/73046).
|
||||
- Collection routing: DellEMC content from community.general migrated to dellemc.openmanage (https://github.com/ansible/ansible/pull/73046).
|
||||
- Collection routing: FortiOS content from community.network migrated to community.fortios (https://github.com/ansible/ansible/pull/73046).
|
||||
@ -200,9 +225,12 @@ Minor Changes
|
||||
- ansible-galaxy - Change the output verbosity level of the download message from 3 to 0 (https://github.com/ansible/ansible/issues/70010)
|
||||
- ansible-galaxy - Ensure ``get_collection_versions`` returns an empty list when a collection does not exist for consistency across API versions.
|
||||
- ansible-galaxy - find any collection dependencies in the globally configured Galaxy servers and not just the server the parent collection is from.
|
||||
- ansible-galaxy CLI - ``collection verify`` command now exits with a non-zero exit code on verification failure
|
||||
- ansible-galaxy CLI - ``collection verify`` command now supports a ``--offline`` option for local-only verification
|
||||
- ansible-test - A warning is no longer emitted when a ``pip*`` or ``python*`` binary is found without a matching couterpart.
|
||||
- ansible-test - Add ``macos/10.15`` as a supported value for the ``--remote`` option.
|
||||
- ansible-test - Add a ``--docker-network`` option to choose the network for running containers when using the ``--docker`` option.
|
||||
- ansible-test - Add constraint for ``decorator`` for Python versions prior to 3.5.
|
||||
- ansible-test - Add support for running tests on Fedora 33 (https://github.com/ansible/ansible/pull/72861).
|
||||
- ansible-test - Added Ubuntu 20.04 LTS image to the default completion list
|
||||
- ansible-test - Added a ``--export`` option to the ``ansible-test coverage combine`` command to facilitate multi-stage aggregation of coverage in CI pipelines.
|
||||
@ -258,9 +286,12 @@ Minor Changes
|
||||
- ansible-test - The ``pylint`` sanity test is now skipped with a warning on Python 3.9 due to unresolved upstream regressions.
|
||||
- ansible-test - The ``pylint`` sanity test is now supported on Python 3.8.
|
||||
- ansible-test - The ``rstcheck`` sanity test is no longer used for collections, but continues to be used for ansible-core.
|
||||
- ansible-test - The generated ``resource_prefix`` variable now meets the host name syntax requirements specified in RFC 1123 and RFC 952. The value used for local tests now places the random number before the hostname component, rather than after. If the resulting value is too long, it will be truncated.
|
||||
- ansible-test - Ubuntu containers as well as ``default-test-container`` and ``ansible-base-test-container`` are now slightly smaller due to apt cleanup (https://github.com/ansible/distro-test-containers/pull/46).
|
||||
- ansible-test - Update ``pylint`` and its dependencies to the latest available versions to support Python 3.9.
|
||||
- ansible-test - Update built-in service endpoints for the ``--remote`` option.
|
||||
- ansible-test - Update distribution test containers from version 2.0.1 to 2.0.2.
|
||||
- ansible-test - Update the Ansible Core and Ansible Collection default test containers to 3.2.0 and 3.2.2 respectively.
|
||||
- ansible-test - Updated the default test containers to version 3.1.0.
|
||||
- ansible-test - Upgrade ansible-runner version used in compatibility tests, remove some tasks that were only needed with older versions, and skip in python2 because ansible-runner is soon dropping it.
|
||||
- ansible-test - Use new endpoint for Parallels based instances with the ``--remote`` option.
|
||||
@ -286,6 +317,7 @@ Minor Changes
|
||||
- ansible-test runtime-metadata - validate removal version numbers, and check removal dates more strictly (https://github.com/ansible/ansible/pull/71679).
|
||||
- ansible-test validate-modules - ensure that removal collection version numbers and version_added collection version numbers conform to the semantic versioning specification at https://semver.org/ (https://github.com/ansible/ansible/pull/71679).
|
||||
- ansible-test validate-modules - no longer assume that ``default`` for ``type=bool`` options is ``false``, as the default is ``none`` and for some modules, ``none`` and ``false`` mean different things (https://github.com/ansible/ansible/issues/69561).
|
||||
- ansible-test validate-modules - option names that seem to indicate they contain secret information that should be marked ``no_log=True`` are now flagged in the validate-modules sanity test. False positives can be marked by explicitly setting ``no_log=False`` for these options in the argument spec. Please note that many false positives are expected; the assumption is that it is by far better to have false positives than false negatives (https://github.com/ansible/ansible/pull/73508).
|
||||
- ansible-test validate-modules - validate removal version numbers (https://github.com/ansible/ansible/pull/71679).
|
||||
- ansible.utils.encrypt now returns `AnsibleError` instead of crypt.crypt's `OSError` on Python 3.9
|
||||
- apt - module now works under any supported Python interpreter
|
||||
@ -303,6 +335,7 @@ Minor Changes
|
||||
- default callback - task name is now shown for ``include_tasks`` when using the ``free`` strategy (https://github.com/ansible/ansible/issues/71277).
|
||||
- default callback - task name is now shown for ``include_tasks`` when using the ``linear`` strategy with ``ANSIBLE_DISPLAY_SKIPPED_HOSTS=0``.
|
||||
- default_callback - moving 'check_mode_markers' documentation in default_callback doc_fragment (https://github.com/ansible-collections/community.general/issues/565).
|
||||
- distribution - add facts about Amazon Linux Distribution facts (https://github.com/ansible/ansible/issues/73742).
|
||||
- distribution - add support for DragonFly distribution (https://github.com/ansible/ansible/issues/43739).
|
||||
- distribution - added distribution fact and hostname support for Parrot OS (https://github.com/ansible/ansible/pull/69158).
|
||||
- distribution - handle NetBSD OS Family (https://github.com/ansible/ansible/issues/43739).
|
||||
@ -328,6 +361,7 @@ Minor Changes
|
||||
- lineinfile - add search_string parameter for non-regexp searching (https://github.com/ansible/ansible/issues/70470)
|
||||
- linux facts - Add additional check to ensure 'container' virtual fact gets added to guest_tech when appropriate (https://github.com/ansible/ansible/pull/71385)
|
||||
- meta - now include a ``skip_reason`` when skipped (https://github.com/ansible/ansible/pull/71355).
|
||||
- module payload builder - module_utils imports in any nested block (eg, ``try``, ``if``) are treated as optional during module payload builds; this allows modules to implement runtime fallback behavior for module_utils that do not exist in older versions of Ansible.
|
||||
- module_utils - ``get_file_attributes()`` now takes an optional ``include_version`` boolean parameter. When ``True`` (default), the file's version/generation number is included in the result (but requires ``lsattr -v`` to work on the target platform).
|
||||
- now !unsafe works on all types of data, not just strings, even recursively for mappings and sequences.
|
||||
- package_facts - module support for apt and rpm now works under any supported Python interpreter
|
||||
@ -338,7 +372,9 @@ Minor Changes
|
||||
- remove ``excommunicate`` debug command from AnsiballZ
|
||||
- selinux - return selinux_getpolicytype facts correctly.
|
||||
- service_facts - return service state information on AIX.
|
||||
- service_facts - return service state information on OpenBSD.
|
||||
- setup - allow list of filters (https://github.com/ansible/ansible/pull/68551).
|
||||
- setup - fix distribution facts for Older Amazon Linux with ``/etc/os-release`` (https://github.com/ansible/ansible/issues/73946).
|
||||
- setup.py - Declare that Python 3.9 is now supported (https://github.com/ansible/ansible/pull/72861).
|
||||
- setup.py - Skip doing conflict checks for ``sdist`` and ``egg_info`` commands (https://github.com/ansible/ansible/pull/71310)
|
||||
- subelements - clarify the lookup plugin documentation for parameter handling (https://github.com/ansible/ansible/issues/38182).
|
||||
@ -396,6 +432,8 @@ Security Fixes
|
||||
Bugfixes
|
||||
--------
|
||||
|
||||
- A handler defined within a role will now search handlers subdir for included tasks (issue https://github.com/ansible/ansible/issues/71222).
|
||||
- ALLOW_WORLD_READABLE_TMP, switched to 'moved' message as 'deprecation' is misleading since config settings still work w/o needing change.
|
||||
- ANSIBLE_COLLECTIONS_PATHS - remove deprecation so that users of Ansible 2.9 and 2.10+ can use the same var when specifying a collection path without a warning.
|
||||
- Added unsafe_writes test.
|
||||
- Address compat with rpmfluff-0.6 for integration tests
|
||||
@ -407,6 +445,7 @@ Bugfixes
|
||||
- Ansible output now uses stdout to determine column width instead of stdin
|
||||
- AnsibleModule - added arg ``ignore_invalid_cwd`` to ``AnsibleModule.run_command()``, to control its behaviour when ``cwd`` is invalid. (https://github.com/ansible/ansible/pull/72390)
|
||||
- Apply ``_wrap_native_text`` only for builtin filters specified in STRING_TYPE_FILTERS.
|
||||
- Automatically remove async cache files for polled async tasks that have completed (issue https://github.com/ansible/ansible/issues/73206).
|
||||
- Be smarter about collection paths ending with ansible_collections, emulating a-galaxy behaviour. Issue 72628
|
||||
- CLI - Restore git information in version output when running from source
|
||||
- Collection callbacks were ignoring options and rules for stdout and adhoc cases.
|
||||
@ -415,6 +454,8 @@ Bugfixes
|
||||
- ConfigManager - Normalize ConfigParser between Python2 and Python3 to for handling comments (https://github.com/ansible/ansible/issues/73709)
|
||||
- Continue execution when 'flatten' filter when it hits a None/null value as part of the list.
|
||||
- Correct the inventory source error parse handling, specifically make the config INVENTORY_ANY_UNPARSED_IS_FAILED work as expected.
|
||||
- Correctly set template_path and template_fullpath for usage in template lookup and action plugins.
|
||||
- Deal with failures when sorting JSON and you have incompatible key types.
|
||||
- Display - Use wcswidth to calculate printable width of a text string (https://github.com/ansible/ansible/issues/63105)
|
||||
- Enabled unsafe_writes for get_url which was ignoring the paramter.
|
||||
- Ensure Ansible's unique filter preserves order (https://github.com/ansible/ansible/issues/63417)
|
||||
@ -425,6 +466,7 @@ Bugfixes
|
||||
- Fix --list-tasks format `role_name : task_name` when task name contains the role name. (https://github.com/ansible/ansible/issues/72505)
|
||||
- Fix ``RecursionError`` when templating large vars structures (https://github.com/ansible/ansible/issues/71920)
|
||||
- Fix ``delegate_facts: true`` when ``ansible_python_interpreter`` is not set. (https://github.com/ansible/ansible/issues/70168)
|
||||
- Fix adding unrelated candidate names to the plugin loader redirect list.
|
||||
- Fix an exit code for a non-failing playbook (https://github.com/ansible/ansible/issues/71306)
|
||||
- Fix ansible-galaxy collection list to show collections in site-packages (https://github.com/ansible/ansible/issues/70147)
|
||||
- Fix bytestring vs string comparison in module_utils.basic.is_special_selinux_path() so that special-cased filesystems which don't support SELinux context attributes still allow files to be manipulated on them. (https://github.com/ansible/ansible/issues/70244)
|
||||
@ -451,6 +493,7 @@ Bugfixes
|
||||
- InventoryManager - Fix unhandled exception when inventory directory was empty or contained empty subdirectories (https://github.com/ansible/ansible/issues/73658).
|
||||
- JSON Encoder - Ensure we treat single vault encrypted values as strings (https://github.com/ansible/ansible/issues/70784)
|
||||
- Lookup user by UID in password database if login name is not found (https://github.com/ansible/ansible/issues/17029)
|
||||
- OpenBSD module_utils - update sysctl variable name
|
||||
- Pass expression in angle-bracket notation as filename argument to a ``compile()`` built-in function, so that Python debuggers do not try to parse it as filename.
|
||||
- Pass the connection's timeout to connection plugins instead of the task's timeout.
|
||||
- Provide more information in AnsibleUndefinedVariable (https://github.com/ansible/ansible/issues/55152)
|
||||
@ -461,9 +504,11 @@ Bugfixes
|
||||
- Restored unsafe_writes functionality which was being skipped.
|
||||
- Restructured pipelining settings to be at the connection plugins leaving base config as global and for backwards compatiblity.
|
||||
- SSH plugin - Improve error message when ssh client is not found on the host
|
||||
- Setup virtualization_facts - add RHV and oVirt type. This change will fully work for VMs in clusters at cluster level 4.4 or newer (https://github.com/ansible/ansible/pull/72876).
|
||||
- Skip invalid collection names when listing in ansible-doc instead of throwing exception. Issue#72257
|
||||
- Skip literal_eval for string filters results in native jinja. (https://github.com/ansible/ansible/issues/70831)
|
||||
- Stop adding the connection variables to the output results
|
||||
- Strategy - When building the task in the Strategy from the Worker, ensure it is properly marked as finalized and squashed. Addresses an issue with ``ansible_failed_task``. (https://github.com/ansible/ansible/issues/57399)
|
||||
- Suppress warning when user directory used in --playbook-dir option with ansible-inventory command (https://github.com/ansible/ansible/issues/65262).
|
||||
- TOML inventory - Ensure we register dump functions for ``AnsibleUnsafe`` to support dumping unsafe values. Note that the TOML format has no functionality to mark that the data is unsafe for re-consumption. (https://github.com/ansible/ansible/issues/71307)
|
||||
- Terminal plugins - add "\e[m" to the list of ANSI sequences stripped from device output
|
||||
@ -471,9 +516,13 @@ Bugfixes
|
||||
- The ``flush()`` method of ``CachePluginAdjudicator`` now calls the plugin's ``flush()`` method instead of iterating over the keys that the adjudicator knows about and deleting those from the cache. (https://github.com/ansible/ansible/issues/68770)
|
||||
- The `ansible_become` value was not being treated as a boolean value when set in an INI format inventory file (fixes bug https://github.com/ansible/ansible/issues/70476).
|
||||
- The machine-readable changelog ``changelogs/changelog.yaml`` is now contained in the release.
|
||||
- Try to avoid kernel 'blocking' state on reading files while fact gathering.
|
||||
- Updated docs and added warning on max_fail_percentage and free strategy usage. fixes issue 16666.
|
||||
- VariableManager - Add the 'vars' key before getting delegated variables (https://github.com/ansible/ansible/issues/71092).
|
||||
- Vault - Allow single vault encrypted values to be used directly as module parameters. (https://github.com/ansible/ansible/issues/68275)
|
||||
- WorkerProcess - Implement workaround for stdout deadlock in multiprocessing shutdown to avoid process hangs.
|
||||
- WorkerProcess - Python 3.5 fix for workaround for stdout deadlock in multiprocessing shutdown to avoid process hangs. (https://github.com/ansible/ansible/issues/74149)
|
||||
- [set_fact] Corrected and expanded documentation as well as now raise errors that were previously ignored.
|
||||
- account for bug in Python 2.6 that occurs during interpreter shutdown to avoid stack trace
|
||||
- action plugins - change all action/module delegations to use FQ names while allowing overrides (https://github.com/ansible/ansible/issues/69788)
|
||||
- add AlmaLinux to fact gathering (https://github.com/ansible/ansible/pull/73458)
|
||||
@ -502,7 +551,9 @@ Bugfixes
|
||||
- ansible-galaxy collection download - fix downloading tar.gz files and collections in git repositories (https://github.com/ansible/ansible/issues/70429)
|
||||
- ansible-galaxy collection install - fix fallback mechanism if the AH server did not have the collection requested - https://github.com/ansible/ansible/issues/70940
|
||||
- ansible-galaxy download - fix bug when downloading a collection in a SCM subdirectory
|
||||
- ansible-pull - Run all playbooks that when multiple are supplied via the command line (https://github.com/ansible/ansible/issues/72708)
|
||||
- ansible-test - Add ``pytest < 6.0.0`` constraint for managed installations on Python 3.x to avoid issues with relative imports.
|
||||
- ansible-test - Add a ``six < 1.14.0`` constraint for Python 2.6.
|
||||
- ansible-test - Always connect additional Docker containers to the network used by the current container (if any).
|
||||
- ansible-test - Always map ``/var/run/docker.sock`` into test containers created by the ``--docker`` option if the docker host is not ``localhost``.
|
||||
- ansible-test - Attempt to detect the Docker hostname instead of assuming ``localhost``.
|
||||
@ -518,10 +569,12 @@ Bugfixes
|
||||
- ansible-test - Skip installing requirements if they are already installed.
|
||||
- ansible-test - Symbolic links are no longer used to inject ``python`` into the environment, since they do not work reliably in all cases. Instead, the existing Python based exec wrapper is always used.
|
||||
- ansible-test - Temporarily limit ``cryptography`` to versions before 3.4 to enable tests to function.
|
||||
- ansible-test - The ``--export`` option for ``ansible-test coverage`` is now limited to the ``combine`` command. It was previously available for reporting commands on which it had no effect.
|
||||
- ansible-test - The ``--raw`` option for ``ansible-test shell --remote`` now uses ``sh`` for the shell instead of ``bash``, which may not be present.
|
||||
- ansible-test - The ``--remote`` option has been updated for Python 2.7 to work around breaking changes in the newly released ``get-pip.py`` bootstrapper.
|
||||
- ansible-test - The ``--remote`` option has been updated to use a versioned ``get-pip.py`` bootstrapper to avoid issues with future releases.
|
||||
- ansible-test - The ``ansible-doc`` sanity test now works for ``netconf`` plugins.
|
||||
- ansible-test - The ``ansible-test coverage combine`` option ``--export`` now exports relative paths. This avoids loss of coverage data when aggregating across systems with different absolute paths. Paths will be converted back to absolute when generating reports.
|
||||
- ansible-test - The ``changelog`` sanity test has been updated to ensure ``rstcheck`` does not load the ``sphinx`` module.
|
||||
- ansible-test - The ``cs`` and ``openshift`` test plugins now search for containers on the current network instead of assuming the ``bridge`` network.
|
||||
- ansible-test - The ``resource_prefix`` variable provided to tests running on Azure Pipelines is now converted to lowercase to match other CI providers.
|
||||
@ -530,6 +583,8 @@ Bugfixes
|
||||
- ansible-test - ``cryptography`` is now limited to versions prior to 3.2 only when an incompatible OpenSSL version (earlier than 1.1.0) is detected
|
||||
- ansible-test - add constraint for ``cffi`` to prevent failure on systems with older versions of ``gcc`` (https://foss.heptapod.net/pypy/cffi/-/issues/480)
|
||||
- ansible-test - convert target paths to unicode on Python 2 to avoid ``UnicodeDecodeError`` (https://github.com/ansible/ansible/issues/68398, https://github.com/ansible/ansible/pull/72623).
|
||||
- ansible-test - ensure the correct unit test target is given when the ``__init__.py`` file is modified inside the connection plugins directory
|
||||
- ansible-test - ensure unit test paths for connection and inventory plugins are correctly identified for collections (https://github.com/ansible/ansible/issues/73876).
|
||||
- ansible-test - improve classification of changes to ``.gitignore``, ``COPYING``, ``LICENSE``, ``Makefile``, and all files ending with one of ``.in`, ``.md`, ``.rst``, ``.toml``, ``.txt`` in the collection root directory (https://github.com/ansible/ansible/pull/72353).
|
||||
- ansible-test - integration and unit test change detection now works for filter, lookup and test plugins
|
||||
- ansible-test now always uses the ``--python`` option for ``virtualenv`` to select the correct interpreter when creating environments with the ``--venv`` option
|
||||
@ -541,9 +596,11 @@ Bugfixes
|
||||
- ansible_pkg_mgr fact - now correctly returns ``atomic_container`` when run on "RHEL for Edge" images and Fedora/RHEL/CentOS Atomic Host (https://github.com/ansible/ansible/issues/73084).
|
||||
- api - time.clock is removed in Python 3.8, add backward compatible code (https://github.com/ansible/ansible/issues/70649).
|
||||
- apt - add ``fail_on_autoremove`` param to apt module to avoid unintended package removals (https://github.com/ansible/ansible/issues/63231)
|
||||
- apt - fix policy_rc_d parameter throwing an exception when restoring original file (https://github.com/ansible/ansible/issues/66211)
|
||||
- apt - include exception message from apt python library in error output
|
||||
- apt_key - Specifying ``file`` as mutually exclusive with ``data``, ``keyserver``, ``url`` (https://github.com/ansible/ansible/pull/70492).
|
||||
- apt_repository - fixes ``mode`` doc to remove ineffective default (https://github.com/ansible/ansible/pull/70319).
|
||||
- argument spec validation - fix behavior of ``apply_defaults=True`` when an empty dictionary is specified for such an option (https://github.com/ansible/ansible/pull/74029).
|
||||
- assemble - fix decrypt argument in the module (https://github.com/ansible/ansible/issues/65450).
|
||||
- async - Fix Python 3 interpreter parsing from module by comparing with bytes (https://github.com/ansible/ansible/issues/70690)
|
||||
- async_wrapper - Fix race condition when ``~/.ansible_async`` folder tries to be created by multiple async tasks at the same time - https://github.com/ansible/ansible/issues/59306
|
||||
@ -556,8 +613,11 @@ Bugfixes
|
||||
- clarified changed status to reflect existing rule that had never been written down.
|
||||
- collection loader - fix bogus code coverage entries for synthetic packages
|
||||
- collection metadata - ensure collection loader uses libyaml/CSafeLoader to parse collection metadata if available
|
||||
- connection/ssh, ensure parameters come from correct source get_option, so functionality matches docs.
|
||||
- connection/ssh, fix reset to use same parameters to check if socket exists as actually used, was hardcoded to default string construction previouslly.
|
||||
- cron - cron file should not be empty after adding var (https://github.com/ansible/ansible/pull/71207)
|
||||
- cron - encode and decode crontab files in UTF-8 explicitly to allow non-ascii chars in cron filepath and job (https://github.com/ansible/ansible/issues/69492)
|
||||
- debug action, prevent setting facts when displaying ansible_facts.
|
||||
- default callback - Ensure that the ``host_pinned`` strategy is not treated as lockstep (https://github.com/ansible/ansible/issues/73364)
|
||||
- delegate_to - Ensure that calculating ``delegate_to`` vars with a loop uses the correct context to correctly evaluate the loop (https://github.com/ansible/ansible/issues/37132)
|
||||
- display correct error information when an error exists in the last line of the file (https://github.com/ansible/ansible/issues/16456)
|
||||
@ -578,6 +638,7 @@ Bugfixes
|
||||
- file - the module should warn in check_mode when path an owner/group don't exist (https://github.com/ansible/ansible/issues/67307).
|
||||
- find module - Don't treat empty excludes as a match (https://github.com/ansible/ansible/issues/70640)
|
||||
- find module - Stop traversing directories past the requested depth. (https://github.com/ansible/ansible/issues/73627)
|
||||
- find module, fix default pattern when use_regex is true.
|
||||
- fix issue with inventory_hostname and delegated host vars mixing on connection settings.
|
||||
- fortimanager httpapi plugin - fix redirect to point to the ``fortinet.fortimanager`` collection (https://github.com/ansible/ansible/pull/71073).
|
||||
- galaxy - handle plus sign in user token appearing in role url (https://github.com/ansible/ansible/issues/45475).
|
||||
@ -595,15 +656,18 @@ Bugfixes
|
||||
- inventory plugins - Let plugins define the sanitization method for the constructed ``groups`` feature.
|
||||
- inventory_hostnames - Use ``InventoryManager`` instead of trying to replicate its behavior (https://github.com/ansible/ansible/issues/17268)
|
||||
- is_string/vault - Ensure the is_string helper properly identifies AnsibleVaultEncryptedUnicode as a string (https://github.com/ansible/ansible/pull/71609)
|
||||
- j2 plugin loader clarified comments, made note with better fqcn detection.
|
||||
- lineinfile - fix not subscriptable error in exception handling around file creation
|
||||
- linux network facts - get the correct value for broadcast address (https://github.com/ansible/ansible/issues/64384)
|
||||
- native jinja2 types - properly handle Undefined in nested data.
|
||||
- notify keyword is not ignored anymore on import_tasks, also able to apply to blocks now.
|
||||
- package - use list of built in package managers from facts rather than creating a new list
|
||||
- paramiko connection plugin - Ensure we only reset the connection when one has been previously established (https://github.com/ansible/ansible/issues/65812)
|
||||
- password hashing - Ensure we validate salts against allowed characters and length when using ``crypt`` (https://github.com/ansible/ansible/issues/71107)
|
||||
- password lookup - Try to automatically generate salts using known salt sizes (https://github.com/ansible/ansible/issues/53750)
|
||||
- pause - Fix indefinite hang when using a pause task on a background process (https://github.com/ansible/ansible/issues/32142)
|
||||
- pause - catch additional error on setting up curses (https://github.com/ansible/ansible/pull/73588).
|
||||
- pause - do not accept enter to continue when a timeout is set (https://github.com/ansible/ansible/issues/73948)
|
||||
- pause - do not warn when running in the background if a timeout is provided (https://github.com/ansible/ansible/issues/73042)
|
||||
- pause - handle exception when there is no stdout (https://github.com/ansible/ansible/pull/47851)
|
||||
- powershell - fix escaping of strings that broken modules like fetch when dealing with special chars - https://github.com/ansible/ansible/issues/62781
|
||||
@ -616,15 +680,19 @@ Bugfixes
|
||||
- remove contradictory recomendation from template docs. https://github.com/ansible/ansible/issues/63484
|
||||
- remove redundant remote_user setting in play_context for local as plugin already does it, also removes fork/thread issue from use of pwd library.
|
||||
- reset logging level to INFO due to CVE-2019-14846.
|
||||
- restrict module valid JSON parsed output to objects as lists are not valid responses.
|
||||
- runas - create a new token when running as ``SYSTEM`` to ensure it has the full privileges assigned to that account
|
||||
- service - Fix for the BSD rcconf code using a Python 2 specific string replace function
|
||||
- set_mode_if_different - handle symlink if it is inside a directory with sticky bit set (https://github.com/ansible/ansible/pull/45198)
|
||||
- setup module, fix error handling on bad subset given
|
||||
- setup, don't give up on all local facts gathering if one script file fails.
|
||||
- several fixes to make apt_key better at identifying needs for change and also to avoid changes in check_mode.
|
||||
- shell - fix quoting of mkdir command in creation of remote_tmp in order to allow spaces and other special characters (https://github.com/ansible/ansible/issues/69577).
|
||||
- splunk httpapi plugin - switch from splunk.enterprise_security to splunk.es in runtime.yml to reflect upstream change of Collection Name
|
||||
- ssh connection plugin - use ``get_option()`` rather than ``_play_context`` to ensure ``ANSBILE_SSH_ARGS`` are applied properly (https://github.com/ansible/ansible/issues/70437)
|
||||
- stat - handle colons in filename while parsing the mimetype output (https://github.com/ansible/ansible/issues/70256).
|
||||
- strftime filter - Input epoch is allowed to be a float (https://github.com/ansible/ansible/issues/71257)
|
||||
- su become plugin, ensure correct type for localization option.
|
||||
- systemd - account for templated unit files using ``@`` when searching for the unit file (https://github.com/ansible/ansible/pull/72347#issuecomment-730626228)
|
||||
- systemd - fixed chroot usage on new versions of systemd, that broke because of upstream changes in systemctl output
|
||||
- systemd - follow up fix to https://github.com/ansible/ansible/issues/72338 to use ``list-unit-files`` rather than ``list-units`` in order to show all units files on the system.
|
||||
@ -650,6 +718,7 @@ Bugfixes
|
||||
- vault - Support reading raw binary data from stdin under python3
|
||||
- virtual facts - kubevirt is now identified as "KubeVirt" and with a "guest" role instead of "kvm" and "host" role (https://github.com/ansible/ansible/issues/72001).
|
||||
- wait_for - catch and ignore errors when getting active connections with psutil (https://github.com/ansible/ansible/issues/72322)
|
||||
- wait_for module, move missing socket into function to get proper comparrison in time.
|
||||
- win setup - Fix redirection path for the windows setup module
|
||||
- windows async - use full path when calling PowerShell to reduce reliance on environment vars being correct - https://github.com/ansible/ansible/issues/70655
|
||||
- winrm - preserve winrm forensic data on put_file failures
|
||||
|
||||
@ -1,5 +1,32 @@
|
||||
ancestor: 2.10.0
|
||||
releases:
|
||||
2.11.0:
|
||||
changes:
|
||||
bugfixes:
|
||||
- ansible-test - ensure the correct unit test target is given when the ``__init__.py``
|
||||
file is modified inside the connection plugins directory
|
||||
major_changes:
|
||||
- ansible-test - Tests run with the ``centos6`` and ``default`` test containers
|
||||
now use a PyPI proxy container to access PyPI when Python 2.6 is used. This
|
||||
allows tests running under Python 2.6 to continue functioning even though
|
||||
PyPI is discontinuing support for non-SNI capable clients.
|
||||
minor_changes:
|
||||
- ansible-test - Update distribution test containers from version 2.0.1 to 2.0.2.
|
||||
- ansible-test - Update the Ansible Core and Ansible Collection default test
|
||||
containers to 3.2.0 and 3.2.2 respectively.
|
||||
release_summary: '| Release Date: 2021-04-26
|
||||
|
||||
| `Porting Guide <https://docs.ansible.com/ansible/devel/porting_guides.html>`__
|
||||
|
||||
'
|
||||
codename: Hey Hey, What Can I Do
|
||||
fragments:
|
||||
- ansible-test-connection-units-init.yml
|
||||
- ansible-test-default-containers-3.2.yml
|
||||
- ansible-test-distro-containers-2.0.2.yml
|
||||
- ansible-test-pypi-test-container.yml
|
||||
- v2.11.0_summary.yaml
|
||||
release_date: '2021-04-26'
|
||||
2.11.0b1:
|
||||
changes:
|
||||
breaking_changes:
|
||||
@ -1586,3 +1613,264 @@ releases:
|
||||
- v2.11.0b4_summary.yaml
|
||||
- wait_for_fix.yml
|
||||
release_date: '2021-03-29'
|
||||
2.11.0rc1:
|
||||
changes:
|
||||
bugfixes:
|
||||
- OpenBSD module_utils - update sysctl variable name
|
||||
- WorkerProcess - Implement workaround for stdout deadlock in multiprocessing
|
||||
shutdown to avoid process hangs.
|
||||
- ansible-test - Add a ``six < 1.14.0`` constraint for Python 2.6.
|
||||
- ansible-test - The ``--export`` option for ``ansible-test coverage`` is now
|
||||
limited to the ``combine`` command. It was previously available for reporting
|
||||
commands on which it had no effect.
|
||||
- ansible-test - The ``ansible-test coverage combine`` option ``--export`` now
|
||||
exports relative paths. This avoids loss of coverage data when aggregating
|
||||
across systems with different absolute paths. Paths will be converted back
|
||||
to absolute when generating reports.
|
||||
- debug action, prevent setting facts when displaying ansible_facts.
|
||||
minor_changes:
|
||||
- ansible-test - Add constraint for ``decorator`` for Python versions prior
|
||||
to 3.5.
|
||||
- service_facts - return service state information on OpenBSD.
|
||||
release_summary: '| Release Date: 2021-04-05
|
||||
|
||||
| `Porting Guide <https://docs.ansible.com/ansible/devel/porting_guides.html>`__
|
||||
|
||||
'
|
||||
codename: Hey Hey, What Can I Do
|
||||
fragments:
|
||||
- ansible-test-decorator-constraint.yml
|
||||
- ansible-test-fix-coverage-export.yml
|
||||
- ansible-test-six.yml
|
||||
- debug_dont_set_facts.yml
|
||||
- openbsd-service.yml
|
||||
- openbsd-sysutil.yml
|
||||
- v2.11.0rc1_summary.yaml
|
||||
- workerprocess-stdout-deadlock.yml
|
||||
release_date: '2021-04-05'
|
||||
2.11.0rc2:
|
||||
changes:
|
||||
bugfixes:
|
||||
- WorkerProcess - Python 3.5 fix for workaround for stdout deadlock in multiprocessing
|
||||
shutdown to avoid process hangs. (https://github.com/ansible/ansible/issues/74149)
|
||||
release_summary: '| Release Date: 2021-04-06
|
||||
|
||||
| `Porting Guide <https://docs.ansible.com/ansible/devel/porting_guides.html>`__
|
||||
|
||||
'
|
||||
codename: Hey Hey, What Can I Do
|
||||
fragments:
|
||||
- fix-for-workerprocess-stdout-deadlock-fix.yml
|
||||
- v2.11.0rc2_summary.yaml
|
||||
release_date: '2021-04-06'
|
||||
2.11.1:
|
||||
changes:
|
||||
release_summary: '| Release Date: 2021-05-24
|
||||
|
||||
| `Porting Guide <https://docs.ansible.com/ansible/devel/porting_guides.html>`__
|
||||
|
||||
'
|
||||
codename: Hey Hey, What Can I Do
|
||||
fragments:
|
||||
- v2.11.1_summary.yaml
|
||||
release_date: '2021-05-24'
|
||||
2.11.1rc1:
|
||||
changes:
|
||||
bugfixes:
|
||||
- Add RockyLinux to fact gathering (https://github.com/ansible/ansible/pull/74530).
|
||||
- Improve resilience of ``ansible-galaxy collection`` by increasing the page
|
||||
size to make fewer requests overall and retrying queries with a jittered exponential
|
||||
backoff when rate limiting HTTP codes (520 and 429) occur. (https://github.com/ansible/ansible/issues/74191)
|
||||
- Prevent ``ansible_failed_task`` from further templating (https://github.com/ansible/ansible/issues/74036)
|
||||
- Remove 'default' from ssh plugin as we want to rely on default from ssh itself
|
||||
or ssh/config.
|
||||
- The error message about the failure to import a ``gpg`` key by the ``apt_key``
|
||||
module was incorrect (https://github.com/ansible/ansible/issues/74423).
|
||||
- ansible-test - Avoid publishing the port used by the ``pypi-test-container``
|
||||
since it is only accessed by other containers. This avoids issues when trying
|
||||
to run tests in parallel on a single host.
|
||||
- ansible-test - Fix docker container IP address detection. The ``bridge`` network
|
||||
is no longer assumed to be the default.
|
||||
- ansible-test - Use documented API to retrieve build information from Azure
|
||||
Pipelines.
|
||||
- ansible.builtin.cron - Keep non-empty crontabs, when removing cron jobs (https://github.com/ansible/ansible/pull/74497).
|
||||
- ansible.utils.encrypt now handles missing or unusable 'crypt' library.
|
||||
- ansible_test - add constraint for ``MarkupSafe`` (https://github.com/ansible/ansible/pull/74666)
|
||||
- apt_key - Binary GnuPG keys downloaded via URLs were corrupted so GnuPG could
|
||||
not import them (https://github.com/ansible/ansible/issues/74424).
|
||||
- become - fix a regression on Solaris where chmod can return 5 which we interpret
|
||||
as auth failure and stop trying become tmpdir permission fallbacks
|
||||
- become - work around setfacl not existing on modern Solaris (and possibly
|
||||
failing on some filesystems even when it does exist)
|
||||
- callback default, now uses task delegate_to instead of delegate vars to display
|
||||
delegate to host
|
||||
- callbacks, restores missing delegate_vars
|
||||
- correct doc links for become on warnings over world readable settings.
|
||||
- correctly use world readable setting since old constant is not 'settable'
|
||||
anymore.
|
||||
- facts - detect homebrew installed at /opt/homebrew/bin/brew
|
||||
- filter plugins - patch new versions of Jinja2 to prevent warnings/errors on
|
||||
renamed filter decorators (https://github.com/ansible/ansible/issues/74667)
|
||||
- get_url - Fixed checksum validation for binary files (leading asterisk) in
|
||||
checksum files (https://github.com/ansible/ansible/pull/74502).
|
||||
- hostname - Add Rocky Linux support
|
||||
- ini lookup - handle errors for duplicate keys and missing sections (https://github.com/ansible/ansible/issues/74601)
|
||||
- interpreter discovery - Debian 8 and lower will avoid unsupported Python3
|
||||
version in interpreter discovery
|
||||
- pause - ensure control characters are always set to an appropriate value (https://github.com/ansible/ansible/issues/73264)
|
||||
- playbook loaded from collection subdir now does not ignore subdirs.
|
||||
- plugin config now allows list type options to have multiple valid choices
|
||||
(#74225).
|
||||
- replace - better handling of file operation exceptions (https://github.com/ansible/ansible/pull/74686).
|
||||
- roles - allow for role arg specs in new meta file (https://github.com/ansible/ansible/issues/74525).
|
||||
- service - compare version without LooseVersion API (https://github.com/ansible/ansible/issues/74488).
|
||||
minor_changes:
|
||||
- ansible adhoc, clarified the help to some options, also added some comments
|
||||
to code.
|
||||
- command - update the user warning message to point out command name (https://github.com/ansible/ansible/pull/74475).
|
||||
release_summary: '| Release Date: 2021-05-17
|
||||
|
||||
| `Porting Guide <https://docs.ansible.com/ansible/devel/porting_guides.html>`__
|
||||
|
||||
'
|
||||
codename: Hey Hey, What Can I Do
|
||||
fragments:
|
||||
- 73264-pause-emacs.yml
|
||||
- 73887.mac-m1-homebrew.yaml
|
||||
- 74036-unsafe-ansible_failed_task.yml
|
||||
- 74240-ansible-galaxy-increase-pagesize-and-handle-throttling.yml
|
||||
- 74474-apt_key-gpg-binary-import.yaml
|
||||
- 74476-apt_key-gpg-inline-data.yaml
|
||||
- 74488_solaris_looseversion.yml
|
||||
- 74497-keep-non-empty-crontabs.yml
|
||||
- 74502-get_url-filx-checksum-binary.yml
|
||||
- 74582-role-argspec-new-file.yml
|
||||
- 74601-ini-lookup-handle-errors.yml
|
||||
- 74686-replace-handle-file-exc.yml
|
||||
- adhoc_help_clarify.yml
|
||||
- allow_lists_of_config_choices.yml
|
||||
- ansible-test-azp-build-api.yml
|
||||
- ansible-test-docker-network-detect.yml
|
||||
- ansible-test-markupsafe-constraint.yml
|
||||
- ansible-test-pypi-container-no-publish.yml
|
||||
- cmd_wording.yml
|
||||
- coll_pb_subdir_fixes.yml
|
||||
- crypt_missing.yml
|
||||
- debian8_discovery.yml
|
||||
- jinja2_decorator_renames.yml
|
||||
- macos-solaris-regression.yml
|
||||
- missing_delegate_vars.yml
|
||||
- solaris-setfacl-chmod-fallback.yml
|
||||
- ssh_port_default_fix.yml
|
||||
- support_rocky_linux_hostname.yml
|
||||
- support_rockylinux.yml
|
||||
- v2.11.1rc1_summary.yaml
|
||||
- world_readable_fixes.yml
|
||||
release_date: '2021-05-17'
|
||||
2.11.2:
|
||||
changes:
|
||||
release_summary: '| Release Date: 2021-06-22
|
||||
|
||||
| `Porting Guide <https://docs.ansible.com/ansible/devel/porting_guides.html>`__
|
||||
|
||||
'
|
||||
codename: Hey Hey, What Can I Do
|
||||
fragments:
|
||||
- v2.11.2_summary.yaml
|
||||
release_date: '2021-06-22'
|
||||
2.11.2rc1:
|
||||
changes:
|
||||
bugfixes:
|
||||
- AnsibleModule.set_mode_if_different - don't check file existence when check_mode
|
||||
is activated (https://github.com/ansible/ansible/issues/61185).
|
||||
- Apply ``display_failed_stderr`` callback option on loop item results. (https://github.com/ansible/ansible/issues/74864)
|
||||
- Avoid task executor from ending early as vars can come from delegated to host.
|
||||
- ansible-pull - update documentation for ``--directory`` option to clarify
|
||||
path must be absolute.
|
||||
- config, ensure 'quoted' lists from ini or env do not take the quotes literally
|
||||
as part of the list item.
|
||||
- gather_facts, package, service - fix using module_defaults for the modules
|
||||
in addition to the action plugins. (https://github.com/ansible/ansible/issues/72918)
|
||||
- psrp - Always cleanup the last run pipeline if a second pipeline is invoked
|
||||
to avoid violating any resource limits.
|
||||
- psrp - Fix error when resetting a connection that was initialised but not
|
||||
connected - (https://github.com/ansible/ansible/issues/74092).
|
||||
- psrp - Try to clean up any server-side resources when resetting a connection.
|
||||
- roles - make sure argspec validation task is tagged with ``always`` (https://github.com/ansible/ansible/pull/74994).
|
||||
- slurp - Fix error messages for unreadable files and directories (https://github.com/ansible/ansible/issues/67340).
|
||||
- slurp - handle error when ``path`` is a directory and not a file (https://github.com/ansible/ansible/pull/74930).
|
||||
- ssh connection - fix interaction between transfer settings options.
|
||||
- subversion - fix stack trace when getting information about the repository
|
||||
(https://github.com/ansible/ansible/issues/36498)
|
||||
- version test - improve error message when an empty version is provided
|
||||
release_summary: '| Release Date: 2021-06-14
|
||||
|
||||
| `Porting Guide <https://docs.ansible.com/ansible/devel/porting_guides.html>`__
|
||||
|
||||
'
|
||||
security_fixes:
|
||||
- templating engine fix for not preserving usnafe status when trying to preserve
|
||||
newlines. CVE-2021-3583
|
||||
codename: Hey Hey, What Can I Do
|
||||
fragments:
|
||||
- 36498-subversion-fix-info-parsing.yml
|
||||
- 61185-basic.py-fix-check_mode.yaml
|
||||
- 67340-slurp_error_message.yml
|
||||
- 73864-action-plugin-module-defaults.yml
|
||||
- 74864-display_failed_stderr-per-item.yml
|
||||
- ansible-pull-doc-update.yml
|
||||
- config_lists_unquote.yml
|
||||
- delegate_te_fix.yml
|
||||
- fix_scp_ssh_settings.yml
|
||||
- fix_unsafe_newline.yml
|
||||
- psrp-cleanup.yml
|
||||
- psrp-reset.yml
|
||||
- role_argspec_tagged_always.yml
|
||||
- slurp-handle-error-with-dir.yml
|
||||
- v2.11.2rc1_summary.yaml
|
||||
- version_compare-error-on-empty.yml
|
||||
release_date: '2021-06-14'
|
||||
2.11.3rc1:
|
||||
changes:
|
||||
bugfixes:
|
||||
- Add unicode support to ``ansible-inventory`` CLI (https://github.com/ansible/ansible/issues/57378)
|
||||
- Ensure we get full path for extra vars into cliargs to avoid realpath issues
|
||||
after initial load.
|
||||
- ansible-doc - in text output, do not show empty ``version_added_collection``
|
||||
values (https://github.com/ansible/ansible/pull/74999).
|
||||
- ansible-test - restrict ``packaging`` to ``< 21.0`` for Python ``< 3.6`` (https://github.com/ansible/ansible/pull/75186).
|
||||
- command - remove unreachable code path when trying to convert the value for
|
||||
``chdir`` to bytes (https://github.com/ansible/ansible/pull/75036)
|
||||
- module_common - handle exception when multiple workers try to create the cache
|
||||
directory
|
||||
- roles - make sure argspec validation task templates suboptions (https://github.com/ansible/ansible/issues/75070).
|
||||
- slurp - improve the logic in the error handling and remove ``os.stat()`` call
|
||||
(https://github.com/ansible/ansible/pull/75038)
|
||||
- ssh_connection - rename ``retries`` to ``reconnection_retries`` to avoid conflicts
|
||||
with task vars (https://github.com/ansible/ansible/issues/75142).
|
||||
- ssh_connection - set the default for ``reconnection_retries`` back to ``0``
|
||||
(https://github.com/ansible/ansible/issues/75142).
|
||||
- task_executor/ssh_connection - use the ``retries`` value from ``ssh_connection``
|
||||
settings, not the default from the ``Task`` field attributes (https://github.com/ansible/ansible/issues/75142).
|
||||
minor_changes:
|
||||
- ansible-test - aws creates and exposes a new tiny_prefix variable to provide
|
||||
a shorter prefix for the AWS tests.
|
||||
release_summary: '| Release Date: 2021-07-13
|
||||
|
||||
| `Porting Guide <https://docs.ansible.com/ansible/devel/porting_guides.html>`__
|
||||
|
||||
'
|
||||
codename: Hey Hey, What Can I Do
|
||||
fragments:
|
||||
- 57378-inventory-cli-unicode.yml
|
||||
- 74999-ansible-doc-version_added_collection.yml
|
||||
- 75073-role-argspec-suboption-variables.yaml
|
||||
- 75142-ssh-retries-collision.yml
|
||||
- 75186-ansible-test-packaging-constraint.yml
|
||||
- aws_tiny_prefix.yaml
|
||||
- command-remove-unreachable-code.yml
|
||||
- concurrency-cache-dir-collision.yml
|
||||
- extra_vars_unfrack.yml
|
||||
- slurp-improve-error-handling-readability.yml
|
||||
- v2.11.3rc1_summary.yaml
|
||||
release_date: '2021-07-13'
|
||||
|
||||
@ -0,0 +1,2 @@
|
||||
bugfixes:
|
||||
- subversion - fix stack trace when getting information about the repository (https://github.com/ansible/ansible/issues/36498)
|
||||
2
changelogs/fragments/57378-inventory-cli-unicode.yml
Normal file
2
changelogs/fragments/57378-inventory-cli-unicode.yml
Normal file
@ -0,0 +1,2 @@
|
||||
bugfixes:
|
||||
- Add unicode support to ``ansible-inventory`` CLI (https://github.com/ansible/ansible/issues/57378)
|
||||
2
changelogs/fragments/61185-basic.py-fix-check_mode.yaml
Normal file
2
changelogs/fragments/61185-basic.py-fix-check_mode.yaml
Normal file
@ -0,0 +1,2 @@
|
||||
bugfixes:
|
||||
- AnsibleModule.set_mode_if_different - don't check file existence when check_mode is activated (https://github.com/ansible/ansible/issues/61185).
|
||||
2
changelogs/fragments/67340-slurp_error_message.yml
Normal file
2
changelogs/fragments/67340-slurp_error_message.yml
Normal file
@ -0,0 +1,2 @@
|
||||
bugfixes:
|
||||
- "slurp - Fix error messages for unreadable files and directories (https://github.com/ansible/ansible/issues/67340)."
|
||||
2
changelogs/fragments/73264-pause-emacs.yml
Normal file
2
changelogs/fragments/73264-pause-emacs.yml
Normal file
@ -0,0 +1,2 @@
|
||||
bugfixes:
|
||||
- pause - ensure control characters are always set to an appropriate value (https://github.com/ansible/ansible/issues/73264)
|
||||
@ -0,0 +1,2 @@
|
||||
bugfixes:
|
||||
- gather_facts, package, service - fix using module_defaults for the modules in addition to the action plugins. (https://github.com/ansible/ansible/issues/72918)
|
||||
3
changelogs/fragments/73887.mac-m1-homebrew.yaml
Normal file
3
changelogs/fragments/73887.mac-m1-homebrew.yaml
Normal file
@ -0,0 +1,3 @@
|
||||
---
|
||||
bugfixes:
|
||||
- facts - detect homebrew installed at /opt/homebrew/bin/brew
|
||||
@ -0,0 +1,2 @@
|
||||
bugfixes:
|
||||
- Prevent ``ansible_failed_task`` from further templating (https://github.com/ansible/ansible/issues/74036)
|
||||
@ -0,0 +1,6 @@
|
||||
bugfixes:
|
||||
- >-
|
||||
Improve resilience of ``ansible-galaxy collection`` by increasing the page
|
||||
size to make fewer requests overall and retrying queries with a jittered
|
||||
exponential backoff when rate limiting HTTP codes (520 and 429) occur.
|
||||
(https://github.com/ansible/ansible/issues/74191)
|
||||
@ -0,0 +1,2 @@
|
||||
bugfixes:
|
||||
- apt_key - Binary GnuPG keys downloaded via URLs were corrupted so GnuPG could not import them (https://github.com/ansible/ansible/issues/74424).
|
||||
2
changelogs/fragments/74476-apt_key-gpg-inline-data.yaml
Normal file
2
changelogs/fragments/74476-apt_key-gpg-inline-data.yaml
Normal file
@ -0,0 +1,2 @@
|
||||
bugfixes:
|
||||
- The error message about the failure to import a ``gpg`` key by the ``apt_key`` module was incorrect (https://github.com/ansible/ansible/issues/74423).
|
||||
2
changelogs/fragments/74488_solaris_looseversion.yml
Normal file
2
changelogs/fragments/74488_solaris_looseversion.yml
Normal file
@ -0,0 +1,2 @@
|
||||
bugfixes:
|
||||
- service - compare version without LooseVersion API (https://github.com/ansible/ansible/issues/74488).
|
||||
3
changelogs/fragments/74497-keep-non-empty-crontabs.yml
Normal file
3
changelogs/fragments/74497-keep-non-empty-crontabs.yml
Normal file
@ -0,0 +1,3 @@
|
||||
bugfixes:
|
||||
- ansible.builtin.cron - Keep non-empty crontabs, when removing cron jobs
|
||||
(https://github.com/ansible/ansible/pull/74497).
|
||||
@ -0,0 +1,2 @@
|
||||
bugfixes:
|
||||
- get_url - Fixed checksum validation for binary files (leading asterisk) in checksum files (https://github.com/ansible/ansible/pull/74502).
|
||||
2
changelogs/fragments/74582-role-argspec-new-file.yml
Normal file
2
changelogs/fragments/74582-role-argspec-new-file.yml
Normal file
@ -0,0 +1,2 @@
|
||||
bugfixes:
|
||||
- roles - allow for role arg specs in new meta file (https://github.com/ansible/ansible/issues/74525).
|
||||
2
changelogs/fragments/74601-ini-lookup-handle-errors.yml
Normal file
2
changelogs/fragments/74601-ini-lookup-handle-errors.yml
Normal file
@ -0,0 +1,2 @@
|
||||
bugfixes:
|
||||
- ini lookup - handle errors for duplicate keys and missing sections (https://github.com/ansible/ansible/issues/74601)
|
||||
2
changelogs/fragments/74686-replace-handle-file-exc.yml
Normal file
2
changelogs/fragments/74686-replace-handle-file-exc.yml
Normal file
@ -0,0 +1,2 @@
|
||||
bugfixes:
|
||||
- replace - better handling of file operation exceptions (https://github.com/ansible/ansible/pull/74686).
|
||||
@ -0,0 +1,2 @@
|
||||
bugfixes:
|
||||
- Apply ``display_failed_stderr`` callback option on loop item results. (https://github.com/ansible/ansible/issues/74864)
|
||||
@ -0,0 +1,2 @@
|
||||
bugfixes:
|
||||
- "ansible-doc - in text output, do not show empty ``version_added_collection`` values (https://github.com/ansible/ansible/pull/74999)."
|
||||
@ -0,0 +1,2 @@
|
||||
bugfixes:
|
||||
- roles - make sure argspec validation task templates suboptions (https://github.com/ansible/ansible/issues/75070).
|
||||
7
changelogs/fragments/75142-ssh-retries-collision.yml
Normal file
7
changelogs/fragments/75142-ssh-retries-collision.yml
Normal file
@ -0,0 +1,7 @@
|
||||
bugfixes:
|
||||
- >-
|
||||
task_executor/ssh_connection - use the ``retries`` value from ``ssh_connection`` settings,
|
||||
not the default from the ``Task`` field attributes (https://github.com/ansible/ansible/issues/75142).
|
||||
|
||||
- ssh_connection - set the default for ``reconnection_retries`` back to ``0`` (https://github.com/ansible/ansible/issues/75142).
|
||||
- ssh_connection - rename ``retries`` to ``reconnection_retries`` to avoid conflicts with task vars (https://github.com/ansible/ansible/issues/75142).
|
||||
@ -0,0 +1,2 @@
|
||||
bugfixes:
|
||||
- "ansible-test - restrict ``packaging`` to ``< 21.0`` for Python ``< 3.6`` (https://github.com/ansible/ansible/pull/75186)."
|
||||
2
changelogs/fragments/adhoc_help_clarify.yml
Normal file
2
changelogs/fragments/adhoc_help_clarify.yml
Normal file
@ -0,0 +1,2 @@
|
||||
minor_changes:
|
||||
- ansible adhoc, clarified the help to some options, also added some comments to code.
|
||||
2
changelogs/fragments/allow_lists_of_config_choices.yml
Normal file
2
changelogs/fragments/allow_lists_of_config_choices.yml
Normal file
@ -0,0 +1,2 @@
|
||||
bugfixes:
|
||||
- plugin config now allows list type options to have multiple valid choices (#74225).
|
||||
2
changelogs/fragments/ansible-pull-doc-update.yml
Normal file
2
changelogs/fragments/ansible-pull-doc-update.yml
Normal file
@ -0,0 +1,2 @@
|
||||
bugfixes:
|
||||
- ansible-pull - update documentation for ``--directory`` option to clarify path must be absolute.
|
||||
2
changelogs/fragments/ansible-test-azp-build-api.yml
Normal file
2
changelogs/fragments/ansible-test-azp-build-api.yml
Normal file
@ -0,0 +1,2 @@
|
||||
bugfixes:
|
||||
- ansible-test - Use documented API to retrieve build information from Azure Pipelines.
|
||||
@ -0,0 +1,4 @@
|
||||
bugfixes:
|
||||
- >-
|
||||
ansible-test - ensure the correct unit test target is given when the
|
||||
``__init__.py`` file is modified inside the connection plugins directory
|
||||
@ -0,0 +1,2 @@
|
||||
minor_changes:
|
||||
- ansible-test - Add constraint for ``decorator`` for Python versions prior to 3.5.
|
||||
@ -0,0 +1,2 @@
|
||||
minor_changes:
|
||||
- ansible-test - Update the Ansible Core and Ansible Collection default test containers to 3.2.0 and 3.2.2 respectively.
|
||||
@ -0,0 +1,2 @@
|
||||
minor_changes:
|
||||
- ansible-test - Update distribution test containers from version 2.0.1 to 2.0.2.
|
||||
@ -0,0 +1,2 @@
|
||||
bugfixes:
|
||||
- ansible-test - Fix docker container IP address detection. The ``bridge`` network is no longer assumed to be the default.
|
||||
@ -0,0 +1,2 @@
|
||||
bugfixes:
|
||||
- ansible_test - add constraint for ``MarkupSafe`` (https://github.com/ansible/ansible/pull/74666)
|
||||
@ -0,0 +1,3 @@
|
||||
bugfixes:
|
||||
- ansible-test - Avoid publishing the port used by the ``pypi-test-container`` since it is only accessed by other containers.
|
||||
This avoids issues when trying to run tests in parallel on a single host.
|
||||
@ -0,0 +1,3 @@
|
||||
major_changes:
|
||||
- ansible-test - Tests run with the ``centos6`` and ``default`` test containers now use a PyPI proxy container to access PyPI when Python 2.6 is used.
|
||||
This allows tests running under Python 2.6 to continue functioning even though PyPI is discontinuing support for non-SNI capable clients.
|
||||
3
changelogs/fragments/aws_tiny_prefix.yaml
Normal file
3
changelogs/fragments/aws_tiny_prefix.yaml
Normal file
@ -0,0 +1,3 @@
|
||||
---
|
||||
minor_changes:
|
||||
- ansible-test - aws creates and exposes a new tiny_prefix variable to provide a shorter prefix for the AWS tests.
|
||||
2
changelogs/fragments/cmd_wording.yml
Normal file
2
changelogs/fragments/cmd_wording.yml
Normal file
@ -0,0 +1,2 @@
|
||||
minor_changes:
|
||||
- command - update the user warning message to point out command name (https://github.com/ansible/ansible/pull/74475).
|
||||
2
changelogs/fragments/coll_pb_subdir_fixes.yml
Normal file
2
changelogs/fragments/coll_pb_subdir_fixes.yml
Normal file
@ -0,0 +1,2 @@
|
||||
bugfixes:
|
||||
- playbook loaded from collection subdir now does not ignore subdirs.
|
||||
2
changelogs/fragments/command-remove-unreachable-code.yml
Normal file
2
changelogs/fragments/command-remove-unreachable-code.yml
Normal file
@ -0,0 +1,2 @@
|
||||
bugfixes:
|
||||
- command - remove unreachable code path when trying to convert the value for ``chdir`` to bytes (https://github.com/ansible/ansible/pull/75036)
|
||||
2
changelogs/fragments/concurrency-cache-dir-collision.yml
Normal file
2
changelogs/fragments/concurrency-cache-dir-collision.yml
Normal file
@ -0,0 +1,2 @@
|
||||
bugfixes:
|
||||
- module_common - handle exception when multiple workers try to create the cache directory
|
||||
2
changelogs/fragments/config_lists_unquote.yml
Normal file
2
changelogs/fragments/config_lists_unquote.yml
Normal file
@ -0,0 +1,2 @@
|
||||
bugfixes:
|
||||
- config, ensure 'quoted' lists from ini or env do not take the quotes literally as part of the list item.
|
||||
2
changelogs/fragments/crypt_missing.yml
Normal file
2
changelogs/fragments/crypt_missing.yml
Normal file
@ -0,0 +1,2 @@
|
||||
bugfixes:
|
||||
- ansible.utils.encrypt now handles missing or unusable 'crypt' library.
|
||||
2
changelogs/fragments/debian8_discovery.yml
Normal file
2
changelogs/fragments/debian8_discovery.yml
Normal file
@ -0,0 +1,2 @@
|
||||
bugfixes:
|
||||
- interpreter discovery - Debian 8 and lower will avoid unsupported Python3 version in interpreter discovery
|
||||
2
changelogs/fragments/delegate_te_fix.yml
Normal file
2
changelogs/fragments/delegate_te_fix.yml
Normal file
@ -0,0 +1,2 @@
|
||||
bugfixes:
|
||||
- Avoid task executor from ending early as vars can come from delegated to host.
|
||||
2
changelogs/fragments/extra_vars_unfrack.yml
Normal file
2
changelogs/fragments/extra_vars_unfrack.yml
Normal file
@ -0,0 +1,2 @@
|
||||
bugfixes:
|
||||
- Ensure we get full path for extra vars into cliargs to avoid realpath issues after initial load.
|
||||
@ -0,0 +1,2 @@
|
||||
bugfixes:
|
||||
- "WorkerProcess - Python 3.5 fix for workaround for stdout deadlock in multiprocessing shutdown to avoid process hangs. (https://github.com/ansible/ansible/issues/74149)"
|
||||
2
changelogs/fragments/fix_scp_ssh_settings.yml
Normal file
2
changelogs/fragments/fix_scp_ssh_settings.yml
Normal file
@ -0,0 +1,2 @@
|
||||
bugfixes:
|
||||
- ssh connection - fix interaction between transfer settings options.
|
||||
2
changelogs/fragments/fix_unsafe_newline.yml
Normal file
2
changelogs/fragments/fix_unsafe_newline.yml
Normal file
@ -0,0 +1,2 @@
|
||||
security_fixes:
|
||||
- templating engine fix for not preserving usnafe status when trying to preserve newlines. CVE-2021-3583
|
||||
2
changelogs/fragments/jinja2_decorator_renames.yml
Normal file
2
changelogs/fragments/jinja2_decorator_renames.yml
Normal file
@ -0,0 +1,2 @@
|
||||
bugfixes:
|
||||
- filter plugins - patch new versions of Jinja2 to prevent warnings/errors on renamed filter decorators (https://github.com/ansible/ansible/issues/74667)
|
||||
4
changelogs/fragments/macos-solaris-regression.yml
Normal file
4
changelogs/fragments/macos-solaris-regression.yml
Normal file
@ -0,0 +1,4 @@
|
||||
bugfixes:
|
||||
- >-
|
||||
become - fix a regression on Solaris where chmod can return 5 which we
|
||||
interpret as auth failure and stop trying become tmpdir permission fallbacks
|
||||
3
changelogs/fragments/missing_delegate_vars.yml
Normal file
3
changelogs/fragments/missing_delegate_vars.yml
Normal file
@ -0,0 +1,3 @@
|
||||
bugfixes:
|
||||
- callbacks, restores missing delegate_vars
|
||||
- callback default, now uses task delegate_to instead of delegate vars to display delegate to host
|
||||
2
changelogs/fragments/psrp-cleanup.yml
Normal file
2
changelogs/fragments/psrp-cleanup.yml
Normal file
@ -0,0 +1,2 @@
|
||||
bugfixes:
|
||||
- psrp - Always cleanup the last run pipeline if a second pipeline is invoked to avoid violating any resource limits.
|
||||
3
changelogs/fragments/psrp-reset.yml
Normal file
3
changelogs/fragments/psrp-reset.yml
Normal file
@ -0,0 +1,3 @@
|
||||
bugfixes:
|
||||
- psrp - Fix error when resetting a connection that was initialised but not connected - (https://github.com/ansible/ansible/issues/74092).
|
||||
- psrp - Try to clean up any server-side resources when resetting a connection.
|
||||
2
changelogs/fragments/role_argspec_tagged_always.yml
Normal file
2
changelogs/fragments/role_argspec_tagged_always.yml
Normal file
@ -0,0 +1,2 @@
|
||||
bugfixes:
|
||||
- roles - make sure argspec validation task is tagged with ``always`` (https://github.com/ansible/ansible/pull/74994).
|
||||
2
changelogs/fragments/slurp-handle-error-with-dir.yml
Normal file
2
changelogs/fragments/slurp-handle-error-with-dir.yml
Normal file
@ -0,0 +1,2 @@
|
||||
bugfixes:
|
||||
- slurp - handle error when ``path`` is a directory and not a file (https://github.com/ansible/ansible/pull/74930).
|
||||
@ -0,0 +1,2 @@
|
||||
bugfixes:
|
||||
- slurp - improve the logic in the error handling and remove ``os.stat()`` call (https://github.com/ansible/ansible/pull/75038)
|
||||
2
changelogs/fragments/solaris-setfacl-chmod-fallback.yml
Normal file
2
changelogs/fragments/solaris-setfacl-chmod-fallback.yml
Normal file
@ -0,0 +1,2 @@
|
||||
bugfixes:
|
||||
- become - work around setfacl not existing on modern Solaris (and possibly failing on some filesystems even when it does exist)
|
||||
2
changelogs/fragments/ssh_port_default_fix.yml
Normal file
2
changelogs/fragments/ssh_port_default_fix.yml
Normal file
@ -0,0 +1,2 @@
|
||||
bugfixes:
|
||||
- Remove 'default' from ssh plugin as we want to rely on default from ssh itself or ssh/config.
|
||||
2
changelogs/fragments/support_rocky_linux_hostname.yml
Normal file
2
changelogs/fragments/support_rocky_linux_hostname.yml
Normal file
@ -0,0 +1,2 @@
|
||||
bugfixes:
|
||||
- hostname - Add Rocky Linux support
|
||||
2
changelogs/fragments/support_rockylinux.yml
Normal file
2
changelogs/fragments/support_rockylinux.yml
Normal file
@ -0,0 +1,2 @@
|
||||
bugfixes:
|
||||
- Add RockyLinux to fact gathering (https://github.com/ansible/ansible/pull/74530).
|
||||
3
changelogs/fragments/v2.11.0_summary.yaml
Normal file
3
changelogs/fragments/v2.11.0_summary.yaml
Normal file
@ -0,0 +1,3 @@
|
||||
release_summary: |
|
||||
| Release Date: 2021-04-26
|
||||
| `Porting Guide <https://docs.ansible.com/ansible/devel/porting_guides.html>`__
|
||||
3
changelogs/fragments/v2.11.0rc1_summary.yaml
Normal file
3
changelogs/fragments/v2.11.0rc1_summary.yaml
Normal file
@ -0,0 +1,3 @@
|
||||
release_summary: |
|
||||
| Release Date: 2021-04-05
|
||||
| `Porting Guide <https://docs.ansible.com/ansible/devel/porting_guides.html>`__
|
||||
3
changelogs/fragments/v2.11.0rc2_summary.yaml
Normal file
3
changelogs/fragments/v2.11.0rc2_summary.yaml
Normal file
@ -0,0 +1,3 @@
|
||||
release_summary: |
|
||||
| Release Date: 2021-04-06
|
||||
| `Porting Guide <https://docs.ansible.com/ansible/devel/porting_guides.html>`__
|
||||
3
changelogs/fragments/v2.11.1_summary.yaml
Normal file
3
changelogs/fragments/v2.11.1_summary.yaml
Normal file
@ -0,0 +1,3 @@
|
||||
release_summary: |
|
||||
| Release Date: 2021-05-24
|
||||
| `Porting Guide <https://docs.ansible.com/ansible/devel/porting_guides.html>`__
|
||||
3
changelogs/fragments/v2.11.1rc1_summary.yaml
Normal file
3
changelogs/fragments/v2.11.1rc1_summary.yaml
Normal file
@ -0,0 +1,3 @@
|
||||
release_summary: |
|
||||
| Release Date: 2021-05-17
|
||||
| `Porting Guide <https://docs.ansible.com/ansible/devel/porting_guides.html>`__
|
||||
3
changelogs/fragments/v2.11.2_summary.yaml
Normal file
3
changelogs/fragments/v2.11.2_summary.yaml
Normal file
@ -0,0 +1,3 @@
|
||||
release_summary: |
|
||||
| Release Date: 2021-06-22
|
||||
| `Porting Guide <https://docs.ansible.com/ansible/devel/porting_guides.html>`__
|
||||
3
changelogs/fragments/v2.11.2rc1_summary.yaml
Normal file
3
changelogs/fragments/v2.11.2rc1_summary.yaml
Normal file
@ -0,0 +1,3 @@
|
||||
release_summary: |
|
||||
| Release Date: 2021-06-14
|
||||
| `Porting Guide <https://docs.ansible.com/ansible/devel/porting_guides.html>`__
|
||||
3
changelogs/fragments/v2.11.3rc1_summary.yaml
Normal file
3
changelogs/fragments/v2.11.3rc1_summary.yaml
Normal file
@ -0,0 +1,3 @@
|
||||
release_summary: |
|
||||
| Release Date: 2021-07-13
|
||||
| `Porting Guide <https://docs.ansible.com/ansible/devel/porting_guides.html>`__
|
||||
2
changelogs/fragments/version_compare-error-on-empty.yml
Normal file
2
changelogs/fragments/version_compare-error-on-empty.yml
Normal file
@ -0,0 +1,2 @@
|
||||
bugfixes:
|
||||
- version test - improve error message when an empty version is provided
|
||||
3
changelogs/fragments/world_readable_fixes.yml
Normal file
3
changelogs/fragments/world_readable_fixes.yml
Normal file
@ -0,0 +1,3 @@
|
||||
bugfixes:
|
||||
- correctly use world readable setting since old constant is not 'settable' anymore.
|
||||
- correct doc links for become on warnings over world readable settings.
|
||||
73
docs/docsite/.templates/banner.html
Normal file
73
docs/docsite/.templates/banner.html
Normal file
@ -0,0 +1,73 @@
|
||||
{% if is_eol %}
|
||||
{# Creates a banner at the top of the page for EOL versions. #}
|
||||
<div id='banner' class='Admonition caution'>
|
||||
<p>You are reading an unmaintained version of the Ansible documentation. Unmaintained Ansible versions can contain unfixed security vulnerabilities (CVE). Please upgrade to a maintained version. See <a href="/ansible/latest/">the latest Ansible documentation</a>.</p>
|
||||
</div>
|
||||
{% else %}
|
||||
<script>
|
||||
function startsWith(str, needle) {
|
||||
return str.slice(0, needle.length) == needle
|
||||
}
|
||||
function startsWithOneOf(str, needles) {
|
||||
return needles.some(function (needle) {
|
||||
return startsWith(str, needle);
|
||||
});
|
||||
}
|
||||
var banner = '';
|
||||
var survey_banner =
|
||||
'<div id="latest_survey_banner_id" class="admonition important">' +
|
||||
'<br>' +
|
||||
'<p>' +
|
||||
'Please take our ' +
|
||||
'<a href="https://www.surveymonkey.co.uk/r/2VWVJY3">survey</a> ' +
|
||||
'to help us improve support for collections and roles in GalaxyNG.' +
|
||||
'</p>' +
|
||||
'<br>' +
|
||||
'</div>';
|
||||
// Create a banner if we're not on the official docs site
|
||||
if (location.host == "docs.testing.ansible.com") {
|
||||
document.write('<div id="testing_banner_id" class="admonition important">' +
|
||||
'<p>This is the testing site for Ansible Documentation. Unless you are reviewing pre-production changes, please visit the <a href="https://docs.ansible.com/ansible/latest/">official documentation website</a>.</p> <p></p>' +
|
||||
'</div>');
|
||||
}
|
||||
{% if available_versions is defined %}
|
||||
// Create a banner
|
||||
current_url_path = window.location.pathname;
|
||||
|
||||
var important = false;
|
||||
var msg = '<p>';
|
||||
if (startsWith(current_url_path, "/ansible-core/")) {
|
||||
msg += 'You are reading documentation for Ansible Core, which contains no plugins except for those in ansible.builtin. For documentation of the Ansible package, go to <a href="/ansible/latest">the latest documentation</a>.';
|
||||
} else if (startsWithOneOf(current_url_path, ["/ansible/latest/", "/ansible/{{ latest_version }}/"])) {
|
||||
/* temp banner to advertise GalaxyNG survey */
|
||||
// banner += survey_banner;
|
||||
|
||||
msg += 'You are reading the latest community version of the Ansible documentation. Red Hat subscribers, select <b>2.9</b> in the version selection to the left for the most recent Red Hat release.';
|
||||
} else if (startsWith(current_url_path, "/ansible/2.9/")) {
|
||||
msg += 'You are reading the latest Red Hat released version of the Ansible documentation. Community users can use this version, or select <b>latest</b> from the version selector to the left for the most recent community version.';
|
||||
} else if (startsWith(current_url_path, "/ansible/devel/")) {
|
||||
/* temp banner to advertise GalaxyNG survey */
|
||||
// banner += survey_banner;
|
||||
|
||||
/* temp banner to advertise survey
|
||||
important = true;
|
||||
msg += 'Please take our <a href="https://www.surveymonkey.co.uk/r/B9V3CDY">Docs survey</a> before December 31 to help us improve Ansible documentation.';
|
||||
*/
|
||||
|
||||
msg += 'You are reading the <b>devel</b> version of the Ansible documentation - this version is not guaranteed stable. Use the version selection to the left if you want the latest stable released version.';
|
||||
} else {
|
||||
msg += 'You are reading an older version of the Ansible documentation. Use the version selection to the left if you want the latest stable released version.';
|
||||
}
|
||||
msg += '</p>';
|
||||
|
||||
banner += '<div id="banner_id" class="admonition ';
|
||||
banner += important ? 'important' : 'caution';
|
||||
banner += '">';
|
||||
banner += important ? '<br>' : '';
|
||||
banner += msg;
|
||||
banner += important ? '<br>' : '';
|
||||
banner += '</div>';
|
||||
document.write(banner);
|
||||
{% endif %}
|
||||
</script>
|
||||
{% endif %}
|
||||
45
docs/docsite/.templates/breadcrumbs.html
Normal file
45
docs/docsite/.templates/breadcrumbs.html
Normal file
@ -0,0 +1,45 @@
|
||||
{%- extends "!breadcrumbs.html" %}
|
||||
{%- block breadcrumbs_aside %}
|
||||
<li class="wy-breadcrumbs-aside">
|
||||
{%- if hasdoc(pagename) and display_vcs_links %}
|
||||
{%- if display_github %}
|
||||
{%- if check_meta and 'github_url' in meta %}
|
||||
<!-- User defined GitHub URL -->
|
||||
<a href="{{ meta['github_url'] }}" class="fa fa-github"> {{ _('Edit on GitHub') }}</a>
|
||||
{%- else %}
|
||||
<!-- Ansible-specific additions for modules etc -->
|
||||
{% if check_meta and pagename.endswith((
|
||||
'_module', '_become', '_cache', '_callback',
|
||||
'_connection', '_inventory', '_lookup',
|
||||
'_shell', '_strategy', '_vars',
|
||||
)) %}
|
||||
<!-- <a href="https://{{ github_host|default("github.com") }}/{{ github_user }}/{{ github_repo }}/{{ theme_vcs_pageview_mode or "blob" }}/{{ github_module_version }}{{ meta.get('source', '') }}?description=%23%23%23%23%23%20SUMMARY%0A%3C!---%20Your%20description%20here%20--%3E%0A%0A%0A%23%23%23%23%23%20ISSUE%20TYPE%0A-%20Docs%20Pull%20Request%0A%0A%2Blabel:%20docsite_pr" class="fa fa-github"> {{ _('Edit on GitHub') }}</a> -->
|
||||
<br>
|
||||
{% elif check_meta and pagename.startswith('cli') and meta.get('source', None) %}
|
||||
<a href="https://{{ github_host|default("github.com") }}/{{ github_user }}/{{ github_repo }}/{{ theme_vcs_pageview_mode or "blob" }}/{{ github_cli_version }}{{ meta.get('source', '') }}?description=%23%23%23%23%23%20SUMMARY%0A%3C!---%20Your%20description%20here%20--%3E%0A%0A%0A%23%23%23%23%23%20ISSUE%20TYPE%0A-%20Docs%20Pull%20Request%0A%0A%2Blabel:%20docsite_pr" class="fa fa-github"> {{ _('Edit on GitHub') }}</a>
|
||||
{% elif (not 'list_of' in pagename) and (not 'category' in pagename) %}
|
||||
<a href="https://{{ github_host|default("github.com") }}/{{ github_user }}/{{ github_repo }}/{{ theme_vcs_pageview_mode or "blob" }}/{{ github_version }}{{ conf_py_path }}{{ pagename }}{{ page_source_suffix }}?description=%23%23%23%23%23%20SUMMARY%0A%3C!---%20Your%20description%20here%20--%3E%0A%0A%0A%23%23%23%23%23%20ISSUE%20TYPE%0A-%20Docs%20Pull%20Request%0A%0A%2Blabel:%20docsite_pr" class="fa fa-github"> {{ _('Edit on GitHub') }}</a>
|
||||
{% endif %}
|
||||
{%- endif %}
|
||||
{%- elif display_bitbucket %}
|
||||
{%- if check_meta and 'bitbucket_url' in meta %}
|
||||
<!-- User defined Bitbucket URL -->
|
||||
<a href="{{ meta['bitbucket_url'] }}" class="fa fa-bitbucket"> {{ _('Edit on Bitbucket') }}</a>
|
||||
{%- else %}
|
||||
<a href="https://bitbucket.org/{{ bitbucket_user }}/{{ bitbucket_repo }}/src/{{ bitbucket_version}}{{ conf_py_path }}{{ pagename }}{{ page_source_suffix }}?mode={{ theme_vcs_pageview_mode or "view" }}" class="fa fa-bitbucket"> {{ _('Edit on Bitbucket') }}</a>
|
||||
{%- endif %}
|
||||
{%- elif display_gitlab %}
|
||||
{%- if check_meta and 'gitlab_url' in meta %}
|
||||
<!-- User defined GitLab URL -->
|
||||
<a href="{{ meta['gitlab_url'] }}" class="fa fa-gitlab"> {{ _('Edit on GitLab') }}</a>
|
||||
{%- else %}
|
||||
<a href="https://{{ gitlab_host|default("gitlab.com") }}/{{ gitlab_user }}/{{ gitlab_repo }}/{{ theme_vcs_pageview_mode or "blob" }}/{{ gitlab_version }}{{ conf_py_path }}{{ pagename }}{{ page_source_suffix }}" class="fa fa-gitlab"> {{ _('Edit on GitLab') }}</a>
|
||||
{%- endif %}
|
||||
{%- elif show_source and source_url_prefix %}
|
||||
<a href="{{ source_url_prefix }}{{ pagename }}{{ page_source_suffix }}">{{ _('View page source') }}</a>
|
||||
{%- elif show_source and has_source and sourcename %}
|
||||
<a href="{{ pathto('_sources/' + sourcename, true)|e }}" rel="nofollow"> {{ _('View page source') }}</a>
|
||||
{%- endif %}
|
||||
{%- endif %}
|
||||
</li>
|
||||
{%- endblock %}
|
||||
4
docs/docsite/.templates/version_chooser.html
Normal file
4
docs/docsite/.templates/version_chooser.html
Normal file
@ -0,0 +1,4 @@
|
||||
{# https://jinja.palletsprojects.com/en/3.0.x/tricks/#null-default-fallback #}
|
||||
{%- if not is_eol %}
|
||||
{%- extends "!version_chooser.html" %}
|
||||
{%- endif %}
|
||||
@ -11,7 +11,7 @@ Contributions to the documentation are welcome.
|
||||
|
||||
The Ansible community produces guidance on contributions, building documentation, and submitting pull requests, which you can find in [Contributing to the Ansible Documentation](https://docs.ansible.com/ansible/latest/community/documentation_contributions.html).
|
||||
|
||||
You can also join the [Docs Working Group](https://github.com/ansible/community/wiki/Docs) and/or the ``#ansible-docs`` channel on freenode IRC.
|
||||
You can also join the [Docs Working Group](https://github.com/ansible/community/wiki/Docs) and/or the ``#ansible-docs`` IRC channel on `irc.libera.chat <https://libera.chat/>`_
|
||||
|
||||
Ansible style guide
|
||||
===================
|
||||
|
||||
@ -1,188 +0,0 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
# pylint: disable=no-self-argument
|
||||
#
|
||||
# Copyright 2006-2017 by the Pygments team, see AUTHORS at
|
||||
# https://bitbucket.org/birkenfeld/pygments-main/raw/7941677dc77d4f2bf0bbd6140ade85a9454b8b80/AUTHORS
|
||||
# Copyright by Norman Richards (original author of JSON lexer).
|
||||
#
|
||||
# Licensed under BSD license:
|
||||
#
|
||||
# Copyright (c) 2006-2017 by the respective authors (see AUTHORS file).
|
||||
# All rights reserved.
|
||||
#
|
||||
# Redistribution and use in source and binary forms, with or without
|
||||
# modification, are permitted provided that the following conditions are
|
||||
# met:
|
||||
#
|
||||
# * Redistributions of source code must retain the above copyright
|
||||
# notice, this list of conditions and the following disclaimer.
|
||||
#
|
||||
# * Redistributions in binary form must reproduce the above copyright
|
||||
# notice, this list of conditions and the following disclaimer in the
|
||||
# documentation and/or other materials provided with the distribution.
|
||||
#
|
||||
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
||||
# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
||||
# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
|
||||
# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
|
||||
# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
||||
# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
|
||||
# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
||||
# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
|
||||
# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
||||
# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
|
||||
from __future__ import (absolute_import, division, print_function)
|
||||
__metaclass__ = type
|
||||
|
||||
from pygments.lexer import LexerContext, ExtendedRegexLexer, DelegatingLexer, RegexLexer, bygroups, include
|
||||
from pygments.lexers import DiffLexer
|
||||
from pygments import token
|
||||
|
||||
import re
|
||||
|
||||
|
||||
class AnsibleOutputPrimaryLexer(RegexLexer):
|
||||
name = 'Ansible-output-primary'
|
||||
|
||||
# The following definitions are borrowed from Pygment's JSON lexer.
|
||||
# It has been originally authored by Norman Richards.
|
||||
|
||||
# integer part of a number
|
||||
int_part = r'-?(0|[1-9]\d*)'
|
||||
|
||||
# fractional part of a number
|
||||
frac_part = r'\.\d+'
|
||||
|
||||
# exponential part of a number
|
||||
exp_part = r'[eE](\+|-)?\d+'
|
||||
|
||||
tokens = {
|
||||
# #########################################
|
||||
# # BEGIN: states from JSON lexer #########
|
||||
# #########################################
|
||||
'whitespace': [
|
||||
(r'\s+', token.Text),
|
||||
],
|
||||
|
||||
# represents a simple terminal value
|
||||
'simplevalue': [
|
||||
(r'(true|false|null)\b', token.Keyword.Constant),
|
||||
(('%(int_part)s(%(frac_part)s%(exp_part)s|'
|
||||
'%(exp_part)s|%(frac_part)s)') % vars(),
|
||||
token.Number.Float),
|
||||
(int_part, token.Number.Integer),
|
||||
(r'"(\\\\|\\"|[^"])*"', token.String),
|
||||
],
|
||||
|
||||
|
||||
# the right hand side of an object, after the attribute name
|
||||
'objectattribute': [
|
||||
include('value'),
|
||||
(r':', token.Punctuation),
|
||||
# comma terminates the attribute but expects more
|
||||
(r',', token.Punctuation, '#pop'),
|
||||
# a closing bracket terminates the entire object, so pop twice
|
||||
(r'\}', token.Punctuation, '#pop:2'),
|
||||
],
|
||||
|
||||
# a json object - { attr, attr, ... }
|
||||
'objectvalue': [
|
||||
include('whitespace'),
|
||||
(r'"(\\\\|\\"|[^"])*"', token.Name.Tag, 'objectattribute'),
|
||||
(r'\}', token.Punctuation, '#pop'),
|
||||
],
|
||||
|
||||
# json array - [ value, value, ... }
|
||||
'arrayvalue': [
|
||||
include('whitespace'),
|
||||
include('value'),
|
||||
(r',', token.Punctuation),
|
||||
(r'\]', token.Punctuation, '#pop'),
|
||||
],
|
||||
|
||||
# a json value - either a simple value or a complex value (object or array)
|
||||
'value': [
|
||||
include('whitespace'),
|
||||
include('simplevalue'),
|
||||
(r'\{', token.Punctuation, 'objectvalue'),
|
||||
(r'\[', token.Punctuation, 'arrayvalue'),
|
||||
],
|
||||
# #########################################
|
||||
# # END: states from JSON lexer ###########
|
||||
# #########################################
|
||||
|
||||
'host-postfix': [
|
||||
(r'\n', token.Text, '#pop:3'),
|
||||
(r'( )(=>)( )(\{)',
|
||||
bygroups(token.Text, token.Punctuation, token.Text, token.Punctuation),
|
||||
'objectvalue'),
|
||||
],
|
||||
|
||||
'host-error': [
|
||||
(r'(?:(:)( )(UNREACHABLE|FAILED)(!))?',
|
||||
bygroups(token.Punctuation, token.Text, token.Keyword, token.Punctuation),
|
||||
'host-postfix'),
|
||||
(r'', token.Text, 'host-postfix'),
|
||||
],
|
||||
|
||||
'host-name': [
|
||||
(r'(\[)([^ \]]+)(?:( )(=>)( )([^\]]+))?(\])',
|
||||
bygroups(token.Punctuation, token.Name.Variable, token.Text, token.Punctuation, token.Text, token.Name.Variable, token.Punctuation),
|
||||
'host-error')
|
||||
],
|
||||
|
||||
'host-result': [
|
||||
(r'\n', token.Text, '#pop'),
|
||||
(r'( +)(ok|changed|failed|skipped|unreachable)(=)([0-9]+)',
|
||||
bygroups(token.Text, token.Keyword, token.Punctuation, token.Number.Integer)),
|
||||
],
|
||||
|
||||
'root': [
|
||||
(r'(PLAY|TASK|PLAY RECAP)(?:( )(\[)([^\]]+)(\]))?( )(\*+)(\n)',
|
||||
bygroups(token.Keyword, token.Text, token.Punctuation, token.Literal, token.Punctuation, token.Text, token.Name.Variable, token.Text)),
|
||||
(r'(fatal|ok|changed|skipping)(:)( )',
|
||||
bygroups(token.Keyword, token.Punctuation, token.Text),
|
||||
'host-name'),
|
||||
(r'(\[)(WARNING)(\]:)([^\n]+)',
|
||||
bygroups(token.Punctuation, token.Keyword, token.Punctuation, token.Text)),
|
||||
(r'([^ ]+)( +)(:)',
|
||||
bygroups(token.Name, token.Text, token.Punctuation),
|
||||
'host-result'),
|
||||
(r'(\tto retry, use: )(.*)(\n)', bygroups(token.Text, token.Literal.String, token.Text)),
|
||||
(r'.*\n', token.Other),
|
||||
],
|
||||
}
|
||||
|
||||
|
||||
class AnsibleOutputLexer(DelegatingLexer):
|
||||
name = 'Ansible-output'
|
||||
aliases = ['ansible-output']
|
||||
|
||||
def __init__(self, **options):
|
||||
super(AnsibleOutputLexer, self).__init__(DiffLexer, AnsibleOutputPrimaryLexer, **options)
|
||||
|
||||
|
||||
# ####################################################################################################
|
||||
# # Sphinx plugin ####################################################################################
|
||||
# ####################################################################################################
|
||||
|
||||
__version__ = "0.1.0"
|
||||
__license__ = "BSD license"
|
||||
__author__ = "Felix Fontein"
|
||||
__author_email__ = "felix@fontein.de"
|
||||
|
||||
|
||||
def setup(app):
|
||||
""" Initializer for Sphinx extension API.
|
||||
See http://www.sphinx-doc.org/en/stable/extdev/index.html#dev-extensions.
|
||||
"""
|
||||
for lexer in [
|
||||
AnsibleOutputLexer(startinline=True)
|
||||
]:
|
||||
app.add_lexer(lexer.name, lexer)
|
||||
for alias in lexer.aliases:
|
||||
app.add_lexer(alias, lexer)
|
||||
|
||||
return dict(version=__version__, parallel_read_safe=True)
|
||||
File diff suppressed because one or more lines are too long
17
docs/docsite/_static/css/core-color-scheme.css
Normal file
17
docs/docsite/_static/css/core-color-scheme.css
Normal file
@ -0,0 +1,17 @@
|
||||
.DocSiteProduct-header--core {
|
||||
background-color: #161b1f;
|
||||
border-color: #161b1f;
|
||||
}
|
||||
|
||||
.wy-nav-top, .wy-side-nav-search {
|
||||
background-color: #161b1f;
|
||||
}
|
||||
.wy-nav-side {
|
||||
background-color: #999999;
|
||||
}
|
||||
.wy-menu-vertical header, .wy-menu-vertical p.caption {
|
||||
color: #161b1f;
|
||||
}
|
||||
.ansibleNav ul li a:hover {
|
||||
color: #161b1f;
|
||||
}
|
||||
@ -1,76 +0,0 @@
|
||||
.highlight { background: #f8f8f8 }
|
||||
.highlight .hll { background-color: #ffffcc; border: 1px solid #edff00; padding-top: 2px; border-radius: 3px; display: block }
|
||||
.highlight .c { color: #6a737d; font-style: italic } /* Comment */
|
||||
.highlight .err { color: #a61717; background-color: #e3d2d2; color: #a61717; border: 1px solid #FF0000 } /* Error */
|
||||
.highlight .k { color: #007020; font-weight: bold } /* Keyword */
|
||||
.highlight .o { color: #666666; font-weight: bold } /* Operator */
|
||||
.highlight .ch { color: #6a737d; font-style: italic } /* Comment.Hashbang */
|
||||
.highlight .cm { color: #6a737d; font-style: italic } /* Comment.Multiline */
|
||||
.highlight .cp { color: #007020 } /* Comment.Preproc */
|
||||
.highlight .cpf { color: #6a737d; font-style: italic } /* Comment.PreprocFile */
|
||||
.highlight .c1 { color: #6a737d; font-style: italic } /* Comment.Single */
|
||||
.highlight .cs { color: #999999; font-weight: bold; font-style: italic; background-color: #fff0f0 } /* Comment.Special */
|
||||
.highlight .gd { color: #A00000; background-color: #ffdddd } /* Generic.Deleted */
|
||||
.highlight .gd .x { color: #A00000; background-color: #ffaaaa }
|
||||
.highlight .ge { font-style: italic } /* Generic.Emph */
|
||||
.highlight .gr { color: #aa0000 } /* Generic.Error */
|
||||
.highlight .gh { color: #000080; font-weight: bold } /* Generic.Heading */
|
||||
.highlight .gi { color: #00A000; background-color: #ddffdd } /* Generic.Inserted */
|
||||
.highlight .gi .x { color: #00A000; background-color: #aaffaa; }
|
||||
.highlight .go { color: #333333 } /* Generic.Output */
|
||||
.highlight .gp { color: #c65d09; font-weight: bold } /* Generic.Prompt */
|
||||
.highlight .gs { font-weight: bold } /* Generic.Strong */
|
||||
.highlight .gu { color: #800080; font-weight: bold } /* Generic.Subheading */
|
||||
.highlight .gt { color: #0040D0 } /* Generic.Traceback */
|
||||
.highlight .kc { color: #007020; font-weight: bold } /* Keyword.Constant */
|
||||
.highlight .kd { color: #007020; font-weight: bold } /* Keyword.Declaration */
|
||||
.highlight .kn { color: #007020; font-weight: bold } /* Keyword.Namespace */
|
||||
.highlight .kp { color: #007020 } /* Keyword.Pseudo */
|
||||
.highlight .kr { color: #007020; font-weight: bold } /* Keyword.Reserved */
|
||||
.highlight .kt { color: #902000 } /* Keyword.Type */
|
||||
.highlight .l { color: #032f62 } /* Literal */
|
||||
.highlight .m { color: #208050 } /* Literal.Number */
|
||||
.highlight .s { color: #4070a0 } /* Literal.String */
|
||||
.highlight .n { color: #333333 }
|
||||
.highlight .p { font-weight: bold }
|
||||
.highlight .na { color: teal } /* Name.Attribute */
|
||||
.highlight .nb { color: #0086b3 } /* Name.Builtin */
|
||||
.highlight .nc { color: #445588; font-weight: bold } /* Name.Class */
|
||||
.highlight .no { color: teal; } /* Name.Constant */
|
||||
.highlight .nd { color: #555555; font-weight: bold } /* Name.Decorator */
|
||||
.highlight .ni { color: purple; font-weight: bold } /* Name.Entity */
|
||||
.highlight .ne { color: #990000; font-weight: bold } /* Name.Exception */
|
||||
.highlight .nf { color: #990000; font-weight: bold } /* Name.Function */
|
||||
.highlight .nl { color: #002070; font-weight: bold } /* Name.Label */
|
||||
.highlight .nn { color: #555555; font-weight: bold } /* Name.Namespace */
|
||||
.highlight .nt { color: #22863a } /* Name.Tag */
|
||||
.highlight .nv { color: #9960b5; font-weight: bold } /* Name.Variable */
|
||||
.highlight .p { color: font-weight: bold } /* Indicator */
|
||||
.highlight .ow { color: #007020; font-weight: bold } /* Operator.Word */
|
||||
.highlight .w { color: #bbbbbb } /* Text.Whitespace */
|
||||
.highlight .mb { color: #009999 } /* Literal.Number.Bin */
|
||||
.highlight .mf { color: #009999 } /* Literal.Number.Float */
|
||||
.highlight .mh { color: #009999 } /* Literal.Number.Hex */
|
||||
.highlight .mi { color: #009999 } /* Literal.Number.Integer */
|
||||
.highlight .mo { color: #009999 } /* Literal.Number.Oct */
|
||||
.highlight .sa { color: #dd1144 } /* Literal.String.Affix */
|
||||
.highlight .sb { color: #dd1144 } /* Literal.String.Backtick */
|
||||
.highlight .sc { color: #dd1144 } /* Literal.String.Char */
|
||||
.highlight .dl { color: #dd1144 } /* Literal.String.Delimiter */
|
||||
.highlight .sd { color: #dd1144; font-style: italic } /* Literal.String.Doc */
|
||||
.highlight .s2 { color: #dd1144 } /* Literal.String.Double */
|
||||
.highlight .se { color: #dd1144; font-weight: bold } /* Literal.String.Escape */
|
||||
.highlight .sh { color: #dd1144 } /* Literal.String.Heredoc */
|
||||
.highlight .si { color: #dd1144; font-style: italic } /* Literal.String.Interpol */
|
||||
.highlight .sx { color: #dd1144 } /* Literal.String.Other */
|
||||
.highlight .sr { color: #009926 } /* Literal.String.Regex */
|
||||
.highlight .s1 { color: #dd1144 } /* Literal.String.Single */
|
||||
.highlight .ss { color: #990073 } /* Literal.String.Symbol */
|
||||
.highlight .bp { color: #999999 } /* Name.Builtin.Pseudo */
|
||||
.highlight .fm { color: #06287e } /* Name.Function.Magic */
|
||||
.highlight .vc { color: teal } /* Name.Variable.Class */
|
||||
.highlight .vg { color: teal } /* Name.Variable.Global */
|
||||
.highlight .vi { color: teal } /* Name.Variable.Instance */
|
||||
.highlight .vm { color: #bb60d5 } /* Name.Variable.Magic */
|
||||
.highlight .il { color: #009999 } /* Literal.Number.Integer.Long */
|
||||
.highlight .gc { color: #909090; background-color: #eaf2f5 }
|
||||
@ -1,23 +0,0 @@
|
||||
"""Sphinx ReadTheDocs theme.
|
||||
|
||||
From https://github.com/ryan-roemer/sphinx-bootstrap-theme.
|
||||
|
||||
"""
|
||||
from __future__ import (absolute_import, division, print_function)
|
||||
__metaclass__ = type
|
||||
|
||||
from os import path
|
||||
|
||||
__version__ = '0.2.5b2'
|
||||
__version_full__ = __version__
|
||||
|
||||
|
||||
def get_html_theme_path():
|
||||
"""Return list of HTML theme paths."""
|
||||
cur_dir = path.abspath(path.dirname(path.dirname(__file__)))
|
||||
return cur_dir
|
||||
|
||||
|
||||
# See http://www.sphinx-doc.org/en/stable/theming.html#distribute-your-theme-as-a-python-package
|
||||
def setup(app):
|
||||
app.add_html_theme('sphinx_rtd_theme', path.abspath(path.dirname(__file__)))
|
||||
@ -1,46 +0,0 @@
|
||||
<!--- Based on sphinx versionwarning extension. Extension currently only works on READTHEDOCS -->
|
||||
<script>
|
||||
startsWith = function(str, needle) {
|
||||
return str.slice(0, needle.length) == needle
|
||||
}
|
||||
// Create a banner if we're not on the official docs site
|
||||
if (location.host == "docs.testing.ansible.com") {
|
||||
document.write('<div id="testing_banner_id" class="admonition important">');
|
||||
document.write('<p>This is the testing site for Ansible Documentation. Unless you are reviewing pre-production changes, please visit the <a href="https://docs.ansible.com/ansible/latest/">official documentation website</a>.</p> <p></p>');
|
||||
document.write('</div>');
|
||||
}
|
||||
{% if (not READTHEDOCS) and (available_versions is defined) %}
|
||||
// Create a banner
|
||||
current_url_path = window.location.pathname;
|
||||
|
||||
if (startsWith(current_url_path, "/ansible-core/")) {
|
||||
document.write('<div id="banner_id" class="admonition caution">');
|
||||
document.write('<p>You are reading documentation for Ansible Core, which contains no plugins except for those in ansible.builtin. For documentation of the Ansible package, go to <a href="https://docs.ansible.com/ansible/latest">the latest documentation</a>.</p>');
|
||||
document.write('</div>');
|
||||
|
||||
} else if (startsWith(current_url_path, "/ansible/latest/") || startsWith(current_url_path, "/ansible/{{ latest_version }}/")) {
|
||||
document.write('<div id="banner_id" class="admonition caution">');
|
||||
document.write('<p>You are reading the latest community version of the Ansible documentation. Red Hat subscribers, select <b>2.9</b> in the version selection to the left for the most recent Red Hat release.</p>');
|
||||
document.write('</div>');
|
||||
|
||||
} else if (startsWith(current_url_path, "/ansible/2.9/")) {
|
||||
document.write('<div id="banner_id" class="admonition caution">');
|
||||
document.write('<p>You are reading the latest Red Hat released version of the Ansible documentation. Community users can use this, or select any version in version selection to the left, including <b>latest</b> for the most recent community version.</p>');
|
||||
document.write('</div>');
|
||||
} else if (startsWith(current_url_path, "/ansible/devel/")) {
|
||||
/* temp banner to advertise survey
|
||||
document.write('<div id="banner_id" class="admonition important">');
|
||||
document.write('<br><p>Please take our <a href="https://www.surveymonkey.co.uk/r/B9V3CDY">Docs survey</a> before December 31 to help us improve Ansible documentation.</p><br>');
|
||||
document.write('</div>'); */
|
||||
|
||||
document.write('<div id="banner_id" class="admonition caution">');
|
||||
document.write('<p>You are reading the <b>devel</b> version of the Ansible documentation - this version is not guaranteed stable. Use the version selection to the left if you want the latest stable released version.</p>');
|
||||
document.write('</div>');
|
||||
|
||||
} else {
|
||||
document.write('<div id="banner_id" class="admonition caution">');
|
||||
document.write('<p>You are reading an older version of the Ansible documentation. Use the version selection to the left if you want the latest stable released version.</p>');
|
||||
document.write('</div>');
|
||||
}
|
||||
{% endif %}
|
||||
</script>
|
||||
@ -1,4 +0,0 @@
|
||||
{# Creates a banner at the top of the page for EOL versions. #}
|
||||
<div id='banner' class='Admonition caution'>
|
||||
<p>You are reading an unmaintained version of the Ansible documentation. Unmaintained Ansible versions can contain unfixed security vulnerabilities (CVE). Please upgrade to a maintained version. See <a href="https://docs.ansible.com/ansible/latest/index.html">the latest Ansible documentation</a>.</p>
|
||||
</div>
|
||||
@ -1,25 +0,0 @@
|
||||
<!---- extra body elements for Ansible beyond RTD Sphinx Theme --->
|
||||
<!-- Google Tag Manager -->
|
||||
<noscript><iframe src="//www.googletagmanager.com/ns.html?id=GTM-PSB293" height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript>
|
||||
<script>(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start': new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0], j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src='//www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f); })(window,document,'script','dataLayer','GTM-PSB293');</script>
|
||||
<!-- End Google Tag Manager -->
|
||||
|
||||
<div class="DocSite-globalNav ansibleNav">
|
||||
<ul>
|
||||
<li><a href="https://www.ansible.com/ansiblefest" target="_blank">AnsibleFest</a></li>
|
||||
<li><a href="https://www.ansible.com/tower" target="_blank">Products</a></li>
|
||||
<li><a href="https://www.ansible.com/community" target="_blank">Community</a></li>
|
||||
<li><a href="https://www.ansible.com/webinars-training" target="_blank">Webinars & Training</a></li>
|
||||
<li><a href="https://www.ansible.com/blog" target="_blank">Blog</a></li>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
<a class="DocSite-nav" href="/" style="padding-bottom: 30px;">
|
||||
|
||||
<img class="DocSiteNav-logo"
|
||||
src="{{ pathto('_static/', 1) }}images/logo_invert.png"
|
||||
alt="Ansible Logo">
|
||||
<div class="DocSiteNav-title">
|
||||
Documentation
|
||||
</div>
|
||||
</a>
|
||||
@ -1,18 +0,0 @@
|
||||
<!-- extra footer elements for Ansible beyond RTD Sphinx Theme --->
|
||||
<!-- begin analytics -->
|
||||
<script type="text/javascript">
|
||||
var _hsq = _hsq || [];
|
||||
_hsq.push(["setContentType", "standard-page"]);
|
||||
(function(d,s,i,r) {
|
||||
if (d.getElementById(i)){return;}
|
||||
var n = d.createElement(s),e = document.getElementsByTagName(s)[0];
|
||||
n.id=i;n.src = '//js.hs-analytics.net/analytics/'+(Math.ceil(new Date()/r)*r)+'/330046.js';
|
||||
e.parentNode.insertBefore(n, e);
|
||||
})(document, "script", "hs-analytics",300000);
|
||||
</script>
|
||||
<!-- end analytics -->
|
||||
<script type="text/javascript">
|
||||
if (("undefined" !== typeof _satellite) && ("function" === typeof _satellite.pageBottom)) {
|
||||
_satellite.pageBottom();
|
||||
}
|
||||
</script>
|
||||
@ -1,12 +0,0 @@
|
||||
<!---- extra head elements for Ansible beyond RTD Sphinx Theme --->
|
||||
<script type="text/javascript" src="//www.redhat.com/dtm.js"></script>
|
||||
<!-- <meta class="swiftype" name="published_at" data-type="date" content="2017-12-13" /> -->
|
||||
<meta class="swiftype" name="version" data-type="string" content="{{ version }}">
|
||||
|
||||
<!-- Google Tag Manager Data Layer -->
|
||||
<script>
|
||||
dataLayer = [];
|
||||
</script>
|
||||
<!-- End Google Tag Manager Data Layer -->
|
||||
|
||||
<script src="//cdnjs.cloudflare.com/ajax/libs/modernizr/2.6.2/modernizr.min.js"></script>
|
||||
@ -1,9 +0,0 @@
|
||||
<!-- extra nav elements for Ansible beyond RTD Sphinx Theme --->
|
||||
<!-- changeable widget links to tower - do not change as image controlled by Ansible-->
|
||||
<div id="sideBanner">
|
||||
<br/>
|
||||
<a href="https://www.ansible.com/docs-left?utm_source=docs">
|
||||
<img style="border-width:0px;" src="https://cdn2.hubspot.net/hubfs/330046/docs-graphics/ASB-docs-left-rail.png" />
|
||||
</a>
|
||||
<br/><br/><br/>
|
||||
</div>
|
||||
@ -1,10 +0,0 @@
|
||||
{%- if builder != 'singlehtml' %}
|
||||
<div role="search">
|
||||
<!-- <form id="rtd-search-form" class="wy-form" action="{{ pathto('search') }}" -->
|
||||
<form id="rtd-search-form" class="wy-form" method="get">
|
||||
<input type="text" class="st-default-search-input" name="q" placeholder="{{ _('Search docs') }}" />
|
||||
<input type="hidden" name="check_keywords" value="yes" />
|
||||
<input type="hidden" name="area" value="default" />
|
||||
</form>
|
||||
</div>
|
||||
{%- endif %}
|
||||
@ -1,29 +0,0 @@
|
||||
<!--- Based on https://github.com/rtfd/sphinx_rtd_theme/pull/438/files -->
|
||||
{# Creates dropdown version selection in the top-left navigation. #}
|
||||
<div class="version">
|
||||
{% if (not READTHEDOCS) and (available_versions is defined) %}
|
||||
<div class="version-dropdown">
|
||||
<select class="version-list" id="version-list" onchange="javascript:location.href = this.value;">
|
||||
<script> x = document.getElementById("version-list"); </script>
|
||||
{% for slug in available_versions %}
|
||||
<script>
|
||||
current_url = window.location.href;
|
||||
option = document.createElement("option");
|
||||
option.text = "{{ slug }}";
|
||||
if ( "{{ slug }}" == "{{ current_version }}" ) {
|
||||
option.selected = true;
|
||||
}
|
||||
if (current_url.search("{{ current_version }}") > -1) {
|
||||
option.value = current_url.replace("{{ current_version }}","{{ slug }}");
|
||||
} else {
|
||||
option.value = current_url.replace("latest","{{ slug }}");
|
||||
}
|
||||
x.add(option);
|
||||
</script>
|
||||
{% endfor %}
|
||||
</select>
|
||||
</div>
|
||||
{% else %}
|
||||
{{ nav_version }}
|
||||
{% endif %}
|
||||
</div>
|
||||
@ -1,96 +0,0 @@
|
||||
|
||||
{# Support for Sphinx 1.3+ page_source_suffix, but don't break old builds. #}
|
||||
|
||||
{% if page_source_suffix %}
|
||||
{% set suffix = page_source_suffix %}
|
||||
{% else %}
|
||||
{% set suffix = source_suffix %}
|
||||
{% endif %}
|
||||
|
||||
{% if meta is defined and meta is not none %}
|
||||
{% set check_meta = True %}
|
||||
{% else %}
|
||||
{% set check_meta = False %}
|
||||
{% endif %}
|
||||
|
||||
{% if check_meta and 'github_url' in meta %}
|
||||
{% set display_github = True %}
|
||||
{% endif %}
|
||||
|
||||
{% if check_meta and 'bitbucket_url' in meta %}
|
||||
{% set display_bitbucket = True %}
|
||||
{% endif %}
|
||||
|
||||
{% if check_meta and 'gitlab_url' in meta %}
|
||||
{% set display_gitlab = True %}
|
||||
{% endif %}
|
||||
|
||||
<div role="navigation" aria-label="breadcrumbs navigation">
|
||||
|
||||
<ul class="wy-breadcrumbs">
|
||||
{% block breadcrumbs %}
|
||||
<li><a href="{{ pathto(master_doc) }}">{{ _('Docs') }}</a> »</li>
|
||||
{% for doc in parents %}
|
||||
<li><a href="{{ doc.link|e }}">{{ doc.title }}</a> »</li>
|
||||
{% endfor %}
|
||||
<li>{{ title }}</li>
|
||||
{% endblock %}
|
||||
{% block breadcrumbs_aside %}
|
||||
<li class="wy-breadcrumbs-aside">
|
||||
{% if hasdoc(pagename) %}
|
||||
{% if display_github %}
|
||||
{% if check_meta and 'github_url' in meta %}
|
||||
<!-- User defined GitHub URL -->
|
||||
<a href="{{ meta['github_url'] }}" class="fa fa-github"> {{ _('Edit on GitHub') }}</a>
|
||||
{% else %}
|
||||
<!-- Ansible-specific additions for modules etc -->
|
||||
{% if (pagename.endswith('_module')) or (pagename.endswith('_become'))
|
||||
or (pagename.endswith('_cache')) or (pagename.endswith('_callback'))
|
||||
or (pagename.endswith('_connection')) or (pagename.endswith('_inventory'))
|
||||
or (pagename.endswith('_lookup')) or (pagename.endswith('_shell'))
|
||||
or (pagename.endswith('_strategy')) or (pagename.endswith('_vars'))
|
||||
%}
|
||||
<!-- <a href="https://{{ github_host|default("github.com") }}/{{ github_user }}/{{ github_repo }}/{{ theme_vcs_pageview_mode|default("blob") }}/{{ github_module_version }}{{ meta.get('source', '') }}?description=%23%23%23%23%23%20SUMMARY%0A%3C!---%20Your%20description%20here%20--%3E%0A%0A%0A%23%23%23%23%23%20ISSUE%20TYPE%0A-%20Docs%20Pull%20Request%0A%0A%2Blabel:%20docsite_pr" class="fa fa-github"> {{ _('Edit on GitHub') }}</a> -->
|
||||
<br>
|
||||
{% elif pagename.startswith('cli') and meta.get('source', None) %}
|
||||
<a href="https://{{ github_host|default("github.com") }}/{{ github_user }}/{{ github_repo }}/{{ theme_vcs_pageview_mode|default("blob") }}/{{ github_cli_version }}{{ meta.get('source', '') }}?description=%23%23%23%23%23%20SUMMARY%0A%3C!---%20Your%20description%20here%20--%3E%0A%0A%0A%23%23%23%23%23%20ISSUE%20TYPE%0A-%20Docs%20Pull%20Request%0A%0A%2Blabel:%20docsite_pr" class="fa fa-github"> {{ _('Edit on GitHub') }}</a>
|
||||
{% elif (not 'list_of' in pagename) and (not 'category' in pagename) %}
|
||||
<a href="https://{{ github_host|default("github.com") }}/{{ github_user }}/{{ github_repo }}/{{ theme_vcs_pageview_mode|default("blob") }}/{{ github_version }}{{ conf_py_path }}{{ pagename }}{{ suffix }}?description=%23%23%23%23%23%20SUMMARY%0A%3C!---%20Your%20description%20here%20--%3E%0A%0A%0A%23%23%23%23%23%20ISSUE%20TYPE%0A-%20Docs%20Pull%20Request%0A%0A%2Blabel:%20docsite_pr" class="fa fa-github"> {{ _('Edit on GitHub') }}</a>
|
||||
{% endif %}
|
||||
{% endif %}
|
||||
{% elif display_bitbucket %}
|
||||
{% if check_meta and 'bitbucket_url' in meta %}
|
||||
<!-- User defined Bitbucket URL -->
|
||||
<a href="{{ meta['bitbucket_url'] }}" class="fa fa-bitbucket"> {{ _('Edit on Bitbucket') }}</a>
|
||||
{% else %}
|
||||
<a href="https://bitbucket.org/{{ bitbucket_user }}/{{ bitbucket_repo }}/src/{{ bitbucket_version}}{{ conf_py_path }}{{ pagename }}{{ suffix }}?mode={{ theme_vcs_pageview_mode|default("view") }}" class="fa fa-bitbucket"> {{ _('Edit on Bitbucket') }}</a>
|
||||
{% endif %}
|
||||
{% elif display_gitlab %}
|
||||
{% if check_meta and 'gitlab_url' in meta %}
|
||||
<!-- User defined GitLab URL -->
|
||||
<a href="{{ meta['gitlab_url'] }}" class="fa fa-gitlab"> {{ _('Edit on GitLab') }}</a>
|
||||
{% else %}
|
||||
<a href="https://{{ gitlab_host|default("gitlab.com") }}/{{ gitlab_user }}/{{ gitlab_repo }}/{{ theme_vcs_pageview_mode|default("blob") }}/{{ gitlab_version }}{{ conf_py_path }}{{ pagename }}{{ suffix }}" class="fa fa-gitlab"> {{ _('Edit on GitLab') }}</a>
|
||||
{% endif %}
|
||||
{% elif show_source and source_url_prefix %}
|
||||
<a href="{{ source_url_prefix }}{{ pagename }}{{ suffix }}">{{ _('View page source') }}</a>
|
||||
{% elif show_source and has_source and sourcename %}
|
||||
<a href="{{ pathto('_sources/' + sourcename, true)|e }}" rel="nofollow"> {{ _('View page source') }}</a>
|
||||
{% endif %}
|
||||
{% endif %}
|
||||
</li>
|
||||
{% endblock %}
|
||||
</ul>
|
||||
|
||||
{% if (theme_prev_next_buttons_location == 'top' or theme_prev_next_buttons_location == 'both') and (next or prev) %}
|
||||
<div class="rst-breadcrumbs-buttons" role="navigation" aria-label="breadcrumb navigation">
|
||||
{% if next %}
|
||||
<a href="{{ next.link|e }}" class="btn btn-neutral float-right" title="{{ next.title|striptags|e }}" accesskey="n">Next <span class="fa fa-arrow-circle-right"></span></a>
|
||||
{% endif %}
|
||||
{% if prev %}
|
||||
<a href="{{ prev.link|e }}" class="btn btn-neutral float-left" title="{{ prev.title|striptags|e }}" accesskey="p"><span class="fa fa-arrow-circle-left"></span> Previous</a>
|
||||
{% endif %}
|
||||
</div>
|
||||
{% endif %}
|
||||
<hr/>
|
||||
</div>
|
||||
@ -1,62 +0,0 @@
|
||||
<footer>
|
||||
{% if next or prev %}
|
||||
<div class="rst-footer-buttons">
|
||||
{% if next %}
|
||||
<a href="{{ next.link|e }}" class="btn btn-neutral float-right" title="{{ next.title|striptags|e }}"/>Next <span class="icon icon-circle-arrow-right"></span></a>
|
||||
{% endif %}
|
||||
{% if prev %}
|
||||
<a href="{{ prev.link|e }}" class="btn btn-neutral" title="{{ prev.title|striptags|e }}"><span class="icon icon-circle-arrow-left"></span> Previous</a>
|
||||
{% endif %}
|
||||
</div>
|
||||
{% endif %}
|
||||
|
||||
<hr/>
|
||||
|
||||
{# Ansible search with Swift - do not remove #}
|
||||
<script type="text/javascript">
|
||||
(function(w,d,t,u,n,s,e){w['SwiftypeObject']=n;w[n]=w[n]||function(){
|
||||
(w[n].q=w[n].q||[]).push(arguments);};s=d.createElement(t);
|
||||
e=d.getElementsByTagName(t)[0];s.async=1;s.src=u;e.parentNode.insertBefore(s,e);
|
||||
})(window,document,'script','//s.swiftypecdn.com/install/v2/st.js','_st');
|
||||
|
||||
_st('install','yABGvz2N8PwcwBxyfzUc','2.0.0');
|
||||
</script>
|
||||
|
||||
<div role="contentinfo">
|
||||
<p>
|
||||
{%- if show_copyright %}
|
||||
{%- if hasdoc('copyright') %}
|
||||
{% trans path=pathto('copyright'), copyright=copyright|e %}© <a href="{{ path }}">Copyright</a> {{ copyright }}{% endtrans %}
|
||||
{%- else %}
|
||||
{% trans copyright=copyright|e %}© Copyright {{ copyright }}{% endtrans %}
|
||||
{%- endif %}
|
||||
{%- endif %}
|
||||
|
||||
{%- if build_id and build_url %}
|
||||
{% trans build_url=build_url, build_id=build_id %}
|
||||
<span class="build">
|
||||
Build
|
||||
<a href="{{ build_url }}">{{ build_id }}</a>.
|
||||
</span>
|
||||
{% endtrans %}
|
||||
{%- elif commit %}
|
||||
{% trans commit=commit %}
|
||||
<span class="commit">
|
||||
Revision <code>{{ commit }}</code>.
|
||||
</span>
|
||||
{% endtrans %}
|
||||
{%- elif last_updated %}
|
||||
<span class="lastupdated">
|
||||
{% trans last_updated=last_updated|e %}Last updated on {{ last_updated }}.{% endtrans %}
|
||||
</span>
|
||||
{%- endif %}
|
||||
|
||||
</p>
|
||||
</div>
|
||||
|
||||
{%- if show_sphinx %}
|
||||
{% trans %}Built with <a href="http://sphinx-doc.org/">Sphinx</a> using a <a href="https://github.com/rtfd/sphinx_rtd_theme">theme</a> provided by <a href="https://readthedocs.org">Read the Docs</a>{% endtrans %}.
|
||||
{%- endif %}
|
||||
|
||||
{%- block extrafooter %} {% endblock %}
|
||||
</footer>
|
||||
@ -1,250 +0,0 @@
|
||||
{# TEMPLATE VAR SETTINGS #}
|
||||
{%- set url_root = pathto('', 1) %}
|
||||
{%- if url_root == '#' %}{% set url_root = '' %}{% endif %}
|
||||
{%- if not embedded and docstitle %}
|
||||
{%- set titlesuffix = " — "|safe + docstitle|e %}
|
||||
{%- else %}
|
||||
{%- set titlesuffix = "" %}
|
||||
{%- endif %}
|
||||
{%- set lang_attr = 'en' if language == None else (language | replace('_', '-')) %}
|
||||
|
||||
<!DOCTYPE html>
|
||||
<!--[if IE 8]><html class="no-js lt-ie9" lang="{{ lang_attr }}" > <![endif]-->
|
||||
<!--[if gt IE 8]><!--> <html class="no-js" lang="{{ lang_attr }}" > <!--<![endif]-->
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
{{ metatags }}
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
{% block htmltitle %}
|
||||
<title>{{ title|striptags|e }}{{ titlesuffix }}</title>
|
||||
{% endblock %}
|
||||
|
||||
{# FAVICON #}
|
||||
{% if favicon %}
|
||||
<link rel="shortcut icon" href="{{ pathto('_static/' + favicon, 1) }}"/>
|
||||
{% endif %}
|
||||
{# CANONICAL URL #}
|
||||
{% if theme_canonical_url %}
|
||||
<link rel="canonical" href="{{ theme_canonical_url }}{{ pagename }}.html"/>
|
||||
{% endif %}
|
||||
|
||||
{# JAVASCRIPTS #}
|
||||
{%- block scripts %}
|
||||
<script type="text/javascript" src="{{ pathto('_static/js/modernizr.min.js', 1) }}"></script>
|
||||
{%- if not embedded %}
|
||||
{# XXX Sphinx 1.8.0 made this an external js-file, quick fix until we refactor the template to inherert more blocks directly from sphinx #}
|
||||
{% if sphinx_version >= "1.8.0" %}
|
||||
<script type="text/javascript" id="documentation_options" data-url_root="{{ pathto('', 1) }}" src="{{ pathto('_static/documentation_options.js', 1) }}"></script>
|
||||
{%- for scriptfile in script_files %}
|
||||
{{ js_tag(scriptfile) }}
|
||||
{%- endfor %}
|
||||
{% else %}
|
||||
<script type="text/javascript">
|
||||
var DOCUMENTATION_OPTIONS = {
|
||||
URL_ROOT:'{{ url_root }}',
|
||||
VERSION:'{{ release|e }}',
|
||||
LANGUAGE:'{{ language }}',
|
||||
COLLAPSE_INDEX:false,
|
||||
FILE_SUFFIX:'{{ '' if no_search_suffix else file_suffix }}',
|
||||
HAS_SOURCE: {{ has_source|lower }},
|
||||
SOURCELINK_SUFFIX: '{{ sourcelink_suffix }}'
|
||||
};
|
||||
</script>
|
||||
{%- for scriptfile in script_files %}
|
||||
<script type="text/javascript" src="{{ pathto(scriptfile, 1) }}"></script>
|
||||
{%- endfor %}
|
||||
{% endif %}
|
||||
<script type="text/javascript" src="{{ pathto('_static/js/theme.js', 1) }}"></script>
|
||||
|
||||
{# OPENSEARCH #}
|
||||
{%- if use_opensearch %}
|
||||
<link rel="search" type="application/opensearchdescription+xml"
|
||||
title="{% trans docstitle=docstitle|e %}Search within {{ docstitle }}{% endtrans %}"
|
||||
href="{{ pathto('_static/opensearch.xml', 1) }}"/>
|
||||
{%- endif %}
|
||||
{%- endif %}
|
||||
{%- endblock %}
|
||||
|
||||
{# Ansible CCS additions #}
|
||||
<link href='https://fonts.googleapis.com/css?family=Lato:400,700|Roboto+Slab:400,700|Inconsolata:400,700' rel='stylesheet' type='text/css'>
|
||||
<link href='https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.0.3/css/font-awesome.min.css' rel='stylesheet' type='text/css'>
|
||||
|
||||
{# CSS #}
|
||||
<link rel="stylesheet" href="{{ pathto('_static/' + style, 1) }}" type="text/css" />
|
||||
<link rel="stylesheet" href="{{ pathto('_static/ansible.css', 1) }}" type="text/css" />
|
||||
<link rel="stylesheet" href="{{ pathto('_static/pygments.css', 1) }}" type="text/css" />
|
||||
{%- for css in css_files %}
|
||||
{%- if css|attr("rel") %}
|
||||
<link rel="{{ css.rel }}" href="{{ pathto(css.filename, 1) }}" type="text/css"{% if css.title is not none %} title="{{ css.title }}"{% endif %} />
|
||||
{%- else %}
|
||||
<link rel="stylesheet" href="{{ pathto(css, 1) }}" type="text/css" />
|
||||
{%- endif %}
|
||||
{%- endfor %}
|
||||
|
||||
{%- for cssfile in extra_css_files %}
|
||||
<link rel="stylesheet" href="{{ pathto(cssfile, 1) }}" type="text/css" />
|
||||
{%- endfor %}
|
||||
|
||||
{%- block linktags %}
|
||||
{%- if hasdoc('about') %}
|
||||
<link rel="author" title="{{ _('About these documents') }}" href="{{ pathto('about') }}" />
|
||||
{%- endif %}
|
||||
{%- if hasdoc('genindex') %}
|
||||
<link rel="index" title="{{ _('Index') }}" href="{{ pathto('genindex') }}" />
|
||||
{%- endif %}
|
||||
{%- if hasdoc('search') %}
|
||||
<link rel="search" title="{{ _('Search') }}" href="{{ pathto('search') }}" />
|
||||
{%- endif %}
|
||||
{%- if hasdoc('copyright') %}
|
||||
<link rel="copyright" title="{{ _('Copyright') }}" href="{{ pathto('copyright') }}" />
|
||||
{%- endif %}
|
||||
{%- if next %}
|
||||
<link rel="next" title="{{ next.title|striptags|e }}" href="{{ next.link|e }}" />
|
||||
{%- endif %}
|
||||
{%- if prev %}
|
||||
<link rel="prev" title="{{ prev.title|striptags|e }}" href="{{ prev.link|e }}" />
|
||||
{%- endif %}
|
||||
{%- endblock %}
|
||||
{%- block extrahead %} {% include "ansible_extrahead.html" %} {% endblock %}
|
||||
</head>
|
||||
|
||||
<body class="wy-body-for-nav">
|
||||
{% block extrabody %} {% include "ansible_extrabody.html" %} {% endblock %}
|
||||
<div class="wy-grid-for-nav">
|
||||
{# SIDE NAV, TOGGLES ON MOBILE #}
|
||||
<nav data-toggle="wy-nav-shift" class="wy-nav-side">
|
||||
<div class="wy-side-scroll">
|
||||
<div class="wy-side-nav-search" {% if theme_style_nav_header_background %} style="background: {{theme_style_nav_header_background}}" {% endif %}>
|
||||
{% block sidebartitle %}
|
||||
|
||||
{% if logo and theme_logo_only %}
|
||||
<a href="{{ pathto(master_doc) }}">
|
||||
{% else %}
|
||||
<a href="{{ pathto(master_doc) }}" class="icon icon-home"> {{ project }}
|
||||
{% endif %}
|
||||
|
||||
{% if logo %}
|
||||
{# Not strictly valid HTML, but it's the only way to display/scale
|
||||
it properly, without weird scripting or heaps of work
|
||||
#}
|
||||
<img src="{{ pathto('_static/' + logo, 1) }}" class="logo" alt="Logo"/>
|
||||
{% endif %}
|
||||
</a>
|
||||
|
||||
{% if theme_display_version %}
|
||||
{%- set nav_version = version %}
|
||||
{% if READTHEDOCS and current_version %}
|
||||
{%- set nav_version = current_version %}
|
||||
{% endif %}
|
||||
{% if nav_version %}
|
||||
<div class="version">
|
||||
{{ nav_version }}
|
||||
</div>
|
||||
{% endif %}
|
||||
{% endif %}
|
||||
|
||||
{% include "ansible_versions.html" %}
|
||||
{% include "ansible_searchbox.html" %}
|
||||
|
||||
{% endblock %}
|
||||
</div>
|
||||
|
||||
{% block navigation %}
|
||||
<div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="main navigation">
|
||||
{% block menu %}
|
||||
{#
|
||||
The singlehtml builder doesn't handle this toctree call when the
|
||||
toctree is empty. Skip building this for now.
|
||||
#}
|
||||
{% if 'singlehtml' not in builder %}
|
||||
{% set global_toc = toctree(maxdepth=theme_navigation_depth|int,
|
||||
collapse=theme_collapse_navigation|tobool,
|
||||
includehidden=theme_includehidden|tobool,
|
||||
titles_only=theme_titles_only|tobool) %}
|
||||
{% endif %}
|
||||
{% if global_toc %}
|
||||
{{ global_toc }}
|
||||
{% else %}
|
||||
<!-- Local TOC -->
|
||||
<div class="local-toc">{{ toc }}</div>
|
||||
{% endif %}
|
||||
{% endblock %}
|
||||
</div>
|
||||
{% endblock %}
|
||||
{% block extranav %}{% include "ansible_extranav.html" %}{% endblock %}
|
||||
</div>
|
||||
</nav>
|
||||
</div>
|
||||
|
||||
<section data-toggle="wy-nav-shift" class="wy-nav-content-wrap">
|
||||
|
||||
{# MOBILE NAV, TRIGGLES SIDE NAV ON TOGGLE #}
|
||||
<nav class="wy-nav-top" aria-label="top navigation">
|
||||
{% block mobile_nav %}
|
||||
<i data-toggle="wy-nav-top" class="fa fa-bars"></i>
|
||||
<a href="{{ pathto(master_doc) }}">{{ project }}</a>
|
||||
{% endblock %}
|
||||
</nav>
|
||||
|
||||
|
||||
<div class="wy-nav-content">
|
||||
{%- block content %}
|
||||
{% if theme_style_external_links|tobool %}
|
||||
<div class="rst-content style-external-links">
|
||||
{% else %}
|
||||
<div class="rst-content">
|
||||
{% endif %}
|
||||
{% include "breadcrumbs.html" %}
|
||||
{% include "ansible_banner.html" %}
|
||||
<div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article">
|
||||
{%- block document %}
|
||||
<div itemprop="articleBody">
|
||||
{% block body %}{% endblock %}
|
||||
</div>
|
||||
{% if self.comments()|trim %}
|
||||
<div class="articleComments">
|
||||
{% block comments %}{% endblock %}
|
||||
</div>
|
||||
{% endif%}
|
||||
</div>
|
||||
{%- endblock %}
|
||||
{% include "footer.html" %}
|
||||
</div>
|
||||
{%- endblock %}
|
||||
</div>
|
||||
|
||||
</section>
|
||||
|
||||
</div>
|
||||
|
||||
<script type="text/javascript">
|
||||
jQuery(function () {
|
||||
{% if theme_sticky_navigation|tobool %}
|
||||
SphinxRtdTheme.Navigation.enableSticky();
|
||||
{% else %}
|
||||
SphinxRtdTheme.Navigation.enable();
|
||||
{% endif %}
|
||||
});
|
||||
</script>
|
||||
|
||||
{# Do not conflict with RTD insertion of analytics script #}
|
||||
{% if not READTHEDOCS %}
|
||||
{% if theme_analytics_id %}
|
||||
<!-- Theme Analytics -->
|
||||
<script>
|
||||
(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
|
||||
(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
|
||||
m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
|
||||
})(window,document,'script','https://www.google-analytics.com/analytics.js','ga');
|
||||
|
||||
ga('create', '{{ theme_analytics_id }}', 'auto');
|
||||
ga('send', 'pageview');
|
||||
</script>
|
||||
|
||||
{% endif %}
|
||||
{% endif %}
|
||||
|
||||
{%- block footer %} {% include "ansible_extrafooter.html" %} {% endblock %}
|
||||
|
||||
</body>
|
||||
</html>
|
||||
@ -1,50 +0,0 @@
|
||||
{#
|
||||
basic/search.html
|
||||
~~~~~~~~~~~~~~~~~
|
||||
|
||||
Template for the search page.
|
||||
|
||||
:copyright: Copyright 2007-2013 by the Sphinx team, see AUTHORS.
|
||||
:license: BSD, see LICENSE for details.
|
||||
#}
|
||||
{%- extends "layout.html" %}
|
||||
{% set title = _('Search') %}
|
||||
{% set script_files = script_files + ['_static/searchtools.js'] %}
|
||||
{% block footer %}
|
||||
<script type="text/javascript">
|
||||
jQuery(function() { Search.loadIndex("{{ pathto('searchindex.js', 1) }}"); });
|
||||
</script>
|
||||
{# this is used when loading the search index using $.ajax fails,
|
||||
such as on Chrome for documents on localhost #}
|
||||
<script type="text/javascript" id="searchindexloader"></script>
|
||||
{{ super() }}
|
||||
{% endblock %}
|
||||
{% block body %}
|
||||
<noscript>
|
||||
<div id="fallback" class="admonition warning">
|
||||
<p class="last">
|
||||
{% trans %}Please activate JavaScript to enable the search
|
||||
functionality.{% endtrans %}
|
||||
</p>
|
||||
</div>
|
||||
</noscript>
|
||||
|
||||
{% if search_performed %}
|
||||
<h2>{{ _('Search Results') }}</h2>
|
||||
{% if not search_results %}
|
||||
<p>{{ _('Your search did not match any documents. Please make sure that all words are spelled correctly and that you\'ve selected enough categories.') }}</p>
|
||||
{% endif %}
|
||||
{% endif %}
|
||||
<div id="search-results">
|
||||
{% if search_results %}
|
||||
<ul>
|
||||
{% for href, caption, context in search_results %}
|
||||
<li>
|
||||
<a href="{{ pathto(item.href) }}">{{ caption }}</a>
|
||||
<p class="context">{{ context|e }}</p>
|
||||
</li>
|
||||
{% endfor %}
|
||||
</ul>
|
||||
{% endif %}
|
||||
</div>
|
||||
{% endblock %}
|
||||
@ -1,9 +0,0 @@
|
||||
{%- if builder != 'singlehtml' %}
|
||||
<div role="search">
|
||||
<form id="rtd-search-form" class="wy-form" action="{{ pathto('search') }}"
|
||||
<input type="text" name="q" placeholder="{{ _(' Search') }}" />
|
||||
<input type="hidden" name="check_keywords" value="yes" />
|
||||
<input type="hidden" name="area" value="default" />
|
||||
</form>
|
||||
</div>
|
||||
{%- endif %}
|
||||
@ -1 +0,0 @@
|
||||
.fa:before{-webkit-font-smoothing:antialiased}.clearfix{*zoom:1}.clearfix:before,.clearfix:after{display:table;content:""}.clearfix:after{clear:both}@font-face{font-family:FontAwesome;font-weight:normal;font-style:normal;src:url("../fonts/fontawesome-webfont.eot");src:url("../fonts/fontawesome-webfont.eot?#iefix") format("embedded-opentype"),url("../fonts/fontawesome-webfont.woff") format("woff"),url("../fonts/fontawesome-webfont.ttf") format("truetype"),url("../fonts/fontawesome-webfont.svg#FontAwesome") format("svg")}.fa:before{display:inline-block;font-family:FontAwesome;font-style:normal;font-weight:normal;line-height:1;text-decoration:inherit}a .fa{display:inline-block;text-decoration:inherit}li .fa{display:inline-block}li .fa-large:before,li .fa-large:before{width:1.875em}ul.fas{list-style-type:none;margin-left:2em;text-indent:-0.8em}ul.fas li .fa{width:.8em}ul.fas li .fa-large:before,ul.fas li .fa-large:before{vertical-align:baseline}.fa-book:before{content:""}.icon-book:before{content:""}.fa-caret-down:before{content:""}.icon-caret-down:before{content:""}.fa-caret-up:before{content:""}.icon-caret-up:before{content:""}.fa-caret-left:before{content:""}.icon-caret-left:before{content:""}.fa-caret-right:before{content:""}.icon-caret-right:before{content:""}.rst-versions{position:fixed;bottom:0;left:0;width:300px;color:#fcfcfc;background:#1f1d1d;font-family:"Lato","proxima-nova","Helvetica Neue",Arial,sans-serif;z-index:400}.rst-versions a{color:#2980B9;text-decoration:none}.rst-versions .rst-badge-small{display:none}.rst-versions .rst-current-version{padding:12px;background-color:#272525;display:block;text-align:right;font-size:90%;cursor:pointer;color:#27AE60;*zoom:1}.rst-versions .rst-current-version:before,.rst-versions .rst-current-version:after{display:table;content:""}.rst-versions .rst-current-version:after{clear:both}.rst-versions .rst-current-version .fa{color:#fcfcfc}.rst-versions .rst-current-version .fa-book{float:left}.rst-versions .rst-current-version .icon-book{float:left}.rst-versions .rst-current-version.rst-out-of-date{background-color:#E74C3C;color:#fff}.rst-versions .rst-current-version.rst-active-old-version{background-color:#F1C40F;color:#000}.rst-versions.shift-up{height:auto;max-height:100%;overflow-y:scroll}.rst-versions.shift-up .rst-other-versions{display:block}.rst-versions .rst-other-versions{font-size:90%;padding:12px;color:gray;display:none}.rst-versions .rst-other-versions hr{display:block;height:1px;border:0;margin:20px 0;padding:0;border-top:solid 1px #413d3d}.rst-versions .rst-other-versions dd{display:inline-block;margin:0}.rst-versions .rst-other-versions dd a{display:inline-block;padding:6px;color:#fcfcfc}.rst-versions.rst-badge{width:auto;bottom:20px;right:20px;left:auto;border:none;max-width:300px;max-height:90%}.rst-versions.rst-badge .icon-book{float:none}.rst-versions.rst-badge .fa-book{float:none}.rst-versions.rst-badge.shift-up .rst-current-version{text-align:right}.rst-versions.rst-badge.shift-up .rst-current-version .fa-book{float:left}.rst-versions.rst-badge.shift-up .rst-current-version .icon-book{float:left}.rst-versions.rst-badge .rst-current-version{width:auto;height:30px;line-height:30px;padding:0 6px;display:block;text-align:center}@media screen and (max-width: 768px){.rst-versions{width:85%;display:none}.rst-versions.shift{display:block}}
|
||||
File diff suppressed because one or more lines are too long
Binary file not shown.
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user