Spec-Zone.ru › Ansible 2.9

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

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

Обзор

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

Параметры

Параметр Варианты/Значения по умолчанию Комментарии
after
-
Упорядоченный набор команд, добавляемых в конец стека команд, если требуется внести изменения. Аналогично параметру before, это позволяет разработчику плейбука добавить набор команд, которые будут выполнены после набора команд.
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
булево
    Варианты:
  • no ←
  • yes
Этот параметр заставит модуль создать полную резервную копию текущей running-config с удаленного устройства перед внесением каких-либо изменений. Если значение backup_options не задано, файл резервной копии записывается в папку backup в корневом каталоге плейбука или корневом каталоге роли, если плейбук является частью роли Ansible. Если директория не существует, она будет создана.
backup_options
словарь
добавлен в 2.8
Это объект словаря, содержащий настраиваемые параметры, связанные с путем к файлу резервной копии. Значение этого параметра считывается только тогда, когда backup установлено в yes; если backup установлено в no, этот параметр будет проигнорирован.
dir_path
путь
Этот параметр предоставляет путь, заканчивающийся именем каталога, в котором будет храниться файл конфигурации резервной копии. Если каталога не существует, он будет создан, а имя файла — это значение filename или имя файла по умолчанию, как описано в описании параметров filename. Если значение пути не задано, в текущем рабочем каталоге будет создана директория backup, и конфигурация резервной копии будет скопирована в filename внутри директории backup.
filename
-
Имя файла, которое будет использоваться для хранения резервной копии конфигурации. Если имя файла не задано, оно будет сгенерировано на основе имени хоста, текущей даты и времени в формате <имя_хоста>_config.<дата>@<время>.
before
-
Упорядоченный набор команд, которые будут добавлены в стек команд, если необходимо внести изменения. Это позволяет разработчику плейбука выполнить команды конфигурации до внесения любых изменений без влияния на соответствие набора команд системе.
defaults
булево
    Варианты:
  • 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 предоставляет основную конфигурацию, которой должен соответствовать узел, и используется для проверки конечной текущей конфигурации. Этот параметр не изменяет никаких настроек на удалённом устройстве и используется исключительно для проверки соответствия текущей конфигурации устройства заданной. При указании этого параметра в задаче также необходимо изменить значение diff_against и установить его в intended.
lines
-
Упорядоченный набор команд, которые должны быть настроены в разделе. Команды должны быть точно такими же, как и в конфигурации running-config устройства. Убедитесь, что вы учли синтаксис команд конфигурации, так как некоторые команды автоматически изменяются парсером конфигурации устройства.

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

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

Пример:
/playbooks/ansible/backup/ios_config.2016-07-16@22:28:34
commands
list
всегда
Набор команд, которые будут отправлены на удалённое устройство

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

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

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

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

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

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

Spec-Zone.ru

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