Spec-Zone.ru › Ansible

Модуль arista.eos.eos_config — управление разделами конфигурации Arista EOS

Примечание

Этот модуль входит в коллекцию arista.eos (версия 12.1.2).

Возможно, эта коллекция уже установлена, если вы используете пакет ansible. Она не входит в ansible-core. Чтобы проверить, установлена ли она, выполните ansible-galaxy collection list.

Для установки используйте: ansible-galaxy collection install arista.eos.

Чтобы использовать коллекцию в плейбуке, укажите: arista.eos.eos_config.

Добавлено в arista.eos 1.0.0

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

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

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

Примечание

Этому модулю соответствует плагин действий.

Псевдонимы: config

Параметры

Параметр

Комментарии

after

list / elements=string

Упорядоченный набор команд, добавляемых в конец стека команд, если требуется внести изменение. Как и before, этот параметр позволяет разработчику плейбука добавить набор команд, которые будут выполнены после набора команд.

backup

boolean

Этот аргумент заставляет модуль создать полную резервную копию текущей running-config на удалённом устройстве до внесения каких-либо изменений. Если значение backup_options не задано, файл резервной копии записывается в каталог backup в корневом каталоге плейбука или роли, если плейбук является частью роли Ansible. Если каталог не существует, он будет создан.

Варианты:

  • false ← (по умолчанию)
  • true

backup_options

dictionary

Это объект dict, содержащий настраиваемые параметры пути к файлу резервной копии. Значение этого параметра считывается, только если для backup задано значение true; если для backup задано значение no, этот параметр будет молча проигнорирован.

dir_path

path

Этот параметр задаёт путь, заканчивающийся именем каталога, в котором будет храниться файл резервной копии конфигурации. Если каталог не существует, сначала он будет создан. Имя файла будет либо значением filename, либо именем файла по умолчанию, описанным в параметрах filename. Если значение пути не задано, в текущем рабочем каталоге будет создан каталог backup, а резервная копия конфигурации будет скопирована в filename внутри каталога backup.

filename

string

Имя файла для сохранения резервной копии конфигурации. Если имя файла не указано, оно будет сформировано на основе имени хоста, текущих даты и времени в формате <hostname>_config.<current-date>@<current-time>

before

list / elements=string

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

content

string

Содержимое конфигурации для применения на устройстве. Здесь должен быть текст отрендеренной конфигурации, а не путь к файлу.

Это рекомендуемый способ передачи шаблонных конфигураций. Используйте lookup ansible.builtin.template для рендеринга шаблона Jinja2 и передайте результат этому параметру.

Этот аргумент несовместим с src, lines и parents.

Пример: content: "{{ lookup('ansible.builtin.template', 'config.j2' }}”)

defaults

boolean

Аргумент defaults влияет на способ получения running-config с устройства. Если задано значение true, к команде получения running-config добавляется ключевое слово all. Если задано значение false, команда выполняется без ключевого слова all.

Варианты:

  • false ← (по умолчанию)
  • true

diff_against

string

При использовании аргумента командной строки ansible-playbook --diff модуль может формировать различия относительно разных источников.

Если для этого параметра задано значение startup, модуль вернёт различия между running-config и startup-config.

Если для этого параметра задано значение intended, модуль вернёт различия между running-config и конфигурацией, переданной в аргументе intended_config.

Если для этого параметра задано значение running, модуль вернёт различия между состояниями running-config до и после любых изменений конфигурации устройства.

Если для этого параметра задано значение session, возвращаемые различия будут основаны на сеансе конфигурации.

Если для этого параметра задано значение validate_config, модуль вернёт в поле before running-config до применения целевой конфигурации, а в поле after — конфигурацию сеанса после применения целевой конфигурации к сеансу.

Варианты:

  • "startup"
  • "running"
  • "intended"
  • "session" ← (по умолчанию)
  • "validate_config"

diff_ignore_lines

list / elements=string

Используйте этот аргумент, чтобы указать одну или несколько строк, которые следует игнорировать при сравнении различий. Он предназначен для строк конфигурации, автоматически обновляемых системой. Аргумент принимает список регулярных выражений или точных совпадений строк.

intended_config

string

Параметр intended_config задаёт эталонную конфигурацию, которой должен соответствовать узел, и используется для проверки итоговой running-config. Этот аргумент не изменяет настройки удалённого устройства и используется исключительно для проверки соответствия текущей конфигурации устройства эталонной. При указании этого аргумента задача также должна изменить значение diff_against и установить его в intended. Строки конфигурации для этого параметра должны соответствовать тому виду, который они имели бы в running-configuration устройства, включая отступы, чтобы обеспечить правильное сравнение различий.

lines

псевдонимы: commands

list / elements=string

Упорядоченный набор команд, которые должны быть настроены в разделе. Для обеспечения идемпотентности и правильного сравнения различий команды должны в точности совпадать с командами из running-config устройства. Обратите внимание на синтаксис команд конфигурации: некоторые команды автоматически изменяются парсером конфигурации устройства.

match

string

Указывает модулю способ сопоставления набора команд с текущей конфигурацией устройства. Если для match задано значение line, команды сопоставляются построчно. Если для match задано значение strict, строки команд сопоставляются с учётом их положения. Если для match задано значение exact, строки команд должны полностью совпадать. Если для match задано значение none, модуль не будет пытаться сравнивать исходную конфигурацию с running configuration на удалённом устройстве.

