
Sander
16.03.2017
22:49:56
поэтому под каждый проект я не делаю плейбук

Igor
16.03.2017
22:50:19
Симлинки на плейбуки?)

Sander
16.03.2017
22:50:28
я просто пишу переменные в group_vars
```
platform__phpfpm: "wordpress"
platform__webserver: "nginx"
platform__database: "mariadb"
```

Igor
16.03.2017
22:50:32
В разных окружениях?

Google

Igor
16.03.2017
22:50:41
Ааа

Sander
16.03.2017
22:50:43
если platform__phpfpm: false, то он контейнер не поставит
я не уверен что я все хорошо делаю
но вариант, городить под каждый проект свой плейбук все токи не лучшая идея, они одинаковые будут (практически)

Igor
16.03.2017
22:51:54
Мне кажется надо использовать hosts_vars и group_vars и роли
И запускать плейбук с ивентори из нужного окружения

Sander
16.03.2017
22:52:26
у меня получается все в group_vars, но наверное там лучше хранить что-то общее
на host_vars, хранить если что-то индивидуальное будет
и roles тоже использую
куда без них

Igor
16.03.2017
22:52:54
У меня одни плейбуки и разные переменные в host_vars/group_vars

Sander
16.03.2017
22:54:14
посмотреть бы

Pavel
16.03.2017
22:56:25

Google

Sander
16.03.2017
22:57:00
я просто долго сидел, и у меня все равно вышло так, что я параметров больше делал и логику небольшую

Pavel
16.03.2017
22:57:54
так параметры только те что разные
а 100500 ролей, как по мне еще хуже

Sander
16.03.2017
22:58:37
у кого-нибудь есть хороший пример ansible, с мультисайтовостью
?

Pavel
16.03.2017
22:59:23

Sander
16.03.2017
22:59:40
можешь показать
а я свой покажу
?

Pavel
16.03.2017
22:59:58
щас меряться начнем ))

Igor
16.03.2017
23:01:37
Как по мне, разбивка задач по ролям офигенна

Pavel
16.03.2017
23:14:49
скомбинировал роли в плкейбуке - получил что угодно на сервере

Igor
16.03.2017
23:15:18
для меня тоже
я в main.yml указываю роли
а по inventories/enviromets/hosts решаю где выполнять и с какими переменными
пароли ip и прочее
*inventories/enviroments/{hosts,group_vars/group,hosts_vars/host}

Google

Igor
16.03.2017
23:18:27
есть каждая роль - это сервис
а в /roles/name/tasks/main.yml указывается hosts: группа хостов
на которой роль выполнять
из inventory файла
и все
при выполнении плейбука каждая роль применяется на нужную группу хостов, каждая группа описана в нужном hosts в нужном iventories со своими переменными
т.е. делаем ansible-playbook -i inentories/enviroments/hosts main.yml
Вжух - и у тебя есть готовое окружение ))
Почему вы против этого не понятно
против ролей т.е.
100500

Pavel
16.03.2017
23:33:23

Pavel
16.03.2017
23:34:42
ну 10, ну 20....
у меня еще и 10 нет

Igor
16.03.2017
23:35:47

Pavel
16.03.2017
23:36:22

Igor
16.03.2017
23:37:06
пример из жизни можно

Pavel
16.03.2017
23:38:41
например nginx-балансировщик и nginx-прокси можно сделать 2 роли, а можно 1, параметризовав в хост-варс
и в зависмости что написано в перемнных накатит нужное

Google

Pavel
16.03.2017
23:39:00
я делаю 1 потому что nginx - сервис, а не прокси-сервис и балансировщик-сервис

Igor
16.03.2017
23:39:38
ну конечно надо юзать переменные к группе хостов и групп
не понятно при чём тут роли
роли используют те переменные, которые есть в группе хостов или в хостах определённого окружения
не понятна проблематика
и поясните проблематику

Pavel
16.03.2017
23:48:09
ну мне не нравится плодить роли на 90% одинаковые, только копи-пастить.... (те 2 роль nginx)

Igor
16.03.2017
23:48:43
при выполнении прейбука укажите нужный файл хостов в нужном окружении

Admin
ERROR: S client not available

Igor
16.03.2017
23:49:38
откуда из окружения подцепятся правильные переменные

Pavel
16.03.2017
23:50:15

Igor
16.03.2017
23:50:37
тогда не понимаю почему надо плодить 2 роли на nginx

Pavel
16.03.2017
23:51:07
так я и говорию, что не надо 100500 ролей

Igor
16.03.2017
23:51:15
если все переменные описываются в окружениях и их {host,group}_ars
ааааа

Sander
16.03.2017
23:51:24
?

Pavel
16.03.2017
23:51:28
надо параметризовать их в переменных

Google

Igor
16.03.2017
23:52:05
я интерпретировал как необходимость писать 100500 ролей, но это хуже, чем их не писать

Pavel
16.03.2017
23:53:33
? разобрались

Igor
16.03.2017
23:53:58
?

Sander
16.03.2017
23:54:13
как взять все group_vars и собрать из них ~/.ssh/config файл.
так как этот вариант работает отвратно:
```
#- hosts: "all"
# tasks:
# - name: "Generate OpenSSH config file"
# shell: "echo '
#host {{ domain }}\n
#HostName {{ host_ip }}\n
#IdentityFile {{ ssh_path }}/{{ domain }}\n
#User webstudio\n\n
#' >> $HOME/.ssh/webstudio/config"
```

Igor
16.03.2017
23:54:23
в них работают подстановки {{ var }}

Sander
16.03.2017
23:55:37
использовать то я умею
но как мне прогнать так, чтоб нормально в файл запислалось

Igor
16.03.2017
23:56:11
модуль template

Sander
16.03.2017
23:56:19
да знаю я
проблема не в этом

Igor
16.03.2017
23:56:27
а в чем

Sander
16.03.2017
23:56:52
как ты возьмешь весь список сайтов со всеми параметрами
и запихнешь в один template?

Igor
16.03.2017
23:56:58
/me openssh конфиг комментит модулем replayce

Sander
16.03.2017
23:57:16
если ты посомтришь мой пример, я каждый раз добавляю в конец файла записи

Igor
16.03.2017
23:57:21
возьму из групп хостов

Sander
16.03.2017
23:57:37
```
echo '
host {{ domain }}\n
HostName {{ host_ip }}\n
IdentityFile {{ ssh_path }}/{{ domain }}\n
User webstudio\n\n
' >> $HOME/.ssh/webstudio/config"
```
как иначе сделать я не знаю

Pavel
16.03.2017
23:58:16
blockinfile посмотри модуль

Igor
16.03.2017
23:58:25
ну, shell юзать точно не стоит