Spec-Zone.ru › Ansible 2.7

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

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

Примеры

- 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 192.0.2.1/32 any log
      - 20 permit ip 192.0.2.2/32 any log
      - 30 permit ip 192.0.2.3/32 any log
      - 40 permit ip 192.0.2.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']


Статус

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

Spec-Zone.ru

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