service:ansible
Различия
Показаны различия между двумя версиями страницы.
Предыдущая версия справа и слеваПредыдущая версияСледующая версия | Предыдущая версия | ||
service:ansible [11.09.2025 14:55] – [Условия] viacheslav | service:ansible [02.10.2025 06:46] (текущий) – [Windows] viacheslav | ||
---|---|---|---|
Строка 499: | Строка 499: | ||
==== Шаблоны Jinja2 ==== | ==== Шаблоны Jinja2 ==== | ||
+ | <WRAP round tip 60%> | ||
+ | Чтобы избавить себя от возни с лишними строками и отступами в формируемом файле, нужно добавить в шаблон .j2 | ||
+ | <code python> | ||
+ | #jinja2: lstrip_blocks: | ||
+ | </ | ||
+ | |||
+ | > First, I’ll give you an easy, by far more preferable, way of taming whitespace and then we’ll dig into the more involving methods. | ||
+ | > So here it comes: | ||
+ | > //Always render with trim_blocks and lstrip_blocks options enabled.// | ||
+ | > That’s it, the big secret is out. Save yourself trouble and tell Jinja2 to apply trimming and stripping to all of the blocks. | ||
+ | [[https:// | ||
+ | |||
+ | </ | ||
+ | |||
+ | |||
Это движок для подстановки переменных или для динамического формирования конфигурационных файлов. Ссылка на переменную идёт в любом файле yaml в двойных фигурных скобках. | Это движок для подстановки переменных или для динамического формирования конфигурационных файлов. Ссылка на переменную идёт в любом файле yaml в двойных фигурных скобках. | ||
<code yaml> | <code yaml> | ||
Строка 623: | Строка 638: | ||
Выведет '' | Выведет '' | ||
- | === Цикл === | + | === Цикл |
Если в data_dirs есть список значений, | Если в data_dirs есть список значений, | ||
<code yaml> | <code yaml> | ||
Строка 641: | Строка 656: | ||
</ | </ | ||
- | Шаблон. Минус перед процентом в конце строки препятствует печати лишней пустой строки. | + | Шаблон |
- | <code python> | + | <code python># data dirs |
- | # data dirs | + | {% for dir in data_dirs |
- | {% for dir in data_dirs -%} | + | {% if loop.first |
- | data_dir = {{ dir }} | + | data_dir = {{ dir }}{{ ',' |
+ | {% else -%} | ||
+ | {{ dir }}{{ ',' | ||
+ | {% endif -%} | ||
{% else -%} | {% else -%} | ||
# no data dirs found | # no data dirs found | ||
{% endfor -%} | {% endfor -%} | ||
</ | </ | ||
+ | |||
+ | Способы доступа к индексу цикла | ||
+ | ^Переменная ^Описание ^ | ||
+ | |loop.index |Текущая итерация данного цикла (начиная с 1) | | ||
+ | |loop.index0 |Текущая итерация данного цикла (начиная с 0) | | ||
+ | |loop.revindex |Общее число итераций до окончания данного цикла (начиная с 1) | | ||
+ | |loop.revindex0 |Общее число итераций до окончания данного цикла (начиная с 0) | | ||
+ | |loop.first |Булево True если это первая итерация | | ||
+ | |loop.last |Булево True если это последняя итерация | | ||
+ | |loop.first |Общее число элементов в данной последовательности | | ||
+ | https:// | ||
+ | |||
==== Динамические переменные ==== | ==== Динамические переменные ==== | ||
Используются для нескольких ОС, где разные пути к конфигам и один и тот же пакет называется по-разному, | Используются для нескольких ОС, где разные пути к конфигам и один и тот же пакет называется по-разному, | ||
Строка 871: | Строка 901: | ||
Inventory.\\ | Inventory.\\ | ||
- | '' | ||
- | Если используется WinRM HTTPS (порт 5986), то бывает полезным добавить опцию '' | ||
<code ini> | <code ini> | ||
[server1] | [server1] | ||
server1.example.com ansible_connection=winrm ansible_port=5985 ansible_winrm_transport=ntlm | server1.example.com ansible_connection=winrm ansible_port=5985 ansible_winrm_transport=ntlm | ||
</ | </ | ||
+ | <WRAP round important 80%> | ||
+ | Если возникает ошибка '' | ||
+ | Если используется WinRM HTTPS (порт 5986), то бывает полезным добавить опцию '' | ||
+ | </ | ||
+ | |||
+ | Пример ad-hoc | ||
+ | <code bash> | ||
+ | ansible all -i ' | ||
+ | </ | ||
+ | |||
Пример задачи. Для Windows лучше оборачивать переменные с путями в одинарные кавычки, | Пример задачи. Для Windows лучше оборачивать переменные с путями в одинарные кавычки, |
service/ansible.1757602501.txt.gz · Последнее изменение: — viacheslav