Spec-Zone.ru › Ansible 2.5

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

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

  • Краткое описание
  • Параметры
  • Примечания
  • Примеры
  • Возвращаемые значения
  • Статус
    • Поддержка
    • Автор

Краткое описание

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

Параметры

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

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

Примечания

Примечание

  • Проверено на EOS 4.15
  • Сокращённые команды НЕ идемпотентны, см. Вопросы и ответы по сети.
  • Сведения об использовании CLI, eAPI и режима привилегий см. в руководстве Настройки платформы EOS
  • Дополнительную информацию об использовании 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 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=да
Полный путь к резервному файлу

Пример:
/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']


Статус

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

Поддержка

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

Spec-Zone.ru

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