Soluzione 1:
18.04 configurazione dettagliata
In breve, hai bisogno di:
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
...
e ora puoi accedere con:
- nome utente:
ubuntu
- password:
asdfqwer
Qui descrivo un esempio di QEMU funzionante minimo e dettagliato:https://askubuntu.com/questions/281763/is-there-any-prebuilt-qemu-ubuntu-image32bit-online/1081171#1081171
Soluzione 2:
Domande
Sarebbe utile se potessi aggiungere informazioni di base alla domanda, come:
- Perché è necessario impostare una password di root. Forse c'è un modo alternativo. Cosa stai cercando di realizzare?
- Secondo (1), il modo consigliato potrebbe essere una tra diverse opzioni:utente root con password, un nuovo utente con chiave ssh e sudo, altri.)
- Qual è il tuo sistema operativo host?
- Versione VirtualBox?
- Versione VMWare vsphere?
Piano generale
- Imposta le impostazioni corrette per Virtualbox
- Crea i file di dati utente e metadati
- Genera l'immagine ISO per cloud-init
- Avvia la VM con l'immagine ISO allegata come dispositivo rimovibile
Cassetta virtuale
- Puoi importare l'OVA come appliance, utilizzare un disco IMG o VMDK. Puoi farlo nella GUI o nella riga di comando.
- Dovresti abilitare la porta seriale nelle impostazioni hardware per la VM. Facoltativo , indirizzalo a un file non elaborato a casa tua, così puoi vedere il log in caso di problemi.
- Hai bisogno dell'iso/img generato di seguito per cloud-init e montalo nel dispositivo dvd o cd per la VM che hai importato. Se la VM non include un dispositivo dvd/cd, devi aggiungerne uno. Aggiungilo come IDE e master, quindi carica l'ISO generato di seguito.
Cloud-Init
Se stai usando Ubuntu Cloud Images, dovresti usare Cloud-Init per impostare la configurazione iniziale, ti permette di impostare:
- Impostazioni internazionali predefinite
- Nome host
- Generazione e configurazione di chiavi private SSH
... tra le altre caratteristiche.
Il comportamento di Cloud-init può essere configurato tramite il flag dei dati utente per i comandi in linea o chiamando un file di configurazione di tipo YAML con le impostazioni da applicare.
Questo potrebbe essere fatto tramite il --user-data
o --user-data-file
argomento quando stai eseguendo inline, oppure puoi farlo con l'ISO. Mostrerò i passaggi per la modalità di montaggio ISO.
Non imposterò una password per root o per l'utente, creerò invece un nuovo utente con accesso SSH tramite chiavi pubbliche ssh e concederò invece all'utente le autorizzazioni sudo.
Ecco un esempio di dati utente cloud-config, crealo con il tuo editor di testo e rispetta il nome o il file seme non sarà un seme valido e non funzionerà.
#cloud-config
users:
- default
- name: eddypronk
ssh-authorized-keys:
- <your user public key here>
sudo: ALL=(ALL) NOPASSWD:ALL
groups: sudo
shell: /bin/bash
Puoi anche avere metadati per il nome host e altre definizioni:
instance-id: set-an-unique-instance-name-id
local-hostname: set-the-hostname
Dopo aver creato i file genera un file iso da caricare come cdrom o dvd dal virtual manager:
genisoimage -output nocloud.iso -volid cidata -joliet -rock user-data meta-data
Hai bisogno di genisoimage
per questo o il cloud-utils
strumento cloud-localds
per quest'altra opzione:
cloud-localds my-seed.img my-user-data my-meta-data
Ricorda che se lasci il seed / nocloud iso montato, sovrascriverà le impostazioni nella VM con quelle nei file di dati. E se modifichi qualcosa nei dati utente o nei metadati, devi ricostruire l'iso o l'img.
Avvio
Ora puoi avviare la VM. Per impostazione predefinita, non è possibile ssh alla macchina utilizzando il nome utente e la password o connettersi tramite la console VNC (la finestra VM "grafica" in Virtualbox). Devi usare il metodo di autenticazione con chiave pubblica/privata con ssh. Ciò significa abilitare un utente con una chiave ssh pubblica nei dati-utente File YAML. Inoltre, l'elevazione dei privilegi sudo per l'account ubuntu è senza password, ma l'account è bloccato per impostazione predefinita.
Soluzione 3:
Ecco un link alla possibile soluzione https://techglimpse.com/nova-boot-instance-with-password/
Crea un file chiamato userdata.txt con i seguenti contenuti:
#cloud-config
password: mypasswd
chpasswd: { expire: False }
ssh_pwauth: True
Ora passa userdata.txt file come input durante la creazione di una nuova istanza come mostrato di seguito:
#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
Il comando precedente imposterà la password mypasswd per l'utente predefinito ubuntu .