Spec-Zone.ru › Ansible 2.6

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

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

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

Обзор

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

Параметры

Параметр Варианты/Значения по умолчанию Комментарии
after
Упорядоченный набор команд, которые добавляются в конец стека команд, если требуется внести изменения. Как и в случае с before, это позволяет разработчику playbook добавить набор команд, которые будут выполнены после набора команд.
auth_pass
Устарело
Начиная с Ansible 2.5, рекомендуется использовать connection: network_cli и become: yes с become_pass.
Этот параметр необходим только при использовании eAPI.
Дополнительную информацию см. в руководстве EOS Platform Options.
Указывает пароль, который требуется использовать для входа в привилегированный режим на удалённом устройстве. Если authorize имеет значение false, этот аргумент не имеет эффекта. Если значение не указано в задаче, будет использовано значение переменной окружения ANSIBLE_NET_AUTH_PASS.
authorize
bool
    Варианты:
  • no ←
  • yes
Устарело
Начиная с Ansible 2.5, рекомендуется использовать connection: network_cli и become: yes.
Этот параметр необходим только при использовании eAPI.
Дополнительную информацию см. в руководстве EOS Platform Options.
Инструктирует модуль войти в привилегированный режим на удалённом устройстве перед отправкой любых команд. Если не указано, устройство попытается выполнить все команды в режиме без привилегий. Если значение не указано в задаче, будет использовано значение переменной окружения ANSIBLE_NET_AUTHORIZE.
backup
bool

(добавлен в 2.2)
    Варианты:
  • no ←
  • yes
Этот аргумент заставит модуль создать полную резервную копию текущей running-config с удалённого устройства перед внесением любых изменений. Файл резервной копии записывается в папку backup в корневом каталоге playbook или в корневом каталоге роли, если playbook является частью роли ansible. Если каталог не существует, он создаётся.
before
Упорядоченный набор команд, которые добавляются в стек команд, если требуется внести изменения. Это позволяет разработчику playbook выполнить команды конфигурации перед внесением изменений без влияния на то, как набор команд сопоставляется с системой.
defaults
bool

(добавлен в 2.2)
    Варианты:
  • no ←
  • yes
Аргумент defaults повлияет на то, как собирается running-config с устройства. При значении true команда для сбора running-config дополняется ключевым словом all. При значении false команда выполняется без ключевого слова all.
diff_against
(добавлен в 2.4)
    Варианты:
  • startup
  • running
  • intended
  • session ←
При использовании аргумента командной строки ansible-playbook --diff, модуль может генерировать diff относительно разных источников.
Если этот параметр настроен как startup, модуль вернёт diff running-config по отношению к startup-config.
Если этот параметр настроен как intended, модуль вернёт diff running-config по отношению к конфигурации, предоставленной в аргументе intended_config.
Если этот параметр настроен как running, модуль вернёт diff до и после running-config относительно изменений, внесённых в конфигурацию устройства.
Если этот параметр настроен как session, возвращаемый diff будет основан на сессии конфигурации.
diff_ignore_lines
(добавлен в 2.4)
Используйте этот аргумент, чтобы указать одну или несколько строк, которые следует игнорировать во время diff. Это используется для строк в конфигурации, которые автоматически обновляются системой. Этот аргумент принимает список регулярных выражений или точных совпадений строк.
force
bool
    Варианты:
  • no ←
  • yes
