Spec-Zone.ru › Ansible 2.8

eos_config – Управление разделами конфигурации Arista EOS

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

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

Обзор

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

Параметры

Параметр Варианты/Значения по умолчанию Комментарии
after
-
Упорядоченный набор команд, которые добавляются в конец стека команд, если необходимо внести изменения. Подобно параметру before, это позволяет разработчику плейбука добавить набор команд, которые будут выполнены после исходного набора команд.
auth_pass
строка
Устаревший
Начиная с Ansible 2.5, рекомендуется использовать connection: network_cli и become: yes с become_pass.
Этот параметр требуется только при использовании eAPI.
Для получения дополнительной информации см. руководство EOS Platform Options.
Указывает пароль, который необходимо использовать, если требуется войти в привилегированный режим на удалённом устройстве. Если authorize имеет значение false, этот аргумент ничего не делает. Если значение не указано в задаче, используется значение переменной среды ANSIBLE_NET_AUTH_PASS.
authorize
логическое значение
    Варианты:
  • no ←
  • yes
Устаревший
Начиная с Ansible 2.5, рекомендуется использовать connection: network_cli и become: yes.
Этот параметр требуется только при использовании eAPI.
Для получения дополнительной информации см. руководство EOS Platform Options.
Инструктирует модуль войти в привилегированный режим на удалённом устройстве перед отправкой любых команд. Если не указано, устройство попытается выполнить все команды в режиме без привилегий. Если значение не указано в задаче, используется значение переменной среды ANSIBLE_NET_AUTHORIZE.
backup
логическое значение
добавлен в 2.2
    Варианты:
  • no ←
  • yes
Этот аргумент заставит модуль создать полную резервную копию текущей running-config с удалённого устройства перед внесением каких-либо изменений. Если значение backup_options не указано, файл резервной копии записывается в папку backup в корневой директории плейбука или в корневой директории роли, если плейбук является частью роли ansible. Если директория не существует, она создается.
backup_options
словарь
добавлен в 2.8
Это объект типа dict, содержащий настраиваемые параметры, относящиеся к пути к файлу резервной копии. Значение этого параметра считывается только тогда, когда backup установлено в yes. Если backup установлено в no, этот параметр будет проигнорирован.
dir_path
путь
Этот параметр предоставляет путь, заканчивающийся именем директории, в которой будет храниться файл конфигурации резервной копии. Если директория не существует, она будет создана, а имя файла — это значение filename или имя файла по умолчанию, как описано в filename.
Если значение пути не указано, в текущей рабочей директории будет создана директория backup, и конфигурация резервной копии будет скопирована в filename внутри директории backup.
filename
-
Имя файла, используемого для хранения конфигурации резервной копии. Если имя файла не указано, оно будет сгенерировано на основе имени хоста, текущей даты и времени в формате <имя_хоста>_config.<дата>@<время>
before
-
Упорядоченный набор команд, которые добавляются в начало стека команд, если необходимо внести изменения. Это позволяет разработчику плейбука выполнить конфигурационные команды перед внесением каких-либо изменений, не влияя на то, как набор команд сопоставляется с системой.
defaults
логическое значение
добавлен в 2.2
    Варианты:
  • no ←
  • yes
Аргумент defaults повлияет на то, как собирается текущая конфигурация устройства. Когда значение установлено в true, команда для сбора текущей конфигурации дополняется словом all. Когда значение установлено в false, команда выполняется без слова all.
diff_against
-
добавлен в 2.4
    Варианты:
  • startup
  • running
  • intended
  • session ←
При использовании параметра командной строки ansible-playbook --diff модуль может генерировать различия по различным источникам.
Если этот параметр установлен как startup, модуль вернёт разницу между текущей и стартовой конфигурацией.
Если этот параметр установлен как intended, модуль вернёт разницу между текущей и предоставленной в аргументе intended_config конфигурацией.
Если этот параметр установлен как running, модуль вернёт разницу между текущей и предыдущей текущей конфигурацией относительно любых внесённых изменений.
Если этот параметр установлен как session, возвращаемая разница будет основана на сеансе конфигурации.
diff_ignore_lines
-
добавлен в 2.4
Используйте этот аргумент для указания одной или нескольких строк, которые следует игнорировать во время сравнения. Это используется для строк в конфигурации, которые автоматически обновляются системой. Этот аргумент принимает список регулярных выражений или точных совпадений строк.
intended_config
строка
добавлен в 2.4
Параметр intended_config предоставляет основную конфигурацию, которой должен соответствовать узел, и используется для проверки конечной текущей конфигурации. Этот аргумент не будет изменять настройки на удалённом устройстве и используется исключительно для проверки соответствия текущей конфигурации устройства предоставленной конфигурации. При указании этого аргумента задача также должна изменить значение diff_against и установить его в intended.
lines
-
Упорядоченный набор команд, которые должны быть сконфигурированы в данном разделе. Команды должны быть точно такими же, как и в текущей конфигурации устройства. Обратите внимание на синтаксис команд конфигурации, так как некоторые команды автоматически изменяются анализатором конфигурации устройства.

