web-dev-qa-db-fra.com

Comment définir un mot de passe sur une image cloud Ubuntu?

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)

  1. Dans un premier temps, je veux un accès root, donc je peux tester la configuration réseau de l'adaptateur, du pont, des routes, du DNS.
  2. Un nouvel utilisateur avec la touche ssh et Sudo est le 2ème objectif.
  3. Ubuntu 17.10 (bientôt 18.04)
  4. VirtualBox 5.2.14
  5. vSphere 5.5
5
Eddy Pronk

Des questions

Il serait utile d'ajouter des informations générales à la question, telles que:

  1. Pourquoi devez-vous définir un mot de passe root. Il existe peut-être une autre solution. Qu'est-ce que vous essayez d'accomplir?
  2. Selon (1), la méthode recommandée pourrait être une parmi plusieurs options: utilisateur root avec mot de passe, nouvel utilisateur avec clé ssh et Sudo, autres.)
  3. Quel est votre système d'exploitation hôte?
  4. Version de VirtualBox?
  5. Version VMware vsphere?

Plan général

  1. Définissez les paramètres corrects pour Virtualbox
  2. Créer les fichiers de données utilisateur et de métadonnées
  3. Générer l'image ISO pour cloud-init
  4. Démarrez le VM avec l'image ISO attachée en tant que périphérique amovible

Virtualbox

  1. Vous pouvez importer l'OVA en tant qu'appliance, utiliser un disque IMG ou VMDK. Vous pouvez le faire dans l'interface graphique ou la ligne de commande.
  2. Vous devez activer le port série dans les paramètres matériels de la machine virtuelle. En option, pointez-le sur un fichier brut dans votre maison, afin que vous puissiez voir le journal en cas de problème.
  3. Vous avez besoin de l'iso/img généré ci-dessous pour cloud-init et montez-le dans le périphérique dvd ou cd pour le VM que vous avez importé. Si le VM doesn ' Pour inclure un périphérique dvd/cd, vous devez en ajouter un. Ajoutez-le en tant que IDE et master, puis chargez l'ISO généré ci-dessous.

Cloud-Init

Si vous utilisez buntu Cloud Images , vous devez utiliser Cloud-Init pour définir la configuration initiale, cela vous permet de configurer:

  • Paramètres régionaux par défaut
  • Nom d'hôte
  • Génération et configuration de clés privées SSH

... 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.

Boot

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.

5
Leo

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 .

4
batistuta09

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:

  • nom d'utilisateur: ubuntu
  • mot de passe: 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/

1
Mircea Vutcovici

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:

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

1
N1ckel0us

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/

1
Diamond

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?

0
user5870571