Мы создали сервер, на котором работает инфраструктура для небольшой ассоциации. До сих пор мы пытались управлять конфигурацией с помощью Ansible, но это не было большим успехом. Возможно, мы делаем это неправильно.
В принципе, идея заключается в том, что этот сервер большую часть времени останется один, и люди будут добавлять или изменять что-то один раз в голубой луне. Это делает крайне важным, чтобы все, что настроено и работает на сервере, было хорошо задокументировано и понятно, поскольку люди, которые не управляют системой, часто теряют обзор (не говоря уже о запоминании деталей). Кроме того, со временем состав группы людей, которые будут администрировать этот сервер, изменится (когда люди уходят и присоединяются к «комитету»).
Мы начинали с чистой установки, добавляя роли в ansible всякий раз, когда мы хотели что-то настроить (nginx, phpfpm, postfix, firewall, sftp, munin, ..). Возможно, из-за нашей неопытности, мы, конечно, никогда не сможем напечатать набор ответных задач точно так, как нам нужно, чтобы это было за один раз, также потому, что конфигурация - это процесс проб и ошибок. Это означает, что на практике мы обычно сначала настраиваем любую службу, которую хотим запускать на сервере , а затем переводим в доступные задачи. Вы можете видеть, куда это идет. Люди забывают затем протестировать задачу или боятся сделать это, рискуя что-то сломать, или еще хуже: мы забываем или пренебрегаем добавлением вещей к ansible.
Сегодня у нас очень мало уверенности в том, что конфигурация ANSIBLE действительно отражает то, что настроено на сервере.
В настоящее время я вижу три основные проблемы:
- Трудно (читай: у нас нет хорошего способа) протестировать задания, не рискуя сломаться.
- Это добавляет дополнительную работу, чтобы сначала выяснить желаемую конфигурацию, а затем выяснить, как преобразовать это в ответные задачи.
- (В идеале) мы не используем его достаточно часто, чтобы создать привычку и рутину.
Важным моментом здесь является то, что для всего, что мы в конечном итоге делаем, новичкам должно быть легко выучить веревки без тонны практики.
Есть ли жизнеспособная альтернатива, которая по-прежнему предоставляет некоторые гарантии и проверки (сравнимые с объединением файлов Ansible с некоторыми master
), которые «не позволяют настроить вещи и записать то, что вы сделали»?
РЕДАКТИРОВАТЬ: Мы рассмотрели совершение /etc
мерзавца. Есть ли разумный способ защитить секреты (закрытые ключи и т. Д.) Таким образом, но все же есть хранилище конфигурации, доступное за пределами сервера?