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

Автоматизированные виртуальные машины Linux на Hyper-V 2012

У меня есть требование создать тонну виртуальных машин Linux для наших клиентов (у нас работает управляемая инфраструктура) на Hyper-V 2012 в ближайшие месяцы, и у меня возникла проблема с ее автоматизацией.

Вот как мне это нужно для работы:

  1. Пользователь получает доступ к своей веб-странице и создает виртуальную машину.
  2. ВМ создается с уникальным IP и именем
  3. Пользователь входит в систему через SSH

Я достаточно хорошо знаю Hyper-V, могу работать с PowerShell и программист на C #, поэтому я позаботился о разработке. Я также достаточно знаю Linux, чтобы быть по крайней мере компетентным: я использовал его время от времени в течение ряда лет, но не сделал с ним ничего корпоративного.

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

Моя первая мысль - создать базу данных со случайно сгенерированными именами и уже созданными IP-адресами, но я не знаю, как заставить Linux VM загрузиться и получить ее из базы данных ... Я полагаю, что сценарий Kickstart позаботится об этом но я не знаю, что оттуда делать.

Вот что крутится у меня в голове:

  1. Создайте std linux build. - Легко сделать
  2. Кто-то нажимает «Создать виртуальную машину», я извлекаю имя и IP-адрес из базы данных и записываю их в сценарий кикстарта. - Легко сделать
  3. Затем я мог бы открыть файл шаблона VHDX и скопировать его в сценарий, а затем сохранить его. - Не уверен, если возможно
  4. Пользователь загружает новую виртуальную машину, и сценарий кикстарта дает ей имя и IP-адрес, которые я ей назначил.

Моя проблема в том, что я не знаю, как открыть файл VHDX и вставить в него сценарий кикстарта ... не могу понять.

Я добираюсь сюда, и это решение может быть далеко ... Я больше привык создавать виртуальные машины Windows со сценариями и т.д., с которыми я более знаком ... любая помощь будет оценена.

Спасибо

Мик

Windows не может монтировать файловую систему ext3 / 4 изначально, и большинство программных пакетов, предназначенных для этого, (на мой взгляд) ненадежны. Так что это вышло.

Пара идей для начала:

  • Настройте виртуальную машину Linux, которая работает все время, с целью настройки новых виртуальных машин. При создании виртуальной машины клиента подключите VHDX к этой виртуальной машине конфигурации. Напишите веб-службу, которая выполняет необходимую настройку. Вы можете быть уверены, что настраиваете правильный VHDX, монтируя раздел с помощью идентификатора SCSI, который вы будете знать, потому что PowerShell сообщит вам, какой идентификатор был назначен при подключении VHDX.
  • Изначально загрузите виртуальную машину через PXE. Образ загрузки может выполнить необходимую настройку, а затем выключить виртуальную машину, что будет сигналом для вашего сценария PowerShell, чтобы сначала изменить порядок загрузки с жесткого диска и запустить виртуальную машину. Если вы пойдете по этому пути, я предлагаю создать выделенную VLAN для настройки PXE из соображений безопасности.
  • Создайте в своем образе раздел FAT, который можно смонтировать в Windows, и скопируйте в него файл конфигурации. Ваш образ Linux должен быть настроен на поиск файла кикстарта в этом месте или содержать сценарий для его копирования в правильное место во время запуска.

На самом деле я написал сценарий, который будет предоставлять машины путем переименования и присоединения их к домену AD с помощью Samba и Winbind.

Что вам нужно сделать, так это сначала создать виртуальный дисковод и записать на него файл Microsoft unattend.xml. Мои сценарии подготовки используют этот файл и анализируют имя компьютера, доменные имена NetBIOS и FQDN, а также пользователя / проход для присоединения к домену AD. Вы можете просто записать на машину текстовый файл со списком имен компьютеров и PING для неотвечающего хоста, а затем использовать эту информацию.

Я полагаюсь на DHCP для IP-адресов, но если бы у вас была пара имени / IP в текстовом файле на машине Template, это тоже сработало бы. Начните с DHCP, но затем конвертируйте в статические IP-адреса.

Вы также можете посмотреть размещение файла конфигурации на FTP-сервере и изменить конфигурацию dhclient, чтобы получить вновь созданный параметр DHCP, который будет указывать на указанный файл, а затем использовать его для конфигурации виртуальной машины.

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

Это также будет зависеть от дистрибутива Linux, который вы собираетесь использовать. В настоящее время моя подготовка работает совместно с Dell vWorkspace и Hyper-V или VMware ESX с использованием Red Hat / CentOS 5.8, 5.8, 6.x и в настоящее время дорабатывают Debian 7 и Ubuntu 12.04 / 12.10.

-Стивен Йорк www.dezignnet.com