@pro_ansible

Страница 208 из 625
Bogdan (SirEdvin)
21.05.2017
20:32:34
Ansible Container - богомерзкая штука :(

Igor
22.05.2017
05:30:47
Ansible Container - богомерзкая штука :(
А что православное? Bash скрипты написанные Патриком?

Max
22.05.2017
06:04:57
а шо плохого в баш скриптах?

here1am
22.05.2017
06:19:44
то, что их пишут как попало и в более-менее больших скриптах очень много внешних зависимостей

Google
Max
22.05.2017
06:25:28
не знаю не знаю

в более менее больших скриптах принято не использовать баш

а контейнер собрать вроде не ракету построить

here1am
22.05.2017
06:29:38
ну тогда хз, чем докерфайл не устраивает

Max
22.05.2017
06:30:45
ну а я о чем

Alexander
22.05.2017
06:47:52
Если в вашем баш-скрипте больше 100 строк, значит вы что-то делаете не так.

Bogdan (SirEdvin)
22.05.2017
07:16:02
ну тогда хз, чем докерфайл не устраивает
Не совсем удобно, когда у тебя куча действий, которые постоянно повторяются раз за разом в одном и том же контейнере

Max
22.05.2017
07:16:25
оммм

зачем?

в запущеном или при билде?

Bogdan (SirEdvin)
22.05.2017
07:55:24
При билде

Например, настройка ssh сервера для разработки

Или настройка neovim

Google
Bogdan (SirEdvin)
22.05.2017
07:55:48
А, я криво написал)

*В разных контейнерах

Просто нельзя выстроить иерархическую систему, поэтому и возникают проблемы

Ладно, сделаю еще подходик

Anatoly
22.05.2017
08:16:47
Dmitry
22.05.2017
08:16:58
:)))

Bogdan (SirEdvin)
22.05.2017
08:17:25
зачем вам ссш в контейнере?
Для использование remote interpreter для python.)

Жаль, что ansible-container даже запустить нельзя :(

Igor
22.05.2017
10:22:15
юзай баш освящённый патрегом

One
22.05.2017
12:22:55
камрады, как правильно сторонние моды в зависимости прописать?

Konstantin
23.05.2017
06:36:47
народ, подскажите как запустить плейбук указав для роли определенные теги. в доках есть вот это http://ansible-docs.readthedocs.io/zh/stable-2.0/rst/playbooks_tags.html#tags с примером. но у меня не работает, все равно выполняет все таски.

выполняет оба таска

Lev
23.05.2017
06:39:57
зрительно всё ок, а запускаешь как?

Artem
23.05.2017
06:44:31
запускаешь с тегом test1?

Konstantin
23.05.2017
06:45:19
запускаю ansible-palybook <playbook>

Artem
23.05.2017
06:45:50
на картинке эт оне указание тега для запуска - а тегировоние всех тасок в роли тегом test1

Konstantin
23.05.2017
06:47:46
хм, а как тогда можно запустить с тегом, но при этом не использовать тег в cli, возможно?

Artem
23.05.2017
06:48:09
я хз

Google
Artem
23.05.2017
06:48:44
сам с этим бился- только я на это с инклудами наступал

here1am
23.05.2017
06:51:33
ни у кого нет такой проблемы, что ансибл создаёт пустой файл модулем copy?

Sergey
23.05.2017
07:01:43
хм, а как тогда можно запустить с тегом, но при этом не использовать тег в cli, возможно?
http://ansible-docs.readthedocs.io/zh/stable-2.0/rst/playbooks_tags.html Говорят, что никак. Но возможно, что исходная задача (какая, кстати?) решается как-то по-другому.

Konstantin
23.05.2017
07:05:55
задача в том что есть два плейбука. в одном настройка базы, в другом разворачивание сайта. вот когда я разворачиваю сайт мне нужно в базу добавить базу и пользователя для сайта. вот я и хочу плейбук с базой запустить только с одним тегом, чтоб добавить базу и пользователя, а не проходить по всем таскам. можно конечно переменные использовать... но ведь есть теги... но теперь выесняется что они не работают ))

заметил вот что. не знаю как это может быть удобно. если запустить ansible-playbook pb -t test1 выполнится два таска, а если ansible-playbook pb -t test2 то только второй таск.

