Spec-Zone.ru › Ansible 2.11

arista.eos.eos_config – Управление секциями конфигурации Arista EOS

Примечание

Этот плагин входит в коллекцию arista.eos (версия 1.3.0).

Для его установки используйте: ansible-galaxy collection install arista.eos.

Для использования в книге задач укажите: arista.eos.eos_config.

Новое в версии 1.0.0: of arista.eos

  • Обзор
  • Параметры
  • Примечания
  • Примеры
  • Возвращаемые значения

Обзор

  • Конфигурации Arista EOS используют простой синтаксис с отступами для разделения конфигурации на секции. Этот модуль предоставляет реализацию для работы с секциями конфигурации EOS детерминированным способом. Этот модуль работает с транспортом CLI или eAPI.

Примечание

У этого модуля есть соответствующий плагин действий.

Параметры

Параметр Варианты/Значения по умолчанию Комментарии
after
список / элементы=строка
Упорядоченный набор команд, которые добавляются в конец стека команд, если требуется внести изменения. Так же, как и с параметром before, это позволяет разработчику плейбука добавить набор команд для выполнения после набора команд.
backup
логическое значение
    Варианты:
  • нет ←
  • да
Этот аргумент заставит модуль создать полную резервную копию текущей running-config с удалённого устройства перед внесением каких-либо изменений. Если значение backup_options не указано, файл резервной копии записывается в папку backup в корневом каталоге плейбука или в корневом каталоге роли, если плейбук является частью роли Ansible. Если каталог не существует, он создаётся.
backup_options
словарь
Это объект типа dict, содержащий настраиваемые параметры, связанные с путём к файлу резервной копии. Значение этого параметра считывается только при условии, что backup установлено в да; если backup установлено в нет, этот параметр будет проигнорирован.
dir_path
путь
Этот параметр задаёт путь, заканчивающийся именем каталога, в котором будет храниться файл конфигурации резервной копии. Если каталог не существует, он будет сначала создан, а имя файла — это либо значение filename, либо имя файла по умолчанию, как описано в параметрах filename. Если значение пути не указано, в текущем рабочем каталоге будет создан каталог backup, и конфигурация резервной копии будет скопирована в filename в каталоге backup.
filename
строка
Имя файла, которое будет использоваться для хранения конфигурации резервной копии. Если имя файла не указано, оно будет сгенерировано на основе имени хоста, текущего времени и даты в формате <имя_хоста>_config.<дата>@<время>
before
список / элементы=строка
Упорядоченный набор команд, которые добавляются в стек команд, если требуется внести изменения. Это позволяет разработчику плейбука выполнить команды конфигурации перед внесением любых изменений без влияния на то, как набор команд сопоставляется с системой.
defaults
логическое значение
    Варианты:
  • нет ←
  • да
Аргумент defaults повлияет на то, как собирается текущая конфигурация устройства. Когда значение установлено в true, команда для сбора текущей конфигурации дополняется словом all. Когда значение установлено в false, команда выполняется без слова all.
diff_against
строка
    Варианты:
  • startup
  • running
  • intended
  • session ←
При использовании аргумента командной строки ansible-playbook --diff модуль может генерировать различия относительно различных источников.
Когда этот параметр настроен как startup, модуль вернёт разницу между текущей конфигурацией и стартовой конфигурацией.
Когда этот параметр настроен как intended, модуль вернёт разницу между текущей конфигурацией и конфигурацией, заданной в аргументе intended_config.
Когда этот параметр настроен как running, модуль вернёт разницу до и после текущей конфигурации по отношению к любым изменениям, внесённым в конфигурацию устройства.
Когда этот параметр настроен как session, возвращаемые различия будут основаны на сеансе конфигурации.
diff_ignore_lines
список / элементы=строка
Используйте этот аргумент, чтобы указать одну или несколько строк, которые должны быть проигнорированы при сравнении. Это используется для строк в конфигурации, которые автоматически обновляются системой. Этот аргумент принимает список регулярных выражений или точных совпадений строк.
intended_config
строка
intended_config предоставляет основную конфигурацию, к которой должен соответствовать узел, и используется для проверки окончательной текущей конфигурации. Этот аргумент не будет изменять какие-либо настройки на удалённом устройстве и используется исключительно для проверки соответствия текущей конфигурации устройства. При указании этого аргумента задача также должна изменить значение diff_against и установить его в intended. Строки конфигурации для этого значения должны быть похожи на то, как они будут отображаться, если они присутствуют в текущей конфигурации устройства, включая отступы, чтобы обеспечить правильное сравнение.
lines
список / элементы=строка
Упорядоченный набор команд, которые должны быть настроены в разделе. Команды должны быть точно такими же, как и в текущей конфигурации устройства, чтобы обеспечить идемпотентность и корректное сравнение. Обратите внимание на синтаксис команд конфигурации, так как некоторые команды автоматически изменяются парсером конфигурации устройства.

