Как загрузить облачное изображение Ubuntu с помощью QEMU

Вопрос или проблема

Я создал файлы конфигурации

echo 'password: asd' > userdata
echo 'local-hostname: localhost' > metadata

Затем создал ISO из них

genisoimage -output geniso.iso -volid cidata -joliet -rock userdata metadata

И создал образ QEMU

virt-install --connect qemu:///system virt-type qemu --name mymachine --memory 4096 --vcpus=2 --os-type linux --os-variant ubuntu18.04 --disk path=ubuntu-18.04-server-cloudimg-amd64.img,format=qcow2 --disk  geniso.iso,device=cdrom --import --network network=default --noautoconsole

На скриншоте ниже показано, что машина была изменена на localhost, но пароль не сработал.
enter image description here

Формат конфигурации cloud-init немного более структурирован, чем тот, который вы использовали. И минимальное изменение в вашем случае — это учесть, что ведущий #cloud-init не является необязательным.

Ваш вопрос довольно близок к этому или этому примеру, поэтому я рекомендую получить оставшиеся детали, если это необходимо, там.

Ответ или решение

Теория

Загрузка Ubuntu Cloud Image с использованием QEMU включает несколько ключевых шагов. Первоначально необходимо создать конфигурационные файлы для cloud-init, которые будут использоваться при первом запуске виртуальной машины для её настройки. cloud-init — это универсальный инструмент, который отвечает за настройку платформы при первом запуске. В вашем случае его использование включает установку пароля пользователя и изменение имени хоста.

Создание файлов игральных карт, таких как userdata и metadata, является важным шагом. userdata управляет настройками пользователя, такими как пароль, SSH-ключи и региональные настройки. metadata используется для определения данных метаинформации, таких как имя хоста или идентификатор экземпляра.

Для правильного понимания cloud-init, каждый файл конфигурации должен начинаться с #cloud-config, который идентифицирует документ для cloud-init как файл настроек.

Далее, вы создаете ISO с этими файлами, чтобы процесс инициализации мог их использовать. После этого необходим запуск виртуальной машины с помощью QEMU, где процесс установки будет использовать предоставленную информацию для настройки системы.

Пример

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

  1. Создайте userdata файл со следующей структурой:

    #cloud-config
    password: asd
    chpasswd: { expire: False }
    ssh_pwauth: True
  2. Создайте метаданные (metadata) файл как вы уже делали:

    echo 'local-hostname: localhost' > metadata
  3. Создайте ISO файл:

    genisoimage -output geniso.iso -volid cidata -joliet -rock userdata metadata
  4. Воспользуйтесь командой virt-install для создания и запуска виртуальной машины:

    virt-install --connect qemu:///system virt-type qemu --name mymachine --memory 4096 --vcpus=2 --os-type linux --os-variant ubuntu18.04 --disk path=ubuntu-18.04-server-cloudimg-amd64.img,format=qcow2 --disk geniso.iso,device=cdrom --import --network network=default --noautoconsole

Применение

Если следовать вышеуказанным шагам, вы сможете запустить Ubuntu Cloud Image с задействованием корректных настроек cloud-init. Вот несколько рекомендаций для успешного достижения желаемого результата:

  • Убедитесь, что файл userdata начинается с #cloud-config. Это важно, так как без этой строки cloud-init не распознает файл как конфигурационный.

  • Используйте команду chpasswd: { expire: False }, чтобы избежать автоматического требования смены пароля при первом входе.

  • Убедитесь в том, что ssh_pwauth установлен в True, если вам нужно разрешить аутентификацию по паролю через SSH.

  • Для проверки корректности созданного образа ISO можно использовать утилиты вроде mount в Linux, чтобы убедиться в наличии всех требуемых файлов.

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

Следование этим инструкциям обеспечит успех в конфигурации и использовании Ubuntu Cloud Image с QEMU. Помните, что при работе с виртуальными машинами и облачными образами важно вести учет всех изменений и сохранять конфиденциальность данных, особенно в производственной среде.

Оцените материал
Добавить комментарий

Капча загружается...