Spec-Zone.ru › Ansible

Модуль cisco.nxos.nxos_config — управление разделами конфигурации Cisco NXOS

Примечание

Этот модуль входит в коллекцию cisco.nxos (версия 11.2.0).

Возможно, эта коллекция уже установлена, если вы используете пакет ansible. Она не входит в ansible-core. Чтобы проверить, установлена ли она, выполните ansible-galaxy collection list.

Чтобы установить её, используйте: ansible-galaxy collection install cisco.nxos.

Чтобы использовать её в плейбуке, укажите: cisco.nxos.nxos_config.

Добавлено в cisco.nxos 1.0.0

  • Краткое описание
  • Параметры
  • Примечания
  • Примеры
  • Возвращаемые значения

Краткое описание

  • В конфигурациях Cisco NXOS используется простой синтаксис файлов с блочными отступами для разделения конфигурации на секции. Этот модуль реализует детерминированный способ работы с разделами конфигурации NXOS. Модуль работает как с транспортом CLI, так и с NXAPI.

Примечание

Этому модулю соответствует плагин действий.

Псевдонимы: config

Параметры

Параметр

Комментарии

after

list / elements=string

Упорядоченный набор команд, добавляемых в конец стека команд, если необходимо внести изменение. Как и параметр before, этот параметр позволяет разработчику плейбука добавить набор команд, которые будут выполнены после основного набора команд.

backup

boolean

Этот аргумент заставляет модуль создать полную резервную копию текущей running-config на удалённом устройстве до внесения каких-либо изменений. Если значение backup_options не задано, файл резервной копии записывается в каталог backup в корневом каталоге плейбука или роли, если плейбук входит в роль Ansible. Если каталог не существует, он будет создан.

Варианты:

  • false ← (по умолчанию)
  • true

backup_options

dictionary

Объект dict, содержащий настраиваемые параметры, связанные с путём к файлу резервной копии. Значение этого параметра считывается только тогда, когда для backup задано значение True. Если для backup задано значение false, этот параметр будет молча проигнорирован.

dir_path

path

Этот параметр задаёт путь, оканчивающийся именем каталога, в котором будет храниться файл резервной копии конфигурации. Если каталог не существует, он будет создан. Имя файла будет соответствовать значению filename или имени по умолчанию, описанному в параметре filename. Если путь не задан, в текущем рабочем каталоге будет создан каталог backup, а резервная копия конфигурации будет помещена в filename внутри каталога backup.

filename

string

Имя файла для сохранения резервной копии конфигурации. Если имя файла не задано, оно будет сформировано на основе имени хоста, текущих даты и времени в формате <hostname>_config.<current-date>@<current-time>

before

list / elements=string

Упорядоченный набор команд, помещаемых в стек команд, если необходимо внести изменение. Это позволяет разработчику плейбука выполнить команды настройки до внесения изменений, не влияя на способ сопоставления набора команд с конфигурацией системы.

content

string

Содержимое конфигурации для применения к устройству. Это должен быть текст отрендеренной конфигурации, а не путь к файлу.

Это рекомендуемый способ передачи шаблонных конфигураций. Используйте lookup ansible.builtin.template для рендеринга шаблона Jinja2 и передайте результат этому параметру.

Этот аргумент несовместим с параметрами src, lines, parents и replace_src.

Пример: content: "{{ lookup('ansible.builtin.template', 'config.j2' }}”)

defaults

boolean

Аргумент defaults влияет на то, как устройство возвращает running-config. Если задано значение true, к команде получения running-config добавляется ключевое слово all. Если задано значение false, команда выполняется без ключевого слова all.

Варианты:

  • false ← (по умолчанию)
  • true

diff_against

string

При использовании аргумента командной строки ansible-playbook --diff модуль может формировать различия относительно разных источников.

Если для этого параметра задано значение startup, модуль вернёт различия между running-config и startup-config.

Если для этого параметра задано значение intended, модуль вернёт различия между running-config и конфигурацией, указанной в аргументе intended_config.

Если для этого параметра задано значение running, модуль вернёт различия до и после изменения running-config.

Варианты:

  • "startup"
  • "intended"
  • "running"

diff_ignore_lines

list / elements=string

Используйте этот аргумент, чтобы указать одну или несколько строк, которые следует игнорировать при сравнении различий. Он предназначен для строк конфигурации, автоматически обновляемых системой. В качестве значения аргумента можно передать список регулярных выражений или точных совпадений строк.

