@pro_ansible

Страница 595 из 625
Zhiganov
05.10.2018
15:08:56
я тоже так не хочу делать, но дело в том что нужно все это раскатать на среде ограниченой с доступом в интернет и сижу думаю как бы автоматически собрать pymongo

shell это точка отхода когда не придумаю как собрать модуль питона

Victor
05.10.2018
15:10:04
Я к тому что из официальных реп дебиана меня, например, монга не устроила

Google
Zhiganov
05.10.2018
15:10:35
сам монго поставлен, но когда начинаю юзать mongo_users ругается что нету pymongo

Victor
05.10.2018
15:11:10
У меня проблемы были вроде дальше, чем pymongo

Zhiganov
05.10.2018
15:11:25
у меня там локальный yum repa и я отуда тяну рпм, но что бы поставить pymongo нужно кучу депов выкачать что бы поставить pymongo

Victor
05.10.2018
15:12:26
Feel your pain

Vladislav
05.10.2018
15:40:47
Best practices У них лежат же
спасибо, читал, но так и не сильно разобрался с variables, но пытаюсь именно так и использовать

Egor
05.10.2018
15:42:25
спасибо, читал, но так и не сильно разобрался с variables, но пытаюсь именно так и использовать
Можешь как альтернативу глянуть открытые проекты с Github - посмотреть как они используют inventory. Возможно это поможет.

Vladislav
05.10.2018
15:42:57
вот это я гуглил-гуглид, да не нашел ничего такого )

только ansible examples, что мало чем помогло

Nikolay
05.10.2018
15:43:43
Ну и зачем оно
Ну есть, например человек А, далекий от шелла, но кое какие задачи ему нужно выполнять и чтобы он не мучился с mc и прочей нечестью, проще ему написать плейбук и сказать «жми сюда и жди сообщение, что все окей», ну и самому зачем дергать все руками, когда можно не дёргать

Google
Nikolay
05.10.2018
15:46:19
inqfen
05.10.2018
15:46:39
Так а ими можно и не только деплоить

Vladislav
05.10.2018
15:46:53
Ещё раз cd изобретают?
А подскажи, пожалуйста, если нужен репозиторий (один) с ansible данными чтобы деплоить штук 6 проектов, у каждого там и stage, и production, etc, то структуру папок из best practices лучше будет поменять ?

Nikolay
05.10.2018
15:46:55
Так а зачем?

inqfen
05.10.2018
15:47:40
Есть проект a

Или разные инвентори

В зависимости от проекта

У меня вот разные инвентори

Vladislav
05.10.2018
15:48:39
такой вариант подойдет по структуре ?

(я еще не сильно въехал, но не хотел бы допустить ошибку и все переделывать)

для развертывания каждого проекта использовать свой .yml файл хочу, для bfn - bfn_api.yml

inqfen
05.10.2018
15:50:25
такой вариант подойдет по структуре ?
Да, только всякие хост варс выпиливай по максимуму

для развертывания каждого проекта использовать свой .yml файл хочу, для bfn - bfn_api.yml
А потом ты в одном проекте что-то поменял, а в другом нет и думаешь как бы ужа с носорогом скрестить

Проджект специфик вещи и уноси в проекты

Я с этим тоже уже наебался

Vladislav
05.10.2018
15:51:53
ок, спасибо, буду пробовать

Google
inqfen
05.10.2018
15:53:00
если есть общие наборы тасков (билд симфони например) - выделяй в роли

А в проектах их уже импортируй

Так а зачем?
Ну, как правило если требуется подобная система, то CI/CD есть или уже назревает

А это дублирование функционала

Vladislav
05.10.2018
15:54:23
да, спасибо, все (почти) проекты по одному шаблону построены и чтобы их на stage залить, нужны почти одни и те же шаги, только с разными variables

inqfen
05.10.2018
15:55:10
Ну вот, сделай роль deploy например, в каждом проекте заведи свои инвентори и плейбуки и в плейбуке просто импортируй роль

Роль выкини в отдельный репозиторий и забирай перед стартом плейбука через ansible-galaxy

Зато потом не придется трахаться если нужно для всех проектов внести изменение (типа шиблон докер файла изменить или ключи при деплое где-то), а везде все отдельно

inqfen
05.10.2018
15:56:48
внес в роль - все подхватили

Если у роли есть версионирование - внес в роль, сделал новый тег

