PROXMOX
- 1 - Initiation
- 1 - Installation de PROXMOX
- Installation d'une VM
- AJOUT DE STOCKAGE
- 2- Initialisation d'un cluster Proxmox
- 3 - Installation du réseau (Privé)
- 2- Automatisation
- Création d'un template Cloudinit
- Création d'une VM Linux Avec Terraform
- Création d'un container Linux Avec Terraform
- Creation d'une VM linux avec opentofu
- Proxmox BACKUP
- Proxmox LDAP
1 - Initiation
1 - Installation de PROXMOX
Proxmox c’est quoi ?
Proxmox Virtual Environnement est une solution de virtualisation libre (licence AGPLv3) basée sur l’hyperviseur Linux KVM, et offre aussi une solution de containers avec LXC. Elle propose un support payant.
-
Installation
Dans un premier temps il faut télécharger Promox https://www.proxmox.com/en/downloads/category/iso-images-pve.
-
- Lancer l'installation sur vmware.
- Sélectionner le bon OS dans notre cas ce sera Linux et Debian 11.
- Nommer la machine, je l’appellerai pve-front-01.
- Mettre le nombre de processeur souhaités
- Mettre au minimum 4 Go de RAM.
- On peut mettre NAT ou bridge dans Network Connection.
- Pour le disque il faudra minimum 50 Go.
- Ne pas démarrer de suite la VM et customiser cette dernière.
- Aller modifier les paramètres de la VM et modifier le processeur afin de cocher la virtualisation.
- Démarrer la VM.
- sélectionner Install Proxmox en mode graphique.
- Accepter la License.
- Laisser pas défaut le disque.
- Configurer le pays et la région, ici se sera France et Europe/Paris.
- Créer un mot de passe pour l'utilisateur root (Je conseil Espoir15).
- Nommer le serveur.
- Installer le serveur en cliquant sur install.
- Vous pourrez après l'installation vous rendre sur le navigateur de votre choi et taper https://IP_DU_SERVEUR:8006. L'utilisateur est root et le mot de passe celui que vous avez choisi lors de l'installation.
- Lancer l'installation sur vmware.
-
Création des interface réseau
Afin de pouvoir communiquer entre elle les VMs ou en encore les conteneur que vous allez créer vont avoir besoin d'un accès réseau. Ici deux choix s'offre à nous:
- Laisser comme tel, ainsi nous serons bridgé sur le même réseau que le Proxmox.
- Ajouter un nouveau switch virtuel afin d'isoler les VMs/conteneurs que nous allons créer.
Nous allons opter pour la création d'un nouveau switch.
Création de l'interface vmbr1:
- État actuel du serveur.
Ici nous pouvons voire qu'il existe déjà un switch virtuel c'est celui qui nous permet d'accéder à notre Proxmox et à ce dernier un accès internet.
- Ajouter les interfaces réseaux (vmnet) au serveur(s) Proxmox(s).
Actuellement en créant une machine et en lui affectant pour switch vmbr1, cette dernière n'aura accès qu'au machines connectée sur ce même switch.
Pour que les machines soit isolée sur un réseau local mais qu'elles aient un accès à internet, on peut mettre en place un firewall.
Je vous propose de suivre le tutoriel suivant pour la mise en place du firewall OPNSENSE.
Installation d'une VM
Installation d'une VM Debian 12 sur Proxmox.
Prérequis:
- Avoir un serveur Proxmox
- Avoir un ISO de la dernière version de Debian (Version 12, Bookworm actuellement).
On peut trouver l'ISO Ici.
- Upload de L'ISO sur le serveur.
- Création de la VM.
- Nommer sa VM
- Sélection de l'OS et de l'ISO
- Sur la partie système faites Next.
- Définition de la taille du disque mettre 8Go (c'est un test pas de la production)
- Choisissez le nombre de CPU et de coeurs souhaitées (en modifiant les CPU j'ai déjà eu des soucis préférer la modification des cœurs).
- Définir la mémoire souhaitée (1024 fera très bien l'affaire pour ce test).
- Connecter la future machine sur un switch pour ce test définir le switch sur vmbr0 ainsi le réseau sera le même que le serveur Proxmox.
- On peut cocher la case start after created pour démarrer la Vm directement.
- Nommer sa VM
- Accès à la VM.
- Soit par la console web.
- Soit accès en SSH avec l'IP du serveur.
kvega@fr-lap10398 ~ ssh kvega@192.168.1.74 The authenticity of host '192.168.1.74 (192.168.1.74)' can't be established. ED25519 key fingerprint is SHA256:ABGWoRK+euXlyaXS6QPac0ta378u/5dAsCqJ3EnfuQU. This key is not known by any other names Are you sure you want to continue connecting (yes/no/[fingerprint])? yes Warning: Permanently added '192.168.1.74' (ED25519) to the list of known hosts. kvega@192.168.1.74's password: Linux debian-test 6.1.0-9-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.1.27-1 (2023-05-08) x86_64 The programs included with the Debian GNU/Linux system are free software; the exact distribution terms for each program are described in the individual files in /usr/share/doc/*/copyright. Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent permitted by applicable law. Last login: Wed Jun 28 18:03:03 2023 kvega@debian-test:~$ su - Mot de passe : root@debian-test:~#Si vous choisissez le SSH il faudra vous connecter avec l'utilisateur que vous avez créé pendant l'installation et récupérer l'IP du serveur.
- Soit par la console web.
Voilà votre première Vm est créée !!
AJOUT DE STOCKAGE
Prérequis
- Avoir un proxmo
- Avoir de l'espace sur son disque
Ajout du disque sur le logiciel de virtualisation
- Ajout du disque
- Redémarrez le serveur Proxmox
- Paramétrez le nouveau disque dans la console web de Proxmox
2- Initialisation d'un cluster Proxmox
Prérequis:
- Avoir au moins 3 hyperviseurs Proxmox
- Chaque Hyperviseur doit être accessible sur le réseau
- Une seconde interface réseau connectant les serveurs entre eux
Schéma:
Mise en place du réseau ADM:
- Ajout du switch virtuel sur chaque Proxmox
- Test de la connectivité entre les Proxmox
root@pve-front-01:~# ping -c1 172.16.1.2 PING 172.16.1.2 (172.16.1.2) 56(84) bytes of data. 64 bytes from 172.16.1.2: icmp_seq=1 ttl=64 time=0.279 ms --- 172.16.1.2 ping statistics --- 1 packets transmitted, 1 received, 0% packet loss, time 0ms rtt min/avg/max/mdev = 0.279/0.279/0.279/0.000 ms root@pve-front-01:~# ping -c1 172.16.1.3 PING 172.16.1.3 (172.16.1.3) 56(84) bytes of data. 64 bytes from 172.16.1.3: icmp_seq=1 ttl=64 time=0.238 ms --- 172.16.1.3 ping statistics --- 1 packets transmitted, 1 received, 0% packet loss, time 0ms rtt min/avg/max/mdev = 0.238/0.238/0.238/0.000 ms root@pve-front-01:~#
Mise en place du cluster
- Initialisation du cluster
- Nomage du cluster
Attendre que le processus soit terminé - Récuperer les informations de jonction les notés dans un endroit sûr.
- Joindre les noeud au cluster
- Ajouter tout les cluster
3 - Installation du réseau (Privé)
Prérequis:
- Avoir un cluster Proxmox
- Avoir branché un câble spécifique sur chaque nœud pour le réseau LAN.
Mise en place du réseau LAN:
- Ajout du switch virtuel sur chaque nœuds:
- Faire les modifications sur tout les nœuds
- Faire un test en faisant un PING entre deux VMs/LXC sur deux nœuds différents:
root@test2:~# ping 172.16.1.2 -c 1 PING 172.16.1.2 (172.16.1.2) 56(84) bytes of data. 64 bytes from 172.16.1.2: icmp_seq=1 ttl=64 time=0.147 ms --- 172.16.1.2 ping statistics --- 1 packets transmitted, 1 received, 0% packet loss, time 0ms rtt min/avg/max/mdev = 0.147/0.147/0.147/0.000 ms
2- Automatisation
Création d'un template Cloudinit
Création d'un template avec cloud init.
- Se connecter à proxmox en SSH
- Créer un dossier de travail:
- Téléchargement du template au choix Debian ou Ubuntu:
- Debian:
wget https://cloud.debian.org/images/cloud/bookworm/latest/debian-12-generic-amd64.qcow2 - Ubuntu:
wget https://cloud-images.ubuntu.com/jammy/current/jammy-server-cloudimg-amd64.img
- Debian:
- Je télécharge Ubuntu, si l'Os choisi est Debian alors il faudra dézipper ce qu'on aura téléchargé:
- On va customiser notre image:
apt-get update && apt install -y libguestfs-tools-
- Installation de l'agent de liaison:
virt-customize -a jammy-server-cloudimg-amd64.img --install qemu-guest-agent - Création d'un nouvel utilisateur:
virt-customize -a jammy-server-cloudimg-amd64.img --run-command 'useradd kvega' #changer le mot de passe du user créé virt-customize -a debian-12-generic-amd64.qcow2 --run-command 'echo "kvega:PASSWORD" | chpasswd' # Creation de son Home virt-customize -a jammy-server-cloudimg-amd64.img --run-command 'mkdir -p /home/kvega/.ssh' # Mise à jour des droits sur le home du user virt-customize -a jammy-server-cloudimg-amd64.img --run-command 'chown kvega:kvega /home/kvega' # Injection de la clé SSH pour la connexion virt-customize -a jammy-server-cloudimg-amd64.img --ssh-inject kvega:file:/root/.ssh/id_rsa.pub
- Installation de l'agent de liaison:
-
- On va créer un template pour nos futurs machines:
# CREATION DU TEMPLATE # Parametrage de la RAM et du CPU qm create 9001 --name 'Ubuntu22-Template' --memory 2048 --cores 2 --net0 virtio,bridge=vmbr0 # Import du disque Init dans le template qm importdisk 9001 jammy-server-cloudimg-amd64.img local-lvm # parametrage du disque qm set 9001 --scsihw virtio-scsi-pci --scsi0 local-lvm:vm-9001-disk-0 qm set 9001 --boot c --bootdisk scsi0 # Creation du volume cloudinit qm set 9001 --ide2 local-lvm:cloudinit # Create de la console (serial) qm set 9001 --serial0 socket --vga serial0 # Activation de l'agent qm set 9001 --agent enabled=1 #Transforamtion de la vm en template qm template 9001A cette étape on a un template de créé:
- On va tester la création d'une VM via le template:
qm clone 9001 999 --name test-clone-cloud-init -
La VM est créée, on va modifier son IP et donner un mot de passe à notre utilisateur:
Création d'une VM Linux Avec Terraform
-
- Paramétrage de PROXMOX (création d'une clé d'API)
- Installation de TERRAFORM sur une DEBIAN (Créer un container de management)
- Suivre la documentation officielle https://developer.hashicorp.com/terraform/tutorials/aws-get-started/install-cli
- Vérifier l'installation de TERRAFORM:
root@MGT-FRONT-01:~# terraform -v Terraform v1.5.2 on linux_amd64
- Premier déploiement de machine
- Créer un dossier de travail:
mkdir VM_CREATION && cd VM_CREATION - On va créer un fichier provider.tf ce fichier va référencer les module que nous utiliserons pour la création des VM.
# Creation du fichier provider.tf nano provider.tfContenu du fichier:
terraform { required_providers { proxmox = { source = "telmate/proxmox" version = "2.7.4" } } } provider "proxmox" { # url de Proxmox pm_api_url = "https://192.168.1.179:8006/api2/json" # api token id is in the form of: <username>@pam!<tokenId> pm_tls_insecure = true pm_parallel = 2 pm_user="root@pam" pm_password="Espoir15" } - On créer le fichier web.tf:
nano web.tfContenu du fichier:
resource "proxmox_vm_qemu" "web-server-1" { count = 1 name = "web-front-01" target_node = "pve-front-01" vmid = "0" clone = "Ubuntu22-Template" full_clone = "true" agent = 1 os_type = "cloud-init" cores = 1 sockets = 1 cpu = "kvm64" oncreate = true memory = 1024 scsihw = "virtio-scsi-pci" bootdisk = "scsi0" disk { slot = 0 size = "8G" type = "scsi" storage = "local-lvm" iothread = 0 } network { model = "virtio" bridge = "vmbr1" } lifecycle { ignore_changes = [ network, ] } ipconfig0 = "ip=172.16.250.3/24,gw=172.16.250.1" #Si vous avez des clés SSH vous pouvez les mettre ici sshkeys = <<EOF ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIIeq/iHCth8j1aKG/DMq0rd3bveLgqksAkwBOhYgAFG1 kvega@fr-lap10398 EOF }source du provider terraform PROVIDER-TERRAFORM
- Initialisation du dossier:
root@MGT-FRONT-01:~# terraform init Initializing the backend... Initializing provider plugins... - Finding latest version of telmate/proxmox... - Installing telmate/proxmox v2.9.14... - Installed telmate/proxmox v2.9.14 (self-signed, key ID A9EBBE091B35AFCE) Partner and community providers are signed by their developers. If you'd like to know more about provider signing, you can read about it here: https://www.terraform.io/docs/cli/plugins/signing.html Terraform has created a lock file .terraform.lock.hcl to record the provider selections it made above. Include this file in your version control repository so that Terraform can guarantee to make the same selections by default when you run "terraform init" in the future. Terraform has been successfully initialized! You may now begin working with Terraform. Try running "terraform plan" to see any changes that are required for your infrastructure. All Terraform commands should now work. If you ever set or change modules or backend configuration for Terraform, rerun this command to reinitialize your working directory. If you forget, other commands will detect it and remind you to do so if necessary. - Planification du déploiement (Montre ce qui va être déployé):
terraform plan -
On déploie réellement:
terraform applyOn valide les modifications:
Do you want to perform these actions? Terraform will perform the actions described above. Only 'yes' will be accepted to approve. Enter a value: yesLa VM a été créée:
- Initialisation du dossier:
- Créer un dossier de travail:
- Paramétrage de PROXMOX (création d'une clé d'API)
Création d'un container Linux Avec Terraform
-
- Paramétrage de PROXMOX (création d'une clé d'API)
- Installation de TERRAFORM sur une DEBIAN (Créer un container de management)
- Suivre la documentation officielle https://developer.hashicorp.com/terraform/tutorials/aws-get-started/install-cli
- Vérifier l'installation de TERRAFORM:
root@MGT-FRONT-01:~# terraform -v Terraform v1.5.2 on linux_amd64
- Premier déploiement de machine
- Créer un dossier de travail:
mkdir VM_CREATION && cd VM_CREATION - On va créer un fichier provider.tf ce fichier va référencer les module que nous utiliserons pour la création des VM.
# Creation du fichier provider.tf nano provider.tfContenu du fichier:
terraform { required_providers { proxmox = { source = "telmate/proxmox" # version = "2.7.4" } } } provider "proxmox" { # url de Proxmox pm_api_url = "https://192.168.1.179:8006/api2/json" # api token id is in the form of: <username>@pam!<tokenId> pm_tls_insecure = true pm_parallel = 2 pm_user="root@pam" pm_password="Espoir15" } - On créer le fichier web.tf:
nano web.tfContenu du fichier:
resource "proxmox_lxc" "web" { #count = 2 count = 1 target_node = "pve-front-01" hostname = "web-front-0${count.index + 1}" start = true ostemplate = "/mnt/pve/ISOs/template/cache/debian-12-standard_12.0-1_amd64.tar.zst" unprivileged = true ostype = "debian" nameserver = "172.16.0.3 172.16.0.4 1.1.1.1" onboot = true searchdomain = "megaproduction.local" memory = "512" # pool = "BTS2" cores = "1" ssh_public_keys = <<-EOT ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIHGQDKDGsODUESc5SWLCK0W2/5yAg/xdrXtVCtgE170H root@adm-front-01 ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIIeq/iHCth8j1aKG/DMq0rd3bveLgqksAkwBOhYgAFG1 kvega@fr-lap10398 EOT // Terraform will crash without rootfs defined rootfs { storage = "VMs_HDD" size = "8G" } features { fuse = true nesting = true mount = "nfs;cifs" } network { name = "eth0" bridge = "vmbr2" #ip = "10.10.10.${2 + count.index + 1}/26" ip = "10.10.10.1/26" gw = "10.10.10.1" } }source du provider terraform PROVIDER-TERRAFORM
- Initialisation du dossier:
root@MGT-FRONT-01:~# terraform init Initializing the backend... Initializing provider plugins... - Finding latest version of telmate/proxmox... - Installing telmate/proxmox v2.9.14... - Installed telmate/proxmox v2.9.14 (self-signed, key ID A9EBBE091B35AFCE) Partner and community providers are signed by their developers. If you'd like to know more about provider signing, you can read about it here: https://www.terraform.io/docs/cli/plugins/signing.html Terraform has created a lock file .terraform.lock.hcl to record the provider selections it made above. Include this file in your version control repository so that Terraform can guarantee to make the same selections by default when you run "terraform init" in the future. Terraform has been successfully initialized! You may now begin working with Terraform. Try running "terraform plan" to see any changes that are required for your infrastructure. All Terraform commands should now work. If you ever set or change modules or backend configuration for Terraform, rerun this command to reinitialize your working directory. If you forget, other commands will detect it and remind you to do so if necessary. - Planification du déploiement (Montre ce qui va être déployé):
terraform plan -
On déploie réellement:
terraform applyOn valide les modifications:
Do you want to perform these actions? Terraform will perform the actions described above. Only 'yes' will be accepted to approve. Enter a value: yesLa VM a été créée:
- Initialisation du dossier:
- Créer un dossier de travail:
- Paramétrage de PROXMOX (création d'une clé d'API)
Creation d'une VM linux avec opentofu
Prérequis
- Disposer d'un cluster proxmox valide
- Avoir Opentofu d'installé
- Avoir un serveur linux (Bastion) au seins du cluster avec un e paire de clé SSH de disponible
Mise en place de la configuration (SSH)
- Transférer la clé SSH publique sur le serveur proxmox
- Sur le Serveur (Bastion)
> cat .ssh/id_ed25519.pub ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAICqLxAZ0VeOyxKeDgxb9Gp7upKGs/w1+NrDRXcVYjLii root@adm-front-01 - Sur le Proxmox
root@pve-front-01:~# echo "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAICqLxAZ0VeOyxKeDgxb9Gp7upKGs/w1+NrDRXcVYjLii root@adm-front-01" >> /root/.ssh/authorized_keys - Test de la connexion depuis le serveur sur le proxmox
ssh -q -o BatchMode=yes -o ConnectTimeout=5 root@$PVE_ADDRESS exit echo $? # Si le retour de la commande est différent de 0 la connexion est en echec
- Sur le Serveur (Bastion)
- Mise en place du fichier provider
- créer le fichier provider.tf
terraform { required_providers { proxmox = { source = "bpg/proxmox" # --> https://registry.terraform.io/providers/bpg/proxmox/latest/docs version = "0.74.1" } } } provider "proxmox" { endpoint = "https://{PVE_ADDRESS}:8006" username = "root@pam" password = "{PVE_ROOT_PASSWORD}" insecure = true ssh { agent = true username = "root" node { name = "pve-front-01" address = "{PVE_ADDRESS}" port = 2222 # -> PVE SSH PORT } } }Lien vers le fichier provider.tf
- créer le fichier provider.tf
- Initialisation du provider
> tofu init Initializing the backend... Initializing provider plugins... - Reusing previous version of bpg/proxmox from the dependency lock file - Using previously-installed bpg/proxmox v0.74.1 OpenTofu has been successfully initialized! You may now begin working with OpenTofu. Try running "tofu plan" to see any changes that are required for your infrastructure. All OpenTofu commands should now work. If you ever set or change modules or backend configuration for OpenTofu, rerun this command to reinitialize your working directory. If you forget, other commands will detect it and remind you to do so if necessary.
Mise en place des fichiers de configuration VMs
- Téléchargement du fichier cloudinit via tofu
- Créer le fichier file.tf
resource "proxmox_virtual_environment_file" "latest_debian_12" { content_type = "vztmpl" datastore_id = "local" node_name = "pve-front-01" source_file { path = "http://download.proxmox.com/images/system/debian-12-standard_12.7-1_amd64.tar.zst" } }
- Créer le fichier file.tf
- Déclaration de la ressource Qemu (VM)
-
- Créer le fichier test_qemu.tf
resource "proxmox_virtual_environment_vm" "test-qemu" { count = 1 name = "test-qemu-0${ count.index + 1 }" node_name = "pve-front-01" initialization { datastore_id = "local" dns { domain = "kvega.local" servers = ["1.1.1.1", "8.8.8.8"] } ip_config { ipv4 { address = "192.168.210.1${ count.index + 1 }/26" gateway = "192.168.210.1" # ou encore address = "192.168.1.100/24" } } user_account { # do not use this in production, configure your own ssh key instead! username = "admin" keys = ["ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAICqLxAZ0VeOyxKeDgxb9Gp7upKGs/w1+NrDRXcVYjLii root@adm-front-01", "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIJHXgvmOWJLUrFgmlVa49RdqYqUsyjVAQgAuBq7K7nis kvega@FR-LAP10398",] password = "Strongpassword" } } memory { dedicated = 4096 } cpu { cores = 2 type = "host" } network_device { bridge = "ovsbr2" model = "virtio" } lifecycle { ignore_changes = [ network_device, # on conserve l'adresse MAC pour éviter de régénérer la VM ] } operating_system { type = "l26" } disk { datastore_id = "local" file_id = proxmox_virtual_environment_file.debian_cloud_image.id interface = "virtio0" iothread = true discard = "on" size = 30 } }
- Créer le fichier test_qemu.tf
-
Application des configurations
Sur un terminal
- Test de configuration
tofu plan--> permet de voire ce qui sera fait en quelque sorte un dry-runtofu apply--> va appliquer les modification si vous entrez le mot yes à la fin
Proxmox BACKUP
Installation de Proxmox Backup Server
CREATION DE LA VM
- Télécharger l'ISO
- Créer la VM
- Mettez 20 Go pour le disque dur
- Ajouter un disque dur à la fin succeptible d'acceuillir les backups (100 Go)
- Mettez 20 Go pour le disque dur
- Mettre le réseau sur le même que le PVE
- Démarrer la VM
- Installation de la VM
- Le serveur est accèssible via l'IP configuré plus haut pour moi https://192.168.1.117:8007
Ajout d'un DATASTORE
- S'assurer d'avoir un disque dur supplémentaire
- Se connecter au serveur de backup en ssh
- Lister les disque disponible
root@bck-front-01:~# lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS sda 8:0 0 20G 0 disk ├─sda1 8:1 0 1007K 0 part ├─sda2 8:2 0 512M 0 part └─sda3 8:3 0 19.5G 0 part ├─pbs-swap 252:0 0 1.9G 0 lvm [SWAP] └─pbs-root 252:1 0 17.6G 0 lvm / sdb 8:16 0 100G 0 diskIci on vois bien mon disque de 100 Go je peux continuer
- Créer un dossier qui nous servira de dossier de backup
root@bck-front-01:~# mkdir /BACKUP root@bck-front-01:~# ls / |grep BACKUP BACKUP - Créer la partition sur le disque, pour moi ce disque est sdb
root@bck-front-01:~# fdisk /dev/sdb Welcome to fdisk (util-linux 2.38.1). Changes will remain in memory only, until you decide to write them. Be careful before using the write command. Device does not contain a recognized partition table. Created a new DOS (MBR) disklabel with disk identifier 0xc6692165. Command (m for help): n Partition type p primary (0 primary, 0 extended, 4 free) e extended (container for logical partitions) Select (default p): p Partition number (1-4, default 1): 1 First sector (2048-209715199, default 2048): Last sector, +/-sectors or +/-size{K,M,G,T,P} (2048-209715199, default 209715199): Created a new partition 1 of type 'Linux' and of size 100 GiB. Command (m for help): t Selected partition 1 Hex code or alias (type L to list all): 83 Changed type of partition 'Linux' to 'Linux'. Command (m for help): wOn vois que la nouvelle partition a été créée
root@bck-front-01:~# lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS sda 8:0 0 20G 0 disk ├─sda1 8:1 0 1007K 0 part ├─sda2 8:2 0 512M 0 part └─sda3 8:3 0 19.5G 0 part ├─pbs-swap 252:0 0 1.9G 0 lvm [SWAP] └─pbs-root 252:1 0 17.6G 0 lvm / sdb 8:16 0 100G 0 disk └─sdb1 8:17 0 100G 0 part - Formater la partition en ext4
root@bck-front-01:~# mkfs.ext4 -b 4096 /dev/sdb1 mke2fs 1.47.0 (5-Feb-2023) Creating filesystem with 26214144 4k blocks and 6553600 inodes Filesystem UUID: 5b339dd1-548b-4781-ae76-db130436f824 Superblock backups stored on blocks: 32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208, 4096000, 7962624, 11239424, 20480000, 23887872 Allocating group tables: done Writing inode tables: done Creating journal (131072 blocks): done Writing superblocks and filesystem accounting information: done - Monter la partition sur le serveur:
- Editer le fichier
/etc/fstab - Ajouter la ligne suivante en fin de fichier:
/dev/sdb1 /BACKUP ext4 defaults - Monter le volume:
mount -a - Vérifier si disques est bien monté:
root@bck-front-01:~# cat /etc/fstab # <file system> <mount point> <type> <options> <dump> <pass> /dev/pbs/root / ext4 errors=remount-ro 0 1 /dev/pbs/swap none swap sw 0 0 proc /proc proc defaults 0 0 /dev/sdb1 /BACKUP ext4 defaults
- Editer le fichier
- Retourner sur la GUI et ajouter le datastore
Lier le serveur de BACKUP au serveur PROXMOX
- Se connecter au serveur Proxmox via la GUI
- Récupérer les informations de jonctions:
- Se connecter au serveur de Backup et récupérer le fingerprint
- Enfin ajouter le serveur de backup sur le serveur PROXMOX
Backup and Restore d'un proxmox A à un proxmox B
🧭 Migration d'une VM Proxmox vers un autre serveur - Méthode Backup & Restore
1. Sauvegarder la VM sur l'ancien serveur
vzdump <VMID> --storage local --mode stop
<VMID>: ID de la VM à migrer--mode stop: la VM sera arrêtée durant la sauvegarde (plus sûr)- Le fichier de sauvegarde sera créé dans
/var/lib/vz/dump/
2. Copier le fichier de sauvegarde vers le nouveau serveur
scp /var/lib/vz/dump/vzdump-qemu-<VMID>-*.vma.zst root@<NOUVEAU_IP>:/var/lib/vz/dump/
3. Restaurer la VM sur le nouveau serveur
qmrestore /var/lib/vz/dump/vzdump-qemu-<VMID>-*.vma.zst <NOUVEL_VMID>
Option : Spécifier le stockage cible
qmrestore /var/lib/vz/dump/vzdump-qemu-<VMID>-*.vma.zst <NOUVEL_VMID> --storage local-lvm
Proxmox LDAP
permet la connexion depuis proxmox avec un active directory
Proxmox LDAP Initialisation
Prérequis:
- Avoir un active directory joignable depuis le proxmox (ping pve vers ad)
- Avoir une adresse IP sur vmbr0 et vmbr1
- avoir un utilisateur bind_proxmox sur l'active directory
Adresse IP sur la WAN et la LAN
Aller dans datacenter puis realms :
Cliquer sur add, active directory server:
dans le bind user mettre :
CN=bind_pfsense,OU=CONNECTEURS,OU=MEGAPRODUCTION,OU=UTILISATEURS,DC=megaproduction,DC=local -->a modifier selon votre ad
dans le doute mettre le bind password
Puis creer une synchronisation automatique:
Pour tester la connexion cliquer sur run now, si aucune erreur = sa marche
verifier la connexion en se connectant bien sur le realm megaproduction.local
Une fois que vous pouvez vous connecter il faut ajouter les permissions a vos utilisateur :
une fois les permission donnée c'est tout bon vous avez acces a vos machines sur vos comptes proxmox