krakazyabra
всем привет! такой вопрос: в оригинальном конфиг файле приложения есть строка ["host1", "host2"]как с помощью Ансибла заменить эти хосты теми, что в инвенториз? в инвенториз их может быть больше 2, и они могут меняться. Заранее благдарен)
𝔹𝕠𝕣𝕚𝕤
{{ groups['some inventory group'] | to_json }} Как то так например
𝔹𝕠𝕣𝕚𝕤
Ну и соответственно через template, lineinfile, blockinfile менять файл
Pavel
всем привет. говорят, что для корректной работы Ансибла необходимо соответствие версий Пайтона, как на машине, где крутится сам Ансибл, так и на машине, на которой он выполняет задачи (если это не локалхост). так ли это? где можно почиать инфу на этот счет?
manefesto
Не. Пофиг
Vladislav 👻
Пускаю с 3.7 по машинам с базовым 2.7
Pavel
хм
Pavel
ну вот как бы и мне так кажется
Pavel
но авторитетные люди говорят, что должнгы совпадать версии
Vadim
>авторитетные люди
Rad
а кто нибудь заморачивался с передачей результатов выполнения тасков в системы мониторинга , хочу красиво выводить результат в графану или прометей , если удачно завершилась задача - true , ошибка - false . единственное что нашел это передача через api в графану аннотаций на некий график
Vladislav 👻
но авторитетные люди говорят, что должнгы совпадать версии
только ради удобства, когда на удаленную машину надо раскатать модуль и проще держать одинаковые
Shamil
Всем привет! Ребятушки не подскажите как быть? В ansible 2.7 появился новый модуль https://docs.ansible.com/ansible/devel/modules/docker_swarm_module.html хочу с его помощью создавать кластер сворма, но не могу понять, как сделать так чтобы если кластер уже работает, ансибл не пытался его создать заново?
Shamil
То есть если удалить первую ноду кластера, с которой ансибл берет ключи, потом пересоздать ее и прокатить роль, то весь кластер будет пересобран, а это не катит.
Rad
Можно в логстеш слать через callback plugin
спсибо, это видел, хотел найти что-то для grafana или prometheus
Timur
Из логстеша можно слать куда угодно почти
Rad
т.е. в logstash , а уже потом из него , хмм , а это идея, спасибо, попробую
Winner
Всем привет !
Winner
Здесь о вакансиях можно писать ?
Andrey
@devops_jobs кстати
Anonymous
@devops_jobs кстати
Ну может там на кассу в пятерочку
Andrey
Маловероятно
Timur
Требуется кассир со знанием Ansible и Python
Timur
Tama
И грузчик со знанием Docker
Sergey
и погрузчик со знанием композа
Victor
Лингвист со знанием автокада
Bandikoot
стюардесса с опытом aws/kubernetes
Victor
Официант со знанием terraform
Ждун
spiders are the only web developers that are happy to find bugs
Evgeny
Парни, есть возможность выводить время запуска команд? Копаясь нашел только что ансибл может cowsay
Ждун
Парни, есть возможность выводить время запуска команд? Копаясь нашел только что ансибл может cowsay
немного не то, но тоже интересно пробовали в ansible.cfg прописать callback_whitelist = profile_tasks ?
Evgeny
Попробую плагин profile_tasks не прописывал
Ждун
он покажет сколько какой таск выполнялся
Evgeny
Сейчас попробовал профайл и прям хорошо Спасибо 👍🏻
Pavel
А подскажите как роли с ансибл-гэлэкси включать в свой плейбук? например roles: - roles/myrole1 - roles/myrole2 - а тут как-то галаксю всунуть
hackru
я просто добавлял сабмодули с гитхаба
hackru
но это от нехватки времени на разобраться
Aleksei
Проще всего через requirements скачать и включать как обычную роль
Evgeny
Через реквайресентс устанавливай локально с флагом -p roles
Pavel
спасибо, попробую
Tama
Добрый вечер.
Tama
Нужно получить ip адрес контейнера для того, чтобы использовать его в следующей команде плейбука. Не подскажете, какие варианты можно использовать? Нашёл только такой пример использования, но как применить его в плейбуке - ума не приложу ( shell: "docker inspect --format '{''{ .NetworkSettings.IPAddress }''}' consul"
Vadim
https://docs.docker.com/engine/reference/commandline/inspect/#get-an-instances-ip-address
Tama
это я в курсе,что такое есть, но как оттуда выделить ip адрес и вставить его в другой таск плейбука?
Vadim
https://docs.ansible.com/ansible/2.7/user_guide/playbooks_variables.html#registering-variables
Tama
Ок, тогда другой вопрос. Могу ли я добавить конетйнер в заданную сеть с предопределенным ip
Tama
?
Tama
ну то есть когда контейнер создается ему не надо присваивать ip - а когда присоединяешь к сети - добавить
Alexander
Если я не ошибаюсь если это делает модуль docker, то даже если он создан, у него есть свойство с ип. Посмотрите на таск в вербоузе.
Sortafreel
Утро доброе) Одна часть плейбука выполняется от рута, потом создаю пользователя, запрещаю логин рута и следующая часть уже от пользователя через sudo. Вопрос: как сказать Ansible при повторном запуске игнорить часть playbook, которая от рута (отдельная часть от hosts до handles), если она уже была обработана ранее? Хранить статус в vars не резон, ибо новый же запуск. Выполнять какой-то тест? Можно ли скипнуть при ошибке весь блок playbook (от hosts до handles), если первая задача failed? Или есть более кошерные варианты? Спасибо :)
Nklya
Можно выполнять первую часть только после создания хоста, а не гонять ее постоянно
Sortafreel
Можно выполнять первую часть только после создания хоста, а не гонять ее постоянно
То есть, просто использовать разные плейбуки? Ну, разные наборы плейбуков? Я очень нуб, прошу объяснять именно логику, с реализацией разберусь :)
Nklya
Самый простой вариант имхо
Nklya
Ещё лучше сделать свой образ уже настроенный, и поднимать виртуалки из него
Sortafreel
Ещё лучше сделать свой образ уже настроенный, и поднимать виртуалки из него
Ну, тут не факт. Есть, образно, 8 плейбуков. Одна подымает настраивает докер, вторая python/flask, третья git и копирует репозиторий. И для отдельных задач нужны далеко не все.
Sortafreel
Самый простой вариант имхо
То есть, по сути, два объединительных плейбука, в одном все импорты, в другом импорты без настройки сервера (ну, без рутовой части). Так, получается?
Nklya
И как связаны докер и отключение логина рута?
Sortafreel
И как связаны докер и отключение логина рута?
ну, сначала настроить сервер, потом установить все базовые зависимости, потом настроить питон, потом настроить докер. Хотя, на самом деле, порядок действительно не имеет значения ведь, плейбуки независимые. Хм...
Sortafreel
Спасибо :)
Nklya
В качестве другого варианта можно сохранить кастомные факты на хост после отключения рута и делать when на них
Nklya
https://yandex.ru/search/touch/?clid=1906591&text=ansible%20custom%20facts&lr=213
Sortafreel
а, именно так и называются. понял, вникну, еще раз спасибо :)
Nklya
You're welcome
Vadim
https://blog.tomecek.net/post/road-to-ansible-bender-0-2-0/ ansible-container умер, но дело его живет
Nklya
Откопали таки стюардессу))
Vadim
отряд не заметил потери бойца :)
Roman
Добрый вечер, заблудился в массивах, помогите выбраться)) тут кусок плейбука и вывод (убрал весь мусор): https://paste.fedoraproject.org/paste/8YjB6FXZXtEYDtlBp1mChQ надо добраться до cfg_files.results.files.path
Roman
никак не могу внутрь массива files залезь через item
Roman
сам отвечу, оказывается есть такая штука - with_subelements - debug: msg: "{{ item.1.path }}" with_subelements: - "{{ cfg_files.results }}" - files
Victor
Добрый вечер, заблудился в массивах, помогите выбраться)) тут кусок плейбука и вывод (убрал весь мусор): https://paste.fedoraproject.org/paste/8YjB6FXZXtEYDtlBp1mChQ надо добраться до cfg_files.results.files.path
Выбери сам: Не используй массивы. Ну или не используй их так глубоко. Или как вариант фильтровать, мапить и редьюсить. Субэлементы мне понадобились на второй день использования анзибла. А после ни разу. Не усложняй.
Roman
тогда как правильно решить задачку: 1. надо найти все каталоги пользователей, 2. в каталогах по регулярке найти файлы, 3. в файлах заменить строки я сделал 1. find (нашел каталоги юзеров) 2. find with_items (в каталогах нашел файлы) 3. replace with_subelements (по списку найденных файлов побежал менять строки) оно работает, но если есть вариант как это сделать лучше - с радостью выслушаю