Добрый всем вечер! Скажите пожалуйста, если у меня есть несколько тасков

и какое-то количество из них работает с одной и той же переменной, но переменная это список (условно, один таск создает директорию с названием переменной, второй по шаблону создает файл, внутри у которого используется эта переменная ), то как правильно описать плейбук?
Я сейчас сделал в таком виде:
- hosts: all
tasks:
- name: install nginx
apt:
name: nginx=1.18.0-*
- name: copy nginx.conf
copy:
src: nginx.conf
dest: /etc/nginx/nginx.conf
- name: create folders for virtual hosts nginx
file:
path: /var/www/{{ item }}
state: directory
loop:
- site1.192.168.1.2.nip.io
- site2.192.168.1.3.nip.io
- site3.192.168.1.4.nip.io
- name: copy index.html to site folder
template:
src: index.html.j2
dest: /var/www/{{ item }}/index.html
loop:
- site1.192.168.1.2.nip.io
- site2.192.168.1.3.nip.io
- site3.192.168.1.4.nip.io

Но мне кажется, что должен быть более элегантный способ, чем каждый раз этот loop повторять со всем списком.
Можно наверно запихнуть сам список в var и подставлять его как переменную в loop, но все же интересно, верен ли сам подход?

9 ответов

75 просмотров

Можно список в переменную, и/или можно эту пару тасков вынести в отдельный файл и в луп поместить include_tasks с ним. Имхо ради двух тасок достаточно просто вынести в переменные.

antifreeze- Автор вопроса
Lamobot
Можно список в переменную, и/или можно эту пару та...

Ну то есть принципиально других подходов нет?

antifreeze
Ну то есть принципиально других подходов нет?

Не, почему же. Есть. Хотите - можно нагенерить все файлы заранее на контроллере и потом через copy прямо директориями скопировать на таргет. Если их много - то будет не очень быстро. Можно файлы нагенерить и запаковать. И в плейбуке передавать архив и распаковывать на таргете.

antifreeze- Автор вопроса
Lamobot
Не, почему же. Есть. Хотите - можно нагенерить все...

Я про саму концепцию - либо луп для каждого таска, либо несколько тасков в файл и инклюд_таскс.

antifreeze
Я про саму концепцию - либо луп для каждого таска,...

Да, к сожалению или счастью только так :)

А я бы сказал - задача слишком эфемерная. Если это реально nginx и большой конфиг - проще и быстрее держать конфиг в одном файле. А директории создать на этапе деплоя кода на сервер… Вы же ведь не будете n сайтов такими шаблонами на сервер заливать… Ну а если это просто на поиграться - то loop самое оно

Похожие вопросы

Обсуждают сегодня

Добрый вечер, Пока не совсем понимаю как наладить общение между телеграм ботом и ПО для работы с сим боксом. По самому боту так понял: - Нужен некий баланс, который можно поп...
Magic
6
сделал сайт, прикрутил в боте сайт, и виджет логина. как автоматически логинить пользователя в аккаунт(телеграм), при входе с бота?
Александра Чернивецкая
5
Объясните, пожалуйста, почему компилятор ругается на использование в условии неинициализированной переменной: int x; Task.Run(async () => { x = await somefunc(); }).Wait...
Александр
5
Ребят, подскажите, пожалуйста, почему в префиксе к ассетам, которые генерируются через фильтр | theme в шаблоне, стал вдруг появляться index.php? Вот так выглядит ссылка на а...
Виталий
1
Всем привет. Ребята, подскажите, пожалуйста. у ботов есть ограничение на отправку сообщений - 30 сообщений в секунду, эти ограничения накладываются на все сообщения? или на со...
Artem Stormageddon
4
Блин, ребята, сори за тупые вопросы. А можно ли как-то открыть вебапку по нажатию на кнопку в меню(которое появляется слева, команды)?
Artem Stormageddon
3
а плаксы из-под питона умеют только в комфортных условиях что-то выдавить из себя?)
Lencore
9
Но, может, есть уже проверенная? Наши требования такие: 1. Сообщения должны приходить из Инста в CRM оду 2. Должна быть возможность подключить несколько экаунтов Инстаграм. Р...
Alexander Sharoiko MSE / Александр Шаройко
13
Это может быть все-таки не флудвейт? у меня ботфазер принимает изменения и отображает даже что они изменились, на видео видно что он прислал якобы уже измененное описание, н...
OVERLINK
13
Коллеги, может знает кто, можно ли цвет бейджа счётчика в BackendMenu менять без бубнов?
Alex Blaze
3
Карта сайта