Обещал запилить Ansible playbook для того что бы разворачивать Pi-hole DNS+Wireguard VPN
Вот
https://github.com/3DRaven/pi-hole2vpn
На паре провайдеров попробовал, работает. В процессе пришлось съехать с hostzealot, редкостное говно. Так что поднял на EC2 себе VPN новый. Можно Digitalocean сносить теперь, там готовая сборка у них есть, не нужна больше. Плюс в моей еще и блок листы сразу подгрузит. 5млн доменов в коробке.
@3draven использую только чтобы базово настроить ос, вайргард и поставить k3s, дальше терраформ. Поддерживать много ямла это боль больская
@zhulik погоди, я что то сразу не понял, а что ты "дальше" делаешь тераформом? Оно же надо что бы инфру развернуть имея провайдер. Для к3с есть провайдер? Что именно ты им делаешь? Может и мне поможет действительно.
@zhulik я с тераформом почти не знаком, потому заленился разбираться. Им можно развернуть в к3с постгрю, минио и прочие сервисы?
@3draven любыми ресурсами кубера можно управлять, и хельмом тоже https://registry.terraform.io/providers/hashicorp/kubernetes/latest/docs
https://registry.terraform.io/providers/hashicorp/helm/latest/docs
@zhulik а запустить тераформ из ансибла можно? Что бы просто был один плейбук, который раскатает все. Я так понимаю у тераформа преимущество только в краткости и готовых провайдерах, но все равно с нуля все ансиблом делать. Что бы два раза не возится с разными штуками и иметь одну команду на раскатку. Или это принято по другому делать?
@3draven ну это типа 2 разных слоя: ансибл базово готовит ОС серверов, а терраформ уже то, что на них запускается. В моем случае я меняю и запускаю плейбук раз в 100 реже, чем терраформ, поэтому смысла интегрировать их я не вижу: тупо медленно будет ради ничего.
@zhulik я правильно понимаю, что тераформ берет провайдер как слой абстракции и еа любом провайдере с одними и теми же настройками может развернуть постгрю? Он время по сравнению с ансиблом экономит при написании деплоя, это проще чем ансиблом все раскатать?
@3draven не, провайдер это не абстракция, это просто маппинг ресурсов платформы в HCl. Создать постгрю в кубере, в aws rds или в azure это три большие разницы с тз терраформа. Переносимо будет если у тебя и там и там все в кубере сидит, не важно managed или нет.
@zhulik тогда в чем плюс по сравнению с ансиблом? Мне надо развернуть инфру на свои три с половиной калеки сервиса. Тераформ мне жизнь облегчит? :)
@3draven на три с половиной, наверно, усложнит. Но когда и если сервисов станет больше, с терраформом и кубером будет проще кмк
@zhulik а как ты к3с разворачиваешь, есть проверенные ансибл плейбуки или сам писал?
@3draven там одна команда буквально, k3sup, для control plane одни параметры, для воркеров другие. Есть, наверно, готовые плейбуки, но мне лень искать было
@zhulik а потом постгря и прочие сервисы уже в тераформе?
@3draven ага, через провайдер для хельма. Имей в виду ещё, что у кубера есть своя бд, k3s поставляется с etcd, и ее желательно бэкапать на всякий
@zhulik а если я хочу поставить свой кастомный сервис в к3с, это делать тераформом можно или ансиблом придется?
@3draven терраформом, тебе нужно будет контейнеризовать твой сервис, и как минимум создать deployment или stateful set в зависимости от сервиса. Скорее всего ещё нужен будет service, и, если http, то ещё ingress. K3s поставляется с cert manger, можно без особой возни получить https от let's encrypt, и оно его само продлевать будет
@zhulik спасибо, примерно понятно. То есть терраформ по сути будет содержать ямл, настраивающий провайдер, ямла, описывающий набор контейнеров, которые нужно развернуть в кубере и настройки контейнеров?
@3draven ну типа, но ямла там можно вообще не касаться, вместо него HCl.
@3draven апплаишь заново, и все. Ты через терраформ сообщаешь куберу как должно быть, а он потом сам разруливает. Иногда могуть быть проблемы с хельмом, когда, например, контейнер не может стартануть, тогда терраформ может ждать до 5 минут, и если его прибить, следующий апплай не пройдет, надо будет руками грохнуть секрет с инфой о предыдущем