
Max
19.06.2017
14:47:02
в жтом случае сервера в группах должны быть разные

Sander
19.06.2017
14:47:27
видимо потому что сервера одинакове в группах, поэтому такая ерунда

Max
19.06.2017
14:47:35
ессно

Sander
19.06.2017
14:47:41
но у меня сервера в группах будут одинаковые, в этом и пробелма

Google

Max
19.06.2017
14:47:54
этого быть не должно - смысл в этих группах где
перенеси переменные из групп в плейбуки

Sander
19.06.2017
14:48:18
ну вот так у нас устроено, один сервер где несколько сайтов

Max
19.06.2017
14:48:31
и чего?
переменные - в плейбуки....

Sander
19.06.2017
14:48:46
1) перенести group_vars -> playbook

Max
19.06.2017
14:48:51
да
всё, достаточно
и плейбук будет типа такой

Sander
19.06.2017
14:50:18
2) я надеюсь если я сделаю - playbook deploy:group1.yml
и вот такую группу
[group1]
host1 ansible_user=vagrant
host2 ansible_user=vagrant----
то он сможет выполнить работу на эти два hosts, которые указаны в группе.

Max
19.06.2017
14:50:38
---
name: deploy prod
hosts: group1
roles:
- my_awesome_site
vars:
var1: ...
var2: ...
var3: ...
сможет, но юзера тоже можно прописать в плейбук )
ну с юзером пофиг

Google

Sander
19.06.2017
14:51:45
я обычно в файле inventoreis/vagrant/hosts прописываю user, ssh port и так далее
у тебя в примере выше, hosts: {{ тут именно хост, группу можно? }}
во

Max
19.06.2017
14:52:09
твоё право
можно

Sander
19.06.2017
14:52:16
и еще вопрос если можно
vars: почему они снизу? я сверху обычно ставил
или тут все равно

Max
19.06.2017
14:53:07
декларативный подход
название, хосты, роли, параметры
всё по порядку
For starters, here’s a playbook that contains just one play:
---
- hosts: webservers
vars:
http_port: 80
max_clients: 200
remote_user: root
tasks:
- name: ensure apache is at the latest version
yum: name=httpd state=latest
- name: write the apache config file
template: src=/srv/httpd.j2 dest=/etc/httpd.conf
notify:
- restart apache
- name: ensure apache is running (and enable it at boot)
service: name=httpd state=started enabled=yes
handlers:
- name: restart apache
service: name=httpd state=restarted
вот те из интро в плейбуки выдержка

Sander
19.06.2017
14:55:06
не удобно, то что мне придется делать куча плейбуков,
так я подхватывал inventory, который хватал мне нужные параметры.
а вторым я запускал playbook, что позволялао делать один playbook, для vagrant,dev,stage,prod.
ansible-playbook -i inventories/vagrant deploy.ymlа так придется делать для всего этого по 4 плейбка.

Max
19.06.2017
14:55:26
для этого придуманы роли
много плейбуков это нормально, оно тебе позволяет катить только то что нужно

Sander
19.06.2017
14:56:15
просто много дублей будет, действия то везде одинаковые

Max
19.06.2017
14:56:28
таски что ли?

Sander
19.06.2017
14:56:48
roles везде одинаковые почти, меняются только параметры

Max
19.06.2017
14:57:02
шта

Google

Max
19.06.2017
14:57:19
role - это набор tasks

Sander
19.06.2017
14:57:29
роли одинаковые, просто у каждого сайта чуть другой путь,
конфиги, кому-то не нужно делать composer install

Max
19.06.2017
14:57:32
handlers, templates etc

Sander
19.06.2017
14:57:34
да

Max
19.06.2017
14:57:45
и что тебя смущает?

Sander
19.06.2017
14:58:10
то что придется копипейстить плейбуки

Max
19.06.2017
14:58:29
а так ты копипастишь переменные в групах

Sander
19.06.2017
15:08:26
надеюсь больше ничего не поссыпиться
например из-за таких переменных
cache_folders:
- "{{ deploy_path }}/current/storage/framework/cache"

Алексей
19.06.2017
15:09:05
А что значит deploy:group1.yml ?

Sander
19.06.2017
15:11:11
чтоб понятно было что человек деплоит,
deploy:antibrak:stage.yml
если есть предложения получше, то буду только рад

Konstantin
19.06.2017
15:13:13
А что тут значат deploy, antibrak -? Это же не название файла?

Алексей
19.06.2017
15:13:17
это просто имя файла, затупил