Варианты:

  • "line" ← (по умолчанию)
  • "strict"
  • "exact"
  • "none"

parents

list / elements=string

Упорядоченный набор родительских элементов, однозначно определяющих раздел или иерархию, относительно которых следует проверять команды. Если аргумент parents опущен, команды проверяются относительно набора команд верхнего уровня или глобальных команд.

replace

string

Указывает модулю способ применения конфигурации на устройстве. Если для аргумента replace задано значение line, изменённые строки отправляются на устройство в режиме конфигурации. Если для аргумента replace задано значение block, весь блок команд отправляется на устройство в режиме конфигурации, если хотя бы одна строка указана неверно.

Варианты:

  • "line" ← (по умолчанию)
  • "block"
  • "config"

running_config

псевдонимы: config

string

По умолчанию модуль подключается к удалённому устройству и получает текущую running-config, чтобы использовать её как основу для сравнения с содержимым источника. Иногда нежелательно, чтобы задача получала текущую running-config при каждом запуске в плейбуке. Аргумент running_config позволяет передать конфигурацию, которая будет использоваться этим модулем в качестве базовой. Строки конфигурации для этого параметра должны соответствовать тому виду, который они имели бы в running-configuration устройства, включая отступы, чтобы обеспечить идемпотентность и правильное сравнение различий.

save_when

string

По умолчанию изменения running-configuration устройства не копируются в энергонезависимую память. Этот аргумент изменяет такое поведение. Если аргументу задано значение 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.

Варианты:

  • "always"
  • "never" ← (по умолчанию)
  • "modified"
  • "changed"

src

path

Указывает путь к файлу, содержащему конфигурацию или шаблон конфигурации для загрузки. Путь к исходному файлу может быть полным путём на управляющем узле Ansible или относительным путём от корневого каталога плейбука или роли. Этот аргумент несовместим с lines, parents и content. Строки конфигурации в исходном файле должны соответствовать тому виду, который они имели бы в running-configuration (текущей конфигурации коммутатора) устройства, включая отступы, чтобы обеспечить идемпотентность и правильное сравнение различий. В конфигурации устройств Arista EOS используются отступы в 3 пробела.

ПРИМЕЧАНИЕ: начиная с января 2028 года параметр src больше не будет обрабатывать шаблоны Jinja2. Для использования шаблонных конфигураций отрендерите шаблон с помощью lookup ansible.builtin.template и передайте результат параметру content.

Примечания

Примечание

  • Проверено на Arista EOS 4.24.6F
  • Сокращённые команды НЕ являются идемпотентными. См. часто задаваемые вопросы о сетях.
  • Для обеспечения идемпотентности и правильного сравнения различий строки конфигурации в соответствующих параметрах модуля должны соответствовать тому виду, который они имеют в текущей конфигурации устройства, включая отступы.

Примеры

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

- name: load an acl into the device
  arista.eos.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
  arista.eos.eos_config:
    src: eos.cfg

- name: Render a Jinja2 template onto an Arista switch (DEPRECATED - use content parameter)
  arista.eos.eos_config:
    backup: true
    src: eos_template.j2

- name: Apply templated configuration using content parameter (RECOMMENDED)
  arista.eos.eos_config:
    content: "{{ lookup('ansible.builtin.template', 'eos_template.j2') }}"
    backup: true

- name: Apply templated configuration with backup options (RECOMMENDED)
  arista.eos.eos_config:
    content: "{{ lookup('ansible.builtin.template', 'eos_template.j2') }}"
    backup: true
    backup_options:
      filename: backup.cfg
      dir_path: /home/user

- name: Load configuration from pre-rendered template
  arista.eos.eos_config:
    content: |
      interface Ethernet1
         description Uplink to Core
         ip address 10.1.1.1/24
         no shutdown

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

- name: for idempotency, use full-form commands
  arista.eos.eos_config:
    lines:
      - shutdown
    parents: interface Ethernet1

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

Возвращаемые значения

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

Ключ

Описание

backup_path

string

Полный путь к файлу резервной копии

Возвращается: если backup имеет значение true

Пример: "/playbooks/ansible/backup/eos_config.2016-07-16@22:28:34"

commands

list / elements=string

Набор команд, которые будут отправлены на удалённое устройство

Возвращается: всегда

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

date

string

Дата, извлечённая из имени файла резервной копии

Возвращается: если backup имеет значение true

Пример: "2016-07-16"

filename

string

Имя файла резервной копии

Возвращается: если backup имеет значение true и имя файла не указано в параметрах резервного копирования

Пример: "eos_config.2016-07-16@22:28:34"

shortname

string

Полный путь к файлу резервной копии без временной метки

Возвращается: если backup имеет значение true и имя файла не указано в параметрах резервного копирования

Пример: "/playbooks/ansible/backup/eos_config"

time

string

Время, извлечённое из имени файла резервной копии

Возвращается: если backup имеет значение true

Пример: "22:28:34"

updates

list / elements=string

Набор команд, которые будут отправлены на удалённое устройство

Возвращается: всегда

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

Авторы

  • Peter Sprygada (@privateip)

Ссылки на коллекцию

  • Отслеживание проблем
  • Репозиторий (исходный код)

© 2012–2018 Michael DeHaan
© 2018–2025 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
https://docs.ansible.com/projects/ansible/latest/collections/arista/eos/eos_config_module.html

Spec-Zone.ru

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