четверг, 31 января 2013 г.

Первый раз в первый класс. Установка.

Как ни странно, но установка в режиме Next-Next-Finish не получится. Придется немного потрудиться и учесть кое-какие мелочи. В основном, конечно, они касаются настройки MS SQL сервера. Но обо всем по порядку.
Итак, мы будем рассматривать ситуацию, где SQL сервер и SCCM 2012 будут установлены на разные сервера. Когда я начал разворачивать тестовую схему, то столкнулся с проблемой: SQL то и дело то видеться не хотел, то вроде все проверки прошли, нажал установить, а оно опять с ошибкой на SQL вывалилось, а вот если запустить инсталлятор SCCM 2012 на той же машине, где и SQL - проблем никаких не возникало. Итак, для установки SCCM 2012 нам потребуется три машины.

1. Microsoft SQL 2008 R2 + SP2 (FQDN - cm2.sccm.local)
2. Microsoft System Center 2012 Configuration manager (IIS - нужны отдельные компоненты, но предлагаю поставить полный комплект, за исключением FTP; BITS, .NET Framework, Remote Differential Compression, WCF Activation). То, что в скобках - устанавливаем через Server Manager-Add features. (FQDN - cm1.sccm.local)
3. Active Directory Domain Controller с расширенной схемой. Схему расширять не обязательно, но крайне рекомендуемо. Сделать это можно как ДО установки, так и ПОСЛЕ установки. Домен наш будет называться sccm.local. (FQDN - dc.sccm.local)

SCCM 2012 можно установить ТОЛЬКО на машину с платформой х64. Все вышеперечисленные машины будут работать под управлением Windows 2008 r2 x64.
Итак, приступим. Начнем с расширения схемы.
Идем на контроллер домена, открываем adsiedit.msc => Connect to... => Default naming context => OK
Раскрываем dc=sccm,dc=local => Раскрываем cn=System => Правой кнопкой мыши по cn=System и выбираем New-Object => Выбираем class=container => Значение - System Management. Закрываем ADSIedit.msc.

Далее нам нужно сделегировать права на созданный нами контейнер для машины, на которую мы будем устанавливать SCCM (cm1.sccm.local)
Идем в оснастку Users and Computers, сверху в меню выбираем View-Advanced Features.
Раскрываем System, правой кнопкой мыши по System Management => Properties => Security => Add => Object types отмечаем Computers => Вводим cm1 и жмем ОК => Advanced => Находим наш cm1 и тыкаем по нему два раза левой кнопкой мыши => Выбираем Full Control и apply to This object and all discendant objects


Данную процедуру нужно проделать для CAS сервера (если он у вас будет), для всех Primary и Secondary сайтов в вашей иерархии.

Далее будем подготавливать саму схему. Для этого на диске с SCCM 2012 идем в \SMSSetup\Bin\x64\Extadsch.exe, запускаем от имени администратора. Чтобы проверить, что все хорошо, смотрим С:\ExtADSch.log
Обратите внимание, что запускаем мы из x64, т.к. система у нас x64.
Там мы должны увидеть строку Successfully extended the Active Directory schema. 

Далее нам нужно установить Microsoft SQL Server 2008 r2 SP2. Так же нужно проверять совместимость MS SQL и SCCM. Для этого идем http://technet.microsoft.com/en-us/library/gg682077.aspx#BKMK_SupConfigSQLDBconfig и смотрим какой SQL поддерживается и какие CU для него нужно установить. Видим, что SQL 2008 R2 SP2 не требует установки каких-либо CU, поэтому просто устанавливаем MS SQL 2008 r2 и накатываем поверх SP2. Проверить наличие CU для SQL можно по вот этой ссылочке http://blogs.msdn.com/b/sqlreleaseservices/ Установку будем производить на сервер cm2.sccm.local. Приступаем. 
SQL сервер мы должны запускать от непривелегированного пользователя, поэтому создаем на контроллере домена юзера, входящего только в группу Domain Users. Не запускайте сервер от Local System/Local Service - это очень высокие права.
Итак, втыкаем диск, выбираем Installation => New installation or add features...
Вводим ключик, соглашаемся с условиями, производим установку support files.
Выбираем SQL Server feature installation и галочками, как на картинке, отмечаем нужные роли
  

В Instance configuration создаем новый instance. Для этого выбираем Named instance и вводим туда SCCM, каталог для instance оставляем по умолчанию




В server configuration вписываем нашего юзера, созданного специально для SQL сервера. У меня этот юзер называется sccmsqluser. Делаем как на картинке. Обратите внимание на тип запуска служб.


Здесь же идем на вкладку Collation и смотрим, чтобы там ОБЯЗАТЕЛЬНО стояло SQL_Latin1_General_CP1_CI_AS.


В database engine configuration оставляем Windows Authentication Mode и тыкаем кнопку Add current user, чтобы добавить текущего юзера в администраторы SQL. Все пути оставляем по умолчанию.Все, дальше next-next-finish.


