PDT - опыт и troubleshooting
Чтож, пожалуй, это последний опус на данную тему, по крайней мере сейчас.
Что мы успели узнать? Мы описали основные компоненты PDT. Подробно описали компонент Variable.xml: его структуру, некоторые нюансы и его ключи.
Процедуру разворачивания можно разделить на следующие шаги:
-
Создание Variable.xml
-
Скачивание зависимостей (если Вы их еще не скачали)
-
Запуск VMCreator.ps1
-
Запуск Installer.ps1 (в случае установки в существующий домен).
Создание Variable.xml и скачивание зависимостей
Таким образом, при разворачивании в новый домен процесс установки сводиться к созданию файла Variable.xml и запуска VMCreator.ps1. После чего все произойдет автоматически. 😉
Рассмотрим более детально шаги и связанные с ними проблемы.
Первый шаг мы уже разобрали ранее, второй шаг врядли вызовет проблемы (на данный момент, 22.06.2014, проблем при скачивании нет, если они появятся в дальнейшем, Вам необходимо будет или обновить версию PDT или изменить URL для скачивания зависимости в файле Workflow.xml). Единственный нюанс - Вам необходимо установить 7-Zip и Web Platform Installer и запускать все компоненты PDT с операционных систем не ниже Windows 8Windows Server 2012. PDT скрипты необходимо запускать с правами администратора и нельзя запускать из Powershell ISE. И на данный момент PDT поддерживает только Hyper-V хосты для разворачиваний.
После того как все скачалось, желательно проверить разворачивание запустив Installer.ps1 с ключем -ValidateOnly. В случае наличия каких-либо ошибок их необходимо исправить. Если Вы создаете новое разворачивание и новый домен, проверки связанные с доменом, такие как учетные записи и группы, будут провалены, чтобы они прошли успешно необходимо запустить Installer.ps1 с домен контроллера после успешного создания домена и ввода в него всех виртуальных машин.
Запуск VMCreator.ps1
При запуске данный скрипт проверит Ваш Variable.xml, и в случае отсутствия ошибок приступит к созданию виртуальных машин. В процессе создания виртуальных машин я столкнулся с двумя основными проблемами. Файлы зависимостей не копировались в виртуальную машину и виртуальные машины не вводились в домен. О второй проблеме я уже писал, а с первой проблемой я столкнулся по не знанию того как правильно указывать ключи ”SourcePath” и ”Download”. Скопирую кусок прошлой статьи.
— Путь, по которому скрипт VMCreator.ps1 будет копировать, а Installer.ps1 будет искать файлы зависимостей. В ходе экспериментов удалось установить что “$SystemDrive” крайне желательно не трогать.
— Путь, по которому VMCreator.ps1 будет искать файлы зависимостей, чтобы скопировать их на виртуальные машины.
В случае разворачивания в существующий домен VMCreator.ps1 не будет копировать файлы на виртуальные машины. Для корректной работы скрипта Installer.ps1 Вам необходимо или скопировать их вручную или указать в файле Variable.xml сетевую папку доступную из виртуальной машины, с которой скрипт будет запущен. Также, не будут созданы учетные записи, группы и контейнеры в AD DS, все это Вам необходимо создать заранее или указать существующие объекты в файле Variable.xml.
Запуск Installer.ps1
Данный скрипт будет запущен автоматически, в случае разворачивания в новый домен, в случае установки в существующий домен его необходимо будет запустить после создания виртуальных машин. Каких-либо особых проблем в работе скрипта я не заметил, в случае если все проверки пройдены, установка завершается успешно, а в случае если проверки не пройдены, Вам необходимо устранить ошибки. 😉
Как находить и устранять ошибки
При своей работе Installer.ps1 генерирует лог файлы и хранит их в папке C:\Users<username>\AppData\Local\Installer. Создаются отдельные лог файлы для каждого сервера в разворачивании и общий лог файл. Лог файлы создаются в формате, который способна прочитать утилита CMTrace. Лог файлы крайне подробны и содержат в себе записи о буквально каждом действии PDT. Создание задач, генерация переменных, сбор информации, проверки зависимостей, ожидание окончания установки и так далее. В случае если задача заканчивается ошибкой, лог файл укажет это. Лог файлы с удаленных машин так же копируются на машину где был запущен Installer.ps1 и будут доступны c:\temp<guid>, где guid это уникальный идентификатор установки. Таким образом, все лог файлы установки доступны на машине на которой запущен Installer.ps1.
В случае проблем со скриптом VMCreator.ps1 Вам может помочь ProcMon.
PDTGUI
Данная “утилита” является всего лишь графическим редактором файла Variable.xml. Её удобно использовать для начального редактирования файла. Основное ограничение - невозможно добавить новые ключи в файл. Например, на данный момент PDTGUI не знает ключа “VMGeneration” и, возможно, каких-то еще ключей, просто это первое, что приходит на ум.
Для корректной работы PDTGUI необходимо наличие файлов PDT в папке с файлом PDTGUI, в случае отсутствия этих файлов PDTGUI предложит их скачать.
PDTGUI состоит из нескольких вкладок: “About”, “Select File”, “General”, “VMs”, “SQL”, “Roles”, “Finish”.
Вкладка ”About” повествует о создателях, на вкладке “Select File” необходимо выбрать нужный Вам Variable.xml или указать путь к файлу и нажать “Open”. Вкладка “General” описывает глобальные переменные файла Variable.xml. Вкладка “VM’s” описывает конфигурацию виртуальных машин, “SQL” описывает инстансы SQL и их конфигурацию, “Roles” - роли System Center и их конфигурацию. Последняя вкладка позволит Вам запустить проверки и, собственно, запустить разворачивание.
Интерфейс утилиты интуитивен и не требует особых пояснений, все ключи подписаны так же как в файле Variable.xml. Единственный фокус - необходимо нажимать “Save” после каждого действия. Иначе после смены закладки все изменения будут сброшены.
Чтож, на этом я заканчиваю “цикл” статей о PDT, надеюсь Вам они пригодятся. И да прибудет с вами зеленый!