Spec-Zone.ru › Ansible 2.4

eos_config - Управление разделами конфигурации Arista EOS

Новая в версии 2.1.

  • Обзор
  • Параметры
  • Примеры
  • Возвращаемые значения
  • Примечания
    • Статус
    • Информация о техническом обслуживании

Обзор

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

Параметры

параметр обязателен по умолчанию значения комментарии
after
нет
Упорядоченный набор команд для добавления в конец стека команд, если требуется внести изменения. Аналогично параметру before, это позволяет разработчику playbook добавить набор команд, которые будут выполнены после набора команд.
auth_pass
нет none
Указывает пароль, который необходимо использовать, если требуется войти в привилегированный режим на удалённом устройстве. Если параметр authorize имеет значение false, этот аргумент ничего не делает. Если значение не указано в задаче, используется значение переменной среды ANSIBLE_NET_AUTH_PASS.
authorize
нет
  • да
  • нет
Инструктирует модуль войти в привилегированный режим на удалённом устройстве перед отправкой любых команд. Если не указано, устройство попытается выполнить все команды в режиме без привилегий. Если значение не указано в задаче, используется значение переменной среды ANSIBLE_NET_AUTHORIZE.
backup
(добавлен в 2.2)
нет
  • да
  • нет
Этот аргумент заставит модуль создать полную резервную копию текущей running-config с удалённого устройства перед внесением каких-либо изменений. Файл резервной копии записывается в папку backup в корневой директории playbook. Если папка не существует, она создаётся.
before
нет
Упорядоченный набор команд для добавления в стек команд, если требуется внести изменения. Это даёт разработчику playbook возможность выполнить команды конфигурации до внесения любых изменений без влияния на то, как набор команд сопоставляется с системой.
defaults
(добавлен в 2.2)
нет
  • да
  • нет
Аргумент defaults повлияет на то, как собирается running-config с устройства. Когда значение установлено в true, команда, используемая для сбора running-config, дополняется словом all. Когда значение установлено в false, команда выполняется без ключевого слова all.
diff_against
(добавлен в 2.4)
нет session
  • startup
  • running
  • intended
  • session
При использовании аргумента командной строки ansible-playbook --diff, модуль может генерировать diff по отношению к различным источникам.
Когда этот параметр настроен как startup, модуль вернёт diff между running-config и startup-config.
Когда этот параметр настроен как intended, модуль вернёт diff между running-config и конфигурацией, предоставленной в аргументе intended_config.
Когда этот параметр настроен как running, модуль вернёт diff между running-config до и после любых изменений, внесённых в конфигурацию устройства.
Когда этот параметр настроен как session, возвращаемый diff будет основан на сессии конфигурации.
diff_ignore_lines
(добавлен в 2.4)
нет
Используйте этот аргумент, чтобы указать одну или несколько строк, которые должны быть проигнорированы во время diff. Это используется для строк в конфигурации, которые автоматически обновляются системой. Этот аргумент принимает список регулярных выражений или точных совпадений строк.
force
нет
  • да
  • нет
Аргумент force инструктирует модуль не учитывать текущую running-config устройства. Если установлено в true, это заставит модуль скопировать содержимое src на устройство без предварительной проверки, настроено ли оно уже.
Обратите внимание, что этот аргумент следует считать устаревшим. Для достижения эквивалента установите match=none, который является идемпотентным. Этот аргумент будет удален в будущей версии.
intended_config
(добавлен в 2.4)
нет
intended_config предоставляет основную конфигурацию, к которой должен соответствовать узел, и используется для проверки окончательной running-config. Этот аргумент не будет изменять какие-либо настройки на удалённом устройстве и используется исключительно для проверки соответствия текущей конфигурации устройства. При указании этого аргумента задача также должна изменить значение diff_against и установить его в intended.
lines
нет
Упорядоченный набор команд, которые должны быть настроены в разделе. Команды должны быть точно такими же, как и в running-config устройства. Обратите внимание на синтаксис команд конфигурации, так как некоторые команды автоматически изменяются анализатором конфигурации устройства.
match
нет line
  • line
  • strict
  • exact
  • none
Инструктирует модуль, как выполнять сопоставление набора команд с текущей конфигурацией устройства. Если match установлен в line, команды сопоставляются построчно. Если match установлен в strict, строки команд сопоставляются с учётом позиции. Если match установлен в exact, строки команд должны быть идентичными. Наконец, если match установлен в none, модуль не будет пытаться сравнить исходную конфигурацию с конфигурацией на удалённом устройстве.
parents
нет
Упорядоченный набор родителей, которые однозначно идентифицируют раздел, с которым должны сравниваться команды. Если аргумент parents опущен, команды сравниваются с набором команд верхнего уровня или глобальных команд.
provider
нет
Объект dict, содержащий данные подключения.
Объект словаря provider
параметр обязателен по умолчанию значения комментарии
username
нет
Настраивает имя пользователя для аутентификации подключения к удалённому устройству. Это значение используется для аутентификации входа в командную строку или аутентификации eAPI в зависимости от используемого транспорта. Если значение не указано в задаче, используется значение переменной среды ANSIBLE_NET_USERNAME.
authorize
нет
  • да
  • нет
