krakazyabra
всем привет! такой вопрос: в оригинальном конфиг файле приложения есть строка
["host1", "host2"]как с помощью Ансибла заменить эти хосты теми, что в инвенториз? в инвенториз их может быть больше 2, и они могут меняться.
Заранее благдарен)
𝔹𝕠𝕣𝕚𝕤
{{ groups['some inventory group'] | to_json }}
Как то так например
𝔹𝕠𝕣𝕚𝕤
Ну и соответственно через template, lineinfile, blockinfile менять файл
Pavel
всем привет. говорят, что для корректной работы Ансибла необходимо соответствие версий Пайтона, как на машине, где крутится сам Ансибл, так и на машине, на которой он выполняет задачи (если это не локалхост). так ли это? где можно почиать инфу на этот счет?
manefesto
Не. Пофиг
Vladislav 👻
Пускаю с 3.7 по машинам с базовым 2.7
Pavel
хм
Andrey
Pavel
ну вот как бы и мне так кажется
Pavel
но авторитетные люди говорят, что должнгы совпадать версии
Vadim
>авторитетные люди
Rad
а кто нибудь заморачивался с передачей результатов выполнения тасков в системы мониторинга , хочу красиво выводить результат в графану или прометей , если удачно завершилась задача - true , ошибка - false . единственное что нашел это передача через api в графану аннотаций на некий график
Shamil
Всем привет! Ребятушки не подскажите как быть? В ansible 2.7 появился новый модуль https://docs.ansible.com/ansible/devel/modules/docker_swarm_module.html хочу с его помощью создавать кластер сворма, но не могу понять, как сделать так чтобы если кластер уже работает, ансибл не пытался его создать заново?
Shamil
То есть если удалить первую ноду кластера, с которой ансибл берет ключи, потом пересоздать ее и прокатить роль, то весь кластер будет пересобран, а это не катит.
Timur
Timur
Из логстеша можно слать куда угодно почти
Egor
Rad
т.е. в logstash , а уже потом из него , хмм , а это идея, спасибо, попробую
Pavel
Winner
Всем привет !
Winner
Здесь о вакансиях можно писать ?
Anonymous
Andrey
@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
Ждун
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
Vadim
Tama
Ок, тогда другой вопрос. Могу ли я добавить конетйнер в заданную сеть с предопределенным ip
Tama
?
Tama
ну то есть когда контейнер создается ему не надо присваивать ip - а когда присоединяешь к сети - добавить
Alexander
Если я не ошибаюсь если это делает модуль docker, то даже если он создан, у него есть свойство с ип.
Посмотрите на таск в вербоузе.
Sortafreel
Утро доброе) Одна часть плейбука выполняется от рута, потом создаю пользователя, запрещаю логин рута и следующая часть уже от пользователя через sudo.
Вопрос: как сказать Ansible при повторном запуске игнорить часть playbook, которая от рута (отдельная часть от hosts до handles), если она уже была обработана ранее?
Хранить статус в vars не резон, ибо новый же запуск. Выполнять какой-то тест? Можно ли скипнуть при ошибке весь блок playbook (от hosts до handles), если первая задача failed? Или есть более кошерные варианты? Спасибо :)
Nklya
Можно выполнять первую часть только после создания хоста, а не гонять ее постоянно
Nklya
Самый простой вариант имхо
Nklya
Ещё лучше сделать свой образ уже настроенный, и поднимать виртуалки из него
Sortafreel
Самый простой вариант имхо
То есть, по сути, два объединительных плейбука, в одном все импорты, в другом импорты без настройки сервера (ну, без рутовой части). Так, получается?
Nklya
И как связаны докер и отключение логина рута?
Sortafreel
И как связаны докер и отключение логина рута?
ну, сначала настроить сервер, потом установить все базовые зависимости, потом настроить питон, потом настроить докер. Хотя, на самом деле, порядок действительно не имеет значения ведь, плейбуки независимые. Хм...
Sortafreel
Спасибо :)
Nklya
В качестве другого варианта можно сохранить кастомные факты на хост после отключения рута и делать when на них
Sortafreel
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
Roman
тогда как правильно решить задачку:
1. надо найти все каталоги пользователей,
2. в каталогах по регулярке найти файлы,
3. в файлах заменить строки
я сделал
1. find (нашел каталоги юзеров)
2. find with_items (в каталогах нашел файлы)
3. replace with_subelements (по списку найденных файлов побежал менять строки)
оно работает, но если есть вариант как это сделать лучше - с радостью выслушаю