Vladislav
05.10.2018
15:57:13
inqfen
05.10.2018
15:57:25
Потом огда в проектах вносишь необходимое изменение - указал новую версию роли для импорта

Vladislav
05.10.2018
15:58:02
Потом огда в проектах вносишь необходимое изменение - указал новую версию роли для импорта
так раньше было (только у нас были шелл-скрипты), мне нужно сделать подобное только с ansible

в одном скрипте все проекты, ./deploy.sh bfn_api и он делал всю работу

а мне нужно одну репу на все проекты, только чтобы разными командами их запускать

inqfen
05.10.2018
15:58:42
так раньше было (только у нас были шелл-скрипты), мне нужно сделать подобное только с ansible
Ну, тогда подобное имеет право на жизнь. Но когда я такое видел, это значило как правило, что тут CD уже как бы прямо в двери стучится

Потому что был костыль

А ты костыль причесываешь

Google
inqfen
05.10.2018
15:59:40
Меняешь деревянную перекладину на металлическую

Vladislav
05.10.2018
15:59:45
)

inqfen
05.10.2018
15:59:48
Но это все равно костыль

Vladislav
05.10.2018
16:00:01
а ты предлагаешь отдельный реп заводить для деплоя отдельного проекта ?

inqfen
05.10.2018
16:00:28
нет, почему, все, что относится к проекту - складывать в проект

Vladislav
05.10.2018
16:00:31
и сделать один реп с общими данными для каждого проекта ? (где шаги деплоя описаны)

Admin
ERROR: S client not available

inqfen
05.10.2018
16:00:41
создаешь в нем директорию deploy

там заводишь inventory

playbook, ключи на серверы, еще что-то

А вот роли деплоя выносишь отдельно

Иначе вот у тебя например 10 проектов, все разворачивались одинаково

Egor
05.10.2018
16:01:37
только ansible examples, что мало чем помогло
У Fedora в открытом доступе лежит очень много внутренней кухни на Ansible

Vladislav
05.10.2018
16:02:03
ага, понял, ну я попробую сначало чтобы оно заработало хоть как-то, а потом уже просто вынесу отдельно в проекты inventory

inqfen
05.10.2018
16:02:06
Потом в один проект например добавили новую БД

inqfen
05.10.2018
16:02:11
А остальным она не нужна

Kirill
05.10.2018
16:02:22
inqfen
05.10.2018
16:02:25
и что, будешь when пихать?

а в другой добавили redis

Google
inqfen
05.10.2018
16:02:39
а в третий еще что-то

Vladislav
05.10.2018
16:03:13
ок, т.е. общие таски в отдельный реп, специфичные для проекта - вместе с проектом, верно ?

inqfen
05.10.2018
16:03:33
из общих тасков делаешь роль и ее отдельно

Остальное в проект

потом плейбуки получатся типа - hosts: project1 tasks: - name: include postges role include_role: postges - name: include redis role include_role: redis - name: include deploy role include_role: deploy - hosts: project2 tasks: - name: include mysql role include_role: mysql - name: include elascticsearch role include_role: elasticsearch - name: include deploy role include_role: deploy - name: make migrations shell: docker exec project d:m:m

Ну что-то типа вроде

И не будет лабиринтов из это делать это не делать, деплой апдейтится несовместимо (убирается таск например) - нужно все проекты одновременно подстраивать

Vladislav
05.10.2018
16:08:51
ага, понял, ок, именно так тогда и буду пробовать сделать

Egor
05.10.2018
16:10:00
Дайте федора гит :))
https://infrastructure.fedoraproject.org/cgit/ansible.git/tree/

Zhiganov
05.10.2018
16:10:11
Спасибо ;)

inqfen
05.10.2018
16:13:04
Vladislav
05.10.2018
16:14:09
Как делать роли - посмотри в ansible galaxy
спасибо, я еще в нем не разобрался, пока смотрел только в туториале

inqfen
05.10.2018
16:14:40
Разберись, очень пригодится, он простой

Egor
05.10.2018
16:15:00
спасибо, я еще в нем не разобрался, пока смотрел только в туториале
https://github.com/geerlingguy Вот этот парень неплохо пишет роли

Vladislav
05.10.2018
16:15:34
Rgboy
05.10.2018
16:44:32
Ребят, из тех кто пользует ansible из docker, вам встречались подводные камни ?

Страница 595 из 625