Dima
ну а {{ nginx_workers_user }} определить либо в host_vars, либо в group_vars либо в defaults роли (если роли разные)
Dima
@lastsky user username; ну и далее там пути с этим именем
https://github.com/debops/ansible-nginx/blob/master/defaults/main.yml#L115 хлеще не бывает :)
Dima
(чем у debops)
Womchik
не логичнее ли зашить user {{ nginx_workers_user }} в шаблон?
я так и хочу. просто я хотел сюда имя роли засунуть
Dima
а у тебя просто вот такое выполняется в этой роли? - name: Create a directory which is called like the current role name action: file path=/tmp/"{{ role_name }}" mode=0755 state=directory
Womchik
- name: Configure nginx template: src: nginx.conf.j2 dest: /etc/nginx/nginx.conf notify: - Restart nginx
Dima
ну это не знаю... где-то определять в переменных так: nginx_workers_user: "{{ role_name }}"
Womchik
ну вопрос в итоге и был, нужно ли руками это приписывать, или можно откуда-то имя текущей роли вытащить?
Dima
я вот юзаю, но юзаю такое чтобы сократить кол-во переменных. node_ip: "10.100.20.{{ node_id }}" а node_id у меня задаётся в host_vars.
Dima
ну вопрос в итоге и был, нужно ли руками это приписывать, или можно откуда-то имя текущей роли вытащить?
по идее можешь подставить туда "{{ role_name }}" но будет ли это работать... я в уме не могу протестировать )
Womchik
хм. работает
Dima
ну значит в этом релизе ansible ничего не сломали 😆
Womchik
лучше, наверное, явно задать переменную
Womchik
и дать ей имя role_name :)
Dima
так у тебя с имя переменной с magic_var пересечётся
Womchik
весело ж будет
Dima
не знаю не знаю что там будет... может быть ансибл покажет не cows как раньше, а elephants?
Ilya
Может кто поскажет как правильно пречислить в host_vars n значений одной переменной?
O
test: ['1','2',....'N']
O
test: - 1 - 2 .... - N
O
вот счас не вспомню ... там ключ-значение или все таки можно списке херачить со словарями.... в inventory такое не прокатывало
Ilya
Attempted to read "hosts" as ini file: hosts:1: Expected key=value host variable
O
значит не (
Ilya
Т.е. никак?
Dima
with_dict? )
Dima
а, он словарь будет ждать. надо сначала hostvars положить в словарь как-то
Dima
да что такое, опять программирование на переменных началось )
Dima
через set_fact короче
Ilya
- name: Put service template: src: "{{servicetype}}.service" dest: "/etc/systemd/system/{{servicetype}}{{ item }}.service" with_sequence: start=1 end={{ servicecount }}
Ilya
Вот какой таск)
Ilya
servicetype может быть несколько
O
это что то типа много копий одного сервиса на хосте ? ;)
Dima
with_fileglob'ом положить, не?
Ilya
это что то типа много копий одного сервиса на хосте ? ;)
ага, только с разной цифоркой на конце
O
да легко )
Ilya
Только для разного сервера - разное имя сервиса может быть
O
выше пример в принципе ок
O
ну норм, завяжишь на inventory_hostname
Ilya
Как все сложно:D и у меня тупняк, с одним servicetype все хорошо, где и что сделать что бы несколько можно было задать?)
Ilya
Для каждого сервера свой servicetype а на одном их сразу несколько
Ilya
Через запятую не прокатывает, не разделяет их(
Ilya
Если в hosts дважды один хост с разными указать берет только последний
Yuri
А если один хост под разными именами?
Ilya
всм?
Ilya
Я ип указывал
Ilya
Вроде как работает:D
Ilya
Но это же дикий костыль
Dima
Может кто поскажет как правильно пречислить в host_vars n значений одной переменной?
- name: "Display all cluster names" debug: var=item with_items: "{{domain_definition|json_query('domain.cluster[*].name')}}"
Alex Sharov
Господа, а как сделать так, чтобы при динамическом инклюде переменные брались из defaults/main.yml, а не из group_vars/all?
Alex Sharov
У меня есть роль, в которой я этот инклюд делаю, но переменная(одноименная) берется не из контекста роли, а из group_vars
Dima
есть такая штука - приоритет переменных
Dima
http://docs.ansible.com/ansible/latest/playbooks_variables.html#variable-precedence-where-should-i-put-a-variable
Dima
defaults в самом низком приоритете, поэтому если в group_vars есть переменные - то они их перепишут
Dima
ну не, я ниче не говорю, программируйте дальше на переменных, ебитесь, ебитесь )
Alf 🙀
У меня есть роль, в которой я этот инклюд делаю, но переменная(одноименная) берется не из контекста роли, а из group_vars
Тут недавно еще вот про такую ручку которую можно покрутить узнал: http://docs.ansible.com/ansible/latest/intro_configuration.html#hash-behaviour
Alex Sharov
И еще вопрос. А можно ли итерировать задачу по двум переменным?
Sergey
ну не, я ниче не говорю, программируйте дальше на переменных, ебитесь, ебитесь )
это да - если городсть и предубеждение не позволяют выучить приоритет переменных, который состоит всего лишь из семи пунктов и прибит гвоздями
Aleksey
внезапно узнал порядок выполнения handler-ов в ансибле. растроен.
Aleksey
я так трогательно везде развешивал notify: - reload systemd - restart XXX
Aleksey
а выполняются они в порядке как в файле хендлеров указано
Aleksey
:(
Dima
это да - если городсть и предубеждение не позволяют выучить приоритет переменных, который состоит всего лишь из семи пунктов и прибит гвоздями
то есть, я хочу сказать, что он прибит гвоздями в 2.2. а до этого можно было долго гадать на тему "какого же хера я свалил прод"
Dima
и лично я на основании одного минорного релиза не вижу тут стабильного приоритета.
Dima
а выполняются они в порядке как в файле хендлеров указано
я давно использую подобный порядок когда, например, создаю через file: state=directory несколько вложенных директорий, сначала одну, потом вторую :)
Sergey
ну.. вот ты его выучил, а в новом релизе снова сломали. что тогда?
так же меня спрашивали те, кто коряво указывал теги возле includes, чт опривело к поломке деплоев в момент перехода 1.9 -> 2.0 ответ в обоих случаях: тогда - ничего. жить с этим и учитывать. или предусмотреть себе любимому возможность дампа всех переменных.
Dima
так же меня спрашивали те, кто коряво указывал теги возле includes, чт опривело к поломке деплоев в момент перехода 1.9 -> 2.0 ответ в обоих случаях: тогда - ничего. жить с этим и учитывать. или предусмотреть себе любимому возможность дампа всех переменных.
я вот тоже использовал. и тоже сломал. с тех пор теги использую только при запуске в виде аргументов, и в общем-то думаю, что это я виноват в том что неправильно их использовал.
Sergey
я вот тоже использовал. и тоже сломал. с тех пор теги использую только при запуске в виде аргументов, и в общем-то думаю, что это я виноват в том что неправильно их использовал.
в общем да. про переменные - не стоит определять одно и то же в разных местах, а потом злиться - "суки, всё сломали!" http://docs.ansible.com/ansible/latest/playbooks_variables.html#variable-precedence-where-should-i-put-a-variable
Dima
я тут прочитал текст, кстати. удивлён. никогда не читал его, всегда листал до списка переменных... 😀
Dima
A lot of folks may ask about how variables override another. Ultimately it’s Ansible’s philosophy that it’s better you know where to put a variable, and then you have to think about it a lot less. ну блин, че бы было это не выделить красным цветом 72 шрифтом )
Dima
неосиляторы должны стимулироваться на покупку поддержки, если Ansible Tower не будет валить проды - то как тогда продавать поддержку? )
Sergey
ну там прикол в том, что сама по себе поддержка по голому ансиблу вроде не продаётся
Sergey
типа - хотите-ешьте, не лезет - ваша проблема, или приходите, платите - разжуём за вас
Dima
ну, я это и подразумевал. юзер купил коробочку в которой ему лень разбираться - пусть колется, но продолжает жрать кактус.
Dima
а так, нужно пройти через говно, палки и медные трубы и научиться использовать ansible как инструмент, и вполне нормально :)
Sheridan
Потрогайте за solidity, вам ансибл стройной, логичной, связной и категорически понятной системой станет )))
Dima
но обычно же юзеры как...
Dima
БОООЛЬШЕ ШЕЛЛА В АНСИБЛ!!