arista.eos.eos_config – Управление разделами конфигурации Arista EOS
Примечание
Этот плагин входит в состав коллекции arista.eos (версия 1.2.0).
Для его установки используйте: ansible-galaxy collection install arista.eos.
Для использования в книге задач укажите: arista.eos.eos_config.
Новое в версии 1.0.0: модуля 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 повлияет на то, как собирается running-config устройства. Когда значение установлено в true, команда для сбора running-config дополняется словом all. Когда значение установлено в false, команда выполняется без ключевого слова all. | |
| diff_against строка |
| При использовании аргумента командной строки ansible-playbook --diff модуль может генерировать разницы с различными источниками.Когда этот параметр настроен как startup, модуль вернёт разницу между running-config и startup-config. Когда этот параметр настроен как intended, модуль вернёт разницу между running-config и конфигурацией, предоставленной в аргументе intended_config.Когда этот параметр настроен как running, модуль вернёт разницу «до» и «после» running-config по отношению к любым изменениям, внесённым в конфигурацию устройства. Когда этот параметр настроен как session, возвращённая разница будет основана на сеансе конфигурации. | |
| diff_ignore_lines список / элементы=строка | Используйте этот аргумент для указания одной или нескольких строк, которые следует игнорировать при вычислении разницы. Это используется для строк в конфигурации, которые автоматически обновляются системой. Этот аргумент принимает список регулярных выражений или точных совпадений строк. | ||
| intended_config строка | intended_config предоставляет основную конфигурацию, которой должен соответствовать узел, и используется для проверки конечной running-config. Этот аргумент не будет изменять какие-либо настройки на удалённом устройстве и используется исключительно для проверки соответствия текущей конфигурации устройства. При указании этого аргумента задача также должна изменить значение diff_against и установить его в intended. | ||
| lines список / элементы=строка | Упорядоченный набор команд, которые должны быть настроены в разделе. Команды должны быть в точности такими же, как в running-config устройства. Обратите внимание на синтаксис команд конфигурации, так как некоторые команды автоматически изменяются парсером конфигурации устройства. псевдонимы: команды | ||
| match строка |
| Указывает модулю способ выполнения сопоставления набора команд с текущей конфигурацией устройства. Если match установлен в строка, команды сопоставляются по строкам. Если match установлен в строго, строки команд сопоставляются с учётом позиции. Если match установлен в точно, строки команд должны быть идентичными. Наконец, если match установлен в нет, модуль не будет пытаться сравнить исходную конфигурацию с рабочей конфигурацией на удалённом устройстве. | |
| parents список / элементы=строка | Упорядоченный набор родительских элементов, которые однозначно идентифицируют раздел или иерархию, по которым следует проверять команды. Если аргумент parents опущен, команды проверяются по отношению к набору команд верхнего уровня или глобальных команд. | ||
| provider словарь | Устарело Начиная с Ansible 2.5, рекомендуется использовать connection: network_cli. Начиная с Ansible 2.6, для eAPI рекомендуется использовать connection: httpapi. Этот параметр будет удалён в релизе после 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 строка |
| Настраивает транспортное соединение, которое будет использоваться при подключении к удалённому устройству. | |
| use_proxy логическое значение |
| Если no, переменные окружения http_proxy и https_proxy будут проигнорированы. | |
| use_ssl логическое значение |
| Настраивает transport для использования SSL, если установлено yes, только когда transport=eapi. Если параметр transport не равен eapi, это значение игнорируется. | |
| имя_пользователя строка | Настраивает имя пользователя для аутентификации подключения к удаленному устройству. Это значение используется для аутентификации входа в CLI или аутентификации eAPI в зависимости от используемого транспорта. Если значение не указано в задаче, используется значение переменной среды ANSIBLE_NET_USERNAME. | ||
| validate_certs булево |
| Если no, сертификаты SSL не будут проверены. Это следует использовать только на сайтах, контролируемых лично, использующих самозаверяющие сертификаты. Если аргумент transport не eapi, это значение игнорируется. | |
| replace строка |
| Указывает модулю способ выполнения конфигурации на устройстве. Если аргумент replace установлен в строка, то изменённые строки отправляются на устройство в режиме конфигурации. Если аргумент replace установлен в блок, то весь блок команды отправляется на устройство в режиме конфигурации, если какая-либо строка неверна. | |
| running_config строка | По умолчанию модуль подключается к удалённому устройству и извлекает текущую running-конфигурацию для использования в качестве основы для сравнения с содержимым исходного файла. Иногда нежелательно, чтобы задача получала текущую running-конфигурацию для каждой задачи в книге задач. Аргумент running_config позволяет реализатору передать конфигурацию в качестве базовой конфигурации для этого модуля. псевдонимы: конфигурация | ||
| save_when строка |
| При внесении изменений в конфигурацию устройства, эти изменения по умолчанию не копируются в энергонезависимую память. Использование этого аргумента изменит это поведение. Если аргумент установлен в всегда, то running-конфигурация всегда будет скопирована в startup-конфигурацию и флаг изменено всегда будет равен True. Если аргумент установлен в изменено, то running-конфигурация будет скопирована в startup-конфигурацию только в том случае, если она изменилась с момента последнего сохранения в startup-конфигурацию. Если аргумент установлен в никогда, running-конфигурация никогда не будет скопирована в startup-конфигурацию. Если аргумент установлен в изменилось, то running-конфигурация будет скопирована в startup-конфигурацию только в том случае, если задача внесла изменения. изменилось было добавлено в Ansible 2.5. | |
| src путь | Аргумент src предоставляет путь к файлу конфигурации, который необходимо загрузить в удалённую систему. Путь может быть полным системным путём к файлу конфигурации, если значение начинается с /, или относительным к корню реализованной роли или книги задач. Этот аргумент взаимоисключающий с аргументами lines и parents. Он также может быть шаблоном Jinja2. Файл src должен иметь тот же отступ, что и конфигурация реального коммутатора. Конфигурация устройства Arista EOS имеет отступ в 3 пробела. | ||
Примечания
Примечание
- Тестировалось на EOS 4.15
- Сокращённые команды НЕ идемпотентны, см. Руководство по сети FAQ.
- Информация об использовании CLI, eAPI и привилегированного режима см. в руководстве Параметры платформы EOS
- Дополнительную информацию об использовании Ansible для управления сетевыми устройствами см. в Руководстве по сетям Ansible
- Дополнительную информацию об использовании Ansible для управления устройствами Arista EOS см. на странице интеграции Arista.
Примеры
- 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
Значения возврата
Общие значения возврата описаны здесь, следующие поля уникальны для данного модуля:
| Ключ | Возвращаемое значение | Описание |
|---|---|---|
| путь_резервной_копии строка | при резервном копировании да | Полный путь к файлу резервной копии Пример: /playbooks/ansible/backup/eos_config.2016-07-16@22:28:34 |
| команды список / элементы=строка | всегда | Набор команд, которые будут отправлены на удалённое устройство Пример: ['hostname switch01', 'interface Ethernet1', 'no shutdown'] |
| дата строка | при резервном копировании да | Дата, извлечённая из имени файла резервной копии Пример: 2016-07-16 |
| имя_файла строка | при резервном копировании да и имя файла не указано в параметрах резервного копирования | Имя файла резервной копии Пример: eos_config.2016-07-16@22:28:34 |
| короткое_имя строка | при резервном копировании да и имя файла не указано в параметрах резервного копирования | Полный путь к файлу резервной копии, без временной метки Пример: /playbooks/ansible/backup/eos_config |
| время строка | при резервном копировании да | Время, извлечённое из имени файла резервной копии Пример: 22:28:34 |
| обновления список / элементы=строка | всегда | Набор команд, которые будут отправлены на удалённое устройство Пример: ['hostname switch01', 'interface Ethernet1', 'no shutdown'] |
Авторы
- Пётр Спрыгада (@privateip)
© 2012–2018 Michael DeHaan
© 2018–2019 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
https://docs.ansible.com/ansible/2.10/collections/arista/eos/eos_config_module.html