Spec-Zone.ru › Ansible 2.11

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

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

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

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

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

  • Playbook

    • Перестроенный асинхронный режим для работы с плагинами действий
    • Факты версии OpenBSD
    • Блоки с именами
    • Использование нескольких тегов
    • Другие замечания
  • Модули

    • Удаленные модули
    • Уведомления об устаревании
    • Заслуживающие внимания изменения в модулях

      • AWS lambda
      • Mount
  • Плагины
  • Перенос пользовательских скриптов
  • Сети

    • Устаревание аргументов подключения верхнего уровня
    • delegate_to vs 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 наследуемым от playbook к задаче и всем другим объектам между ними.

Модули

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

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

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

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

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

  • 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, если вам нужно знать, как они работали для переноса ваших playbook.

Заслуживающие внимания изменения в модулях

AWS lambda

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

Mount

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

Плагины

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

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

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

Сети

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

Playbook все еще должны использовать 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–2021 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
https://docs.ansible.com/ansible/2.11/porting_guides/porting_guide_2.3.html

Spec-Zone.ru

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