Я пытаюсь запустить .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"
Обе попытки безуспешны. (невозможно войти в систему)
Есть ли способ применить эту конфигурацию к изображениям, или эти свойства передаются в изображение при его запуске?
Есть идеи?
Обновлено: (ответы на справочные вопросы)
Было бы полезно, если бы вы могли добавить справочную информацию к вопросу, например:
Если вы используете Облачные образы Ubuntu , вы должны использовать Cloud-Init для установки начальной конфигурации он позволяет вам установить:
... среди других функций.
Возможности Cloud-init можно настроить с помощью флага пользовательских данных для встроенных команд или вызова конфигурационного файла типа YAML с применимыми настройками.
Это может быть сделано через - пользовательские данные
или - -user-data-file
аргумент, когда вы работаете в режиме inline, или вы можете сделать это с помощью ISO. Я собираюсь показать шаги для режима монтирования ISO.
Я не буду устанавливать пароль для пользователя root или пользователя, вместо этого я создаю нового пользователя с доступом SSH через открытые ключи ssh и предоставляю пользователю разрешения sudo вместо этого.
Вот пример файла пользовательских данных облачной конфигурации, создайте его в текстовом редакторе и соблюдайте имя, иначе исходный файл не будет правильным исходным кодом и не будет работать .
#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
Помните, что если вы оставите сид / nocloud iso смонтированным, он перезапишет настройки в виртуальной машине с настройками в файлах данных. И если вы измените что-либо в пользовательских данных или метаданных, вам необходимо перестроить iso или img.
Теперь вы можете загрузить виртуальную машину. По умолчанию вы не можете подключиться к машине по ssh, используя имя пользователя и пароль, или подключиться через консоль VNC («графическое» окно виртуальной машины в Virtualbox). Вы должны использовать метод аутентификации с открытым / закрытым ключом с ssh. Это означает включение пользователя с открытым ключом ssh в YAML-файле user-data . Кроме того, повышение прав 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 для пользователя по умолчанию ubuntu .
согласно их web, пароль для образов генерируется случайным образом.
Имя пользователя будет ubuntu, но изображения будут «выплевывать» случайно сгенерированный пароль при первой загрузке.
«Получите пароль для 'ubuntu' и войдите в систему. Выбор по умолчанию в меню grub приведет к случайному сгенерированному паролю для пользователя 'ubuntu' при первой загрузке. Пароль записывается в двух местах, в консоли и последовательном устройство. На консоли вы увидите такие строки: «
Прочтите эту ссылку, шаг 4:
В вашем образе установлен cloud-init. Это означает, что вы можете использовать Источник данных NoCloud для загрузки конфигурации с дискеты (vfat) или компакт-диска (ISO9660). В этом образе у вас может быть файл облачной конфигурации, в котором вы можете настроить ssh-ключи
. Подробнее читайте также: http://blog.klocwork.com/open-source/using-cloud -init-outside-of-the-cloud /
Я предполагаю, что пароль вы are сбрасываются при запуске виртуальной машины, так как cloud-init по умолчанию отключает аутентификацию по паролю. Возможно, вы можете попробовать смонтировать образ и настроить cloud.cfg, как показано ниже:
/etc/cloud/cloud.cfg
#cloud-config
password: mysecret
chpasswd: { expire: False }
ssh_pwauth: True
Это должно активировать парольную аутентификацию и установить пароль, как указано в следующей ссылке:
Почему бы вам не импортировать OVA, загрузить виртуальную машину в VBox, добавить пароль, экспортировать виртуальную машину в OVA и использовать его в следующий раз, когда вам понадобится создать новая ВМ?
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 нет имени пользователя/пароля по умолчанию. Перед созданием экземпляра из образа необходимо настроить его с помощью приведенной ниже команды cmd.
virt-customize -a bionic-server-cloudimg-amd64.img --root-password password:<pass>
Необходимо установить ниже pkg, чтобы получить virt-customize
cmd.
sudo apt install libguestfs-tools
Вот шаги, которые помогли мне настроить ключ SSH и некоторые другие вещи на виртуальной машине. В моем случае я использую VMWare и создаю машину из файла OVA.
В основном вам нужно создать 3 файла конфигурации, а затем поместить их в iso-файл, который вы затем монтируете как компакт-диск при загрузке виртуальной машины, а затем cloud-init настраивает вашу машину.
Выполните эти команды, чтобы создать три файла конфигурации:
cat <<EOF > user-data
#cloud-config
users:
- default
- name: mylinuxuser
ssh-authorized-keys:
- ssh-rsa .... REPLACE THIS WITH YOUR SSH KEY FROM ~/.ssh/id_rsa.pub
sudo: ALL=(ALL) NOPASSWD:ALL
groups: sudo
shell: /bin/bash
EOF
cat <<EOF > meta-data
# change the instance-id every time you make changes to cloud-init files or it may not apply the changes
instance-id: iid-local01
local-hostname: devlin2
EOF
cat <<EOF > network-config
version: 1
config:
- type: physical
# this is the name of an existing interface it will find and then configure with these settings - in ubuntu 20 this is ens192
name: ens192
subnets:
- type: static
address: 10.2.2.23/24
gateway: 10.2.2.1
dns_nameservers:
- 10.2.2.7
- 10.2.2.9
dns_search:
- dv-wh
EOF
# install the genisoimage tool
sudo apt install genisoimage
# create an iso containing the above 3 files
genisoimage -output nocloud1.iso -volid cidata -joliet -rock user-data meta-data network-config
Затем перейдите в виртуальный бокс или vmware и смонтируйте этот ISO как компакт-диск и перезагрузите машину.