Globalna Konfiguracja Serwerów

Witam,
Szukam jakiegoś rozwiązania tak by można było z jednego miejsca globalnie i automatycznie edytować konfiguracje na wszystkich serwerach. Tak by można było automatycznie zmienić wartości application.yml, database.yml itd.

Myślałem nad użyciem puppeta i hiery aczkolwiek nie wiem czy nie będzie to ubijanie muchy z armaty dla 6-7 serwerów.
Macie jakieś doświadczenia z powyższą technologią?

Rozważałem także Vaulta. Wydaje się być prosty do wdrożenia.

Odbiegając od tematu chciałbym jeszcze spytać czy jest możliwość edytowania tych wartości bez restartu aplikacji?

Z mojego doświadczenia polecam ansible. Używam nawet dla aplikacji, które działają na jednym serwerze.

Vault ma chyba nieco inne zastosowanie?

Po zmianie konfiguracji musisz zrestartować aplikację, w Ruby tego raczej nie przeskoczysz.

1 Like

Jeśli chodzi o zarządzanie samą konfiguracją serwerów to też bardzo polecam Ansible, możesz skorzystać od razu z Ansible Vault (https://docs.ansible.com/ansible/2.4/vault.html) do samego trzymania sekretów w repozytorium. Używam nawet do zarządzania własnym środowiskiem lokalnym i jestem bardzo zadowolony :wink:

Jeśli potrzebujesz więcej i chciałbyś zarządzać całą infrastrukturą (np. mieć wszystkie informacje o zasobach AWS/innego providera w kodzie) to możesz jeszcze sprawdzić Terraform https://www.terraform.io/, ale to już jest krok dalej niż Ansible.

1 Like

A potem możesz połączyć ansible z terraform. https://github.com/adammck/terraform-inventory

1 Like

Dzięki za odpowiedzi. Rozważę Ansible. Wydaje się być najszybszym rozwiązaniem.