Рома
23.05.2017
08:26:33
всем привет! столкнулся с вопросом при написании шаблона ansible... есть список вида: my_list: - element 1 - element {{ var1 }} - element {{ var2 }}: - subel1 - subel2 пытаюсь его распарсить в шаблоне: {% macro config(parameters, indent = 0) %} {% for parameter in parameters %} {% if parameter is string -%} {{ parameter|indent(indent, true) }} {% elif parameter is mapping %} {% for parameter_key, parameter_value in parameter.iteritems() -%} {{ '<'|string|indent(indent, true) }}{{ parameter_key }}{{ '>\n' -}} {{ config(parameter_value, indent + 8) }} {{- '</'|string|indent(indent, true) }}{{ parameter_key|string|regex_replace('^([a-zA-Z]+)( .*)?','\\1') }}{{ '>\n' }} {% endfor %} {% endif %} {% endfor %} {% endmacro %} в строке {{ '<'|string|indent(indent, true) }}{{ parameter_key }}{{ '>\n' -}} не раскрывается переменная {{ var2 }}, выводится просто текстом вместе с фигурными скобками у меня не получается написать шаблон таким образом, чтобы эта переменная {{ var2 }} была воспринята как переменная

Alex Milushev
23.05.2017
09:45:38
привет, как передать json как значение параметра модулю в таске? нужно что-то вроде - hosts: localhost connection: local tasks: - debug: msg: {"Network": "{{ net_cidr }}", "Backend": {"Type": "aws-vpc"}}

Alex Milushev
23.05.2017
09:56:36
нагуглил такой вариант: portslist: '[{"name":"ob1","port_type" ... }]'
хм, надо попробовать, но Я уже запихнул в vars в виде yaml и делаю {{ yaml_var | to_json }}

костыль конечно

lastsky
23.05.2017
11:48:25
прикольно. https://github.com/ansible/ansible-modules-core/issues/170 то есть, state=touch всегда обновляет файл и не идемпотентен - file: path=/var/tmp/emptyfile state=touch но workaround нашелся, сделайте меня развидеть это! - copy: dest=/var/tmp/emptyfile content="" force=no

Павел
23.05.2017
11:49:36
Ну ваще touch должен обновлять время файла, если файл существует.

Павел
23.05.2017
11:50:15
https://www.opennet.ru/man.shtml?topic=touch&category=1

lastsky
23.05.2017
11:52:40
это я согласен, да, команда touch так и работает. но речь шла про идемпотентность. мне например важно, когда я первый раз потрогал файл. это может быть какой-нибудь .lock файл, на дату которого смотрит приложение, а мне надо проверить, есть ли там этот .lock или нету, не обновляя даты :)

Константин
23.05.2017
11:54:33
тебе stat тогда нужен, а не touch

lastsky
23.05.2017
11:54:59
в общем, workaround работает. copy относится к stableinterface поэтому покатит.

тебе stat тогда нужен, а не touch
про stat согласен, но это в два хода - сначала проверяешь, потом результат, потом создаешь если нету :)

хочется в один ход.

Константин
23.05.2017
11:57:37
читается это легче, чем copy пустого файла

Google
lastsky
23.05.2017
12:01:01
команда touch не является идемпотентной ?
да, я согласен. copy команда тоже не идемпотентна, он спросит: overwrite? а touch не спросит. If touch (new in 1.4), an empty file will be created if the path does not exist, while an existing file or directory will receive updated file access and modification times (similar to the way touch works from the command line). добавили бы update=no - имхо было бы логичнее.

Alexander
23.05.2017
12:01:15
test -f _filename && stat

Sergey
23.05.2017
12:01:29
ключевые слова - similar to the way touch works from the command line

lastsky
23.05.2017
12:01:48
да, similar. но всё равно опцию хочется :)

а раз нет опции - workaround через copy будет работать.

Липоля Аймаксович
23.05.2017
12:26:46
Добрый день всем. Пишу диплом, поэтому сильно камнями не кидайте. Поставили мне тут задачу сделать CI. В наличии есть локальный гитлаб, ансибл и некоторое количество убунт в виртуалка. Ансибл разворачивает 2 инстанса (prod и dev). На каждом из них роли: -php/apache -mysql -wordpress Сосбственно вот до сюда я сделал. А дальше пока концепт в голове. То, как я тут вижу CI: 1. Папка с вордпрессом лежит в гите. 2. Если в dev-ветке появляется новый коммит, то ансибл идет на dev инстанс и забирает туда свежую дев-ветку из гита (попутно возможно выполняя некоторые хэндлеры). 3. Если в prod-ветке появляется новый коммит или мердж из дев в прод, то ансибл идет на prod инстанс и заливает туда свежую прод ветку из гита (тут тоже какие-нибудь хэндлеры). Реально такое сделать? И куда смотреть? Или есть "более лучшие" инструменты для этого?

