Spec-Zone.ru › Ansible 2.10

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

Примечание

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

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

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

В версии 1.0.0: модуля cisco.ios

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

Обзор

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

Примечание

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

Параметры

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

псевдонимы: команды
match
строка
    Варианты:
  • строка ←
  • строго
  • точно
  • ничего
Указывает модулю способ сравнения набора команд с текущей конфигурацией устройства. Если match установлено в строка, команды сравниваются построчно. Если match установлено в строго, строки команд сравниваются с учётом позиции. Если match установлено в точно, строки команд должны быть полным совпадением. Наконец, если match установлено в ничего, модуль не будет пытаться сравнить исходную конфигурацию с конфигурацией running на удалённом устройстве.
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
строка
Указывает пароль для аутентификации подключения к удалённому устройству. Это значение используется для аутентификации сеанса SSH. Если значение не указано в задаче, будет использовано значение переменной окружения ANSIBLE_NET_PASSWORD.
port
целое число
Указывает порт, используемый при построении подключения к удалённому устройству.
ssh_keyfile
путь
Указывает SSH-ключ для аутентификации подключения к удалённому устройству. Это значение — путь к ключу, используемому для аутентификации сеанса SSH. Если значение не указано в задаче, будет использовано значение переменной окружения ANSIBLE_NET_SSH_KEYFILE.
timeout
целое число
Указывает таймаут в секундах для связи с сетевым устройством при подключении или отправке команд. Если таймаут истечёт до завершения операции, модуль вернёт ошибку.
username
строка
Устанавливает имя пользователя для аутентификации подключения к удалённому устройству. Это значение используется для аутентификации сеанса SSH. Если значение не указано в задаче, будет использовано значение переменной окружения ANSIBLE_NET_USERNAME.
replace
строка
    Варианты:
  • строка ←
  • блок
Указывает модулю способ выполнения конфигурации на устройстве. Если аргумент replace установлен в строка, изменённые строки отправляются устройству в режиме конфигурации. Если аргумент replace установлен в блок, весь блок команд отправляется устройству в режиме конфигурации, если какая-либо строка не верна.
running_config
строка
Модуль по умолчанию подключается к удалённому устройству и извлекает текущую конфигурацию running, чтобы использовать её в качестве основы для сравнения с содержимым источника. Иногда нежелательно, чтобы задача получала текущую конфигурацию running для каждой задачи в плейбуке. Аргумент running_config позволяет реализатору передавать конфигурацию, которая будет использоваться в качестве базовой конфигурации для сравнения.

псевдонимы: конфигурация
save_when
строка
    Варианты:
  • always
  • never ←
  • modified
  • changed
Когда в конфигурации устройства выполняются изменения, по умолчанию эти изменения не копируются в энергонезависимую память. Использование этого аргумента изменит это поведение. Если аргумент установлен в always, конфигурация текущей конфигурации всегда будет скопирована в стартовую конфигурацию, и флаг modified всегда будет установлен в True. Если аргумент установлен в modified, конфигурация текущей конфигурации будет скопирована в стартовую конфигурацию только в том случае, если она изменилась с момента последней записи в стартовую конфигурацию. Если аргумент установлен в never, конфигурация текущей конфигурации никогда не будет скопирована в стартовую конфигурацию. Если аргумент установлен в changed, конфигурация текущей конфигурации будет скопирована в стартовую конфигурацию только в том случае, если задачей были внесены изменения. changed был добавлен в Ansible 2.5.
src
строка
Указывает путь к файлу, содержащему конфигурацию или шаблон конфигурации для загрузки. Путь к исходному файлу может быть полным путем на хосте управления Ansible или относительным путем от корневого каталога playbook или роли. Этот аргумент взаимоисключающий с lines, parents.

Примечания

Примечание

  • Проверено на IOS 15.6
  • Сокращенные команды НЕ идемпотентны, см. L (FAQ по сети,../network/user_guide/faq.html#why-do-the-config-modules-always-return-changed-true-with-abbreviated-commands).
  • Для получения дополнительной информации об использовании 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
строка
при 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']


Авторы

  • 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.10/collections/cisco/ios/ios_config_module.html

Spec-Zone.ru

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