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 логический | Этот аргумент заставит модуль создать полную резервную копию текущей Варианты:
|
backup_options словарь | Это объект типа dict, содержащий настраиваемые параметры, относящиеся к пути к файлу резервной копии. Значение этого параметра читается только тогда, когда |
|
dir_path путь |
Этот параметр предоставляет путь, заканчивающийся именем каталога, в котором будет храниться файл конфигурации резервной копии. Если каталога не существует, он будет создан, а имя файла будет либо значением |
|
filename строка |
Имя файла, используемого для хранения резервной копии конфигурации. Если имя файла не указано, оно будет сгенерировано на основе имени хоста, текущей даты и времени в формате <имя_хоста>_config.<дата>@<время> |
before список / элементы=строка | Упорядоченный набор команд, которые нужно добавить в стек команд, если требуется внести изменения. Это позволяет разработчику плейбука выполнить команды конфигурации перед внесением каких-либо изменений, не затрагивая способ сопоставления набора команд с системой. |
defaults логический | Этот аргумент указывает, нужно ли собирать все значения по умолчанию при получении конфигурации удалённого устройства. При включенном значении, модуль получит текущую конфигурацию, выполнив команду Варианты:
|
diff_against строка | При использовании аргумента командной строки Когда этот параметр настроен как startup, модуль вернет разницу между running-config и startup-config. Когда этот параметр настроен как intended, модуль вернет разницу между running-config и конфигурацией, предоставленной в аргументе Когда этот параметр настроен как running, модуль вернет разницу до и после running-config по отношению к любым внесенным изменениям в конфигурацию устройства. Варианты:
|
diff_ignore_lines список / элементы=строка | Используйте этот аргумент для указания одной или нескольких строк, которые следует игнорировать во время сравнения. Это используется для строк в конфигурации, которые автоматически обновляются системой. Этот аргумент принимает список регулярных выражений или точных совпадений строк. |
intended_config строка |
|
lines псевдонимы: команды список / элементы=строка | Упорядоченный набор команд, которые должны быть настроены в разделе. Команды должны быть идентичны тем, которые найдены в running-конфигурации устройства, чтобы обеспечить идемпотентность и правильное сравнение. Обратите внимание на синтаксис команд конфигурации, так как некоторые команды автоматически изменяются анализатором конфигурации устройства. |
match строка | Указывает модулю способ сопоставления набора команд с текущей конфигурацией устройства. Если match установлено в line, команды сопоставляются построчно. Если match установлено в strict, строки команд сопоставляются относительно позиции. Если match установлено в exact, строки команд должны быть точным совпадением. Наконец, если match установлено в none, модуль не будет пытаться сравнить исходную конфигурацию с running-конфигурацией на удаленном устройстве. Варианты:
|
multiline_delimiter строка | Этот аргумент используется при передаче многострочного элемента конфигурации на устройство IOS. Он задаёт символ, используемый в качестве разделителя. Применяется только к действиям конфигурации. По умолчанию: |
parents список / элементы=строка | Упорядоченный набор родителей, которые однозначно идентифицируют раздел или иерархию, с которыми должны сравниваться команды. Если аргумент parents опущен, команды сравниваются с набором команд верхнего уровня или глобальных команд. |
replace string | Указывает модулю способ выполнения конфигурации на устройстве. Если аргумент replace установлен в строку, то изменённые строки будут отправлены на устройство в режиме конфигурации. Если аргумент replace установлен в блок, то весь блок команд будет отправлен на устройство в режиме конфигурации, если какая-либо строка некорректна. Варианты:
|
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. Варианты:
|
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 Пример: |
commands список / элементы=строка | Набор команд, которые будут отправлены на удалённое устройство Возвращается: всегда Пример: |
date string | Дата, извлечённая из имени файла резервной копии Возвращается: при backup = yes Пример: |
filename строка | Имя файла резервной копии Возвращается: при backup = yes и имя файла не указано в параметрах резервного копирования Пример: |
shortname строка | Полный путь к файлу резервной копии без временной метки Возвращается: при backup = yes и имя файла не указано в параметрах резервного копирования Пример: |
time строка | Время, извлечённое из имени файла резервной копии Возвращается: при backup = yes Пример: |
updates список / элементы=строка | Набор команд, которые будут отправлены на удалённое устройство Возвращается: всегда Пример: |
Ссылки на коллекцию
© 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