Ib2828
сегодня нет
Salem
лол)) описание 🔥
Salem
скорее всего прав на какой-то файл не хватает
Salem
проверь все файловые операции в плейбуке
Ib2828
хм щас пошло
Ib2828
удалил папку .ansible у себя в домашней директории
Ib2828
на удаленном сервере
+_-
Всем привет.
Вопрос по ансиблу не как по средству управления конфигурацией, а как про тулзу которой удобно обойти много серверов.
Есть список путей к директориям в файле.
Если эта директория есть на сервере, надо записать имя сервера и путь в другой, локальный файл
+_-
Как это проще всего реализовать?
Wolfodev
а зачем юзать ansible для этого?
лучше bash скрипт накидать
+_-
+_-
Просто башем по сотне серваков не оч удобно бегать
+_-
ну ещё можно башсинблом
Salem
https://docs.ansible.com/ansible/latest/modules/shell_module.html
+_-
Wolfodev
а как через shell модуль можно это сделать?
Wolfodev
я думаю лучше попробовать через темплейты
+_-
Ладно, забейте.
Я просто начал делать через модули, и понял что пц.
А через башсинбл уже работает.
Dmitry
а нет ли у ансибла какой-нить компиляции, там... не знаю
просто полностью отскипанные таски все-равно занимают 0.3-0.4 секунды...
Anonymous
Dmitry
Anonymous
Он ускорит процесс в целом. Или задача заключается только в том, чтобы скипы быстрее проходили?)
Div
можно нубский вопрос? митоген можно использовать из pip репы или обязательно с офф сайта?
Lamobot
Sergey
Div
Alex
Sergey
митоген это страдание?
Да. Ну или, скорее, восседание на измене: никогда не знаешь, после какого обновления взорвётся.
Div
эх, опять не дадут поиграть с новинками. вечно все взрывается и ломается...
Sergey
Да играй, пожалуйста, только в прод не тащи 😊
Div
у меня по сути нет ансибля в проде. все мое. ломай не хочу.
Sergey
Div
не совсем. ломать уже построенное это как молотком по пальцам из любопытства. больно и жалко.
Div
ну его этот митоген. буду страдать другим способом.
Div
и всетаки, как его кошерно ставить? из pip или с офф сайта?
Div
может и так пострадаю чучуть.
Anonymous
Div
спасибо.
Alex
А в vars можно как то объединять ключи в словаре, чтобы не дублировать данные?
Например, вместо
my_dict1:
key1:
subkey1: val1
subkey2: val2
key2:
subkey1: val1
subkey2: val2
использовать что то типа
my_dict1:
key1:
key2:
subkey1: val1
subkey2: val2
?
Timur
Timur
Можно делать anchoring средствами YAML
Timur
https://docs.ansible.com/ansible/latest/user_guide/playbooks_advanced_syntax.html#sts=YAML%20anchors%20and%20aliases:%20sharing%20variable%20values%C2%B6
Alex
citius
Насчёт как ставить - у меня например все ансибл проекты построены на базе одного скелет-проекта в который засунуты нужные плагины, в т.ч. и митоген.
Тестится в нем и обновляются потом по надобности из этого скелета.
citius
citius
И митоген экономит просто адово время.
citius
Багов и взрывов не ловил ни разу, надо только при мажорном обновлении ансибла дожидаться релиза митогена, если он будет несовместим, это есть в ридми.
Alex
поэтому и говорю - что очень сильно от специфики пректа/окружения зависит
Alex
не стоит полагаться на него - как на чудо
citius
Так есессно, любой инструмент зависит :)
Но бояться его из-за мифических багов и отстреливать походя на подлёте - глупо.
Alex
я кстати тоже наступил на 3-4 граблей, при переходе на митоген
citius
Alex
Div
GithubReleases
ansible/ansible tagged: v2.9.7
Link: https://github.com/ansible/ansible/releases/tag/v2.9.7
Release notes:
New release v2.9.7
Anonymous
Доброго утра!
Коллеги, есть задача которую никак не могу решить.
Необходимо через ansible на удалённой машине в docker-контейнере выполнить плейбук.
И у меня получается какая-то хрень.
Всю ночь уже бьюсь с этой задачей и никак не выходит.
Перечитал по-моему про все модули, связанные с docker. Но решения не нашёл.
Есть удалённый хост 192.168.10.200
Из файла inventories
office:
hosts:
192.168.10.200:
Вот часть плейбука
- name: Create db and users for PgSQL
hosts: "{{ TARGETS }}"
remote_user: username
become: no
vars:
ansible_connection: docker
ansible_docker_host: postgresql
roles:
- local.env.postgres
Запускаю так
ansible-playbook -vvv playbooks/ent.bumq.env --extra-vars "TARGETS=office"
Понимаю, что не много криво, но пока тестирую.
На выходе получаю лог
Pipelining is enabled.
<192.168.10.200> ESTABLISH DOCKER CONNECTION FOR USER: username
<192.168.10.200> EXEC ['/usr/bin/docker', 'exec', '-u', u'username', '-i', u'192.168.10.200', u'/bin/sh', '-c', u"/bin/sh -c '/usr/bin/python3 && sleep 0'"]
fatal: [192.168.10.200]: FAILED! => {
"changed": false,
"module_stderr": "Error: No such container: 192.168.10.200\n",
"module_stdout": "",
"msg": "MODULE FAILURE\nSee stdout/stderr for the exact error",
"rc": 1
}
То есть к хосту он подключается, но ищет контейнер с именем хоста как в hosts прописано.
То есть ansible_docker_host он игнорирует
Если заменить на ansible_host, то начинает подключаться к локальному докеру на машине с ansible.
Подскажите, как эту задачу решить правильно
Vladislav 👻
Непонятно, что вы хотите
Vladislav 👻
И непонятно, что у вас происходит, все что вы написали, не особо интересно, с точки зрения разработки в ансибл
Anonymous
Непонятно, что вы хотите
Мне необходимо выполнить свой плейбук в docker-контейнере на удалённой машине.
Я пытаюсь подключиться к этому контейнеру через ansible_connection=docker после подключения к удалённой машине по ssh
Что именно вам не понятно?
Уточните вопрос.
Вероятно я, после бессонной ночи, уже плохо формулирую свои мысли
Anonymous
Локально у меня всё работает.
Но подключиться к docker-контейнеру на удалённой машине я не могу
Vladislav 👻
Anonymous
а как вы к контейнеру собираетесь подключаться?
Вот в этом у меня возник вопрос.
Локально я подключаюсь как раз с использованием следующего
connection: docker
vars:
ansible_host: postgresql
Но с удалённой машиной так не работает.
Точнее работает, если я в hosts укажу имя удалённой машины тоже postgresql.
Но это не есть хорошо.
Мне нужно, чтобы я мог подключиться к машине с произвольным именем и ip-адресом, но, на ней, к контейнеру postgresql
Vladislav 👻
удаленно получается цепочка подключений 🤔
Lamobot
Vladislav 👻
Нашел вот такую иссушку: https://github.com/ansible/ansible/issues/36698
Anonymous
Lamobot
Там открыт 2795 без ssl
https://docs.ansible.com/ansible/latest/scenario_guides/guide_docker.html#parameters
Lamobot
Тогда в docker_host нужно указать endpoint
Anonymous
Благодарю.
Попробую
Lamobot
Благодарю.
Попробую
Как бы он с локальной машины будет ходить в docker endpoint, а не коннектиться и потом в сокет стучаться.
Prostotak
Привет, может у кого есть статья какая, где объясняется как стягивать из gitlab артефакты с помощью ansible?
Gleb
а что нужно объяснить? получаешь из апи гитлаба ссылку на последний артифакт проекта, дальше скачиваешь его так же штатным модулем для скачивания файлов
ShadoWalkeR
https://docs.ansible.com/ansible/latest/modules/git_module.html
Prostotak
спасибо
Gleb
ShadoWalkeR
Пусть учится читать документацию - этот навык никогда не бывает лишним