intended_config

string

Параметр intended_config задаёт эталонную конфигурацию, которой должен соответствовать узел, и используется для проверки итоговой running-config. Этот аргумент не изменяет настройки удалённого устройства и служит только для проверки соответствия текущей конфигурации устройства эталону. При указании этого аргумента задача также должна изменить значение diff_against и задать ему значение intended. Строки конфигурации для этого значения должны соответствовать тому, как они будут выглядеть в running-configuration устройства, включая отступы, чтобы обеспечить корректное сравнение различий.

lines

псевдонимы: commands

list / elements=string

Упорядоченный набор команд, которые необходимо настроить в разделе. Для обеспечения идемпотентности и корректного сравнения различий команды должны в точности совпадать с командами в running-config устройства. Обратите внимание на синтаксис команд конфигурации: некоторые команды автоматически изменяются анализатором конфигурации устройства.

match

string

Указывает модулю способ сопоставления набора команд с текущей конфигурацией устройства. Если для match задано значение line, команды сопоставляются построчно. Если задано значение strict, строки команд сопоставляются с учётом их положения. Если задано значение exact, строки команд должны полностью совпадать. Наконец, если задано значение none, модуль не будет сравнивать исходную конфигурацию с текущей конфигурацией удалённого устройства.

Варианты:

  • "line" ← (по умолчанию)
  • "strict"
  • "exact"
  • "none"

parents

list / elements=string

Упорядоченный набор родительских элементов, однозначно определяющих раздел или иерархию, относительно которых следует проверять команды. Если аргумент parents не указан, команды проверяются относительно набора команд верхнего уровня или глобальных команд.

replace

string

Указывает модулю способ применения конфигурации на устройстве. Если для аргумента replace задано значение line, изменённые строки передаются устройству в режиме конфигурации. Если задано значение block, весь блок команд передаётся устройству в режиме конфигурации, если хотя бы одна строка не соответствует заданной. Значение replace config работает только в версиях NX-OS с поддержкой `config replace`.

Варианты:

  • "line" ← (по умолчанию)
  • "block"
  • "config"

replace_src

string

Аргумент replace_src задаёт путь к файлу конфигурации, который нужно загрузить в удалённую систему. Этот аргумент используется для полной замены конфигурации обычным файлом. Он применяется вместе с аргументом replace, которому задано значение config. Этот аргумент несовместим с аргументами lines и src. Он работает только в версиях NX-OS с поддержкой `config replace`. Используйте модуль nxos_file_copy, чтобы скопировать обычный файл на удалённое устройство, а затем укажите путь к нему в этом аргументе. Строки конфигурации в файле должны соответствовать тому, как они будут выглядеть в running-configuration устройства, включая отступы, чтобы обеспечить идемпотентность и корректное сравнение различий.

running_config

псевдонимы: config

string

По умолчанию модуль подключается к удалённому устройству и получает текущую running-config, чтобы использовать её как основу для сравнения с содержимым источника. Иногда нежелательно, чтобы задача получала текущую running-config при каждом запуске в плейбуке. Аргумент running_config позволяет передать конфигурацию, которая будет использоваться как базовая для сравнения. Строки конфигурации для этого параметра должны соответствовать тому, как они будут выглядеть в running-configuration устройства, включая отступы, чтобы обеспечить идемпотентность и корректное сравнение различий.

save_when

string

По умолчанию изменения running-configuration устройства не копируются в энергонезависимое хранилище. Этот аргумент позволяет изменить такое поведение. Если задано значение always, running-config всегда копируется в startup-config, а флаг modified всегда устанавливается в True. Если задано значение modified, running-config копируется в startup-config только в том случае, если она изменилась после последнего сохранения в startup-config. Если задано значение never, running-config никогда не копируется в startup-config. Если задано значение changed, running-config копируется в startup-config только в том случае, если задача внесла изменения. Значение changed добавлено в Ansible 2.6.

Варианты:

  • "always"
  • "never" ← (по умолчанию)
  • "modified"
  • "changed"

src

path

Задаёт исходный путь к файлу, содержащему конфигурацию или шаблон конфигурации для загрузки. Путь к исходному файлу может быть абсолютным путём на управляющем узле Ansible или относительным путём от корневого каталога плейбука или роли. Этот аргумент несовместим с аргументами lines, parents, replace_src и content. Строки конфигурации в исходном файле должны соответствовать тому, как они будут выглядеть в running-configuration устройства, включая отступы, чтобы обеспечить идемпотентность и корректное сравнение различий.

