@pro_ansible

Страница 221 из 625
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
есть еще вариант файл тянуть с переменными
и решать проблему курицы и яйца, т.к. деплой зачасутю запускаются вообще не с личного хоста, а откуда-то из CI

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
я через часик отвечу, мне надо идти домой

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

:)

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