eos_config – Управление секциями конфигурации Arista EOS
Обзор
- Конфигурации Arista EOS используют простой синтаксис отступов блоков для разделения конфигурации на секции. Этот модуль предоставляет реализацию для работы с секциями конфигурации EOS детерминированным способом. Этот модуль работает с транспортными средствами CLI или eAPI.
Параметры
| Параметр | Варианты/Значения по умолчанию | Комментарии | |
|---|---|---|---|
| after - | Упорядоченный набор команд для добавления в конец стека команд, если требуется внести изменения. Как и в случае с параметром before, это позволяет разработчику playbook добавить набор команд, которые будут выполнены после набора команд. | ||
| auth_pass строка | Устарело Начиная с Ansible 2.5, рекомендуется использовать connection: network_cli и become: yes с become_pass. Этот параметр необходим только при использовании eAPI. Для получения дополнительной информации см. руководство по параметрам платформы EOS EOS Platform Options guide. Указывает пароль, который необходимо использовать, если требуется войти в привилегированный режим на удаленном устройстве. Если authorize имеет значение false, этот аргумент ничего не делает. Если значение не указано в задаче, будет использовано значение переменной окружения ANSIBLE_NET_AUTH_PASS. | ||
| authorize логическое значение |
| Устарело Начиная с Ansible 2.5, рекомендуется использовать connection: network_cli и become: yes. Этот параметр необходим только при использовании eAPI. Для получения дополнительной информации см. руководство по параметрам платформы EOS EOS Platform Options guide. Инструктирует модуль войти в привилегированный режим на удаленном устройстве перед отправкой любых команд. Если не указано, устройство попытается выполнить все команды в режиме без привилегий. Если значение не указано в задаче, будет использовано значение переменной окружения ANSIBLE_NET_AUTHORIZE. | |
| backup логическое значение |
| Этот аргумент заставит модуль создать полную резервную копию текущей running-config с удаленного устройства перед внесением каких-либо изменений. Если значение backup_options не указано, файл резервной копии записывается в папку backup в корневом каталоге playbook или корневом каталоге роли, если playbook является частью ansible роли. Если каталог не существует, он создается. | |
| backup_options словарь добавлено в 2.8 | Это объект типа dict, содержащий настраиваемые параметры, связанные с путем к файлу резервной копии. Значение этого параметра считывается только тогда, когда backup установлено в yes, если backup установлено в no, этот параметр будет проигнорирован. | ||
| dir_path путь | Этот параметр предоставляет путь, заканчивающийся именем каталога, в котором будет храниться файл конфигурации резервной копии. Если каталог не существует, он сначала создается, и имя файла — это либо значение filename, либо имя файла по умолчанию, как описано в описании параметров filename. Если значение пути не указано, в текущем рабочем каталоге будет создан каталог backup, и конфигурация резервной копии будет скопирована в filename в каталоге backup. | ||
| filename - | Имя файла, используемого для хранения резервной копии конфигурации. Если имя файла не указано, оно будет сгенерировано на основе имени хоста, текущей даты и времени в формате <имя_хоста>_config.<дата>@<время> | ||
| before - | Упорядоченный набор команд, которые будут добавлены в стек команд, если требуется внести изменения. Это позволяет разработчику playbook выполнить команды конфигурации перед добавлением каких-либо изменений, не влияя на то, как набор команд сопоставляется с системой. | ||
| defaults логическое значение |
| Аргумент defaults повлияет на то, как собирается текущая конфигурация устройства. Когда значение установлено в true, команда, используемая для сбора текущей конфигурации, дополняется ключевым словом all. Когда значение установлено в false, команда выполняется без ключевого слова all. | |
| diff_against - добавлено в 2.4 |
| При использовании аргумента командной строки ansible-playbook --diff модуль может генерировать разницу по отношению к различным источникам.Если этот параметр настроен как startup, модуль вернёт разницу между текущей конфигурацией и конфигурацией по умолчанию. Если этот параметр настроен как intended, модуль вернёт разницу между текущей конфигурацией и конфигурацией, предоставленной в аргументе intended_config. Если этот параметр настроен как running, модуль вернёт разницу до и после текущей конфигурации по отношению к любым изменениям, внесённым в конфигурацию устройства. Если этот параметр настроен как session, возвращаемая разница будет основана на сессии конфигурации. | |
| diff_ignore_lines - добавлено в 2.4 | Используйте этот аргумент для указания одной или нескольких строк, которые следует игнорировать при сравнении. Это используется для строк в конфигурации, которые автоматически обновляются системой. Этот аргумент принимает список регулярных выражений или точных совпадений строк. | ||
| intended_config строка добавлено в 2.4 | Параметр intended_config предоставляет основную конфигурацию, которой должен соответствовать узел, и используется для проверки конечной текущей конфигурации. Этот аргумент не будет изменять какие-либо настройки на удалённом устройстве и используется исключительно для проверки соответствия текущей конфигурации устройства. При указании этого аргумента задача также должна изменить значение diff_against и установить его в intended. | ||
| lines - | Упорядоченный набор команд, которые должны быть настроены в разделе. Команды должны быть точно такими же, как и в текущей конфигурации устройства. Обратите внимание на синтаксис команд конфигурации, так как некоторые команды автоматически изменяются парсером конфигурации устройства. псевдонимы: команды | ||
| match - |
| Указывает модулю способ выполнения сопоставления набора команд с текущей конфигурацией устройства. Если match установлен на line, команды сопоставляются построчно. Если match установлен на strict, строки команд сопоставляются по положению. Если match установлен на exact, строки команд должны быть точным совпадением. Наконец, если match установлен на none, модуль не будет пытаться сравнить исходную конфигурацию с текущей конфигурацией на удалённом устройстве. | |
| parents - | Упорядоченный набор родительских элементов, которые однозначно идентифицируют раздел или иерархию, по которым должны проверяться команды. Если аргумент parents опущен, команды проверяются по отношению к набору команд верхнего уровня или глобальным командам. | ||
| provider словарь | Устарело Начиная с Ansible 2.5, рекомендуется использовать connection: network_cli. Этот параметр необходим только при использовании eAPI. Для получения дополнительной информации см. руководство по параметрам платформы EOS EOS Platform Options guide. Объект типа dict, содержащий данные подключения. | ||
| auth_pass строка | Указывает пароль, который необходимо использовать, если требуется войти в привилегированный режим на удаленном устройстве. Если authorize имеет значение false, этот аргумент ничего не делает. Если значение не указано в задаче, будет использовано значение переменной окружения ANSIBLE_NET_AUTH_PASS. | ||
| authorize логическое значение |
| Инструктирует модуль войти в привилегированный режим на удаленном устройстве перед отправкой любых команд. Если не указано, устройство попытается выполнить все команды в режиме без привилегий. Если значение не указано в задаче, будет использовано значение переменной окружения ANSIBLE_NET_AUTHORIZE. | |
| host строка / обязательно | Указывает имя DNS-хоста или адрес для подключения к удаленному устройству по указанному транспорту. Значение host используется в качестве адреса назначения для транспорта. | ||
| пароль строка | Указывает пароль для аутентификации подключения к удалённому устройству. Это общий аргумент, используемый для транспортных протоколов cli или eapi. Если значение не указано в задаче, будет использовано значение переменной окружения ANSIBLE_NET_PASSWORD. | ||
| порт целое число | По умолчанию: 0 | Указывает порт для подключения к удалённому устройству. Это значение применяется к cli или eapi. Значение порта будет по умолчанию соответствовать стандартному порту транспортного протокола, если он не указан в задаче (cli=22, http=80, https=443). | |
| ssh_keyfile путь | Указывает SSH ключ для аутентификации подключения к удалённому устройству. Этот аргумент используется только для транспортных протоколов cli. Если значение не указано в задаче, будет использовано значение переменной окружения ANSIBLE_NET_SSH_KEYFILE. | ||
| timeout целое число | Указывает время ожидания в секундах для связи с сетевым устройством при подключении или отправке команд. Если время ожидания истечёт до завершения операции, модуль вернёт ошибку. | ||
| transport строка / обязательно |
| Настраивает транспортное соединение для подключения к удалённому устройству. | |
| use_proxy логическое значение добавлен в 2.5 |
| Если no, переменные окружения http_proxy и https_proxy будут проигнорированы. | |
| use_ssl логическое значение |
| Настраивает transport на использование SSL, если установлено значение yes, только когда transport=eapi. Если аргумент transport не eapi, это значение игнорируется. | |
| username строка | Настраивает имя пользователя для аутентификации подключения к удалённому устройству. Это значение используется для аутентификации входа CLI или аутентификации eAPI в зависимости от используемого транспортного протокола. Если значение не указано в задаче, будет использовано значение переменной окружения ANSIBLE_NET_USERNAME. | ||
| validate_certs логическое значение |
| Если no, сертификаты SSL не будут проверены. Это следует использовать только на контролируемых сайтах с использованием самоподписанных сертификатов. Если аргумент transport не eapi, это значение игнорируется. | |
| replace - |
| Указывает модулю способ выполнения конфигурации на устройстве. Если аргумент replace установлен в строка, то изменённые строки будут отправлены на устройство в режиме конфигурации. Если аргумент replace установлен в блок, то весь блок команды будет отправлен на устройство в режиме конфигурации, если какая-либо строка не верна. | |
| running_config строка добавлен в 2.4 | Модуль по умолчанию подключается к удалённому устройству и получает текущую running-config в качестве основы для сравнения с содержимым источника. Иногда нежелательно получать текущую running-config для каждой задачи в playbook. Аргумент running_config позволяет разработчику передать конфигурацию в качестве базовой конфигурации для данного модуля. псевдонимы: config | ||
| save_when - добавлен в 2.4 |
| При внесении изменений в конфигурацию устройства, изменения по умолчанию не копируются в постоянную память. Использование этого аргумента изменит это. Если аргумент установлен в всегда, то running-config всегда будет скопирована в startup-config, и флаг изменено всегда будет установлен в True. Если аргумент установлен в изменено, то running-config будет скопирована в startup-config только если она изменилась с момента последнего сохранения в startup-config. Если аргумент установлен в никогда, то running-config никогда не будет скопирована в startup-config. Если аргумент установлен в изменено, то running-config будет скопирована в startup-config только если задача внесла изменения. изменено был добавлен в Ansible 2.5. | |
| src - | Аргумент src предоставляет путь к файлу конфигурации для загрузки в удалённую систему. Путь может быть полным системным путём к файлу конфигурации, если значение начинается с /, или относительным к корню реализованного роли или playbook. Этот аргумент взаимно исключает аргументы lines и parents. Он также может быть Jinja2 шаблоном. Файл src должен иметь тот же отступ, что и живая конфигурация коммутатора. Конфигурация устройства Arista EOS имеет отступ в 3 пробела. | ||
Примечания
Примечание
- Проверено на EOS 4.15
- Сокращённые команды НЕ идемпотентны, см. Вопросы и ответы по сети.
- Дополнительную информацию об использовании CLI, eAPI и привилегированного режима см. в руководстве EOS Platform Options
- Дополнительную информацию об использовании Ansible для управления сетевыми устройствами см. в руководстве Ansible Network Guide
- Дополнительную информацию об использовании Ansible для управления устройствами Arista EOS см. на странице интеграции Arista.
Примеры
- name: configure top level settings
eos_config:
lines: hostname {{ inventory_hostname }}
- name: load an acl into the device
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
eos_config:
src: eos.cfg
- name: render a Jinja2 template onto an Arista switch
eos_config:
backup: yes
src: eos_template.j2
- name: diff the running config against a master config
eos_config:
diff_against: intended
intended_config: "{{ lookup('file', 'master.cfg') }}"
- name: for idempotency, use full-form commands
eos_config:
lines:
# - shut
- shutdown
# parents: int eth1
parents: interface Ethernet1
- name: configurable backup path
eos_config:
src: eos_template.j2
backup: yes
backup_options:
filename: backup.cfg
dir_path: /home/user
Возвращаемые значения
Общие возвращаемые значения описаны здесь, следующие поля уникальны для данного модуля:
| Ключ | Возвращаемое значение | Описание |
|---|---|---|
| backup_path строка | при backup = да | Полный путь к резервной копии файла Пример: /playbooks/ansible/backup/eos_config.2016-07-16@22:28:34 |
| commands список | всегда | Набор команд, которые будут отправлены на удалённое устройство Пример: ['hostname switch01', 'interface Ethernet1', 'no shutdown'] |
| date строка | при backup = да | Дата, извлеченная из имени файла резервной копии Пример: 2016-07-16 |
| filename строка | при backup = да и имя файла не указано в опциях резервного копирования | Имя файла резервной копии Пример: eos_config.2016-07-16@22:28:34 |
| shortname строка | при backup = да и имя файла не указано в опциях резервного копирования | Полный путь к файлу резервной копии без временной метки Пример: /playbooks/ansible/backup/eos_config |
| time строка | при backup = да | Время, извлеченное из имени файла резервной копии Пример: 22:28:34 |
| updates список | всегда | Набор команд, которые будут отправлены на удалённое устройство Пример: ['hostname switch01', 'interface Ethernet1', 'no shutdown'] |
Статус
- Этот модуль не гарантирует обратную совместимость. [превью]
- Этот модуль поддерживается командой Ansible Network. [сеть]
Поддержка Red Hat
Дополнительную информацию о поддержке этого модуля компанией Red Hat можно найти в этой статье базы знаний Red Hat.
Авторы
- Peter Sprygada (@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.9/modules/eos_config_module.html