Denis 災 nobody
всё-таки сделаю через fetch+template
Dmitry
я бы искал способ лочить его в репозитории и дал бы способ разрабам синхронизирвоать с апстрима
Dmitry
типа роль ansible со скриптом sync которая сливает его, и добавляет в git, тем самым, контроллируя стейт
Denis 災 nobody
бонусом если обновили пакет руками, а файл с шаблонами не затронут - ничего не сломается, просто настройки будут прошлой версии
Dmitry
откуда ансибл знает что в следующей версии шаблон не изменит именование перименных*
Denis 災 nobody
меняются они обычно раз в пару лет
Dmitry
src_one станет source_one
Denis 災 nobody
Denis 災 nobody
и если кто-то сделает такое то на стейжинге сразу отловится
Dmitry
ok, я просто не люблю стейт терять, мне кажется это сразу увеличивает риски. Здесь потеряли, там потеряли, и получилась реализация на баше
Denis 災 nobody
потом все обновления через дженкинс думаю зарулить
Dmitry
имхо, наиболее элегантное решение - докер, startup скрипт с jinja, все параметры через env.
Denis 災 nobody
каму нельзя в докер!
Dmitry
связь конфига, версии приложения и шаблона всегда в одном флаконе
Dmitry
https://github.com/kamailio/kamailio-docker
Denis 災 nobody
Denis 災 nobody
хотя может что-то починили..
Dmitry
Значения приходят от разраба или от них приходят шаблоны?
Denis 災 nobody
я понял идею с подсовыванием гит репы к шаблонам, при том что там только 1-2 файла из десятка меняются, но не вижу каких-то особоых преимуществ, только невозможность держать 3 версии сразу. Или нужно вести базу тэгов, чтобы можно было всегда узнать тэги 3 последних коммитов/веток.
Dmitry
Разрабы вообще трогают шаблоны? хоть когда-то?
Dmitry
или их интересуют только значения переменных?
Denis 災 nobody
могут трогать настройки, при необходимости запросят какие переменные им надо взять, но всё-таки обычно только внутренние сущности меняются, то что шаблонизировано почти нет
Dmitry
Denis 災 nobody
зачем?
Dmitry
чтобы они эти параметры меняли в асинхронном режиме, и это не зависило бы от деплоя
Denis 災 nobody
там параметры типа на какие интерфейсы и айпи сесть
Dmitry
а как часто меняются параметры?
Denis 災 nobody
может еще сколько памяти можно занять
Dmitry
в масштабе всей инфры
Denis 災 nobody
айпи никогда, интерфейс - при смене дистра когда тот же системд введён
Denis 災 nobody
пусть будет раз в пару лет
Dmitry
ну ок, не менются, а устанавливаются
Dmitry
каждое обновление, как я понимаю, да?
Denis 災 nobody
нет, реже
Dmitry
я пытаюьс понять масштаб необходимости автоматизации
Denis 災 nobody
можно делать по старинке, как выше писал, хуже не будет
Dmitry
(например, мы часто хотим с бранча запустить полный клон, и это требует большей автоматизации при той же поддержке стейта)
Denis 災 nobody
Denis 災 nobody
Denis 災 nobody
предлагаю дальше в личку.
Dmitry
ok
Denis 災 nobody
Denis 災 nobody
за работу камы, ее конфигов - только разраб для камы, а на мне выкатка этого добра
Vladislav 👻
Подскажите, как точечно (в рамках инвентори) подсунуть прокси для плейбука?
Vladislav 👻
что-то и так и сяк уже делал, но не взлетает
Timur
Vladislav 👻
что значит какой прокси для плейбука?
Vladislav 👻
обычный http прокси, чтобы машина могла в инет вылезти
Timur
Через энв не работает?
Timur
Как в доке описано
Timur
https://docs.ansible.com/ansible/latest/user_guide/playbooks_environment.html
да, это я
Коллеги, всем привет ещё раз. Прошу помощи, бьюсь третий день.
Имею таску, разворачивающую haproxy на 2 хоста. Затык в переменных.
haproxy.conf.j2:
https://pastebin.com/6MxPX6wH
host_vars/host.yaml:
https://pastebin.com/ybQsjaf7
Ответ Ansible:
https://pastebin.com/mt6ekkdk
Проблема явно в последнем блоке host.yaml и/или haproxy.conf.j2. Документацию обшарил, пробовал десятки вариантов синтаксиса, всё бестолку.
Dmitry
Коллеги, всем привет ещё раз. Прошу помощи, бьюсь третий день.
Имею таску, разворачивающую haproxy на 2 хоста. Затык в переменных.
haproxy.conf.j2:
https://pastebin.com/6MxPX6wH
host_vars/host.yaml:
https://pastebin.com/ybQsjaf7
Ответ Ansible:
https://pastebin.com/mt6ekkdk
Проблема явно в последнем блоке host.yaml и/или haproxy.conf.j2. Документацию обшарил, пробовал десятки вариантов синтаксиса, всё бестолку.
Первое, что бросается в глаза - это у тебя и в for используется backend, и внутри объекта тоже backend. Не пробовал так делать, поэтому не знаю, может это ещё что-то ломает, но как минимум вызывать backend.name в таком случае нужно через backend.backend.name
да, это я
Timur
Timur
Т.е. сделать вот так:
haproxy_backend_servers:
- name: rep-02
address: [redacted]
check.port: 8080
weight: 1
- name: rep-03
address: [redacted]:8080
check.port: 8080
weight: 1
Timur
Зачем все таски? Можно на уровне инвентори задать переменные окружения, в принципе
Vladislav 👻
proxy_env:
http_proxy: http://proxy.bos.example.com:8080
https_proxy: http://proxy.bos.example.com:8080
Vladislav 👻
вот это не работает
да, это я
Коллеги @kemko @tgadiev большое спасибо, всё заработало. Добра!
Timur
А в плее вы env задали при этом?
Vladislav 👻
ну значит надо дописывать плейбук...
Vladislav 👻
и делать проверку везде 😭
Timur
Зачем?
Timur
environment: "{{ proxy_env }}"
Timur
Кто мешает добавить это в инвентори?
Vladislav 👻
хм, сейчас проверю, просто у нас DNS уронили 😬
Vladislav 👻
Timur
Странно
Timur
По идее, это на уровне плея должно работать
Vladislav 👻
сейчас еще буду тестировать
Vladislav 👻
нее, если в плейбуке не прописать environment то не работает
Warrax
подскажите, как в ansible в текстовый конфигурационный файл вставить короткое имя с хоста (hostname -s)? через какой модуль?