Aleksey
там требуются специфичные библиотеки
Aleksey
и полпитона
Lev
там требуются специфичные библиотеки
Venv на удаленной машине? Контрол машину тоже конфигить надо так то
Aleksey
контролмашина это докер имиддж в котором всё чо надо положили
Aleksey
венв на удаленной машине это ansible_python_interpreter и прощая митоген
Lev
плохой интерфейс вывода сделал ? как лучше?
Я бы посмотрел лукап плагин лучше. Он и так на контрол машине выполняется и логика линейной буде
Lev
Я бы посмотрел лукап плагин лучше. Он и так на контрол машине выполняется и логика линейной буде
Смотри идея в чем: 1. Мета роль туда лукап плагин суешь 2. Мета роль инклюдаешь где секрет нужен 3. В лукап плагин суешь хождение в волт
Aleksey
линейная всмысле роль сразу положит файлы ?
Aleksey
у меня сложное хождение в волт на много тасков
Lev
линейная всмысле роль сразу положит файлы ?
В роли где серты кладешь, серт получаешь из лукап плагина
Lev
у меня сложное хождение в волт на много тасков
Надо по определенным ключам выбирать ? Или что?
Lev
не думай сюда
Имхо роль для хождения в волт за секретами костыль. Она ведет себя как лукап плагин: - запускается на контрол машине - получает значение из внешней системы и выставляет значение
Aleksey
я вот думаю что её ещё надо упросить. она сейчас ещё и сертификат из секрета получает.
Aleksey
а я https://github.com/TerryHowe/ansible-modules-hashivault
Lev
Я тут намедни под офигел, оказывается в yaml ключи могут быть многострочные, а еще пустые могут https://t.me/cfgmgmtcamp/36
Lev
Ну спека жи....
Ну вот про пробелы знал. Мультилайн для ключа новенькое оказалось
Sergey
Ну вот про пробелы знал. Мультилайн для ключа новенькое оказалось
Знамя у бессмысленных и беспощадных несёт значение с пустым ключом.
Aleksandr
Как видно он имя домена парсит и каждую букву как отдельную..ну ты понял
server { listen 80 default_server; listen [::]:80 default_server; server_name {{ item.value.domain }}; root /var/www/{{ item.value.folder }}; index index.html; try_files $uri /index.html;
Aleksandr
зачем там цикл? если у тебя там всегда одна пара значений
Andrey
зачем там цикл? если у тебя там всегда одна пара значений
Я хочу понять где мой косяк, я не буду юзать то что скинул.
Aleksandr
давай по-другому, что ты в конечном итоге хочешь получить? три файла с одним server_name и root?
Andrey
давай по-другому, что ты в конечном итоге хочешь получить? три файла с одним server_name и root?
Посмотри пжл, код который я скинул выше, почему выводит по букве, там же вывод
Aleksandr
я имел ввиду без этого порно server_name h; root /var/www/h; server_name o;
Andrey
или где косяк
Aleksandr
item.value.domain содержит строку
Aleksandr
итератор от строки будет идти посимвольно
Andrey
item.value.domain содержит строку
Ок, что посоветуешь
Aleksandr
ща
Andrey
окс
Andrey
ща
Слушай давай упростим
Andrey
ща
https://pastebin.com/pWjQH34B
Andrey
Один х нет
Aleksandr
{'key': 'host3', 'value': {'domain': 'hostname3.com', 'folder': '/www/host3'}} из-за такой структуры в item, цикл говно идея
Aleksandr
5 минут
Aleksandr
server { listen 80 default_server; listen [::]:80 default_server; server_name {{ item.value.domain }}; root /var/www/{{ item.value.folder }}; index index.html; try_files $uri /index.html;
короче, я подумал над этим уже минут 15, и самая здравая идея убрать цикл и использовать ^
Aleksandr
вся проблема в том, что ансибл вот так делает перменную item (item={'key': 'host3', 'value': {'domain': 'hostname3.com', 'folder': '/www/host3'}})
Aleksandr
учитывая что ты и так файл делаешь в цикле, то сам цикл в шаблоне уже не нужен и без гемора там цикл не сделаешь
Alex
TASK [itests/jfmc : Check topology health] *** fatal: [app_master]: FAILED! => msg: 'Timeout (12s) waiting for privilege escalation prompt: ' а кто то сталкивался с подобным?
Anonymous
Товарищи , кто-нибудь писал включение на группу пк через wake on lan ? Именно на группу
Vitaliy
Всем привет. Имеется следующая наркоманская идея. Можно ли хранить group|host vars в разных репозиториях, playbookи с ролями в отдельной репе и притягивать vars при помощи requirements (ну или другими способами)? Притянуть не проблема, проблема в том, что vars притягиваются в roles и становятся не видны для таска.
Vitaliy
Репе с шареными плэйбуками и под каждый энв репа отдельно?
есть несколько точек. У них свои vars'ы. Остальное все одинаковое.
Timur
По сути это вынос инвентарей для разных энвов в разные репы
Timur
Вполне ок, как по мне
Vitaliy
group и hostvars можно в отдельные репы вынести, в принципе. Главное, чтобы при сборке проекта все корректно по путям раскладывалось
Ну да. Проблема в том, что galaxy притягивает в roles. И оттуда забрать варсы не может потом таск.
Lev
есть несколько точек. У них свои vars'ы. Остальное все одинаковое.
Я бы в конкретном репе ля энва гитовые сабмодули пользовал на репу с родями
Lev
Отличная идея, сейчас попробуем 👍
Вобще можно по разному организовать: - в моно репе бранч = энв - в моно репе все энвы в одном бранче описаны и по папкам раскиданы - можно 1 репа = 1 энв а роли рулить через гэлакси(в реквайрементах можно казать пути до приватных гитовых реп/хттп урлов) - можно 1репа = 1 энв и роли через саб модули подключать Везде свои +\- есть
Lev
Ну сабмодули мне подходят, роли у меня итак в другой репе, варсы тоже и плэйбуки тоже.
В сабмодулях линк идет по хэшу коммтта в другой репе, а это заморочно рулить
Denis
Всем привет Подскажите, пожалуйста, как правильно организовать использование secret vars? У меня есть несколько вариатов 1. В playbook-е через vars_file подключать нужны мне секрет 2. Поскольку я буду использовать group_vars, то файле с переменными для группы ссылаться на переменные из secret vars
Denis
спасибо
Степан
Люди, помогите. Не могу найти в инете инфы. В инвенторис файле в ансибле после адреса хоста есть приписка tmp_inernal_ip, расскажите за что она отвечает)) Пожалуйста
Slava
Ну просто из 100 машин на 2-х что-то зависло, например, и я не могу понять на каких машинах. Просто таймаут выполнения плейбука указать в таком случае?
Vitaliy
Вобще можно по разному организовать: - в моно репе бранч = энв - в моно репе все энвы в одном бранче описаны и по папкам раскиданы - можно 1 репа = 1 энв а роли рулить через гэлакси(в реквайрементах можно казать пути до приватных гитовых реп/хттп урлов) - можно 1репа = 1 энв и роли через саб модули подключать Везде свои +\- есть
В общем с submodules не получается. Примерная схема тут https://pastebin.com/Va19gCVp По этой схеме, мне соответсвенно в каждой локации нужны свои варсы. Если я гружу репу с плэйбуками как сабмодуль в репу с варсами, git ложит их в дочернюю папку, что не есть хорошо. Если я гружу варсы в репу с плэйбуками, мне придется плодить бранчи в этой репе для какждой локации. Есть идеи может?
Anton
Коллеги, у меня странная хотелка. На баше это я бы реализовал на раз два, но контролировать хотелось бы именно в ансибле с возможностью повторного запуска по "неудачникам". Задачка скорее типа ansible-runner или ansible-pull, но осложняется ограниченностью хоста исполнения на который натянуть ни то ни другое не представляется возможным. Конкретика: заставить 4к+ хостов скачивать список файлов с CDN сервера одновременно +-, для более быстрой доставки файлов чем предусмотрено чем либо еще. Увеличение количества форков или разделение будет упираться в память сервера ansible. Есть ли какой-то вариант скормить get_url сразу список и засунуть эту задачу в async poll=0 для последующего контроля?
Anton
50-100 серверов == 50-100 форков.. у меня больше 50-ти форков как-то плохо работает в принципе.. память начинает заканчиваться. + сама загрузка даже с CDN занимает от 15 до 30 минут в лучшем случае.. файлики объемные