Anton
сплит это вроде бы метод, он не через | идёт, а через . и его результат это лист, а у регекспа строка вроде бы
Alexander
ну там по индексам 0 и 1 можно вытащить, наверное
Anton
ну да, есть даже first и last
Anton
.split() | first
Anton
как то так
Alexander
есть plugin filter'ы
Alexander
там вижу splitext
Alexander
он по / разделяет
Anton
ext - extention
Alexander
а, ну да, split() он вроде в самой Jinja2
Anton
по точке разделяет
Anton
в split() можно указать по какому символу делить
Bogdan (SirEdvin)
Можно добавить plugin filter для роли, если что вдруг
思考的猴子
Привет , никак не могу найти как сделать, может кто сталкивался? как сделать чтобы часть задач из плейбука запускались только на хосте на котором был инициирован старт?
Pavel
Выделить эти задачи в отдельное множество, подключаться к 127.0.0.1 и выполнять их.
Nazar
делигейт ту
Viktor
или local_action
k4k
- name: Path existing check stat: path: /{{backups_path}}/{{inventory_hostname}}/ delegate_to: localhost become: false register: p
k4k
something like that
思考的猴子
local_action все равно на всех выполняет
Pavel
Фактически есть 2 плейбука - один выполняется только на одном хосте localhost, второй на нем же и на всех остальных.
思考的猴子
нужно синхронно запускать, только часть задач не передавать
思考的猴子
странно что нету переменной и адресом хоста который был инициатором :( через extra-vars передал
思考的猴子
run_once не спасает?
то что нужно! работает :) спасибо :)
Alex Sharov
🙂
Alexander
JSON Query Filter
а там можно разбить по @ одно из полей, поменять порядок и изменить тип на int через jmespath?
Alexander
как это будет выглядеть?
Vladimir
Господа, а какую систему сервис дискавери вы используете ? Или как то решаете эту проблему внутри ansible
Vladimir
?
Vladimir
Consul ?
Vladimir
Или у вас нет таких проблем ?
citius
консул
Pavel
https://github.com/ansible/ansible/blob/devel/contrib/inventory/consul_io.py
Vladimir
Спасибо
Alf 🙀
Господа, а какую систему сервис дискавери вы используете ? Или как то решаете эту проблему внутри ansible
А я бы вот с удовольствием послушал какого рода проблемы вы хотите решать с помощью сервис дискавери. Заранее спасибо.
Alf 🙀
Тут пожалуй нужно оговориться и добавить: из тех что вы могли/можете решить с помощью ансибла.
Vladimir
Ну у меня большой план, я еще не уверен что что он для этого мне нужен будет, но динамически линковать хосты друг к другу,
Vladimir
Точнее сервисы
Vladimir
Если я правильно понял он для этого нужен, т.е. не указывать строго что вот хост вот его порт и тп
Vladimir
А что бы сервисы сами регистрировались где то
Aleksei
Если я правильно понял он для этого нужен, т.е. не указывать строго что вот хост вот его порт и тп
у нас есть и эврика и консул, так получилось. в целом разницы большой нет, если делаете client side lb, то там больше от имплементации на стороне клиента зависит
Alf 🙀
а как без дискавери иметь динамический инвентори?
Ну по разному можно, скажем так. Динамический инвентори не всегда означает наличие сервис дискавери
Aleksei
нет, но с ним в разы удобнее, в тот же консул очень удобно складывать метаданные
Vladimir
Он же решит проблему когда мне нужено будет добавить для nginx 10 бекэндов
Alf 🙀
Консул темплейт решит да
Vladimir
И не писать руками все связи ? Я просто пока не пойму будет ли у меня такая проблема ) Я пока только планирую все это использовать :)
Vladimir
Ну тогда поиграюсь с ним
Sergey
Он же решит проблему когда мне нужено будет добавить для nginx 10 бекэндов
никак не решает. для этого есть либо платный нджинкс+, либо нджинкс с модулем соответствующим.
Vladimir
Мне главное что бы я мог в конфигах не писать статические адреса
Vladimir
Т.е. допустим пример, есть у меня php-fpm и мне нужно сказать ему что allow_address={{ all nginx }}
Vladimir
И где то эти all nginx должны регистрироватся, либо разбить их по группам в зависимости от приложения
Vladimir
И разве нельзя использовать upstreaь с хостами ?
Vladimir
главное динамическая линковка в нужных местах конфига
Vladimir
Вот взял я из vmware\openstack хостов и хочу их линковать в зависимости от апликации\нужд и тп
Vladimir
И мне хочется писать для каждого хоста host_vars и указывать точные порты ip и тп
Sergey
Вот взял я из vmware\openstack хостов и хочу их линковать в зависимости от апликации\нужд и тп
вот оттуда же возьми своим скриптом динамического инвентори хосты. а порты - это уже нечто другое: это нужна поддержка соответствующая во всех приложениях, прокси и прочих вещах.
Vladimir
Ну вот я думал что консул это решит мне, типо есть контенер с чем угодно, он идет в консул и говорит я такой ,у меня вот приложение слуает 9653 порт, и допустим обозначает его как то и ансибл может прийти и взять это значение и подставить в нужное место
Vladimir
Он такое не может ?
Sergey
Опять же, концепт "оно само" идёт вразрез с концептом IaaC
Vladimir
Почему ?
Vladimir
Оно опишет само себя )
Vladimir
считай это как писать в бд , это тупо мета
Sergey
Потому что IaaC - это значит, что всё проскриптовано и прописано в полном объёме, и твой репозиторий с деплоями и есть документация по твоей инфраструктуре.
Aleksei
так оно будет указано, просто в конфиге аппа
Vladimir
Да она есть, но это не значит что я должен статически в каждом конфиге прописывать все сервисы
Aleksei
в соседней репе
Vladimir
мне в голову приходит только динамическая линковка, т.е. я хочу это держать как данные
Vladimir
А не как код
Vladimir
А линковать по тегам\или как угодно
Vladimir
Я может просто не правильно объясняю
Vladimir
На бумаге было бы проще наверное )
Sergey
А линковать по тегам\или как угодно
Фраза "как угодно" в тех случаях, что я видел, на деле реализуется в виде "никак" или "руками".
Sergey
Это первое.
Vladimir
Ну пускай будет сушность тег
Vladimir
Так сказать групировка
Sergey
Второе - ты по сути говоришь о системе оркестрации контейнеров. Это в другой чат совершенно - про k8.
Vladimir
А причем тут контейнеры ?