junos_config – Управление конфигурацией на устройствах, работающих под управлением Juniper JUNOS
Обзор
- Этот модуль предоставляет реализацию для работы с активной конфигурацией, выполняемой на устройствах Juniper JUNOS. Он предоставляет набор аргументов для загрузки конфигурации, выполнения операций отката и сброса активной конфигурации на устройстве.
Требования
Ниже приведены требования к хосту, на котором выполняется этот модуль.
- ncclient (>=v0.5.2)
Параметры
| Параметр | Варианты/Значения по умолчанию | Комментарии | |
|---|---|---|---|
| backup boolean |
| Этот аргумент заставит модуль создать полную резервную копию текущей running-config с удаленного устройства перед внесением каких-либо изменений. Если значение backup_options не указано, файл резервной копии записывается в папку backup в корневом каталоге сценария или в корневом каталоге роли, если сценарий является частью роли Ansible. Если каталог не существует, он создаётся. | |
| backup_options словарь добавлен в 2.8 | Это объект типа dict, содержащий настраиваемые параметры, относящиеся к пути к файлу резервной копии. Значение этого параметра считывается только тогда, когда backup установлено в yes. Если backup установлено в no, этот параметр будет проигнорирован. | ||
| dir_path путь | Этот параметр предоставляет путь, заканчивающийся именем каталога, в котором будет храниться файл резервной копии конфигурации. Если каталог не существует, он будет сначала создан, и имя файла будет либо значением filename, либо именем файла по умолчанию, как описано в описании параметров filename. Если значение пути не указано, в текущем рабочем каталоге будет создан каталог backup, и резервная копия конфигурации будет скопирована в filename внутри каталога backup. | ||
| filename - | Имя файла, используемое для хранения резервной копии конфигурации. Если имя файла не указано, оно будет сгенерировано на основе имени хоста, текущей даты и времени в формате <имя_хоста>_config.<дата>@<время> | ||
| check_commit boolean добавлен в 2.8 |
| Этот аргумент проверит корректность синтаксиса; изменения не будут применены. Обратите внимание, что этот аргумент можно использовать для подтверждения проверенной конфигурации, выполненной через операцию подтверждения коммита. | |
| comment - | Значение по умолчанию: "configured by junos_config" | Аргумент comment указывает строку текста, которая будет использоваться при применении конфигурации. Если аргумент confirm установлен в False, этот аргумент будет проигнорирован. | |
| confirm - | Значение по умолчанию: 0 | Аргумент confirm задаст значение таймаута в минутах для подтверждения коммита, прежде чем он будет автоматически отменён. Если аргумент confirm установлен в False, этот аргумент будет проигнорирован. Если значение этого аргумента установлено в 0, коммит подтверждается немедленно. | |
| confirm_commit boolean добавлен в 2.4 |
| Этот аргумент выполнит операцию коммита на удалённом устройстве. Его можно использовать для подтверждения предыдущего коммита. | |
| lines - | Этот аргумент принимает список строк конфигурации set или delete для отправки на удалённое устройство. Каждая строка должна начинаться с set или delete. Этот аргумент является взаимоисключающим с аргументом src. | ||
| provider словарь | Устарело Начиная с Ansible 2.5, рекомендуется использовать connection: network_cli или connection: netconf.Дополнительную информацию можно найти в руководстве Junos OS Platform Options. Объект типа dict, содержащий данные подключения. | ||
| host строка / обязательно | Указывает имя хоста DNS или адрес для подключения к удалённому устройству по указанному транспорту. Значение host используется в качестве адреса назначения для транспорта. | ||
| password строка | Указывает пароль для аутентификации подключения к удалённому устройству. Это значение используется для аутентификации сеанса SSH. Если значение не указано в задаче, вместо него используется значение переменной окружения ANSIBLE_NET_PASSWORD. | ||
| port целое число | Значение по умолчанию: 22 | Указывает порт, используемый при построении подключения к удалённому устройству. Значение порта по умолчанию равно известному порту SSH 22 (для transport=cli) или порту 830 (для transport=netconf) устройства. | |
| ssh_keyfile путь | Указывает SSH-ключ для аутентификации подключения к удалённому устройству. Это значение — путь к ключу, используемому для аутентификации сеанса SSH. Если значение не указано в задаче, вместо него используется значение переменной окружения ANSIBLE_NET_SSH_KEYFILE. | ||
| timeout целое число | Значение по умолчанию: 10 | Указывает таймаут в секундах для связи с сетевым устройством для подключения или отправки команд. Если таймаут истекает до завершения операции, модуль выдаст ошибку. | |
| username строка | Настраивает имя пользователя для аутентификации подключения к удалённому устройству. Это значение используется для аутентификации сеанса SSH. Если значение не указано в задаче, вместо него используется значение переменной окружения ANSIBLE_NET_USERNAME. | ||
| replace boolean |
| Аргумент replace указывает удалённому устройству заменить текущую иерархию конфигурации иерархией исходной конфигурации, загруженной из этого модуля.Обратите внимание, что этот аргумент следует считать устаревшим. Для достижения эквивалентного результата установите аргумент update в replace. Этот аргумент будет удалён в будущих версиях. Аргументы replace и update взаимоисключающие. | |
| rollback - | Аргумент rollback указывает модулю выполнить откат текущей конфигурации до идентификатора, указанного в аргументе. Если указанный идентификатор отката не существует на удалённом устройстве, модуль завершится ошибкой. Для отката до последнего коммита установите аргумент rollback в 0. | ||
| src - | Аргумент src предоставляет путь к файлу конфигурации для загрузки на удалённую систему. Путь может быть полным системным путём к файлу конфигурации, если значение начинается с /, или относительным к корню реализуемой роли или сценария. Этот аргумент взаимоисключающий с аргументом lines. | ||
| src_format - |
| Аргумент src_format указывает формат конфигурации, найденной в src. Если аргумент src_format не указан, модуль попытается определить формат файла конфигурации, указанного в src. | |
| update - |
| Этот аргумент определит, как загрузить данные конфигурации, особенно когда конфигурация-кандидат и загруженная конфигурация содержат противоречивые утверждения. Ниже приведены допустимые значения. merge объединяет данные загруженной конфигурации с конфигурацией-кандидатом. Если утверждения в загруженной конфигурации конфликтуют с утверждениями в конфигурации-кандидате, то утверждения загруженной конфигурации заменят утверждения кандидата. override отбрасывает всю конфигурацию-кандидата и заменяет её загруженной конфигурацией. replace заменяет каждый уровень иерархии в загруженной конфигурации соответствующим уровнем. update подобен варианту override. Новая конфигурация полностью заменяет существующую. Разница проявляется при последующей фиксации конфигурации. Этот вариант выполняет сравнение (diff) между новой конфигурацией-кандидатом и существующей сохранённой конфигурацией. Затем он оповещает только системные процессы, ответственные за изменённые части конфигурации, и помечает фактические изменения конфигурации как «изменённые». | |
| zeroize boolean |
| Аргумент zeroize используется для полной очистки конфигурации удалённого устройства до начальных значений по умолчанию. Этот аргумент эффективно удалит все текущие утверждения конфигурации на удалённом устройстве. | |
Примечания
Примечание
- Для данного модуля требуется, чтобы служба netconf была включена на управляемом удалённом устройстве.
- Сокращённые команды НЕ идемпотентны, см. Network FAQ.
- Загрузка конфигурации в формате JSON json поддерживается начиная с версии Junos OS 16.1.
- Обновление
overrideв настоящее время несовместимо сsetобозначением. - Проверено на vSRX JUNOS версии 15.1X49-D15.4, vqfx-10000 JUNOS версии 15.1X53-D60.4.
- Рекомендуемое соединение —
netconf. См. параметры платформы Junos OS. - Этот модуль также работает с
localсоединениями для устаревших playbooks. - Для получения информации об использовании CLI и netconf см. руководство по параметрам платформы Junos OS
- Для получения дополнительной информации об использовании Ansible для управления сетевыми устройствами см. руководство Ansible Network Guide
- Для получения дополнительной информации об использовании Ansible для управления устройствами Juniper см. https://www.ansible.com/ansible-juniper.
Примеры
- name: load configure file into device
junos_config:
src: srx.cfg
comment: update config
- name: load configure lines into device
junos_config:
lines:
- set interfaces ge-0/0/1 unit 0 description "Test interface"
- set vlans vlan01 description "Test vlan"
comment: update config
- name: Set routed VLAN interface (RVI) IPv4 address
junos_config:
lines:
- set vlans vlan01 vlan-id 1
- set interfaces irb unit 10 family inet address 10.0.0.1/24
- set vlans vlan01 l3-interface irb.10
- name: Check correctness of commit configuration
junos_config:
check_commit: yes
- name: rollback the configuration to id 10
junos_config:
rollback: 10
- name: zero out the current configuration
junos_config:
zeroize: yes
- name: Set VLAN access and trunking
junos_config:
lines:
- set vlans vlan02 vlan-id 6
- set interfaces ge-0/0/6.0 family ethernet-switching interface-mode access vlan members vlan02
- set interfaces ge-0/0/6.0 family ethernet-switching interface-mode trunk vlan members vlan02
- name: confirm a previous commit
junos_config:
confirm_commit: yes
- name: for idempotency, use full-form commands
junos_config:
lines:
# - set int ge-0/0/1 unit 0 desc "Test interface"
- set interfaces ge-0/0/1 unit 0 description "Test interface"
- name: configurable backup path
junos_config:
src: srx.cfg
backup: yes
backup_options:
filename: backup.cfg
dir_path: /home/user
Возвращаемые значения
Общие возвращаемые значения описаны в этом разделе, следующие поля уникальны для данного модуля:
| Ключ | Возвращаемое значение | Описание |
|---|---|---|
| backup_path string | при backup = yes | Полный путь к резервной копии файла Пример: /playbooks/ansible/backup/config.2016-07-16@22:28:34 |
| date string | при backup = yes | Дата, извлечённая из имени файла резервной копии Пример: 2016-07-16 |
| filename string | при backup = yes и имя файла не указано в опциях backup | Имя файла резервной копии Пример: junos01_config.2016-07-16@22:28:34 |
| shortname string | при backup = yes и имя файла не указано в опциях backup | Полный путь к файлу резервной копии без временной метки Пример: /playbooks/ansible/backup/junos01_config |
| time string | при backup = yes | Время, извлечённое из имени файла резервной копии Пример: 22:28:34 |
Статус
- Этот модуль не гарантирует обратной совместимости интерфейса. [превью]
- Этот модуль поддерживается командой Ansible Network Team. [сеть]
Поддержка Red Hat
Дополнительную информацию о поддержке данного модуля Red Hat можно найти в этой статье базы знаний Red Hat.
Авторы
- Peter Sprygada (@privateip)
Подсказка
Если вы заметите какие-либо проблемы в данной документации, вы можете отредактировать этот документ, чтобы улучшить его.
© 2012–2018 Michael DeHaan
© 2018–2019 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
https://docs.ansible.com/ansible/2.9/modules/junos_config_module.html