Configurer des builds de conteneurs automatisés avec GCP Cloud Build – CloudSavvy IT
4 septembre 2020
Apprenez à choisir les meilleurs couteaux à barbecue en 2020
4 septembre 2020

Logo CloudFlare

Terraform est une infrastructure populaire en tant qu'outil de code, et lorsqu'il est associé à CloudFlare, facilite grandement la gestion de configurations complexes dans CloudFlare. Pour ceux qui ne sont pas familiers, Terraform utilise le langage de configuration HCL pour définir une configuration d'infrastructure qui peut ensuite être utilisée pour appliquer les paramètres demandés au fournisseur. CloudFlare propose des services DNS, des services de sécurité et d'informatique de périphérie qui se marient parfaitement avec l'outil Terraform.

Installation de Terraform

Terraform peut être utilisé sous Windows ou sous Linux. Le binaire Terraform lui-même est un exécutable unique et doit simplement être téléchargé et placé dans le chemin du système.

Installation de Windows

Tout d'abord, vous devrez télécharger l'exécutable Terraform pour Windows. Une fois téléchargé, placez l'exécutable dans un emplacement de chemin Windows. Si vous avez besoin de placer l'exécutable dans un emplacement différent mais que vous souhaitez qu'il soit accessible à tout moment, vous pouvez utiliser le code PowerShell suivant pour modifier les CHEMIN variable environnementale.

(System.Environment) :: SetEnvironmentVariable ("PATH", (($ Env: PATH, "C: \ Tools") -Join ";"), "User")

Cela peut être utilisé pour modifier le système CHEMIN en changeant Utilisateur à Machine. Vous aurez besoin des droits administratifs pour ce faire.

Installation sous Linux

Tout comme Windows, vous télécharger la dernière version de Terraform. Comme vous n'utilisez peut-être pas toujours une interface graphique, vous pouvez le faire via le code shell suivant. Remplacer {Libération} avec la version du code, comme 0,13,0.

wget 
décompressez terraform_ {release} _linux_amd64.zip
mv terraform / usr / bin /

Configuration de Terraform pour CloudFlare

Pour contenir notre configuration Terraform, nous allons créer un répertoire contenant le .tf fichiers, qui sont l'extension des fichiers de configuration Terraform. Créez un nouveau répertoire pour contenir la configuration.

PowerShell 7 sur Windows

Nouvel élément -Nom 'CF_Terraform' -Type 'Répertoire'
Set-Location -Path 'CF_Terraform'

Bash Shell sur Linux

mkdir cf_terraform
cd cf_terraform

Une fois que vous avez créé et navigué vers le répertoire, nous devrons initialiser la configuration Terraform. Nous devons d'abord créer notre fichier de configuration. Nous choisissons de ne pas coder en dur nos informations d'identification dans le fichier de configuration. Au lieu de cela, un fichier transmettra les informations d'identification qui sont exclues du contrôle de version. En parlant de cela, Git est fortement recommandé pour suivre les changements.

cloudflare.tf

variable "api_token" {}

fournisseur "cloudflare" {
  version = "~> 2.9"
  api_token = var.api_token
}

Le suivant .auto.tfvars Le fichier contiendra les secrets que nous transmettons à Terraform mais que nous ne voulons pas valider dans l'historique du contrôle de version.

cloudflare.auto.tfvars

# Autorisations Zone.DNS
# Exemple de jeton ci-dessous
api_token = "as3uo7WkxL6asdfasdfaME7IdLofKBG9C_Zi-gf"

La raison de la .auto section de la .tfvars filename est que ce dossier de variables sera automatiquement lu par Terraform lors des opérations au lieu de le transmettre explicitement via -var-file = "cloudflare.tfvars".

Maintenant que nos deux fichiers sont configurés, il est temps d'initialiser notre configuration. Cela installera tous les fournisseurs qui ont été spécifiés dans le fournisseur section de notre fichier de configuration Terraform.

terraform init

L'initialisation de notre configuration installera tous les fournisseurs spécifiés dans la section fournisseur de notre fichier de configuration Terraform.

Définition de la configuration Terraform CloudFlare

Maintenant que nous nous sommes connectés avec succès à notre domaine, nous devons créer notre configuration. La première chose que nous devons faire est de modifier notre cloudflare.auto.tfvars fichier pour inclure le zone_id sur lesquels nous allons cibler les modifications des enregistrements DNS. Ajoutez la ligne suivante dans le cloudflare.auto.tfvars fichier.

# Autorisations Zone.DNS
api_token = "as3uo7WkxL6asdfasdfaME7IdLofKBG9C_Zi-gf"
# ID de zone de domaine spécifique
zone_id = "fddd89b6e1d52ebdfdasdc8bc02186333"

Ensuite, nous devons définir les enregistrements que nous allons ajouter à CloudFlare. Pour ce faire, nous allons utiliser le cloudflare_record ressource pour créer les enregistrements. Le format de ceci est le suivant: ressource {type} {name}. Le type sera cloudflare_record, et pour le nom que nous utiliserons a_mydomain_com et cname_www. Ces noms sont cependant arbitraires et peuvent être ce que vous voulez.

ressource "cloudflare_record" "a_mydomain_com" {
  zone_id = var.zone_id
  name = "mondomaine.com"
  valeur = "133.145.220.110"
  type = "A"
  ttl = 1
  proxy = vrai
}

ressource "cloudflare_record" "cname_www" {
  zone_id = var.zone_id
  nom = "www"
  value = "mondomaine.com"
  type = "CNAME"
  ttl = 1
  proxy = vrai
}

Une mise en garde concernant les noms. Si vous souhaitez utiliser importation de terraform pour importer l'état sur un enregistrement donné, vous devrez faire correspondre le nom avec l'enregistrement d'importation comme ceci:

importation terraform cloudflare_record.a_mydomain_com {zone_id} / {record_id}

Planification des modifications Terraform

Maintenant que notre configuration est définie, nous pouvons exécuter le plan terraform , qui générera les changements entre ce qui est connu par Terraform via le .tfstate fichier et l'environnement CloudFlare. Si les ressources n'ont pas été importées ou si c'est la première fois que vous exécutez la commande, Terraform n'aura aucune connaissance de l'environnement et toutes les modifications seront nouvelles.

plan terraform

Exécutez la commande terraform plan

Application des modifications Terraform

Une fois que vous êtes sûr de votre configuration, utilisez simplement le appliquer commander. Cela vous demandera une confirmation, où vous devez taper Oui. La sortie affichera la configuration à appliquer et l'état.

terraform appliquer
Utilisez la commande apply pour demander une confirmation, puis tapez yes. La sortie affiche la configuration à appliquer et l'état.
Utilisez la commande apply. Cela vous demandera une confirmation, où vous devrez taper oui. La sortie affichera la configuration à appliquer et l'état.

Conclusion

La combinaison de CloudFlare et de Terraform est une combinaison puissante. Lorsque vous êtes en mesure d'architecturer votre environnement dans le code et de suivre les changements au fil du temps (à l'aide du contrôle de version), vous libérez de nouvelles efficiences et de nouveaux contrôles. Dans le cas où une configuration est incorrecte, il est trivial de revenir à une configuration précédente, ce qui rend la récupération des erreurs très rapide et sans douleur.

//]]>