Outils pour utilisateurs

Outils du site


gestion_configuration:terraform:toc

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édentesRévision précédente
Prochaine révision
Révision précédente
gestion_configuration:terraform:toc [2019/10/16 14:07] – [Variables] sgariepygestion_configuration:terraform:toc [2023/10/03 21:46] (Version actuelle) – [Sources] sgariepy
Ligne 2: Ligne 2:
  
   * [[https://www.terraform.io/|Site officiel]]   * [[https://www.terraform.io/|Site officiel]]
 +
 +Télécharger du site de Terraform, décompresser et copier dans un répertoire du PATH:
 +
 +  $ sudo mv ./terraform /usr/local/bin
 +
 +
 +Sur macOS, peut être installé avec Brew:
 +
 +  $ brew install terraform
  
  
Ligne 341: Ligne 350:
 => Référence: [[https://www.terraform.io/docs/configuration/functions.html|Functions]] => Référence: [[https://www.terraform.io/docs/configuration/functions.html|Functions]]
  
 +====== Gérer les environnements ======
  
 +On peut gérer les environnements de différentes façons.  On peut le faire avec les Workspaces, mais aussi en indiquant les fichiers à utiliser.
 +
 +<code>
 +|-- /dev
 +|    |-- dev.state
 +|    |-- dev.tfvars
 +|-- /uat
 +|    |-- uat.state
 +|    |-- uat.tfvars
 +|-- /prod
 +|    |-- prod.state
 +|    |-- prod.tfvars
 +|-- main_config.tf
 +|-- common.tfvars
 +</code>
 +
 +La commande à utiliser:
 +
 +<code>
 +$ terraform plan -state=".\dev\dev.state" -var-file="common.tfvars" -var-file=".\dev\dev.tfvars"
 +</code>
 +
 +
 +
 +
 +===== Workspaces =====
 +
 +
 +<code>
 +$ terraform workspace new dev
 +$ terraform plan
 +</code>
 +
 +
 +
 +
 +
 +
 +====== Modules ======
 +
 +
 +  * Réutilisation du code
 +  * Remote ou local source
 +    * [[https://registry.terraform.io/|Terraform Registry]]
 +  * Root module
 +  * Versioning
 +  * Provider inheritance
 +
 +
 +Composantes:
 +
 +  * Variables d'entrée
 +  * Ressources
 +  * Variables de sortie
 +
 +Example d'utilisation:
 +
 +<code>
 +# Créer le module
 +module "bucket" {
 +  name = "taco-bucket"
 +  source = ".\\Modules\\s3"
 +}
 +
 +
 +# L'utiliser
 +ressource "aws_s3_bucket_object" {
 +  bucket = module.bucket.bucket_id
 +  [...]
 +}
 +</code>
 +
 +
 +
 +
 +
 +====== Autres examples ======
 +
 +
 +<code>
 +provider "aws" {
 +  #Virginia, USA
 +  region = "us-east-1"
 +}
 +
 +resource "aws_instance" "example" {
 +  #Ubuntu 14.04 AMI (Amazon Machine Image)
 +  ami = "ami-2d39803a"
 +  instance_type = "t2.micro"
 +
 +  tags {
 +    #tags WILL CHANGE the state of previous runnings resources.
 +    Name = "My Instance Name"
 +  }
 +}
 +</code>
  
  
 +====== Sources ======
  
 +  * PluralSight Terraform Getting started.
  
  
  
gestion_configuration/terraform/toc.1571227651.txt.gz · Dernière modification : 2022/02/02 00:43 (modification externe)