Яша
его не нужно ставить вам руками
Яша
при установке чеголибо из данной репы, шоколад сам накатится
Яша
если я правильно понял
Timur
Не пойму, про «это делается самим модулем».
[WARNING]: Chocolatey was missing from this system, so it was installed during this task run.
Sergey
Что именно в этом предложении непонятного?
Там мож со шрифтами вопрос, ты вот пишешь кириллицей, а человек у себя кракозябры видит......
Iw@n
Руками не ставлю, ставлю в плейбук
Iw@n
Ааааа
Iw@n
Простите. Понял) не дочитался. Спасибо)))
Timur
Яша
может возможно в нужном таске добавить параметр для вывода в файл?
Iw@n
может возможно в нужном таске добавить параметр для вывода в файл?
Пока не думал. Попробую тоже, для эксперимента)
Яша
Пока не думал. Попробую тоже, для эксперимента)
это я не по вам)) это я по своему вопросу)
Яша
у вас все решилось)
DjinN
Хранить в коде, передевать на целевую машину
Lamobot
Если добавить - lineinfile, если целиком hosts генерить, то template Хранить - где угодно - переменные плейбука, хостов, групп итд
UglyKoyote
Хранить в коде, передевать на целевую машину
я таску отдельную запилил.. чтобы генерить записи в хостс. опять же тренировка жижи)
Ilgiz
Доброго времени суток! Сегодня столкнулся с интересным поведением инвентарного файла, в общем есть плейбук который тянет имя группы и потом подставляет в путь чтобы далее записать инфу. Все хорошо работало пока не переименовал имя родительской группы в которую входят все остальные группы, после небольшого дебага заметил прямую зависимость от алфавита, т.е. [aaaa] host1 [bbbb] host2 [cccc] host3 [dddd] host4 [cc_group:children] aaaa bbbb cccc dddd group_names[0]: host1 --> aaaa host2 --> bbbb host3 --> cccc host4 --> cc_group
Ilgiz
по сему у меня вопрос, это специфика версии 2.7.10, баг или все же нормальное положение вещей, что порядок наследования переменных зависит от алфавитного порядка?
Ilgiz
Это нормально. А как должно быть по-вашему?
я думал что родительская группа живет как бы отдельно, и буква на которую начинается ее имя уж никак не влияет на переменную group_names[0] групп-потомков
Ilgiz
ну ок, если это нормальное поведение буду теперь иметь ввиду
Ilgiz
спасибо!
Timur
я думал что родительская группа живет как бы отдельно, и буква на которую начинается ее имя уж никак не влияет на переменную group_names[0] групп-потомков
Между родительскими и дочерними группами в плане переменных нет никакой разницы. Просто одни могут быть членами других ради удобства.
Timur
А переменная group_names - это просто список групп, в которые входит хост. Туда входят все группы - как родительские, так и дочерние. Если разницы никакой нет, то самый простой вариант объединения - по алфавиту
Anatoliy
пишу роль обмена ssh ключами. до запуска плейбука неизвестно на какие хосты нужно сложить публичный ключ, поэтому внутри роли использую add_host как-то внутри роли можно пробежаться по добавленным хостам или только на уровне плейбука?
Ivan
Всем привет! Кто то сталкивался с проблемой неработающего Ansible в виндовом WSL?
Vladimir
а кто нибудь писал роли для weblogic oracle?
NS 🇷🇺
У меня был только долгий респонс на ввод команды
Pavél
а кто нибудь писал роли для weblogic oracle?
https://github.com/lean-delivery/ansible-role-weblogic
Anatoliy
доброго времени суток. подскажите как такое возможно: TASK [Gathering Facts] **** skipping: [hostname.net] сам хост добавляется с помощью add_host, а для плейбука (сразу после add_host) в hosts указана та же группа. Если группы не совпадают выводится ошибка "skipping: no hosts matched", поэтому ошибки в написании группы нет, но хост все равно пропускается также как и все остальные таски плейбука
Anatoliy
Покажите код
https://pastebin.com/ksZkKzgc в debug-е отображается то, что нужно и тот же хост потом пропускается для всего плейбука "ssh_key_from"
Timur
Банально ansible_host и ansible_port отсутствуют
Timur
ansible_ssh_key - тоже
Anatoliy
У вас же там ни адреса нормального, ни кредов
только что отдебажил. такое поведение из-за import_playbook when ...
Anatoliy
убрал when стало работать как ожидается
Timur
Ну, отлично тогда
Anatoliy
У вас же там ни адреса нормального, ни кредов
в основном подсталяются значения из inventory в "родительском" плейбуке. пришлось делать подключение одного плейбука из другого, поскольку внутри роли я не могу работать с хостами, добавленными через add_host так что отдельный плейбук как бы заменил tasks/main.yml роли
Anatoliy
все равно странное поведение
Denis 災 nobody
Denis 災 nobody
Alex
читал кто?
Alex
есть что то интересное или азы?
Andrey
@amarao а чего ты сюда свою статью про плейбуки и роли не запостил?! годно же написано!
Andrey
https://medium.com/opsops/ansible-role-is-not-a-fancy-play-5c54c5f456e5
George
Там скоро выложат полную версию видео с devops meetup'а, где я это всё подробно и с картинками выкладывал.
Alex
@amarao это ты на хабре с таким же ником, правильно?
George
Да.
Sergey
Там скоро выложат полную версию видео с devops meetup'а, где я это всё подробно и с картинками выкладывал.
Не очень понятна мысль статьи. Так ты за использование ролей или против?
George
Я категорически против использования объектов инвентори (имена хостов/групп) внутри ролей.
George
{% for host in groups.database %} {{ hostvars[host].ansible_default_ipv4_address }} {% endof %} и т.д.
Гайрат
Я категорически против использования объектов инвентори (имена хостов/групп) внутри ролей.
Так роли и не должны к хостам привязываться. Или тут другое имеется в виду?
Sergey
А! Дык да, согласен. Ломает совместимость. Я бы ещё добросил, что если ожидаешь внутри роли некую переменную - подпиши её в плее в качестве параметра, чтобы не зафакапить того, кто будет рефакторить всю балалайку.
George
Не должны. Но привязываются практически у всех, кто делает базы данных/acl'и и т.д.
George
Моё мнение, что ансибл сделал большую ошибку в дизайне, когда разрешил доступ ко всем переменным из шаблона (у шефа их явно надо объявить при использовании шаблона).
Sergey
Справедливости ради - ты вот сам выше пример привёл, но там совсем не нужно обращаться к свойству объекта. Что действительно стоит сделать - так это обращаться к значению словаря по ключу (то бишь через ['key']). Тогда естественным образом отваливается хардкод, и можно написать [var] - то бишь косвенное обращение, по ключу, лежащему в переменной 'var'. Опять же, если перекроешь класс Templar - получишь свой вариант Ansible, где указанный недостаток дизайна побеждён 😉
Alex
Я категорически против использования объектов инвентори (имена хостов/групп) внутри ролей.
а чем это плохо? Допустим у меня есть HA кластер, роль одна - app, но на мастере и слейве надо выполнять разные действия
George
Он не побеждён, потому что в ансибле нельзя написать вот так вот: vars: target_ip: '{{ target_ip }}'А без этой штуки всякая explicit не работает.
George
Допиши к каждому хосту и группе в инвентори циферку "1" в конце и посмотри как оно взорвётся.
George
Это называется pathological coupling.
George
node1 -> node11, pg_group -> pg_group1
Alex
Он не побеждён, потому что в ансибле нельзя написать вот так вот: vars: target_ip: '{{ target_ip }}'А без этой штуки всякая explicit не работает.
у меня есть такой код - name: Update counter set_fact: tests_result_num: "{{ tests_result_num | int + 1 }}" работает без проблем
George
@tnt4brain, я хочу показать, какие переменные будут использоваться внутри template так, чтобы можно было их увидеть, не открывая template. Точнее, я уже не хочу, я смирился, но считаю, что невозможность так сделать - это ошибка дизайна.
George
set_fact работает, но не всегда. Мы уже обсуждали vars для include_role, когда set_fact улетает в отдельный оверлей.
Sergey
@tnt4brain, я хочу показать, какие переменные будут использоваться внутри template так, чтобы можно было их увидеть, не открывая template. Точнее, я уже не хочу, я смирился, но считаю, что невозможность так сделать - это ошибка дизайна.
Напиши коммент. Фактически запись, которую ты привёл - "хочу передать параметр со значением, равным значению этого параметра". Я вот не видел в форматах сериализации работающие кольцевые ссылки.
Timur
vars: target_ip: '{{ target_ip | default("") }}' Так будет работать
George
Не будет. Рекурсия jinja
Alex
node1 -> node11, pg_group -> pg_group1
ну вот у меня есть [jfrt_ha_master] master ansible_host=18.xxx.xxx.xxx ansible_user=ansible private_ip=172.31.43.147 [jfrt_ha_slave] slave1 ansible_host=54.xxx.xxx.xxx ansible_user=ansible private_ip=172.31.39.89 slave2 ansible_host=18.xxx.xxx.xxx ansible_user=ansible private_ip=172.31.44.183 [jfrt_ha_database] database ansible_host=18.xxx.xxx.xxx ansible_user=ansible private_ip=172.31.47.54 если я переименую slave1 в slave11, то все сломается?