списку, достать для каждой базы список таблиц и создать их.
Используя штатные средства ансибла
С первого взгляда мне нужно проитерироваться по списку в списке. В псевдокоде
for db in dbs; do
tables = db.template
for table in tables; do
cat table | clickhouse
done
done
Документацию смотрел, но не понял пока, как это сделать средствами ансибла. with_items и with_fileglob один поверх другого даже с какими-нибудь сабтасками не будут работать из-за совместного использования переменной item
В плейбуке
- hosts: clickhouses
vars:
databases:
- name: db1
template: metrics_store
- name: db2
template: metrics_index
Утрировано вот такое делать бы не хотелось:
- name: Create cluster databases
shell: "for i in /etc/clickhouse-server/schema/{{ item.template }}/*.sql; do cat $i | clickhouse-client -d {{ item.name }}; done"
with_items:
- "{{ databases }}"
или заворачивая по другому эту логику в шелл скрипты
Что я упускаю? Куда еще стоит покопать?
Почитайте про loop подробнее
Обсуждают сегодня