ios_config – Управление разделами конфигурации Cisco IOS
Обзор
- Конфигурации Cisco IOS используют простой синтаксис блочного отступа для разделения конфигурации на секции. Этот модуль предоставляет реализацию для работы с секциями конфигурации IOS детерминированным способом.
Параметры
| Параметр | Варианты/Значения по умолчанию | Комментарии | |
|---|---|---|---|
| after - | Упорядоченный набор команд, добавляемых в конец стека команд, если требуется внести изменения. Аналогично параметру before, это позволяет разработчику плейбука добавить набор команд, которые будут выполнены после набора команд. | ||
| auth_pass строка | Устарело Начиная с Ansible 2.5, рекомендуется использовать connection: network_cli и become: yes с become_pass. Для получения дополнительной информации, обратитесь к руководству IOS Platform Options. Указывает пароль, необходимый для входа в привилегированный режим на удаленном устройстве. Если authorize имеет значение false, этот параметр не имеет эффекта. Если значение не указано в задаче, будет использовано значение переменной среды ANSIBLE_NET_AUTH_PASS. | ||
| authorize булево |
| Устарело Начиная с Ansible 2.5, рекомендуется использовать connection: network_cli и become: yes. Для получения дополнительной информации, обратитесь к руководству IOS Platform Options. Указывает модулю на вход в привилегированный режим на удаленном устройстве перед отправкой любых команд. Если не указано, устройство попытается выполнить все команды в режиме без привилегий. Если значение не указано в задаче, будет использовано значение переменной среды ANSIBLE_NET_AUTHORIZE. | |
| backup булево |
| Этот параметр заставит модуль создать полную резервную копию текущей running-config с удаленного устройства перед внесением каких-либо изменений. Если значение backup_options не задано, файл резервной копии записывается в папку backup в корневом каталоге плейбука или корневом каталоге роли, если плейбук является частью роли Ansible. Если директория не существует, она будет создана. | |
| backup_options словарь добавлен в 2.8 | Это объект словаря, содержащий настраиваемые параметры, связанные с путем к файлу резервной копии. Значение этого параметра считывается только тогда, когда backup установлено в yes; если backup установлено в no, этот параметр будет проигнорирован. | ||
| dir_path путь | Этот параметр предоставляет путь, заканчивающийся именем каталога, в котором будет храниться файл конфигурации резервной копии. Если каталога не существует, он будет создан, а имя файла — это значение filename или имя файла по умолчанию, как описано в описании параметров filename. Если значение пути не задано, в текущем рабочем каталоге будет создана директория backup, и конфигурация резервной копии будет скопирована в filename внутри директории backup. | ||
| filename - | Имя файла, которое будет использоваться для хранения резервной копии конфигурации. Если имя файла не задано, оно будет сгенерировано на основе имени хоста, текущей даты и времени в формате <имя_хоста>_config.<дата>@<время>. | ||
| before - | Упорядоченный набор команд, которые будут добавлены в стек команд, если необходимо внести изменения. Это позволяет разработчику плейбука выполнить команды конфигурации до внесения любых изменений без влияния на соответствие набора команд системе. | ||
| defaults булево |
| Этот параметр указывает, следует ли собирать все значения по умолчанию при получении конфигурации удаленного устройства. При включенном режиме модуль получит текущую конфигурацию, выполнив команду show running-config all. | |
| diff_against - добавлен в 2.4 |
| При использовании параметра командной строки ansible-playbook --diff, модуль может генерировать разницы по отношению к различным источникам.Если этот параметр настроен как startup, модуль вернет разницу между текущей конфигурацией (running-config) и конфигурацией по умолчанию (startup-config). Если этот параметр настроен как intended, модуль вернет разницу между текущей конфигурацией (running-config) и конфигурацией, предоставленной в параметре intended_config. Если этот параметр настроен как running, модуль вернёт разницу между текущей конфигурацией (running-config) до и после внесения изменений в конфигурацию устройства. | |
| diff_ignore_lines - добавлен в 2.4 | Используйте этот параметр для указания одной или нескольких строк, которые должны быть проигнорированы при сравнении. Это используется для строк в конфигурации, которые автоматически обновляются системой. Этот параметр принимает список регулярных выражений или точных совпадений строк. | ||
| intended_config - добавлен в 2.4 | Параметр intended_config предоставляет основную конфигурацию, которой должен соответствовать узел, и используется для проверки конечной текущей конфигурации. Этот параметр не изменяет никаких настроек на удалённом устройстве и используется исключительно для проверки соответствия текущей конфигурации устройства заданной. При указании этого параметра в задаче также необходимо изменить значение diff_against и установить его в intended. | ||
| lines - | Упорядоченный набор команд, которые должны быть настроены в разделе. Команды должны быть точно такими же, как и в конфигурации running-config устройства. Убедитесь, что вы учли синтаксис команд конфигурации, так как некоторые команды автоматически изменяются парсером конфигурации устройства. псевдонимы: команды | ||
| match - |
| Указывает модулю способ сравнения набора команд с текущей конфигурацией устройства. Если match установлен в line, команды сравниваются по строкам. Если match установлен в strict, строки команд сравниваются относительно их позиции. Если match установлен в exact, строки команд должны точно совпадать. Наконец, если match установлен в none, модуль не будет пытаться сравнить исходную конфигурацию с текущей конфигурацией на удалённом устройстве. | |
| multiline_delimiter - | По умолчанию: "@" | Этот параметр используется при отправке многострочного элемента конфигурации на устройство IOS. Он указывает символ, который используется в качестве разделителя. Это относится только к действиям конфигурации. | |
| parents - | Упорядоченный набор родительских элементов, которые уникально идентифицируют раздел или иерархию, по которым должны проверяться команды. Если параметр parents опущен, команды проверяются относительно набора команд верхнего уровня или глобальных команд. | ||
| provider словарь | Устарело Начиная с Ansible 2.5, рекомендуется использовать connection: network_cli.Для получения дополнительной информации, обратитесь к руководству IOS Platform Options. Объект словаря, содержащий данные подключения. | ||
| auth_pass строка | Указывает пароль, необходимый для входа в привилегированный режим на удаленном устройстве. Если authorize имеет значение false, этот параметр не имеет эффекта. Если значение не указано в задаче, будет использовано значение переменной среды ANSIBLE_NET_AUTH_PASS. | ||
| authorize булево |
| Указывает модулю на вход в привилегированный режим на удаленном устройстве перед отправкой любых команд. Если не указано, устройство попытается выполнить все команды в режиме без привилегий. Если значение не указано в задаче, будет использовано значение переменной среды ANSIBLE_NET_AUTHORIZE. | |
| host строка / обязательно | Указывает имя DNS-хоста или адрес для подключения к удаленному устройству через указанный транспорт. Значение параметра host используется как адрес назначения для транспорта. | ||
| password string | Указывает пароль для аутентификации подключения к удалённому устройству. Это значение используется для аутентификации сеанса SSH. Если значение не указано в задаче, используется значение переменной среды ANSIBLE_NET_PASSWORD. | ||
| port integer | По умолчанию: 22 | Указывает порт для подключения к удалённому устройству. | |
| ssh_keyfile path | Указывает SSH-ключ для аутентификации подключения к удалённому устройству. Это значение — путь к ключу, используемому для аутентификации сеанса SSH. Если значение не указано в задаче, используется значение переменной среды ANSIBLE_NET_SSH_KEYFILE. | ||
| timeout integer | По умолчанию: 10 | Устанавливает таймаут в секундах для связи с сетевым устройством при подключении или отправке команд. Если таймаут истечёт до завершения операции, модуль выдаст ошибку. | |
| username string | Устанавливает имя пользователя для аутентификации подключения к удалённому устройству. Это значение используется для аутентификации сеанса SSH. Если значение не указано в задаче, используется значение переменной среды ANSIBLE_NET_USERNAME. | ||
| replace - |
| Указывает модулю способ выполнения конфигурации на устройстве. Если аргумент replace установлен в строка, то изменённые строки будут отправлены устройству в режиме конфигурации. Если аргумент replace установлен в блок, то весь блок команд будет отправлен устройству в режиме конфигурации, если какая-либо строка неверна. | |
| running_config - добавлен в 2.4 | Модуль по умолчанию подключается к удалённому устройству и извлекает текущую running-config для сравнения с содержимым источника. В некоторых случаях нежелательно получать текущую running-config для каждой задачи в playbook. Аргумент running_config позволяет разработчику указать конфигурацию, которая будет использоваться в качестве базовой конфигурации для сравнения. алиасы: config | ||
| save_when - добавлен в 2.4 |
| По умолчанию, при внесении изменений в running-config устройства, эти изменения не копируются в энергонезависимую память. Данный аргумент изменяет это поведение. Если аргумент установлен в всегда, то running-config всегда будет скопирована в startup-config, и флаг изменено будет всегда установлен в True. Если аргумент установлен в изменено, то running-config будет скопирована в startup-config только в случае изменения с момента последней записи в startup-config. Если аргумент установлен в никогда, то running-config никогда не будет скопирована в startup-config. Если аргумент установлен в изменено, то running-config будет скопирована в startup-config только если в задаче были внесены изменения. изменено был добавлен в Ansible 2.5. | |
| src - | Указывает путь к файлу, содержащему конфигурацию или шаблон конфигурации для загрузки. Путь к исходному файлу может быть полным путём на хосте Ansible или относительным путём от корня playbook или роли. Этот аргумент несовместим с lines и parents. | ||
Примечания
Примечание
- Проверено на IOS 15.6
- Сокращённые команды НЕ идемпотентны, см. Вопросы и ответы по сети.
- Дополнительную информацию об использовании Ansible для управления сетевыми устройствами см. в Руководстве по Ansible для сетей
- Дополнительную информацию об использовании Ansible для управления устройствами Cisco см. на странице интеграции Cisco.
Примеры
- name: configure top level configuration
ios_config:
lines: hostname {{ inventory_hostname }}
- name: configure interface settings
ios_config:
lines:
- description test interface
- ip address 172.31.1.1 255.255.255.0
parents: interface Ethernet1
- name: configure ip helpers on multiple interfaces
ios_config:
lines:
- ip helper-address 172.26.1.10
- ip helper-address 172.26.3.8
parents: "{{ item }}"
with_items:
- interface Ethernet1
- interface Ethernet2
- interface GigabitEthernet1
- name: configure policer in Scavenger class
ios_config:
lines:
- conform-action transmit
- exceed-action drop
parents:
- policy-map Foo
- class Scavenger
- police cir 64000
- name: load new acl into device
ios_config:
lines:
- 10 permit ip host 192.0.2.1 any log
- 20 permit ip host 192.0.2.2 any log
- 30 permit ip host 192.0.2.3 any log
- 40 permit ip host 192.0.2.4 any log
- 50 permit ip host 192.0.2.5 any log
parents: ip access-list extended test
before: no ip access-list extended test
match: exact
- name: check the running-config against master config
ios_config:
diff_against: intended
intended_config: "{{ lookup('file', 'master.cfg') }}"
- name: check the startup-config against the running-config
ios_config:
diff_against: startup
diff_ignore_lines:
- ntp clock .*
- name: save running to startup when modified
ios_config:
save_when: modified
- name: for idempotency, use full-form commands
ios_config:
lines:
# - shut
- shutdown
# parents: int gig1/0/11
parents: interface GigabitEthernet1/0/11
# Set boot image based on comparison to a group_var (version) and the version
# that is returned from the `ios_facts` module
- name: SETTING BOOT IMAGE
ios_config:
lines:
- no boot system
- boot system flash bootflash:{{new_image}}
host: "{{ inventory_hostname }}"
when: ansible_net_version != version
- name: render a Jinja2 template onto an IOS device
ios_config:
backup: yes
src: ios_template.j2
- name: configurable backup path
ios_config:
src: ios_template.j2
backup: yes
backup_options:
filename: backup.cfg
dir_path: /home/user
Значения возврата
Общие значения возврата описаны здесь, следующие поля уникальны для этого модуля:
| Ключ | Возвращаемое значение | Описание |
|---|---|---|
| backup_path string | при backup = yes | Полный путь к резервной копии Пример: /playbooks/ansible/backup/ios_config.2016-07-16@22:28:34 |
| commands list | всегда | Набор команд, которые будут отправлены на удалённое устройство Пример: ['hostname foo', 'router ospf 1', 'router-id 192.0.2.1'] |
| date string | при backup = yes | Дата, извлечённая из имени резервной копии Пример: 2016-07-16 |
| filename string | при backup = yes и имя файла не указано в параметрах резервного копирования | Имя файла резервной копии Пример: ios_config.2016-07-16@22:28:34 |
| shortname string | при backup = yes и имя файла не указано в параметрах резервного копирования | Полный путь к файлу резервной копии без временной метки Пример: /playbooks/ansible/backup/ios_config |
| time string | при backup = yes | Время, извлечённое из имени файла резервной копии Пример: 22:28:34 |
| updates list | всегда | Набор команд, которые будут отправлены на удалённое устройство Пример: ['hostname foo', 'router ospf 1', 'router-id 192.0.2.1'] |
Статус
- Интерфейс этого модуля не гарантирует обратную совместимость. [превью]
- Этот модуль поддерживается командой Ansible Network. [сеть]
Поддержка 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/ios_config_module.html