Spec-Zone.ru › Ansible 2.11

cisco.ios.ios_config – Управление разделами конфигурации Cisco IOS

Примечание

Этот плагин входит в состав коллекции cisco.ios (версия 1.3.0).

Для его установки используйте: ansible-galaxy collection install cisco.ios.

Для использования в плейбуке укажите: cisco.ios.ios_config.

Новый в версии 1.0.0: of cisco.ios

  • Обзор
  • Параметры
  • Примечания
  • Примеры
  • Возвращаемые значения

Обзор

  • Конфигурации Cisco IOS используют простой синтаксис блочного отступа для разделения конфигурации на секции. Этот модуль предоставляет реализацию для работы с секциями конфигурации IOS детерминированным способом.

Примечание

У этого модуля есть соответствующий плагин действий.

Параметры

Параметр Варианты/Значения по умолчанию Комментарии
after
список / элементы=строка
Упорядоченный набор команд, добавляемых в конец стека команд, если требуется внести изменения. Аналогично параметру before, это позволяет разработчику playbook добавить набор команд, которые будут выполнены после набора команд.
backup
логическое значение
    Варианты:
  • нет ←
  • да
Этот аргумент заставит модуль создать полную резервную копию текущей running-config с удаленного устройства перед внесением каких-либо изменений. Если значение backup_options не указано, файл резервной копии записывается в папку backup в корневом каталоге playbook или в корневом каталоге роли, если playbook является частью роли ansible. Если каталог не существует, он создается.
backup_options
словарь
Это объект типа dict, содержащий конфигурируемые параметры, связанные с путем к файлу резервной копии. Значение этого параметра считывается только тогда, когда backup установлено в да; если backup установлено в нет, этот параметр будет проигнорирован.
dir_path
путь
Этот параметр задает путь, заканчивающийся именем каталога, в котором будет храниться файл конфигурации резервной копии. Если каталог не существует, он будет сначала создан, а имя файла будет либо значением filename, либо именем файла по умолчанию, как описано в описании параметров filename. Если значение пути не указано, в текущей рабочей директории будет создан каталог backup, и конфигурация резервной копии будет скопирована в filename внутри каталога backup.
filename
строка
Имя файла, используемого для хранения резервной копии конфигурации. Если имя файла не указано, оно будет сгенерировано на основе имени хоста, текущей даты и времени в формате <имя_хоста>_config.<дата>@<время>
before
список / элементы=строка
Упорядоченный набор команд, помещаемых в стек команд, если требуется внести изменения. Это позволяет разработчику playbook выполнить команды конфигурации перед внесением любых изменений без влияния на то, как набор команд сопоставляется с системой.
defaults
логическое значение
    Варианты:
  • нет ←
  • да
Этот аргумент указывает, нужно ли собирать все значения по умолчанию при получении конфигурации устройства. При включении модуль получит текущую конфигурацию, выполнив команду show running-config all.
diff_against
строка
    Варианты:
  • running
  • startup
  • intended
При использовании аргумента командной строки ansible-playbook --diff модуль может генерировать разницы (diffs) по различным источникам.
Когда этот параметр настроен как startup, модуль вернёт разницу между текущей конфигурацией (running-config) и конфигурацией по умолчанию (startup-config).
Когда этот параметр настроен как intended, модуль вернёт разницу между текущей конфигурацией (running-config) и конфигурацией, предоставленной в аргументе intended_config.
Когда этот параметр настроен как running, модуль вернёт разницу между конфигурацией до изменений (before) и после изменений (after) текущей конфигурации (running-config) по отношению к любым изменениям, внесённым в конфигурацию устройства.
diff_ignore_lines
список / элементы=строка
Используйте этот аргумент, чтобы указать одну или несколько строк, которые должны быть проигнорированы при сравнении (diff). Это используется для строк в конфигурации, которые автоматически обновляются системой. Этот аргумент принимает список регулярных выражений или точных совпадений строк.
intended_config
строка
intended_config предоставляет основную конфигурацию, к которой должен соответствовать узел, и используется для проверки конечной текущей конфигурации (running-config). Этот аргумент не будет изменять какие-либо настройки на удалённом устройстве и используется исключительно для проверки соответствия текущей конфигурации устройства. При указании этого аргумента задача также должна изменить значение diff_against и установить его в intended. Строки конфигурации для этого значения должны быть похожи на то, как они будут выглядеть, если они присутствуют в текущей конфигурации (running-configuration) устройства, включая отступы для обеспечения правильного сравнения.
lines
список / элементы=строка
Упорядоченный набор команд, которые должны быть настроены в разделе. Команды должны быть точно такими же, как и в текущей конфигурации устройства (running-config), чтобы обеспечить идемпотентность и правильное сравнение. Обратите внимание на синтаксис команд конфигурации, так как некоторые команды автоматически изменяются анализатором конфигурации устройства.

