@ -22,7 +22,7 @@ Before you install Ansible, review the requirements for a control node. Before y
Control node requirements
-------------------------
For your control node (the machine that runs Ansible), you can use any machine with Python 2 (version 2.7) or Python 3 (versions 3.5 and higher) installed. ansible-core 2.11 and Ansible 4.0.0 will make Python 3.8 a soft dependency for the control node, but will function with the aforementionedrequirements. ansible-core 2.12 and Ansible 5.0.0 will require Python 3.8 or newer to function on the control node. Starting with ansible-core 2.11, the project will only be packaged for Python 3.8 and newer.
For your control node (the machine that runs Ansible), you can use any machine with Python 3.8 or newer installed.
This includes Red Hat, Debian, CentOS, macOS, any of the BSDs, and so on.
Windows is not supported for the control node, read more about this in `Matt Davis's blog post <http://blog.rolpdog.com/2020/03/why-no-ansible-controller-for-windows.html>`_.
This section discusses the behavioral changes between Ansible 2.11 and Ansible 2.12.
This section discusses the behavioral changes between ``ansible-core`` 2.11 and ``ansible-core`` 2.12.
It is intended to assist in updating your playbooks, plugins and other parts of your Ansible infrastructure so they will work with this version of Ansible.
We suggest you read this page along with `Ansible Changelog for 2.12 <https://github.com/ansible/ansible/blob/devel/changelogs/CHANGELOG-v2.12.rst>`_ to understand what updates you may need to make.
We suggest you read this page along with `ansible-core Changelog for 2.12 <https://github.com/ansible/ansible/blob/devel/changelogs/CHANGELOG-v2.12.rst>`_ to understand what updates you may need to make.
This document is part of a collection on porting. The complete list of porting guides can be found at :ref:`porting guides <porting_guides>`.
@ -45,9 +45,9 @@ See :ref:`interpreter discovery documentation <interpreter_discovery>` for more
Command Line
============
* Python 3.8 on the controller node is a hard requirement for this release. The command line scripts will not function with a lower Python version.
* ``ansible-vault`` no longer supports ``PyCrypto`` and requires ``cryptography``.
# Used for determining if the system is running a new enough python version
# and should only restrict on our documented minimum versions
_PY38_MIN=sys.version_info[:2]>=(3,8)
_PY3_MIN=sys.version_info[:2]>=(3,5)
_PY2_MIN=(2,6)<=sys.version_info[:2]<(3,)
_PY_MIN=_PY3_MINor_PY2_MIN
ifnot_PY_MIN:
raiseSystemExit('ERROR: Ansible requires a minimum of Python2 version 2.6 or Python3 version 3.5. Current version: %s'%''.join(sys.version.splitlines()))
frompathlibimportPath
classLastResort(object):
@ -67,19 +71,10 @@ if __name__ == '__main__':
initialize_locale()
cli=None
me=os.path.basename(sys.argv[0])
me=Path(sys.argv[0]).name
try:
display=Display()
ifC.CONTROLLER_PYTHON_WARNINGandnot_PY38_MIN:
display.deprecated(
(
'Ansible will require Python 3.8 or newer on the controller starting with Ansible 2.12. '