Admin
ERROR: S client not available

Anatoly
23.05.2017
12:29:23
у тебя в списке есть гитлаб. используй его для таких глупостей

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

Липоля Аймаксович
23.05.2017
12:30:35
Я видел там вкладку Gitlab-CI у проекта. Посмотрел. Пока ничего не понял)

Алексей
23.05.2017
12:31:07
Парни, а чото я давно не спрашивал, ide для ансибла не изобрали пока да ?

Липоля Аймаксович
23.05.2017
12:31:08
у меня не используются контейнеры

Алексей
23.05.2017
12:32:39
Добрый день всем. Пишу диплом, поэтому сильно камнями не кидайте. Поставили мне тут задачу сделать CI. В наличии есть локальный гитлаб, ансибл и некоторое количество убунт в виртуалка. Ансибл разворачивает 2 инстанса (prod и dev). На каждом из них роли: -php/apache -mysql -wordpress Сосбственно вот до сюда я сделал. А дальше пока концепт в голове. То, как я тут вижу CI: 1. Папка с вордпрессом лежит в гите. 2. Если в dev-ветке появляется новый коммит, то ансибл идет на dev инстанс и забирает туда свежую дев-ветку из гита (попутно возможно выполняя некоторые хэндлеры). 3. Если в prod-ветке появляется новый коммит или мердж из дев в прод, то ансибл идет на prod инстанс и заливает туда свежую прод ветку из гита (тут тоже какие-нибудь хэндлеры). Реально такое сделать? И куда смотреть? Или есть "более лучшие" инструменты для этого?
просто по мануалу от гитлаба взлетает всё

ансибл вообще не причем

Липоля Аймаксович
23.05.2017
12:33:21
Я пробовал тот же стек поднимать в контейнерах. Поднималось. Но там докер композом все поднималось легко по мануалу. Но я тогда не вижу куда там ансибл прикрутить(

Липоля Аймаксович
23.05.2017
12:34:43
Спасибо. Пойду почитаю.

Алексей
23.05.2017
13:20:29
подсказывать перменные умеет ?

Google
Алексей
23.05.2017
13:20:41
а из defaults-а

Алексей
23.05.2017
13:20:55
а из included_vars

Anatoly
23.05.2017
13:20:57
Алексей
23.05.2017
13:21:37
убедил. пойду попробую

lastsky
23.05.2017
13:21:50
Добрый день всем. Пишу диплом, поэтому сильно камнями не кидайте. Поставили мне тут задачу сделать CI. В наличии есть локальный гитлаб, ансибл и некоторое количество убунт в виртуалка. Ансибл разворачивает 2 инстанса (prod и dev). На каждом из них роли: -php/apache -mysql -wordpress Сосбственно вот до сюда я сделал. А дальше пока концепт в голове. То, как я тут вижу CI: 1. Папка с вордпрессом лежит в гите. 2. Если в dev-ветке появляется новый коммит, то ансибл идет на dev инстанс и забирает туда свежую дев-ветку из гита (попутно возможно выполняя некоторые хэндлеры). 3. Если в prod-ветке появляется новый коммит или мердж из дев в прод, то ансибл идет на prod инстанс и заливает туда свежую прод ветку из гита (тут тоже какие-нибудь хэндлеры). Реально такое сделать? И куда смотреть? Или есть "более лучшие" инструменты для этого?
а кстати, вордпресс же хочет mysql, чем разворачивается дамп базы, если не ансиблом?

Anatoly
23.05.2017
13:21:53
или я в конец запутался в нем и оно мне просто наиболее часто вводимые подсовывает

lastsky
23.05.2017
13:23:03
а, понятно. изначально вот имелось ввиду когда мы без контейнеров рассматриваем деплой.

Липоля Аймаксович
23.05.2017
13:24:05
в схеме с докеркомпозом база подключается через вольюм. в схеме с ансиблом - пка не придумал как

lastsky
23.05.2017
13:24:33
мне тоже надо делать деплой вордпресса ансиблом, поэтому я как раз хочу знать лучшую практику (если без него и gitlab) :)

Igor
23.05.2017
13:24:52
Коллеги, а как можно сделать такую задачу: Через command запускается некая команда. Сделать обработку: Если exit_code = 1 - состояние задачи skip Если exit_code > 1 - состояние задачи false?

Igor
23.05.2017
13:25:06
проблема с пунктом Если exit_code = 1 - состояние задачи skip

lastsky
23.05.2017
13:25:19
не делать его
да, понимаю. но пока не отказаться.

Anatoly
23.05.2017
13:25:33

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