junipernetworks.junos.junos_config – Управление конфигурацией на устройствах Juniper JUNOS
Примечание
Этот плагин входит в коллекцию junipernetworks.junos (версия 1.3.0).
Для его установки используйте: ansible-galaxy collection install junipernetworks.junos
Для использования в playbook укажите: junipernetworks.junos.junos_config
Новый в версии 1.0.0: of junipernetworks.junos
Обзор
- Этот модуль предоставляет реализацию работы с активной конфигурацией на устройствах Juniper JUNOS. Он предоставляет набор аргументов для загрузки конфигурации, выполнения операций отката и обнуления активной конфигурации на устройстве.
Примечание
Этот модуль имеет соответствующий плагин действий.
Требования
Ниже перечислены требования к хосту, на котором выполняется этот модуль.
- ncclient (>=v0.5.2)
Параметры
| Параметр | Варианты/Значения по умолчанию | Комментарии | |
|---|---|---|---|
| backup boolean |
| Этот аргумент заставит модуль создать полную резервную копию текущей running-config с удаленного устройства перед внесением каких-либо изменений. Если значение backup_options не указано, файл резервной копии записывается в папку backup в корневом каталоге игрового набора или корневом каталоге роли, если игровой набор является частью роли Ansible. Если директория не существует, она создается. | |
| backup_options словарь | Это объект типа dict, содержащий настраиваемые параметры, относящиеся к пути к файлу резервной копии. Значение этого параметра считывается только тогда, когда backup установлено в да, если backup установлено в нет, этот параметр будет проигнорирован. | ||
| dir_path путь | Этот параметр предоставляет путь, заканчивающийся именем каталога, в котором будет храниться конфигурационный файл резервной копии. Если каталог не существует, он будет сначала создан, а имя файла будет либо значением filename, либо значением по умолчанию, как описано в описании параметров filename. Если значение пути не указано, в этом случае будет создан каталог backup в текущей рабочей директории, и конфигурация резервной копии будет скопирована в filename внутри каталога backup. | ||
| filename строка | Имя файла, которое будет использоваться для хранения конфигурационного файла резервной копии. Если имя файла не указано, оно будет сгенерировано на основе имени хоста, текущего времени и даты в формате <имя_хоста>_config.<дата>@<время> | ||
| check_commit boolean |
| Этот аргумент проверит правильность синтаксиса; изменения не будут применены. Обратите внимание, что этот аргумент может быть использован для подтверждения проверенной конфигурации, выполненной через операцию подтверждения коммита. | |
| comment строка | Значение по умолчанию: "настроено с помощью junos_config" | Аргумент comment указывает строку текста, которая будет использована при применении конфигурации. Если аргумент confirm установлен в значение False, этот аргумент будет проигнорирован. | |
| confirm целое число | Значение по умолчанию: 0 | Аргумент confirm настраивает значение таймаута в минутах для подтверждения коммита перед его автоматической отработкой назад. Если аргумент confirm установлен в значение False, этот аргумент будет проигнорирован. Если значение для этого аргумента установлено в 0, коммит подтверждается немедленно. | |
| confirm_commit boolean |
| Этот аргумент выполнит операцию коммита на удаленном устройстве. Он может быть использован для подтверждения предыдущего коммита. | |
| 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 целое число | Указывает порт, используемый при построении соединения с удаленным устройством. Значение порта по умолчанию — стандартный порт SSH 22 (для transport=cli) или порт 830 (для transport=netconf) устройства. | ||
| ssh_keyfile путь | Указывает SSH-ключ, используемый для аутентификации подключения к удаленному устройству. Это значение — путь к ключу, используемому для аутентификации сессии SSH. Если значение не указано в задаче, вместо него используется значение переменной среды ANSIBLE_NET_SSH_KEYFILE. | ||
| timeout целое число | Указывает таймаут в секундах для связи с сетевым устройством для подключения или отправки команд. Если таймаут истекает до завершения операции, модуль выдаст ошибку. | ||
| transport строка |
| Настраивает транспортное соединение для использования при подключении к удаленному устройству. | |
| 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. Новая конфигурация полностью заменяет существующую. Разница проявляется при последующем применении конфигурации. Этот вариант выполняет сравнение между новой кандидатской конфигурацией и существующей сохранённой конфигурацией. Он затем уведомляет только системные процессы, ответственные за изменённые части конфигурации, и помечает фактические изменения конфигурации как «изменённые». | |
| zeroize boolean |
| Аргумент zeroize используется для полной очистки конфигурации удалённого устройства до исходных значений по умолчанию. Этот аргумент фактически удалит все текущие утверждения конфигурации на удалённом устройстве. | |
Примечания
Примечание
- Для работы данного модуля необходимо включить системную службу netconf на управляемом удалённом устройстве.
- Сокращённые команды НЕ являются идемпотентными, см. L(Сеть FAQ,../network/user_guide/faq.html
- Загрузка конфигурации в формате 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
- Для получения дополнительной информации об использовании Ansible для управления устройствами Juniper см. https://www.ansible.com/ansible-juniper.
Примеры
- name: load configure file into device
junipernetworks.junos.junos_config:
src: srx.cfg
comment: update config
- name: load configure lines into device
junipernetworks.junos.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
junipernetworks.junos.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
junipernetworks.junos.junos_config:
check_commit: yes
- name: rollback the configuration to id 10
junipernetworks.junos.junos_config:
rollback: 10
- name: zero out the current configuration
junipernetworks.junos.junos_config:
zeroize: yes
- name: Set VLAN access and trunking
junipernetworks.junos.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
junipernetworks.junos.junos_config:
confirm_commit: yes
- name: for idempotency, use full-form commands
junipernetworks.junos.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
junipernetworks.junos.junos_config:
src: srx.cfg
backup: yes
backup_options:
filename: backup.cfg
dir_path: /home/user
Значения возврата
Общие значения возврата описаны здесь, а ниже приведены поля, уникальные для данного модуля:
| Ключ | Возвращаемое значение | Описание |
|---|---|---|
| backup_path строка | при backup = да | Полный путь к файлу резервной копии Пример: /playbooks/ansible/backup/config.2016-07-16@22:28:34 |
| date строка | при backup = да | Дата, извлечённая из имени файла резервной копии Пример: 2016-07-16 |
| filename строка | при backup = да и имя файла не указано в опциях резервной копии | Имя файла резервной копии Пример: junos01_config.2016-07-16@22:28:34 |
| shortname строка | при backup = да и имя файла не указано в опциях резервной копии | Полный путь к файлу резервной копии без временной метки Пример: /playbooks/ansible/backup/junos01_config |
| time строка | при backup = да | Время, извлечённое из имени файла резервной копии Пример: 22:28:34 |
Авторы
- Peter Sprygada (@privateip)
© 2012–2018 Michael DeHaan
© 2018–2021 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
https://docs.ansible.com/ansible/2.11/collections/junipernetworks/junos/junos_config_module.html