боль, когда нужно деплоить N микросервисов (java) на один хост и все ломается, так как конфигурирование основано на group_vars. Т.е. group_name = service_name и все переменные в ямлике в папке с group_name. Я тогда вышел из положения и наклепал CNAME в DNS на этот один хост. Костыль, но сервисов всего 4 и вроде как терпимо, но теперь их M (30)...И я подумал, а что если вот так сделать?
- name: Deploy services
hosts: one_host
gather_facts: false
become: false
tasks:
- name: Deploy {{ service_name }}
include_role:
name: update-jar-service
vars_from: "{{ service_name }}".yml
loop:
- 'service_name1'
- 'service_name2'
- 'service_name3'
- ...
loop_control:
loop_var: service_name
Ну и предварительно в пайплайне накидать ямликов service_name1.yml? service_name2.yml в vars/ данной роли.
Минус - будет медленно. Асинхрон не применишь. Если только стратегии покрутить? Что скажете?
Ты просто болью поделился или хочешь совета как сделать?
Ну конечно хотелось бы совет получить.
Заворачивай микросервисы в контейнеры. Контейнеры оркестрируй подходящими инструментами)
В том то и дело, что это не решит проблему. Основная боль - генерация конфигов приложений. Это xml, который приземляю jinja2 темплейтами с использованием переменных в group_vars
Выйду с отпуска - обсудим, приходи в личку в рабочем чате.
Обсуждают сегодня