nxos_config – Управление секциями конфигурации Cisco NXOS
Новая версия 2.1.
Описание
- Конфигурации Cisco NXOS используют простой синтаксис блочного отступа для сегментации конфигурации на секции. Этот модуль предоставляет реализацию для работы с секциями конфигурации NXOS детерминированным способом. Этот модуль работает с транспортными средствами CLI или NXAPI.
Параметры
| Параметр | Варианты/Значения по умолчанию | Комментарии | |
|---|---|---|---|
| after - | Упорядоченный набор команд, которые добавляются в конец стека команд, если требуется изменение. Так же, как и с параметром before, это позволяет разработчику плейбука добавить набор команд, которые будут выполнены после набора команд. | ||
| backup boolean добавлено в 2.2 |
| Этот аргумент заставит модуль создать полную резервную копию текущей running-config удалённого устройства перед внесением каких-либо изменений. Если значение backup_options не указано, резервный файл записывается в папку backup в корневом каталоге плейбука или в корневом каталоге роли, если плейбук является частью роли Ansible. Если директория не существует, она будет создана. | |
| backup_options словарь добавлено в 2.8 | Это объект словаря, содержащий настраиваемые параметры, связанные с путём к резервному файлу. Значение этого параметра считывается только тогда, когда backup установлено в True. Если backup установлено в false, этот параметр будет проигнорирован. | ||
| dir_path путь | Этот параметр предоставляет путь, заканчивающийся именем каталога, в котором будет храниться файл конфигурации резервной копии. Если каталог не существует, он будет сначала создан, а имя файла — это либо значение filename, либо имя файла по умолчанию, как описано в описании параметров filename. Если значение пути не указано, в текущей рабочей директории будет создана директория backup, и конфигурация резервной копии будет скопирована в filename внутри директории backup. | ||
| filename - | Имя файла, используемого для хранения резервной копии конфигурации. Если имя файла не указано, оно будет сгенерировано на основе имени хоста, текущей даты и времени в формате <имя_хоста>_config.<дата>@<время>. | ||
| before - | Упорядоченный набор команд, которые добавляются в стек команд, если требуется изменение. Это позволяет разработчику плейбука выполнить команды конфигурации перед внесением каких-либо изменений, не влияя на то, как набор команд сопоставляется с системой. | ||
| defaults boolean добавлено в 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 по отношению к любым изменениям, внесённым в конфигурацию устройства. | |
| diff_ignore_lines - добавлено в 2.4 | Используйте этот аргумент для указания одной или нескольких строк, которые должны быть проигнорированы во время сравнения. Это используется для строк в конфигурации, которые автоматически обновляются системой. Этот аргумент принимает список регулярных выражений или точных совпадений строк. | ||
| intended_config - добавлено в 2.4 | intended_config предоставляет основную конфигурацию, к которой должен соответствовать узел, и используется для проверки конечной running-config. Этот аргумент не будет изменять какие-либо настройки на удалённом устройстве и используется строго для проверки соответствия текущей конфигурации устройства. При указании этого аргумента задача также должна изменить значение diff_against и установить его в intended. | ||
| lines - | Упорядоченный набор команд, которые должны быть сконфигурированы в разделе. Команды должны быть точно такими же, как и в running-config устройства. Обратите внимание на синтаксис команды конфигурации, так как некоторые команды автоматически изменяются парсером конфигурации устройства. псевдонимы: команды | ||
| match - |
| Инструктирует модуль, как выполнять сопоставление набора команд с текущей конфигурацией устройства. Если match установлен в строка, команды сопоставляются по строкам. Если match установлен в строго, строки команд сопоставляются с учётом позиции. Если match установлен в точно, строки команд должны быть точным совпадением. Наконец, если match установлен в ничего, модуль не будет пытаться сравнить исходную конфигурацию с текущей конфигурацией на удалённом устройстве. | |
| parents - | Упорядоченный набор родительских элементов, которые однозначно идентифицируют раздел или иерархию, по которым должны быть проверены команды. Если аргумент parents опущен, команды проверяются по отношению к набору команд верхнего уровня или глобальных команд. | ||
| provider словарь | Устаревший Начиная с Ansible 2.5, рекомендуется использовать connection: network_cli.Этот параметр требуется только если вы используете NX-API. Для получения дополнительной информации см. руководство по параметрам платформы NXOS NXOS Platform Options. Объект словаря, содержащий данные соединения. | ||
| auth_pass строка добавлено в 2.5.3 | Указывает пароль, который необходимо использовать для входа в привилегированный режим на удалённом устройстве. Если authorize ложно, то этот аргумент ничего не делает. Если значение не указано в задаче, вместо него будет использовано значение переменной окружения ANSIBLE_NET_AUTH_PASS. | ||
| authorize boolean добавлено в 2.5.3 |
| Инструктирует модуль войти в привилегированный режим на удалённом устройстве перед отправкой любых команд. Если не указано, устройство попытается выполнить все команды в режиме без привилегий. Если значение не указано в задаче, вместо него будет использовано значение переменной окружения ANSIBLE_NET_AUTHORIZE. | |
| host строка / обязательно | Указывает имя хоста DNS или адрес для подключения к удалённому устройству по указанному транспорту. Значение host используется в качестве адреса назначения для транспорта. | ||
| password строка | Указывает пароль для аутентификации подключения к удалённому устройству. Этот аргумент обычно используется для транспортов cli или nxapi. Если значение не указано в задаче, вместо него будет использовано значение переменной окружения ANSIBLE_NET_PASSWORD. | ||
| port целое число | Значение по умолчанию: "0 (использовать стандартный порт)" | Указывает порт для использования при построении соединения с удалённым устройством. Это значение относится к транспорту cli или nxapi. Значение порта будет по умолчанию соответствовать стандартному порту соответствующего транспорта, если не указано в задаче (cli=22, http=80, https=443). | |
| ssh_keyfile строка | Указывает SSH-ключ для аутентификации подключения к удалённому устройству. Этот аргумент используется только для транспорта cli. Если значение не указано в задаче, вместо него будет использовано значение переменной окружения ANSIBLE_NET_SSH_KEYFILE. | ||
| timeout целое число добавлено в 2.3 | Значение по умолчанию: 10 | Устанавливает таймаут в секундах для связи с сетевым устройством при подключении или отправке команд. Если таймаут истечёт до завершения операции, модуль вернёт ошибку. NX-API может медленно реагировать на длительные команды (sh mac, sh bgp и т.д.). | |
| transport строка / обязательно |
| Настраивает транспортное соединение для подключения к удалённому устройству. Аргумент transport поддерживает подключение к устройству через cli (ssh) или nxapi. | |
| use_proxy логическое значение добавлено в 2.5 |
| Если no, переменные окружения http_proxy и https_proxy будут проигнорированы. | |
| use_ssl логическое значение |
| Настраивает transport для использования SSL, если значение установлено в yes только тогда, когда transport=nxapi, в противном случае это значение игнорируется. | |
| username строка | Настраивает имя пользователя для аутентификации соединения с удалённым устройством. Это значение используется для аутентификации входа в CLI или аутентификации nxapi в зависимости от используемого транспорта. Если значение не указано в задаче, используется значение переменной окружения ANSIBLE_NET_USERNAME. | ||
| validate_certs логическое значение |
| Если no, сертификаты SSL не будут проверяться. Это следует использовать только на сайтах, контролируемых лично, которые используют самозаверяемые сертификаты. Если аргумент transport не является nxapi, это значение игнорируется. | |
| replace - |
| Указывает модулю способ выполнения конфигурации на устройстве. Если аргумент replace установлен в line, изменённые строки отправляются устройству в режиме конфигурации. Если аргумент replace установлен в block, весь блок команды отправляется на устройство в режиме конфигурации, если какая-либо строка некорректна. replace config поддерживается только на устройствах Nexus 9K. | |
| replace_src - добавлено в 2.5 | Аргумент replace_src предоставляет путь к файлу конфигурации для загрузки в удалённую систему. Этот аргумент используется для замены всей конфигурации на файл-список. Он используется с аргументом replace со значением config. Он взаимоисключает аргументы lines и src. Этот аргумент поддерживается на устройствах Nexus 9K. Используйте модуль nxos_file_copy для копирования файла-списка на удалённое устройство, а затем используйте путь с этим аргументом. | ||
| running_config - добавлено в 2.4 | Модуль по умолчанию подключается к удалённому устройству и получает текущую конфигурацию running-config для использования в качестве основы для сравнения с содержимым источника. Иногда нежелательно, чтобы задача получала текущую running-config для каждой задачи в playbook. Аргумент running_config позволяет разработчику передать конфигурацию для использования в качестве базовой конфигурации сравнения. псевдонимы: config | ||
| save_when - добавлено в 2.4 |
| Когда изменения вносятся в текущую конфигурацию устройства, изменения по умолчанию не копируются в постоянную память. Используя этот аргумент, это будет изменено перед этим. Если аргумент установлен в always, текущая конфигурация всегда будет скопирована в конфигурацию startup, и флаг modified всегда будет установлен в True. Если аргумент установлен в modified, текущая конфигурация будет скопирована в конфигурацию startup только в том случае, если она изменилась с момента последнего сохранения в startup-конфигурацию. Если аргумент установлен в never, текущая конфигурация никогда не будет скопирована в конфигурацию startup. Если аргумент установлен в changed, текущая конфигурация будет скопирована в конфигурацию startup только в том случае, если задача внесла изменение. changed был добавлен в Ansible 2.6. | |
| src - добавлено в 2.2 | Аргумент src предоставляет путь к файлу конфигурации для загрузки в удалённую систему. Путь может быть полным системным путём к файлу конфигурации, если значение начинается с /, или относительным к корню реализованной роли или playbook. Этот аргумент взаимоисключает аргументы lines и parents. | ||
Примечания
Примечание
- Сокращённые команды НЕ идемпотентны, см. Вопросы и ответы о сети.
- Дополнительную информацию об использовании CLI и NX-API см. в руководстве по платформам NXOS.
- Дополнительную информацию об использовании Ansible для управления сетевыми устройствами см. в руководстве по сетям Ansible.
- Дополнительную информацию об использовании Ansible для управления устройствами Cisco см. на странице интеграции Cisco.
Примеры
---
- name: configure top level configuration and save it
nxos_config:
lines: hostname {{ inventory_hostname }}
save_when: modified
- name: diff the running-config against a provided config
nxos_config:
diff_against: intended
intended_config: "{{ lookup('file', 'master.cfg') }}"
- 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
- 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
nxos_config:
replace_src: config.txt
replace: config
- name: for idempotency, use full-form commands
nxos_config:
lines:
# - shut
- shutdown
# parents: int eth1/1
parents: interface Ethernet1/1
- name: configurable backup path
nxos_config:
backup: yes
backup_options:
filename: backup.cfg
dir_path: /home/user
Значения возврата
Общие значения возврата описаны здесь, следующие являются полями, уникальными для этого модуля:
| Ключ | Возвращаемое значение | Описание |
|---|---|---|
| backup_path строка | при backup = yes | Полный путь к резервной копии файла Пример: /playbooks/ansible/backup/nxos_config.2016-07-16@22:28:34 |
| commands список | всегда | Набор команд, которые будут отправлены на удалённое устройство Пример: ['hostname foo', 'vlan 1', 'name default'] |
| date строка | при backup = yes | Дата, извлеченная из имени файла резервной копии Пример: 2016-07-16 |
| filename строка | при backup = yes и filename не указан в опциях резервной копии | Имя файла резервной копии Пример: nxos_config.2016-07-16@22:28:34 |
| shortname строка | при backup = yes и filename не указан в опциях резервной копии | Полный путь к файлу резервной копии без временной метки Пример: /playbooks/ansible/backup/nxos_config |
| time строка | при backup = yes | Время, извлеченное из имени файла резервной копии Пример: 22:28:34 |
| updates список | всегда | Набор команд, которые будут отправлены на удалённое устройство Пример: ['hostname foo', 'vlan 1', 'name default'] |
Статус
- Этот модуль не гарантирует обратную совместимость интерфейса. [превью]
- Этот модуль поддерживается командой Ansible по работе с сетями. [сеть]
Поддержка 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.8/modules/nxos_config_module.html