Alexander
Тогда буду переделывать, спасибо
Sergey
Абсолютные пути где?
опять же в ansible.cfg
Sergey
Если нужно коряво и непереносимо.
Alex
не понял, а как они связаны с .env файлом?
Alex
Который считывает docker-compose
Sergey
не понял, а как они связаны с .env файлом?
А отчего ты решил, что они связаны вообще?
Sergey
Я другому Алексу отвечал.
Alex
ааа, сори
Alex
оно само оттуда считывает настройки, что ли?
Есть java приложение, идет вместе с bootstrap скриптом, который генерит .env и docker-compose.yaml. пользователю остается только запустить compose: docker-compose up -d
George
и этого не хочется. так?
Sergey
и этого не хочется. так?
...надо, Федя, надо!... (С)
Alex
Как раз нет. Я дергаю бустрап, проблема только с запуском compose из ансибла
George
конкретнее. Он прекрасно интегрируется через docker_compose модуль
George
допускаю, что .env ищется не в том каталоге - не где лежит сам компоуз-файл
George
а из которого ансибл (временный каталог) запускается на удаленной машине
Ilia
допускаю, что .env ищется не в том каталоге - не где лежит сам компоуз-файл
Если указывается директория проекта через docker-compose/docker-service - то он прекрасно берет .env из той же директории
Alex
Если речь о project_src, то у меня не видит
George
+100500
я бы все равно настаивал переписать скрипт
Alex
В смысле в таске он задан, но при старте .env не считывается
Alex
К сожалению это невозможно от слова совсем
Alex
Ынтерпрайз он такой, суровый
Ilia
Если речь о project_src, то у меня не видит
Хмм. Странно. У меня сходный же в принципе кейс - создаётся отдельная директория - туда из гита тащится docker-compose.yml + подкладывается в эту директорию .env из шаблонов - модуль с вызовом вида docker_service: build: no project_src: "/home/{{ your_variable_here }}" recreate: always state: present отрабатывает корректно
Sergey
Ынтерпрайз он такой, суровый
....как правила чата («Правила, помогающие быстрее получить ответ», п.8)
Alex
Может дело в версии ансибла? У меня 2.7
George
а может в неудачном наборе путей... 🤷‍♂️
Alex
Странно конечно
Alex
а может в неудачном наборе путей... 🤷‍♂️
А что такое неудачный путь? :)
Ilia
Странно конечно
Если мне не врут мои глаза - то Ansible использует Py модуль docker-compose и поднимает проект через вызов project_from_options из данного модуля, с передачей project_src и всех остальных параметров. Сам модуль в свою очередь проверяет в опциях флаги —project-directory и —env-file и на основании их уже строит окружение. В базовом случае, при передаче директории как параметра - он ищет в переданном в качестве параметра каталоге именно файл .env. По логике - если ты просто указываешь каталог директории и там есть .env - должно работать
Ilia
Как то так
Ilia
Поэтому стоит действительно проверить - а что лежит в project_src, если ты его передаешь
George
Насколько мне известно
Ilia
os.path.join(base_dir, '.env')
George
.env компоузом всегда ищется в текущем каталоге
George
Ну, даже если компоуз - в другом
George
У меня смена каталога проекта не помогала
George
🤷‍♂
Alex
# ls -la total 32 drwxr-xr-x 4 1015 1015 4096 Sep 19 11:33 . drwxr-xr-x 3 root root 4096 Sep 19 11:33 .. -rwxrwxrwx 1 1015 1015 855 Sep 19 11:33 .env drwxr-xr-x 4 1015 1015 4096 Sep 19 11:33 bin -rwxrwxrwx 1 1015 1015 428 Sep 18 04:47 docker-compose-db.yaml -rwxrwxrwx 1 1015 1015 2741 Sep 18 04:47 docker-compose-ha.yaml -rwxrwxrwx 1 root root 2760 Sep 19 11:33 docker-compose.yaml drwxr-xr-x 2 root root 4096 Sep 19 11:33 templates
Alex
сам таск простой - name: Start/stop JFMC services become: yes docker_service: project_src: "{{ jfmc_docker_compose_root_dir }}" project_name: jfmc state: present register: docker_compose_result
Ilia
# ls -la total 32 drwxr-xr-x 4 1015 1015 4096 Sep 19 11:33 . drwxr-xr-x 3 root root 4096 Sep 19 11:33 .. -rwxrwxrwx 1 1015 1015 855 Sep 19 11:33 .env drwxr-xr-x 4 1015 1015 4096 Sep 19 11:33 bin -rwxrwxrwx 1 1015 1015 428 Sep 18 04:47 docker-compose-db.yaml -rwxrwxrwx 1 1015 1015 2741 Sep 18 04:47 docker-compose-ha.yaml -rwxrwxrwx 1 root root 2760 Sep 19 11:33 docker-compose.yaml drwxr-xr-x 2 root root 4096 Sep 19 11:33 templates
Очень хочется помочь. Но, увы, указанный кейс, в моём случае, отрабаывается корректно. Могу только предложить проверить - что в самих компоузах лежит и в .env - возможно проблема не в Ansible
Alex
Руками compose отрабатывает нормально
Arminio
Hi guys, I'm looking for an english speaking Telegram chat group, could you help me out?
Arminio
You can use this chat i guess
As long as russian people don't feel offended when I'm asking in english - I only have a russian speaking girlfriend and she will probably refuse to translate all my questions :-)
Arminio
Ok, so I was given an "ansible baseline repository". That's basically used to do basic/initial configuration of some hosts. It looks like this: sh-3.2$ ls README.md handlers meta templates vars defaults library tasks tests sh-3.2$ I still have no idea how to apply this to a specific host with ansible. There are some .yml-Files in tasks/ and I can read them and more or less understand what's being done there, but how do I actually apply those things?
Arminio
README.md says something about ansible-galaxy, but my impression is that ansible-galaxy is for accessing the Ansible Galaxy, not for configuring a bunch of hosts.
Alex
and where is a playbook itself?
Maxim
well, it's a role
Maxim
so you basically put it into <somewhere>/roles, then in <somewhere> you create main.yml (the actual playbook), then assign the roles you have to the hosts you want to configure
Maxim
something like that
Maxim
the point is, the google request for that is "ansible role", further instructions can be found in ansible documentation on roles
Maxim
я не сильно наврал же?
Maxim
в гелакси же роли лежат?
Anonymous
в гелакси же роли лежат?
в галакси можно уже коллекции пихать, не только роли
Maxim
но роли там лежат, хорошо
Timur
Что значит «локальная галактика»?
Timur
Если нужно вытаскивать роли из приватных реп, то ansible-galaxy из любых реп это может делать
Timur
Хоть из гитхаба с гитлабом
Timur
Зачем галактика? Гита не хватает?
Sergey
Баруху запрос кинь, м.б. взлетит.
Sergey
Баруху
Timur
https://galaxyproject.github.io/training-material/topics/admin/tutorials/ansible-galaxy/tutorial.html Не подойдёт?
V.
Привет, подскажите как в инвентори определить для хоста переменную типа список, не нашел в доке
Grigoriy Rochev
скажи пожалуйста, нужно добавить адеса dns серверов на часть машин, через nmcli модуль при изменинии необходимо указатить type интерфейса ,на некоторых машина type ethernet, а на части team, через факты получаю только type: "ether", кто сталкивался как обойти это? Пришла идея прописать кастомный факт на тачки, но есть более простое решение?
Aleksey
другой вариант: all: children: group_name: hosts: host_name: vars: list: - val1 - val2
Aleksey
но вообще советую как можно раньше начинать использовать dynamic inventory, а переменные объявлять в group_vars и host_vars
Aleksey
ну да, просто раз уж именно про inventory спрашивали
Aleksey
в статик инвентори я параметры подключения только храню, порт там ssh нестандартный например
V.
дак я и пытаюсь динамически формировать) из терраформа, просто в ини формате а не в ямле