ПРИМЕЧАНИЕ: начиная с января 2028 года параметр src больше не будет обрабатывать шаблоны Jinja2. Чтобы использовать шаблонные конфигурации, отрендерите шаблон с помощью lookup ansible.builtin.template и передайте результат параметру content.

Примечания

Примечание

  • Тестирование выполнено на коммутаторах Nexus с Cisco NXOS 9.3(x).
  • Не поддерживается для Cisco MDS.
  • Сокращённые команды НЕ обеспечивают идемпотентность. См. https://docs.ansible.com/ansible/latest/network/user_guide/faq.html#why-do-the-config-modules-always-return-changed-true-with-abbreviated-commands.
  • Для обеспечения идемпотентности и корректного сравнения различий строки конфигурации в соответствующих параметрах модуля должны соответствовать строкам конфигурации устройства, включая отступы.
  • Рекомендуемый способ использования шаблонных конфигураций — отрендерить шаблон с помощью lookup ansible.builtin.template и передать результат параметру content. Использование Jinja2-шаблонов с параметром src считается устаревшим.
  • Сведения об использовании CLI и NX-API см. в :ref:`руководстве по параметрам платформы NXOS <nxos_platform_options>`.
  • Дополнительную информацию об управлении сетевыми устройствами с помощью Ansible см. в :ref:`руководстве по работе с сетями в Ansible <network_guide>`.
  • Дополнительную информацию об управлении устройствами Cisco с помощью Ansible см. на `странице интеграции с Cisco <https://www.ansible.com/integrations/networks/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: true
    backup_options:
      filename: backup.cfg
      dir_path: /home/user

- name: Render a Jinja2 template onto an NXOS device (DEPRECATED - use content parameter)
  cisco.nxos.nxos_config:
    backup: true
    src: nxos_template.j2

- name: Apply templated configuration using content parameter (RECOMMENDED)
  cisco.nxos.nxos_config:
    content: "{{ lookup('ansible.builtin.template', 'nxos_template.j2') }}"
    backup: true

- name: Apply templated configuration with backup options (RECOMMENDED)
  cisco.nxos.nxos_config:
    content: "{{ lookup('ansible.builtin.template', 'nxos_template.j2') }}"
    backup: true
    backup_options:
      filename: backup.cfg
      dir_path: /home/user

- name: Load configuration from pre-rendered template
  cisco.nxos.nxos_config:
    content: |
      interface Ethernet1/1
       description Uplink to Core
       ip address 10.1.1.1/24
       no shutdown

Возвращаемые значения

Общие возвращаемые значения описаны здесь. Ниже перечислены поля, уникальные для этого модуля:

Ключ

Описание

backup_path

string

Полный путь к файлу резервной копии

Возвращается: если backup имеет значение yes

Пример: "/playbooks/ansible/backup/nxos_config.2016-07-16@22:28:34"

commands

list / elements=string

Набор команд, которые будут переданы удалённому устройству

Возвращается: всегда

Пример: ["hostname foo", "vlan 1", "name default"]

date

string

Дата, извлечённая из имени файла резервной копии

Возвращается: если backup имеет значение yes

Пример: "2016-07-16"

filename

string

Имя файла резервной копии

Возвращается: если backup имеет значение yes, а имя файла не задано в параметрах backup

Пример: "nxos_config.2016-07-16@22:28:34"

shortname

string

Полный путь к файлу резервной копии без метки времени

Возвращается: если backup имеет значение yes, а имя файла не задано в параметрах backup

Пример: "/playbooks/ansible/backup/nxos_config"

time

string

Время, извлечённое из имени файла резервной копии

Возвращается: если backup имеет значение yes

Пример: "22:28:34"

updates

list / elements=string

Набор команд, которые будут переданы удалённому устройству

Возвращается: всегда

Пример: ["hostname foo", "vlan 1", "name default"]

Авторы

  • Peter Sprygada (@privateip)

Ссылки на коллекцию

  • Отслеживание проблем
  • Репозиторий (исходный код)

© 2012–2018 Michael DeHaan
© 2018–2025 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
https://docs.ansible.com/projects/ansible/latest/collections/cisco/nxos/nxos_config_module.html

Spec-Zone.ru

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