После установки SQL накатываем на него SP2, и произведем следующие настройки. Кое-какие "ошибки" в настройках будут сделаны намеренно, чтобы вы знали эти тонкости. О них будет написано ниже, где мы столкнемся с ошибками при установке.


Далее нам нужно создать SPN записи. Сделать это можно вручную, но мы легких путей не ищем, поэтому сделегируем учетной записи, от которой запускается SQL разрешение править ту самую spn запись. Для этого идем на контроллер домена, в ADSIEdit.msc, находим нашу учетную запись => правой кнопкой => Properties => Security => Кликаем Advanced => Add => Вводим Self => Идем на вкладку Properties => Выбираем Apply this object only и ставим галки как на картинке. Тыкаем Ок-Ок-Ок, рестартуем SQL сервер. Чтобы убедиться, что SPN создался, делаем как на картинке:


Собственно, все. Можно попытаться приступить к установке SCCM.
Вставляем диск, тыкаем install. У нас есть выбор что будем устанавливать.


Сразу оговорюсь, что ставить мы будет Stand-Alone Primary Site. Я прослушал курс 10747, при внедрении SCCM у нас был сотрудник Microsoft. Все здорово, курс очень понравился. Один только минус - никто не рассказывает какие схемы в каких масштабах применяются. Т.е. стандартная схема выглядит так:
1. Central administration site
2. Primary site в каждом центральном офисе
3. |Secondary site в каждом филиале

Так вот, что товарищ из Microsoft, что в читаемой мной книге по SCCM - говорится, что конфигурация stand-alone подходит для 90% конфигураций. Дело вот в чем. CAS преимущественно используется, если вы выходите за ограничение 100.000 машин. По-поводу разворачивания Secondary site - опять таки, в этом есть смысл, только если у вас в филиале от 4.000 машин. У нас на всю организацию около 4.000 машин. Чтобы решить проблему лишнего траффика - нужно просто в филиалах создавать Distribution Points и границами и группами границ привязывать клиентов филиала к их Distribution Points.
В общем-то вот так. Просто каждая сложная конфигурация - это дополнительные затраты, как по деньгам, так и по вычислительным мощностям.
До выхода SP1 для SCCM, если вы выбрали Stand-Alone конфигурацию, позже уже нельзя было присоединиться к CAS. Вроде как с выходом SP1 стало можно, но я пока не накатывал.

Вбиваем ключик или юзаем тестовый 180 дневный период, соглашаемся с условиями, выбираем куда будут скачаны необходимые компоненты (папку перед этим нужно создать ручками). У меня же все необходимое уже скачано, поэтому я просто указываю каталог, куда все скачано


Выбираем поддержку нужных вам языков. Далее нам нужно указать код сайта, имя сайта и куда будем производить установку и ставим галку, чтобы установилась консоль.


Как я уже писал, мы устанавливаем Stand-Alone конфигурацию, поэтому выбираем 


На следующем этапе нам нужно указать FQDN сервера, на котором у нас находится MS SQL сервер, указать Instance и указать имя базы. База данных будет создана автоматически, Instance при установке мы указали SCCM. Порт SSB оставляем по умолчанию. 


Тыкаем далее и вот она, первая трудность..


Все дело в том, что на предыдущем слайде нас предупреждали о том, что SQL должен быть настроен на статическом порту, а по дефолту он работает в динамическом режиме. Окей, сейчас поправим. Идем в Пуск-Программы-SQL-... и выбираем SQL Server Configuration Manager.
Слева разворачиваем SQL Server Network Configuration - Protocols for SCCM (SCCM - имя нашего Instance) и смотрим, чтобы TCP было в Enabled


Далее заходим в свойства TCP и делаем Listen All в No. Дело в том, что на сервере может быть несколько сетевых интерфейсов, нам же нужно слушать только один.


Далее идем в IP Addresses и выбираем нужный нам интерфейс. В нем указываем, что слушаем мы порт 1433, а вот Dynamic Ports оставляем пустым. По умолчанию там стоит 0 и ставим Enabled - yes. 
Для всех остальных интерфейсов укажите TCP порт 1433 (стандартный для SQL), Dynamic Ports оставьте пустым, Enabled - no, Active - no. 
В IPALL тоже обязательно сотрите Dynamic Ports. Получаем вот такую вот картину


После применения изменений нам нужно рестартануть наш SQL сервер и сразу же проверить права учетной записи, от имени которой мы запускали установку SCCM. Я производил установку SQL от имени той же учетной записи, от которой устанавливаю SCCM, а при установке SQL на шаге выбора метода аутентификации мы тыкали кнопочку Add Current User, поэтому нужные права у нас есть.Чтобы это проверить, идем в Пуск-Программы-SQL-... и выбираем SQL Server Management Studio и тыкаем connect.
Слева разворачиваем Security-Logins-и нашу учетную запись. У меня она называется snowdeath, тыкаем на нее два раза и смотрим, чтобы в Server Roles у нас стояла галочка sysadmin.
Чтобы все сделанные нами изменения были приняты - нужно рестартануть SQL сервер и проверить его доступность по порту 1433.
Так же по-поводу прав. На каждой машине, на которой вы будете разворачивать какие-то роли SCCM - обязательно добавьте на ней в группу локальных администраторов машину с SCCM.
Т.е. на машине cm2.sccm.local где у нас стоит SQL мы будем разворачивать некоторые компоненты SCCM, поэтому идем в локальные группы и добавляем в группу Администраторы учетную запись КОМПЬЮТЕРА CM1.

