Как я могу сделать OVA, который работает со статическими IP-адресами?
Мы сделали OVA для клиентов, которые используют DHCP, чтобы найти свой IP-адрес. Он использует CoreOS в качестве гостевой операционной системы.
Некоторые клиенты хотели бы иметь возможность использовать статический IP-адрес, настраивая его в VMWare.
Каков наилучший практический способ сделать это?
Является ли единственный способ иметь пользовательский интерфейс на консоли, где человек, развертывающий ключи виртуальной машины в IP-адресе, маске сети, DNS и т. Д.?
Если да, то есть ли в Linux стандартный инструмент для этого или мы должны написать свой собственный?
Или есть какой-то другой способ отправки настроек на гостевую ОС?
1 ответ
Существует возможность передавать информацию в гостевую ОС с помощью OVF/OVA. Функциональность называется OVF Environment или интерфейсом VMware Guestinfo. Я не уверен, что это действительно подходит для вашего случая использования и потребностей.
Среда OVF - это специальный раздел в OVF в ProductSection, где вы можете указать Свойства с помощью пользовательских пар ключ / значение.
Как это:
<ProductSection ovf:required="false">
<Property ovf:key="my-static-address" ovf:type="string" ovf:userConfigurable="true" ovf:value="10.10.10.10">
<Label>My static IP address</Label>
<Description>Message about my static IP address</Description>
</Property>
<Property ovf:key="foo" ovf:type="string" ovf:userConfigurable="true" ovf:value="bar">
<Description>foobar</Description>
</Property>
</ProductSection>.
Если вы укажете ovf:userConfigurable="true"
тогда у пользователя будет свободное текстовое поле во время развертывания, когда он может указать статический IP-адрес, например.
Тогда есть два способа доставить это на саму ВМ. Это называется transport
, Это может быть VMware VM Tools или образ ISO, прикрепленный в виде CDROM.
1) В.М. Инструменты транспорта
Инструменты VMware или инструменты Open VMware должны быть установлены в гостевой ОС. Вы должны указать в OVF:<ovf:VirtualHardwareSection ovf:transport="com.vmware.guestInfo">
После развертывания вы можете прочитать раздел продукта через vmware-rpc:vmware-rpctool "info-get guestinfo.ovfEnv"
который вернет вам раздел продукта в формате XML. Затем вы должны проанализировать этот XML, извлечь ключ / значения и применить конфигурацию (например, статический IP).
2) ISO транспорт
Вы указываете <VirtualHardwareSection ovf:transport="iso">
в ОВФ. Затем платформа Cloud/Virt будет извлекать раздел продукта, помещая его в образ ISO9660 в виде файла. ovf-env.xml
и подключите к первому доступному устройству IDE в качестве CDROM. Затем вы можете смонтировать этот CDROM, прочитать файл, проанализировать значения и применить конфигурацию.
Если вы не хотите анализировать значения самостоятельно, вы можете рассмотреть cloud-init
В качестве опции внутри гостя можно применить конфигурацию. Существует множество модулей для применения конфигурации IP, ключей SSH или просто для записи и выполнения файлов / команд. http://cloudinit.readthedocs.io/en/latest/topics/datasources/ovf.html Вы упомянули CoreOS, которая поддерживает интерфейс VMware Guestinfo. https://coreos.com/os/docs/latest/booting-on-vmware.html