/warn
Вот если я стартую с консоли командой
/warn
ansible-playbook -i inventory.ini remove_user_from_groups.yml --ask-vault-pass --ask-pass --extra-vars "user_name=test1\ntest2 unix_groups=spark\npng" -vvv
/warn
То все работет
/warn
А если с ansbile tower - то дает ситаксическую ошибку
manefesto
https://pastebin.com/WSKHi1QC
manefesto
так должно быть
/warn
Почему?
manefesto
почему у тебя перед remove_user 4 пробела ?
/warn
А сколько должно быть?
manefesto
ну или вот так
manefesto
https://pastebin.com/ZxKusg1d
/warn
А это критично?
manefesto
попробуй
/warn
Ничего не поменялось
/warn
Вот полная ошиька https://pastebin.com/XbWSQs2f
manefesto
--- - hosts: test become: yes tasks: - remove_users_groups: users: "{{user_name.split('\n')}}" groups: "{{unix_groups.split('\n')}}"
manefesto
,kby
manefesto
блин
/warn
?
manefesto
manefesto
это исходя из твоего таска
/warn
Ну потому что у тебя модуль не видит
/warn
запускаюсь под юзера awx, который и по идее стартует плейбуки из под Ansible Tower
/warn
И все пашет
manefesto
ну хорошо, а ты уверен что на TA стоит твой модуль?
/warn
Опять же. у меня в папке 4 моделя. 3 их них она ставит и работает, почему не должна работать на четвертом?
/warn
И все работаю кроме вот этого
manefesto
я модули не писал
manefesto
знать не знаю
/warn
Ну фактически, там все очень просто. Вопрос почему он не видиттолько один, если конфигурация для всех одинакова.
Vadim
потому что AWX не находит их
Vadim
но вы тут спамите вместо дебага, например https://github.com/ansible/awx/issues/815#issuecomment-357753056
victor
Товарищи, может быть кому-то приходилось реализовывать что-то наподобие regexp или wildcard для shell args creates? очень нужно для rvm packages
Vitaly
Коллеги, кто работал с inventory.ini из Python? Хочется читать и добавлять хосты/группы скриптом. Попробовал configParser, он комментарии не умеет и скипает те что были уже. CfgObject не умеет в ансибловские [1:5] и оч капризный. Попробовал ansible Python API , даже прочел хосты, но как записывать с ходу не нашел и документации по нему нет. Может кто что успешно использует и подскажет?
Alexander
Ини из пайтона? Немного неясно применение, но имхо лучше посмотреть на динамический инвентори.
Fedor
ансибл умеет и в ямл в инвентори вроде ж
Fedor
https://docs.ansible.com/ansible/2.5/plugins/inventory/yaml.html
Vitaly
Умеет. А питон из ямла комментарии сохраняет и пишет нормально прям?
Vitaly
Ини из пайтона? Немного неясно применение, но имхо лучше посмотреть на динамический инвентори.
Модифицировать inventory. Не, динамический пока не хочется, слишком усложнение. Плюс конфиг для него все равно держать где-то, и краевые случаи.
Alexander
Конфиг где-то держать для инвентори? Комментарии в инвентори? Без контекста тяжело... Храните хосты хоть в xml, а парсите потом питоном как динамический инвентори как вариант.
Vitaly
Я не понимаю, зачем динамический инвентори, если .ini и так отлично работает. И вопрос был про то, правил ли кто либо его из питона, чтобы сохранялись комментарии, или может пользовался Ansible Python API
Alexander
Если есть необходимость писать скрипт для правки инвентори, значит операция как минимум повторяемая. Вот к чему и динамический инвентори
Fedor
на самом деле, можно просто распарсить регулярками построчно
Alexander
Перлом, ага
Vitaly
Да. Но писать динамический инвентори - дорого, и дорого дебажить, плюс неясность что же сейчас будет использоваться. Переделка инфраструктуры для поддержки групп, тегов , хост-вар и гроуп-вар (как-то группировать и т.п.), что не везде возможно. Короче больше гемора
Alexander
Если вы храните переменные в ини файле, то это фиаско
Alexander
Но дело Ваше :)
inqfen
я вот как раз на динамик инвентори переползаю
Alexander
Да... Часто лучше сразу думать наперёд ;)
Vitaly
Я не прошу за меня решать использовать мне динамический инвентори, или нет. Если у кого-то есть успешный опыт использования динамического инвентори с openstack и vmware с сотнями хостов, и десятком групп, влоюенные группы, вот это все, я с удовольствием послушаю и подумаю. Пока Профит слишком низок
Fedor
кстати, ини инклюды умеет?
Vitaly
Я готов организовать митап по ансиблу и IaC. Кто может помочь разобраться в динамик инвентори применительно к жизни? Я подготовлю вопросы, что мешают не только мне))
Nazar
Я готов организовать митап по ансиблу и IaC. Кто может помочь разобраться в динамик инвентори применительно к жизни? Я подготовлю вопросы, что мешают не только мне))
Динамик инвентори уже под что только не писали. Мы писали свою реализацию, т.к. у нас АПИ свое. Если мне не изменяет память под os, vmware, aws уже есть готовы ерешения.
Alexander
Именно. Тут же не цель поругать. Мы тут типа советуем. Управлять 100 хостов вручную? Ну, удачи :)
Vitaly
Динамик инвентори уже под что только не писали. Мы писали свою реализацию, т.к. у нас АПИ свое. Если мне не изменяет память под os, vmware, aws уже есть готовы ерешения.
Есть, только медленно же это, дергать апи на каждый плейбук. Но допустим. А как происходит группировка хостов в группы? Вложение групп в группы?
Nazar
Есть, только медленно же это, дергать апи на каждый плейбук. Но допустим. А как происходит группировка хостов в группы? Вложение групп в группы?
Это все прекрасно можно кешировать в том же redis. https://www.jeffgeerling.com/blog/creating-custom-dynamic-inventories-ansible Вот этого примера более чем достаточно, для того, что бы понять как его написать.
Nazar
По факту тебе надо собрать json из всех твоих данных, учитывая зарезервированные названия полей для ansible
Vitaly
Ну вот, те что написаны под os, VMware, AWS - где хранится инфа о группах? Как мета-инфа у каждой тачки, или статический файл с регуляркамм в репе (вижу так в доке про os)? Что вы имеете ввиду под "зарезервированные названия полей для Ансибл"?
Sashko
Как заюзать анс без разноверсионных дев-тест-прод в наличии? Какие нужно шаги предпринять, что бы его ковырнуть хоть ноготком
inqfen
да хоть на локалхост натравить
inqfen
Вы пытались открыть документацию? Судя по всему - нет
я вот вообще переменные например в файлах в vault в group_vars держу и пилю скрипт который мне будет отдавать список групп и хочтов в группах
inqfen
раскатал я такой себе еще 10 машин какого-то компонента и не надо никуда ничего записывать в файлик, ее тега хватит
inqfen
а эти теги в случае вмвари можно прекрасно при создании машины тем же ансиблом выставлять
inqfen
потом при выполнении инвентори скрипта с машин просто забираются теги и их айпишники например, в теге - группа в которой машина находится
inqfen
и в случае подхода с IaC ты просто указываешь требуемое количество хостов такой-то группы - и плейбук приводит их к нему
Vitaly
а эти теги в случае вмвари можно прекрасно при создании машины тем же ансиблом выставлять
Ну это здорово, когда есть доступ к апи VMware такой, ибо или куплена эта дорогая надстройка, или там только вы)) Но так понятно - через теги/мета инфу машины. Логично, больше негде и хранить)
Udjin
Всем привет. Кто-нибудь знает как сделать так, чтоб роль выполнилась только для одного хоста в группе, неважно какого? Что-то типа run_once: true - только для роли
Max
если указать точно то —limit hostname
Udjin
мне заранее хостнейм неизвестен же.
Udjin
Ладно, тогда впилю прям для каждого плейбука
Max
Ладно, тогда впилю прям для каждого плейбука
hosts: "{{ groups['target_group'] | random }}"
Max
вот так попробуй
Udjin
а у меня вот так: https://i.imgur.com/Dpc8qmq.png