Я решил его следующим образом:
Когда мне был нужен IP-адрес, присвоенный VM, и поскольку libvirt не предлагает средства получить его (в противоположность, т.е. VMware, который предлагает комплект инструментов VMWare для таких операций), я закончил установку сериала (на госте) к tcp (на хосте) канал между VM и Хостом, с помощью поддержки виртуальных устройств libvirt.
Простой сценарий оболочки на госте ожидает затем, пока IP-адрес не присвоен данному интерфейсу и пишет это в последовательное устройство. Когда сервер TCP, находящийся на хосте, получает IP-адрес, он передает обратно, это - открытый ключ, который сценарий на гостевых чтениях (снова, от последовательного порта) и записывает обратно к корректному authorized_keys
файл.
Это решение может использоваться без части обмена IP только с гостем, читающим ключ из последовательного порта на начальной загрузке. Преимущества такого решения состоят в том, что гость, ОС не должна быть настроена с данным ключом (настолько различные, пары ключей могут использоваться для другой системы "разделы"), и что это может справиться, куда поместить его; оборотная сторона - то, что гость должен быть настроен для запущения скрипта.
Другое решение состояло бы в том, чтобы смонтировать образ диска, предшествующий VM, загружающийся при помощи чего-то как libguestfs
, скопируйте открытый ключ, размонтируйте его и загрузите гостя. Это решение предпочтительно по TCP <-> SerialPort один, но поскольку мне был нужен IP-адрес так или иначе, я продолжал двигаться наоборот.
Третье решение, как предложено ErikA в его первом комментарии, состояло бы в том, чтобы позволить пользователю, создающему изображение, делающее всю установку путем предоставления им открытого ключа. Это является, вероятно, лучшим (самый чистый и более изящный) решение для самого универсального случая.
Возможно, необходимо попытаться не изобрести велосипед. Существует много платформ там, которые сделают точно, что Вы хотите... и даже свободные/с открытым исходным кодом. Попытайтесь смотреть на cloudstack или эвкалипт для двух таких сред.