Différences
Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentes Révision précédente Prochaine révision | Révision précédente | ||
terraform_bpg_proxmox [2024/01/05 23:26] – [3. Apply] ps | terraform_bpg_proxmox [2024/01/08 00:07] (Version actuelle) – [6. Epilogue : on conclut avec un playbook ansible] ps | ||
---|---|---|---|
Ligne 3: | Ligne 3: | ||
Le 2023-12-21 | Le 2023-12-21 | ||
===== Avant-Propos ===== | ===== Avant-Propos ===== | ||
- | **Terraform** est un outil **IAC**https:// | + | **Terraform** est un outil **IAC** (Infrastructure As Code) développé par // |
+ | |||
+ | Il permet grâce à une syntaxe déclarative relativement simple de créer une infrastructure dans le //cloud// ou en // | ||
- | Il permet grâce à une syntaxe déclarative relativement simple de créer une infrastructure dans le //cloud// ou en // | ||
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** | ||
- | cf le site de Stéphane Robert : | + | Des changements de licence récents concernant Terraform ont conduit à la création de la fondation **Opentofu** (https:// |
- | * https:// | + | |
- | + | cf le site de //Stéphane Robert// : | |
+ | * https:// | ||
===== Installation de Terraform ===== | ===== Installation de Terraform ===== | ||
Ligne 28: | Ligne 30: | ||
</ | </ | ||
- | ===== Mise en oeuvre de Terraform avec le provider | + | ===== Mise en oeuvre de Terraform avec le provider |
L' | L' | ||
Ligne 52: | Ligne 54: | ||
le fichier **provider.tf** (minimal) - On utilise ici le provider **BPG/ | le fichier **provider.tf** (minimal) - On utilise ici le provider **BPG/ | ||
- | cf https:// | + | cf : |
+ | * https:// | ||
+ | * https:// | ||
et plus particulièrement : | et plus particulièrement : | ||
* https:// | * https:// | ||
Ligne 178: | Ligne 181: | ||
# you may download this image locally on your workstation and then use the local path instead of the remote URL | # you may download this image locally on your workstation and then use the local path instead of the remote URL | ||
path = " | path = " | ||
+ | # | ||
file_name = " | file_name = " | ||
} | } | ||
Ligne 191: | Ligne 195: | ||
algorithm = " | algorithm = " | ||
rsa_bits | rsa_bits | ||
- | } | ||
- | |||
- | output " | ||
- | value = random_password.debian_vm_password.result | ||
- | sensitive = true | ||
- | } | ||
- | |||
- | output " | ||
- | value = tls_private_key.debian_vm_key.private_key_pem | ||
- | sensitive = true | ||
} | } | ||
Ligne 233: | Ligne 227: | ||
</ | </ | ||
- | On peut alors vérifier l' | + | On peut alors vérifier l' |
==== 4. Modification des ressources puis plan ==== | ==== 4. Modification des ressources puis plan ==== | ||
* éditer le fichier **main.tf** pour changer la mémoire allouée aux VMs : 1024 => 512 | * éditer le fichier **main.tf** pour changer la mémoire allouée aux VMs : 1024 => 512 | ||
- | * on | + | * on peut alors relancer '' |
+ | |||
+ | ==== 5. On termine par apply ==== | ||
+ | * la commande '' | ||
+ | ==== 6. Epilogue : on conclut avec un playbook ansible ==== | ||
+ | * on peut alors lancer un playbook **ansible** (pour installer Apache par exemple) pour terminer la configuration des VM ... |