Аргумент force инструктирует модуль не учитывать текущую running-config устройства. При значении true модуль запишет содержимое src на устройство без предварительной проверки, если оно уже настроено.
Обратите внимание, что этот аргумент следует считать устаревшим. Для достижения эквивалентного результата установите match=none, который является идемпотентным. Этот аргумент будет удален в Ansible 2.6.
intended_config
(добавлен в 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, модуль не будет пытаться сравнить исходную конфигурацию с текущей конфигурацией на удалённом устройстве.
parents
Упорядоченный набор родительских элементов, которые уникально идентифицируют раздел или иерархию, по которым следует проверять команды. Если аргумент parents опущен, команды проверяются относительно набора команд верхнего уровня или глобальных команд.
provider
Устарело
Начиная с Ansible 2.5, рекомендуется использовать connection: network_cli.
Этот параметр необходим только при использовании eAPI.
Дополнительную информацию см. в руководстве EOS Platform Options.
Объект dict, содержащий сведения о подключении.
host
обязательно
Указывает имя хоста DNS или адрес для подключения к удалённому устройству по указанному протоколу. Значение host используется в качестве адреса назначения для протокола.
port По умолчанию:
"0 (использовать общий порт)"
Указывает порт, используемый при построении подключения к удалённому устройству. Это значение применяется как к cli, так и к eapi. Значение порта по умолчанию устанавливается на соответствующий общий порт протокола, если он не указан в задаче (cli=22, http=80, https=443).
username
Настраивает имя пользователя для аутентификации подключения к удалённому устройству. Это значение используется для аутентификации входа CLI или аутентификации eAPI в зависимости от используемого протокола. Если значение не указано в задаче, будет использовано значение переменной окружения ANSIBLE_NET_USERNAME.
password
Указывает пароль для аутентификации подключения к удалённому устройству. Это общий аргумент, используемый для протоколов cli или eapi. Если значение не указано в задаче, будет использовано значение переменной окружения ANSIBLE_NET_PASSWORD.
timeout По умолчанию:
10
Указывает таймаут в секундах для связи с сетевым устройством для подключения или отправки команд. Если таймаут истечёт до завершения операции, модуль выдаст ошибку.
ssh_keyfile
Указывает SSH-ключевой файл для аутентификации подключения к удалённому устройству. Этот аргумент используется только для протоколов cli. Если значение не указано в задаче, будет использовано значение переменной окружения ANSIBLE_NET_SSH_KEYFILE.
authorize
bool
    Варианты:
  • no ←
  • yes
Инструктирует модуль войти в привилегированный режим на удалённом устройстве перед отправкой любых команд. Если не указано, устройство попытается выполнить все команды в режиме без привилегий. Если значение не указано в задаче, будет использовано значение переменной окружения ANSIBLE_NET_AUTHORIZE.
auth_pass
Указывает пароль для входа в привилегированный режим на удалённом устройстве. Если authorize имеет значение false, этот аргумент не имеет эффекта. Если значение не указано в задаче, будет использовано значение переменной окружения ANSIBLE_NET_AUTH_PASS.
transport
обязательно
    Варианты:
  • eapi
  • cli ←
Настраивает транспортное соединение для подключения к удалённому устройству.
use_ssl
bool
    Варианты:
  • no
  • yes ←
Настраивает транспорт transport на использование SSL, если значение равно true только в том случае, когда transport=eapi. Если аргумент transport не eapi, это значение игнорируется.
validate_certs
bool
    Варианты:
  • no
  • yes
Если no, сертификаты SSL не будут проверены. Это следует использовать только на сайтах, контролируемых лично, с использованием самозаверенных сертификатов. Если аргумент transport не eapi, это значение игнорируется.
use_proxy
bool

(добавлено в 2.5)
    Варианты:
  • no
  • yes ←
Если no, переменные среды http_proxy и https_proxy будут проигнорированы.
replace
    Варианты:
  • line ←
  • block
  • config
Указывает модулю способ выполнения конфигурации на устройстве. Если аргумент replace установлен в line, изменённые строки отправляются устройству в режиме конфигурации. Если аргумент replace установлен в block, весь блок команд отправляется устройству в режиме конфигурации, если какая-либо строка некорректна.
running_config
(добавлено в 2.4)
По умолчанию модуль подключается к удалённому устройству и извлекает текущую running-config, чтобы использовать её в качестве основы для сравнения с содержимым источника. Иногда нежелательно, чтобы задача извлекала текущую running-config для каждой задачи в playbook. Аргумент running_config позволяет разработчику передать конфигурацию для использования в качестве базовой конфигурации для этого модуля.

алиасы: config
save
bool

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

Примеры

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

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

- name: load an acl into the device
  eos_config:
    lines:
      - 10 permit ip 1.1.1.1/32 any log
      - 20 permit ip 2.2.2.2/32 any log
      - 30 permit ip 3.3.3.3/32 any log
      - 40 permit ip 4.4.4.4/32 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: 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

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

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

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

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

Пример:
['hostname switch01', 'interface Ethernet1', 'no shutdown']
updates
список
всегда
Набор команд, которые будут отправлены на удалённое устройство

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


Статус

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

Техническое обслуживание

Этот модуль помечен как сетевой, что означает, что он поддерживается Ansible Network Team. См. Техническое обслуживание и поддержка модулей для получения дополнительной информации.

Список других модулей, которые также поддерживаются Ansible Network Team, см. в этой статье.

Поддержка

Дополнительную информацию о поддержке данного модуля компанией 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.6/modules/eos_config_module.html

Spec-Zone.ru

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