ios_config - Управление разделами конфигурации Cisco IOS
Новая версия 2.1.
Описание
- Конфигурации Cisco IOS используют простой синтаксис с отступами для разделения конфигурации на секции. Этот модуль предоставляет реализацию для работы с разделами конфигурации IOS детерминированным способом.
Параметры
| Параметр | Варианты/Значения по умолчанию | Комментарии | |
|---|---|---|---|
| after | Упорядоченный набор команд, которые добавляются в конец стека команд, если требуется внести изменения. Как и в случае с before, это позволяет разработчику playbook добавить набор команд, которые будут выполняться после набора команд. | ||
| auth_pass | Устарело Начиная с Ansible 2.5, рекомендуется использовать connection: network_cli и become: yes с become_pass. Для получения дополнительной информации см. руководство IOS Platform Options. Указывает пароль для входа в привилегированный режим на удалённом устройстве, если это необходимо. Если authorize равно false, этот аргумент не имеет эффекта. Если значение не указано в задаче, используется значение переменной среды ANSIBLE_NET_AUTH_PASS. | ||
| authorize bool |
| Устарело Начиная с Ansible 2.5, рекомендуется использовать connection: network_cli и become: yes.Для получения дополнительной информации см. руководство IOS Platform Options. Указывает модулю войти в привилегированный режим на удалённом устройстве перед отправкой любых команд. Если не указано, устройство попытается выполнить все команды в режиме без привилегий. Если значение не указано в задаче, используется значение переменной среды ANSIBLE_NET_AUTHORIZE. | |
| backup bool (добавлен в 2.2) |
| Этот аргумент заставит модуль создать полную резервную копию текущей running-config с удалённого устройства перед внесением любых изменений. Файл резервной копии записывается в папку backup в корневом каталоге playbook или корневом каталоге роли, если playbook является частью роли ansible. Если директория не существует, она создаётся. | |
| before | Упорядоченный набор команд, которые добавляются в стек команд, если требуется внести изменения. Это позволяет разработчику playbook выполнить команды конфигурации перед внесением любых изменений без влияния на сопоставление набора команд с системой. | ||
| defaults bool (добавлен в 2.2) |
| Этот аргумент указывает, следует ли собирать все значения по умолчанию при получении конфигурации работающего устройства на удалённом устройстве. При включённом значении модуль получит текущую конфигурацию, выдав команду show running-config all. | |
| diff_against (добавлен в 2.4) |
| При использовании аргумента командной строки ansible-playbook --diff, модуль может генерировать разницы относительно различных источников.Когда этот параметр настроен как startup, модуль вернёт разницу между running-config и startup-config. Когда этот параметр настроен как intended, модуль вернёт разницу между running-config и конфигурацией, предоставленной в аргументе intended_config.Когда этот параметр настроен как running, модуль вернёт разницу между конфигурацией до и после изменения конфигурации устройства. | |
| diff_ignore_lines (добавлен в 2.4) | Используйте этот аргумент для указания одной или нескольких строк, которые должны быть проигнорированы при сравнении. Это используется для строк в конфигурации, которые автоматически обновляются системой. Этот аргумент принимает список регулярных выражений или точных совпадений строк. | ||
| force bool |
| Аргумент force указывает модулю не учитывать текущую конфигурацию устройства. При установке в true, это заставит модуль перенести содержимое src на устройство без предварительной проверки, если оно уже настроено. Обратите внимание, что этот аргумент следует считать устаревшим. Для достижения эквивалента установите match=none, который идемпотентен. Этот аргумент будет удалён в Ansible 2.6. | |
| intended_config (добавлен в 2.4) | intended_config предоставляет основную конфигурацию, которой должен соответствовать узел, и используется для проверки окончательной running-config. Этот аргумент не будет изменять какие-либо настройки на удалённом устройстве и используется исключительно для проверки соответствия текущей конфигурации устройства. При указании этого аргумента, задача также должна изменить значение diff_against и установить его в intended. | ||
| lines | Упорядоченный набор команд, которые должны быть настроены в разделе. Команды должны быть точно такими же, как и в конфигурации running-config устройства. Обратите внимание на синтаксис команд конфигурации, так как некоторые команды автоматически изменяются парсером конфигурации устройства. псевдонимы: команды | ||
| match |
| Указывает модулю, как выполнять сопоставление набора команд с текущей конфигурацией устройства. Если match установлен на line, команды сопоставляются по строкам. Если match установлен на strict, строки команд сопоставляются с учётом позиции. Если match установлен на exact, строки команд должны быть точным совпадением. Наконец, если match установлен на none, модуль не будет пытаться сравнить исходную конфигурацию с рабочей конфигурацией на удалённом устройстве. | |
| multiline_delimiter (добавлен в 2.3) | Значение по умолчанию: "@" | Этот аргумент используется при переносе многострочного элемента конфигурации на устройство IOS. Он указывает символ, который будет использоваться в качестве разделителя. Это применимо только к действию конфигурации. | |
| parents | Упорядоченный набор родительских элементов, которые однозначно идентифицируют раздел или иерархию, с которыми должны быть проверены команды. Если аргумент parents опущен, команды проверяются относительно набора команд верхнего уровня или глобальных команд. | ||
| provider | Устарело Начиная с Ansible 2.5, рекомендуется использовать connection: network_cli. Для получения дополнительной информации см. руководство IOS Platform Options. Объект словаря, содержащий сведения о подключении. | ||
| host required | Указывает имя хоста DNS или адрес для подключения к удалённому устройству через указанный транспорт. Значение host используется в качестве адреса назначения для транспорта. | ||
| port | Значение по умолчанию: 22 | Указывает порт, используемый при построении подключения к удалённому устройству. | |
| username | Настраивает имя пользователя для аутентификации подключения к удалённому устройству. Это значение используется для аутентификации сеанса SSH. Если значение не указано в задаче, используется значение переменной среды ANSIBLE_NET_USERNAME. | ||
| password | Указывает пароль для аутентификации подключения к удалённому устройству. Это значение используется для аутентификации сеанса SSH. Если значение не указано в задаче, используется значение переменной среды ANSIBLE_NET_PASSWORD. | ||
| timeout | Значение по умолчанию: 10 | Указывает таймаут в секундах для связи с сетевым устройством для подключения или отправки команд. Если таймаут истечёт до завершения операции, модуль вернёт ошибку. | |
| ssh_keyfile | Указывает SSH-ключ для аутентификации подключения к удалённому устройству. Это путь к ключу, используемому для аутентификации сеанса SSH. Если значение не указано в задаче, используется значение переменной среды ANSIBLE_NET_SSH_KEYFILE. | ||
| authorize bool |
| Указывает модулю войти в привилегированный режим на удалённом устройстве перед отправкой любых команд. Если не указано, устройство попытается выполнить все команды в режиме без привилегий. Если значение не указано в задаче, используется значение переменной среды ANSIBLE_NET_AUTHORIZE. | |
| auth_pass | Указывает пароль, используемый для входа в привилегированный режим на удалённом устройстве. Если authorize равно false, этот аргумент не имеет эффекта. Если значение не указано в задаче, используется значение переменной среды ANSIBLE_NET_AUTH_PASS. | ||
| replace |
| Указывает модулю, как выполнять конфигурацию на устройстве. Если аргумент replace установлен на line, изменённые строки передаются устройству в режиме конфигурации. Если аргумент replace установлен на block, весь блок команд передаётся устройству в режиме конфигурации, если какая-либо строка неверна. | |
| running_config (добавлено в 2.4) | Модуль по умолчанию подключается к удалённому устройству и извлекает текущую конфигурацию running-config, чтобы использовать её в качестве основы для сравнения с содержимым источника. Иногда нежелательно, чтобы задача извлекала текущую конфигурацию running-config для каждой задачи в плейбуке. Аргумент running_config позволяет разработчику передать конфигурацию, которая будет использоваться в качестве базовой конфигурации для сравнения. псевдонимы: config | ||
| save bool (добавлено в 2.2) |
| Аргумент save инструктирует модуль сохранить конфигурацию running-config в конфигурацию startup-config по завершении работы модуля. Если указан режим проверки (check mode), этот аргумент игнорируется.Этот параметр устарел начиная с Ansible 2.4 и будет удален в Ansible 2.8. Используйте save_when вместо него. | |
| save_when (добавлено в 2.4) |
| При внесении изменений в конфигурацию running-устройства по умолчанию изменения не копируются в энергонезависимую память. Этот аргумент позволит изменить это поведение. Если аргумент установлен в always, то конфигурация running-config всегда будет скопирована в startup-config, и флаг modified всегда будет установлен в True. Если аргумент установлен в modified, то конфигурация running-config будет скопирована в startup-config только в том случае, если она изменилась с момента последнего сохранения в startup-config. Если аргумент установлен в never, конфигурация running-config никогда не будет скопирована в startup-config. Если аргумент установлен в changed, конфигурация running-config будет скопирована в startup-config только в том случае, если задача внесла изменение. changed был добавлен в Ansible 2.5. | |
| src (добавлено в 2.2) | Указывает путь к источнику файла, содержащего конфигурацию или шаблон конфигурации для загрузки. Путь к исходному файлу может быть полным путем на хосте Ansible или относительным путем от корневой директории плейбука или роли. Этот аргумент взаимоисключающий с 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 1.1.1.1 any log
- 20 permit ip host 2.2.2.2 any log
- 30 permit ip host 3.3.3.3 any log
- 40 permit ip host 4.4.4.4 any log
- 50 permit ip host 5.5.5.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
Возвращаемые значения
Общие возвращаемые значения описаны здесь, следующие поля уникальны для этого модуля:
| Ключ | Возвращаемое значение | Описание |
|---|---|---|
| backup_path строка | при backup = yes | Полный путь к резервной копии файла Пример: /playbooks/ansible/backup/ios_config.2016-07-16@22:28:34 |
| commands список | всегда | Набор команд, которые будут отправлены на удалённое устройство Пример: ['hostname foo', 'router ospf 1', 'router-id 1.1.1.1'] |
| updates список | всегда | Набор команд, которые будут отправлены на удалённое устройство Пример: ['hostname foo', 'router ospf 1', 'router-id 1.1.1.1'] |
Статус
Этот модуль помечен как предварительный, что означает, что его интерфейс не гарантирует обратной совместимости.
Техническое обслуживание
Этот модуль помечен как сетевой, что означает, что он поддерживается командой Ansible Network. Подробнее см. Техническое обслуживание и поддержка модулей.
Список других модулей, которые также поддерживаются командой Ansible Network, см. здесь.
Поддержка
Дополнительную информацию о поддержке этого модуля компанией 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.6/modules/ios_config_module.html