netconf_config – конфигурация устройства netconf
Новая в версии 2.2.
Обзор
- Netconf — протокол управления сетью, разработанный и стандартизированный IETF. Он документирован в RFC 6241.
- Этот модуль позволяет пользователю отправлять XML-файл конфигурации устройству netconf и определять, было ли изменение конфигурации.
Требования
Ниже перечислены требования к хосту, на котором выполняется этот модуль.
- ncclient
Параметры
| Параметр | Варианты/Значения по умолчанию | Комментарии | |
|---|---|---|---|
| backup boolean добавлено в 2.7 |
| Этот аргумент заставит модуль создать полную резервную копию текущей running-config удалённого устройства перед внесением каких-либо изменений. Если значение backup_options не указано, резервная копия сохраняется в папку backup в корневой директории playbook или в корневой директории роли, если playbook является частью роли ansible. Если директория не существует, она будет создана. | |
| backup_options словарь добавлено в 2.8 | Это объект dict, содержащий настраиваемые параметры, относящиеся к пути к резервной копии. Значение этого параметра считывается только когда backup установлено в yes, если backup установлено в no, этот параметр будет проигнорирован. | ||
| dir_path путь | Этот параметр предоставляет путь, заканчивающийся именем каталога, в котором будет храниться файл конфигурации резервной копии. Если директория не существует, она будет создана, а имя файла будет либо значением filename, либо именем по умолчанию, как описано в описании параметров filename. Если значение пути не указано, в текущей рабочей директории будет создана директория backup, и конфигурация резервной копии будет скопирована в filename внутри директории backup. | ||
| filename - | Имя файла, используемого для хранения конфигурации резервной копии. Если имя файла не указано, оно будет сгенерировано на основе имени хоста, текущего времени и даты в формате <имя_хоста>_config.<дата>@<время> | ||
| commit boolean добавлено в 2.7 |
| Этот флаг boolean управляет тем, должны ли изменения конфигурации быть сохранены или нет после редактирования кандидатского хранилища данных. Этот параметр поддерживается только если удалённый сервер Netconf поддерживает возможность :candidate. Если значение установлено в False, подтверждение не будет выполнено после операции edit-config, и пользователю необходимо явно выполнить подтверждение или отказ от изменений. | |
| confirm - добавлено в 2.7 | Значение по умолчанию: 0 | Этот аргумент настраивает значение тайм-аута для подтверждения коммита, прежде чем он будет автоматически отменён. Если аргумент confirm_commit установлен в False, этот аргумент будет проигнорирован. Если значение этого аргумента установлено в 0, коммит подтверждается немедленно. Удаленный хост ДОЛЖЕН поддерживать возможности :candidate и :confirmed-commit для работы этого параметра. | |
| confirm_commit boolean добавлено в 2.7 |
| Этот аргумент выполнит операцию коммита на удалённом устройстве. Он может использоваться для подтверждения предыдущего коммита. | |
| content - | Данные конфигурации, определённые моделями данных устройства, могут быть в формате xml-строки или текстовом формате. Формат конфигурации должен поддерживаться удалённым сервером Netconf псевдонимы: xml | ||
| default_operation - добавлено в 2.7 |
| Операция по умолчанию для RPC <edit-config>, допустимые значения — merge, replace и none. Если значение по умолчанию merge, данные конфигурации в параметре content объединяются на соответствующем уровне в хранилище данных target. Если значение replace, данные в параметре content полностью заменяют конфигурацию в хранилище данных target. Если значение none, хранилище данных target не изменяется конфигурацией в параметре config, пока и до тех пор, пока входящие данные конфигурации не используют операцию operation для запроса другой операции. | |
| delete boolean добавлено в 2.7 |
| Указывает модулю на удаление конфигурации из хранилища данных, упомянутого в target. | |
| error_option - добавлено в 2.7 |
| Этот параметр управляет действиями сервера netconf после возникновения ошибки во время редактирования конфигурации. Если значение stop-on-error, прерывает редактирование конфигурации при первой ошибке; если значение continue-on-error, продолжает обработку данных конфигурации при ошибке, ошибка записывается, и генерируется отрицательный ответ, если возникают какие-либо ошибки. Если значение rollback-on-error, отменяет изменения до исходной конфигурации в случае возникновения ошибки; это требует от удалённого сервера Netconf поддержки возможности :rollback-on-error. | |
| format - добавлено в 2.7 |
| Формат конфигурации, предоставленный как значение content. Допустимые значения — xml и text, и заданный формат конфигурации должен поддерживаться удалённым сервером Netconf. | |
| host строка / обязательно | Указывает имя хоста DNS или адрес для подключения к удалённому устройству по указанному транспорту. Значение host используется в качестве адреса назначения для транспорта. | ||
| hostkey_verify boolean |
| Если установлено в yes, ключ хоста ssh устройства должен соответствовать ключу ssh, присутствующему на хосте; если установлено в no, ключ хоста ssh устройства не проверяется. | |
| lock - добавлено в 2.7 |
| Указывает модулю явно заблокировать хранилище данных, указанное как target. Установив параметр в значение always, модуль будет явно блокировать хранилище данных, упомянутое в target параметре. Если значение never, хранилище данных target не будет заблокировано. Значение if-supported блокирует хранилище данных target только в том случае, если это поддерживается удаленным сервером Netconf. | |
| look_for_keys boolean |
| Включает поиск ключей ssh в стандартных местах (например, :file:`~/.ssh/id_*`) | |
| password строка | Указывает пароль для аутентификации подключения к удалённому устройству. Это значение используется для аутентификации сеанса SSH. Если значение не указано в задаче, используется значение переменной среды ANSIBLE_NET_PASSWORD. | ||
| port целое число | Значение по умолчанию: 830 | Указывает порт, используемый при подключении к удалённому устройству. Порт по умолчанию равен 830. | |
| save boolean добавлено в 2.4 |
| Аргумент save указывает модулю сохранить конфигурацию из хранилища данных target в startup-config, если она была изменена и если возможность :startup поддерживается сервером Netconf. | |
| source_datastore - добавлено в 2.7 | Имя конфигурационного хранилища данных, которое будет использоваться в качестве источника для копирования конфигурации в хранилище данных, указанное в параметре target. Значения могут быть running, candidate, startup или удалённым URLпсевдонимы: source | ||
| src - добавлено в 2.4 | Указывает путь к исходному xml-файлу, содержащему конфигурацию или шаблон конфигурации для загрузки. Путь к исходному файлу может быть полным путём на хосте Ansible control или относительным путём от корневого каталога playbook или роли. Этот аргумент взаимно исключает xml. | ||
| ssh_keyfile path | Указывает SSH-ключ, который будет использоваться для аутентификации подключения к удалённому устройству. Это значение — путь к ключу, используемому для аутентификации SSH-сессии. Если значение не указано в задаче, используется значение переменной окружения ANSIBLE_NET_SSH_KEYFILE. | ||
| target - добавлено в 2.4 | По умолчанию: "auto" | Имя конфигурационного хранилища данных, которое будет изменено. - auto, использует candidate и fallback к running - candidate, редактирует хранилище данных <candidate/> и затем совершает коммит - running, редактирует хранилище данных <running/> напрямую псевдонимы: datastore | |
| timeout integer | По умолчанию: 10 | Устанавливает таймаут в секундах для связи с сетевым устройством при подключении или отправке команд. Если таймаут истечёт до завершения операции, модуль вернёт ошибку. | |
| username string | Настраивает имя пользователя для аутентификации подключения к удалённому устройству. Это значение используется для аутентификации SSH-сессии. Если значение не указано в задаче, используется значение переменной окружения ANSIBLE_NET_USERNAME. | ||
| validate boolean добавлено в 2.7 |
| Этот флаг boolean, если установлен, валидирует содержимое хранилища данных, указанного в параметре target. Для работы этого параметра удалённый сервер Netconf должен поддерживать возможность :validate. | |
Примечания
Примечание
- Для работы этого модуля необходимо, чтобы на удалённом управляемом устройстве была включена служба netconf.
- Этот модуль поддерживает устройства с возможностью candidate и confirmed-commit, а также без неё. Он всегда использует более безопасный вариант.
- Этот модуль поддерживает использование connection=netconf
- Дополнительную информацию об использовании netconf см. в руководстве по платформе Netconf Использование Netconf
- Дополнительную информацию об использовании Ansible для управления сетевыми устройствами см. в руководстве по сетям Ansible Руководство по сетям Ansible
- Этот модуль поддерживается на сетевых платформах
ansible_network_os. Дополнительную информацию см. в Параметрах сетевой платформы.
Примеры
- 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
- name: configurable backup path
netconf_config:
backup: yes
backup_options:
filename: backup.cfg
dir_path: /home/user
Значения возврата
Общие значения возврата описаны здесь, следующие поля уникальны для данного модуля:
| Ключ | Возвращаемое значение | Описание |
|---|---|---|
| backup_path строка | при backup=да | Полный путь к резервной копии файла Пример: /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 по работе с сетями. [сеть]
Поддержка 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.8/modules/netconf_config_module.html