cisco.nxos.nxos_config – Управление разделами конфигурации Cisco NXOS
Примечание
Этот плагин входит в коллекцию cisco.nxos (версия 1.4.0).
Для его установки используйте: ansible-galaxy collection install cisco.nxos.
Для использования в плейбуке укажите: cisco.nxos.nxos_config.
Новое в версии 1.0.0: модуля cisco.nxos
Обзор
- Конфигурации Cisco NXOS используют простой синтаксис блочного отступа для сегментации конфигурации на разделы. Этот модуль предоставляет реализацию для работы с разделами конфигурации NXOS детерминированным способом. Этот модуль работает как с транспортом CLI, так и с NXAPI.
Примечание
У этого модуля есть соответствующий плагин действий.
Параметры
| Параметр | Варианты/Значения по умолчанию | Комментарии | |
|---|---|---|---|
| after список / элементы=строка | Упорядоченный набор команд, добавляемых в конец стека команд, если необходимо внести изменения. Аналогично параметру before, это позволяет разработчику плейбука добавить набор команд, которые будут выполнены после набора команд. | ||
| backup логический тип |
| Этот аргумент заставит модуль создать полную резервную копию текущего running-config удаленного устройства перед внесением любых изменений. Если значение backup_options не указано, файл резервной копии записывается в папку backup в корневой директории плейбука или корневой директории роли, если плейбук является частью роли ansible. Если директория не существует, она создается. | |
| backup_options словарь | Это объект словаря, содержащий настраиваемые параметры, связанные с путем к файлу резервной копии. Значение этого параметра считывается только тогда, когда backup установлено в True. Если backup установлено в false, этот параметр будет проигнорирован. | ||
| dir_path путь | Этот параметр задает путь, заканчивающийся именем директории, в которой будет храниться файл конфигурации резервной копии. Если директория не существует, она будет создана, и имя файла будет либо значением filename, либо именем по умолчанию, как описано в описании параметров filename. Если значение пути не указано, в текущей рабочей директории будет создана директория backup, и конфигурация резервной копии будет скопирована в filename внутри директории backup. | ||
| filename строка | Имя файла, которое будет использоваться для хранения конфигурации резервной копии. Если имя файла не указано, оно будет сгенерировано на основе имени хоста, текущего времени и даты в формате <имя_хоста>_config.<дата>@<время> | ||
| before список / элементы=строка | Упорядоченный набор команд, которые будут помещены в стек команд, если необходимо внести изменение. Это позволяет разработчику плейбука выполнить команды конфигурации перед внесением изменений, не влияя на то, как набор команд сопоставляется с системой. | ||
| defaults логический тип |
| Аргумент defaults повлияет на то, как собирается текущая конфигурация устройства. При значении true команда сбора текущей конфигурации дополняется ключевым словом all. При значении false команда выполняется без ключевого слова all. | |
| diff_against строка |
| При использовании аргумента командной строки ansible-playbook --diff модуль может генерировать сравнения с разными источниками.Если этот параметр настроен как startup, модуль вернёт разницу между текущей конфигурацией и стартовой конфигурацией. Если этот параметр настроен как intended, модуль вернёт разницу между текущей конфигурацией и конфигурацией, предоставленной в аргументе intended_config.Если этот параметр настроен как running, модуль вернёт разницу до и после текущей конфигурации в сравнении с любыми изменениями, внесёнными в конфигурацию устройства. | |
| 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 для NX-API.Этот параметр будет удалён в релизе после 2022-06-01. Для получения дополнительной информации, пожалуйста, обратитесь к руководству NXOS Platform Options. Объект словаря, содержащий данные подключения. | ||
| auth_pass строка | Указывает пароль, который необходимо использовать, если требуется войти в привилегированный режим на удалённом устройстве. Если authorize равно false, то этот аргумент ничего не делает. Если значение не указано в задаче, вместо него используется значение переменной окружения ANSIBLE_NET_AUTH_PASS. | ||
| authorize логический тип |
| Инструктирует модуль войти в привилегированный режим на удалённом устройстве перед отправкой каких-либо команд. Если не указано, устройство попытается выполнить все команды в режиме без привилегий. Если значение не указано в задаче, вместо него используется значение переменной окружения ANSIBLE_NET_AUTHORIZE. | |
| host строка | Указывает имя хоста DNS или адрес для подключения к удалённому устройству через указанный транспорт. Значение host используется в качестве адреса назначения для транспорта. | ||
| password строка | Указывает пароль, используемый для аутентификации подключения к удалённому устройству. Это общий аргумент, используемый для транспорта cli или nxapi. Если значение не указано в задаче, вместо него используется значение переменной окружения ANSIBLE_NET_PASSWORD. | ||
| port целое число | Указывает порт, используемый при построении подключения к удалённому устройству. Это значение относится к транспорту cli или nxapi. Если значение порта не указано в задаче, оно будет по умолчанию соответствовать обычному порту транспорта (cli=22, http=80, https=443). | ||
| ssh_keyfile строка | Указывает SSH-ключ, используемый для аутентификации подключения к удалённому устройству. Этот аргумент используется только для транспорта cli. Если значение не указано в задаче, вместо него используется значение переменной окружения ANSIBLE_NET_SSH_KEYFILE. | ||
| timeout целое число | Указывает таймаут в секундах для связи с сетевым устройством для подключения или отправки команд. Если таймаут истечёт до завершения операции, модуль выдаст ошибку. NX-API может быть медленным при возврате на долго выполняющихся командах (sh mac, sh bgp и т.д.). | ||
| transport строка |
| Настраивает транспортное подключение для подключения к удалённому устройству. Аргумент transport поддерживает подключение к устройству через cli (ssh) или nxapi. | |
| use_proxy логический тип |
| Если no, переменные окружения http_proxy и https_proxy будут проигнорированы. | |
| use_ssl логический тип |
| Настраивает транспорт transport на использование SSL, если значение установлено в yes только при наличии transport=nxapi, в противном случае это значение игнорируется. | |
| логин_пользователя строка | Настраивает имя пользователя для аутентификации подключения к удалённому устройству. Это значение используется для аутентификации входа в CLI или аутентификации nxapi в зависимости от используемого транспорта. Если значение не указано в задании, вместо него используется значение переменной окружения ANSIBLE_NET_USERNAME. | ||
| validate_certs булево |
| Если no, сертификаты SSL не будут проверены. Это следует использовать только на сайтах, находящихся под личным контролем, использующих самозаверенные сертификаты. Если аргумент transport не равен nxapi, это значение игнорируется. | |
| replace строка |
| Указывает модулю способ выполнения конфигурации на устройстве. Если аргумент replace установлен в line, то изменённые строки отправляются на устройство в режиме конфигурации. Если аргумент replace установлен в block, то весь блок команды отправляется на устройство в режиме конфигурации, если какая-либо строка неверна. replace config будет работать только для версий NX-OS, поддерживающих `config replace`. | |
| replace_src строка | Аргумент replace_src предоставляет путь к файлу конфигурации для загрузки в удалённую систему. Этот аргумент используется для замены всей конфигурации файлом. Он используется с аргументом replace со значением config. Он взаимоисключает с аргументами lines и src. Этот аргумент будет работать только для версий NX-OS, которые поддерживают `config replace`. Используйте модуль nxos_file_copy для копирования файла в удалённое устройство, а затем используйте путь с этим аргументом. Строки конфигурации в файле должны быть похожи на то, как они будут отображаться при наличии в текущей конфигурации устройства, включая отступы для обеспечения идемпотентности и правильного diff. | ||
| running_config строка | Модуль по умолчанию подключается к удалённому устройству и извлекает текущую рабочую конфигурацию для использования в качестве основы для сравнения с содержимым источника. Бывают случаи, когда нежелательно, чтобы задача извлекала текущую рабочую конфигурацию для каждой задачи в плейбуке. Аргумент running_config позволяет разработчику передать конфигурацию для использования в качестве базовой конфигурации для сравнения. Строки конфигурации для этого варианта должны быть похожи на то, как они будут отображаться при наличии в текущей конфигурации устройства, включая отступы для обеспечения идемпотентности и правильного diff. псевдонимы: config | ||
| save_when строка |
| При внесении изменений в рабочую конфигурацию устройства, изменения по умолчанию не копируются в энергонезависимую память. Использование этого аргумента изменит это. Если аргумент установлен в всегда, то текущая конфигурация всегда копируется в стартовую конфигурацию, и флаг изменено всегда устанавливается в True. Если аргумент установлен в изменено, то текущая конфигурация копируется в стартовую только в том случае, если она изменилась с момента последней записи в стартовую конфигурацию. Если аргумент установлен в никогда, текущая конфигурация никогда не копируется в стартовую конфигурацию. Если аргумент установлен в изменено, то текущая конфигурация копируется в стартовую конфигурацию только в том случае, если задача внесла изменения. изменено было добавлено в Ansible 2.6. | |
| src путь | Аргумент src предоставляет путь к файлу конфигурации для загрузки в удалённую систему. Путь может быть полным системным путём к файлу конфигурации, если значение начинается с /, или относительным к корню реализованного роли или плейбука. Этот аргумент взаимоисключает с аргументами lines и parents. Строки конфигурации в исходном файле должны быть похожи на то, как они будут отображаться при наличии в текущей конфигурации устройства, включая отступы для обеспечения идемпотентности и правильного diff. | ||
Примечания
Примечание
- Сокращённые команды НЕ являются идемпотентными, см. Вопросы и ответы по сети.
- Для обеспечения идемпотентности и правильного diff строки конфигурации в соответствующих параметрах модуля должны быть похожи на то, как они отображаются, если они присутствуют в текущей конфигурации устройства, включая отступы.
- Сведения об использовании CLI и NX-API см. в руководстве Параметры платформы NXOS
- Дополнительные сведения об использовании Ansible для управления сетевыми устройствами см. в руководстве Руководство по Ansible для сети
- Дополнительные сведения об использовании Ansible для управления устройствами Cisco см. на странице интеграции Cisco cisco.
Примеры
- name: configure top level configuration and save it
cisco.nxos.nxos_config:
lines: hostname {{ inventory_hostname }}
save_when: modified
- name: diff the running-config against a provided config
cisco.nxos.nxos_config:
diff_against: intended
intended_config: "{{ lookup('file', 'master.cfg') }}"
- cisco.nxos.nxos_config:
lines:
- 10 permit ip 192.0.2.1/32 any log
- 20 permit ip 192.0.2.2/32 any log
- 30 permit ip 192.0.2.3/32 any log
- 40 permit ip 192.0.2.4/32 any log
- 50 permit ip 192.0.2.5/32 any log
parents: ip access-list test
before: no ip access-list test
match: exact
- cisco.nxos.nxos_config:
lines:
- 10 permit ip 192.0.2.1/32 any log
- 20 permit ip 192.0.2.2/32 any log
- 30 permit ip 192.0.2.3/32 any log
- 40 permit ip 192.0.2.4/32 any log
parents: ip access-list test
before: no ip access-list test
replace: block
- name: replace config with flat file
cisco.nxos.nxos_config:
replace_src: config.txt
replace: config
- name: for idempotency, use full-form commands
cisco.nxos.nxos_config:
lines:
# - shut
- shutdown
# parents: int eth1/1
parents: interface Ethernet1/1
- name: configurable backup path
cisco.nxos.nxos_config:
backup: yes
backup_options:
filename: backup.cfg
dir_path: /home/user
Возвращаемые значения
Общие возвращаемые значения описаны в разделе, следующие — это поля, уникальные для этого модуля:
| Ключ | Возвращаемое | Описание |
|---|---|---|
| backup_path строка | при backup = да | Полный путь к резервной копии Пример: /playbooks/ansible/backup/nxos_config.2016-07-16@22:28:34 |
| commands список / элементы=строка | всегда | Набор команд, которые будут отправлены на удалённое устройство Пример: ['hostname foo', 'vlan 1', 'name default'] |
| date строка | при backup = да | Дата, извлечённая из имени файла резервной копии Пример: 2016-07-16 |
| filename строка | при backup = да и имя файла не указано в параметрах резервной копии | Имя файла резервной копии Пример: nxos_config.2016-07-16@22:28:34 |
| shortname строка | при backup = да и имя файла не указано в параметрах резервной копии | Полный путь к файлу резервной копии без временной метки Пример: /playbooks/ansible/backup/nxos_config |
| time строка | при backup = да | Время, извлечённое из имени файла резервной копии Пример: 22:28:34 |
| updates список / элементы=строка | всегда | Набор команд, которые будут отправлены на удалённое устройство Пример: ['hostname foo', 'vlan 1', 'name default'] |
Авторы
- Peter Sprygada (@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/cisco/nxos/nxos_config_module.html