Dima
ну а {{ nginx_workers_user }} определить либо в host_vars, либо в group_vars либо в defaults роли (если роли разные)
Dima
(чем у debops)
Womchik
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.
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
Но это же дикий костыль
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
ну не, я ниче не говорю, программируйте дальше на переменных, ебитесь, ебитесь )
Alex Sharov
И еще вопрос. А можно ли итерировать задачу по двум переменным?
Dima
Aleksey
внезапно узнал порядок выполнения handler-ов в ансибле. растроен.
Aleksey
я так трогательно везде развешивал
notify:
- reload systemd
- restart XXX
Aleksey
а выполняются они в порядке как в файле хендлеров указано
Aleksey
:(
Dima
Dima
и лично я на основании одного минорного релиза не вижу тут стабильного приоритета.
Sergey
ну.. вот ты его выучил, а в новом релизе снова сломали. что тогда?
так же меня спрашивали те, кто коряво указывал теги возле includes, чт опривело к поломке деплоев в момент перехода 1.9 -> 2.0
ответ в обоих случаях: тогда - ничего. жить с этим и учитывать. или предусмотреть себе любимому возможность дампа всех переменных.
Dima
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 шрифтом )
Sergey
Sergey
Dima
неосиляторы должны стимулироваться на покупку поддержки, если Ansible Tower не будет валить проды - то как тогда продавать поддержку? )
Sergey
ну там прикол в том, что сама по себе поддержка по голому ансиблу вроде не продаётся
Sergey
типа - хотите-ешьте, не лезет - ваша проблема, или приходите, платите - разжуём за вас
Dima
ну, я это и подразумевал. юзер купил коробочку в которой ему лень разбираться - пусть колется, но продолжает жрать кактус.
Dima
а так, нужно пройти через говно, палки и медные трубы и научиться использовать ansible как инструмент, и вполне нормально :)
Sheridan
Потрогайте за solidity, вам ансибл стройной, логичной, связной и категорически понятной системой станет )))
Dima
но обычно же юзеры как...
Dima
БОООЛЬШЕ ШЕЛЛА В АНСИБЛ!!