Существует менеджер конфигурации для одного сервера?
Добрый день.
В своей работе мне приходится поддерживать несколько сайтов от разных заказчиков, развернутых на виртуальных серверах. В какой-то момент пришло осознание, что если сервер умрёт, или что-то другое случится, то код сайтов я смогу достать из гита, БД из бэкапа, но что делать с конфигурацией сервера? Сейчас она никак не управляется и держится на честном слове.
Знаю, что существуют puppet, saltstack, chef, ansible, но они все выглядят большими монстрами и не подходят для конфигурации "обслужить одну виртуалочку" (как минимум тем, что работают по принципу "клиент-сервер"). Хотелось бы простое решение, чтобы можно было на новый сервер установить одно приложение, загрузить в него конфиги (из гита), и приложение само выполнило бы настройку сервера.
Интересует автоматическая настройка nginx, apache, php, mysql, cron.
Все же рекомендую ansible.
Во первых, он не работает как клиент-сервер, а работает полностью по ssh и на стороне сервера ничего устанавливать не нужно.
Во вторых достаточно прост в изучении.
В третьих, поставить ansible - дело 5 минут
romka777, В том-то и дело, что просто устанавливаете ansible на рабочий ноутбук (на винду/линукс/osx/начемвытамработаете), и делаете playlist. Запускаете ansible и указываете ему ip вашей виртуалочки. Он в ручном(!!!) режиме пойдет на виртуалочку через ssh и выполнить всё, что вы указали ему сделать в playlist.
Никаких серверов-сервисов нигде поднимать не нужно!
Другими словами - фактически просто проэмулирует вашу работу по ssh, единожды, как будто вы зашли на виртуалку и выполнили кучу команд с редактированием файлов. При этом, в самом начале сессии он определит тип операционки, железа, периферии, посмотрит через пакетный менеджер чо у вас установлено, и это все хозяйство можно использовать в плейбуке.
Ansible тем и хорош, что не нужно никаких выделенных серверов-служб-сервисов ни с какой стороны. Представляйте себе это как продвинутую автоматизацию ssh.
Puppet манифесты можно запускать без сервера, это может быть вариантом.
chef тоже можно запускать локально, это может быть вариантом.
ansible плэйбуки можно запускать с локалхоста по ссш до сервера, это может быть вариантом.
Докер может быть ещё одним вариантом.
bash скрипты могут быть вариантом.
Сохраненные конфиги в гите со структурой каталогов и маленьким скриптиком могут быть вариантом.
gitlab-ci может быть вариантом.
С остальными не работал - не могу сказать.
Выбирайте что сердцу мило)
Я бы именно для вашего варианта рекомендовал бы больше всего ansible+gitlab-ci. В пайплайнах ci описать варианты что ставить, редактируем hosts, делаем пуш и в пайплайнах просто нажимаем кнопку что надо с этим сделать. И получаем полный вывод результата в читабельном виде, в реальном времени (если надо можно цепочку тестов делать например). Гитлаб воркер ставится на машину с ансиблом. Да и сразу версионирование получите и историю.