псевдонимы: команды
match
строка
    Варианты:
  • строка ←
  • строго
  • точно
  • ничего
Указывает модулю способ сопоставления набора команд с текущей конфигурацией устройства. Если match установлено в строка, команды сопоставляются по строкам. Если match установлено в строго, строки команд сопоставляются с учётом позиции. Если match установлено в точно, строки команд должны быть точным совпадением. Наконец, если match установлено в ничего, модуль не будет пытаться сравнить исходную конфигурацию с текущей конфигурацией (running-configuration) на удалённом устройстве.
multiline_delimiter
строка
Значение по умолчанию:
"@"
Этот аргумент используется при отправке многострочного элемента конфигурации на устройство IOS. Он указывает символ, который используется в качестве разделителя. Это относится только к действию конфигурации.
parents
список / элементы=строка
Упорядоченный набор родительских элементов, которые однозначно идентифицируют раздел или иерархию, по которой должны быть проверены команды. Если аргумент parents опущен, команды проверяются по отношению к набору команд верхнего уровня или глобальным командам.
provider
словарь
Устарело
Начиная с Ansible 2.5, мы рекомендуем использовать connection: network_cli.
Для получения дополнительной информации см. руководство IOS Platform Options.
Объект типа dict, содержащий данные подключения.
auth_pass
строка
Указывает пароль для входа в привилегированный режим на удалённом устройстве, если это необходимо. Если authorize равно false, этот аргумент ничего не делает. Если значение не указано в задаче, используется значение переменной среды ANSIBLE_NET_AUTH_PASS.
authorize
логическое значение
    Варианты:
  • нет ←
  • да
Указывает модулю войти в привилегированный режим на удалённом устройстве перед отправкой любых команд. Если не указано, устройство попытается выполнить все команды в режиме без привилегий. Если значение не указано в задаче, используется значение переменной среды ANSIBLE_NET_AUTHORIZE.
host
строка
Указывает имя хоста DNS или адрес для подключения к удалённому устройству по указанному типу транспорта. Значение host используется в качестве адреса назначения для транспорта.
password
строка
Указывает пароль для аутентификации подключения к удалённому устройству. Это значение используется для аутентификации сессии SSH. Если значение не указано в задаче, используется значение переменной среды ANSIBLE_NET_PASSWORD.
port
целое число
Указывает порт, используемый при создании подключения к удалённому устройству.
ssh_keyfile
путь
Указывает SSH-ключ для аутентификации подключения к удалённому устройству. Это значение — путь к ключу, используемому для аутентификации сессии SSH. Если значение не указано в задаче, используется значение переменной среды ANSIBLE_NET_SSH_KEYFILE.
timeout
целое число
Указывает таймаут в секундах для связи с сетевым устройством при подключении или отправке команд. Если таймаут истекает до завершения операции, модуль выдаст ошибку.
username
строка
Устанавливает имя пользователя для аутентификации подключения к удалённому устройству. Это значение используется для аутентификации сессии SSH. Если значение не указано в задаче, используется значение переменной среды ANSIBLE_NET_USERNAME.
replace
строка
    Варианты:
  • строка ←
  • блок
