это общий вопрос о развертывании и обслуживании узлов. Я не сисадмин.
Я рассматриваю следующую «наивную» стратегию:
Это обычная практика? Есть ли лучшая стратегия? Есть ли какие-то дополнительные углы, о которых мне следует подумать?
Похоже, вы - главный кандидат на решение для облачных вычислений. Я бы попытался использовать что-то вроде Amazon EC2, который автоматизирует все перечисленные вами шаги вплоть до нажатия кнопки. И не ограничивайтесь только EC2, конкурентов много.
Но да, короче говоря, это довольно распространенная практика.
Вы можете попробовать такие инструменты, как SystemImager который поддерживает распространение PXE Multicast и даже протокол BitTorrent для распределения изменений. Если вам нужно создать много узлов одновременно, bittorent заманчиво, но будьте осторожны, вы можете поставить некоторые коммутаторы / маршрутизаторы на колени, если не будете обращать внимания.
Добавить кукольный или Повар в микс для управления пакетами / файлами конфигурации / веб-сайтами, и все будет в порядке.
Вы можете пересмотреть шаг 1. Вы ограничиваете свою клиентскую базу. Вы можете ограничить набор поддерживаемых дистрибутивов, но я бы не стал выбирать только один.
Для распространения приложений я бы предоставил пакеты в формате, родном для ОС узлов. Тогда обновление приложения будет простым обновлением пакета, что настолько просто для системного администратора, насколько это возможно.
Если вы хотите подготовить всю среду, начиная с уровня ОС, у вас есть 2 варианта. Вы можете подготовить файл виртуальной машины в выбранном формате (или форматах). Тогда вам придется подготовить всю среду, начиная с ОС.
Или вы можете подготовить систему / образ с автоматической установкой (используя встроенную неинтерактивную систему установки дистрибутива или объединить ее, например, с xCat), которая развернет полную ОС, настроит ее, а затем загрузит ваше приложение поверх.