Spec-Zone.ru › Ansible 2.7

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
boolean
    Варианты:
  • no ←
  • yes
Устаревший
Начиная с Ansible 2.5, рекомендуется использовать connection: network_cli и become: yes.
Для получения дополнительной информации см. руководство IOS Platform Options.
Инструктирует модуль войти в привилегированный режим на удалённом устройстве перед отправкой любых команд. Если не указано, устройство попытается выполнить все команды в режиме без привилегий. Если значение не указано в задаче, используется значение переменной среды ANSIBLE_NET_AUTHORIZE.
backup
boolean
added in 2.2
    Варианты:
  • no ←
  • yes
Этот аргумент заставит модуль создать полную резервную копию текущей running-config с удалённого устройства перед внесением каких-либо изменений. Файл резервной копии записывается в папку backup в корневом каталоге playbook или корневом каталоге роли, если playbook является частью роли ansible. Если каталог не существует, он создается.
before
-
Упорядоченный набор команд, которые добавляются в стек команд, если необходимо внести изменения. Это позволяет разработчику playbook выполнить команды конфигурации перед внесением каких-либо изменений, не затрагивая способ сопоставления набора команд с системой.
defaults
boolean
added in 2.2
    Варианты:
  • no ←
  • yes
Этот аргумент указывает, нужно ли собирать все значения по умолчанию при получении конфигурации работающего устройства. При включении модуль получит текущую конфигурацию, выполнив команду show running-config all.
diff_against
-
added in 2.4
    Варианты:
  • running
  • startup
  • intended
При использовании аргумента ansible-playbook --diff командной строки модуль может генерировать разницу с различными источниками.
Когда этот параметр настроен как startup, модуль вернёт разницу между running-config и startup-config.
Когда этот параметр настроен как intended, модуль вернёт разницу между running-config и конфигурацией, предоставленной в аргументе intended_config.
Когда этот параметр настроен как running, модуль вернёт разницу до и после running-config по отношению к любым изменениям, внесённым в конфигурацию устройства.
diff_ignore_lines
-
added in 2.4
Используйте этот аргумент для указания одной или нескольких строк, которые должны быть проигнорированы во время сравнения. Это используется для строк в конфигурации, которые автоматически обновляются системой. Этот аргумент принимает список регулярных выражений или точных совпадений строк.
force
boolean
    Варианты:
  • no ←
  • yes
Аргумент force инструктирует модуль не учитывать текущую конфигурацию running-config устройства. При установке в true, модуль отправит содержимое src на устройство, не проверяя предварительно, настроено ли оно уже.
Обратите внимание, что этот аргумент следует считать устаревшим. Для достижения эквивалента установите match=none, который идемпотентен. Этот аргумент будет удален в Ansible 2.6.
intended_config
-
added in 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
-
added in 2.3
По умолчанию:
"@"
Этот аргумент используется при отправке многострочного элемента конфигурации на устройство IOS. Он указывает символ, который следует использовать в качестве разделителя. Это относится только к действию конфигурации.
parents
-
Упорядоченный набор родителей, которые однозначно идентифицируют раздел или иерархию, с которой должны быть проверены команды. Если аргумент parents опущен, команды проверяются по отношению к набору команд верхнего уровня или глобальным командам.
provider
-
Устаревший
Начиная с Ansible 2.5, рекомендуется использовать connection: network_cli.
Для получения дополнительной информации см. руководство IOS Platform Options.
Объект словаря, содержащий детали подключения.
auth_pass
-
Указывает пароль, который необходимо использовать для входа в привилегированный режим на удалённом устройстве. Если authorize равен false, то этот аргумент ничего не делает. Если значение не указано в задаче, используется значение переменной среды ANSIBLE_NET_AUTH_PASS.
authorize
boolean
    Варианты:
  • 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
-
    Варианты:
  • line ←
  • block
Указывает модулю способ выполнения конфигурации на устройстве. Если аргумент replace установлен в line, изменённые строки передаются устройству в режиме конфигурации. Если аргумент replace установлен в block, весь блок команд передаётся устройству в режиме конфигурации, если какая-либо строка неверна.
running_config
-
добавлен в 2.4
Модуль по умолчанию подключается к удалённому устройству и извлекает текущую конфигурацию running-config в качестве основы для сравнения с содержимым источника. Иногда не нужно, чтобы задание получало текущую конфигурацию running-config для каждого задания в playbook. Аргумент running_config позволяет разработчику передать конфигурацию в качестве базовой конфигурации для сравнения.

псевдонимы: config
save
boolean
добавлен в 2.2
    Варианты:
  • no ←
  • yes
Аргумент save инструктирует модуль сохранить running-config в startup-config по завершении работы модуля. Если задан режим проверки, этот аргумент игнорируется.
Этот параметр устарел с Ansible 2.4 и будет удалён в Ansible 2.8. Используйте save_when вместо него.
save_when
-
добавлен в 2.4
    Варианты:
  • always
  • never ←
  • modified
  • changed
Когда изменения вносятся в текущую конфигурацию устройства (running-configuration), по умолчанию они не копируются в постоянную память (startup-config). Этот аргумент изменяет это поведение. Если аргумент установлен в 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 или относительным путем от корневого каталога 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

Возвращаемые значения

Общие возвращаемые значения описаны здесь, следующие — поля, уникальные для этого модуля:

Ключ Возвращаемое значение Описание
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']
updates
список
всегда
Набор команд, которые будут отправлены на удалённое устройство

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


Статус

  • Данный модуль не гарантирует обратной совместимости интерфейса. [превью]
  • Этот модуль поддерживается командой Ansible по работе с сетями. [сеть]

Поддержка 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.7/modules/ios_config_module.html

Spec-Zone.ru

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