Spec-Zone.ru › Ansible 2.5

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

Новая версия 2.1.

  • Описание
  • Параметры
  • Примечания
  • Примеры
  • Возвращаемые значения
  • Статус
    • Поддержка
    • Автор

Описание

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

Параметры

Параметр Варианты/Значения по умолчанию Комментарии
after Значение по умолчанию:
None
Упорядоченный набор команд, которые нужно добавить в конец стека команд, если требуется внести изменения. Так же как и с before, это позволяет разработчику playbook добавить набор команд, которые будут выполнены после набора команд.
auth_pass Значение по умолчанию:
none
Устарело
Начиная с Ansible 2.5 рекомендуется использовать connection: network_cli и become: yes с become_pass.
Для получения дополнительной информации, пожалуйста, обратитесь к руководству по параметрам платформы IOS по ссылке IOS Platform Options.
Указывает пароль, используемый при необходимости для входа в привилегированный режим на удалённом устройстве. Если authorize ложно, то этот аргумент ничего не делает. Если значение не указано в задаче, то используется значение переменной окружения ANSIBLE_NET_AUTH_PASS.
authorize
    Варианты:
  • yes
  • no ←
Устарело
Начиная с Ansible 2.5 рекомендуется использовать connection: network_cli и become: yes.
Для получения дополнительной информации, пожалуйста, обратитесь к руководству по параметрам платформы IOS по ссылке IOS Platform Options.
Инструктирует модуль войти в привилегированный режим на удалённом устройстве перед отправкой любых команд. Если не указано, устройство попытается выполнить все команды в режиме без привилегий. Если значение не указано в задаче, то используется значение переменной окружения ANSIBLE_NET_AUTHORIZE.
backup
(добавлено в 2.2)
    Варианты:
  • no ←
  • yes
Этот аргумент заставит модуль создать полную резервную копию текущего running-config с удалённого устройства перед внесением каких-либо изменений. Файл резервной копии записывается в папку backup в корневом каталоге playbook или корневом каталоге роли, если playbook является частью роли Ansible. Если директория не существует, она создаётся.
before Значение по умолчанию:
None
Упорядоченный набор команд, которые следует добавить в стек команд, если необходимо внести изменения. Это позволяет разработчику playbook выполнить команды конфигурации до внесения любых изменений без влияния на способ сопоставления набора команд с системой.
defaults
(добавлено в 2.2)
    Варианты:
  • no ←
  • yes
Этот аргумент указывает, нужно ли собирать все значения по умолчанию при получении текущей конфигурации устройства. При включённом значении модуль получит текущую конфигурацию, выполнив команду show running-config all.
diff_against
(добавлено в 2.4)
    Варианты:
  • running
  • startup
  • intended
При использовании аргумента командной строки ansible-playbook --diff модуль может генерировать diff относительно различных источников.
Когда этот параметр настроен как startup, модуль вернёт diff текущей конфигурации (running-config) по сравнению с конфигурацией по умолчанию (startup-config).
Когда этот параметр настроен как intended, модуль вернёт diff текущей конфигурации (running-config) по сравнению с конфигурацией, предоставленной в аргументе intended_config.
Когда этот параметр настроен как running, модуль вернёт diff до и после текущей конфигурации (running-config) относительно внесённых изменений в конфигурацию устройства.
diff_ignore_lines
(добавлено в 2.4)
Используйте этот аргумент для указания одной или нескольких строк, которые следует игнорировать при генерации diff. Это используется для строк в конфигурации, которые автоматически обновляются системой. Этот аргумент принимает список регулярных выражений или точных совпадений строк.
force
    Варианты:
  • no ←
  • yes
Аргумент force инструктирует модуль не учитывать текущую конфигурацию устройства (running-config). При установке в true, это заставит модуль скопировать содержимое src на устройство, не проверяя, уже ли оно настроено.
Обратите внимание, что этот аргумент следует считать устаревшим. Для достижения эквивалентного эффекта установите match=none, которое является идемпотентным. Этот аргумент будет удалён в Ansible 2.6.
intended_config
(добавлено в 2.4)
intended_config предоставляет главную конфигурацию, которой должен соответствовать узел, и используется для проверки окончательной конфигурации (running-config). Этот аргумент не будет изменять настройки на удалённом устройстве и используется только для проверки соответствия текущей конфигурации устройства. При указании этого аргумента, задача также должна изменить значение diff_against и установить его в intended.
lines Значение по умолчанию:
None
Упорядоченный набор команд, которые должны быть настроены в разделе. Команды должны быть абсолютно такими же, как и в конфигурации устройства (running-config). Убедитесь, что вы знаете синтаксис команд конфигурации, так как некоторые команды автоматически изменяются парсером конфигурации устройства.

псевдонимы: команды
match
    Варианты:
  • line ←
  • strict
  • exact
  • none
