2009-08-27

Offline Domain Join

Идея Offline Domain Join состоит в том, чтобы сначала “подготовить” AD к подключению клиента. Затем выполнить подготовку клиентской машины. Возможно без сети, но с помощью файла полученного на первом этапе. Когда клиентская машина будет в сети, она максимально быстро начнет работать в домене. При больших масшатабах очень удобно и экономно. Что интересно, для подготовки клиентской машины она не обязана быть включенной. Необходима только возможность модификации файлов ОС. Это удобно при использовании виртуальных машин. Далее разберем еще одну проблему, которую решает Offline Domain Join.

С выходом Windows 2008 появились контроллеры домена только для чтения. Это огромный шаг вперед с точки зрения безопасности AD (читай: безопасности всей инфраструктуры) и надежности репликации (читай: надежности всей инфраструктуры). Все просто. В контроллере только для чтения нельзя изменить доменные данные. Туда не реплицируются лишние(не нужные в филиале) пароли. С RODC нет исходящей репликации, это сильно упрощает топологию репликации и повышает ее надежность. Все проблемы, возникшие при использовании RODC  (e.g. Dynamic DNS Updates), MS изящно решила. Ну или почти все...

Представьте ситуцию с развертыванием филиала. Для филиала вы создали сайт, определили подсети в нем. На виртуальную машину установили RODC. Все протестировали и выслали образ в филиал. Сетевые инженеры решили свои вопросы. Местный техник успешно запустил подготовленную виртуальную машину(машины) с RODC, DNS и прочими ролями/сервисами. Остается самое простое: подключить клиентские машины в домен и, наконец, начать зарабатывать деньги, эксплуатируя офисный планктон. Но тут начинаются проблемы. Нет, не с офисным планктоном, а с подключением рабочих станций в домен при использовании RODC.

Но если на эти самые клиентские рабочие станции развернут Windows 7, жить становится легче. Задача подлючения к домену рабочих станций в филиале с RODC решается по шагам:

  1. Provisioning. Этот этап включает в себя создание учетных записей компьютеров и подготовку файлов для клиентских машин.
  2. Форсировать репликацию.
  3. Offline Domain Join. Подлючить рабочие станции в домен с использованием подготовленных файлов.

Второй пункт не содержат ничего интересного, а первый и третий пункты относятся к Offline Domain Join. При использовании RWDC (Read-Write DC) подключение в домен элементарно. С клиентской стороны есть графический интерфейс, команда netdom, программный интерфейс. При подключении понадобится доменная учетка с правом подключения компьютеров в домен и локальная учетка с правами администратора. Кстати, по умолчанию все доменные пользователи могут подключить в домен до 10 компьютеров, если конечно они будут владеть административными учетками на самих рабочих станциях.

При подключении в домен происходят: сетевое общение клиента с DNS сервером и контроллером, внесенение изменений в базу данных AD, внесение изменений на рабочей станции. Идея Offline Domain Join состоит в том, чтобы некоторые операции “вынести за скобки” т.е. выполнить заранее:

  1. Избавиться от относительно длительного сетевого взаимодействия.
  2. Заранее создать учетные записи для компьютеров. Правда, это можно было сделать и раньше.
  3. Подготовить данные для OC. Ведь мы не общаемся с контроллером, откуда мы узнаем что нужно подправить у себя? ОС это узнает из файла, который был заранее подготовлен.

Что нужно для Offline Domain Join:

  • Компьютер с помощью которого производится “Provisioning” должен работать на Windows 7/Windows Server 2008 R2. Так-же он должен быть членом домена, необходим доступ к контроллеру. Является ли данная машина контроллером или нет --- не имеет значения. Контроллер может работать под управлением более старой ОС.
  • Машина которую вводим в домен должна работать на Windows 7/Windows Server 2008 R2.

Как это делается? На доменной машине даем команду:

blog_04

Если ОС контроллера домена ниже чем Windows Server 2008 R2, надо добавить опцию /downlevel:

blog_06

Что в итоге? Мы получили пару бинарных файлов:

blog_10

А так-же пару учеток в AD:

blog_11

Далее, переносим файл на машину, которую хотим подключить к домену и с правами локального администратора выполняем команду djoin /requestodj и перегружаем машину:

blog_07

Допустим, мы работаем не с работающей машиной, а с образом виртуальной машины. Для монтирования vhd файла можно использовать diskpart. Подмонтировать vmdk образ можно с помощью vmware-mount. Команда djoin /requestodj будет еще проще. Параметр /localos теперь не нужен. Параметр /windowspath <path> должен указывать на папку windows виртуальной машины.  После выполнения команды виртуальную машину можно включать.

blog_09

Вот и все. Надо помнить, что Offline Domain Join только ускоряет подключение в домен. Без контроллера не удасться воспользоваться доменными учетками для логина или скачать групповые политики.

Где, кроме сценария с RODC, может быть полезно использование Offline Domain Join:

  • Сверхбольшие ЦОД с огромным количество виртуальных машин с Windows Server 2008 R2 или Windows 7. Подключение этих машин необходимо не только автоматизировать, но и ускорить. Вы знаете, что в качестве шаблонов виртуальных машин всегда используют машины вне домена, на которых так или иначе отработал sysprep. После включения, машину вводят в домен, а это не  очень быстро. При использовании Offline Domain Join виртуальная машина, которая еще ни разу не запускалась, уже обладает информацией о домене, контроллере и т.д.
  • Техник, выполняющий подключение к домену должен обладать минимумом привиллегий.
  • Скрипты, выполняющие автоматическое подключение к домену, не должны содержать паролей.

 

Умельцы уже успели написать парсер для файла, используемого в Offline Domain Join.

No comments: