Spec-Zone.ru › Ansible 2.6

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

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

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

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

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

  • Playbook
    • Реструктурированный асинхронный режим для работы с плагинами действий
    • Факты версии OpenBSD
    • Блоки с именами
    • Использование нескольких тегов
    • Другие особенности
  • Модули
    • Удаленные модули
    • Предупреждения о устаревании
    • Заслуживающие внимания изменения модулей
      • AWS lambda
      • Mount
  • Плагины
  • Перенос пользовательских скриптов
  • Сети
    • Устаревание аргументов подключения верхнего уровня
    • 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 наследуемым от 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 вместо этого

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

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

delegate_to против 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.6/porting_guides/porting_guide_2.3.html

Spec-Zone.ru

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