Как автоматизировать установку ОС на более чем 500 компьютерах?
Моя компания должна представить большое количество машин к концу года. Каждая из машин будет иметь аппаратный RAID 1 и работающий CentOS 6.
Какие варианты у меня есть для автоматизации установки ОС на этих системах?
У меня есть небольшой мини-рабочий стол, который я могу установить в качестве сервера установки, и мы можем получить переключатель для создания сети установки, но я не уверен, как на самом деле выполнить автоматические установки.
7 ответов
HowToForge имеет отличную статью, чтобы начать такой процесс здесь
По сути, ниже приведен список действий высокого уровня, который потребуется:
- Установите сервер DHCP, который может поддерживать количество клиентов (VLAN и т. Д.)
- Создайте HTTP-сервер, который может разместить установку
- Создайте сценарий кикстарта для установки. Кикстарт может быть основан на файле ks-anaconda.cfg, созданном при первой установке ОС в корневом домашнем каталоге (обычно находится в /root/).
- Интегрируйте сценарий кикстарта и HTTP-сервер с TFTP-сервером для поддержки загрузки PXE.
- Перезагрузите целевые машины и получайте прибыль!
The Foreman - отличный интерфейс для управления DNS, DHCP, PXE, Kickstart и Puppet.
Изменить: Вам лучше разместить любое программное обеспечение, которое вы выбираете для установки, на выделенном сервере. (Может быть, ваш офис может сэкономить один из 500+, которые у них есть). Даже если вы делаете это один или два раза в год, эта инфраструктура обеспечения принадлежит остальной части вашей "важной" инфраструктуры, а не настольному компьютеру.
Отказ от ответственности: я разработчик Stacki; Пользователь Stacki только что указал нам на этот вопрос. В то время, когда был написан вопрос, Stacki еще не был проектом с открытым исходным кодом, но сейчас он активно развивается с растущим сообществом.
Так что, хотя вопрос для полноты сейчас устарел, я бы хотел добавить Stacki как возможность для будущих пользователей Google.
Stacki имеет некоторое совпадение с Foreman/Cobbler/et al. (PXE-загрузка с шаблонными файлами кикстарта и т. Д.), Но также некоторые интересные функции. Например, у нас есть немного похожий на торрент одноранговый установщик, поэтому вы не забиваете узел обеспечения. Он выполняет сложную настройку секционирования, сетевого подключения и контроллера хранилища с помощью определяемых вами электронных таблиц, которые управляются версиями и хранятся в СУБД. Есть также аспект управления конфигурацией программного обеспечения, который полностью способен создавать такие сложные вещи, как OpenStack или Hadoop, но также достаточно независим, чтобы просто установить что-то вроде Ansible и запустить уже написанные пьесы.
Если вы хотите попробовать это, у веб- сайта Stacki есть загрузочный ISO прямо на первой странице, а также есть инструкции на GitHub, чтобы получить наш предварительно сконфигурированный пакет Vagrant (который - без особой причины - не размещен на Atlas, но, вероятно, должно быть).
Возможно, вы не захотите использовать подход с использованием USB-накопителя с 500 компьютерами, НО, вы вполне можете использовать подход с использованием образа с использованием CloneZilla, многоадресной передачи по сети с сервера. Увидеть
http://clonezilla.org/clonezilla-SE/
для деталей.
Хотя я полностью поддерживаю то, что говорит @NickV, не стоит недооценивать силу упрощенного подхода к созданию полного образа, скажем, с помощью USB-накопителя / дискового хранилища. Особенно, если вы не привыкли к работе DHCP, HTTP-серверов, кикстарта, TFTP и прочего. Что я обнаружил, так это то, что к тому времени, когда вы запустите все это и начнете работать, вы, возможно, сможете установить систему и получить полный образ загрузочного диска (с одним из множества программ, которые могут это сделать) скопировать этот образ на столько USB-устройств, сколько вы хотите и загрузитесь с него на столько систем, сколько пожелаете, и наполовину завершите.
Теперь, если вы устанавливаете это как постоянный дистрибутив, дополнительная работа, описанная @NickV, безусловно, принесет вам пользу в долгосрочной перспективе.
MAAS - действительно хорошее решение для этого. Предназначен для развертывания больших облаков с использованием автоматизации. Это намного больше, чем загрузка сапблера pxe... Он управляет состоянием питания, пользователями, установочными образами и т. Д.