ansible.netcommon.cli_config – Передача текстовой конфигурации на сетевые устройства через network_cli
Примечание
Этот плагин является частью коллекции ansible.netcommon (версия 1.4.1).
Для его установки используйте: ansible-galaxy collection install ansible.netcommon.
Для использования в playbook, укажите: ansible.netcommon.cli_config.
Новое в версии 1.0.0: модуля ansible.netcommon
Описание
- Этот модуль предоставляет платформонезависимый способ передачи текстовой конфигурации на сетевые устройства через плагин подключения network_cli.
Примечание
Этот модуль имеет соответствующий плагин действий.
Параметры
| Параметр | Варианты/Значения по умолчанию | Комментарии | |
|---|---|---|---|
| backup логический тип |
| Этот аргумент заставит модуль создать полную резервную копию текущей рабочей конфигурации с удалённого устройства перед внесением каких-либо изменений. Если значение backup_options не задано, файл резервной копии записывается в папку backup в корневом каталоге playbook или в корневом каталоге роли, если playbook является частью роли ansible. Если каталог не существует, он создаётся. | |
| backup_options словарь | Это объект словаря, содержащий настраиваемые параметры, связанные с путём к файлу резервной копии. Значение этого параметра читается только при backup установлено в да, если backup установлено в нет, этот параметр будет проигнорирован. | ||
| dir_path путь | Этот параметр задаёт путь, заканчивающийся именем каталога, в котором будет храниться файл резервной копии конфигурации. Если каталог не существует, он будет создан, и имя файла будет либо значением filename, либо именем по умолчанию, как описано в filename описании параметров. Если значение пути не задано, в этом случае будет создан каталог backup в текущем рабочем каталоге, и резервная копия конфигурации будет скопирована в filename внутри каталога backup. | ||
| filename строка | Имя файла, которое будет использоваться для хранения резервной копии конфигурации. Если имя файла не задано, оно будет сгенерировано на основе имени хоста, текущей даты и времени в формате <имя_хоста>_config.<дата>@<время> | ||
| commit логический тип |
| Аргумент commit инструктирует модуль на применение конфигурации к устройству. Это сопоставляется с режимом проверки модуля. | |
| commit_comment строка | Аргумент commit_comment задаёт строку текста, которая будет использована при применении конфигурации. Если аргумент commit установлен в False, этот аргумент будет проигнорирован. Этот аргумент допустим только для платформ, поддерживающих операцию применения с комментарием. | ||
| config строка | Конфигурация, которая будет применена к сетевому устройству. Этот аргумент взаимоисключающий с rollback, и должен быть задан один из этих параметров. Конфигурация должна иметь отступы, используемые устройством. | ||
| defaults логический тип |
| Аргумент defaults повлияет на то, как собирается running-config с устройства. Когда значение установлено в true, команда, используемая для сбора running-config, дополняется ключевым словом all. Когда значение установлено в false, команда выполняется без ключевого слова all. | |
| diff_ignore_lines список / элементы=строка | Используйте этот аргумент для указания одной или нескольких строк, которые должны быть проигнорированы при сравнении. Это используется для строк в конфигурации, которые автоматически обновляются системой. Этот аргумент принимает список регулярных выражений или точных совпадений строк. Обратите внимание, что этот параметр будет проигнорирован, если платформа поддерживает встроенное сравнение. | ||
| diff_match строка |
| Указывает модулю способ сравнения набора команд с текущей конфигурацией устройства. Если diff_match установлено в строка, команды сравниваются по строкам. Если diff_match установлено в строго, строки команд сравниваются относительно позиции. Если diff_match установлено в точно, строки команд должны точно совпадать. Наконец, если diff_match установлено в ничего, модуль не будет пытаться сравнить исходную конфигурацию с текущей конфигурацией на удалённом устройстве. Обратите внимание, что этот параметр будет проигнорирован, если платформа поддерживает встроенное сравнение. | |
| diff_replace строка |
| Указывает модулю способ применения конфигурации на устройстве. Если аргумент diff_replace установлен в строка, изменённые строки передаются устройству в режиме конфигурации. Если аргумент установлен в блок, весь блок команды передаётся устройству в режиме конфигурации, если какая-либо строка некорректна. Обратите внимание, что этот параметр будет проигнорирован, если платформа поддерживает встроенное сравнение. | |
| multiline_delimiter строка | Этот аргумент используется при передаче многострочного элемента конфигурации на устройство. Он указывает символ, используемый в качестве разделителя. Это относится только к действию конфигурации. | ||
| replace строка | Если аргумент replace установлен в yes, он заменит всю текущую running-config устройства значением аргумента config. Для устройств, поддерживающих замену running-config из файла на устройстве (например, NXOS/JUNOS), аргумент replace принимает путь к файлу на устройстве, который будет использован для замены всей running-config. Значение параметра config должно быть None для таких устройств. Устройства Nexus 9K поддерживают только замену. Используйте net_put или nxos_file_copy в случае модуля NXOS для копирования плоского файла на удалённое устройство, а затем установите полный путь в этот аргумент. | ||
| rollback целое число | Аргумент rollback инструктирует модуль откатить текущую конфигурацию до идентификатора, указанного в аргументе. Если указанный идентификатор отката не существует на удалённом устройстве, модуль завершится с ошибкой. Для отката до последнего применения, установите аргумент rollback в 0. Этот параметр взаимоисключающий с config. | ||
Примечания
Примечание
- Команды будут возвращены только для платформ, не поддерживающих встроенное сравнение. Параметр
--diffс playbook будет возвращать разницу в конфигурации для устройств, поддерживающих встроенное сравнение. - Этот модуль поддерживается на сетевых платформах
ansible_network_os. Подробности см. в разделе Параметры сетевой платформы.
Примеры
- name: configure device with config
ansible.netcommon.cli_config:
config: "{{ lookup('template', 'basic/config.j2') }}"
- name: multiline config
ansible.netcommon.cli_config:
config: |
hostname foo
feature nxapi
- name: configure device with config with defaults enabled
ansible.netcommon.cli_config:
config: "{{ lookup('template', 'basic/config.j2') }}"
defaults: yes
- name: Use diff_match
ansible.netcommon.cli_config:
config: "{{ lookup('file', 'interface_config') }}"
diff_match: none
- name: nxos replace config
ansible.netcommon.cli_config:
replace: bootflash:nxoscfg
- name: junos replace config
ansible.netcommon.cli_config:
replace: /var/home/ansible/junos01.cfg
- name: commit with comment
ansible.netcommon.cli_config:
config: set system host-name foo
commit_comment: this is a test
- name: configurable backup path
ansible.netcommon.cli_config:
config: "{{ lookup('template', 'basic/config.j2') }}"
backup: yes
backup_options:
filename: backup.cfg
dir_path: /home/user
Возвращаемые значения
Общие возвращаемые значения описаны в этом разделе, следующие поля уникальны для данного модуля:
| Ключ | Возвращаемое значение | Описание |
|---|---|---|
| backup_path строка | при backup=да | Полный путь к файлу резервной копии Пример: /playbooks/ansible/backup/имя_хоста_config.2016-07-16@22:28:34 |
| commands список / элементы=строка | при supports_generated_diff=True и supports_onbox_diff=False в плагине cliconf платформы | Набор команд, которые будут отправлены на удалённое устройство Пример: ['interface Loopback999', 'no shutdown'] |
| diff строка | при supports_onbox_diff=True в плагине cliconf платформы | Сравнение, сгенерированное на устройстве, когда команды были применены Пример: --- system:/running-config +++ session:/ansible_1599745461-session-config @@ -4,7 +4,7 @@ ! transceiver qsfp default-mode 4x10G ! -hostname veos +hostname veos3 ! spanning-tree mode mstp |
Авторы
- Trishna Guha (@trishnaguha)
© 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/ansible/netcommon/cli_config_module.html