Назад | Перейти на главную страницу

Автоматическая установка системы, использующей два isos, на первом есть файл кикстарта

В настоящее время мы используем систему VMware ESXi для размещения некоторых виртуальных машин RHEL 7.2, и мы устанавливаем на них наш продукт для тестирования. Проблема в том, что процесс создания этих виртуальных машин или, лучше сказать, установки на них нашего продукта, является ручным и требует вмешательства человека в середине процесса.

Установка основана на двух файлах iso: первый - это RHEL 7.2 iso с настраиваемым файлом кикстарта, но после установки ОС нам нужно поменять местами ISO и использовать второй файл iso для установки других зависимостей, которые мы можем ' t включать в первый ISO по юридическим причинам (или, по крайней мере, так мне сказали).

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

При этом я искал различные решения, такие как Cobbler, Spacewalk, Puppet, FAI ... и я хотел бы знать, какой инструмент лучше всего подходит для задачи, которую я описываю, чтобы я мог автоматизировать процесс.

Используйте PowerCLI для автоматизации этого процесса. Это нетривиальный проект, но он чрезвычайно гибкий и может заложить основу для будущей автоматизации виртуальных машин. Рабочий процесс будет выглядеть примерно так

  1. Разверните шаблон с установленным RHEL 7.2 и включенным
  2. Дождитесь завершения развертывания (это может быть цикл PowerShell с sleep() вызов и тест, чтобы определить, завершена ли настройка, возможно, если вход в систему прошел успешно.
  3. Измените смонтированный ISO
  4. Удаленный Powershell в виртуальную машину, чтобы завершить настройку.

Я подробно остановлюсь на шаге 3, поскольку он больше всего связан с вашим вопросом.

#Setup for your Environment
$vcenter = "yourVcenterServer"
$vmame = "yourVMName"
$pathOnDatastoreToIso = "/path/to/iso/on/datastore.iso"

#Change Mounted Iso
Connect-VIServer $vcenter
$diskDriveForYourVM = get-cdDrive -vm $vmname
$diskDriveForYourVM | set-cdDrive -StartConnected:$true -Connected:$true -IsoPath $pathOnDatastoreToIso