Sergey
Я уже затёр, перешлю в личку.
Serg
The history of infrastructure at Zendesk Как развивалась инфраструктура в компании Zendesk. Part 1: Constant tradeoffs https://medium.com/zendesk-engineering/the-history-of-infrastructure-at-zendesk-constant-tradeoffs-bdfa916ff4c3 Part 2: The messy middle https://medium.com/zendesk-engineering/the-history-of-infrastructure-at-zendesk-part-2-the-messy-middle-59f16a959b7f Part 3: Foundation team forming and evolving https://medium.com/zendesk-engineering/the-history-of-infrastructure-at-zendesk-part-3-foundation-team-forming-and-evolving-9859e40f5390
Timur
господа, вообще есть ли резон поднимать свой сервер galaxy, если хочешь построить нормальный пайплайн (с molecule и т.п. вещами)? Добавление ролей из гита с определёнными костылями работает, но нет зависимостей. С другой стороны я не знаю, есть ли они в galaxy или нет. Как правильно вообще строить подобные вещи?
Andor
ты всегда можешь сделать монорепо
Timur
ты всегда можешь сделать монорепо
вот кстати ещё вопрос: с мультирепо я могу хотя бы более-менее повесить какие-то хуки на изменение в ролях (ну, например, у меня есть репо с common-ролью, и я могу повесить на мастер хук, чтобы при мердже она перепроходила по всем серверам). Как такое сделать в монорепе без развесистых кальянообразных конструкций я слабо себе представляю. Вообще классно было бы увидеть какое-нибудь чтиво по таким вот best practices, чтобы не изобретать велосипеды.
greydjin
а есть механизмы управления ансиблом хостов за файрволом? нужно разворачивать у клиентской компании, они не дают развернуть инстанс для впн
greydjin
или нужно идти в системы управления конфигурацией с клиентами на машинах
inqfen
Бастион хост юзай
inqfen
Который будет в целевой сети
greydjin
а ансибл клиентов нет? вроде собирались
greydjin
ну то есть я оставлю задание на сервере, а клиент делает ansible-pull и забирает задание с сервера моего? а как я узнаю что задание отработало успешно, ansible-pull оставляет логи о своем выполнении на сервере?
George
не нужно ansible-pull
George
проще (и надежнее) реально договориться либо на awx в закрытом контуре, либо на bastion host
Anonymous
@E_zombie будет жить. Поприветствуем!
E_zombie
в какую сторону копать ?
E_zombie
E_zombie
астра линукс как бы дебиан9
Timur
астра линукс как бы дебиан9
Версия ансибла какая?
E_zombie
2ю7ю11
E_zombie
можно как нибудь переопределить это параметр при запуске ?
Timur
можно как нибудь переопределить это параметр при запуске ?
В ансибле есть открытая ишуя на этот счёт
Timur
И есть фикс в дев ветке
Timur
Можете попробовать модуль hostname из devel ветки заюзать
E_zombie
тобишь простого решения нет. а можно ссыль на баг
E_zombie
не нахожу изменений связанных с астрой в девеле
Timur
Там для SLES описано, но явно наблюдается на разных дистрах
Отделение Bereke Bank
астра линукс как бы дебиан9
Я почему-то думал она CentOS-оподобная 🤔
E_zombie
Нет. Дебиан
manefesto
Сижу вот сейчас, думаю есть две роли, одна делает провижен с клонирование репозитория Вторая собственно для деплоя, обновляет код в репе и делает растарт сервиса Можно или использовать шаренный ключ для git в двух ролях. например через group_vars
Vladislav 👻
Наведите меня на мысль плиз, хочу собрать список в списке на основе hostvars, список вида: [ var1_value: [host1, host2, ...], var2_value: [host10, host11, ...], var3_value: [host20, host21, ...] ]
Vladislav 👻
не пойму, как мне map и combine применять что-то
E_zombie
есть модуль апт - как его заставить ставить пакеты от друго дистра в 2.7 ?
George
Наведите меня на мысль плиз, хочу собрать список в списке на основе hostvars, список вида: [ var1_value: [host1, host2, ...], var2_value: [host10, host11, ...], var3_value: [host20, host21, ...] ]
я так понимаю, что ты хочешь преобразовать один словарь в другой. Т.е. изначально у тебя есть host1: var1: value1_1 var2: value2_1 ... hots2: var1: value1_1 var2: value2_2 ...
George
и ты хочешь получить [ var1_value1_1: [host1, host2, ...], var2_value2_1: [host1, host10, host11, ...], var2_value2_2: [host2, ....] var3_value: [host20, host21, ...] ]
George
ну, вообще задача похожа на преобразование данных
George
как первая итерация - я бы попробовал на питоне сделать скрипт
Vladislav 👻
Что именно вам нужно? Можно на конкретном примере?
грубо, к старому вопросу, есть переменная с признаком PROD/DEV, хочу получить список [PROD: [host1,...], DEV: [host2,...]]
George
а дальше уже довернул бы его до фильтров map-combine
George
иначе будет сложно
George
ну, и вообще можно, наверное, пойти от обратного (я просто цель сбора такой структуры не понимаю - у тебя тестовые стенды пересекаются с прод-тачками?)
Vladislav 👻
у меня суть, что в темплейте мне надо разбить хосты по стендам
George
разбей их (хосты т.е.) сначала по стендам (=группы), а потом уже назначай переменные
Vladislav 👻
из-за этого вся логика пошла по одному месту и я ломаю голову, как это вообще сделать хоть как-то
Timur
грубо, к старому вопросу, есть переменная с признаком PROD/DEV, хочу получить список [PROD: [host1,...], DEV: [host2,...]]
Можно сделать loop по inventory_hostname, а в цикле лукапом брать любые переменные и собирать любые списки
Timur
Но мне кажется, проще изначально в инвентаре группы задать
Vladislav 👻
Можно сделать loop по inventory_hostname, а в цикле лукапом брать любые переменные и собирать любые списки
да, только не пойму, как мне собрать список, просто вывести соотношение host - var_value я могу в цикле, но на основе var_value мне надо будет делать еще один прогон в темплейте, поэтому и думаю, как сделать сложную вложенную структуру
Timur
А группы не проще задать?
Timur
В крайнем случае можно в лупе add_host сделать в динамически создаваемую группу
Anonymous
коллеги кто использует hasicorp vault, проблем с установкой на мак модуля hvac нету ?
Vladislav 👻
А группы не проще задать?
тогда проход по хардкору будет, добавление группы - и сразу боль
Timur
тогда проход по хардкору будет, добавление группы - и сразу боль
Почему боль? Группа - это по сути просто ещё одна переменная хоста, как тег
Vladislav 👻
тогда я не понимаю, как мне получить список сначало нужных групп
Vladislav 👻
групп пачка, а нужны только конкретные
Timur
тогда я не понимаю, как мне получить список сначало нужных групп
В смысле - как получить список? Тебе список групп заранее неизвестен?
Vladislav 👻
заранее - нет
Timur
заранее - нет
Тогда ничего не понимаю. Какие группы вам нужны? И как вы поймёте - они ли это?
Timur
Вам нужно просто сгруппировать хосты в группы по какому-то признаку, правильно?
Anonymous
Хочу странного, а именно в одном из плейбуков локально (откуда запускаетя ансибл» запускать команду и вывод ее значения сохранять в перменную. Либо если кто к ансиблу прикручивал hasicorp vault подскажет, как там курлом дергать конкретноее поле, пока что то идеи закончились
Артём
vault kv get
Anonymous
• hvac (python library)
Anonymous
которая у меня на мак не встала
Anonymous
сейчас удмаю сделать костыль, поставив локально тоже себе ваул и чрез него получать нужные значения и дальше кормить уже плейбуки
Артём
Хочу странного, а именно в одном из плейбуков локально (откуда запускаетя ансибл» запускать команду и вывод ее значения сохранять в перменную. Либо если кто к ансиблу прикручивал hasicorp vault подскажет, как там курлом дергать конкретноее поле, пока что то идеи закончились
$ cat test.yml --- - hosts: localhost vars: testvar: "{{ lookup('pipe', 'vault kv get -field=******** *******/******/*****’) }}" tasks: - name: DBG debug: msg: "{{ testvar }}" $ ansible-playbook test.yml … TASK [DBG] ***************************************************************** ok: [localhost] => { "msg": «*****» } PLAY RECAP ***************************************************************** localhost : ok=2 changed=0 unreachable=0 failed=0
Anonymous
вы с мака выполняете ?я
Артём
Да.
Anonymous
у вас значит нормально hvac устаровилс
Артём
$ ansible --version ansible 2.4.2.0 config file = None configured module search path = [u'/Users/*******/.ansible/plugins/modules', u'/usr/share/ansible/plugins/modules'] ansible python module location = /Library/Python/2.7/site-packages/ansible executable location = /usr/local/bin/ansible python version = 2.7.10 (default, Feb 22 2019, 21:17:52) [GCC 4.2.1 Compatible Apple LLVM 10.0.1 (clang-1001.0.37.14)]
Артём
В соседнем энве 2.8 и тоже без проблем.
Anonymous
я ужн реинст альнул и ансибл, pip и так далее а ошибка таже
Anonymous
original message: Please pip install hvac to use the hashi_vault lookup module