Алексей
Загрузчик переменных хочешь написать свой?
хочу собирать список файлов и работать с ним. Просто то что Тимур предложил - там with_sequence: count=19 по идее можно количество файлов получать и подставлять. Костыльно, но лучше чем роль чужую переписывать.
Sergey
Я с телефона сижу, поищи group_names
Алексей
Я с телефона сижу, поищи group_names
там две группы, parent и child но они никак не разделены в этом списке
Алексей
Мдя. Я, пожалуй, себе RO возьму на денёк, иначе начну писать разное-нелицприятное.
Если есть другой вариант собрать из файлов переменную, то ты лучше его озвучь более развёрнуто. А то я вчера не понял посыла
Алексей
Ты складываешь список и словарь, это норм вообще?
воо, как мне правильно сложить списки словарей до выполнения таска или как мне правильно записать в файлы для того, чтобы они правильно слились.
Oleg
подскажите есть вот такой код: files_to_squash_order: "{{ files_to_squash.files | sort(attribute='path') | map(attribute='path') | list }}" который возвращает вот такой результат: "/var/www/pharm/db/run/A.sql", "/var/www/pharm/db/run/B.sql", я мне нужен вот такой результат: "A.sql", "B.sql", как это сделать? сколько не пытался через map, не получается
Oleg
разобрался что это можно сделать с помощью {{ item | basename }}
Oleg
а как сделать это в map так и не понял, если кто-то подскажет, буду благодарен
Alex
map('basename')
Ток без кавычек?
Alex
Мдя. Я, пожалуй, себе RO возьму на денёк, иначе начну писать разное-нелицприятное.
Дай на сутки ро лучше ему, пусть либо платит за поддержку либо играет по правилам чата
Алексей
Не хотеть странного :-) Сделать списки с префиксом, склеивать их спокойно фильтрами, выдыхать.....
сейчас вот понял о чём речь, по вчерашнему контексту вообще непонятно было. Префиксы единые имеется в виду в каждом файле, чтобы ключ словаря был одинаковый, верно?
Алексей
Дай на сутки ро лучше ему, пусть либо платит за поддержку либо играет по правилам чата
Задавать вопросы это не по правилам? Получать размытые ответы по правилам? Так чтоль?
Alex
Задавать вопросы это не по правилам? Получать размытые ответы по правилам? Так чтоль?
У тебя конкретные вещи просят, ты игноришь. Объяснения просят по другому, тебя не понимают
Алексей
У тебя конкретные вещи просят, ты игноришь. Объяснения просят по другому, тебя не понимают
Я вполне конкретно описал проблему, меня начинают тыкать, что я нифига не написал. Что я не так написал то?
greydjin
никто не использует alpine linux в diskless mode? как бы из ансибла сохранять конфигурацию после редактирования
Алексей
Значит ты не написал
ага, охуенная позиция. Я понимаю, что "самдурак", но если кто-то больше в чём то соображает, это не значит, что я на таком же уровне понимаю. Я на конкретику ответил.
Алексей
Значит не ответил
значит вопросы нужно задавать более чёткие.
Timur
значит вопросы нужно задавать более чёткие.
Приведите код, который запускаете и выхлоп с ошибкой в конкретном месте - это недостаточно четкие вопросы?
greydjin
Что, простите?
ну, lbu cоmmit типа
Timur
Плейбука и роль
Timur
Но главное - в каком месте выполнения была ошибка с полным выводом
Timur
Этой информации пришлось ждать долго
Алексей
Потому что это не относится к теме вопроса. Ни плейбука не нужна, ни роль. Роль я дал, кстати, причём сразу. А плейбука простейшая - тупо роль запускает. Что из этой инфы вам нужно было для понимания? Она абсолютна бесполезна в контексте вопроса. Как была, так и есть
Timur
> Потому что это не относится к теме вопроса. Ну, т.е. вы сами все лучше всех знаете
Timur
Извините, что не дотягиваем до вашего уровня и не можем мысленно читать код
Алексей
не обижайтесь, смысла в том как я запускаю роль вообще нет
Алексей
какой код? Код роли?
Timur
какой код? Код роли?
Код, который вызывает ошибку, о которой вы сообщили
Алексей
есть роль https://github.com/bertvv/ansible-role-bind
код я указал в самом начале. или нет?
Timur
В каком месте выполнения возникла ошибка - вы не указали
Timur
А телепатически считать данные не удалось, к сожалению
Timur
И плейбуку тоже не указали
Алексей
А там и не нужно считывать ничего телепатически. Просто глянуть где указанная переменная используется. Ок, вот плейбука --- - hosts: all vars: ansible_user: "root" become: yes roles: - bind Она наверное Очень информативная.
Timur
ansible_user: "root" 😏
Timur
Алексей
а become в кого?
Это общий плей, роли не играет
Oleksandr
Это общий плей, роли не играет
там херня просто. вы уж простите
Артём
А что, бекам в рута из рута не сработает?
Алексей
там херня просто. вы уж простите
Да и пофиг, на заданный вопрос не влияет
Алексей
Вот так получилось собрать нужный формат из файлов https://xpaste.pro/p/XTicpwjX
Артём
Это к Александру в целом вопрос был.
Алексей
Вот так получилось собрать нужный формат из файлов https://xpaste.pro/p/XTicpwjX
Ещё момент, содержимое файлов нужно поправить до вот такого состояния "test2": name: "test2.ru" hostmaster_email: "hostmaster" allow_update: none Тогда всё мёржится как ожидается
Timur
Если просто словарь нужно собрать из разных файлов в одну переменную, то все в один шаг делается
Алексей
Да, верно. Это словарь. А нужен потом список словарей.
Timur
Через include_vars
Timur
Да, верно. Это словарь. А нужен потом список словарей.
У вас не делается список, получается
Алексей
Всё у меня делается. Я уже проверил всё и всё собирает как нужно
Алексей
Возможно там можно сократить на один шаг - убрав определение dict2, но мне нужны были промежуточные значения для понимания как оно всё собирает.
Антон
Подскажите, пжлст, как разрезолвить переменную в переменной? Например, group_vars вида: some_other_var: "value" some_var: param: param_var: "param_name_{{ some_other_var }}" Далее запускаю плейбук с параметром вида -e var='some_var' с содержимым: ... - debug: msg: "{{ vars[var]['param']['param_var'] }}" Получаю: "msg": { "param_name_{{ some_other_var }}" } Хочется получить: "msg": { "param_name_value" } gather_facts пробовал и true, и false - разницы нет (хотя иногда влияет на вложенные переменные)
Alexander
Как мне используя dynamic inventory отдельно указать хост (только один хост из многих), на котором я хочу выполнить плейбук? Но inventory мне нужно указывать стандартное, там же пароли и всё такое
Viktor
Использовать --limit ?
Alexander
Использовать --limit ?
похоже на то, не пойму только, как ему на resource attribute указать
Alexander
В общем, я указал IP, которые возвращаются как названия хостов. Работает. Спасибо @vbatuev
Timur
Работает?
Антон
Работает?
сейчас уже не получится проверить( завтра попробую, отпишусь. но, вроде, работало
Антон
Работает?
да, работает
Антон
пока что работает только такое извращение: - set_fact: result: "{{ vars[var]['param']['param_var'] }}" - debug: msg: "{{ lookup('vars', 'result') }}"
Oleg
Коллеги, подскажите как в ansible при использовании dynamic inventory (в целом при использовании любого inventory) отлавливать fatal: UNREACHABLE или FAILED и совершать действие на локальном хосте, например добавлять хост в исключение или дергать внешний скрипт?
Oleg
подскажите, а как правильно останавливать выполнение плейбука при определенных условиях, через fail?
Антон
Oleg
failed_when имеете в виду? https://docs.ansible.com/ansible/latest/user_guide/playbooks_error_handling.html
да, но ведь это не то чтобы ошибка, это корректное завершение программы, просто при определенных условиях она не должна дальше выполняться
Антон
если нужно просто выходить из плейбука с нулевым кодом, то можно попробовать ```meta: end_play```и when https://docs.ansible.com/ansible/latest/modules/meta_module.html
Павел П.
Добрый день. Я не понимаю почему ансибл работает) ansible-playbook --version выдает configured module search path = [u'/root/.ansible/plugins/modules', u'/usr/share/ansible/plugins/modules'] Однако таких папок просто нет. Где лежат модули по-умолчанию? find по назвнанию пары модулей (lineinfile, zabbix_host) ничего не дал.
George
gaal@linux-x1:~> ansible-playbook --version ansible-playbook 2.7.10 config file = /etc/ansible/ansible.cfg configured module search path = ['/home/gaal/.ansible/plugins/modules', '/usr/share/ansible/plugins/modules'] ansible python module location = /usr/lib/python3.7/site-packages/ansible executable location = /usr/bin/ansible-playbook python version = 3.7.2 (default, Dec 30 2018, 16:18:15) [GCC]
George
это дополнительные модули
George
остальное в пайтон окружении