Я студент-волонтер, помогающий поддерживать веб-сервер для небольшого веб-сайта вместе с несколькими другими студентами. Это довольно стандартный сервер LAMP, работающий на Ubuntu 12.04 и в основном размещающий сайты на основе PHP.
В последнее время мы несколько раз хотели внести незначительные изменения в конфигурацию, которые должны занять самое большее несколько минут - например, изменение разрешений для некоторых файлов веб-сайта для повышения безопасности, обновление сертификата SSL, внесение небольших изменений в config и т. д. - и случайно где-то испортились, что привело к падению всего сайта. Обычно это приводит к безумным 15 минутам или около того после попыток восстановить сайт снова.
К счастью, несколько минут простоя - это еще не конец света, поскольку это небольшой некоммерческий сайт. Однако я думаю, что это только вопрос времени, когда мы испортим то, что нелегко исправить, и это может привести к довольно серьезным проблемам. Конечно, у нас есть резервные копии, а также дополнительный сервер, но восстановление этих резервных копий может занять значительное время.
Итак, вот вопрос, который меня интересует: есть ли хороший способ проверить изменения конфигурации, прежде чем они появятся на сервере? Я думал о настройке вторичного сервера, настроенного точно так же, как первичный сервер, чтобы команды могли запускаться / тестироваться сначала на вторичном сервере, но я думаю, что было бы очень утомительно следить за тем, чтобы два сервера всегда были синхронизированы. Есть ли лучший способ сделать это, кроме виртуализации всего и работы со снимками?
Есть ли хороший способ проверить изменения конфигурации, прежде чем они появятся на сервере?
Да, есть, и именно этого вы пытаетесь избежать, настраивая среду разработки:
По сути, создайте зеркало своей живой установки. Затем вы можете настроить разработчика до тех пор, пока он не будет удовлетворен, а затем внести эти изменения в живую среду. Он мог бы быть довольно подробным, но в целом вот как это сделать. Осмелюсь сказать, что это в значительной степени отраслевой стандарт.
Есть ли лучший способ сделать это, кроме виртуализации всего и работы со снимками?
Может быть, но я не знаю ни одного и не использовал.
Удачи :)