На текущий момент у меня есть сервер с loki/prometheus/grafana, хочу копировать с помощью ansible конфиги на другие сервера (где требуется), правильно ли это, или есть более лучший вариант реализации?
P.S я понимаю что ansible это система управления конфигурациями
делаете темплейт конфига, а переменные выносите в инвентарь
best practice - иметь 1 точку правды. даже не practice, это по логике. best practice - это версионирование и иммутабельность. в данном примере, конфиг с сервера храните в registry с зафискированной чексуммой и скачиваете на каждый сервер из одного источника без изменений
на текущий момент необходимые конфиги расположены в git, задача их вытащить и положить в определенное место. Просто когда таких конфигов 10-15, то playbook становится очень большим, это как раз таки и волнует) вдруг есть что-то по лучше
роли, темплейты, инвентарь, имхо) не надо храниь файлики
если тебя волнует факт наличия большого колва tasks в плейбуке по поставке конфигов, плейбук можно оптимизировать сгруппировав типовые задачи по поставке конфигов через модуль copy и loop, где src/dest будут передаваться как list
да, я думал так сделать, и даже пробовал но путь к файлам везде разный + разные названия файлов (их же тоже надо указывать). Разный в плане что к примеру loki конфиг надо в /etc/loki/loki-default.ini, а Prometheus например/etc/prometheus/prometheus.yml
готового примера под рукой нет, но аналогия думаю понятна - name: Add several users ansible.builtin.user: name: "{{ item.name }}" state: present groups: "{{ item.groups }}" loop: - { name: 'testuser1', groups: 'wheel' } - { name: 'testuser2', groups: 'root' }
а loop можно указывать словарем? (вроде он) просто сейчас у меня loop это loop: - test1 - test2
Обсуждают сегодня