GNU/Linux >> Tutoriels Linux >  >> Linux

Utiliser cloud-init avec VirtualBox ?

Je l'ai compris et j'ai blogué à ce sujet ici. À partir de ce lien :

VirtualBox et cloud-init

Au cas où quelqu'un d'autre voudrait savoir :

  • Vous pouvez utiliser cloud-init pour configurer les machines virtuelles VirtualBox sans trop de problèmes.
  • Une façon de procéder consiste à utiliser un "lecteur de configuration", c'est-à-dire à monter un autre disque dur virtuel contenant (uniquement) les données de configuration cloud-init.
  • Voici une façon de le créer :

    # Create empty virtual hard drive file
    dd if=/dev/zero of=config.img bs=1 count=0 seek=2M
    # put correct filesystem and disk label on
    mkfs.vfat -n cidata config.img
    # mount it somewhere so you can put the config data on
    sudo mount config.img /mnt
    
  • Mettez maintenant vos données de configuration dans /mnt/user-data et /mnt/meta-data ,

  • Exemple :/mnt/user-data. Cela créera un utilisateur ubos-admin avec une clé ssh pour pouvoir vous connecter via ssh sans mot de passe.

    #cloud-config
    users:
     - name: ubos-admin
       gecos: UBOS administrative user
       ssh-authorized-keys:
        - insert ssh key here
       sudo: "ALL=(ALL) NOPASSWD: /usr/bin/ubos-admin *, /usr/bin/bash *"
    
  • Exemple /mnt/meta-data :

    instance-id: my-instance-1
    
  • Ensuite, démontez :

    sudo umount /mnt
    
  • et attachez-le comme deuxième disque dur avant de démarrer. Si cloud-init est installé dans l'image principale, il devrait récupérer les informations de configuration.


Une approche légèrement différente qui fonctionne également :

Utilisation de l'image cloud CentOS 7 trouvée ici :https://cloud.centos.org/centos/7/images/ (choisissez CentOS-7-x86_64-GenericCloud.qcow2)

données utilisateur

#!/bin/bash
##
## dependencies required for:
##        VBoxGuestAdditions
##        Minimal Desktop
##
DEPS='wget unzip python-pip git gnome-classic-session gnome-terminal nautilus-open-terminal control-center liberation-mono-fonts bzip2 libguest libguestfs binutils gcc make kernel-headers kernel-devel'

update(){
    sudo yum -y -q update
}


install_epel(){
    sudo yum -y install epel-release
    sudo yum -y update
}

configure(){
    sudo yum -y -q install $DEPS
    yum -y groupinstall "X Window System"
    unlink /etc/systemd/system/default.target
    ln -sf /lib/systemd/system/graphical.target /etc/systemd/system/default.target

    reboot
}

set -x
update
install_epel
configure

métadonnées

instance-id: dev
local-hostname: dev.example.com
public-keys:
    - ssh-rsa AAAAB3NzaC1y[...]2yX3 [email protected]

network-interfaces: |
    auto eth1
    iface eth1 inet dhcp

vbox-config-drive.sh

#!/bin/bash

##
## generate the config-drive iso
##
gen_iso(){
    echo "Generating ISO"
    genisoimage -output vbox-config.iso -volid cidata -joliet -r meta-data user-data
}

##
## resize as necessary
##
resize(){
    echo "Resizing Disk"
    qemu-img create -f qcow2 -o preallocation=metadata CentOS-7-x86_64-GenericCloud.qcow2.new 12G
    virt-resize --quiet --expand /dev/sda1 CentOS-7-x86_64-GenericCloud.qcow2 CentOS-7-x86_64-GenericCloud.qcow2.new
    mv CentOS-7-x86_64-GenericCloud.qcow2.new CentOS-7-x86_64-GenericCloud.qcow2
}
##
## convert the qcow to vmdk
##
make_vmdk(){
    echo "Converting QCOW to VMDK"
    qemu-img convert -f qcow2 CentOS-7-x86_64-GenericCloud.qcow2 -O vmdk CentOS-7-x86_64-GenericCloud.vmdk
}

gen_iso
##
## OPTIONAL
## resize
##
make_vmdk
echo "Done"

Utilisez le VMDK résultant comme disque principal de VirtualBox et l'ISO résultant comme lecteur optique.

J'espère que cela t'aides. M.


Linux
  1. Comment j'utilise Vagrant avec libvirt

  2. Comment utiliser la commande ethtool avec des exemples

  3. Pouvez-vous utiliser des ancres ^ $ avec Ls ?

  4. Utiliser CloudFlare avec Rackspace

  5. Utiliser iptables avec CentOS 7

Comment installer Vagrant et l'utiliser avec VirtualBox sur Ubuntu 20.04

Comment utiliser la commande Linux rm avec des exemples

Comment utiliser PostgreSQL avec l'application Ruby On Rails

Premiers pas avec VirtualBox sous Linux - Partie 1

Problème avec l'installation d'Ubuntu dans Virtualbox ?

Installer Windows 10 sur Linux avec VirtualBox