George
Может версии софта «плывут», ты же наверняка не сам операционку наливаешь? И это происходит в разные моменты времени?
Sova
Сервера постоянно создаются новые, удаляются старые - накатываются одним плейбуком, уже довольно долгое время
Sova
sudoers 1 в 1, ибо из шаблона генерится, даже не знаю уже, куда смотреть..
Sova
Гугл подсказал только то, что я не одинок - трабла такая еще у некоторых проявлялась, но решения так и не нашли\не выложили
George
Возможно селинукс или ещё какая-то срань, но если образы каждый раз разные, то сорян
Sova
Образ системы одинаковый, selinux отрубается по дефолту, софт накатывается одним и тем же плейбуком.. У меня уже идеи закончились, в какую сторону копать :(
George
Врубай отладочные режимы и вербозити
Sergey
Всем привет. Уже некоторое время не могу понять, в чем лажа - буду крайне признателен, если кто подскажет. Суть в чем - есть довольно много серверов у разных хостеров, авторизация по юзеру + ключу. Все прекрасно работает у всех хостеров, кроме одного. Ансибл просто не выполняет комманды из-под рута, причем это не постоянно - а попадается один сервер из 5ти например, но только у этого хостера ( servers.com ). Т.е. изначально ансибл не может закинуть tmp файлы в /root/.ansible/ ( что логично, ибо он пытается это сделать из-под обычного юзера ), ну и на этом все. Причем, если вызывать команды через ansible -m shell -a "whoami" - получаем, что ансибл успешно становится рутом. Гуглил довольно много, испробывал разные варианты прописывания become, become_method - но ничего не помогло. Единственное, на что могу грешить - delegate_to в плейбуках, но с другой стороны - проблема реально только у единственного хостера. - name: Check NGINX config files shell: nginx -t register: nginx_retcode delegate_to: "{{ item }}" with_items: "{{ my_servers_list }}"
Слушай, что это за такое вообще? Это же башсибл! В плеях параметр hosts, интересно, для чего служит, как ты считаешь?
Sova
Слушай, что это за такое вообще? Это же башсибл! В плеях параметр hosts, интересно, для чего служит, как ты считаешь?
Ну, мне нужно одной плейбукой сконфигурить порядка 10ти хостов, которые имеют свойство менятся, чему способствует delegate_to
Sergey
Ну, мне нужно одной плейбукой сконфигурить порядка 10ти хостов, которые имеют свойство менятся, чему способствует delegate_to
В общем, ты хочешь странного, так IaaC не делается. Ну и sudoers тут тем более не при делах. Для Ансибла надо либо sudo на ALL или /usr/bin/python *, либо непосредственно в команде в shell указывать.
Sova
В общем, ты хочешь странного, так IaaC не делается. Ну и sudoers тут тем более не при делах. Для Ансибла надо либо sudo на ALL или /usr/bin/python *, либо непосредственно в команде в shell указывать.
Ну, в теории не делается, но на практике - именно в этой ситуации так пришлось. За наводку на /usr/bin/python спасибо, попробую. Shell юзается только для nginx -t - остальное на модулях ансибла, привел как самый крафткий пример с delegate_to по листу
H
Добрый день всем
H
посоветуйте норм книгу,для подготовки к экзамену
Aleksey
Ребята, кто нить уже в коллекции погрузился? есть чего почитать? а то я два раза уже пробовал без особого успеха. то молекула не клеится то усы отклеиваются
Aleksey
@tnt4brain ? @gecube @tgadiev
Aleksey
конечно 2.9
Sergey
Кому нужны коллекции?
Aleksey
мне нужен to_toml
Sergey
мне нужен to_toml
Фильтр, что ли?
Aleksey
я сейчас его кладу в filter_plugins
Aleksey
но я хочу по красоте
Sergey
Ну вот да, я только хотел написать.
Sergey
По красоте - это именно так.
Aleksey
а я знаю что ты такое хочешь написать.
Sergey
😆👍
Aleksey
но по красоте это через колекции. иначе появляется в ci дурацкий шаг с pip3 install -r python_requirements.txt --no-cache-dir
Sergey
Ты затаскиваешь зависимость от внешней балалайки из Интернета, или у тебя локальный pypa-кэш есть?
Aleksey
артифактори. но речь не об этом правда да?
Aleksey
и в том и в другом случае нужно затаскивать библиотеку питона toml
Aleksey
вопрос в том кто это будет делать и как это будет обёрнуто
Aleksey
и кто будет менеджить версию этой библиотеки
Aleksey
А почему не ansible-galaxy collection install ?
вот потому что не получается. есть чо почитать ?
Vlad
Кроме https://docs.ansible.com/ansible/latest/user_guide/collections_using.html нет
Aleksey
только не спрашивай чо не получается. :) вопрос про доку а не про мою сборку.
Sergey
А почему не ansible-galaxy collection install ?
Потому что из Интернета жи.
George
Потому что из Интернета жи.
А они в корп прокси не умеют, что ли ? 🙀
Aleksey
Потому что из Интернета жи.
а вот так из интернета или уже нет ? requirements.yaml collections: - name: somename scm: git src: https://gitlab-ci-token:${CI_JOB_TOKEN}@gitlab.xxx/ version: 0.1.2
Sergey
а вот так из интернета или уже нет ? requirements.yaml collections: - name: somename scm: git src: https://gitlab-ci-token:${CI_JOB_TOKEN}@gitlab.xxx/ version: 0.1.2
Надо код смотреть. Но по идее тебе, насколько я понимаю, нужен свой внутренний galaxy-сервер (сюрприз-сюрприз!).
Aleksey
галакси сервер это витрина же
Aleksey
он ничего особого не делает
Sergey
А с чего ты взял вообще, что так должно работать, как ты написал?
Sergey
Я вот что вижу: source: 'The Galaxy URL to pull the collection from (default: ``--api-server`` from cmdline)'
Vlad
Попробовал сделать requirements.yml collections: - name: community.general scm: git src: https://github.com/ansible-collections/community.general.git version: 1.0.0 и успешно загрузил коллекции ansible-galaxy collection install -r requirements.yml
Vlad
По-умолчанию загружаются в ~/.ansible/collections/ansible_collections/
Aleksey
да. пусть с этим умолчанием одна из хреней
Aleksey
Но в интернет-то он у тебя полез ;-)
путь можно поменять чо
Aleksey
переменные окружения в requirements.yaml не работают. тоже решается
Aleksey
envsubst < ansible/requirements.tmpl > ansible/requirements.yaml в ci. только не надо тут что это кривота. альтернативы хуже
Sergey
путь можно поменять чо
Ты не понял. Даже с приведённым файлом ansible-galaxy полез в Интернет, на galaxy.ansible.com.
Sergey
Тут уже была такая история.
Sergey
Напиши в /etc/hosts 127.0.0.1 galaxy.ansible.com и запусти вот то, что там сверху было, и сделай так: O_o
Sergey
Лечится это понятием своего Galaxy-сервера :-D и указанием его в параметрах.
Sergey
Сильно лучше, чем "кинуть в filter_plugins" ?
Aleksey
дак кинуть не достаточно же
Sergey
Ну см. выше тогда - тебя ждёт увлекательная история с отламыванием вендорлока.
Vladislav 👻
А напомните пожалуйста, вроде же нельзя оперировать подменой файла на уровне инвентори? Т.е. только через переменную и темплейт делать?
Vladislav 👻
ну например в роли есть example.txt, для каждого инвентори он должен быть свой
Vladislav 👻
ну или группы/хоста, в этом плане суть не меняется
Aleksey
интересно чо он от туда хочит
Aleksey
пойду почитаю
Sergey
Aleksey
вендорлокнуться :-)
https://github.com/ansible/ansible/issues/61680
Aleksey
https://github.com/ansible/ansible/pull/69154
Aleksey
короч в 2.9 хрен
Aleksey
а в 2.10 должно
Aleksey
ERROR: No matching distribution found for ansible==2.10.0 чо ?
Aleksey
2.9.12, 2.10.0a1, 2.10.0a2, 2.10.0a3, 2.10.0a4, 2.10.0a5, 2.10.0a6, 2.10.0a7, 2.10.0a8, 2.10.0a9
Aleksey
ffffffuck
Aleksey
короче в 2.10 всё прекрасно ставится с 127.0.0.1 galaxy.ansible.com namespace при этом берется из galaxy.yml а вот версию из оного брать не получается. она берется по тегу git
Aleksey
прошлые мои попытки были на 2.9.9 и там ничо не работало.
Aleksey
на 2.9.12 всё ок. поведение идентичное 2.10