псевдонимы: команды
match
-
    Варианты:
  • line ←
  • strict
  • exact
  • none
Указывает модулю способ сравнения набора команд с текущей конфигурацией устройства. Если match установлен в line, команды сравниваются по строкам. Если match установлен в strict, строки команд сравниваются относительно позиции. Если match установлен в exact, строки команд должны быть точным совпадением. Наконец, если match установлен в none, модуль не будет пытаться сравнивать исходную конфигурацию с текущей конфигурацией на удалённом устройстве.
parents
-
Упорядоченный набор родительских элементов, которые однозначно идентифицируют раздел или иерархию, с которыми должны быть сравнены команды. Если аргумент parents опущен, команды сравниваются с набором команд верхнего уровня или глобальных команд.
provider
словарь
Устаревший
Начиная с Ansible 2.5, рекомендуется использовать connection: network_cli.
Этот параметр требуется только при использовании eAPI.
Для получения дополнительной информации см. руководство EOS Platform Options.
Объект типа dict, содержащий данные подключения.
auth_pass
строка
Указывает пароль, который необходимо использовать, если требуется войти в привилегированный режим на удалённом устройстве. Если authorize имеет значение false, этот аргумент ничего не делает. Если значение не указано в задаче, используется значение переменной среды ANSIBLE_NET_AUTH_PASS.
authorize
логическое значение
    Варианты:
  • no ←
  • yes
Инструктирует модуль войти в привилегированный режим на удалённом устройстве перед отправкой любых команд. Если не указано, устройство попытается выполнить все команды в режиме без привилегий. Если значение не указано в задаче, используется значение переменной среды ANSIBLE_NET_AUTHORIZE.
host
строка / обязательно
Указывает имя хоста DNS или адрес для подключения к удалённому устройству через указанный транспорт. Значение host используется в качестве адреса назначения для транспорта.
пароль
строка
Указывает пароль для аутентификации подключения к удаленному устройству. Это распространенный аргумент, используемый для транспортов cli или eapi. Если значение не указано в задаче, будет использовано значение переменной среды ANSIBLE_NET_PASSWORD.
порт
целое число
По умолчанию:
"0 (использовать стандартный порт)"
Указывает порт для подключения к удаленному устройству. Это значение относится к транспорту cli или eapi. Если порт не указан в задаче, по умолчанию будет использован соответствующий стандартный порт транспорта (cli=22, http=80, https=443).
ssh_keyfile
путь
Указывает файл ключа SSH для аутентификации подключения к удаленному устройству. Этот аргумент используется только для транспортов cli. Если значение не указано в задаче, будет использовано значение переменной среды ANSIBLE_NET_SSH_KEYFILE.
timeout
целое число
По умолчанию:
10
Указывает таймаут в секундах для связи с сетевым устройством при подключении или отправке команд. Если таймаут истечет до завершения операции, модуль вернёт ошибку.
transport
строка / обязательно
    Варианты:
  • cli ←
  • eapi
Настраивает транспортное подключение для подключения к удалённому устройству.
use_proxy
логическое значение
добавлен в 2.5
    Варианты:
  • нет
  • да ←
Если no, переменные окружения http_proxy и https_proxy будут проигнорированы.
use_ssl
логическое значение
    Варианты:
  • нет
  • да ←
Настраивает transport на использование SSL, если значение установлено в yes только тогда, когда transport=eapi. Если аргумент transport не равен eapi, это значение игнорируется.
username
строка
Настраивает имя пользователя для аутентификации подключения к удалённому устройству. Это значение используется для аутентификации входа CLI или аутентификации eAPI в зависимости от используемого транспорта. Если значение не указано в задаче, будет использовано значение переменной среды ANSIBLE_NET_USERNAME.
validate_certs
логическое значение
    Варианты:
  • нет
  • да
