Formation DevOps | Formation Terraform : 13- Premier pas avec Terraform :modules

This website is powered by ItGalaxy.io



Terraform : modules

1.Introduction du module:

  • Le module est un regroupement de fichiers tf avec une cohérence en matière de ressources.

  • Le module terraform = rôle ansible.

  • On peut pusher aussi registry : https://registry.terraform.io/.

  • Le module = répertoire(s) + fichier(s) tf.

2.Utilisation d’un module

module “monmodule” {
source = “./rep_module“
}

Possiblité d’instancier plusieurs fois un même module:
module “instance1” {
source = “./rep_module”
}
module “instance2” {
source = “./rep_module«
}

Un provider est un plugin pour Terraform qui met à disposition une collection de ressources associées. Un plug-in de fournisseur est chargé de comprendre les interactions de l’API avec les services (Azure, AWS, VMware, etc.) et d’exposer les ressources basées sur cette API. Les fournisseurs sont généralement spécifiques à la plate-forme. https://registry.terraform.io/browse/providers

Une ressource est un bloc de configuration qui décrit un ou plusieurs objets d’infrastructure. Les ressources peuvent être des éléments tels que des réseaux virtuels, des instances de calcul, etc.

Un module est une collection réutilisable autonome de ressources terraform (pensez-y comme une fonction ou une
méthode).

2.Structure du module:

├── README.md
├── main.tf
├── variables.tf
├── outputs.tf

├── README.md
├── main.tf
├── variables.tf
├── outputs.tf
├── …
├── modules/
│ ├── nestedA/
│ │ ├── README.md
│ │ ├── variables.tf
│ │ ├── main.tf
│ │ ├── outputs.tf
│ ├── nestedB/
│ ├── …/
├── examples/
│ ├── exampleA/
│ │ ├── main.tf
│ ├── exampleB/
│ ├── …/
Plus poussé

2.Création du module: Installation de docker

terraform.tfvars:
ssh_host = “35.180.67.230”
ssh_user = “ubuntu”
ssh_key = “/home/ubuntu/.ssh/id_rsa”

main.tf
variable “ssh_host” {}
variable “ssh_user” {}
variable “ssh_key” {}

module “docker_install” {
source = “./modules/docker_install”
ssh_host_module = var.ssh_host
ssh_user _module = var.ssh_user
ssh_key _module = var.ssh_key

}

2.Création du module: Installation de docker
resource “null_resource” “ssh_target” {
connection {
type = “ssh”
user = var.ssh_user
host = var.ssh_host
private_key = file(var.ssh_key)
}
provisioner “remote-exec” {
inline = [
“sudo apt update -qq >/dev/null”,
“curl -fsSL https://get.docker.com -o get-docker.sh”,
“sudo chmod 755 get-docker.sh”,
“sudo ./get-docker.sh >/dev/null”
]
}
provisioner “file” {
source = “startup-options.conf”
destination = “/tmp/startup-options.conf”
}
provisioner “remote-exec” {
inline = [
“sudo mkdir -p /etc/systemd/system/docker.service.d/”,
“sudo cp /tmp/startup-options.conf /etc/systemd/system/docker.service.d/startup_options.conf”,
“sudo systemctl daemon-reload”,
“sudo systemctl restart docker”,
“sudo usermod -aG docker ubuntu”
]
}
}

variable “ssh_host” {}
variable “ssh_user” {}
variable “ssh_key” {}

Modules/docker_install/variables.tf

Modules/docker_install/main.tf

Faut lancer pour installer les modules:

  • terraform get
  • terraform init






1. Nous contactez


2. Infra as a Service

  • Description: Infrastructure cloud évolutive et sécurisée
  • Links:

3. Projets Développeurs


4. Développeurs


5. Formations Complètes


6. Marketplace

7. Blogs


This website is powered by ItGalaxy.io