Olsen
Olsen
этот одновременно с твоим вопросом прилетел просто
Dmitry
мне так видится, что надо пометить таски тагами
Dmitry
которые устанавливают, тем проставить таги install.
всё. и не теребить писюн, вытаскивая себя за волосы
Olsen
"when 'foo' in tags"
Dmitriy
а если ты теги не укажешь - то у тебя инсталл отработает
Dmitry
ну если хочет странного, то пусть попробует примерно так
- name: blablabla
tasks:
- include: tasks/bububu.yml
tags:
- install
Dmitry
а, он хочет настолько странного, что это ему не поможет
Dmitriy
вроде уже чото такое пробовали
Dmitriy
ладно, думаю, что оно не решается в заданном виде просто
Dmitriy
порекомендую разбить роль на две
Olsen
а это часть кода или окружения?
Dmitry
Dmitriy
Olsen
не, нафиг этот вопрос.
Olsen
пойду матчасть курить
Dmitry
может так?
- include: install.yml
when: install_whatever is defined
и запускать
ansible-playbook -i inventory site.yml -e "install_whatever=true"
Dmitry
нихрена не таг, но хотелку наверное залечит
Olsen
я ничего не понимаю кроме понимания что надо засесть и раздуплить.
Dmitriy
Dmitry
иначе никак, when clause can't evaluate the presence of tags
Dmitry
хм... придумал :)
Dmitry
- shell: /bin/true
register: lets_install
- name: only run when tag
shell: /bin/echo "hahaha"
when: lets_install is not defined
tags: install
Dmitry
не пробовал
Dmitriy
так-это ж не поможет :) это тоже самое, что и варку определить и потом через -e вызывать
Dmitry
ты уже попробовал?
Dmitriy
нет
Dmitriy
ну просто смотри, ты этим кодом делаешь что
ты говоришь - всегда делай инсталл
Dmitriy
Dmitry
а вот я короче попробовал
Dmitry
но ты можешь продолжать дальше пробовать интерпретировать в уме :)
Dmitriy
как оно работает?
если ты пишешь —tag=install - то видишь хахаха, а если не пишешь - то не видишь?
Dmitry
шелл http://dpaste.com/3NR9VSC.txt
Dmitry
site.yml http://dpaste.com/1ZJCAM8.txt
Dmitry
в inventory просто test1
Dmitry
как оно работает, видно в шелл сессии
Dmitry
без тэга
TASK [Only run when tag is specified] ******************************************
skipping: [test1]
с тэгом
TASK [Only run when tag is specified] ******************************************
changed: [test1]
Dmitry
не знаю, что тут еще добавить
Dmitry
но ты держись там, здоровья, хорошего настроения :)
ну просто смотри, ты этим кодом делаешь что
ты говоришь - всегда делай инсталл
Dmitriy
я не пони, как это работает, но работает
Dmitriy
круто
Dmitry
очередная хитрожопость ансибла :(
Dmitriy
завтра попробую понять, интересно ж
Dmitry
да оно в общем-то примерно понятно, как
Dmitry
смотри, shell: /bin/true выполняется всегда, так? и регистрирует успешное выполнение в lets_install, так?
Dmitry
- shell: /bin/true
register: lets_install
Dmitry
теперь смотрим дальше
- name: Only run when tag is specified
shell: /bin/echo "Only running because of specified tag"
when: lets_install is not defined
tags: install
Dmitry
что тут написано? что shell /bin/echo (или любая другая поебень) будет работать только если lets_install не определено. но оно определено выше, в register от /bin/true
поэтому без указания тэга не срабатывает
Dmitry
ибо не попадает под условие when
Dmitriy
ааа
Dmitry
а дальше сраная магия. если указать tag, то оно нахер перекрывает всё :)
Dmitry
и срабатывает
Dmitriy
ты крутой, я уже вроде говорил :)
Dmitriy
прекрасный костылик
Dmitry
даже не очень магия
Dmitry
просто в
- shell: /bin/true
register: lets_install
ведь нет тага install? значит этот таск не срабатывает, значит не заполняется register :D
Dmitry
значит срабатывает when ниже :)
Dmitriy
я бы конечно за такие неочевидные решения убивал, но круто :)
Dmitriy
Серега, ты если читаешь - не надо такое использовать у нас :)
Denis 災 nobody
это то откуда
я добавил, автобаннить за голосовые мессаги
Denis 災 nobody
и
Denis 災 nobody
любителей
Denis 災 nobody
писать
Denis 災 nobody
так
yopp
первое ещё куда ни шло, а вот второее это нацизм
Dmitriy
это правильный, хороший нацизм
Dmitriy
я категорически поддерживаю
Denis 災 nobody
не можешь выразить мысль менее чем в 10 сообщений - иди в школу
Dmitry
баньте
Dmitry
меня
yopp
это чятик, а не мейл лист
Dmitry
я
Dmitry
такой
Dmitry
хуйни
Dmitry
написал
Dmitry
выше :)
Denis 災 nobody
или как минимум используй переносы
Denis 災 nobody
код можно выделять отдельно
Denis 災 nobody
речь именно про "фразу из 10 слов я способен выдать только в 10 сообщений"