Указывает модулю способ выполнения конфигурации на устройстве. Если аргумент replace установлен в строка, изменённые строки отправляются устройству в режиме конфигурации. Если аргумент replace установлен в блок, весь блок команд отправляется на устройство в режиме конфигурации, если какая-либо строка не верна.
running_config
string
Модуль по умолчанию подключается к удалённому устройству и получает текущую конфигурацию running-config, чтобы использовать её как базу для сравнения с содержимым источника. Бывают ситуации, когда нежелательно, чтобы задача получала текущую конфигурацию running-config для каждой задачи в плейбуке. Аргумент running_config позволяет разработчику передать конфигурацию, которая будет использоваться как базовая конфигурация для сравнения. Строки конфигурации для этого параметра должны быть похожи на то, как они будут отображаться при наличии в running-configuration устройства, включая отступы для обеспечения идемпотентности и корректного diff.

псевдонимы: config
save_when
string
    Варианты:
  • always
  • never ←
  • modified
  • changed
Когда в конфигурации running-configuration устройства вносятся изменения, эти изменения по умолчанию не копируются в нелетучую память. Использование этого аргумента изменит это до того. Если аргумент установлен в 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
string
Указывает путь к файлу-источнику, содержащему конфигурацию или шаблон конфигурации для загрузки. Путь к исходному файлу может быть полным путем на хосте Ansible или относительным путем от корневой директории плейбука или роли. Этот аргумент несовместим с аргументами lines, parents. Строки конфигурации в исходном файле должны быть похожи на то, как они будут отображаться при наличии в running-configuration устройства, включая отступы для обеспечения идемпотентности и корректного diff.

Примечания

Примечание

  • Тестировано на IOS 15.6
  • Сокращённые команды НЕ идемпотентны, см. L (Справочник по сети, ../network/user_guide/faq.html#why-do-the-config-modules-always-return-changed-true-with-abbreviated-commands).
  • Для обеспечения идемпотентности и корректного diff, строки конфигурации в соответствующих параметрах модуля должны быть похожи на то, как они отображаются, если они присутствуют в текущей конфигурации устройства, включая отступы.
  • Дополнительную информацию об использовании Ansible для управления сетевыми устройствами можно найти в Руководстве по сети Ansible
  • Дополнительную информацию об использовании Ansible для управления устройствами Cisco можно найти на странице интеграции Cisco .

Примеры

- name: configure top level configuration
  cisco.ios.ios_config:
    lines: hostname {{ inventory_hostname }}

- name: configure interface settings
  cisco.ios.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
  cisco.ios.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
  cisco.ios.ios_config:
    lines:
    - conform-action transmit
    - exceed-action drop
    parents:
    - policy-map Foo
    - class Scavenger
    - police cir 64000

- name: load new acl into device
  cisco.ios.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
  cisco.ios.ios_config:
    diff_against: intended
    intended_config: "{{ lookup('file', 'master.cfg') }}"

- name: check the startup-config against the running-config
  cisco.ios.ios_config:
    diff_against: startup
    diff_ignore_lines:
    - ntp clock .*

- name: save running to startup when modified
  cisco.ios.ios_config:
    save_when: modified

- name: for idempotency, use full-form commands
  cisco.ios.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
  cisco.ios.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
  cisco.ios.ios_config:
    backup: yes
    src: ios_template.j2

- name: configurable backup path
  cisco.ios.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
список / элементы=строка
всегда
Набор команд, которые будут отправлены на удалённое устройство

Пример:
['hostname foo', 'router ospf 1', 'router-id 192.0.2.1']
date
строка
при backup = yes
Дата, извлеченная из имени файла резервной копии

Пример:
2016-07-16
filename
строка
при backup = yes и имя файла не указано в параметрах резервного копирования
Имя файла резервной копии

Пример:
ios_config.2016-07-16@22:28:34
shortname
строка
при backup = yes и имя файла не указано в параметрах резервного копирования
Полный путь к файлу резервной копии без временной метки

Пример:
/playbooks/ansible/backup/ios_config
time
строка
при backup = yes
Время, извлеченное из имени файла резервной копии

Пример:
22:28:34
updates
список / элементы=строка
всегда
Набор команд, которые будут отправлены на удалённое устройство

Пример:
['hostname foo', 'router ospf 1', 'router-id 192.0.2.1']


Авторы

  • Пётр Спрыгада (@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/cisco/ios/ios_config_module.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API