Spec-Zone.ru › Ansible 2.11

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
строка
    Варианты:
  • startup
  • intended
  • running
При использовании аргумента командной строки 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
строка
    Варианты:
  • cli ←
  • nxapi
Настраивает транспортное подключение для подключения к удалённому устройству. Аргумент transport поддерживает подключение к устройству через cli (ssh) или nxapi.
use_proxy
логический тип
  • нет
  • да ←
Если no, переменные окружения http_proxy и https_proxy будут проигнорированы.
use_ssl
логический тип
  • нет ←
  • да
Настраивает транспорт transport на использование SSL, если значение установлено в yes только при наличии transport=nxapi, в противном случае это значение игнорируется.
END_OF_DOCUMENT_MARKER
логин_пользователя
строка
Настраивает имя пользователя для аутентификации подключения к удалённому устройству. Это значение используется для аутентификации входа в CLI или аутентификации nxapi в зависимости от используемого транспорта. Если значение не указано в задании, вместо него используется значение переменной окружения ANSIBLE_NET_USERNAME.
validate_certs
булево
    Варианты:
  • no ←
  • yes
Если no, сертификаты SSL не будут проверены. Это следует использовать только на сайтах, находящихся под личным контролем, использующих самозаверенные сертификаты. Если аргумент transport не равен nxapi, это значение игнорируется.
replace
строка
    Варианты:
  • line ←
  • block
  • config
Указывает модулю способ выполнения конфигурации на устройстве. Если аргумент 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

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API