Версии: ansible и ansible-core
Тема дорожной карты · Ansible
Знание используемой версии Ansible является ключевым для обеспечения совместимости между playbook, collection и средой управления. Команда ansible --version выводит не только версию ansible-core, но и путь к активному конфигурационному файлу, используемый интерпретатор Python, а также расположение установленных модулей и collection. Версия Ansible следует схеме major.minor.patch; у ansible-core и пакета ansible с батарейками — отдельные номера версий после их разделения в Ansible 2.10, поэтому важно понимать, к какому компоненту относится та или иная строка версии. Фиксация версии Ansible в CI-окружениях через pip install ansible-core==2.16.3 обеспечивает воспроизводимость запусков playbook и защищает от неожиданного поведения из-за изменений в upstream.
Знание версий Ansible и ansible-core важно для эффективного управления проектами и обеспечения их стабильности. Использование конкретной версии Ansible позволяет избежать проблем совместимости и обеспечивает стабильное поведение playbook при выполнении. Важно помнить, что версии Ansible и ansible-core могут существенно различаться, что требует внимательного отслеживания изменений и обновлений.
Как это работает
Версии: ansible и ansible-core на control-node: установка через pip install ansible (рекомендуется, свежее) или apt install ansible/dnf install ansible (дистрибутивные пакеты). Конфиг в ansible.cfg (per-project), ~/.ansible.cfg или /etc/ansible/ansible.cfg. Ключевые параметры: inventory, roles_path, collections_path, host_key_checking, pipelining, gathering. Соединение требует Python на таргете (любая современная версия), SSH-доступ, sudo при эскалации.
Когда применять
Ставьте ansible в virtualenv (python -m venv .venv && pip install ansible) per project — пиннинг версии критичен для воспроизводимости. pipelining = true для скорости (требует requiretty off в sudoers). host_key_checking = false — только в доверенных средах, или ansible-galaxy collection install ansible.utils для нормального управления ключами. ansible-playbook --syntax-check в CI.
Типичные ошибки
Ловушки Версии: ansible и ansible-core: дистрибутивный Ansible отстаёт от collections (TypeError, module-not-found — pip в venv решает); host_key_checking = false повсюду (MITM-риск); коллизия pip + системный Python (всегда venv); нет ssh_args для jumphost (connection times out).