Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentes Révision précédente
Prochaine révision
Révision précédente
terraform_proxmox [2022/12/02 11:31] – [2 - Validate] psterraform_proxmox [2023/12/23 18:11] (Version actuelle) – [1 - init] ps
Ligne 1: Ligne 1:
 ====== Terraform & Proxmox ====== ====== Terraform & Proxmox ======
  
-Le 2022-12-02 +Le 2023-12-07 
 ===== Avant-Propos ===== ===== Avant-Propos =====
 **Terraform** est un outil IAC (Infrastructure As Code) développé par Hashicorps. **Terraform** est un outil IAC (Infrastructure As Code) développé par Hashicorps.
  
-Il permet grâce à une syntaxe déclarative relativement simple de créer une infrastructure dans le cloud ou en on premise. Terraform dispose de nombreux fournisseurs (providers) adaptés aux principaux environnements du marché (kubernetes, openstack, Vsphere, Proxmox, ...) +Il permet grâce à une syntaxe déclarative relativement simple de créer une infrastructure dans le //cloud// ou en //on-premise//. Terraform dispose de nombreux fournisseurs (providers) adaptés aux principaux environnements du marché (kubernetes, Azure, AWS, GCP, Openstack, Vsphere, Proxmox, ...) 
  
 Il est habituellement utilisé pour créer des VM ensuite configurées par des **playbooks** **Ansible** Il est habituellement utilisé pour créer des VM ensuite configurées par des **playbooks** **Ansible**
Ligne 11: Ligne 11:
 ===== Installation de Terraform ===== ===== Installation de Terraform =====
  
-Sur une Debian 11 Bullseye, la dernière version est la **1.3.5** (au 7/12/2022+Sur une Debian 12 Bookworm, la dernière version est la **1.6.5** (au 7/12/2023
 <code bash> <code bash>
 sudo apt install software-properties-common sudo apt install software-properties-common
Ligne 20: Ligne 20:
 ... ...
 terraform --version terraform --version
-Terraform v1.3.5+Terraform v1.6.5
 on linux_amd64 on linux_amd64
  
 </code> </code>
-===== Mise en oeuvre de Terraform avec le provider Proxmox =====+===== Mise en oeuvre de Terraform avec le provider Telmate/Proxmox =====
  
 L'objectif est ici d'utiliser **Terraform** pour déployer automatiquement des VM KVM sur un serveur **Proxmox 7**. L'objectif est ici d'utiliser **Terraform** pour déployer automatiquement des VM KVM sur un serveur **Proxmox 7**.
  
-étapes : **init**, **plan**, **apply**+étapes : **init**, **plan**, **apply**, **destroy** 
 + 
 +{{:terraform-cycle.png?400|}}
  
 Les commandes de base **Terraform** : Les commandes de base **Terraform** :
Ligne 35: Ligne 37:
    * **plan** : montre les changements requis par la configuration    * **plan** : montre les changements requis par la configuration
    * **apply** : crée ou met à jour l'infrastructure    * **apply** : crée ou met à jour l'infrastructure
-   * **destroy** : Destroy previously-created infrastructure+   * **destroy** : détruit l'infrastructure précédemment créée 
  
 ==== 1 - init ==== ==== 1 - init ====
Ligne 44: Ligne 46:
 </code> </code>
  
-le fichier **main.tf** (minimal) +le fichier **provider.tf** (minimal) - On utilise ici le provider Telmate/Proxmox (plus maintenu depuis la version 2.9.14 et incompatible avec Proxmox 8.1)
 <code terraform> <code terraform>
   terraform {   terraform {
Ligne 50: Ligne 52:
     proxmox = {     proxmox = {
       source = "telmate/proxmox"       source = "telmate/proxmox"
-      version = "2.9.11"+      version = "2.9.14"
     }     }
   }   }
Ligne 89: Ligne 91:
 ==== 2 - Validate ==== ==== 2 - Validate ====
  
-le fichier **main.tf**  +le fichier **main.tf**  : il décrit les ressources (VMs, conteneurs, ...) à créer
 <code terraform> <code terraform>
   provider "proxmox" {  # description de la connexion au serveur proxmox   provider "proxmox" {  # description de la connexion au serveur proxmox
Ligne 112: Ligne 114:
   sshkeys = <<EOF   sshkeys = <<EOF
 ssh-rsa somekey user@host ssh-rsa somekey user@host
-EOF:x+EOF
  
   network {   network {
  • terraform_proxmox.1669977103.txt.gz
  • Dernière modification : 2022/12/02 11:31
  • de ps