@pro_ansible

Страница 260 из 625
sic transit
17.08.2017
13:57:18
на крайняк vault, либо через jenkins credentials

смторя что да как утебя

Oleg ?
17.08.2017
13:58:36
что такое переменная сверху ?)

мне условно надо десяти юзерам сгенрить 10 разных паролей

Google
Oleg ?
17.08.2017
13:59:38
и вывести результат login:pass

sic transit
17.08.2017
14:02:50
нагенери пароли в файл переменных для роли, зашифруй vault'ом

Мне видится странным такой подход к применению паролей, который ты используешь... Может я картины в целом не вижу...

Но я бы через переменные любым подходящим способом просовывал бы пароли ансиблу

Oleg ?
17.08.2017
14:08:02
я понял идею. я хотел чтобы ансибл сам мне все генерил и раздавал пароли юзерам в лупе

sic transit
17.08.2017
14:08:49
А ты бы их потом выдергивал и хранил? :)

Oleg ?
17.08.2017
14:09:38
ну я бы stdout в файл направил :)

sic transit
17.08.2017
14:10:18
хз можно и так,т но мне не нравится

Алексей
17.08.2017
14:19:06
тоже не нра.

хотя так конечно можно но архитектурно херова.

sic transit
17.08.2017
14:19:53
много вопросов возникает с таким подходом

кидай креденшиалсы сверху через переменные

Если останешься при своем, читай внимательнее http://docs.ansible.com/ansible/latest/playbooks_loops.html#using-register-with-a-loop

Google
Oleg ?
17.08.2017
15:13:02
Да в итоге в волт запихнул) слишком много времени ушло на луп

sic transit
17.08.2017
15:15:35
Да в итоге в волт запихнул) слишком много времени ушло на луп
к циклу тоже подход немного неправильный был, не только к задаче в целом

Dmitrii
17.08.2017
15:54:56
Всем привет. А подскажите, в чем проблема может быть. Запускаю плейбук с группой app-В-backend В inventory лежит следующее: [tag_Kind_app_A_backend] [app-A:children] App-A-backend [App-A-backend:children] tag_Kind_app_A_backend [tag_Kind_app_B_backend] [app-B:children] App-B-backend [App-B-backend:children] tag_Kind_app_B_backend В group_vars лежат 2 файла с именами app-A.yml и app-B.yml. Теперь самое интересное: роль плейбука генерит файл для app-A-backend вместо app-B-backend хотя в плейбуке я явно без всяких интерполяций в hosts: указываю app-B-backend

И еще... если из инвентори убрать любое упоминание об app-A то все становится ок

Единственное, как A и B связаны так это хост тега tag_Kind_app_A_backend и tag_Kind_app_B_backend — одинаковый. Если проблема в этом, то как от этого избавиться? Мне надо запускать один и тот же плейбук на одном и том же хосте с разными группами

lastsky
17.08.2017
16:00:00
убери дефисы, сделай землю

http://docs.ansible.com/ansible/latest/playbooks_variables.html#what-makes-a-valid-variable-name

foo-port, foo port, foo.port and 12 are not valid variable names.

Dmitrii
17.08.2017
16:07:33
Не помогает. Все равно цепляет параметры от другой группы

lastsky
17.08.2017
16:13:11
а, у тебя не ломается... у меня вот ломалось от группы с дефисом. не вариант прописать в плейбуке что-то типа вот такого? vars_files: - app_B.yml и во втором vars_files: - app_A.yml

Dmitrii
17.08.2017
16:14:33
Там такое дело, что я понадеялся на ибучий ансибл что он нормльноумеет по группам раскидывать все и сделал один плейбук универсальный с группами на каждое приложение

Т.е. на проде где у меня хосты всегда под каждое приложение разные — все ок, а вот на стейджинге где хост один и где нет смысла заводить столько же машин под каждое не работает даже если я hosts ограничивать пытаюсь

lastsky
17.08.2017
16:15:14
vars_files: - {{ app_name }}.yml

sic transit
17.08.2017
16:16:02
Ансибл то в чем виноват?

Dmitrii
17.08.2017
16:16:16
Тем что это его базовая функция, не?

Мне нужно генерировать файл, где разные параметры. В каждой группе задано 2 переменных 1) Имя файла 2) Значение

И вы хотите сказать что Ансибл не может такое сделать?

Это полностью вписывается в идеологию. Роль которая генерит файл, для нее применяются параметры либо хоста либо группы.

sic transit
17.08.2017
16:18:09
У меня есть хосты, где куча все разного. Ансибл рулит как нужно

lastsky
17.08.2017
16:18:15
можно и не генерировать файл, а через set_facts прогонять. тут проблема очевидна - приоритет переменных. как её решать - либо писать просто, определяя переменную всегда в одном месте, либо через set_facts.

Google
Dmitrii
17.08.2017
16:18:46
Так а скажите почему переменные из одной группы перетирают переменные из другой группы?

Это действительно как то связано с тем, что корневой тег ссылается на один и тот же хост?

sic transit
17.08.2017
16:19:28
переменные на хост же апплаются

