79 lines
2.6 KiB
Markdown
79 lines
2.6 KiB
Markdown
---
|
|
date: 2021-06-25
|
|
author: Alexandre LUCAZEAU
|
|
title: Utiliser une image cloud-init dans Proxmox
|
|
tags:
|
|
- cloudinit
|
|
- proxmox
|
|
categories :
|
|
- proxmox
|
|
draft: false
|
|
description : "Utiliser une image cloud-init dans Proxmox"
|
|
---
|
|
# Quest-ce que c'est ?
|
|
|
|
Cloud-init est une application de personnalisation d'une machine à son démarrage.
|
|
|
|
Cloud-init permet par exemple d'ajouter un utilisateur, de configurer un accès SSH avec une clée, installer des paquets, faire une configuration réseau en fonction du contexte etc...
|
|
|
|
Cloud-init est un outil supporté par debian, Red-hat, mais également par les cloud providers tel qu'OVH, Amazon, Google etc...
|
|
|
|
# Comment ça se présente ?
|
|
Cloud-init, c'est donc une application exécutée au premier lancement de la VM ou du container. L'application va lire un fichier de configuration, généralement appelé **cloud-init.yaml**
|
|
|
|
Ce fichier contient la personnalisation
|
|
|
|
# Quel lien avec Proxmox ?
|
|
Proxmox supporte cloudinit. Une rubrique est même consacrée à Cloud-init, permettant de personnaliser depuis la webgui les quelques paramètres suivants :
|
|
|
|
* user
|
|
* Password
|
|
* DNS domain
|
|
* DNS servers
|
|
* SSH puplic key
|
|
* IP config
|
|
|
|
# On fait quoi alors ?
|
|
L'idée est d'installer dans notre Proxmox, un template compatible cloud-init, qui sera utilisé pour créer de nouvelles VM. J'aime cloud-init pour les VM de base. Pour le reste, y a forman et puppet.
|
|
|
|
Debian fournit une image cloud-init. C'est elle que nous allons récupérer et installer dans notre Proxmox et intégrer comme template
|
|
|
|
# Le tuto commence là
|
|
La première étape consiste à récupérer
|
|
On récupère l'image
|
|
|
|
wget http://cdimage.debian.org/cdimage/openstack/current/debian-10-openstack-amd64.qcow2
|
|
|
|
* On choisi un id pour notre vm
|
|
|
|
`ID_VM=1024`
|
|
|
|
* Création de la VM avec 2G de RAM et une interface réseau connectée à notre bridge
|
|
|
|
`qm create ${ID_VM} --memory 2048 --net0 virtio,bridge=vmbr0`
|
|
|
|
* Import de l'image disque dans la VM en spécifiant quel storage Proxmox utiliser (ici PX-DATA)
|
|
|
|
`qm importdisk ${ID_VM} debian-10-openstack-amd64.qcow2`
|
|
|
|
* Rattacher le nouveau disque à la VM, et quel bus système utiliser
|
|
|
|
`qm set ${ID_VM} --scsihw virtio-scsi-pci --scsi0 PX-DATA:${ID_VM}/vm-${ID-VM}-disqk-0.raw`
|
|
|
|
* Ajouter un lecteur cloudinit
|
|
|
|
`qm set ${ID-VM} --ide2 local:cloudinit`
|
|
|
|
* Définir le disque de boot (ici notre image)
|
|
|
|
`qm set ${ID-VM} --boot c --bootdisk scsi0`
|
|
|
|
* Ajouter une interface vga pour accéder à la console
|
|
|
|
`qm set ${ID-VM} --serial0 socket --vga serial0`
|
|
|
|
* Transformer la VM en template
|
|
|
|
`qm template ${ID-VM}`
|
|
|