Spec-Zone.ru › Ansible 2.4

Руководство по переносу Ansible 2.3

В этом разделе обсуждаются изменения в поведении между Ansible 2.2 и Ansible 2.3.

Цель данного руководства — помочь в обновлении ваших playbooks, плагинов и других частей вашей инфраструктуры Ansible, чтобы они работали с этой версией Ansible.

Мы рекомендуем прочитать эту страницу вместе с Журналом изменений Ansible, чтобы понять, какие обновления вам могут потребоваться.

Этот документ является частью коллекции руководств по переносу. Полный список руководств по переносу можно найти в руководствах по переносу.

  • Playbook
    • Перестройка асинхронного режима работы с плагинами действий
    • Факты версии OpenBSD
    • Блоки с именами
    • Использование нескольких тегов
    • Другие замечания
  • Модули
    • Удаленные модули
    • Предупреждения о устаревании
    • Заметные изменения в модулях
      • AWS lambda
      • Монтирование
  • Плагины
  • Перенос пользовательских скриптов
  • Сети
    • Устаревание аргументов подключения верхнего уровня
    • delegate_to против ProxyCommand

Playbook

Перестройка асинхронного режима работы с плагинами действий

В 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"

Использование нескольких тегов

Указание --tags (или --skip-tags) несколько раз в командной строке в настоящее время приводит к тому, что последний указанный тег переписывает все другие указанные теги. Это поведение устарело. В будущем, если вы укажете –tags несколько раз, теги будут объединены. Отныне использование --tags несколько раз в одной командной строке приведет к выводу предупреждения об устаревании. Установка параметра merge_multiple_cli_tags в значение True в файле ansible.cfg позволит включить новое поведение.

В версии 2.4 по умолчанию теги будут объединяться. Вы можете включить старое поведение перезаписи с помощью параметра конфигурации. В версии 2.5 несколько опций --tags будут объединены без возможности вернуться к старому поведению.

Другие замечания

Вот некоторые редкие случаи, которые могут возникнуть при обновлении. Они в основном вызваны более строгими проверками анализатора и отслеживанием ошибок, которые ранее игнорировались.

  • Сделали any_errors_fatal наследуемым от play к задаче и всем другим объектам между ними.

Модули

В этой версии нет существенных изменений.

Удаленные модули

В этой версии нет существенных изменений.

Предупреждения о устаревании

Следующие модули будут удалены в 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 вместо него

Заметные изменения в модулях

AWS lambda

Ранее игнорируемые изменения, которые повлияли только на один параметр. Существующие развертывания могут содержать нерешенные изменения, которые исправит эта ошибка.

Монтирование

Монтирование: Исправлены некоторые ошибки, чтобы 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 }}"

delegate_to против ProxyCommand

Новая система подключения для модулей сетей в Ansible 2.3 больше не поддерживает использование директивы delegate_to. Для использования бастиона или промежуточного хоста перехода для подключения к сетевым устройствам модули сетей теперь поддерживают использование ProxyCommand.

Для использования ProxyCommand настройте параметры прокси в файле инвентаризации Ansible, чтобы указать прокси-хост через ansible_ssh_common_args.

Подробности о том, как это сделать, см. в руководстве по прокси сетей.

© 2012–2018 Michael DeHaan
© 2018–2019 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
https://docs.ansible.com/ansible/2.4/porting_guide_2.3.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API