J'essaie de construire une infrastructure de cloud en utilisant des machines virtuelles
Dans les manuels Openstack, il est mentionné que les images de ce lien contiennent Openstack préinstallé.
J'ai téléchargé le fichier trusty-server-cloudimg-AMD64-disk1.img
et je l'ai chargé à l'aide de KVM. J'ai instancié une machine virtuelle à l'aide de cette image mais je ne parviens pas à me connecter (à l'aide de la console) ni à ssh.
Je ne connais pas le nom d'utilisateur et le mot de passe par défaut de ce système d'exploitation.
Aussi (une question différente), je voudrais construire un nuage en utilisant les 2 machines virtuelles, est-il possible d'utiliser la même image?
Le nom d'utilisateur par défaut pour l'image ubuntu est ubuntu
.
Il n’existe pas de mot de passe par défaut et vous ne pouvez pas vous connecter à l’ordinateur en utilisant un nom d’utilisateur/mot de passe ou vous connecter via la console VNC. Vous devez utiliser la méthode d'authentification par clé publique/privée avec ssh. De plus, l'élévation Sudo pour le compte ubuntu
est sans mot de passe.
Après avoir accédé pour la première fois à votre machine virtuelle, vous pouvez modifier ces paramètres et activer l'authentification par nom d'utilisateur/mot de passe pour ssh.
Concernant votre deuxième question,
Oui, vous pouvez utiliser la même image pour plusieurs ordinateurs virtuels.
18.04 configuration pas à pas
En bref, vous avez besoin de l'hôte:
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 \
-m 1G
...
et maintenant vous pouvez vous connecter avec:
ubuntu
asdfqwer
Je décris ici un exemple concret d’exploitation QEMU minimal et complet: https://askubuntu.com/questions/281763/is-there-any-prebuilt-qemu-ubuntu-image32bit-online/1081171#1081171
Testé sur un hôte Ubuntu 18.04.
Que dis-tu de ça:
$ virt-customize -a bionic-server-cloudimg-AMD64.img --root-password password:coolpass
Voici quelques détails sur la façon de se connecter pour la première fois à une nouvelle instance Ubuntu, en complément de la réponse de @ Athafoud.
Dans l’interface graphique OpenStack, vous gérez vos clés publique/privée sous Projet> Calculer> Accès et sécurité. Créez une clé SSH (par exemple, en utilisant ssh-keygen
sous Linux ou macOS) et ajoutez-la aux clés OpenStack en cliquant sur "Importer une paire de clés". (Ou vous pouvez "créer une paire de clés" à partir de l'interface graphique OpenStack, puis exporter les clés sur votre poste de travail.)
Lorsque vous créez la nouvelle instance (VM), vous devez spécifier cette clé comme "paire de clés" que vous utiliserez pour vous connecter pour la première fois.
Une fois que votre nouvelle instance est opérationnelle, connectez-vous via SSH comme suit:
ssh -i <keyfile> ubuntu@<instance>
où <keyfile>
est le nom de la clé SSH que vous avez associée à l'instance et <instance>
est le nom d'hôte ou l'adresse IP de l'instance. Cette commande vous connecte au compte ubuntu
sur l'instance sans demander de mot de passe.
L'utilisateur ubuntu
a les privilèges Sudo
. Vous pouvez donc devenir root en tapant Sudo -i
après la connexion et gérer le VM comme bon vous semble :-)
Le code suivant pourrait être utilisé pour rendre Ubuntu cloudimg
utilisable sur une machine Debian 7.2 (Wheezy):
apt-get install pwgen
apt-get install genisoimage
git clone -b master https://git.launchpad.net/cloud-utils
printf "#cloud-config\n" > user-data
printf "password: `pwgen 8 1`\nchpasswd: { expire: False }\nssh_pwauth: True\n" >> user-data
./cloud-utils/bin/cloud-localds user-data.img user-data
Ensuite, vous lancerez l’image comme ceci, à partir d’une fenêtre tmux
, pour vous assurer qu’elle continuera à fonctionner même si vous vous déconnectez:
kvm -m 2048 -smp 2 -hda ubuntu-18.10-server-cloudimg-AMD64.img -hdb user-data.img -net nic -Net User,hostfwd=tcp::1810-:22 -nographic
Vous pouvez ensuite vous connecter à la machine en tant qu'utilisateur ubuntu
et le mot de passe généré dans le fichier user-data
. La connexion peut s'effectuer via la console série imprimée avec kvm
(ce qui est normalement assez lent, même si vous avez une connexion ssh dessus), ou via ssh
avec ssh ubuntu@localhost -p1810
. L'utilisateur ubuntu
obtient l'accès par défaut Sudo
sans mot de passe en tant que root par défaut.
P.S. J'ai également essayé de jouer avec l'ajout du ssh-authorized-keys
, mais le format cloud-config
semble très fragile et, au plus haut niveau, il est simplement ignoré, alors qu'au niveau users:
comme ci-dessous, tout l'utilisateur ubuntu
semble rompre (au moins le mot de passe en fait partie) . Voici le code pour obtenir les clés dans un format potentiellement lisible pour cloud-config:
printf "users:\n - name: ubuntu\n ssh-authorized-keys:\n" >> user-data
cat ~/.ssh/id_rsa.pub ~/.ssh/authorized_keys | sed 's/^/ - /g' >> user-data
(Notez que la variable password
, apparemment, peut ne pas être un champ valide pour la spécification users
, car elle a plutôt un hash passwd
, le tout casse alors le code précédent, car l'utilisateur Ubuntu est créé sans mot de passe.)