netconf_config – конфигурация устройства netconf
Новая в версии 2.2.
Обзор
- Netconf — протокол управления сетью, разработанный и стандартизированный IETF. Он документирован в RFC 6241.
- Этот модуль позволяет пользователю отправлять XML-файл конфигурации устройству netconf и определять, было ли изменение конфигурации.
Требования
Ниже перечислены требования к хосту, на котором выполняется этот модуль.
- ncclient
Параметры
| Параметр | Варианты/Значения по умолчанию | Комментарии |
|---|---|---|
| backup логический тип добавлен в 2.7 |
| Этот аргумент заставит модуль создать полную резервную копию текущего running-config удаленного устройства перед внесением любых изменений. Файл резервной копии записывается в папку backup в корневой директории playbook или корневой директории роли, если playbook является частью роли ansible. Если директория не существует, она будет создана. |
| commit логический тип добавлен в 2.7 |
| Этот логический флаг контролирует, должны ли быть сохранены изменения конфигурации после редактирования кандидатского хранилища данных или нет. Этот параметр поддерживается только в том случае, если удаленный сервер Netconf поддерживает возможность :candidate. Если значение установлено в False, подтверждение (commit) не будет выполнено после операции edit-config, и пользователю необходимо явно выполнить подтверждение или отменить изменения. |
| confirm - добавлен в 2.7 | Значение по умолчанию: 0 | Этот аргумент настраивает значение таймаута для подтверждения коммита перед его автоматическим откатом. Если аргумент confirm_commit установлен в False, этот аргумент будет проигнорирован. Если значение этого аргумента установлено в 0, коммит будет подтверждён немедленно. Удалённый хост ДОЛЖЕН поддерживать возможности :candidate и :confirmed-commit, чтобы этот параметр работал. |
| confirm_commit логический тип добавлен в 2.7 |
| Этот аргумент выполнит операцию коммита на удалённом устройстве. Он может использоваться для подтверждения предыдущего коммита. |
| content - | Данные конфигурации, определённые моделями данных устройства, могут быть в формате xml-строки или текстовом формате. Формат конфигурации должен поддерживаться удалённым сервером Netconf. псевдонимы: xml | |
| default_operation - добавлен в 2.7 |
| Операция по умолчанию для rpc <edit-config>, допустимые значения - слияние, замена и отсутствует. Если значение по умолчанию - слияние, данные конфигурации в опции content будут слиты на соответствующем уровне в хранилище данных target. Если значение - замена, данные в опции content полностью заменят конфигурацию в хранилище данных target. Если значение - отсутствует, хранилище данных target не затронуто конфигурацией в опции config, пока входные данные конфигурации не используют операцию operation для запроса другой операции. |
| delete логический тип добавлен в 2.7 |
| Указывает модулю удалить конфигурацию из хранилища данных, указанного в target. |
| error_option - добавлен в 2.7 |
| Этот параметр контролирует действие сервера netconf после возникновения ошибки при редактировании конфигурации. Если значение остановка-на-ошибке, прерывает редактирование конфигурации при первой ошибке; если продолжение-на-ошибке продолжает обработку данных конфигурации при ошибке, ошибка записывается, и генерируется отрицательный ответ, если возникают ошибки. Если значение откат-на-ошибке, откатывает конфигурацию к исходному состоянию в случае возникновения ошибки; это требует поддержки возможности :rollback-on-error у удалённого сервера Netconf. |
| format - добавлен в 2.7 |
| Формат конфигурации, предоставленной в качестве значения content. Допустимые значения xml и текст, и предоставленный формат конфигурации должен поддерживаться удалённым сервером Netconf. |
| host - / обязательно | Указывает имя хоста DNS или адрес для подключения к удалённому устройству по указанному протоколу. Значение host используется в качестве адреса назначения для транспорта. | |
| hostkey_verify логический тип |
| Если установлено в true, ключ хоста ssh устройства должен совпадать с ключом ssh на хосте; если false, ключ хоста ssh устройства не проверяется. |
| lock - добавлен в 2.7 |
| Указывает модулю явно заблокировать хранилище данных, указанное как target. Установив значение всегда, будет явно заблокировано хранилище данных, упомянутое в опции target. Если значение никогда, хранилище данных target не будет заблокировано. Значение если_поддерживается блокирует хранилище данных target только в том случае, если это поддерживается удалённым сервером Netconf. |
| look_for_keys логический тип |
| Включает поиск ssh-ключей в стандартных местах (например, :file:`~/.ssh/id_*`) |
| password - | Указывает пароль для аутентификации соединения с удалённым устройством. Это значение используется для аутентификации сессии SSH. Если значение не указано в задаче, вместо него будет использовано значение переменной окружения ANSIBLE_NET_PASSWORD. | |
| port целое число | Значение по умолчанию: 830 | Указывает порт, используемый при установлении соединения с удалённым устройством. Значение порта по умолчанию равно 830. |
| save - добавлен в 2.4 | Значение по умолчанию: "нет" | Аргумент save инструктирует модуль сохранить конфигурацию из хранилища данных target в startup-config, если конфигурация была изменена и если сервер Netconf поддерживает возможность :startup. |
| source_datastore - добавлен в 2.7 | Имя хранилища конфигурации, используемого в качестве источника для копирования конфигурации в хранилище данных, указанное опцией target. Значения могут быть running, candidate, startup или удалённый URL.псевдонимы: source | |
| src - добавлен в 2.4 | Указывает путь к исходному xml-файлу, содержащему конфигурацию или шаблон конфигурации для загрузки. Путь к исходному файлу может быть полным путём на хосте Ansible или относительным путём от корневой директории playbook или роли. Этот аргумент взаимоисключает xml. | |
| ssh_keyfile путь | Указывает SSH-ключ для аутентификации соединения с удалённым устройством. Это путь к ключу, используемому для аутентификации сессии SSH. Если значение не указано в задаче, вместо него будет использовано значение переменной окружения ANSIBLE_NET_SSH_KEYFILE. | |
| target - добавлен в 2.4 | Значение по умолчанию: "авто" | Имя хранилища конфигурации, подлежащего редактированию. - авто, использует кандидатский и падает на текущее хранилище - кандидат, редактирует хранилище <candidate/> и затем подтверждает - текущее, редактирует хранилище <running/> напрямую псевдонимы: datastore |
| timeout целое число | Значение по умолчанию: 10 | Устанавливает таймаут в секундах для связи с сетевым устройством при подключении или отправке команд. Если таймаут истечёт до завершения операции, модуль вернёт ошибку. |
| username - | Устанавливает имя пользователя для аутентификации подключения к удалённому устройству. Это значение используется для аутентификации SSH-сессии. Если значение не указано в задании, будет использовано значение переменной окружения ANSIBLE_NET_USERNAME. | |
| validate булево добавлено в 2.7 |
| Этот булевый флаг, если установлен, проверяет содержимое хранилища данных, указанного в параметре target. Для работы этого параметра удалённый сервер Netconf должен поддерживать возможность :validate. |
Примечания
Примечание
- Для этого модуля требуется, чтобы служба netconf была включена на управляемом удалённом устройстве.
- Этот модуль поддерживает устройства с поддержкой и без поддержки функций candidate и confirmed-commit. Он всегда использует более безопасный вариант.
- Этот модуль поддерживает использование connection=netconf
- Дополнительную информацию об использовании netconf см. в руководстве Platform Options, использующих Netconf
- Дополнительную информацию об использовании Ansible для управления сетевыми устройствами см. в руководстве Ansible Network Guide
Примеры
- name: use lookup filter to provide xml configuration
netconf_config:
content: "{{ lookup('file', './config.xml') }}"
- name: set ntp server in the device
netconf_config:
content: |
<config xmlns:xc="urn:ietf:params:xml:ns:netconf:base:1.0">
<system xmlns="urn:ietf:params:xml:ns:yang:ietf-system">
<ntp>
<enabled>true</enabled>
<server>
<name>ntp1</name>
<udp><address>127.0.0.1</address></udp>
</server>
</ntp>
</system>
</config>
- name: wipe ntp configuration
netconf_config:
content: |
<config xmlns:xc="urn:ietf:params:xml:ns:netconf:base:1.0">
<system xmlns="urn:ietf:params:xml:ns:yang:ietf-system">
<ntp>
<enabled>false</enabled>
<server operation="remove">
<name>ntp1</name>
</server>
</ntp>
</system>
</config>
- name: configure interface while providing different private key file path (for connection=netconf)
netconf_config:
backup: yes
register: backup_junos_location
vars:
ansible_private_key_file: /home/admin/.ssh/newprivatekeyfile
Возвращаемые значения
Общие возвращаемые значения описаны в разделе здесь, ниже перечислены поля, уникальные для этого модуля:
| Ключ | Возвращаемое значение | Описание |
|---|---|---|
| backup_path строка | при backup = yes | Полный путь к резервной копии файла Пример: /playbooks/ansible/backup/config.2016-07-16@22:28:34 |
| diff словарь | при включенном diff | Если опция --diff включена во время выполнения, изменения конфигурации до и после возвращаются в качестве ключей before и after. Пример: {'after': '<rpc-reply> <data> <configuration> <version>17.3R1.10</version>...<--snip-->', 'before': '<rpc-reply> <data> <configuration> <version>17.3R1.10</version>...<--snip-->'} |
| server_capabilities список | успех | список возможностей сервера Пример: ['urn:ietf:params:netconf:base:1.1', 'urn:ietf:params:netconf:capability:confirmed-commit:1.0', 'urn:ietf:params:netconf:capability:candidate:1.0'] |
Статус
- Интерфейс этого модуля не гарантируется как обратно совместимый. [превью]
- Этот модуль поддерживается командой Ansible Network Team. [сетевой]
Поддержка Red Hat
Дополнительную информацию о поддержке этого модуля Red Hat см. в статье базы знаний Red Hat Red Hat Knowledge Base article.
Авторы
- Leandro Lisboa Penz (@lpenz)
Подсказка
Если вы заметите какие-либо проблемы в этой документации, вы можете отредактировать этот документ, чтобы улучшить его.
© 2012–2018 Michael DeHaan
© 2018–2019 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
https://docs.ansible.com/ansible/2.7/modules/netconf_config_module.html