iosxr_config - Управление разделами конфигурации Cisco IOS XR
Новое в версии 2.1.
Обзор
- Конфигурации Cisco IOS XR используют простой синтаксис блочного отступа для сегментирования конфигурации на разделы. Этот модуль предоставляет реализацию работы с разделами конфигурации IOS XR детерминированным способом.
Требования
Ниже перечислены требования к хосту, на котором выполняется этот модуль.
- ncclient >= 0.5.3 при использовании netconf
- lxml >= 4.1.1 при использовании netconf
Параметры
| Параметр | Варианты/Значения по умолчанию | Комментарии | |
|---|---|---|---|
| admin (добавлено в 2.4) |
| Переходит в режим администрирования для внесения изменений в конфигурацию устройства. | |
| after | Значение по умолчанию: Нет | Упорядоченный набор команд, которые должны быть добавлены в конец стека команд, если требуется изменение. Так же, как и с before, это позволяет разработчику playbook добавить набор команд, которые будут выполнены после набора команд. | |
| backup (добавлено в 2.2) |
| Этот аргумент заставит модуль создать полную резервную копию текущего running-config с удаленного устройства перед внесением любых изменений. Файл резервной копии записывается в папку backup в корневом каталоге playbook или корневом каталоге роли, если playbook является частью роли ansible. Если каталог не существует, он создается. | |
| before | Значение по умолчанию: Нет | Упорядоченный набор команд, которые должны быть добавлены в стек команд, если требуется изменение. Это позволяет разработчику playbook выполнить команды конфигурации перед внесением любых изменений, не влияя на способ сопоставления набора команд с системой. | |
| comment (добавлено в 2.2) | Значение по умолчанию: настроенный iosxr_config | Позволяет указать описание коммита для включения при внесении конфигурации. Если конфигурация не изменена или не внесена, этот аргумент игнорируется. | |
| config | Значение по умолчанию: Нет | Модуль по умолчанию подключается к удаленному устройству и извлекает текущую running-config для использования в качестве основы для сравнения с содержимым source. Бывают случаи, когда для каждой задачи в playbook нежелательно получать текущую running-config. Аргумент config позволяет разработчику передать конфигурацию для использования в качестве базовой конфигурации для сравнения. | |
| force (добавлено в 2.2) |
| Аргумент force указывает модулю не учитывать текущую running-config устройства. При установке в значение true это заставит модуль внести содержимое src в устройство без предварительной проверки, настроено ли это уже. Обратите внимание, что этот аргумент следует считать устаревшим. Для достижения эквивалентного результата установите match=none, который является идемпотентным. Этот аргумент будет удален в будущей версии. | |
| lines | Значение по умолчанию: Нет | Упорядоченный набор команд, которые должны быть настроены в разделе. Команды должны быть абсолютно такими же, как и в running-config устройства. Обратите внимание на синтаксис команд конфигурации, так как некоторые команды автоматически изменяются парсером конфигурации устройства. псевдонимы: команды | |
| match |
| Указывает модулю способ сравнения набора команд с текущей конфигурацией устройства. Если match установлен в строка, команды сравниваются построчно. Если match установлен в строго, строки команд сравниваются с учетом позиции. Если match установлен в точно, строки команд должны совпадать. Наконец, если match установлен в нет, модуль не будет пытаться сравнить исходную конфигурацию с текущей конфигурацией на удаленном устройстве. | |
| parents | Значение по умолчанию: Нет | Упорядоченный набор родительских элементов, которые однозначно идентифицируют раздел или иерархию, с которой должны сравниваться команды. Если аргумент parents опущен, команды сравниваются с набором команд верхнего уровня или глобальных команд. | |
| provider | Значение по умолчанию: Нет | Устарело Начиная с Ansible 2.5, рекомендуется использовать connection: network_cli. Дополнительную информацию см. в Руководстве по сетям. Словарь, содержащий данные подключения. | |
| username | Настраивает имя пользователя для аутентификации подключения к удаленному устройству. Это значение используется для аутентификации сеанса SSH. Если значение не указано в задаче, используется значение переменной среды ANSIBLE_NET_USERNAME. | ||
| host обязательно | Указывает имя хоста DNS или адрес для подключения к удаленному устройству по указанному протоколу передачи. Значение хоста используется в качестве адреса назначения для передачи. | ||
| ssh_keyfile | Указывает SSH-ключ для аутентификации подключения к удаленному устройству. Это путь к ключу, используемому для аутентификации сеанса SSH. Если значение не указано в задаче, используется значение переменной среды ANSIBLE_NET_SSH_KEYFILE. | ||
| timeout | Значение по умолчанию: 10 | Указывает таймаут в секундах для связи с сетевым устройством для подключения или отправки команд. Если таймаут истекает до завершения операции, модуль вернет ошибку. | |
| password | Значение по умолчанию: Нет | Указывает пароль для аутентификации подключения к удаленному устройству. Это значение используется для аутентификации сеанса SSH. Если значение не указано в задаче, используется значение переменной среды ANSIBLE_NET_PASSWORD. | |
| port | Значение по умолчанию: 22 | Указывает порт, используемый при построении подключения к удаленному устройству. | |
| replace |
| Указывает модулю способ внесения конфигурации в устройство. Если аргумент replace установлен в строка, измененные строки отправляются устройству в режиме конфигурации. Если аргумент replace установлен в блок, весь блок команд отправляется устройству в режиме конфигурации, если какая-либо строка не верна. | |
| src (добавлено в 2.2) | Значение по умолчанию: Нет | Указывает путь к файлу, содержащему конфигурацию или шаблон конфигурации для загрузки. Путь к исходному файлу может быть полным путем на хосте Ansible или относительным путем от корневого каталога playbook или роли. Этот аргумент взаимоисключает lines, parents. | |
Примечания
Примечание
- Тестировалось с IOS XRv 6.1.2
- Этот модуль не поддерживает подключение netconf
- Укороченные команды НЕ идемпотентны, см. Вопросы и ответы по сетям.
- Избегайте изменений, которые могут нарушить работу службы (например, IP-адрес управления) при использовании config replace.
- Не используйте
endв файле конфигурации replace. - Дополнительную информацию об использовании Ansible для управления сетевыми устройствами см. в Руководстве по сетям Ansible
- Дополнительную информацию об использовании Ansible для управления устройствами Cisco см. на странице интеграции Cisco.
Примеры
- name: configure top level configuration
iosxr_config:
lines: hostname {{ inventory_hostname }}
- name: configure interface settings
iosxr_config:
lines:
- description test interface
- ip address 172.31.1.1 255.255.255.0
parents: interface GigabitEthernet0/0/0/0
- name: load a config from disk and replace the current config
iosxr_config:
src: config.cfg
replace: config
backup: yes
- name: for idempotency, use full-form commands
iosxr_config:
lines:
# - shut
- shutdown
# parents: int g0/0/0/1
parents: interface GigabitEthernet0/0/0/1
Значения возврата
Общие значения возврата описаны в здесь, следующие поля уникальны для этого модуля:
| Ключ | Возвращаемое значение | Описание |
|---|---|---|
| backup_path строка | если резервное копирование включено | Полный путь к файлу резервной копии Пример: /playbooks/ansible/backup/iosxr01.2016-07-16@22:28:34 |
| commands список | Если есть команды для выполнения на хосте | Набор команд, которые будут отправлены на удаленное устройство Пример: ['hostname foo', 'router ospf 1', 'router-id 1.1.1.1'] |
Статус
Этот модуль помечен как предварительный просмотр, что означает, что его интерфейс не гарантируется обратной совместимостью.
Поддержка
Для получения дополнительной информации о поддержке этого модуля компанией Red Hat, пожалуйста, обратитесь к этой статье базы знаний
Автор
- Ricardo Carrillo Cruz (@rcarrillocruz)
Подсказка
Если вы обнаружите какие-либо проблемы в этой документации, вы можете отредактировать этот документ, чтобы улучшить его.
© 2012–2018 Michael DeHaan
© 2018–2019 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
https://docs.ansible.com/ansible/2.5/modules/iosxr_config_module.html