
Sander
19.03.2017
23:20:59
-------------

Aragaer
19.03.2017
23:21:23
ну слева max_connections допустим
а, в переменной окружения надо всегда смотреть $MYSQL_CONFIGURATIONS
а уже внутри нее что требуется

Google

Sander
19.03.2017
23:22:19
1) Если был бы один параметр, все было бы просто:
a)
```
env:
connect_timeout: 15
```
b) {{ connect_timeout | default("5") }}
----
2) Но так как envriement MYSQL_CONFIGURATIONS, содержит массив данных, то я не пойму каким образом их вставить в шаблон:
a) ```
env:
MYSQL_CONFIGURATIONS:
- "sql_mode="
- "max_connections=99"
```
b) {{ MYSQL_CONFIGURATIONS['max_connections'] | default("5") }}
{{ MYSQL_CONFIGURATIONS["max_connections"] | default("5") }}
{{ MYSQL_CONFIGURATIONS.max_connections | default("5") }}
============

Aragaer
19.03.2017
23:22:23
но оно всегда совпадает?

Sander
19.03.2017
23:22:59
не всегда в MYSQL_CONFIGURATIONS могут быть все параметры,
если параметра нет, то он должен отдать default значение, которое будет указана в скобках {{ var | default("5") }}

Aragaer
19.03.2017
23:24:21
чей извращенный разум придумал такой формат?

Sander
19.03.2017
23:25:39
смысле? может быть и другой синтаксис

Aragaer
19.03.2017
23:25:43
я знаю человека, который бы сказал "и чего?" и сваял бы что-то монструозное на баше и седе

Sander
19.03.2017
23:25:53
просто так у jinja2 выглядит синтаксис

Aragaer
19.03.2017
23:25:59
... сопоставимое по монструозности с этим форматом
не, я про то, что хранится в переменных окружения

Sander
19.03.2017
23:26:42
ну это потому что docker container =/
но за то глобально
везде можно поймать

Google

Aragaer
19.03.2017
23:27:00
а что докер?
а почему нельзя через файлы передать?
короче давай покажи пример формата для переменных окружения, а то непонятно, что там парсить надо

Sander
19.03.2017
23:28:16
потому что все будет разбросано, а так все нахдится в пределах образа/изображения
через bash:
echo $MYSQL_CONFIGURATIONS
оно выглядит вот так:
```{'sql_mode': '', 'max_connections': 99}```

Lisa
19.03.2017
23:37:49

Aragaer
19.03.2017
23:38:33
awk '{print $1, $6}' /tmp/t2.tmp | while read field default; do val=`sed -rn "s/.*'$field': ([^,}]+).*/\1/p" <<<"$MYSQL_CONFIGURATIONS"`; [ "$val" ] || val=$default; echo $field = $val ; done
max_connections = 99
connect_timeout = "5"
wait_timeout = "600"
мм
не, изврат

Sander
19.03.2017
23:40:22
а что у тебя прописано в t2.tmp?

Aragaer
19.03.2017
23:40:57
cat /tmp/t2.tmp
max_connections = {{ default .Env.max_connections "100" }}
connect_timeout = {{ default .Env.connect_timeout "5" }}
wait_timeout = {{ default .Env.wait_timeout "600" }}

Sander
19.03.2017
23:42:05
то ли скопбка не закрыто то ли что-то еще,
после вызова команды он ждет продолжения, появляется стрелка >
у меня такое обычно, если не закрыл что-то

Aragaer
19.03.2017
23:43:25
ну вот в ровно таком виде у меня нормльно
команда заканчивается на ; done

Sander
19.03.2017
23:44:16
ага
теперь да
```root@fe599e2e7dcb:/tmp# cat test2.txt
max_connections = 99
connect_timeout = "5"
wait_timeout = "600"
=```
только в конце какая-то лишная равно появилась

Google

Sander
19.03.2017
23:44:56
а тоак все вроде работает o_O

Aragaer
19.03.2017
23:45:24
небось в исходном файле была пустая строка

Sander
19.03.2017
23:45:33
я бы навряд ли такое написал, там еще пайпы =/

