eos_config - Управление разделами конфигурации Arista EOS
Новая версия 2.1.
Краткое описание
- Конфигурации Arista EOS используют простой синтаксис вложенных блоков для разделения конфигурации на разделы. Этот модуль предоставляет реализацию для работы с разделами конфигурации EOS детерминированным способом. Этот модуль работает с транспортом CLI или eAPI.
Параметры
| Параметр | Варианты/Значения по умолчанию | Комментарии | |
|---|---|---|---|
| after | По умолчанию: Нет | Упорядоченный набор команд для добавления в конец стека команд, если требуется изменение. Аналогично параметру before, это позволяет разработчику playbook добавить набор команд для выполнения после набора команд. | |
| auth_pass | По умолчанию: none | Устаревший Начиная с 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 (добавлено в 2.2) |
| Этот аргумент заставит модуль создать полную резервную копию текущего running-config с удалённого устройства перед внесением каких-либо изменений. Файл резервной копии записывается в папку backup в корневом каталоге playbook или корневом каталоге роли, если playbook является частью роли ansible. Если каталог не существует, он создаётся. | |
| before | По умолчанию: Нет | Упорядоченный набор команд для добавления в стек команд, если требуется изменение. Это позволяет разработчику playbook выполнить команды конфигурации до внесения каких-либо изменений, не влияя на сопоставление набора команд с системой. | |
| defaults (добавлено в 2.2) |
| Аргумент defaults повлияет на то, как собирается running-config с устройства. Когда значение равно true, команда для сбора running-config дополняется ключевым словом all. Когда значение равно false, команда выполняется без ключевого слова all. | |
| diff_against (добавлено в 2.4) |
| При использовании аргумента командной строки ansible-playbook --diff модуль может генерировать сравнения с различными источниками.Если этот параметр настроен как startup, модуль вернёт разницу между running-config и startup-config. Если этот параметр настроен как intended, модуль вернёт разницу между running-config и конфигурацией, предоставленной в аргументе intended_config. Если этот параметр настроен как running, модуль вернёт разницу до и после running-config относительно изменений, внесённых в конфигурацию устройства. Если этот параметр настроен как session, возвращаемая разница будет основана на сессии конфигурации. | |
| diff_ignore_lines (добавлено в 2.4) | Используйте этот аргумент, чтобы указать одну или несколько строк, которые следует игнорировать во время сравнения. Это используется для строк в конфигурации, которые автоматически обновляются системой. Этот аргумент принимает список регулярных выражений или точных совпадений строк. | ||
| force |
| Аргумент force инструктирует модуль не учитывать текущую running-config устройства. При установке в значение true, это заставит модуль внедрить содержимое src на устройство без предварительной проверки, если оно уже настроено. Обратите внимание, что этот аргумент следует считать устаревшим. Для достижения эквивалентного результата установите match=none, что является идемпотентным. Этот аргумент будет удалён в Ansible 2.6. | |
| intended_config (добавлено в 2.4) | intended_config предоставляет основную конфигурацию, которой должен соответствовать узел, и используется для проверки конечной running-config. Этот аргумент не будет изменять какие-либо настройки на удалённом устройстве и используется только для проверки соответствия текущей конфигурации устройства. При указании этого аргумента необходимо также изменить значение diff_against и установить его в значение intended. | ||
| lines | По умолчанию: Нет | Упорядоченный набор команд, которые должны быть настроены в разделе. Команды должны быть точно такими же, как и в running-config устройства. Обратите внимание на синтаксис команд конфигурации, так как некоторые команды автоматически изменяются анализатором конфигурации устройства. псевдонимы: команды | |
| match |
| Инструктирует модуль о способе выполнения сопоставления набора команд с текущей конфигурацией устройства. Если match установлен в line, команды сопоставляются по строкам. Если match установлен в strict, строки команд сопоставляются с учётом позиции. Если match установлен в exact, строки команд должны точно совпадать. Наконец, если match установлен в none, модуль не будет пытаться сравнить исходную конфигурацию с рабочей конфигурацией на удалённом устройстве. | |
| parents | По умолчанию: Нет | Упорядоченный набор родителей, которые однозначно идентифицируют раздел или иерархию, с которыми должны проверяться команды. Если аргумент parents опущен, команды проверяются с учётом набора команд верхнего уровня или глобальных команд. | |
| provider | По умолчанию: Нет | Устаревший Начиная с Ansible 2.5, рекомендуется использовать connection: network_cli.Этот параметр требуется только при использовании eAPI. Для получения дополнительной информации обратитесь к руководству по параметрам платформы EOS EOS Platform Options guide. Объект словаря, содержащий сведения о подключении. | |
| username | Настраивает имя пользователя для аутентификации подключения к удалённому устройству. Это значение используется для аутентификации входа в CLI или аутентификации eAPI в зависимости от используемого транспорта. Если значение не указано в задаче, используется значение переменной окружения ANSIBLE_NET_USERNAME. | ||
| authorize |
| Инструктирует модуль войти в привилегированный режим на удалённом устройстве перед отправкой любых команд. Если не указано, устройство попытается выполнить все команды в режиме без привилегий. Если значение не указано в задаче, используется значение переменной окружения ANSIBLE_NET_AUTHORIZE. | |
| ssh_keyfile | Указывает файл SSH-ключа для аутентификации подключения к удалённому устройству. Этот аргумент используется только для транспортов cli. Если значение не указано в задаче, используется значение переменной окружения ANSIBLE_NET_SSH_KEYFILE. | ||
| use_proxy (добавлено в 2.5) |
| Если no, переменные окружения http_proxy и https_proxy будут игнорироваться. | |
| auth_pass | По умолчанию: none | Указывает пароль для входа в привилегированный режим на удалённом устройстве, если это необходимо. Если authorize имеет значение false, этот аргумент не выполняет никаких действий. Если значение не указано в задаче, используется значение переменной окружения ANSIBLE_NET_AUTH_PASS. | |
| host обязательно | Указывает имя хоста DNS или адрес для подключения к удалённому устройству по указанному транспорту. Значение host используется в качестве адреса назначения для транспорта. | ||
| timeout | По умолчанию: 10 | Указывает тайм-аут в секундах для связи с сетевым устройством для подключения или отправки команд. Если тайм-аут истечёт до завершения операции, модуль выдаст ошибку. | |
| use_ssl |
| Настраивает transport для использования SSL, если значение равно true, только когда transport=eapi. Если аргумент transport не равен eapi, это значение игнорируется. | |
| пароль | По умолчанию: Нет | Указывает пароль для аутентификации подключения к удалённому устройству. Это распространённый аргумент, используемый для транспортов cli или eapi. Если значение не указано в задаче, будет использовано значение переменной среды ANSIBLE_NET_PASSWORD. | |
| validate_certs |
| Если no, сертификаты SSL не будут проверены. Это следует использовать только на сайтах, контролируемых лично, с использованием самозаверяющих сертификатов. Если аргумент транспорта не eapi, это значение игнорируется. | |
| порт | По умолчанию: 0 (использовать стандартный порт) | Указывает порт, используемый при построении подключения к удалённому устройству. Это значение применяется к cli или eapi. Значение порта по умолчанию соответствует стандартному порту для соответствующего транспорта, если в задаче не указано другое значение. (cli=22, http=80, https=443). | |
| transport требуется |
| Настраивает транспортное соединение, используемое при подключении к удалённому устройству. | |
| replace |
| Указывает модулю способ выполнения конфигурации на устройстве. Если аргумент replace установлен в строка, изменённые строки отправляются устройству в режиме конфигурации. Если аргумент replace установлен в блок, весь блок команды отправляется устройству в режиме конфигурации, если какая-либо строка некорректна. | |
| running_config (добавлено в 2.4) | По умолчанию: Нет | Модуль по умолчанию подключается к удалённому устройству и получает текущую конфигурацию running-config, чтобы использовать её в качестве базы для сравнения с содержимым источника. Иногда нежелательно, чтобы задача получала текущую конфигурацию running-config для каждой задачи в playbook. Аргумент running_config позволяет разработчику передать конфигурацию, используемую в качестве базовой конфигурации для этого модуля. псевдонимы: конфигурация | |
| save (добавлено в 2.2) |
| Аргумент save инструктирует модуль сохранить текущую конфигурацию running-config в конфигурацию startup-config. Данная операция выполняется после внесения любых изменений в текущую конфигурацию running. Если изменений не было, конфигурация всё равно сохраняется в startup. Этот параметр всегда заставит модуль вернуть изменённое состояние.Этот параметр устарел начиная с Ansible 2.4 и будет удалён в Ansible 2.8, используйте save_when вместо него. | |
| save_when (добавлено в 2.4) |
| Когда в конфигурации running-устройства вносятся изменения, эти изменения по умолчанию не копируются в непеременную память. Использование этого аргумента изменит это поведение. Если аргумент установлен на всегда, конфигурация running-config всегда будет скопирована в startup-config, и флаг изменено всегда будет установлен в True. Если аргумент установлен на изменено, конфигурация running-config будет скопирована в startup-config только в том случае, если она изменилась с момента последнего сохранения в startup-config. Если аргумент установлен на никогда, конфигурация running-config никогда не будет скопирована в startup-config. Если аргумент установлен на изменено, конфигурация running-config будет скопирована в startup-config только в том случае, если задача внесла изменения. изменено было добавлено в Ansible 2.5. | |
| src (добавлено в 2.2) | По умолчанию: Нет | Аргумент src предоставляет путь к файлу конфигурации, который нужно загрузить в удалённую систему. Путь может быть полным системным путём к файлу конфигурации (если значение начинается с /) или относительным к корню реализованного роли или playbook. Этот аргумент взаимоисключающий с аргументами lines и parents. Он также может быть шаблоном Jinja2. Файл src должен иметь тот же отступ, что и конфигурация реального коммутатора. Конфигурация устройства Arista EOS имеет отступ в 3 пробела. | |
Примечания
Примечание
- Проверено на EOS 4.15
- Сокращённые команды НЕ идемпотентны, см. Вопросы и ответы по сети.
- Сведения об использовании CLI, eAPI и режима привилегий см. в руководстве Настройки платформы EOS
- Дополнительную информацию об использовании Ansible для управления сетевыми устройствами см. в руководстве Руководство по сети Ansible
- Дополнительную информацию об использовании Ansible для управления устройствами Arista EOS см. на странице интеграции Arista .
Примеры
- 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') }}"
- name: for idempotency, use full-form commands
eos_config:
lines:
# - shut
- shutdown
# parents: int eth1
parents: interface Ethernet1
Возвращаемые значения
Общие возвращаемые значения документированы здесь, следующие являются полями, уникальными для данного модуля:
| Ключ | Возвращаемое значение | Описание |
|---|---|---|
| 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'] |
Статус
Этот модуль помечен как превью, что означает, что его интерфейс не гарантирует обратную совместимость.
Поддержка
Дополнительную информацию о поддержке данного модуля 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.5/modules/eos_config_module.html