Dmitrii
17.08.2017
16:20:06
Дак проблема в том что я плейбук вызываю не для общей группы а для сабгруппы

Посмотри выше

sic transit
17.08.2017
16:20:50
переменные группы инициировались по хосту, потом переменные второй группы с таким же идентификатором перезаписали по этому же хосту

Dmitrii
17.08.2017
16:22:22
Ок, положим что тут я прострелил себе ногу. Как тогда лучше решить проблему?

sic transit
17.08.2017
16:23:06
Хочешь чтобы кто-то вникал в твою кухню?

Dmitrii
17.08.2017
16:23:28
И не надеюсь :) Но малоли есть совет с наскоку

sic transit
17.08.2017
16:23:51
это же надо курить твой контекст, сам понимаешь

Dmitrii
17.08.2017
16:24:04
Понимаю, проблема не на уровне "сходи в гугл"

Sergey
17.08.2017
16:24:04
И не надеюсь :) Но малоли есть совет с наскоку
с наскоку - переменные по группам раскладывай

Dmitrii
17.08.2017
16:24:22
с наскоку - переменные по группам раскладывай
Так они ж уже в группах! ? В этом вся и проблема

lastsky
17.08.2017
16:24:30
чем меньше кода и чем он проще - тем легче его поддерживать. совет из этого следует очевидный, но есть те кому такой принцип не нравится.

Dmitrii
17.08.2017
16:24:36
Затык в том что хост один и тот же

lastsky
17.08.2017
16:24:52
назови хост по-разному?

Dmitrii
17.08.2017
16:25:07
Это EC2 инстанс

lastsky
17.08.2017
16:25:20
mysql_stage ansible_ssh_host=1.2.3.4 nginx_stage ansible_ssh_host=1.2.3.4

sic transit
17.08.2017
16:25:34
Google
Dmitrii
17.08.2017
16:25:54
Получается надо лезть в ec2.py патчить ?

sic transit
17.08.2017
16:26:04
нет

Dmitrii
17.08.2017
16:26:24
А как тогда. Я IP адреса динамически получаю

lastsky
17.08.2017
16:26:30
у тебя там в плейбуках хостнейм выставляется так как ты его в ansible написал?

а.

Dmitrii
17.08.2017
16:26:45
tag_Kind_app_B_backend — это и есть "группа"

Амазоновский тег

sic transit
17.08.2017
16:27:58
inventory_hostname для хоста поменяй во второй группе

Dmitrii
17.08.2017
16:28:10
Каким образом?

Не совсем понял

sic transit
17.08.2017
16:28:27
в inventory file

Dmitrii
17.08.2017
16:29:27
А это вообще законно?)

sic transit
17.08.2017
16:29:35
ты мапишь Inventory_hostname на хост в инвентарии 2 раза на хост, хосты останутся прежними, inventory_hostname будут отличаться

Dmitrii
17.08.2017
16:29:55
Щас попоробую, сек

sic transit
17.08.2017
16:30:05
но я бы в целом пересмотрел подход, но попрообуй

Dmitrii
17.08.2017
16:32:33
[app_A:vars] inventory_hostname=app-A [app_B:vars] inventory_hostname=app-B ... Вот так не помогло

sic transit
17.08.2017
16:33:46
не так

Dmitrii
17.08.2017
16:33:53
А как?

Или к амазоновскому тегу?

sic transit
17.08.2017
16:34:55
к тегу

Google
Dmitrii
17.08.2017
16:37:16
[tag_Kind_app_A] [tag_Kind_app_A:vars] inventory_hostname=app-A [tag_Kind_app_B] [tag_Kind_app_B:vars] inventory_hostname=app-B Вот так тоже непашетЪ

А оно точно по inventory_hostname применяет в конченом счете?

sic transit
17.08.2017
16:38:12
не так, чо у тебя так все запутно?

переменные групп в конце раскидываются какпеременные хоста. Утебя же есть хост, который состоит в 2х группах?

Dmitrii
17.08.2017
16:39:15
Ну вот то что выше это виртуальная группа, которая генерится с помощью ec2.py

Ее имя генерится из значения тега Kind в EC2

Т.к. Kind может быть записан через запятую, а ec2.py сплитнуть, в итоге создается две виртуальных группы которые назначены на один и тот же хост

sic transit
17.08.2017
16:41:25
с твоей схемой, как я ее понял: нужно прийти к тому, чтобы хост, который попадет в 2+ группы получал разный inventory_hostname в каждой группе

Dmitrii
17.08.2017
16:42:12
Ну это прямая дорога править ec2.py. Но это не так уж и страшно

Щас гляну что там назначается.

sic transit
17.08.2017
16:42:31
а ты зачем то пишешь в переменные группы "inventory_hostname"

sic transit
17.08.2017
16:42:57
правь, чо

Dmitrii
17.08.2017
16:43:14
?
А, все

sic transit
17.08.2017
16:43:16
?
не ты?

Dmitrii
17.08.2017
16:43:33
У нас давно был взят ec2.py стандартный

Он вычитывает теги и вот работает таким образом

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