Закрываем Management Studio и возвращаемся к нашей установке. Во избежании проблем, мы отключим фаерволл на всех трех наших тестовых машинах. По хорошему же фаерволл нужно просто настроить и открыть в нем нужные порты. Как минимум это 4022 и 1433.

Заходим на машинку cm1.sccm.local и пробуем телнетом стукнуть на машинку cm2.sccm.local по порту 1433. Результатом выполнения должен стать просто черный экран.


Если экран черный, значит все нормально, до сервера достучались. Продолжаем установку SCCM. Ругань пропала и мы пошли дальше. На следующем шаге нам нужно указать машинку, на которую будет установлен SMS Provider, который используется для того, чтобы консоль могла общаться с базой данных. У нас это будет машинка cm1.sccm.local


На следующем этапе мы разрешим клиентам подключаться не только по HTTPS, а по HTTP. У нас пока нет внешних клиентов, поэтому HTTPS нас не особо интересует.


Далее галки оставляем по умолчанию. Будет установлен Management Point и Distribution Point на машину, куда мы устанавливаем SCCM.


Далее можете присоединиться к программе, можете не присоединяться. Я предпочитаю не присоединяться =) Далее выводится Summary Settings, проверяете и тыкаете Next.
На следующем этапе будут проведены различные проверки, в случае нехватки каких-то компонентов или недоступности SQL или чего-то еще - вам будет сообщено.
Довольно частая проблема - забыли дать права sysadmin на SQL для учетной записи, от которой выполняется установка. Об этом я писал выше. Из проблем у меня только вот эти:


Кликнув на обе - есть описание того, из-за чего эта проблема и как ее решить. Есть просто предупреждения, а есть именно проблемы, которые не дадут вам продолжить установку. У нас это просто предупреждения, но мы и от них избавимся. Если у вас вылезли какие-то более серьезные ошибки, но при кликаньи на них информации маловато - загляните в лог. Лежит он в c:\ConfigMgrPrereq.log - там будет больше информации.
1. Ругается на то, что SQL сервер настроен на неограниченное потребление памяти.Чтобы поправить - идем в SQL Management Studio, правой кнопкой на наш сервер => Preperties и выставляем


В тестовых серверах sql/sccm установлено по 16 Гб оперативной памяти, в DC установлено 4 Гб. SQL требует минимум 8 гигов, максимум - он сожрет все, что у вас есть =) Поэтому ограничиваем его 12 гигами памяти.

Возвращаемся к установке SCCM, делаем Re-check и видим, что нас более ничего не беспокоит, кроме WSUS SDK, но мы пока забьем. Нас пока не очень интересует роль update point, поэтому на это можно закрыть глаза.
И вот оно, радостное окошко, в котором в принципе все отлично


Тыкаем Begin Install, уже собираемся бежать наливать себе чай, но тут отчаяние...


И что бы это могло значить? Не может соединиться или выполнить запрос SQL. Как же так? Ведь на прошлом этапе все проверено и нормально, телнетом мы достукиваемся до порта. Окей, давайте посмотрим логи. Могу заметить, что с логами у SCCM проблем нет. Логов - КУЧА. И нужно будет привыкнуть к тому, где и что искать. Говорят, с годами приходит...
Логи установки у нас в корне c: - ConfigMgrSetup.log и что же мы там видим?


Очень информативно, не правда ли? Тупо завалилась установка, а соединение с SQL при этом прошло нормально... Ладно, не буду вас утомлять. Проблема на самом деле в настройках подключения к SQL. Не смотря на то, что мы с вами не слушаем все интерфейсы, мы ведь выставили Listen All в No, мы обязаны были в секции IPALL указать порт 1433.
Чувствуете отсутствие логики? Мы отключили слушать на всех интерфейсах, мы включили нужный нам интерфейс и поставили прослушку на порт 1433, но мы еще и ко всему этому обязаны указать, что на всех интерфейсах слушать порт 1433. Такая вот логика.
Идем на машинку с установленным SQL. Пуск-Программы-SQL-Configuration Manager. Раскрываем слева SQL Server Network Configuration-Protocols for SCCM - Тыкаем дважды на TCP-переходим на вкладку ip addressess - В самом низу в секции IPALL прописываем TCP Port 1433


Сохраняем, опять рестартуем SQL сервер. Самое обидное, что установку SCCM придется начать заново. Нельзя нажать назад или ткнуть - повторить соединение. Запускаем заново, вводим все так же, как вводили.

На этот раз установка пошла, теперь можно идти пить чай.


На этом на сегодня все. Всем спасибо за внимание.

p.s. а вот и радостное сообщение о том, что установка закончена успешно.

Комментариев нет:

Отправить комментарий