Spec-Zone.ru › Ansible

cisco.ios.ios_config модуль — Модуль для управления разделами конфигурации.

Примечание

Этот модуль является частью коллекции cisco.ios (версия 8.0.0).

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

Для установки используйте: ansible-galaxy collection install cisco.ios.

Чтобы использовать его в книге задач, укажите: cisco.ios.ios_config.

Новый в cisco.ios 1.0.0

  • Обзор
  • Параметры
  • Примечания
  • Примеры
  • Возвращаемые значения

Обзор

  • Конфигурации Cisco IOS используют простой синтаксис отступов блоков для разделения конфигурации на разделы. Этот модуль предоставляет реализацию для работы с разделами конфигурации IOS детерминированным способом.

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

Параметры

Параметр

Комментарии

after

список / элементы=строка

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

backup

логический

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

Варианты:

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

backup_options

словарь

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

dir_path

путь

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

filename

строка

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

before

список / элементы=строка

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

defaults

логический

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

Варианты:

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

diff_against

строка

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

Когда этот параметр настроен как startup, модуль вернет разницу между running-config и startup-config.

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

Когда этот параметр настроен как running, модуль вернет разницу до и после running-config по отношению к любым внесенным изменениям в конфигурацию устройства.

Варианты:

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

diff_ignore_lines

список / элементы=строка

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

intended_config

строка

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

lines

псевдонимы: команды

список / элементы=строка

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

match

строка

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

Варианты:

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

multiline_delimiter

строка

Этот аргумент используется при передаче многострочного элемента конфигурации на устройство IOS. Он задаёт символ, используемый в качестве разделителя. Применяется только к действиям конфигурации.

По умолчанию: "@"

parents

список / элементы=строка

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

replace

string

Указывает модулю способ выполнения конфигурации на устройстве. Если аргумент replace установлен в строку, то изменённые строки будут отправлены на устройство в режиме конфигурации. Если аргумент replace установлен в блок, то весь блок команд будет отправлен на устройство в режиме конфигурации, если какая-либо строка некорректна.

Варианты:

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

running_config

aliases: config

string

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

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.5.

Варианты:

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

src

string

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

Примечания

Примечание

  • Тестировалось на Cisco IOSXE версии 17.3 на CML.
  • Сокращённые команды НЕ идемпотентны, см. https://docs.ansible.com/ansible/latest/network/user_guide/faq.html#why-do-the-config-modules-always-return-changed-true-with-abbreviated-commands
  • Для обеспечения идемпотентности и корректного diff строки конфигурации в соответствующих параметрах модуля должны быть аналогичны тому, как они отображаются в конфигурации running на устройстве, включая отступы.
  • Этот модуль работает с соединениями network_cli. См. https://docs.ansible.com/ansible/latest/network/user_guide/platform_ios.html
  • Для получения дополнительной информации об использовании Ansible для управления сетевыми устройствами см. :ref:`Руководство по Ansible для сети <network_guide>`
  • Для получения дополнительной информации об использовании Ansible для управления устройствами Cisco см. страницу интеграции Cisco <https://www.ansible.com/integrations/networks/cisco>.

Примеры

- name: Configure top level configuration
  cisco.ios.ios_config:
    lines: hostname {{ inventory_hostname }}

- name: Configure interface settings
  cisco.ios.ios_config:
    lines:
      - description test interface
      - ip address 172.31.1.1 255.255.255.0
    parents: interface Ethernet1

- name: Configure ip helpers on multiple interfaces
  cisco.ios.ios_config:
    lines:
      - ip helper-address 172.26.1.10
      - ip helper-address 172.26.3.8
    parents: "{{ item }}"
  with_items:
    - interface Ethernet1
    - interface Ethernet2
    - interface GigabitEthernet1

- name: Configure policer in Scavenger class
  cisco.ios.ios_config:
    lines:
      - conform-action transmit
      - exceed-action drop
    parents:
      - policy-map Foo
      - class Scavenger
      - police cir 64000

- name: Load new acl into device
  cisco.ios.ios_config:
    lines:
      - 10 permit ip host 192.0.2.1 any log
      - 20 permit ip host 192.0.2.2 any log
      - 30 permit ip host 192.0.2.3 any log
      - 40 permit ip host 192.0.2.4 any log
      - 50 permit ip host 192.0.2.5 any log
    parents: ip access-list extended test
    before: no ip access-list extended test
    match: exact

- name: Check the running-config against master config
  cisco.ios.ios_config:
    diff_against: intended
    intended_config: "{{ lookup('file', 'master.cfg') }}"

- name: Check the startup-config against the running-config
  cisco.ios.ios_config:
    diff_against: startup
    diff_ignore_lines:
      - ntp clock .*

- name: Save running to startup when modified
  cisco.ios.ios_config:
    save_when: modified

- name: For idempotency, use full-form commands
  cisco.ios.ios_config:
    lines:
      # - shut
      - shutdown
    # parents: int gig1/0/11
    parents: interface GigabitEthernet1/0/11

# Set boot image based on comparison to a group_var (version) and the version
# that is returned from the `ios_facts` module
- name: Setting boot image
  cisco.ios.ios_config:
    lines:
      - no boot system
      - boot system flash bootflash:{{new_image}}
    host: "{{ inventory_hostname }}"
  when: ansible_net_version != version

- name: Render a Jinja2 template onto an IOS device
  cisco.ios.ios_config:
    backup: true
    src: ios_template.j2

- name: Configurable backup path
  cisco.ios.ios_config:
    src: ios_template.j2
    backup: true
    backup_options:
      filename: backup.cfg
      dir_path: /home/user

# Example ios_template.j2
# ip access-list extended test
#  permit ip host 192.0.2.1 any log
#  permit ip host 192.0.2.2 any log
#  permit ip host 192.0.2.3 any log
#  permit ip host 192.0.2.4 any log

Значения возврата

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

Ключ

Описание

backup_path

string

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

Возвращается: при backup = yes

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

commands

список / элементы=строка

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

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

Пример: ["hostname foo", "router ospf 1", "router-id 192.0.2.1"]

date

string

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

Возвращается: при backup = yes

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

filename

строка

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

Возвращается: при backup = yes и имя файла не указано в параметрах резервного копирования

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

shortname

строка

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

Возвращается: при backup = yes и имя файла не указано в параметрах резервного копирования

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

time

строка

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

Возвращается: при backup = yes

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

updates

список / элементы=строка

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

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

Пример: ["hostname foo", "router ospf 1", "router-id 192.0.2.1"]

Авторы

  • Peter Sprygada (@privateip)

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

  • Система отслеживания ошибок
  • Репозиторий (источники)

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

Spec-Zone.ru

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