Я пытаюсь начать с .ova с VirtualBox и хочу импортировать то же изображение позже в vSphere.
Облачные образы Ubuntu больше не имеют стандартного пароля.
Я хотел бы отредактировать .ova, чтобы настроить пароль. (и более поздние ключи SSH)
У загруженного .ova есть свойство пароля.
Я нашел инструмент под названием cot
(Общий инструмент OVF) для редактирования свойств.
Я попытался:
cot edit-properties ubuntu-18.04-server-cloudimg-amd64-custom.ova -p password=ubuntu
Также пробовал:
cot edit-properties ubuntu-18.04-server-cloudimg-amd64-custom.ova -p user-data="password: ubuntu"
Обе попытки безуспешны. (невозможно войти)
Есть ли способ применить эту конфигурацию к изображениям, или эти свойства передаются изображению при его запуске?
Любые идеи?
Обновлено: (ответы на общие вопросы)
18.04 пошаговая установка
Короче вам нужно:
sudo apt-get install cloud-image-utils
cat >user-data <<EOF
#cloud-config
password: asdfqwer
chpasswd: { expire: False }
ssh_pwauth: True
EOF
cloud-localds user-data.img user-data
# user-data.img MUST come after the rootfs.
qemu-system-x86_64 \
-drive file=ubuntu-18.04-server-cloudimg-amd64.img,format=qcow2 \
-drive file=user-data.img,format=raw
...
и теперь вы можете войти с помощью:
ubuntu
asdfqwer
Здесь я описываю полный минимально подробный рабочий пример QEMU: https://askubuntu.com/questions/281763/is-there-any-prebuilt-qemu-ubuntu-image32bit-online/1081171#1081171
Было бы полезно, если бы вы могли добавить к вопросу справочную информацию, например:
Если вы используете Образы Ubuntu Cloud, вы должны использовать Cloud-Init для установки исходной конфигурации он позволяет настроить:
... среди других функций.
Поведение Cloud-init можно настроить с помощью флага пользовательских данных для встроенных команд или вызова файла конфигурации типа YAML с применяемыми параметрами.
Это можно сделать через --user-data
или --user-data-file
аргумент, когда вы используете встроенный, или вы можете сделать это с помощью ISO. Я собираюсь показать шаги для режима монтирования ISO.
Я не буду устанавливать пароль для пользователя root или пользователя, вместо этого я создаю нового пользователя с доступом SSH через открытые ключи ssh и вместо этого предоставляю пользователю разрешения sudo.
Вот образец данные пользователя cloud-config, создайте его с помощью текстового редактора и уважайте имя, иначе исходный файл не будет правильным сидом и не будет работать.
#cloud-config
users:
- default
- name: eddypronk
ssh-authorized-keys:
- <your user public key here>
sudo: ALL=(ALL) NOPASSWD:ALL
groups: sudo
shell: /bin/bash
У вас также могут быть метаданные для имени хоста и других определений:
instance-id: set-an-unique-instance-name-id
local-hostname: set-the-hostname
После создания файлов сгенерируйте iso-файл для загрузки в виде компакт-диска или DVD из виртуального менеджера:
genisoimage -output nocloud.iso -volid cidata -joliet -rock user-data meta-data
Тебе нужно genisoimage
для этого или cloud-utils
инструмент cloud-localds
для этого другого варианта:
cloud-localds my-seed.img my-user-data my-meta-data
Помните, что если вы оставите iso-файл seed / nocloud смонтированным, он перезапишет настройки в виртуальной машине с настройками в файлах данных. И если вы измените что-либо в пользовательских данных или метаданных, вам нужно будет пересобрать iso или img.
Теперь вы можете загрузить виртуальную машину. По умолчанию вы не можете подключиться к машине по ssh, используя имя пользователя и пароль, или подключиться через консоль VNC («графическое» окно виртуальной машины в Virtualbox). Вы должны использовать метод аутентификации с открытым / закрытым ключом с ssh. Это означает включение пользователя с открытым ключом ssh в данные пользователя YAML файл. Кроме того, повышение прав sudo для учетной записи ubuntu без пароля, но учетная запись заблокирована по умолчанию.
Вот ссылка на возможное решение https://techglimpse.com/nova-boot-instance-with-password/
Создайте файл с именем userdata.txt со следующим содержанием:
#cloud-config
password: mypasswd
chpasswd: { expire: False }
ssh_pwauth: True
Теперь пройди userdata.txt файл в качестве входных данных при создании нового экземпляра, как показано ниже:
#openstack server create --flavor m1.small --image Ubuntu-Trusty --key-name mykey --nic net-id=88536e89-12a9-41eb-8aed-57983ee299e8 --security-group default --user-data=userdata.txt my-ubuntu
Приведенная выше команда установит пароль mypasswd для пользователя по умолчанию убунту.
Я предполагаю, что свойство пароля, которое вы устанавливаете, сбрасывается при запуске виртуальной машины, потому что cloud-init по умолчанию отключает аутентификацию по паролю. Возможно, вы можете попробовать смонтировать образ и настроить cloud.cfg, как показано ниже:
/etc/cloud/cloud.cfg
#cloud-config
password: mysecret
chpasswd: { expire: False }
ssh_pwauth: True
Это должно активировать парольную аутентификацию и установить пароль, как указано в следующей ссылке:
https://ask.openstack.org/en/question/5531/defining-default-user-password-for-ubuntu-cloud-image/
согласно их сети, пароль для изображений генерируется случайным образом.
Имя пользователя будет ubuntu, но изображения будут «выплевывать» случайно сгенерированный пароль при первой загрузке.
«Получите пароль для 'ubuntu' и войдите в систему. Выбор по умолчанию в меню grub приведет к случайному сгенерированному паролю для пользователя 'ubuntu' при первой загрузке. Пароль записывается в двух местах: на консоли и последовательном устройстве. в консоли вы увидите такие строки: "
Прочтите эту ссылку, шаг 4:
У вас установлен cloud-init. Это означает, что вы можете использовать Источник данных NoCloud для загрузки конфигурации с образа дискеты (vfat) или компакт-диска (ISO9660). В этом образе у вас может быть файл облачной конфигурации, в котором вы можете настроить ssh ключи
Подробнее читайте также: http://blog.klocwork.com/open-source/using-cloud-init-outside-of-the-cloud/
Почему бы вам не импортировать OVA, загрузить виртуальную машину в VBox, добавить пароль, экспортировать виртуальную машину в OVA и использовать его в следующий раз, когда вам понадобится создать новую виртуальную машину?
Для образа облака ubuntu нет имени пользователя / пароля по умолчанию. Перед созданием экземпляра из образа необходимо настроить его с помощью cmd ниже.
virt-customize -a bionic-server-cloudimg-amd64.img --root-password password:<pass>
Необходимо установить ниже pkg, чтобы получить virt-customize
cmd.
sudo apt install libguestfs-tools