псевдонимы: команды
match
строка
    Варианты:
  • строка ←
  • строго
  • точно
  • нет
Указывает модулю способ сравнения набора команд с текущей конфигурацией устройства. Если match установлено в строка, команды сравниваются по строкам. Если match установлено в строго, строки команд сравниваются относительно позиции. Если match установлено в точно, строки команд должны быть точным совпадением. Наконец, если match установлено в нет, модуль не будет пытаться сравнить исходную конфигурацию с текущей конфигурацией на удалённом устройстве.
parents
список / элементы=строка
Упорядоченный набор родительских элементов, которые однозначно идентифицируют раздел или иерархию, с которой должны сравниваться команды. Если параметр parents опущен, команды сравниваются с набором команд верхнего уровня или глобальными командами.
provider
словарь
Устарело
Начиная с Ansible 2.5, рекомендуется использовать connection: network_cli.
Начиная с Ansible 2.6, рекомендуется использовать connection: httpapi для eAPI.
Этот параметр будет удалён в релизе после 2022-06-01.
Для получения дополнительной информации, пожалуйста, обратитесь к руководству EOS Platform Options.
Объект dict, содержащий данные подключения.
auth_pass
строка
Задаёт пароль, который необходимо использовать для входа в привилегированный режим на удалённом устройстве. Если authorize равно false, этот аргумент не имеет эффекта. Если значение не указано в задаче, используется значение переменной среды ANSIBLE_NET_AUTH_PASS.
authorize
логическое значение
    Варианты:
  • нет ←
  • да
Инструктирует модуль войти в привилегированный режим на удалённом устройстве перед отправкой любых команд. Если не указано, устройство попытается выполнить все команды в режиме без привилегий. Если значение не указано в задаче, используется значение переменной среды ANSIBLE_NET_AUTHORIZE.
host
строка
Задаёт имя хоста DNS или адрес для подключения к удалённому устройству через указанный транспорт. Значение host используется в качестве адреса назначения для транспорта.
password
строка
Задаёт пароль для аутентификации соединения с удалённым устройством. Этот параметр обычно используется для транспортов cli или eapi. Если значение не указано в задаче, используется значение переменной среды ANSIBLE_NET_PASSWORD.
port
целое число
По умолчанию:
0
Задаёт порт для создания подключения к удалённому устройству. Это значение относится к cli или eapi.
Значение порта по умолчанию устанавливается в соответствующий общий порт транспорта, если он не задан в задаче (cli=22, http=80, https=443).
ssh_keyfile
путь
Задаёт SSH-ключевой файл для аутентификации подключения к удалённому устройству. Этот аргумент используется только для транспортов cli. Если значение не указано в задаче, используется значение переменной среды ANSIBLE_NET_SSH_KEYFILE.
timeout
целое число
Задаёт таймаут в секундах для связи с сетевым устройством при подключении или отправке команд. Если таймаут истечёт до завершения операции, модуль выдаст ошибку.
transport
строка
    Варианты:
  • cli ←
  • eapi
Настраивает транспортное соединение для подключения к удалённому устройству.
use_proxy
логическое значение
    Варианты:
  • нет
  • да ←
Если no, переменные среды http_proxy и https_proxy будут проигнорированы.
use_ssl
логическое значение
    Варианты:
  • нет
  • да ←
Настраивает transport на использование SSL, если установлено значение yes, только когда transport=eapi. Если параметр transport не равен eapi, это значение игнорируется.
END_OF_DOCUMENT_MARKER
имя_пользователя
строка
Настраивает имя пользователя для аутентификации подключения к удаленному устройству. Это значение используется для аутентификации входа в CLI или аутентификации eAPI в зависимости от используемого транспорта. Если значение не указано в задаче, вместо него будет использовано значение переменной среды ANSIBLE_NET_USERNAME.
validate_certs
булево
    Варианты:
  • no
  • да ←
Если no, сертификаты SSL не будут проверены. Это следует использовать только на сайтах, контролируемых лично, использующих самозаверяющие сертификаты. Если аргумент transport не равен eapi, это значение игнорируется.
replace
строка
    Варианты:
  • строка ←
  • блок
  • конфигурация
Указывает модулю способ выполнения конфигурации на устройстве. Если аргумент replace установлен в строка, то измененные строки отправляются устройству в режиме конфигурации. Если аргумент replace установлен в блок, то весь блок команд отправляется на устройство в режиме конфигурации, если какая-либо строка неверна.
running_config
строка
По умолчанию модуль подключается к удаленному устройству и извлекает текущую конфигурацию running-config, чтобы использовать ее как базу для сравнения с содержимым источника. Иногда нежелательно, чтобы задача получала текущую конфигурацию running-config для каждой задачи в плейбуке. Аргумент running_config позволяет реализатору передать конфигурацию в качестве базовой конфигурации для этого модуля. Строки конфигурации для этого параметра должны быть похожи на то, как они будут отображаться при наличии в конфигурации running-configuration устройства, включая отступы для обеспечения идемпотентности и правильного diff.