Инструктирует модуль войти в привилегированный режим на удалённом устройстве перед отправкой любых команд. Если не указано, устройство попытается выполнить все команды в режиме без привилегий. Если значение не указано в задаче, используется значение переменной среды ANSIBLE_NET_AUTHORIZE.
ssh_keyfile
нет
Указывает файл SSH-ключа для аутентификации подключения к удалённому устройству. Этот аргумент используется только для транспортов cli. Если значение не указано в задаче, используется значение переменной среды ANSIBLE_NET_SSH_KEYFILE.
auth_pass
нет none
Указывает пароль, который необходимо использовать, если требуется войти в привилегированный режим на удалённом устройстве. Если authorize имеет значение false, этот аргумент ничего не делает. Если значение не указано в задаче, используется значение переменной среды ANSIBLE_NET_AUTH_PASS.
host
да
Указывает имя хоста DNS или адрес для подключения к удалённому устройству по указанному транспорту. Значение host используется как адрес назначения для транспорта.
timeout
нет 10
Указывает таймаут в секундах для связи с сетевым устройством при подключении или отправке команд. Если таймаут истечёт до завершения операции, модуль вернёт ошибку.
use_ssl
нет True
  • да
  • нет
Настраивает transport на использование SSL, если значение установлено в true только когда transport=eapi. Если аргумент transport не eapi, это значение игнорируется.
password
нет
Указывает пароль для аутентификации подключения к удалённому устройству. Это общий аргумент, используемый для транспортов cli или eapi. Если значение не указано в задаче, используется значение переменной среды ANSIBLE_NET_PASSWORD.
validate_certs
нет
  • да
  • нет
Если no, сертификаты SSL не будут проверены. Это следует использовать только на сайтах, контролируемых лично, с использованием самозаверенных сертификатов. Если аргумент transport не eapi, это значение игнорируется.
port
нет 0 (используется общий порт)
Указывает порт, используемый при построении подключения к удалённому устройству. Это значение относится к cli или eapi. Значение порта по умолчанию устанавливается в соответствующий общий порт транспорта, если он не указан в задаче (cli=22, http=80, https=443).
transport
да cli
  • eapi
  • cli
Настраивает транспортное подключение для подключения к удалённому устройству.
replace
нет line
  • line
  • block
  • config
Инструктирует модуль, как выполнить конфигурацию на устройстве. Если аргумент replace установлен в line, изменённые строки отправляются на устройство в режиме конфигурации. Если аргумент replace установлен в block, весь блок команды отправляется на устройство в режиме конфигурации, если какая-либо строка неверна.
running_config
(добавлен в 2.4)
нет
Модуль по умолчанию подключается к удалённому устройству и извлекает текущую running-config для сравнения с содержимым source. Иногда нежелательно запрашивать текущую running-config для каждой задачи в playbook. Аргумент running_config позволяет разработчику передать конфигурацию для использования в качестве базовой конфигурации для данного модуля.
псевдонимы: config
сохранить
(добавлено в 2.2)
нет
  • да
  • нет
Аргумент save инструктирует модуль сохранить текущую конфигурацию (running-config) в стартовую конфигурацию (startup-config). Эта операция выполняется после внесения любых изменений в текущую конфигурацию. Если изменений нет, конфигурация всё равно сохраняется в стартовой конфигурации. Этот параметр всегда заставит модуль вернуть значение «изменено».
Этот параметр устарел начиная с Ansible 2.4, используйте save_when
save_when
(добавлено в 2.4)
нет никогда
  • всегда
  • никогда
  • изменено
Когда в конфигурации устройства (running-configuration) вносятся изменения, по умолчанию эти изменения не копируются в энергонезависимую память. Использование этого аргумента изменит это до того, как это произойдет. Если аргумент установлен в всегда, то running-config всегда будет скопирована в startup-config, а флаг изменено всегда будет установлен в True. Если аргумент установлен в изменено, то running-config будет скопирована в startup-config только в том случае, если она изменилась с момента последнего сохранения в startup-config. Если аргумент установлен в никогда, то running-config никогда не будет скопирована в startup-config
src
(добавлено в 2.2)
нет
Аргумент src предоставляет путь к файлу конфигурации для загрузки на удалённую систему. Путь может быть полным системным путём к файлу конфигурации, если значение начинается с /, или относительным к корню реализованного роли или плейбука. Этот аргумент взаимоисключает аргументы lines и parents. Он также может быть шаблоном Jinja2. Файл src должен иметь тот же отступ, что и конфигурация live-переключателя. Конфигурация устройства Arista EOS имеет отступ в 3 пробела.

Примеры

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

- name: diff against a provided master config
  eos_config:
    diff_against: config
    config: "{{ lookup('file', 'master.cfg') }}"

- name: load an acl into the device
  eos_config:
    lines:
      - 10 permit ip 1.1.1.1/32 any log
      - 20 permit ip 2.2.2.2/32 any log
      - 30 permit ip 3.3.3.3/32 any log
      - 40 permit ip 4.4.4.4/32 any log
    parents: ip access-list test
    before: no ip access-list test
    replace: block

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

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

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

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

имя описание возвращается тип пример
backup_path
Полный путь к резервному файлу
при backup равно да строка /playbooks/ansible/backup/eos_config.2016-07-16@22:28:34
commands
Набор команд, которые будут отправлены на удалённое устройство
всегда список ['hostname switch01', 'interface Ethernet1', 'no shutdown']
updates
Набор команд, которые будут отправлены на удалённое устройство
всегда список ['hostname switch01', 'interface Ethernet1', 'no shutdown']

Примечания

Примечание

  • Тестировалось на EOS 4.15

Статус

Этот модуль помечен как превью, что означает, что он не гарантирует обратную совместимость.

Информация о техническом обслуживании

Для получения дополнительной информации о поддержке этого модуля компанией Red Hat, пожалуйста, обратитесь к этому knowledge base article<https://access.redhat.com/articles/rhel-top-support-policies>

Для помощи в разработке модулей, если вам это нужно, прочитайте Информацию о сообществе и участии, Тестирование Ansible и Разработка модулей.

© 2012–2018 Michael DeHaan
© 2018–2019 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
https://docs.ansible.com/ansible/2.4/eos_config_module.html

Spec-Zone.ru

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