Basil
Timur
А roles где?
Basil
в корне
Timur
Если в папке с плейбукой, то ансибл это тоже считывает автоматически
Basil
Basil
{{ role_path }} внутри первой роли будет /path/to/ansible/roles/role1
{{ role_path }} внутри второй роли будет /path/to/ansible/roles/role2
я спрашиваю как сделать, чтобы при вызове role2 из role1 переменная {{ role_path }} внутри второй роли содержала путь к первой
Timur
Timur
Зачем вызывать из одной включаемой роли другую?
Timur
Это похоже на жесткий антипаттерн
Stefan
добрый вечер, подскажите плиз функцию, через которую можно добавить разделитель(слово, слово), что-то не понимаю как правильно загуглить, split не для этого как понял
{%- for core_domains in bar_sites -%} {{ core_domains.domain_name | разделитель с добавлением запятой }} {%- endfor -%}
Lamobot
Отделение Bereke Bank
Отделение Bereke Bank
{%- for core_domains in bar_sites -%} {{ core_domains.domain_name }}, {%- endfor -%}
Отделение Bereke Bank
если у последнего элемента запятая не нужна
{%- for core_domains in bar_sites -%} {{ core_domains.domain_name }}{% if not loop.last %},{% endif %} {%- endfor -%}
Stefan
Отделение Bereke Bank
или тебе в одну строку надо?
Stefan
Stefan
"около 3" - это π, или e, или ты предлагаешь погадать, что тебе нужно сделать? как вообще звучит исходная задача?
bar_sites:
- domain_name: 'lalala.com'
- domain_name: 'bababa.com'
нужно чтоб при подстановке значений в цикле: {%- for core_domains in bar_sites -%} {{ core_domains.domain_name }} {%- endfor -%}
доменные имена были через запятую на выходе: lalala.com, bababa.com
при использовании |join(', ') у меня такое получается: l, a, l, a, l, a, ., c, o, mb, a, b, a, b, a, ., c, o, m
а без - просто доменные имена без пробелов, слипшиеся
Stefan
Отделение Bereke Bank
- name: Set fact
set_fact:
blah: "{{ bar_sites | map(attribute='domain_name') | join(',') }}"
Gregory
Ку всем! у меня такой кейс, в host_vars положил файлики с конфигами эластика, конфиги разные и именуются они как server-01.yaml, server-02.yaml итд, теперь вопрос, как в один присет скопировать эти конфиги на нужные машинки? (машинки в инвентори так же указаны как server-01,server-02 итд)
Андрей
модулем template?
Gregory
это то понятно =) но придется хардкодить типа
Sergey
Gregory
-name copy config to server-01
Gregory
-name copy config to server-02
Gregory
итд
Gregory
а можно ли как нить 1 таском?
Sergey
Gregory
и как?)))
Sergey
Как обычно - указываешь группу хостов в hosts, в таске используешь подходящую переменную (предположительно, тебе зайдёт inventory_hostname). Но всё-таки лучше сначала прочти доку: https://docs.ansible.com/ansible/latest/user_guide/playbooks_variables.html#accessing-information-about-other-hosts-with-magic-variables
Gregory
Огромное спасибо!
Sergey
Пожалуйста.
Gregory
нашел более простой метод через переменную inventory_hostname
Maxim
Gregory
- name: Copying the config file to remote machine
copy:
src: "{{ inventory_hostname }}.yml"
dest: /etc/elasticsearch/elasticsearch.yml
Timur
Timur
hostvars['anotherhostname']['myvariable']
Timur
И т.п.
Timur
Ключ словаря - имя хоста из инвентаря
Maxim
Спасибо, сейчас попробую, а если мне надо перебрать все машинки, то цикл делаю?
Dmitry
В плейбуке есть include_role ... when: "'xxxx' in group_names" ... как в этой роли получить хосты на которых она будет играться? ansible_play_batch дает все хосты плейбука... есть ли готовая переменная?
Timur
Timur
when: "'xxxx' in group_names" - сразу красный флаг
Dmitry
Timur
обосновать сможешь?
Что именно обосновать? Что в ансибле не нужно проверять членство хоста в группе дополнительной логикой?
Dmitry
Timur
Так это очевидно, т.к. вместо этого есть встроенный механизм плеев
Timur
Кодить лишнюю логику вместо готового работающего дефолтного механизма - заведомо неразумно
Dmitry
Dennis
Как раз таки инженерная.
k
Господа, просто поинтересуюсь, а кто как решает вопрос резервирования тестовых стендов?
Когда есть фиксированное число тестовых окружений и надо как-то разделять их между коллегами, чтобы в один и тот же втроём не деплоили.
k
Dmitry
Как раз таки инженерная.
инженерная использует инженерные аргументы - в каком случае какая проблема вылезет, а "заведомо неразумно", "красный флаг", "лишние проблемы" - это менеджерские аргументы, особенно не вдаваясь в контекст... инженер вообще поостережется махать шашкой не зная всего контекста
Dmitry
Dmitry
у нас такой бот делоем на прод управляет, просто очередь в слаке
Timur
Alex
Dmitry
Dmitry
вот не вижу причин я пилить десяток плейбуков вместо одного хорошо читаемого, что бы просто кого-то не рвало на флаги... и пока вы ни одной не привели причины
Timur
Alex
Таки и не надо 10 пилить. Вложенные группы давно уж как завезли
Timur
Или думает, что в плейбуке может быть только один плей
Timur
Timur
А учить как ловко прыгать по граблям, как можно дольше не получая ими по лбу, нет никакого желания сейчас
Dmitry
задача простая - много групп, много ролей, прямое соответствие группа-роль, играются все всегда вместе и в одном порядке
и установка/сняние лока в начале/конце и на fail в том числе... хотя не, локи снес уже, возможно эта пачка инклудов с тех времен осталась, но не вижу причин переделывать
Timur
Dmitry
да нет проблем... просто для красоты в начале каждой роли вывожу {{ ansible_play_batch | join(', ') }}
Dmitry
и хотелось, что бы выводились не все хосты, а по которым играем
Timur
Timur
Вы не знаете, на каких хостах вы запускаете свой код?