Коллеги, приветствую!

В этой статье мы поговорим про автоматизацию развертывания служб удаленных рабочих столов при помощи Vagrant и Powershell DSC. Сегодня мы с вами применим в нашем тестовой песочнице простой сценарий развертывания служб удаленных рабочих столов на основе сеансов — Быстрый старт.

Использование этого типа развертывания подразумевает установку ключевых компонентов RDS на один узел. В нашей лаборатории будет развернуто 3 виртуальных машины.

Перед началом

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

Моделирование и описание песочницы

В этот раз наша лаборатория будет состоять из 3-х узлов:

  • lab-dc1.party.hard — контроллер домена.
  • lab-rds1.party.hard — член домена, RDS узел (установлены роли Session Host, WebAccess, Connection Broker).
  • lab-client1.party.hard — член домена.

Готовимся к развертыванию

Конфигурация песочницы

Клонируем репозиторий проекта при помощи git.
git clone https://github.com/mdcowse/vagrant-sandboxie

Либо скачиваем zip архив проекта.
https://github.com/mdcowse/vagrant-sandboxie/archive/master.zip

Описание структуры проекта

Рассмотрим структуру папок и файлов и определим назначение интересующих нас объектов (указаны только те, которые понадобятся при развертывании служб RDS).

vagrant-sandboxie
  │   README.md
  │
  ├───RDS_1.0
  │      Vagrantfile
  │
  └───provision
          ConfigureRebootOnNode.ps1
          DSCConfigureDFS.ps1
          DSCInstallDHCP.ps1
          DSCInstallDomain.ps1
          DSCJoinDomain.ps1
          PreDSCInstall.ps1
          DSCInstallRDS.ps1
          DSCConfigureRDSDeployment.ps1
          DSCConfigureRDS.ps1
  • vagrant-sandboxie — Корневая папка лаборатории (задается произвольно).
  • RDS_1.0 — папка нашего проекта. Цифра 1.0 определяет сценарий, который мы будем использовать в этой статье.
  • Vagrantfile — файл с указаниями по разворачиванию виртуальных машин.
  • provision — папка, где будут лежать сценарии DSC (будут использоваться для конфигурации виртуальных машин).

Ниже определим назначение сценариев .ps1

  • ConfigureRebootOnNode.ps1 — конфигурирует перезапуск хоста, если это необходимо.
  • DSCInstallDHCP.ps1 — устанавливает роль DHCP, RSAT-DHCP, авторизует DHCP сервер в AD после установки и конфигурирует область.
  • DSCInstallDomain.ps1 — устанавливает роль AD DS, RSAT-ADDS, конфигурирует домен PARTY.HARD.
  • DSCJoinDomain.ps1 — добавляет хост в домен Active Directory.
  • PreDSCInstall.ps1 — устанавливает необходимые для работы модули DSC.
  • DSCInstallRDS.ps1 — устанавливает роли RDS (Sessin Host, Connection Broker, Web Access).
  • DSCConfigureRDSDeployment — создает развертывание RDS.
  • DSCConfigureRDS.ps1 — настраивает развертывание RDS (конфигурация коллекции).

Разворачиваем песочницу

Постановка задач

В процессе развертывания мы с вами выполним:

  • Установку служб RDS.
  • Настройку развертывания удаленных рабочих столов на основе сеансов (тип развертывания — Быстрый старт).
  • Конфигурацию простой коллекции (все роли будут развернуты на одном узле).
  • Проверку работоспособности сценария песочницы.

Приступаем

Открываем папку нашего проекта (RDS_1.0), кликаем правой кнопкой мыши на пустом месте и выбираем пункт Открыть Powershell здесь, либо Открыть командную строку здесь и Выполняем команду:

vagrant up

Теперь занимаемся своими делами, ждем когда завершится процесс, ведь в этом суть автоматизации. 🙂 Напоминаю, что скорость выполнения сильно зависит от производительности вашей системы.

Проверяем результаты

Песочница готова, теперь предлагаю проверить действительно ли нам удалось развернуть то, что мы хотели. На выбор есть несколько вариантов подключения. Через менеджер виртуальных машин VirtualBox, либо через RDP подключение. В этот раз воспользуемся менеджером VirtualBox.

Попробуем войти в систему на виртуальной машине lab-rds1.party.hard.
Для входа в систему воспользуемся логином — party\administrator и паролем — vagrant.

Для начала посмотрим как прошло развертывание на основе удаленных рабочих столов.

Мы можем убедиться, что компоненты развертывания были установлены, а также создана коллекция на основе сеансов.

Теперь узнаем подробнее о ролях и каким хостам они назначены.

В нашем случае мы установили все роли на один хост.

Теперь предлагаю посмотреть подробнее о коллекции.

Коллекция на основе сеансов с именем CollectionName была создана и доступна пользователям домена.

Теперь проверим работу компонента Web Access.

Для этого введем в адресной строке браузера:
https://lab-rds1.party.hard/RDWeb/ и попробуем указать уже известные нам учетные данные.

Как результат — мы видим опубликованную коллекцию сеансов в Web Access.

Итоги

Коллеги, сегодня мы рассмотрели несложный сценарий развертывания служб RDS. Нам удалось выполнить все поставленные задачи в этой статьи. Теперь в нашем распоряжении есть маленькая песочница из 3-х узлов, а также готовое развертывание RDS, которое мы можем использовать для тестирования или изучения работы различных компонентов и сценариев.