Řešení 1:
18.04 nastavení krok za krokem
Zkrátka potřebujete:
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
...
a nyní se můžete přihlásit pomocí:
- uživatelské jméno:
ubuntu
- heslo:
asdfqwer
Zde popisuji úplný minimální podrobný pracovní příklad QEMU:https://askubuntu.com/questions/281763/is-there-any-prebuilt-qemu-ubuntu-image32bit-online/1081171#1081171
Řešení 2:
Otázky
Bylo by užitečné, kdybyste k otázce mohli přidat informace o pozadí, například:
- Proč potřebujete nastavit heslo uživatele root. Možná existuje alternativní způsob. Čeho se snažíte dosáhnout?
- Podle (1) může být doporučeným způsobem jedna z několika možností:uživatel root s heslem, nový uživatel s klíčem ssh a sudo, další.)
- Jaký je váš hostitelský operační systém?
- Verze VirtualBox?
- Verze VMWare vsphere?
Obecný plán
- Nastavte správná nastavení pro Virtualbox
- Vytvořte soubory uživatelských dat a metadat
- Vygenerujte obraz ISO pro cloud-init
- Spusťte virtuální počítač s připojeným obrazem ISO jako vyměnitelné zařízení
Virtualbox
- Můžete importovat OVA jako zařízení, použít IMG nebo VMDK disk. Můžete to udělat v GUI nebo příkazovém řádku.
- Měli byste povolit sériový port v nastavení hardwaru pro virtuální počítač. Volitelně , nasměrujte jej na nezpracovaný soubor u vás doma, abyste v případě problémů viděli protokol.
- Potřebujete níže vygenerovaný iso/img pro cloud-init a připojte jej na zařízení dvd nebo cd pro virtuální počítač, který jste importovali. Pokud virtuální počítač neobsahuje zařízení dvd/cd, musíte je přidat. Přidejte jej jako IDE a master a poté načtěte ISO vygenerované níže.
Cloud-Init
Pokud používáte Ubuntu Cloud Images, měli byste pro nastavení počáteční konfigurace použít Cloud-Init, který vám umožňuje nastavit:
- Výchozí národní prostředí
- Název hostitele
- Generování a nastavení soukromých klíčů SSH
... mimo jiné.
Chování Cloud-init lze nakonfigurovat pomocí příznaku uživatelských dat pro vložené příkazy nebo voláním konfiguračního souboru typu YAML s nastavením, které se má použít.
To lze provést pomocí --user-data
nebo --user-data-file
argument, když běžíte inline, nebo to můžete udělat pomocí ISO. Ukážu kroky pro režim připojení ISO.
Nenastavím heslo pro roota ani uživatele, místo toho vytvářím nového uživatele s přístupem SSH prostřednictvím veřejných klíčů ssh a místo toho uživateli povoluji oprávnění sudo.
Zde je ukázka uživatelských dat cloud-config, vytvořte jej pomocí textového editoru a respektujte název, jinak nebude zdrojový soubor platným zdrojem a nebude fungovat.
#cloud-config
users:
- default
- name: eddypronk
ssh-authorized-keys:
- <your user public key here>
sudo: ALL=(ALL) NOPASSWD:ALL
groups: sudo
shell: /bin/bash
Můžete mít také metadata pro název hostitele a další definice:
instance-id: set-an-unique-instance-name-id
local-hostname: set-the-hostname
Po vytvoření souborů vygenerujte soubor iso, který se načte jako cdrom nebo dvd z virtuálního správce:
genisoimage -output nocloud.iso -volid cidata -joliet -rock user-data meta-data
Potřebujete genisoimage
pro toto nebo cloud-utils
nástroj cloud-localds
pro tuto jinou možnost:
cloud-localds my-seed.img my-user-data my-meta-data
Pamatujte, že pokud ponecháte iso seed / nocloud připojené, přepíše nastavení ve virtuálním počítači těmi v datových souborech. A pokud něco změníte v uživatelských datech nebo metadatech, musíte znovu vytvořit iso nebo img.
Zavedení
Nyní můžete spustit VM. Ve výchozím nastavení nemůžete ssh k počítači pomocí uživatelského jména a hesla nebo se připojit přes konzolu VNC ("grafické" okno VM ve Virtualboxu). Musíte použít metodu ověřování pomocí veřejného / soukromého klíče s ssh. To znamená povolit uživateli veřejný ssh klíč v user-data soubor YAML. Také zvýšení práv sudo pro účet ubuntu je bez hesla, ale účet je ve výchozím nastavení uzamčen.
Řešení 3:
Zde je odkaz na možné řešení https://techglimpse.com/nova-boot-instance-with-password/
Vytvořte soubor s názvem userdata.txt s níže uvedeným obsahem:
#cloud-config
password: mypasswd
chpasswd: { expire: False }
ssh_pwauth: True
Nyní předejte userdata.txt soubor jako vstup při vytváření nové instance, jak je znázorněno níže:
#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
Výše uvedený příkaz nastaví heslo mypasswd pro výchozího uživatele ubuntu .