Spec-Zone.ru › Ansible 2.5

Руководство по портированию Ansible 2.3

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

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

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

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

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

Плейбук

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

В 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 наследовательным для плейбука, задачи и всех других объектов между ними.

Модули

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

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

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

Уведомления о устаревании

Следующие модули будут удалены в Ansible 2.5. Пожалуйста, обновите свои плейбуки соответственно.

  • ec2_vpc
  • cl_bond
  • cl_bridge
  • cl_img_install
  • cl_interface
  • cl_interface_policy
  • cl_license
  • cl_ports
  • nxos_mtu используйте nxos_system вместо этого

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

AWS lambda

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

Mount

Mount: Некоторые исправления, чтобы bind mounts не монтировались каждый раз при выполнении плейбука.

Плагины

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

Портирование пользовательских скриптов

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

Сеть

Было внесено много изменений в работу модулей сети.

Плейбуки по-прежнему должны использовать 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 vs ProxyCommand

Новая структура подключения для модулей сети в Ansible 2.3, использующая транспорт cli, больше не поддерживает использование директивы delegate_to. Для использования бэстона или промежуточного хоста перехода для подключения к сетевым устройствам через транспорт cli, модули сети теперь поддерживают использование 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.5/porting_guides/porting_guide_2.3.html

Spec-Zone.ru

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