SCCM - развертывание win7 по PXE
Jan. 17th, 2013 10:52 amSystem Center Configuration Manager - отличная штука, если умеешь с ней обращаться.
Старый мой мануал, предназначенный для 2007, но для 2012 тоже применяется.
Развертывание win7 по PXE посредством SCCM
1. Добавляем серверу роль WDS (роль развертывания windows). Не производим конфигурение сервера средствами мастера настройки WDS сервера. В случае если произвели конфигурацию WDS сервера средствами мастера настройки WDS (ну мало ли), в консоле управления WDS серером, в свойствах, на закладке отклик PXE, выставить не отвечать никаким клиентским компьютерам.
Помимо этого, если используется DHCP сервер установленный не на компьютере с WDS либо внешний DHCP сервер, в консоли управления WDS серером, в свойствах, на закладке Протокол DHCP поставить галку "Не прослушивать порт 67". Теперь ждём около получаса.
\\личный комментарий от соавтора мануала, который кагбэ вводит в противоречие: "Лучше все же настроить первоначально роль WDS сервера средствами мастера настройки. В дальнейшем в некоторых местах упрощается диагностика."
Хочется уточнить - не обязательно давать роль WDS серверу, на котором стоит SCCM. WDS может стать другой сервер, в таком случае его необходимо будет прописать в "системы сайта". В моём случае пришлось сделать именно так по причине того, что внезапно намертво отвалилась служба WDS на сервере с SCCM.
2. Добавляем sccm роль PXE. Обращаем внимание на то, что после добавления этой роли у нас создаётся директории на C:\RemoteInstall\
Опять же обращаю внимание, что лучше сразу разбить место на сервере на диски C и D. В случае обнаружения диска D папка remoteinstall автоматически создаётся на нём. Геморрой с внезапно закончившимся местом нам не нужен.
Тут же задаём пароль на загрузку по PXE. Если вы забыли\забили выставить пароль, то в дальнейшем это можно сделать по адресу консоль сццм - база данных сайта - управление сайтом - %sitename% - системы сайта - сервер, где стоит WDS - точка обслуживания PXE - свойства. Ищем там, затеряться сложно. Для чего нужен пароль догадаться несложно, банальная защита от дурака. На кой черт вам проблемы с пользователем, который взял и нажал всё что его просили? Ф12, далее, далее.
Хочется добавить также, что если вы уже связались с SCCM, то вам придётся волей-неволей сражаться с его глюками. В частности, загрузочное файло из remoteinstall будет периодически исчезать. Смиритесь с этим, ибо SCCM вообще распологает к смирению.
3. Добавляем образы загрузки. Взять их можно, например отсюда: \\%servername%\%sitecode%\OSD\boot\ далее согласно разрядности. Нам необходимы файлы вида install.wim. Однако их можно достать и самостоятельно из дистрибутива операционной системы.
Если у нас нестандартная сетевая карта, то нам понадобится прикрепить к образам драйвера. Для этого нам необходимо сначала сходить по адресу - развертывание операционной системы - драйверы - импортировать. Следуем указаниям мастера и впиливаем нужный нам драйвер. После этого идём на образ загрузки, свойства - вкладка windows PE. Нажимаем на солнышко и добавляем необходимый нам драйвер.
В образы необходимо добавить только жизненно необходимые драйверы.
4. Добавляем образы OS.
5. Открываем udp-порты 67, 68, 69, 4011.
6. Прописываем инфу на дхцп. Для циски и на x86 это выглядит так: ip dhcp pool *****
next-server
bootfile SMSBoot/x86/wdsnbp.com
7. Создаём шару с общим доступом на чтение и выполнение. Там мы будем хранить дистрибутивы. Этот пункт больше относится к распространению программного обеспечения, но и тут тоже пригодится.
8. Правим реестр следующим образом.
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\WDSServer\Providers\WDSTFTP
Открываем параметр ReadFilter и добавляем \* в конец. После правки реестра необходимо перезапустить сзужбу WDS.
Это разрешение отправлять по tftp все файлы из рутовой директории.
9. Самое интересное. Лезем в последовательность задач (управление компьютером - развертывание операционной системы - последовательность задач). Новый документ - последовательсность задач - установить существующий пакет образа. Выбираем один из созданных нами пакет загрузки. Далее. Выбираем пакет образа операционной системы. Оставляем галку "создать разделы и отформатировать компьютер. Здесь же можно включить или отключить учетную запись локального администратора. Выбираем присоединение к домену или к рабочей группе. Далее. Присобачиваем в пакетах KB977384 - Advanced Client Hotfix. Он нам нужен, поверьте. Далее - снимаем все галочки. Выбираем, что делать с обновлениями. Далее. Выбираем, если нужна установка программного обеспечения. Далее. Готово.
А теперь исправляем содеянное. Встаём на только что созданную последовательность задач. Кликаем - правка. Обращаем внимание на два пункта: Применить операционную систему и применить образ данных. Меняем их местами, то бишь ставим "Применить образ данных" наверх. Теперь заходим во второй пункт, "Создать разделы на диске". Если не хотим долгого и вдумчивого форматирования, поочередно кликаем на каждый том и ставим галочку "быстрое форматирование". Помимо этого заходим на том номер два, то бишь тот, который не имеет фиксированного размера 100 мб. Заходим в свойства и выбираем "использовать 100% от свободного пространства". Ставим галочку, сохраняем, выходим.
10. Кликаем правой мышкой на только что созданную последовательность задач. Выбираем пункт объявление. Натравливаем объявление на коллекцию "неизвестные компьютеры. Ставим галочку "сделать эту последовательность задач доступной для загрузки с носителя и через PXE". Далее. Выбираем нужные параметры, можно поставить и по умолчанию. Далее. Готово.
11. Проходимся по всем созданным нами связкам. делаем следующее. Заходим в образы загрузки, кликаем по ним правой кнопкой мыши. Управление точками распространения. Добавляем в необходимые нам точки обнаружения. Надо учитывать, что в точке распространения заканчивающейся на SMSPXEIMAGES$ должны содержаться только образы загрузки. Заходим в образы операционной системы, делаем то же самое. Заходим в KB977384 среди пакетов софта и тоже добавляем в точки обнаружения. В дальнейшем, если вдруг мы сталкиваемся с ошибкой вроде "Не удалось запустить последовательность задач, такой то пакет в такой-то точке обнаружения, нам достаточно будет посмотреть на код пакета (выглядит он как код самого сайта сццм + порядковый номер) и добавить его в забытую точку обнаружения. В директории RemoteInstall загрузочные файлы появляются после того, как образы загрузки добавляются в точки обнаружения.
Для удаления делаем всё в обратном порядке.
1. Удаляем все объявления и последовательности задач.
2. Удаляем образы операционных систем.
3. Удаляем образы загрузки из точек распространения.
4. Удаляем роль PXE SCCM.
5. Удаляем роль развертывания WINDOWS (WDS) через 30 минут после удаления роли сццм.
6. Удаляем директории c:\win\temp\*.* и \reminstall
7. Перегружаем сервер.
Тут есть следующая тонкость. Сццм может запретить выполнение пункта четыре, утверждая, что не может удалиться без очистки точек обнаружения. Связано это, как показывает опыт, с пресловутым KB977384. Запоминаем, где он находится, вычищаем из точки обнаружения и удаляем вообще пакет. Перегружаем сервер, удаляем роль сццм, добавляем пакет заново. Баг пофиксен.
Эталонный образ операционной системы
Логично было бы предположить, что образ операционной системы снимается следующим образом:
1. Устанавливается система, накатывается софт, запиливаются все драйвера, выполняются все настройки.
2. Запускается некая программа сццм, снимается образ.
3. Профит.
Однако, в данном случае нам придётся поступить по другому.:
1. Выполняем пункт с построением эталонной системы.
2. Заходим в консоль сццм. Последовательность задач - создать носитель - носитель для записи - сохранить.
3. На выходе получаем файл ISO с мастером.
4. Запускаем мастера на эталонной машине. Следуем его указаниям, в т.ч. и сохраняем полученный файл в нужной директории.
5. Выполняется sysprep, на выходе получаем совершенно голую систему и файл образа.
Добавить хочется только одно - как показывает практика, мастер диск не работает с USB-привода. Это нельзя понять, это надо запомнить.
# Перечень ошибок и их решения.
Для начала давайте рассмотрим, как теперь у нас будет выглядеть установка операционной системы. Мы выбираем загрузку LAN, стучимся по айпишнику на наш сервер. Срабатывает загрузчик (из директории remoteinstall\boot, собственно, что сы и выбрали по SMSBoot/x86/wdsnbp.com). SCCM идентифицирует нас по mac-адресу и UUID. Все неизвестные маки и уиды падают в коллекцию "неизвестные компьютеры", на которую у нас и натравлено объявление. То есть если наш mac уже есть в базе сццм, известен ему, срабатывает файл abortpxe. Поэтому если мы внезапно оборвали загрузку, то для того, чтобы abortpxe не сработал, нам понадобится сначала вынести нужный нам mac из коллекции sccm. Заходим в консоль - коллекции - ищем unknown с нашим маком и удаляем его. Стоит ли говорить, что если мы хотим переставить систему на машине, которая уже в коллекции не как неизвестная, а как давно названная по имени, у нас ничего не выйдет, пока мы её оттуда не удалим? Капитан Очевидность в лице моего соавтора утверждает, что культурное имя учетной записи в базе SCCM присваивается только по окончанию развертывания ОС на машине и ответе с этого компьютера SCCM.
Теперь давайте обратим внимание на UUID, который, будучи ещё одним идентификатором, вроде как должен быть уникальным. GUID не сбрасывается при перепрошивки биоса. Капитан очевидность подсказывает, что точно также каждое сетевое устрйоство имеющие мак-адрес, должно иметь абсолютно уникальный мак-адрес.
Однако, некоторые производители оборудования, в частности ASROCK не в курсе важности этого параметра. Все материнские платы выпускаются у них с одинаковым UUID, следовательно что происходит у нас при развертывании операционной системы на машинах на базе материнских плат ASROCK? Давайте смоделируем ситуацию.
Загружаем первую машину. Загрузка по LAN. F12. Отрабатывает wdsnbp.com и остальная связка, в SCCM улетает GUID и mac. Запускается последовательность задач. Отрабатывается. Профит.
Запускаем вторую машину. Загрузка по лан, ф12, определяется GUID, определяется, что такой идентификатор уже есть в базе. Отрабатывает abortpxe.
Предположим, что нам и в голову не могло придти, что GUID дублируется. Следовательно, мы можем предпринимать разнообразные действия. В моём случае это было извлечение boot.ini из чистого образа, изменение на dhcp путей к разным файлам из remoteinstall. Извлечение файла, например, было следующим - извлекался boot.wim из чистого образа win2008 x64. Соответственно, брался wdsnbp.efi из boot.wim\1\Windows\Boot\PXE и boot.wim\1\Windows\Boot\efi
Старый мой мануал, предназначенный для 2007, но для 2012 тоже применяется.
Развертывание win7 по PXE посредством SCCM
1. Добавляем серверу роль WDS (роль развертывания windows). Не производим конфигурение сервера средствами мастера настройки WDS сервера. В случае если произвели конфигурацию WDS сервера средствами мастера настройки WDS (ну мало ли), в консоле управления WDS серером, в свойствах, на закладке отклик PXE, выставить не отвечать никаким клиентским компьютерам.
Помимо этого, если используется DHCP сервер установленный не на компьютере с WDS либо внешний DHCP сервер, в консоли управления WDS серером, в свойствах, на закладке Протокол DHCP поставить галку "Не прослушивать порт 67". Теперь ждём около получаса.
\\личный комментарий от соавтора мануала, который кагбэ вводит в противоречие: "Лучше все же настроить первоначально роль WDS сервера средствами мастера настройки. В дальнейшем в некоторых местах упрощается диагностика."
Хочется уточнить - не обязательно давать роль WDS серверу, на котором стоит SCCM. WDS может стать другой сервер, в таком случае его необходимо будет прописать в "системы сайта". В моём случае пришлось сделать именно так по причине того, что внезапно намертво отвалилась служба WDS на сервере с SCCM.
2. Добавляем sccm роль PXE. Обращаем внимание на то, что после добавления этой роли у нас создаётся директории на C:\RemoteInstall\
Опять же обращаю внимание, что лучше сразу разбить место на сервере на диски C и D. В случае обнаружения диска D папка remoteinstall автоматически создаётся на нём. Геморрой с внезапно закончившимся местом нам не нужен.
Тут же задаём пароль на загрузку по PXE. Если вы забыли\забили выставить пароль, то в дальнейшем это можно сделать по адресу консоль сццм - база данных сайта - управление сайтом - %sitename% - системы сайта - сервер, где стоит WDS - точка обслуживания PXE - свойства. Ищем там, затеряться сложно. Для чего нужен пароль догадаться несложно, банальная защита от дурака. На кой черт вам проблемы с пользователем, который взял и нажал всё что его просили? Ф12, далее, далее.
Хочется добавить также, что если вы уже связались с SCCM, то вам придётся волей-неволей сражаться с его глюками. В частности, загрузочное файло из remoteinstall будет периодически исчезать. Смиритесь с этим, ибо SCCM вообще распологает к смирению.
3. Добавляем образы загрузки. Взять их можно, например отсюда: \\%servername%\%sitecode%\OSD\boot\ далее согласно разрядности. Нам необходимы файлы вида install.wim. Однако их можно достать и самостоятельно из дистрибутива операционной системы.
Если у нас нестандартная сетевая карта, то нам понадобится прикрепить к образам драйвера. Для этого нам необходимо сначала сходить по адресу - развертывание операционной системы - драйверы - импортировать. Следуем указаниям мастера и впиливаем нужный нам драйвер. После этого идём на образ загрузки, свойства - вкладка windows PE. Нажимаем на солнышко и добавляем необходимый нам драйвер.
В образы необходимо добавить только жизненно необходимые драйверы.
4. Добавляем образы OS.
5. Открываем udp-порты 67, 68, 69, 4011.
6. Прописываем инфу на дхцп. Для циски и на x86 это выглядит так: ip dhcp pool *****
next-server
bootfile SMSBoot/x86/wdsnbp.com
7. Создаём шару с общим доступом на чтение и выполнение. Там мы будем хранить дистрибутивы. Этот пункт больше относится к распространению программного обеспечения, но и тут тоже пригодится.
8. Правим реестр следующим образом.
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\WDSServer\Providers\WDSTFTP
Открываем параметр ReadFilter и добавляем \* в конец. После правки реестра необходимо перезапустить сзужбу WDS.
Это разрешение отправлять по tftp все файлы из рутовой директории.
9. Самое интересное. Лезем в последовательность задач (управление компьютером - развертывание операционной системы - последовательность задач). Новый документ - последовательсность задач - установить существующий пакет образа. Выбираем один из созданных нами пакет загрузки. Далее. Выбираем пакет образа операционной системы. Оставляем галку "создать разделы и отформатировать компьютер. Здесь же можно включить или отключить учетную запись локального администратора. Выбираем присоединение к домену или к рабочей группе. Далее. Присобачиваем в пакетах KB977384 - Advanced Client Hotfix. Он нам нужен, поверьте. Далее - снимаем все галочки. Выбираем, что делать с обновлениями. Далее. Выбираем, если нужна установка программного обеспечения. Далее. Готово.
А теперь исправляем содеянное. Встаём на только что созданную последовательность задач. Кликаем - правка. Обращаем внимание на два пункта: Применить операционную систему и применить образ данных. Меняем их местами, то бишь ставим "Применить образ данных" наверх. Теперь заходим во второй пункт, "Создать разделы на диске". Если не хотим долгого и вдумчивого форматирования, поочередно кликаем на каждый том и ставим галочку "быстрое форматирование". Помимо этого заходим на том номер два, то бишь тот, который не имеет фиксированного размера 100 мб. Заходим в свойства и выбираем "использовать 100% от свободного пространства". Ставим галочку, сохраняем, выходим.
10. Кликаем правой мышкой на только что созданную последовательность задач. Выбираем пункт объявление. Натравливаем объявление на коллекцию "неизвестные компьютеры. Ставим галочку "сделать эту последовательность задач доступной для загрузки с носителя и через PXE". Далее. Выбираем нужные параметры, можно поставить и по умолчанию. Далее. Готово.
11. Проходимся по всем созданным нами связкам. делаем следующее. Заходим в образы загрузки, кликаем по ним правой кнопкой мыши. Управление точками распространения. Добавляем в необходимые нам точки обнаружения. Надо учитывать, что в точке распространения заканчивающейся на SMSPXEIMAGES$ должны содержаться только образы загрузки. Заходим в образы операционной системы, делаем то же самое. Заходим в KB977384 среди пакетов софта и тоже добавляем в точки обнаружения. В дальнейшем, если вдруг мы сталкиваемся с ошибкой вроде "Не удалось запустить последовательность задач, такой то пакет в такой-то точке обнаружения, нам достаточно будет посмотреть на код пакета (выглядит он как код самого сайта сццм + порядковый номер) и добавить его в забытую точку обнаружения. В директории RemoteInstall загрузочные файлы появляются после того, как образы загрузки добавляются в точки обнаружения.
Для удаления делаем всё в обратном порядке.
1. Удаляем все объявления и последовательности задач.
2. Удаляем образы операционных систем.
3. Удаляем образы загрузки из точек распространения.
4. Удаляем роль PXE SCCM.
5. Удаляем роль развертывания WINDOWS (WDS) через 30 минут после удаления роли сццм.
6. Удаляем директории c:\win\temp\*.* и \reminstall
7. Перегружаем сервер.
Тут есть следующая тонкость. Сццм может запретить выполнение пункта четыре, утверждая, что не может удалиться без очистки точек обнаружения. Связано это, как показывает опыт, с пресловутым KB977384. Запоминаем, где он находится, вычищаем из точки обнаружения и удаляем вообще пакет. Перегружаем сервер, удаляем роль сццм, добавляем пакет заново. Баг пофиксен.
Эталонный образ операционной системы
Логично было бы предположить, что образ операционной системы снимается следующим образом:
1. Устанавливается система, накатывается софт, запиливаются все драйвера, выполняются все настройки.
2. Запускается некая программа сццм, снимается образ.
3. Профит.
Однако, в данном случае нам придётся поступить по другому.:
1. Выполняем пункт с построением эталонной системы.
2. Заходим в консоль сццм. Последовательность задач - создать носитель - носитель для записи - сохранить.
3. На выходе получаем файл ISO с мастером.
4. Запускаем мастера на эталонной машине. Следуем его указаниям, в т.ч. и сохраняем полученный файл в нужной директории.
5. Выполняется sysprep, на выходе получаем совершенно голую систему и файл образа.
Добавить хочется только одно - как показывает практика, мастер диск не работает с USB-привода. Это нельзя понять, это надо запомнить.
#
Для начала давайте рассмотрим, как теперь у нас будет выглядеть установка операционной системы. Мы выбираем загрузку LAN, стучимся по айпишнику на наш сервер. Срабатывает загрузчик (из директории remoteinstall\boot, собственно, что сы и выбрали по SMSBoot/x86/wdsnbp.com). SCCM идентифицирует нас по mac-адресу и UUID. Все неизвестные маки и уиды падают в коллекцию "неизвестные компьютеры", на которую у нас и натравлено объявление. То есть если наш mac уже есть в базе сццм, известен ему, срабатывает файл abortpxe. Поэтому если мы внезапно оборвали загрузку, то для того, чтобы abortpxe не сработал, нам понадобится сначала вынести нужный нам mac из коллекции sccm. Заходим в консоль - коллекции - ищем unknown с нашим маком и удаляем его. Стоит ли говорить, что если мы хотим переставить систему на машине, которая уже в коллекции не как неизвестная, а как давно названная по имени, у нас ничего не выйдет, пока мы её оттуда не удалим? Капитан Очевидность в лице моего соавтора утверждает, что культурное имя учетной записи в базе SCCM присваивается только по окончанию развертывания ОС на машине и ответе с этого компьютера SCCM.
Теперь давайте обратим внимание на UUID, который, будучи ещё одним идентификатором, вроде как должен быть уникальным. GUID не сбрасывается при перепрошивки биоса. Капитан очевидность подсказывает, что точно также каждое сетевое устрйоство имеющие мак-адрес, должно иметь абсолютно уникальный мак-адрес.
Однако, некоторые производители оборудования, в частности ASROCK не в курсе важности этого параметра. Все материнские платы выпускаются у них с одинаковым UUID, следовательно что происходит у нас при развертывании операционной системы на машинах на базе материнских плат ASROCK? Давайте смоделируем ситуацию.
Загружаем первую машину. Загрузка по LAN. F12. Отрабатывает wdsnbp.com и остальная связка, в SCCM улетает GUID и mac. Запускается последовательность задач. Отрабатывается. Профит.
Запускаем вторую машину. Загрузка по лан, ф12, определяется GUID, определяется, что такой идентификатор уже есть в базе. Отрабатывает abortpxe.
Предположим, что нам и в голову не могло придти, что GUID дублируется. Следовательно, мы можем предпринимать разнообразные действия. В моём случае это было извлечение boot.ini из чистого образа, изменение на dhcp путей к разным файлам из remoteinstall. Извлечение файла, например, было следующим - извлекался boot.wim из чистого образа win2008 x64. Соответственно, брался wdsnbp.efi из boot.wim\1\Windows\Boot\PXE и boot.wim\1\Windows\Boot\efi
no subject
Date: 2013-01-17 09:32 am (UTC)Я бы сказала, что это про всю сюиту System Center.
Но полезно, да. Спасибо.
no subject
Date: 2013-01-20 01:28 pm (UTC)