Назад | Перейти на главную страницу

Как установить пароль для облачного образа Ubuntu?

Я пытаюсь начать с .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"

Обе попытки безуспешны. (невозможно войти)

Есть ли способ применить эту конфигурацию к изображениям, или эти свойства передаются изображению при его запуске?

Любые идеи?

Обновлено: (ответы на общие вопросы)

  1. В качестве первого шага мне нужен root-доступ, чтобы я мог протестировать сетевую настройку адаптера, моста, маршрутов, DNS.
  2. Вторая цель - новый пользователь с ключом ssh и sudo.
  3. Ubuntu 17.10 (скоро 18.04)
  4. VirtualBox 5.2.14
  5. vSphere 5.5

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

Вопросы

Было бы полезно, если бы вы могли добавить к вопросу справочную информацию, например:

  1. Зачем нужно устанавливать пароль root. Может есть альтернативный способ. Что вы пытаетесь достичь?
  2. Согласно (1), рекомендуемый способ может быть одним из нескольких вариантов: пользователь root с паролем, новый пользователь с ключом ssh и sudo, другие.)
  3. Какая у вас операционная система?
  4. Версия VirtualBox?
  5. Версия VMWare vsphere?

Генеральный план

  1. Установите правильные настройки для Virtualbox
  2. Создайте файлы пользовательских данных и метаданных
  3. Создайте ISO-образ для cloud-init
  4. Загрузите виртуальную машину с прикрепленным ISO-образом как съемное устройство.

Virtualbox

  1. Вы можете импортировать OVA как устройство, используя диск IMG или VMDK. Вы можете сделать это в графическом интерфейсе или командной строке.
  2. Вы должны включить Серийный порт в аппаратных настройках виртуальной машины. Необязательноукажите на необработанный файл в вашем доме, чтобы вы могли видеть журнал в случае возникновения проблем.
  3. Вам понадобится созданный ниже iso / img для cloud-init и смонтируйте его на dvd- или cd-устройстве для импортированной виртуальной машины. Если виртуальная машина не включает устройство DVD / CD, вам необходимо добавить его. Добавьте его как IDE и master, затем загрузите созданный ниже ISO.

Cloud-Init

Если вы используете Образы Ubuntu Cloud, вы должны использовать Cloud-Init для установки исходной конфигурации он позволяет настроить:

  • Локаль по умолчанию
  • Имя хоста
  • Генерация и настройка приватных ключей SSH

... среди других функций.

Поведение 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:

https://help.ubuntu.com/community/UEC/Images

У вас установлен 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