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

Igor
22.05.2017
05:30:47

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
А, я криво написал)
*В разных контейнерах
Просто нельзя выстроить иерархическую систему, поэтому и возникают проблемы
Ладно, сделаю еще подходик

here1am
22.05.2017
08:04:05

Anatoly
22.05.2017
08:16:47

Dmitry
22.05.2017
08:16:58
:)))

Bogdan (SirEdvin)
22.05.2017
08:17:25
Жаль, что 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

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"}}

Рома
23.05.2017
09:54:03

Alex Milushev
23.05.2017
09:56:36
костыль конечно

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 поэтому покатит.
хочется в один ход.

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

Sergey
23.05.2017
11:57:53

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
ансибл вообще не причем


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

Алексей
23.05.2017
12:33:33

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

Anatoly
23.05.2017
13:19:51

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

Google

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

Anatoly
23.05.2017
13:20:54

Алексей
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


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

Липоля Аймаксович
23.05.2017
13:22:48

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?

Anatoly
23.05.2017
13:24:55

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