Timur
Если в цикле то просто
es]x
Timur
- debug:
msg: '{{ datastore_item.name }}'
loop: '{{ cluster_facts.datastores }}'
loop_control:
loop_var: datastore_item
Timur
Если нужен сразу весь список, то:
"{{ cluster_facts.datastores | map(attribute='name') | list }}"
Timur
Поправил код чуток
es]x
все спасибо буду разбираться
es]x
es]x
хотя если меняю на join то выводит в строчку
Timur
es]x
да я не понял сразу
George
А как бы мне сделать loop для целой playbook'и, меняя при этом одну переменную? Bash с циклом вызова анаибла, или как-то можно?
Timur
George
Такого модуля нет.
Timur
А сори
Timur
import_playbook
Timur
Но вообще задача странная
George
А import не умеет loop
George
Задача простая: у меня есть мегаплейбука которая много что делает. В роль её не засунуть, потому что она по куче хостов много разных play гоняет. А теперь мне её надо применить 10 раз, меняя значение одной переменной.
Timur
Timur
Для запуска в циклах и с разными параметрами надо использовать роли
Timur
Что мешает сделать из плейбуки роль, раз вы все равно хотите использовать ее в этом ключе?
Gleb
Timur
Это неизбежные издержки такого подхода
George
Плейбука настраивает около 10 хостов по-разному. Внутри плейбуки разные роли на разные хосты. Около 20 play, порядка 50 ролей.
George
Теперь мне их надо прогнать меняя один параметр - сценарий.
Timur
Вам тесты нужны в разном окружении, что ли?
George
В одном и том же, но разные входные условия.
George
Я бы хотел остаться в ансибле для этого, потому что список сценариев - это переменная-список в group_vars
George
Если не получится, буду колхозить на tox/bash, но это на крайний случай.
Timur
По сути вам нужна одна большая роль
Timur
Которую вы хотите сделать из плейбуки
George
Роль не может раскидывать таски по хостам. Делегация для замены hosts: в play подходит очень плохо.
Timur
Ну, просто максимально вынести весь код в роли
Timur
А в плейбуке уже параметризовать
George
Он уже разнесен. Playbook не содержит ни одной таски. Повторю, нельзя заменить play c помощью роли, потому что только play умеет нормально составлять список хостов для выполнения и управлять параллельностью.
Sergey
Timur
Блок не поддерживает луп
Sergey
Хотя чёткое ощущение микроскопа и гвоздей в наличии
George
Block не является допустимым кейвордом на уровне playbook. Так же как и loop.
Timur
George
Их можно использовать внутри play на уровне tasks.
George
Но не на уровне где перечисляются play
Sergey
:-D о, буду знать. Просто как-то не было нужды _такое_ творить.
Dmitry
Dmitry
Denis
всем привет
Denis
подскажите как остановить таску если with_items когда item=false
Denis
он пропускает и выполяет слудующий item а там true
Timur
В смысле пропускать выполнение части цикла при item=false?
Denis
выполнить часть цикла до того как найдет item == false далее цикл не выполнять
Timur
Timur
Это похоже на очередную попытку сделать из ансибла язык программирования
Timur
Причем в процедурном стиле
Denis
согласен есть такое дело но увы не как по другому
Timur
Если опишете задачу на более высоком уровне - скорее всего, найдется более элегантный способ решения
Denis
задача миграции бд до определенной версии БД
Timur
Так
Timur
А подробнее?
Denis
есть на БД у нее версия 0001 запускаю роль там она получаает эту вресию. Далее перет с определеного места sql file (их может быть до 50 и более штук ВОТ тут надо сделать так чтобы если файл содержит версиюю меньше чем версия БД то пропустить если версия бд равно версии до который мы обновляем то остановить и выйти
Denis
файл типо v0000_0000_uuxx.sql
Sergey
Sergey
Ансибл вот точно не для этого.
Sergey
Есть инструменты, которые предназначены именно для версионирования БД - те же LiquiBase, FlywayDB, <younameit>.
Sergey
А тут налицо попытка сделать башсибл..... увы и ах.
Sergey
Вернее, написать такой инструмент на башсибле.
Denis
и все же как остановить цикл
Timur
Плюс ignore_errors
Timur
Но мы бы настоятельно рекомендовали так не делать
Nklya
миграции баз на ансибле это что-то новенькое
Nklya
Надо бы сделать топ офигенных идей, которые обуждались в этом чяте
Timur
Мне больше всего ансибл в качестве гита доставил
Dmitry
Надо бы сделать топ офигенных идей, которые обуждались в этом чяте
Я точно помню, как в бородатых годах ходила новость о том, что кто-то пытался сделать дистрибутив Linux с init на PHP (не осилил почему-то в итоге, а сейчас уже ничего не ищется об этом). По сравнению с этим меркнет любое самое странное использование ansible.
Хотя кто-то может попробовать сделать дистрибутив с init через ansible...
George
George
George
с этим пересекается
George
Давным давно, в далекой галлактике: устраивался в небольшую конторку-провайдер админом
-вы скипты на чем пишете?
-баш, ну перл немного
-наш админ на php писал
-я все понял, выход найду сам
George
автоматизация на пыхе!
Dmitry
автоматизация на пыхе!
Так там в соседнем чатике мелькает вакансия от skyeng, который от ops хочет, чтобы они писали на php утилитки, упрощающие жизнь dev.