псевдонимы: config
save_when
строка
    Варианты:
  • всегда
  • никогда ←
  • измененные
  • изменилось
Когда в конфигурации running-configuration устройства вносятся изменения, по умолчанию эти изменения не копируются в постоянное хранилище. Использование этого аргумента изменит это. Если аргумент установлен в всегда, то running-config всегда будет скопирована в startup-config, и флаг измененные всегда будет установлен в True. Если аргумент установлен в измененные, то running-config будет скопирована в startup-config только в том случае, если она изменилась с момента последнего сохранения в startup-config. Если аргумент установлен в никогда, running-config никогда не будет скопирована в startup-config. Если аргумент установлен в изменилось, то running-config будет скопирована в startup-config только в том случае, если задача внесла изменения. изменилось было добавлено в Ansible 2.5.
src
путь
Аргумент src предоставляет путь к файлу конфигурации, который необходимо загрузить в удаленную систему. Путь может быть полным системным путем к файлу конфигурации, если значение начинается с /, или относительным к корню реализованного роли или плейбука. Этот аргумент взаимоисключающий с аргументами строки и родители. Он также может быть шаблоном Jinja2. Строки конфигурации в исходном файле должны быть похожи на то, как они будут отображаться при наличии в текущей конфигурации (конфигурация активного коммутатора) устройства, включая отступы для обеспечения идемпотентности и правильного diff. Конфигурация устройства Arista EOS имеет отступ в 3 пробела.

Примечания

Примечание

  • Проверено на EOS 4.15
  • Сокращенные команды НЕ идемпотентны, см. Справочник по сетям FAQ.
  • Для обеспечения идемпотентности и правильного diff строки конфигурации в соответствующих параметрах модуля должны быть похожи на то, как они отображаются, если они присутствуют в текущей конфигурации устройства, включая отступы.
  • Сведения об использовании CLI, eAPI и привилегированного режима см. в руководстве Параметры платформы EOS
  • Дополнительную информацию об использовании Ansible для управления сетевыми устройствами см. в руководстве Руководство по сетям Ansible
  • Дополнительную информацию об использовании Ansible для управления устройствами Arista EOS см. на странице интеграции Arista Arista integration page.

Примеры

- name: configure top level settings
  arista.eos.eos_config:
    lines: hostname {{ inventory_hostname }}

- name: load an acl into the device
  arista.eos.eos_config:
    lines:
    - 10 permit ip host 192.0.2.1 any log
    - 20 permit ip host 192.0.2.2 any log
    - 30 permit ip host 192.0.2.3 any log
    - 40 permit ip host 192.0.2.4 any log
    parents: ip access-list test
    before: no ip access-list test
    replace: block

- name: load configuration from file
  arista.eos.eos_config:
    src: eos.cfg

- name: render a Jinja2 template onto an Arista switch
  arista.eos.eos_config:
    backup: yes
    src: eos_template.j2

- name: diff the running config against a master config
  arista.eos.eos_config:
    diff_against: intended
    intended_config: "{{ lookup('file', 'master.cfg') }}"

- name: for idempotency, use full-form commands
  arista.eos.eos_config:
    lines:
      # - shut
    - shutdown
    # parents: int eth1
    parents: interface Ethernet1

- name: configurable backup path
  arista.eos.eos_config:
    src: eos_template.j2
    backup: yes
    backup_options:
      filename: backup.cfg
      dir_path: /home/user

Значения возврата

Общие значения возврата описаны в здесь, следующие — поля, уникальные для этого модуля:

Ключ Возвращаемое значение Описание
путь_резервной_копии
строка
при резервном копировании yes
Полный путь к файлу резервной копии

Пример:
/playbooks/ansible/backup/eos_config.2016-07-16@22:28:34
команды
список / элементы=строка
всегда
Набор команд, которые будут отправлены на удаленное устройство

Пример:
['hostname switch01', 'interface Ethernet1', 'no shutdown']
дата
строка
при резервном копировании yes
Дата, извлеченная из имени файла резервной копии

Пример:
2016-07-16
имя_файла
строка
при резервном копировании yes и имя файла не указано в параметрах резервного копирования
Имя файла резервной копии

Пример:
eos_config.2016-07-16@22:28:34
короткое_имя
строка
при резервном копировании yes и имя файла не указано в параметрах резервного копирования
Полный путь к файлу резервной копии без временной метки

Пример:
/playbooks/ansible/backup/eos_config
время
строка
при резервном копировании yes
Время, извлеченное из имени файла резервной копии

Пример:
22:28:34
обновления
список / элементы=строка
всегда
Набор команд, которые будут отправлены на удаленное устройство

Пример:
['hostname switch01', 'interface Ethernet1', 'no shutdown']


Авторы

  • Пётр Спрыгада (@privateip)

© 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/collections/arista/eos/eos_config_module.html

Spec-Zone.ru

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