cisco.iosxr.iosxr_config – Управление разделами конфигурации Cisco IOS XR
Примечание
Этот плагин входит в коллекцию cisco.iosxr (версия 1.2.0).
Для его установки используйте: ansible-galaxy collection install cisco.iosxr.
Чтобы использовать его в playbook, укажите: cisco.iosxr.iosxr_config.
Новое в версии 1.0.0: of cisco.iosxr
Обзор
- Конфигурации Cisco IOS XR используют простой синтаксис с отступами для разбиения конфигурации на разделы. Этот модуль предоставляет реализацию для работы с разделами конфигурации IOS XR детерминированным способом.
Примечание
У этого модуля есть соответствующий плагин действий.
Параметры
| Параметр | Варианты/Значения по умолчанию | Комментарии | |
|---|---|---|---|
| admin boolean |
| Переходит в режим администрирования для внесения изменений в конфигурацию устройства. | |
| after list / elements=string | Упорядоченный набор команд, которые будут добавлены в конец стека команд, если требуется внести изменения. Подобно параметру before, это позволяет разработчику конфигурационного файла добавить набор команд, которые будут выполнены после набора команд. | ||
| backup boolean |
| Этот аргумент заставит модуль создать полную резервную копию текущей running-config с удаленного устройства перед внесением каких-либо изменений. Если значение backup_options не указано, файл резервной копии записывается в папку backup в корневом каталоге playbook или в корневом каталоге роли, если playbook является частью роли Ansible. Если каталог не существует, он создается. | |
| backup_options dictionary | Это объект типа dict, содержащий настраиваемые параметры, связанные с путем к файлу резервной копии. Значение этого параметра считывается только когда backup установлено в yes. Если backup установлено в no, этот параметр будет проигнорирован. | ||
| dir_path path | Этот параметр предоставляет путь, заканчивающийся именем каталога, в котором будет храниться файл конфигурации резервной копии. Если каталог не существует, он будет сначала создан, а имя файла — это значение filename или имя файла по умолчанию, как описано в filename описании параметров. Если значение пути не указано, в этом случае будет создан каталог backup в текущей рабочей директории, и конфигурация резервной копии будет скопирована в filename внутри каталога backup. | ||
| filename string | Имя файла, которое будет использоваться для хранения резервной копии конфигурации. Если имя файла не указано, оно будет сгенерировано на основе имени хоста, текущей даты и времени в формате <имя_хоста>_config.<дата>@<время>. | ||
| before list / elements=string | Упорядоченный набор команд, которые будут помещены в стек команд, если необходимо внести изменения. Это позволяет разработчику конфигурационного файла выполнить команды конфигурации до внесения любых изменений, не влияя на то, как набор команд сопоставляется с системой. | ||
| comment string | Значение по умолчанию: "configured by iosxr_config" | Позволяет указать описание коммита, которое будет включено при коммите конфигурации. Если конфигурация не изменена или не коммитирована, этот аргумент игнорируется. | |
| config string | Модуль по умолчанию подключается к удалённому устройству и извлекает текущую конфигурацию, чтобы использовать её в качестве основы для сравнения с содержимым источника. Иногда нежелательно, чтобы задача получала текущую конфигурацию для каждой задачи в playbook. Аргумент config позволяет реализатору передать конфигурацию, используемую в качестве базовой конфигурации для сравнения. | ||
| exclusive boolean |
| Переходит в режим эксклюзивной конфигурации, который блокирует всех пользователей от внесения изменений в конфигурацию до окончания эксклюзивной сессии. | |
| force boolean |
| Аргумент force указывает модулю не учитывать текущую рабочую конфигурацию устройства. Если он установлен в true, это заставит модуль поместить содержимое src на устройство без предварительной проверки, настроено ли оно уже. Обратите внимание, что этот аргумент следует считать устаревшим. Для достижения эквивалентного результата следует установить match=none, что является идемпотентным. Этот аргумент будет удален в будущей версии. | |
| label string | Позволяет указать метку коммита, которая будет включена при коммите конфигурации. Действительная метка должна начинаться с буквы и не превышать 30 символов, допускаются только буквы, цифры, дефисы и нижние подчеркивания. Если конфигурация не изменена или не коммитирована, этот аргумент игнорируется. | ||
| lines list / elements=string | Упорядоченный набор команд, которые должны быть настроены в разделе. Команды должны быть точно такими же, как и в текущей рабочей конфигурации устройства. Убедитесь, что вы учли синтаксис команд конфигурации, так как некоторые команды автоматически модифицируются анализатором конфигурации устройства. Псевдонимы: команды | ||
| match string |
| Указывает модулю способ сопоставления набора команд с текущей конфигурацией устройства. Если match установлен в line, команды сопоставляются построчно. Если match установлен в strict, строки команд сопоставляются с учётом позиции. Если match установлен в exact, строки команд должны точно совпадать. Наконец, если match установлен в none, модуль не будет пытаться сравнивать исходную конфигурацию с текущей конфигурацией удалённого устройства. | |
| parents list / elements=string | Упорядоченный набор родителей, которые однозначно идентифицируют раздел или иерархию, с которой должны сравниваться команды. Если аргумент parents опущен, команды сравниваются с набором команд верхнего уровня или глобальных команд. | ||
| provider dictionary | Устарело Начиная с Ansible 2.5 рекомендуется использовать connection: network_cli. Для получения дополнительной информации см. Руководство по сети. Объект dict, содержащий данные подключения. | ||
| host string | Указывает имя хоста DNS или адрес для подключения к удалённому устройству по указанному транспорту. Значение host используется в качестве адреса назначения для транспорта. | ||
| password string | Указывает пароль для аутентификации подключения к удалённому устройству. Это значение используется для аутентификации SSH-сессии. Если значение не указано в задаче, используется значение переменной окружения ANSIBLE_NET_PASSWORD. | ||
| port integer | Указывает порт для подключения к удалённому устройству. | ||
| ssh_keyfile path | Указывает SSH-ключ для аутентификации подключения к удалённому устройству. Это значение — путь к ключу, используемому для аутентификации SSH-сессии. Если значение не указано в задаче, используется значение переменной окружения ANSIBLE_NET_SSH_KEYFILE. | ||
| timeout integer | Указывает таймаут в секундах для связи с сетевым устройством при подключении или отправке команд. Если таймаут истекает до завершения операции, модуль вернёт ошибку. | ||
| transport string |
| Указывает тип транспорта подключения. | |
| username string | Указывает имя пользователя для аутентификации подключения к удалённому устройству. Это значение используется для аутентификации SSH-сессии. Если значение не указано в задаче, используется значение переменной окружения ANSIBLE_NET_USERNAME. | ||
| replace string |
| Указывает модулю способ внесения конфигурации на устройство. Если аргумент replace установлен в line, изменённые строки отправляются на устройство в режиме конфигурации. Если аргумент replace установлен в block, весь блок команд отправляется на устройство в режиме конфигурации, если какая-либо строка некорректна. | |
| src path | Указывает путь к файлу, содержащему конфигурацию или шаблон конфигурации для загрузки. Путь к исходному файлу может быть полным путём на хосте Ansible или относительным путём от корневого каталога playbook или роли. Этот аргумент взаимоисключающий с lines, parents. | ||
Примечания
Примечание
- Этот модуль работает с подключением
network_cli. См. Параметры платформы IOS-XR. - Проверено на IOS XRv 6.1.3.
- Этот модуль не поддерживает подключение
netconf - Сокращённые команды НЕ идемпотентны, см. L(Вопросы и ответы по сети,../network/user_guide/faq.html
- Избегайте изменений, нарушающих работу сервиса (например, IP-адреса управления) из конфигурации replace.
- Не используйте
endв файле конфигурации replace. - Дополнительную информацию об использовании Ansible для управления сетевыми устройствами см. в Руководстве по Ansible для сети.
- Дополнительную информацию об использовании Ansible для управления устройствами Cisco см. на странице интеграции Cisco.
Примеры
- name: configure top level configuration
cisco.iosxr.iosxr_config:
lines: hostname {{ inventory_hostname }}
- name: configure interface settings
cisco.iosxr.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
cisco.iosxr.iosxr_config:
src: config.cfg
replace: config
backup: yes
- name: for idempotency, use full-form commands
cisco.iosxr.iosxr_config:
lines:
# - shut
- shutdown
# parents: int g0/0/0/1
parents: interface GigabitEthernet0/0/0/1
- name: configurable backup path
cisco.iosxr.iosxr_config:
src: config.cfg
backup: yes
backup_options:
filename: backup.cfg
dir_path: /home/user
Значения возврата
Общие значения возврата описаны в этом разделе, следующие поля уникальны для данного модуля:
| Ключ | Возвращаемое значение | Описание |
|---|---|---|
| backup_path строка | при backup = yes | Полный путь к резервной копии Пример: /playbooks/ansible/backup/iosxr01_config.2016-07-16@22:28:34 |
| commands список / элементы=строка | если есть команды для выполнения на хосте | Набор команд, которые будут отправлены на удалённое устройство Пример: ['hostname foo', 'router ospf 1', 'router-id 1.1.1.1'] |
| date строка | при backup = yes | Дата, извлечённая из имени файла резервной копии Пример: 2016-07-16 |
| filename строка | при backup = yes и имя файла не указано в параметрах backup | Имя файла резервной копии Пример: iosxr01_config.2016-07-16@22:28:34 |
| shortname строка | при backup = yes и имя файла не указано в параметрах backup | Полный путь к файлу резервной копии без временной метки Пример: /playbooks/ansible/backup/iosxr01_config |
| time строка | при backup = yes | Время, извлечённое из имени файла резервной копии Пример: 22:28:34 |
Авторы
- 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.10/collections/cisco/iosxr/iosxr_config_module.html