Sander
roles везде одинаковые почти, меняются только параметры
Max
шта
Max
role - это набор tasks
Sander
роли одинаковые, просто у каждого сайта чуть другой путь,
конфиги, кому-то не нужно делать composer install
Max
handlers, templates etc
Sander
да
Max
и что тебя смущает?
Sander
то что придется копипейстить плейбуки
Max
а так ты копипастишь переменные в групах
Sander
надеюсь больше ничего не поссыпиться
Sander
например из-за таких переменных
cache_folders:
- "{{ deploy_path }}/current/storage/framework/cache"
Алексей
А что значит deploy:group1.yml ?
Sander
чтоб понятно было что человек деплоит,
deploy:antibrak:stage.yml
Sander
если есть предложения получше, то буду только рад
Konstantin
А что тут значат deploy, antibrak -? Это же не название файла?
Алексей
это просто имя файла, затупил
Konstantin
В именах можно двоеточие?)
Konstantin
Я за 15 лет ни разу не видел-пробовал, кек
Sander
[WARNING]: Found variable using reserved name: nameна что он лает
Max
на то что нехуй юзать имена которые в резерве\
Sander
на переменную name видать
Sander
черт
Sander
понял
Sander
спасибо
Sander
много переменных ))
не очень нравиться, как программисту люблю когда все по своим папкам. )
Bogdan (SirEdvin)
Кто-то может подсказать, можно ли для роли указать переменные, который должны быть заданы какими-то стандартными средствами ansible? Или только проверочками?
Sergey
то есть ты хочешь ввести т.н. "обязательные" переменные?
Dima
я вот как раз искал сегодня как заставить ансибл чтобы юзер ввел переменную. пока ничего дельного не нашел.
Sergey
или что именно требуется? ансибл по умолчанию ругается на несуществующие переменные, нужен какой-то другой вариант?
Sergey
вообще давайте я за вас погуглю.... о, точно: http://docs.ansible.com/ansible/playbooks_prompts.html
Dima
vars_prompt??
Dima
о нифига себе!
Sergey
так-то да, давно вроде
Sander
есть еще вариант файл тянуть с переменными
Sander
vars_files:
- /vars/external_vars.yml
Sander
может это поудобней будет
Sander
ну я просто смотрю варианты
Sander
и какая проблема будет vars_files
Sergey
если надо спрятать секреты - великолепный вариант положить креды закрытыми в ansible_vault отдельным файлом в group_vars/all/credentials.yml, при этом ансибл либо спросит пароль от этого файла, либо при запуске из того же дженкинса его можно передать в командной строке.
Sander
это да, но это немного другое.
Sander
в данном случаи у меня один файл конфигов
Sander
для деплоя и все
Sander
и сомневаюсь что он будет меняться
Sergey
и какая проблема будет vars_files
проблема - такая, что репа со скриптами деплоя в себе должна этот файл хранить, и выгружаться, получается, должна в какой-то определённый путь
Sander
в итоге у меня получилось много копий одних и тех же переменных.
Я их все копирую в плейбук, например есть плейбки: deploy, gitpull, list_backup.
deploy, gitpull, list_backup - все они имеют одни и те же переменные, в итоге я тоже самое продублировал три раза, а чем больше таких плейбуков тем больше копией vars.
Sergey
?
Sergey
а нафига?
Sergey
это ты типа заюзал переменные роли?
Sander
эти переменные для ролей,
Sander
мне сказали что в плейбук вставлять
Sander
вот я щяс копирую и понимаю, что-то не то
Sergey
извини, если тебе приходится их копировать для каждой роли - нахер не нужны они в каждой роли, они, получается, общие для всего окружения (то бишь инвентори)
Sander
да, а в inventory я не могу вставить, так как проблему выше описывал, из-за чего ребята посоветовали мне в файл пихать напрямую.
Sander
так как у меня один сервер, где лежит несколько сайтов
Sander
и когда я запускаю hosts: "group1",
он мне запускал "group2"
Sergey
ну и пусть лежит, что тебе мешает соответствующим образом описать inventory?
Sander
потому что хосты у них одинаковые
Sergey
блин.
а внутри хоста list сделать и по нему пробежаться итератором?
Sander
я через часик отвечу, мне надо идти домой
Sergey
Bogdan (SirEdvin)
Касательно одинаковых хостов. У меня для конфига локального окружения такой велосипед:
workplace ansible_connection=local
awesome ansible_connection=local
Bogdan (SirEdvin)
:)
Bogdan (SirEdvin)
Sander
вопрсо, если хост для сайтов у меня везде одинаковый, на который я делаю деплой.
то как мне прописать вообще их в файле? Чтоб была потом возможность к ним обратиться
[group1]
Host1
[group2]
Host1
Igor
Назови по-разному
Sander
как
Igor
Это псевдоним
Sander
просто пытался после чего не коннектит уже к серверу
Igor
В реальный адрес укажи в дркой переменной
Igor
Типа ansible_hostname
Igor
Что-ли;
Igor
А псевдонимы должны быть разные
Sander
vagrant.stage ansible_user=vagrant у меня так сейчас
Sander
Igor спасибо
Igor
Пожалуйста
такой вопрос: предположим у меня 2 хостгруппы, в каждой по 1 серверу, я запускаю плейбуку, которая маппит соотв. хостгруппу на роль, но мне нужно в рамках этой роли найти другую хостгруппу, подключиться к ее серверу и кое что с него скачать. это возможно?
найти оказалось не такой уж проблемой, поэтому тут скорее вопрос в "подключиться"
или это возможно только на уровне плейбуки?