[Из песочницы] Разворачивание Linux-дистрибутива с помощью SCCM 2012

image

Появилась вот необходимость массового разворачивания образа пользовательской системы Linux (на примере xUbuntu 14.04) через System Center 2012 Configuration Manager. Официальный ответ microsoft на technet о том, что это невозможно и вообще, максимум на что расчитан SCCM для линукса это разворачивать приложения не устроил, а смутные инструкции были несколько неточны или расточительны к ресурсам, было эмпирическим путем найдено решение.

Для тех кто все таки решил ступить на этот непростой (на самом весьма легкий) путь прошу под кат.

Из сторонних программ нам потребуется только dd для dos. Остальное можно сделать стандартными средствами linux и SCCM.

Для начала необходимо понять какой размер образа нам потребуется и какой размер мы соответственно готовы выделить на сервере (к слову средний образ win 7×64 с установленным софтом весит около 10 гб). Использовать для установки мы будем стандартную утилиту dd, которая побайтово копирует содержимое всего жесткого диска или его раздела. Я использовал жесткий диск на 80 гб и выделил раздел под систему в размере 9 гб без swap.

image

После установки систему можно (и нужно) настроить под нужды пользователей (установить софт, конфиги и пр.), образ будет сниматься с настроенной системы, ввод в домен до этапа клонирования я не тестировал, простым скриптом после установки за 15 секунд компьютер вводится в домен.

После настройки потребуется снова загрузиться с установочного носителя. Образ можно копировать на внешний диск, а можно на сетевую шару если компьютер подключен к локальной сети:

Создаем папку для монтирования и монтируем сетевую шару (-o если доступ к шаре требует логина и пароля)

mkdir cm
mount -t cifs //сетевой путь к шаре /cm(папка которую мы создали) -o user=имя_пользователя,pass=пароль


Теперь нужно определиться с правильный копированием образа. Используем команду fdisk для получения информации о разделах.

fdisk -l


image

Самая важная часть заключается в следующем-команду dd для копирования диска используем, указав в параметрах bs=1024(количество байт за раз) и count=8787970(это число получилось из количества проходов по 1024 байта для соответствия размеру раздела, который мы хотим клонировать +2 т.к. раздел начинается с 2048 байта, а нам необходимы первые байты для сохранения разметки диска). Разница с остальными способами в том, что если делать отдельно копию раздела, то не встанет загрузчик и есть вероятность что разметка побьется, а делать копию всего диска накладно по занимаемому месту. Таким образом мы сможем сохранить размер образа минимально необходимым и при этом у нас будет полноценная копия HDD без каких либо проблем разворачивающаяся на любом диске, размер которого больше размера образа.

dd if=/dev/sda of=/путь_до_директории_на_другом_диске/имяобраза.img bs=1024 count=8787970


image

Для мониторинга статуса dd используем команду в новом терминале:

watch -n5 'sudo kill -USR1 $(pgrep ^dd)'


image

После завершения переходим к SCCM 2012. Необходимо создать новый task sequence (выбрать custom task sequence). В первую очередь перейдем в параметры созданной нами последовательности и необходимо выбрать используемый загрузочный образ (я использую образ x86).

image

Переходим к редактированию самой последовательности. Для начала мы монтируем монтируем папку на шаре как виртуальный диск, который будет использоваться для разворачивания xubuntu (там должен находиться dd для доса, конфиг diskpart и образ системы (добавить Connect to Network Folder):

image

Следующим шагом необходимо очистить разметку диска, содержимое diskpart.txt (выбираем Run Command Line):

select disk 0
clean

image

И финальным шагом разворачиваем систему на диск (выбираем Run Command Line):

z:\dd if=z:\linux.img of=\\?\Device\Harddisk0\Partition0 bs=1024

image

Теперь когда все подготовлено загружаемся через сеть в загрузочный образ и выбираем нашу task sequence:

Осторожно, шакалы


Вот и все, образ можно разворачивать на неограниченное количество машин и без особых трудо- и ресурсозатрат через SCCM.

© Habrahabr.ru