Указывает модулю способ сравнения набора команд с текущей конфигурацией устройства. Если match равен line, команды сравниваются по строкам. Если match равен strict, строки команд сравниваются относительно позиции. Если match равен exact, строки команд должны быть точным совпадением. Наконец, если match равен none, модуль не будет пытаться сравнить исходную конфигурацию с текущей конфигурацией на удалённом устройстве.
multiline_delimiter
(добавлено в 2.3)
Значение по умолчанию:
@
Этот аргумент используется при передаче многострочного элемента конфигурации на устройство IOS. Он задаёт символ, который используется в качестве разделителя. Это относится только к действию конфигурации.
parents Значение по умолчанию:
None
Упорядоченный набор родительских элементов, которые однозначно идентифицируют раздел или иерархию, с которой должны сравниваться команды. Если аргумент parents опущен, команды сравниваются с набором команд верхнего уровня или глобальных команд.
provider Значение по умолчанию:
None
Устарело
Начиная с Ansible 2.5 рекомендуется использовать connection: network_cli.
Для получения дополнительной информации, пожалуйста, обратитесь к руководству по параметрам платформы IOS по ссылке IOS Platform Options.
Объект словаря, содержащий данные подключения.
username
Настраивает имя пользователя для аутентификации подключения к удалённому устройству. Это значение используется для аутентификации SSH сессии. Если значение не указано в задаче, то используется значение переменной окружения ANSIBLE_NET_USERNAME.
authorize
    Варианты:
  • yes
  • no ←
Инструктирует модуль войти в привилегированный режим на удалённом устройстве перед отправкой любых команд. Если не указано, устройство попытается выполнить все команды в режиме без привилегий. Если значение не указано в задаче, то используется значение переменной окружения ANSIBLE_NET_AUTHORIZE.
ssh_keyfile
Указывает SSH ключ для аутентификации подключения к удалённому устройству. Это значение - путь к ключу, используемому для аутентификации SSH сессии. Если значение не указано в задаче, то используется значение переменной окружения ANSIBLE_NET_SSH_KEYFILE.
auth_pass Значение по умолчанию:
none
Указывает пароль, используемый при необходимости для входа в привилегированный режим на удалённом устройстве. Если authorize ложно, то этот аргумент ничего не делает. Если значение не указано в задаче, то используется значение переменной окружения ANSIBLE_NET_AUTH_PASS.
host
обязательно
Указывает имя хоста DNS или адрес для подключения к удалённому устройству по указанному транспорту. Значение host используется как адрес назначения для транспорта.
timeout Значение по умолчанию:
10
Указывает таймаут в секундах для связи с сетевым устройством при подключении или отправке команд. Если таймаут истекает до завершения операции, модуль вернёт ошибку.
password Значение по умолчанию:
None
Указывает пароль для аутентификации подключения к удалённому устройству. Это значение используется для аутентификации SSH сессии. Если значение не указано в задаче, то используется значение переменной окружения ANSIBLE_NET_PASSWORD.
port Значение по умолчанию:
22
Указывает порт для подключения к удалённому устройству.
заменить
    Варианты:
  • строка ←
  • блок
Указывает модулю способ выполнения конфигурации на устройстве. Если аргумент replace установлен на строка, то изменённые строки передаются устройству в режиме конфигурации. Если аргумент replace установлен на блок, то весь блок команды передаётся устройству в режиме конфигурации, если какая-либо строка некорректна.
running_config
(добавлено в 2.4)
По умолчанию:
None
Модуль по умолчанию подключается к удалённому устройству и извлекает текущую running-конфигурацию для сравнения с содержимым источника. Иногда нежелательно, чтобы задача получала текущую running-конфигурацию для каждой задачи в книге задач. Аргумент running_config позволяет реализатору передать конфигурацию для использования в качестве базовой конфигурации для сравнения.

псевдонимы: config
сохранить
(добавлено в 2.2)
    Варианты:
  • нет ←
  • да
Аргумент save инструктирует модуль сохранить running-конфигурацию в startup-конфигурацию по завершении работы модуля. Если указан режим проверки, этот аргумент игнорируется.
Этот параметр устарел начиная с Ansible 2.4 и будет удалён в Ansible 2.8. Используйте save_when вместо него.
save_when
(добавлено в 2.4)
    Варианты:
  • всегда
  • никогда ←
  • изменено
  • изменилось
По умолчанию при внесении изменений в рабочую конфигурацию устройства, изменения не копируются в энергонезависимую память. Этот аргумент изменит это поведение. Если аргумент установлен на всегда, то running-конфигурация всегда будет скопирована в startup-конфигурацию, а флаг изменено всегда будет установлен в True. Если аргумент установлен на изменено, то running-конфигурация будет скопирована в startup-конфигурацию только в том случае, если она изменилась с момента последнего сохранения в startup-конфигурацию. Если аргумент установлен на никогда, running-конфигурация никогда не будет скопирована в startup-конфигурацию. Если аргумент установлен на изменилось, то running-конфигурация будет скопирована в startup-конфигурацию только в том случае, если задача внесла изменения. изменилось было добавлено в Ansible 2.5.
src
(добавлено в 2.2)
По умолчанию:
None
Указывает путь к файлу, содержащему конфигурацию или шаблон конфигурации для загрузки. Путь к исходному файлу может быть полным путём на хосте Ansible или относительным путём от корня книги задач или роли. Этот аргумент взаимоисключающий с строки, родители.

Примечания

Примечание

  • Проверено на 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 = да
Полный путь к резервной копии файла

Пример:
/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']


Статус

Этот модуль помечен как предварительный, что означает, что его интерфейс не гарантирует обратную совместимость.

Поддержка

Дополнительную информацию о поддержке данного модуля компанией Red Hat см. в этой статье базы знаний

Автор

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

Spec-Zone.ru

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