Если no, сертификаты SSL не будут проверены. Это следует использовать только на контролируемых сайтах, использующих самозаверяющие сертификаты. Если аргумент transport не равен eapi, это значение игнорируется.
replace
-
    Варианты:
  • строка ←
  • блок
  • конфигурация
Указывает модулю способ выполнения конфигурации на устройстве. Если аргумент replace установлен в строка, то изменённые строки отправляются устройству в режиме конфигурации. Если аргумент replace установлен в блок, то весь блок команд отправляется на устройство в режиме конфигурации, если какая-либо строка некорректна.
running_config
строка
добавлен в 2.4
Модуль по умолчанию подключается к удалённому устройству и извлекает текущую running-конфигурацию, чтобы использовать её в качестве основы для сравнения с содержимым источника. Иногда нежелательно, чтобы задача получала текущую running-конфигурацию для каждой задачи в playbook. Аргумент running_config позволяет разработчику передать конфигурацию, которая будет использоваться в качестве базовой конфигурации для этого модуля.

псевдонимы: config
save_when
-
добавлен в 2.4
    Варианты:
  • всегда
  • никогда ←
  • изменён
  • изменён
Когда в конфигурации устройства running-configuration вносятся изменения, эти изменения по умолчанию не копируются в постоянную память. С помощью этого аргумента это можно изменить. Если аргумент установлен в всегда, то running-конфигурация всегда будет скопирована в startup-конфигурацию и флаг modified всегда будет установлен в True. Если аргумент установлен в изменён, то running-конфигурация будет скопирована в startup-конфигурацию только если она изменилась с момента последней записи в startup-конфигурацию. Если аргумент установлен в никогда, то running-конфигурация никогда не будет скопирована в startup-конфигурацию. Если аргумент установлен в изменён, то running-конфигурация будет скопирована в startup-конфигурацию только если задача внесла изменения. изменён был добавлен в Ansible 2.5.
src
-
добавлен в 2.2
Аргумент src предоставляет путь к файлу конфигурации, который необходимо загрузить в удалённую систему. Путь может быть полным системным путём к файлу конфигурации, если значение начинается с /, или относительным к корню реализованного роли или playbook. Этот аргумент взаимоисключает аргументы lines и parents. Он также может быть шаблоном Jinja2. Файл src должен иметь тот же отступ, что и конфигурация реального устройства. Конфигурация устройства Arista EOS имеет отступ в 3 пробела.

Примечания

Примечание

  • Проверено на EOS 4.15
  • Сокращённые команды НЕ идемпотентны, см. Вопросы и ответы по сети.
  • Дополнительную информацию об использовании CLI, eAPI и режима с привилегиями см. в руководстве EOS Platform Options.
  • Дополнительную информацию об использовании Ansible для управления сетевыми устройствами см. в руководстве Ansible Network Guide.
  • Дополнительную информацию об использовании Ansible для управления устройствами Arista EOS см. на странице интеграции Arista Arista integration page.

Примеры

- name: configure top level settings
  eos_config:
    lines: hostname {{ inventory_hostname }}

- name: load an acl into the device
  eos_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
    parents: ip access-list test
    before: no ip access-list test
    replace: block

- name: load configuration from file
  eos_config:
    src: eos.cfg

- name: render a Jinja2 template onto an Arista switch
  eos_config:
    backup: yes
    src: eos_template.j2

- name: diff the running config against a master config
  eos_config:
    diff_against: intended
    intended_config: "{{ lookup('file', 'master.cfg') }}"

- name: for idempotency, use full-form commands
  eos_config:
    lines:
      # - shut
      - shutdown
    # parents: int eth1
    parents: interface Ethernet1

- name: configurable backup path
  eos_config:
    src: eos_template.j2
    backup: yes
    backup_options:
      filename: backup.cfg
      dir_path: /home/user

Значения возврата

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

Ключ Возвращаемое значение Описание
backup_path
строка
при backup = да
Полный путь к резервной копии

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

Пример:
['hostname switch01', 'interface Ethernet1', 'no shutdown']
date
строка
при backup = да
Дата, извлеченная из имени файла резервной копии

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

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

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

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

Пример:
['hostname switch01', 'interface Ethernet1', 'no shutdown']


Статус

  • Не гарантируется обратная совместимость данного модуля. [превью]
  • Данный модуль поддерживается командой 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/eos_config_module.html

Spec-Zone.ru

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