Привет, извините за тривиальный вопрос, но я совсем нубас в

ансибле и не могу найти правильные ключевые слова для гуглинга.
Суть такова: у меня есть шесть тасков, которые нужно выполнять на всех серверах, но некоторые сервера нужно исключать из некоторых тасков. С этим я справился используя when: ansible_facts['nodename'] != "MY_VALUE".
Однако, все эти шесть тасков очень похожи, отличаются по сути только некоторыми переменными (имена файлов). Мне бы хотелось создать "шаблон" таска, по сути суб-таск, и вызывать его из главного плейбука с определенными значениями. Как это можно реализовать? Тоесть, мой суб-таск выглядит так:
tasks:
- set_fact:
sql_path: "/{{ workdir }}/scrub_{{ type }}_{{ ansible_date_time.date }}.sql"
- set_fact:
report_path: "/{{ workdir }}/scrub_report_{{ type }}_{{ ansible_date_time.date }}.txt"
- set_fact:
error_path: "/tmp/scrub_errors_{{ type }}_{{ ansible_date_time.date }}.txt"

- name: upload the sql file
copy:
src: "/{{ workdir }}/scrub_{{ type }}_{{ ansible_date_time.date }}.sql"
dest: "{{ sql_path }}"
tags: upload_sql

- name: start scrubbing script
shell:
cmd: screen -dmS scrub_{{ type }} bash -c "mysql dbname -u user -pPASS < {{ sql_path }} > {{ report_path }} 2> {{ error_path }} "
tags: run

- name: delete sql-file
file:
name: "{{ sql_path }}"
state: absent
tags: delete
ignore_errors: yes

И я бы хотел его запускать из главного плейбука шесть раз, просо задавая разные параметры workdir и type

10 ответов

21 просмотр
Alexandru-Covalschi Автор вопроса

не спорю, я ансибл только устанавливал и патчи накатвал, а что внутри по сути и не знал :(

Alexandru Covalschi
не спорю, я ансибл только устанавливал и патчи нак...

Прям комбо из антипаттернов: * set_fact на пустом месте * теги * баш * перенаправление вывода вместо стандартного механизма register * ignore_errors

Timur Gadiev
Прям комбо из антипаттернов: * set_fact на пустом...

Ну, что вы придираетесь. Чел осилил дословную конвертацию shell скрипта в Ansible playbook.

Vladyslav support.od.ua
Ну, что вы придираетесь. Чел осилил дословную конв...

ну тогда бы соль использовал :) или просто sh , а запускал в rundeck

Vladyslav support.od.ua
rundeck - это Java и полумертвое поделие

jenkins то же java и то же для мертвые полумертвое поделие =)

Vladimir Zhurkin
jenkins то же java и то же для мертвые полумертвое...

а что не так с jenkins и какие альтернативы ? только не надо про гитлаб, ни разу не альтернатива

Alex Domoradov
а что не так с jenkins и какие альтернативы ? толь...

Прежде , чем предлагать альтернативы, надо понять задачи и что не так с текущим решением =)

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

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

Добрый вечер, Пока не совсем понимаю как наладить общение между телеграм ботом и ПО для работы с сим боксом. По самому боту так понял: - Нужен некий баланс, который можно поп...
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
Карта сайта