Spec-Zone.ru › Ansible

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

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

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

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

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

  • Playbook

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

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

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

    • Устаревание аргументов подключения верхнего уровня
    • ProxyCommand заменяет delegate_to

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"

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

Указание --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

Примечание

У этих модулей может отсутствовать документация в текущем выпуске. Пожалуйста, обратитесь к документации модулей 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

Spec-Zone.ru

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