J'essaie de démarrer sur .ova avec VirtualBox et je veux importer la même image plus tard dans vSphere.
Les images cloud Ubuntu n'ont plus de mot de passe standard.
Je souhaite modifier le .ova pour configurer un mot de passe. (et les clés SSH ultérieures)
Le fichier .ova téléchargé a une propriété de mot de passe.
J'ai trouvé un outil appelé cot
(outil OVF commun) pour modifier les propriétés.
J'ai essayé:
cot edit-properties ubuntu-18.04-server-cloudimg-AMD64-custom.ova -p password=ubuntu
Également essayé:
cot edit-properties ubuntu-18.04-server-cloudimg-AMD64-custom.ova -p user-data="password: ubuntu"
Les deux tentatives sans succès. (Connection impossible)
Existe-t-il une étape pour appliquer cette configuration aux images ou ces propriétés sont-elles transmises à l'image au démarrage?
Des idées?
Mise à jour: (réponses aux questions de fond)
Il serait utile d'ajouter des informations générales à la question, telles que:
Si vous utilisez buntu Cloud Images , vous devez utiliser Cloud-Init pour définir la configuration initiale, cela vous permet de configurer:
... entre autres fonctionnalités.
Le comportement de Cloud-init peut être configuré via l'indicateur de données utilisateur pour les commandes en ligne ou en appelant un fichier de configuration de type YAML avec les paramètres à appliquer.
Cela peut être fait via le --user-data
ou --user-data-file
argument lorsque vous exécutez en ligne, ou vous pouvez le faire avec l'ISO. Je vais montrer les étapes du mode de montage ISO.
Je ne configurerai pas de mot de passe pour root ou l'utilisateur, je crée à la place un nouvel utilisateur avec un accès SSH via des clés publiques ssh et j'autorise à la place l'utilisateur Sudo.
Voici un exemple de fichier de configuration des données utilisateur cloud, créez-le avec votre éditeur de texte et respectez le nom ou le fichier d'origine ne sera pas un graine valide et ne fonctionnera pas.
#cloud-config
users:
- default
- name: eddypronk
ssh-authorized-keys:
- <your user public key here>
Sudo: ALL=(ALL) NOPASSWD:ALL
groups: Sudo
Shell: /bin/bash
Vous pouvez également avoir des métadonnées pour le nom d'hôte et d'autres définitions:
instance-id: set-an-unique-instance-name-id
local-hostname: set-the-hostname
Après avoir créé les fichiers, générez un fichier iso à charger en tant que cdrom ou dvd à partir du gestionnaire virtuel:
genisoimage -output nocloud.iso -volid cidata -joliet -rock user-data meta-data
Vous avez besoin de genisoimage
pour cela ou du cloud-utils
outil cloud-localds
pour cette autre option:
cloud-localds my-seed.img my-user-data my-meta-data
N'oubliez pas que si vous laissez l'iso/nocloud monté, il écrasera les paramètres dans le VM avec ceux des fichiers de données. Et si vous changez quoi que ce soit dans les données utilisateur ou les métadonnées, vous besoin de reconstruire l'iso ou img.
Vous pouvez maintenant démarrer la machine virtuelle. Par défaut, vous ne pouvez pas accéder à la machine en utilisant le nom d'utilisateur et le mot de passe ou vous connecter via la console VNC (la fenêtre "graphique" VM dans Virtualbox). Vous devez utiliser l'authentification par clé publique/privée avec ssh. Cela signifie activer un utilisateur avec une clé publique ssh dans le fichier YAML user-data. De plus, l'élévation des privilèges Sudo pour le compte Ubuntu est sans mot de passe, mais le compte est verrouillé par défaut.
Voici un lien vers la solution possible https://techglimpse.com/nova-boot-instance-with-password/
Créez un fichier appelé userdata.txt avec le contenu ci-dessous:
#cloud-config
password: mypasswd
chpasswd: { expire: False }
ssh_pwauth: True
Maintenant, passez le fichier userdata.txt en entrée lors de la création d'une nouvelle instance comme indiqué ci-dessous:
#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
La commande ci-dessus définira le mot de passe mypasswd pour l'utilisateur par défaut ubuntu .
18.04 configuration étape par étape
En bref, vous avez besoin de:
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
...
et maintenant vous pouvez vous connecter avec:
ubuntu
asdfqwer
Ici, je décris un exemple de fonctionnement QEMU détaillé minimal complet: https://askubuntu.com/questions/281763/is-there-any-prebuilt-qemu-ubuntu-image32bit-online/1081171#1081171
Cloud-init est installé sur votre image. Cela signifie que vous pouvez utiliser NoCloud datasource pour charger la configuration à partir d'une image de disquette (vfat) ou de cd (ISO9660). Dans cette image, vous pouvez avoir un fichier cloud-config où vous pouvez configurer les clés ssh
Pour plus de détails, lisez également: http://blog.klocwork.com/open-source/using-cloud-init-outside-of-the-cloud/
selon leur site Web, le mot de passe pour les images est généré de manière aléatoire.
Le nom d'utilisateur sera ubuntu, mais les images "cracheront" le mot de passe généré au hasard lors de leur premier démarrage.
"Obtenez le mot de passe pour 'ubuntu' et connectez-vous La sélection par défaut dans le menu grub se traduira par un mot de passe généré aléatoirement pour l'utilisateur 'ubuntu' au premier démarrage. Le mot de passe est écrit à deux endroits , la console et le périphérique série. Sur la console, vous verrez des lignes comme: "
Lisez ce lien, étape 4:
Mon hypothèse est que la propriété de mot de passe que vous définissez est réinitialisée lorsque le VM démarre, car le cloud-init désactive l'authentification par mot de passe par défaut. Peut-être pouvez-vous essayer de monter l'image et de configurer le cloud.cfg comme ci-dessous:
/etc/cloud/cloud.cfg
#cloud-config
password: mysecret
chpasswd: { expire: False }
ssh_pwauth: True
Ceci est censé activer l'authentification par mot de passe et définir un mot de passe, comme mentionné dans le lien suivant:
https://ask.openstack.org/en/question/5531/defining-default-user-password-for-ubuntu-cloud-image/
Pourquoi ne pas importer l'OVA, démarrer le VM dans la VBox, ajouter un mot de passe, exporter le VM vers un OVA et l'utiliser la prochaine fois que vous en aurez besoin) créer une nouvelle VM?