Konstantin
19.06.2017
15:14:13
В именах можно двоеточие?)
Я за 15 лет ни разу не видел-пробовал, кек

Sander
19.06.2017
15:15:07
[WARNING]: Found variable using reserved name: nameна что он лает

Max
19.06.2017
15:15:37
на то что нехуй юзать имена которые в резерве\

Sander
19.06.2017
15:15:55
на переменную name видать
черт

Google

Sander
19.06.2017
15:15:59
понял
спасибо
много переменных ))
не очень нравиться, как программисту люблю когда все по своим папкам. )

Bogdan (SirEdvin)
19.06.2017
15:24:08
Кто-то может подсказать, можно ли для роли указать переменные, который должны быть заданы какими-то стандартными средствами ansible? Или только проверочками?

Sergey
19.06.2017
15:25:14
то есть ты хочешь ввести т.н. "обязательные" переменные?

lastsky
19.06.2017
15:25:57
я вот как раз искал сегодня как заставить ансибл чтобы юзер ввел переменную. пока ничего дельного не нашел.

Sergey
19.06.2017
15:26:23
или что именно требуется? ансибл по умолчанию ругается на несуществующие переменные, нужен какой-то другой вариант?
вообще давайте я за вас погуглю.... о, точно: http://docs.ansible.com/ansible/playbooks_prompts.html

lastsky
19.06.2017
15:27:19
vars_prompt??
о нифига себе!

Admin
ERROR: S client not available

Sergey
19.06.2017
15:27:51
так-то да, давно вроде

Sander
19.06.2017
15:28:18
есть еще вариант файл тянуть с переменными
vars_files:
- /vars/external_vars.yml
может это поудобней будет

Sergey
19.06.2017
15:29:23

Sander
19.06.2017
15:29:59
ну я просто смотрю варианты
и какая проблема будет vars_files

Sergey
19.06.2017
15:30:51
если надо спрятать секреты - великолепный вариант положить креды закрытыми в ansible_vault отдельным файлом в group_vars/all/credentials.yml, при этом ансибл либо спросит пароль от этого файла, либо при запуске из того же дженкинса его можно передать в командной строке.

Sander
19.06.2017
15:31:43
это да, но это немного другое.

Google

Sander
19.06.2017
15:31:51
в данном случаи у меня один файл конфигов
для деплоя и все
и сомневаюсь что он будет меняться

Sergey
19.06.2017
15:32:04
и какая проблема будет vars_files
проблема - такая, что репа со скриптами деплоя в себе должна этот файл хранить, и выгружаться, получается, должна в какой-то определённый путь

Sander
19.06.2017
15:42:52
в итоге у меня получилось много копий одних и тех же переменных.
Я их все копирую в плейбук, например есть плейбки: deploy, gitpull, list_backup.
deploy, gitpull, list_backup - все они имеют одни и те же переменные, в итоге я тоже самое продублировал три раза, а чем больше таких плейбуков тем больше копией vars.

Sergey
19.06.2017
15:43:25
?
а нафига?
это ты типа заюзал переменные роли?

Sander
19.06.2017
15:44:16
эти переменные для ролей,
мне сказали что в плейбук вставлять
вот я щяс копирую и понимаю, что-то не то

Sergey
19.06.2017
15:45:01
извини, если тебе приходится их копировать для каждой роли - нахер не нужны они в каждой роли, они, получается, общие для всего окружения (то бишь инвентори)

Sander
19.06.2017
15:45:39
да, а в inventory я не могу вставить, так как проблему выше описывал, из-за чего ребята посоветовали мне в файл пихать напрямую.
так как у меня один сервер, где лежит несколько сайтов
и когда я запускаю hosts: "group1",
он мне запускал "group2"

Sergey
19.06.2017
15:46:42
ну и пусть лежит, что тебе мешает соответствующим образом описать inventory?

Sander
19.06.2017
15:46:47
потому что хосты у них одинаковые

Sergey
19.06.2017
15:47:19
блин.
а внутри хоста list сделать и по нему пробежаться итератором?

Bogdan (SirEdvin)
19.06.2017
15:47:19

Sander
19.06.2017
15:47:37
я через часик отвечу, мне надо идти домой

Sergey
19.06.2017
15:47:41

Bogdan (SirEdvin)
19.06.2017
15:47:58
Касательно одинаковых хостов. У меня для конфига локального окружения такой велосипед:
workplace ansible_connection=local
awesome ansible_connection=local
:)