Aragaer
19.03.2017
23:45:59
тут эта, если в конфиге '', то он так и оставит на самом деле
потому и изврат, все очень в лоб написано
и эта, ни в коем случае не в продакшн

Sander
19.03.2017
23:46:39
да есть
((
мне это для конфига надо

Aragaer
19.03.2017
23:47:19
оставь себе этот скрипт для проверки или для того, чтобы можно было быстро глянуть или для того, чтобы понимать что и как можно сделать
но для продакшна конечно надо писать более надежный код

Sander
19.03.2017
23:47:37
((

Sander
19.03.2017
23:47:49
навряд ли я на баше такое напишу
конфиг файл честно он поломал

Aragaer
19.03.2017
23:49:36
не на баше. Пиши на питоне
awk '{print $1, $6}' /tmp/t2.tmp | while read field default; do if [ "$field" ] ; then val=`sed -rn "s/.*'$field': ([^,}]+).*/\1/p" <<<"$MYSQL_CONFIGURATIONS"`; [ "$val" ] || val=$default; echo $field = $val ; fi ; done
это проскипает пустую строчку

Sander
19.03.2017
23:51:22
на питоне я думал брать jinja2 готовый шаблонизатор

Aragaer
19.03.2017
23:52:11
https://github.com/kolypto/j2cli
Compile using environment variables (hello Docker!):
$ j2 config.j2

Google

Aragaer
19.03.2017
23:54:53
тыц... 9 утра. Пойду прогуляюсь, пожалуй

Sander
19.03.2017
23:55:07
2 ночи =/
```j2 config.j2```

Aragaer
19.03.2017
23:55:39
я в японии 8)

Sander
19.03.2017
23:55:42
и использовать просто jinja2?
что ты там делаешь в Японии?
работаешь?

Aragaer
19.03.2017
23:56:26
типа отдыхаю

Sander
19.03.2017
23:57:27
а как он будет в config.j2 файле, читать переменные окружения (environment)?

Admin
ERROR: S client not available

Aragaer
19.03.2017
23:58:03
ну вот там написано, что по умолчанию он и берет переменные окружения
ушел

Sander
19.03.2017
23:59:46
что-то не рабочий какой-то тул
3 года его уже не коммитят =/
?

Im the
20.03.2017
00:11:09
Дэнь добже

Sander
20.03.2017
00:11:11
в общем да этот сурипт не пашет

Aragaer
20.03.2017
01:09:44
это была первая ссылка в гугле, которую я ткнул. Там еще куча других вариантов

Sander
20.03.2017
02:13:39
было бы лучше если программа была бы на го =/
а то ставить питон еще надо чтоб в системе был, pip то же очень жирно

Aragaer
20.03.2017
02:16:57
ну если у тебя есть jinja, то вроде там и до питона недалеко

Google

Aragaer
20.03.2017
02:18:35
с go у меня опыт минимальный - один hello world и один обратный отсчет 25 минут
опять же = подмонтировать в докер контейнер каталог с уже готовым virtualenv с уже установленными нужными пакетами и победа

Sander
20.03.2017
02:21:47
да jinja у меня в ansible
в контейнере его нет (
у меня образ debian - mysql, там нет питона
лучше все токи на го делать
=/
тоже опыта нет
говорят простой ((

Aragaer
20.03.2017
02:23:14
я б на С написал, да скомпилял как статическое приложение, да закинул

Sander
20.03.2017
02:24:13
мне что понравилось, то что я написал программу,
сбилдил в машинный код и все ничего больше не надо ставить
так го тоже компилируемый язык
С это я несколько лет убью чтоб написать )

Aragaer
20.03.2017
02:25:14
хе-хе
ну я сейчас пойду что-нибудь покусаю в качестве обеда, а потом вернусь и может успею набросочек на С сваять
вроде ничего сверхъествественного
тыц. Я пожрал, теперь сыт и весел и готов программячить на своем любимом языке

Anuar
20.03.2017
03:30:44
vsem privet))
хелп плиз)))
проблемка с деплоем))) django apache2 nginx.
все настроил))
но при обращении любому url кидает 404