Spec-Zone.ru › Ansible 2.8

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
логическое значение
    Варианты:
  • no ←
  • yes
Устарело
Начиная с Ansible 2.5, рекомендуется использовать connection: network_cli и become: yes.
Дополнительную информацию можно найти в руководстве IOS Platform Options.
Инструктирует модуль войти в привилегированный режим на удалённом устройстве перед отправкой любых команд. Если не указано, устройство попытается выполнить все команды в режиме без привилегий. Если значение не указано в задаче, используется значение переменной окружения ANSIBLE_NET_AUTHORIZE вместо.
backup
логическое значение
добавлен в 2.2
    Варианты:
  • no ←
  • yes
Этот аргумент заставит модуль создать полную резервную копию текущего running-config с удалённого устройства перед внесением каких-либо изменений. Если значение backup_options не задано, файл резервной копии записывается в папку backup в корневом каталоге playbook или корневом каталоге роли, если playbook является частью роли ansible. Если каталог не существует, он создаётся.
backup_options
словарь
добавлен в 2.8
Это объект dict, содержащий настраиваемые параметры, связанные с путём к файлу резервной копии. Значение этого параметра считывается только когда backup установлено в yes. Если backup установлено в no, этот параметр будет проигнорирован.
dir_path
путь
Этот параметр предоставляет путь, заканчивающийся именем каталога, в котором будет храниться конфигурационный файл резервной копии. Если каталог не существует, он будет сначала создан, а имя файла будет либо значением filename, либо именем файла по умолчанию, как описано в описании параметров filename. Если значение пути не задано, в текущем рабочем каталоге будет создан каталог backup, и конфигурация резервной копии будет скопирована в filename в каталоге backup.
filename
-
Имя файла, которое будет использоваться для хранения конфигурации резервной копии. Если имя файла не указано, оно будет сгенерировано на основе имени хоста, текущего времени и даты в формате <имя_хоста>_config.<дата>@<время>.
before
-
Упорядоченный набор команд, которые добавляются в стек команд, если необходимо внести изменения. Это позволяет разработчику playbook выполнить конфигурационные команды до внесения каких-либо изменений, не влияя на то, как набор команд сопоставляется с системой.
defaults
логическое значение
добавлен в 2.2
    Варианты:
  • no ←
  • yes
Этот аргумент указывает, нужно ли собирать все значения по умолчанию при получении конфигурации удалённого устройства. При включении, модуль получит текущую конфигурацию, выполнив команду show running-config all.
diff_against
-
добавлен в 2.4
    Варианты:
  • running
  • startup
  • intended
При использовании аргумента командной строки 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 предоставляет базовую конфигурацию, которой должен соответствовать узел, и используется для проверки конечной running-config. Этот аргумент не будет изменять какие-либо настройки на удалённом устройстве и строго используется для проверки соответствия текущей конфигурации устройства. При указании этого аргумента, задача также должна изменить значение diff_against и установить его в intended.
lines
-
Упорядоченный набор команд, которые должны быть настроены в разделе. Команды должны быть точно такими же, как и в конфигурации running-config устройства. Обратите внимание на синтаксис команд конфигурации, так как некоторые команды автоматически изменяются анализатором конфигурации устройства.

псевдонимы: команды
match
-
    Варианты:
  • line ←
  • strict
  • exact
  • none
Инструктирует модуль, как выполнить сопоставление набора команд с текущей конфигурацией устройства. Если 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.
Объект dict, содержащий данные подключения.
auth_pass
строка
Указывает пароль для входа в привилегированный режим на удалённом устройстве, если это необходимо. Если authorize равно false, то этот аргумент ничего не делает. Если значение не указано в задаче, используется значение переменной окружения ANSIBLE_NET_AUTH_PASS вместо.
authorize
логическое значение
    Варианты:
  • no ←
  • yes
Инструктирует модуль войти в привилегированный режим на удалённом устройстве перед отправкой любых команд. Если не указано, устройство попытается выполнить все команды в режиме без привилегий. Если значение не указано в задаче, используется значение переменной окружения ANSIBLE_NET_AUTHORIZE вместо.
host
строка / обязательно
Указывает имя хоста DNS или адрес для подключения к удалённому устройству по указанному транспорту. Значение host используется в качестве целевого адреса для транспорта.
password
строка
Указывает пароль для аутентификации подключения к удалённому устройству. Это значение используется для аутентификации сессии SSH. Если значение не указано в задаче, будет использовано значение переменной окружения ANSIBLE_NET_PASSWORD.
port
целое число
По умолчанию:
22
Указывает порт для подключения к удалённому устройству.
ssh_keyfile
путь
Указывает SSH-ключ для аутентификации подключения к удалённому устройству. Это значение — путь к ключу, используемому для аутентификации сессии SSH. Если значение не указано в задаче, будет использовано значение переменной окружения ANSIBLE_NET_SSH_KEYFILE.
timeout
целое число
По умолчанию:
10
Указывает таймаут в секундах для связи с сетевым устройством при подключении или отправке команд. Если таймаут истечёт до завершения операции, модуль выдаст ошибку.
username
строка
Указывает имя пользователя для аутентификации подключения к удалённому устройству. Это значение используется для аутентификации сессии SSH. Если значение не указано в задаче, будет использовано значение переменной окружения ANSIBLE_NET_USERNAME.
replace
-
    Варианты:
  • строка ←
  • блок
Указывает модулю способ выполнения конфигурации на устройстве. Если аргумент replace установлен в строка, то изменённые строки отправляются на устройство в режиме конфигурации. Если аргумент replace установлен в блок, то весь блок команд отправляется на устройство в режиме конфигурации, если какая-либо строка некорректна.
running_config
-
добавлено в 2.4
По умолчанию модуль подключается к удалённому устройству и извлекает текущую конфигурацию running-config для сравнения с содержимым источника. Иногда нежелательно, чтобы задача получала текущую running-config для каждой задачи в playbook. Аргумент running_config позволяет реализатору передать конфигурацию для использования в качестве базовой конфигурации для сравнения.

алиасы: config
save_when
-
добавлено в 2.4
    Варианты:
  • всегда
  • никогда ←
  • изменено
  • изменилось
По умолчанию, при внесении изменений в конфигурацию running-устройства, эти изменения не копируются в постоянное хранилище. Этот аргумент изменяет это поведение. Если аргумент установлен в всегда, то running-config всегда копируется в startup-config, и флаг изменено всегда устанавливается в True. Если аргумент установлен в изменено, то running-config копируется в startup-config только в том случае, если он изменился с момента последней записи в startup-config. Если аргумент установлен в никогда, то running-config никогда не копируется в startup-config. Если аргумент установлен в изменилось, то running-config копируется в startup-config только в том случае, если задача внесла изменения. изменилось было добавлено в Ansible 2.5.
src
-
добавлено в 2.2
Указывает путь к файлу-источнику, содержащему конфигурацию или шаблон конфигурации для загрузки. Путь к исходному файлу может быть полным путём на хосте 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
строка
при 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 и filename не указан в опциях резервной копии
Имя файла резервной копии

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

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

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

Пример:
['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.8/modules/ios_config_module.html

Spec-Zone.ru

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