Spec-Zone.ru › Ansible 2.9

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

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

Обзор

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

Параметры

Параметр Варианты/Значения по умолчанию Комментарии
after
-
Упорядоченный набор команд для добавления в конец стека команд, если требуется внести изменения. Как и в случае с параметром before, это позволяет разработчику playbook добавить набор команд, которые будут выполнены после набора команд.
auth_pass
строка
Устарело
Начиная с Ansible 2.5, рекомендуется использовать connection: network_cli и become: yes с become_pass.
Этот параметр необходим только при использовании eAPI.
Для получения дополнительной информации см. руководство по параметрам платформы EOS EOS Platform Options guide.
Указывает пароль, который необходимо использовать, если требуется войти в привилегированный режим на удаленном устройстве. Если authorize имеет значение false, этот аргумент ничего не делает. Если значение не указано в задаче, будет использовано значение переменной окружения ANSIBLE_NET_AUTH_PASS.
authorize
логическое значение
    Варианты:
  • no ←
  • yes
Устарело
Начиная с Ansible 2.5, рекомендуется использовать connection: network_cli и become: yes.
Этот параметр необходим только при использовании eAPI.
Для получения дополнительной информации см. руководство по параметрам платформы EOS EOS Platform Options guide.
Инструктирует модуль войти в привилегированный режим на удаленном устройстве перед отправкой любых команд. Если не указано, устройство попытается выполнить все команды в режиме без привилегий. Если значение не указано в задаче, будет использовано значение переменной окружения ANSIBLE_NET_AUTHORIZE.
backup
логическое значение
    Варианты:
  • 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
логическое значение
    Варианты:
  • 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 EOS Platform Options guide.
Объект типа 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
целое число
Указывает время ожидания в секундах для связи с сетевым устройством при подключении или отправке команд. Если время ожидания истечёт до завершения операции, модуль вернёт ошибку.
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-config в качестве основы для сравнения с содержимым источника. Иногда нежелательно получать текущую running-config для каждой задачи в playbook. Аргумент running_config позволяет разработчику передать конфигурацию в качестве базовой конфигурации для данного модуля.

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

Примеры

- 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.9/modules/eos_config_module.html

Spec-Zone.ru

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