...
eccm
— содержит переменные с различной системной информациейeccm.user
— имя пользователя, который запустил задачу на групповое конфигурированиеeccm.time
— время запуска задачи на групповое конфигурирование (время сервера)eccm.ip_address
— IP адрес сервера ECCM (management интерфейс)
global
— содержит глобальные общесистемные параметры и настройки- global.snmp_communities— список SNMP communities, задаваемый глобально в системных настройках ЕССМ.
Так как данная переменная содержит список значений, то доступ к ней осуществляется либо по индексу:
{{ global.snmp_communities[0] }}
, либо в цикле:{% for c in global.snmp_communities %} {{ c }} {% endfor %}
- global.snmp_communities— список SNMP communities, задаваемый глобально в системных настройках ЕССМ.
group
- содержит переменные, специфичные для группы устройства, на которое применяется данный шаблонgroup.id
— содержит id группыgroup.name
— содержит имя группы
device
- содержит переменные, специфичные для устройства, на которое применяется данный шаблонdevice.id
— содержит id устройстваdevice.ip
— содержит management IP адрес устройстваdevice.mac
— содержит MAC адрес устройстваdevice.sn
— содержит серийный номер устройстваdevice.hostname
— содержит hostname устройстваdevice.model
— содержит название модели устройстваdevice.series
— содержит серию устройстваdevice.snmp_communities
— содержит список SNMP communities устройства, заданный в настройках доступа для данного устройства.Содержит список значений, по аналогии с
global.snmp_communities
.
Управляющие конструкции
Шаблонизатор Jinja2 поддерживает ряд стандартных управляющих конструкций: операторы ветвлений (if ... else), циклы (for), макросы, неблочные фильтры, функции, присвоения, математические и логические операторы.
• Оператор ветвления if else :
Блок кода |
---|
{% if device.model = "ESR-10" %}
hostname ESR-10
{% endif %} |
• Оператор цикла for :
Блок кода |
---|
{% for snmp_community in device.snmp_communities %}
snmp-server community "{{ snmp_community }}" ro
{% endfor %} |
• Макрос :
Блок кода |
---|
{% macro network(name, ip_prefix) -%}
object-group network {{ name }}
ip prefix {{ ip_prefix }}
exit
{%- endmacro %}
{{ network("LAN", "10.10.99.32/27") }}
|
• Прочие операторы и конструкции :
Блок кода |
---|
Пример задания внутришаблонной переменной:
{% set var = 'example' %}
Пример фильтра upper
{{ var|upper }} -> EXAMPLE
Пример применения фильтра join на массиве:
{{ [1, 2, 3]|join('|') }} -> 1|2|3
Пример форматирования строки при помощи фильтра format:
{{ "%s, %s!"|format("Hello", "World") }} -> Hello, World!
Пример арифметических операций:
{{ (1 + 2) * 10 / 5 }} -> 6.0 |
Запуск
Раздел предназначен для создания задачи группового конфигурирования. Представляет собой последовательность из 4 шагов:
...