@pro_ansible

Страница 23 из 625
Dmitriy
20.07.2016
16:07:46
ребяты, у меня тут коллега спрашивает, а я ему ответить не могу. как сделать, чтобы можно было писать include task.yml when tag == foo

в rolename/main.yml

я могу это на уровне варки сделать, типа include task when my_var == true, например. А с тегами такое не работает. Подозреваю, что надо не к тегу обращаться, а искать в тегах как-то

типа include task.yml when 'foo' in tags

Google
Dmitriy
20.07.2016
16:10:31
что вообще человек хочет - чтобы запуск плейбука с —tag install - делал установку, без указания —tag install - не делал установку

Roman
20.07.2016
16:12:40
вот так ответь ему

Dmitriy
20.07.2016
16:15:54
у меня глаза вытекли

не думаю, что этот ответ можно считать ответом :)

Dmitry
20.07.2016
16:16:15
от странного желания этого человека тоже собсно глаза вытекают :)

Dmitriy
20.07.2016
16:16:45
а как правильно сделать?

мне так видится, что разбить роли на установку и обслуживание

Roman
20.07.2016
16:17:13
этот одновременно с твоим вопросом прилетел просто

Dmitry
20.07.2016
16:18:27
мне так видится, что надо пометить таски тагами

которые устанавливают, тем проставить таги install. всё. и не теребить писюн, вытаскивая себя за волосы

Roman
20.07.2016
16:19:08
"when 'foo' in tags"

Dmitriy
20.07.2016
16:19:34
мне так видится, что надо пометить таски тагами
неее, идея то в том, чтобы не запускать install, если про него не сказано

Google
Dmitriy
20.07.2016
16:19:51
а если ты теги не укажешь - то у тебя инсталл отработает

Dmitry
20.07.2016
16:20:55
ну если хочет странного, то пусть попробует примерно так - name: blablabla tasks: - include: tasks/bububu.yml tags: - install

а, он хочет настолько странного, что это ему не поможет

Dmitriy
20.07.2016
16:21:39
вроде уже чото такое пробовали

ладно, думаю, что оно не решается в заданном виде просто

порекомендую разбить роль на две

Roman
20.07.2016
16:22:18
а это часть кода или окружения?

Dmitry
20.07.2016
16:22:48
Dmitriy
20.07.2016
16:22:56
Roman
20.07.2016
16:23:03
не, нафиг этот вопрос.

пойду матчасть курить

Dmitry
20.07.2016
16:24:26
может так? - include: install.yml when: install_whatever is defined и запускать ansible-playbook -i inventory site.yml -e "install_whatever=true"

нихрена не таг, но хотелку наверное залечит

Roman
20.07.2016
16:24:50
я ничего не понимаю кроме понимания что надо засесть и раздуплить.

Dmitry
20.07.2016
16:25:59
иначе никак, when clause can't evaluate the presence of tags

хм... придумал :)

- shell: /bin/true register: lets_install - name: only run when tag shell: /bin/echo "hahaha" when: lets_install is not defined tags: install

не пробовал

Dmitriy
20.07.2016
16:29:17
так-это ж не поможет :) это тоже самое, что и варку определить и потом через -e вызывать

Google
Dmitry
20.07.2016
16:29:30
ты уже попробовал?

Dmitriy
20.07.2016
16:29:56
нет

ну просто смотри, ты этим кодом делаешь что ты говоришь - всегда делай инсталл

Dmitry
20.07.2016
16:37:28
а вот я короче попробовал

но ты можешь продолжать дальше пробовать интерпретировать в уме :)

Dmitriy
20.07.2016
16:39:22
как оно работает? если ты пишешь —tag=install - то видишь хахаха, а если не пишешь - то не видишь?

Dmitry
20.07.2016
16:39:35
шелл http://dpaste.com/3NR9VSC.txt

site.yml http://dpaste.com/1ZJCAM8.txt

в inventory просто test1

как оно работает, видно в шелл сессии

без тэга TASK [Only run when tag is specified] ****************************************** skipping: [test1] с тэгом TASK [Only run when tag is specified] ****************************************** changed: [test1]

не знаю, что тут еще добавить

но ты держись там, здоровья, хорошего настроения :) ну просто смотри, ты этим кодом делаешь что ты говоришь - всегда делай инсталл

Dmitriy
20.07.2016
16:42:23
я не пони, как это работает, но работает

круто

Dmitry
20.07.2016
16:46:11
очередная хитрожопость ансибла :(

Dmitriy
20.07.2016
16:48:59
завтра попробую понять, интересно ж

Dmitry
20.07.2016
16:58:05
да оно в общем-то примерно понятно, как

смотри, shell: /bin/true выполняется всегда, так? и регистрирует успешное выполнение в lets_install, так?

Google
Dmitry
20.07.2016
16:59:00
- shell: /bin/true register: lets_install

теперь смотрим дальше - name: Only run when tag is specified shell: /bin/echo "Only running because of specified tag" when: lets_install is not defined tags: install

что тут написано? что shell /bin/echo (или любая другая поебень) будет работать только если lets_install не определено. но оно определено выше, в register от /bin/true поэтому без указания тэга не срабатывает

ибо не попадает под условие when

Dmitriy
20.07.2016
17:00:54
ааа

Dmitry
20.07.2016
17:01:01
а дальше сраная магия. если указать tag, то оно нахер перекрывает всё :)

и срабатывает

Dmitriy
20.07.2016
17:01:09
ты крутой, я уже вроде говорил :)

прекрасный костылик

Dmitry
20.07.2016
17:01:18
даже не очень магия

просто в - shell: /bin/true register: lets_install ведь нет тага install? значит этот таск не срабатывает, значит не заполняется register :D

значит срабатывает when ниже :)

Dmitriy
20.07.2016
17:04:02
я бы конечно за такие неочевидные решения убивал, но круто :)

Серега, ты если читаешь - не надо такое использовать у нас :)

Denis 災 nobody
20.07.2016
17:04:15
это то откуда
я добавил, автобаннить за голосовые мессаги

и

любителей

писать

так

yopp
20.07.2016
17:04:55
первое ещё куда ни шло, а вот второее это нацизм

Google
Dmitriy
20.07.2016
17:05:11
это правильный, хороший нацизм

я категорически поддерживаю

Denis 災 nobody
20.07.2016
17:05:27
не можешь выразить мысль менее чем в 10 сообщений - иди в школу

Dmitry
20.07.2016
17:05:37
баньте

меня

yopp
20.07.2016
17:05:39
это чятик, а не мейл лист

Dmitry
20.07.2016
17:05:40
я

такой

хуйни

написал

выше :)

Denis 災 nobody
20.07.2016
17:05:54
или как минимум используй переносы

код можно выделять отдельно

речь именно про "фразу из 10 слов я способен выдать только в 10 сообщений"

это чятик, а не мейл лист
чятик с нормами приличия и уважения к другим участникам, а не "кому уже 10"

и писать по 1-2 слова на сообщение, (!!когда в этом нет смысла!!, Дмитрий) - это верх неуважения

еще раз - выделить код, копипасты и проч - норма

Vit
21.07.2016
08:48:12
О, расскажите про террфаорм, кто пользовался. Что это такое, в двух словах и что позволяет сделать? Статьи в интернете отличаются умным языком и оторванностью от реальности как-то. Для каких задач можно использовать.

Страница 23 из 625