Créer une VM

Version 3.1 par sasportesj le 2021/04/04 00:10

Sur Touffu (touffu.infra.atilla.org) :

Créer une nouvelle instance de xen (par exemple) :

xen-create-image --hostname=<nom de la VM> --mac=<adresse MAC libre> --dist=stable --lvm=VMs --dhcp --memory=1G --password=<mot de passe de la VM> --size=5G --swap=256M --vcpus=1

Sur Bill (root@atilla.org depuis l'extérieur, bill.infra.atilla.org depuis l'intérieur du réseau) :

Dans /etc/bind/internal, on cherche un slot vide à la bonne adresse IP et on le remplit BIEN (c'est-à-dire qu'on fait attention à bien écrire si on est en prod, preprod, ou dev dans le nom de la VM). On modifie aussi db.10.168.192.in-addr.arpa et le fichier db du nom de domaine si on met le site en ligne.

Dans /etc/dhcp, on trouve tous les DHCP dans chacun des fichiers (prod.conf, dev.conf, ...), on remplit le bon fichier avec l'adresse MAC et l'adresse IP correspondante.

Ensuite, on restart le système avec :

systemctl restart isc-dhcp-server.service # pour restart le DHCP
systemctl restart bind9 # pour restart le DNS

Sur Touffu :

On voit que dnas /etc/xen un fichier .cfg a été ajouté automatiquement.

Dans /etc/xen/auto, on crée un lien symbolique pour notre VM :

ln -s ../<nom de la VM>.cfg

 On crée ensuite la machine et on se rend sur son interface :

xl create -c <nom de la VM>.cfg

Sur la VM :

login : root

mdp : celui que vous avez mis quand vous avez créé votre VM

Maintenant qu'on est sur l'interface de notre VM, on installe la base (vim et wget pour installer puppet) :

apt install vim wget

On télécharge ensuite le paquet de puppet, et on l'installe :

wget  https://apt.puppet.com/puppet7-release-<debian version>.deb  # exemple de debian version : stretch, buster, ...
dpkg -i <nom du fichier téléchargé>.deb

On update ensuite les paquets disponibles, et on installe l'agent puppet :

apt-get update
apt-get install puppet-agent

Pour utiliser la commande puppet, on devra maintenant utiliser le lien /opt/puppetlabs/bin/puppet, à moins de mettre à jour le path

On démarre ensuite le service de puppet :

/opt/puppetlabs/bin/puppet resource service puppet ensure=running enable=true

 On connecte ensuite l'agent au serveur de puppet (à ce jour Milou) :

/opt/puppetlabs/bin/puppet ssl bootstrap

En  parallèle, sur Milou (milou.infra.atilla.org) :

Via la commande précédente, un certificat a été créé, que le serveur doit signer pour que les deux machines puissent communiquer.

Pour voir la liste des certificats pas signés :

puppetserver ca list

Pour signer un certificat précis :

puppetserver ca sign --certname <nom de la VM>

 Pour signer tous les certificats pas signés :

puppetserver ca sign --all

 Sur la VM :

Pour vérifier que tout marche bien :

/opt/puppetlabs/bin/puppet ssl bootstrap

Si on veut mettre la VM en ligne :

Sur Bill :

On crée un nouveau fichier dans /etc/nginx pour la VM (on peut copier sur les autres et adapter le nom).

On crée un fichier error.log et un fichier access.log dans /var/log/nginx

On va ensuite dans /etc/nginx/sites-enables/<nom de domaine qu'on a choisi> et on crée un lien symbolique :

ln -s ../../sites-available/<DNS de la VM>

On redémarre nginx pour que ça marche :

systemctl restart nginx