Руководство по переносу Ansible 2.3
В этом разделе обсуждаются изменения в поведении между Ansible 2.2 и Ansible 2.3.
Он предназначен для помощи в обновлении ваших playbooks, плагинов и других частей вашей инфраструктуры Ansible, чтобы они работали с этой версией Ansible.
Мы рекомендуем вам прочитать эту страницу вместе с Журналом изменений Ansible 2.3, чтобы понять, какие обновления вам могут потребоваться.
Этот документ является частью коллекции по переносу. Полный список руководств по переносу можно найти в руководствах по переносу.
Playbook
Перестроенный async для работы с плагинами действий
В Ansible 2.2 (и, возможно, ранее) ключевое слово async: не могло использоваться совместно с плагинами действий, такими как service. Это ограничение было удалено в Ansible 2.3
НОВОЕ В Ansible 2.3:
- name: Install nginx asynchronously
service:
name: nginx
state: restarted
async: 45
Факты версии OpenBSD
Факты ansible_distribution_release и ansible_distribution_version на хостах OpenBSD были изменены в Ansible 2.2 и ранее. Это было изменено, чтобы версия содержала числовую часть, а выпуск — имя выпуска.
СТАРОЕ В Ansible 2.2 (и ранее)
"ansible_distribution": "OpenBSD" "ansible_distribution_release": "6.0", "ansible_distribution_version": "release",
НОВОЕ В Ansible 2.3:
"ansible_distribution": "OpenBSD", "ansible_distribution_release": "release", "ansible_distribution_version": "6.0",
Блоки с именами
Теперь блоки могут иметь имена, это позволяет избежать некрасивых # this block is for… комментариев.
НОВОЕ В Ansible 2.3:
- name: Block test case
hosts: localhost
tasks:
- name: Attempt to setup foo
block:
- debug: msg='I execute normally'
- command: /bin/false
- debug: msg='I never execute, cause ERROR!'
rescue:
- debug: msg='I caught an error'
- command: /bin/false
- debug: msg='I also never execute :-('
always:
- debug: msg="this always executes"
Другие замечания
Вот несколько редких случаев, которые могут возникнуть при обновлении. Они в основном вызваны более строгим валидированием анализатора и захватом ошибок, которые ранее игнорировались.
- Сделано
any_errors_fatalнаследуемым от playbook к задаче и всем другим объектам между ними.
Модули
В этой версии нет существенных изменений.
Удаленные модули
В этой версии нет существенных изменений.
Замечания о устаревании
Следующие модули будут удалены в Ansible 2.5. Пожалуйста, обновите свои playbooks соответственно.
- ec2_vpc
- cl_bond
- cl_bridge
- cl_img_install
- cl_interface
- cl_interface_policy
- cl_license
- cl_ports
- nxos_mtu используйте вместо него nxos_system
Примечание
У этих модулей может отсутствовать документация в текущем выпуске. Пожалуйста, обратитесь к документации модулей Ansible 2.3, если вам нужно узнать, как они работали для переноса ваших playbooks.
Заслуживающие внимания изменения модулей
AWS lambda
Ранее игнорировались изменения, которые затрагивали только один параметр. Существующие развертывания могут иметь нерешённые изменения, которые будет исправлять это исправление.
Mount
Mount: Исправлены некоторые ошибки, чтобы bind-монтирования не монтировались каждый раз при выполнении playbook.
Плагины
В этой версии нет существенных изменений.
Перенос пользовательских скриптов
В этой версии нет существенных изменений.
Сеть
Было несколько изменений в работе модулей сети.
Playbooks должны по-прежнему использовать connection: local.
Следующие изменения относятся к:
- dellos6
- dellos9
- dellos10
- eos
- ios
- iosxr
- junos
- sros
- vyos
Устаревание аргументов подключения верхнего уровня
СТАРОЕ В Ansible 2.2:
- name: example of using top-level options for connection properties
ios_command:
commands: show version
host: "{{ inventory_hostname }}"
username: cisco
password: cisco
authorize: yes
auth_pass: cisco
Приведёт к:
[WARNING]: argument username has been deprecated and will be removed in a future version [WARNING]: argument host has been deprecated and will be removed in a future version [WARNING]: argument password has been deprecated and will be removed in a future version
НОВОЕ В Ansible 2.3:
- name: Gather facts
eos_facts:
gather_subset: all
provider:
username: myuser
password: "{{ networkpassword }}"
transport: cli
host: "{{ ansible_host }}"
ProxyCommand заменяет delegate_to
Новая система подключения к сетевым модулям в Ansible 2.3, использующая cli транспорт, больше не поддерживает использование директивы delegate_to. Чтобы использовать бастион или промежуточный хост перехода для подключения к сетевым устройствам по cli транспорту, сетевые модули теперь поддерживают использование ProxyCommand.
Для использования ProxyCommand настройте параметры прокси в файле инвентаризации Ansible, чтобы указать прокси-хост через ansible_ssh_common_args.
Подробную информацию об этом см. в руководстве по прокси сети.
© 2012–2018 Michael DeHaan
© 2018–2024 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
https://docs.ansible.com/ansible/latest/porting_guides/porting_guide_2.3.html