
Je suis complètement accro à Terraform.
Description
Introduction au livre
Principes fondamentaux de Terraform pour la configuration, la gestion et la mise à l'échelle
Les déclarations à elles seules ne suffisent pas à garantir un fonctionnement stable de l'infrastructure dans un environnement cloud en constante évolution.
Ce livre est un guide pratique pour appliquer correctement Terraform en pratique.
Nous allons passer en revue un par un les concepts clés, tels que la gestion d'état, la séparation de l'environnement d'exécution, la conception de modules personnalisés et l'utilisation de différents fournisseurs.
De plus, il contient des exemples applicables au travail réel, notamment la gestion des valeurs d'entrée à l'aide de YAML et CSV, l'intégration de logiciels libres tels que KeyClock et la configuration d'un environnement multirégional.
Pour quiconque souhaite approfondir sa compréhension de Terraform et l'utiliser de manière fiable, ce livre constituera un excellent point de départ.
Les déclarations à elles seules ne suffisent pas à garantir un fonctionnement stable de l'infrastructure dans un environnement cloud en constante évolution.
Ce livre est un guide pratique pour appliquer correctement Terraform en pratique.
Nous allons passer en revue un par un les concepts clés, tels que la gestion d'état, la séparation de l'environnement d'exécution, la conception de modules personnalisés et l'utilisation de différents fournisseurs.
De plus, il contient des exemples applicables au travail réel, notamment la gestion des valeurs d'entrée à l'aide de YAML et CSV, l'intégration de logiciels libres tels que KeyClock et la configuration d'un environnement multirégional.
Pour quiconque souhaite approfondir sa compréhension de Terraform et l'utiliser de manière fiable, ce livre constituera un excellent point de départ.
- Vous pouvez consulter un aperçu du contenu du livre.
Aperçu
indice
Recommandation xii
Avis du lecteur bêta xx
À partir de xxv
À propos de ce livre xxviii
PARTIE I Pourquoi Terraform ?
CHAPITRE 1 : Cloud et infrastructure en tant que code 3
1.1 Informatique en nuage vs.
Informatique sur site 3
1.2 Paradigme Cloud Native 5
1.3 Complexité et difficultés de gestion de l'infrastructure cloud 6
1.4 Le besoin d'outils IaC déclaratifs 9
CHAPITRE 2 : Pourquoi utilisons-nous Terraform ? 11
2.1 Gestion déclarative de l'infrastructure 11
2.2 Divers fournisseurs 12
2.3 Langage de script déclaratif 14
2.4 Idées fausses concernant le langage de configuration HashiCorp 16
PARTIE II Principes de base de Terraform
CHAPITRE 3 Fonctionnement de Terraform 21
3.1 Structure du projet Terraform 21
3.2 Le rôle de Terraform State 22
3.3 Commandes et opérations Terraform 26
3.4 Fournisseur Terraform 31
CHAPITRE 4 : Grammaire de base de Terraform 34
4.1 Types de données 34
4.2 Boucle 35
4.3 Instruction conditionnelle 42
4.4 pour l'expression 44
4.5 Bloc Terraform 49
4.6 Fonction Terraform 59
Chapitre 5 : Modules Terraform 66
5.1 Utilisation des modules 66
5.2 Structure de base de la rédaction de modules 70
PARTIE III : Études de cas pratiques pour chaque fonctionnalité de Terraform
CHAPITRE 6 GÉRER L'ENVIRONNEMENT DES DIRIGEANTS 79
6.1 Problèmes liés à l'absence de séparation de l'environnement d'exécution 79
6.2 Cas de séparation de l'environnement d'exécution 81
6.3 Espace de travail Terraform ? 85
CHAPITRE 7 Blocs en ligne divers 86
7.1 Blocs imbriqués 86
7.2 Bloc dynamique 87
7.3 Blocs imbriqués vs.
Bloc de ressources séparé 90
7.4 Bloc de cycle de vie 92
CHAPITRE 8 VALIDATION 95
8.1 Bloc d'inspection 95
8.2 Bloc de cycle de vie 96
8.3 Vérifier le bloc 98
CHAPITRE 9 Création de modules utilitaires 104
9.1 Récupération des métadonnées depuis AWS 104
9.2 Vérification de l'identité de deux fournisseurs AWS 107
9.3 Fusion de cartes au sein d'une liste 109
PARTIE IV Cas d'étude de cas du module AWS
CHAPITRE 10 Pourquoi et comment créer vos propres modules 117
10.1 Modules publics vs.
Module 117 fait maison
10.2 Comment créer facilement des modules 118
CHAPITRE 11 Création d'un module VPC géré par des fichiers YAML 122
11.1 Définition des valeurs d'entrée 123
11.2 Déterminer comment transmettre les valeurs d'entrée au module 126
11.3 Création d'un module 130
11.4 Validation des variables 149
11.5 Réglage des valeurs de sortie du module 162
11.6 Autres considérations 163
CHAPITRE 12 Création d'un module de groupe de sécurité géré par un fichier CSV 166
12.1 Définition des valeurs d'entrée 166
12.2 Déterminer comment transmettre les valeurs d'entrée au module 168
12.3 Création d'un module 174
12.4 Validité du type de variable 186
12.5 Réglage des valeurs de sortie du module 187
12.6 Autres considérations 187
CHAPITRE 13 Création d'un module EC2 exploitant les sorties des modules VPC et Groupe de sécurité 189
13.1 Définition des valeurs d'entrée 189
13.2 Déterminer comment transmettre les valeurs d'entrée au module 195
13.3 Création d'un module 198
13.4 Validation des variables 207
13.5 Réglage des valeurs de sortie du module 217
13.6 Autres considérations 218
CHAPITRE 14 Configuration d'un environnement d'exécution réseau référençant les sorties d'autres environnements d'exécution 220
14.1 Éléments à prendre en compte à l'avance 220
14.2 Reconfiguration de l'environnement d'exécution 221
14.3 Exigences organisationnelles 223
14.4 Configuration de l'état de la télécommande 224
14.5 Définition des valeurs d'entrée et des méthodes de transmission 226
14.6 Création d'un module 231
14.7 Validation 236
14.8 Réglage des valeurs de sortie du module 238
14.9 Autres considérations 238
PARTIE V Exemples d'utilisation de différents fournisseurs
CHAPITRE 15 Fournisseur de services publics officiel HashiCorp 241
15.1 Fournisseur Terraform Niveau 241
15.2 Fournisseur aléatoire 242
15.3 Fournisseur HTTP 244
15.4 Fournisseur local 246
15.5 Fournisseur nul et la ressource terraform_data 249
15,6 Autres 252
CHAPITRE 16 Fournisseurs liés à Kubernetes 256
16.1 Fournisseur Kubernetes 256
16.2 Fournisseur de casque 270
16.3 Ressources personnalisées et fournisseurs Kubectl 284
CHAPITRE 17 Mise en œuvre de l'authentification unique AWS avec un fournisseur Keycloak 292
17.1 Configuration du fournisseur KeyClock de Terraform 294
17.2 Création de ressources pour l'intégration entre Keycloak et AWS SAML 297
17.3 Association des groupes Keycloak aux rôles AWS IAM 301
17.4 Test de connexion AWS en tant qu'utilisateur Keycloak 309
17,5 Autres éléments à prendre en compte 311
ANNEXE Questions et réponses sur Terraform
ANNEXE A : Comment résoudre les problèmes qui surviennent lors de l’utilisation de Terraform ? 315
ANNEXE B : Comment collaborer efficacement avec mon équipe lorsque je travaille avec Terraform ? 320
ANNEXE C Je souhaite gérer les ressources d'infrastructure existantes avec Terraform 325
ANNEXE D : Quels outils tiers open source utilisez-vous pour Terraform ? 331
ANNEXE E : La licence de Terraform change. Cela posera-t-il problème ? 336
Recherche 339
Avis du lecteur bêta xx
À partir de xxv
À propos de ce livre xxviii
PARTIE I Pourquoi Terraform ?
CHAPITRE 1 : Cloud et infrastructure en tant que code 3
1.1 Informatique en nuage vs.
Informatique sur site 3
1.2 Paradigme Cloud Native 5
1.3 Complexité et difficultés de gestion de l'infrastructure cloud 6
1.4 Le besoin d'outils IaC déclaratifs 9
CHAPITRE 2 : Pourquoi utilisons-nous Terraform ? 11
2.1 Gestion déclarative de l'infrastructure 11
2.2 Divers fournisseurs 12
2.3 Langage de script déclaratif 14
2.4 Idées fausses concernant le langage de configuration HashiCorp 16
PARTIE II Principes de base de Terraform
CHAPITRE 3 Fonctionnement de Terraform 21
3.1 Structure du projet Terraform 21
3.2 Le rôle de Terraform State 22
3.3 Commandes et opérations Terraform 26
3.4 Fournisseur Terraform 31
CHAPITRE 4 : Grammaire de base de Terraform 34
4.1 Types de données 34
4.2 Boucle 35
4.3 Instruction conditionnelle 42
4.4 pour l'expression 44
4.5 Bloc Terraform 49
4.6 Fonction Terraform 59
Chapitre 5 : Modules Terraform 66
5.1 Utilisation des modules 66
5.2 Structure de base de la rédaction de modules 70
PARTIE III : Études de cas pratiques pour chaque fonctionnalité de Terraform
CHAPITRE 6 GÉRER L'ENVIRONNEMENT DES DIRIGEANTS 79
6.1 Problèmes liés à l'absence de séparation de l'environnement d'exécution 79
6.2 Cas de séparation de l'environnement d'exécution 81
6.3 Espace de travail Terraform ? 85
CHAPITRE 7 Blocs en ligne divers 86
7.1 Blocs imbriqués 86
7.2 Bloc dynamique 87
7.3 Blocs imbriqués vs.
Bloc de ressources séparé 90
7.4 Bloc de cycle de vie 92
CHAPITRE 8 VALIDATION 95
8.1 Bloc d'inspection 95
8.2 Bloc de cycle de vie 96
8.3 Vérifier le bloc 98
CHAPITRE 9 Création de modules utilitaires 104
9.1 Récupération des métadonnées depuis AWS 104
9.2 Vérification de l'identité de deux fournisseurs AWS 107
9.3 Fusion de cartes au sein d'une liste 109
PARTIE IV Cas d'étude de cas du module AWS
CHAPITRE 10 Pourquoi et comment créer vos propres modules 117
10.1 Modules publics vs.
Module 117 fait maison
10.2 Comment créer facilement des modules 118
CHAPITRE 11 Création d'un module VPC géré par des fichiers YAML 122
11.1 Définition des valeurs d'entrée 123
11.2 Déterminer comment transmettre les valeurs d'entrée au module 126
11.3 Création d'un module 130
11.4 Validation des variables 149
11.5 Réglage des valeurs de sortie du module 162
11.6 Autres considérations 163
CHAPITRE 12 Création d'un module de groupe de sécurité géré par un fichier CSV 166
12.1 Définition des valeurs d'entrée 166
12.2 Déterminer comment transmettre les valeurs d'entrée au module 168
12.3 Création d'un module 174
12.4 Validité du type de variable 186
12.5 Réglage des valeurs de sortie du module 187
12.6 Autres considérations 187
CHAPITRE 13 Création d'un module EC2 exploitant les sorties des modules VPC et Groupe de sécurité 189
13.1 Définition des valeurs d'entrée 189
13.2 Déterminer comment transmettre les valeurs d'entrée au module 195
13.3 Création d'un module 198
13.4 Validation des variables 207
13.5 Réglage des valeurs de sortie du module 217
13.6 Autres considérations 218
CHAPITRE 14 Configuration d'un environnement d'exécution réseau référençant les sorties d'autres environnements d'exécution 220
14.1 Éléments à prendre en compte à l'avance 220
14.2 Reconfiguration de l'environnement d'exécution 221
14.3 Exigences organisationnelles 223
14.4 Configuration de l'état de la télécommande 224
14.5 Définition des valeurs d'entrée et des méthodes de transmission 226
14.6 Création d'un module 231
14.7 Validation 236
14.8 Réglage des valeurs de sortie du module 238
14.9 Autres considérations 238
PARTIE V Exemples d'utilisation de différents fournisseurs
CHAPITRE 15 Fournisseur de services publics officiel HashiCorp 241
15.1 Fournisseur Terraform Niveau 241
15.2 Fournisseur aléatoire 242
15.3 Fournisseur HTTP 244
15.4 Fournisseur local 246
15.5 Fournisseur nul et la ressource terraform_data 249
15,6 Autres 252
CHAPITRE 16 Fournisseurs liés à Kubernetes 256
16.1 Fournisseur Kubernetes 256
16.2 Fournisseur de casque 270
16.3 Ressources personnalisées et fournisseurs Kubectl 284
CHAPITRE 17 Mise en œuvre de l'authentification unique AWS avec un fournisseur Keycloak 292
17.1 Configuration du fournisseur KeyClock de Terraform 294
17.2 Création de ressources pour l'intégration entre Keycloak et AWS SAML 297
17.3 Association des groupes Keycloak aux rôles AWS IAM 301
17.4 Test de connexion AWS en tant qu'utilisateur Keycloak 309
17,5 Autres éléments à prendre en compte 311
ANNEXE Questions et réponses sur Terraform
ANNEXE A : Comment résoudre les problèmes qui surviennent lors de l’utilisation de Terraform ? 315
ANNEXE B : Comment collaborer efficacement avec mon équipe lorsque je travaille avec Terraform ? 320
ANNEXE C Je souhaite gérer les ressources d'infrastructure existantes avec Terraform 325
ANNEXE D : Quels outils tiers open source utilisez-vous pour Terraform ? 331
ANNEXE E : La licence de Terraform change. Cela posera-t-il problème ? 336
Recherche 339
Image détaillée

Dans le livre
Il est vrai qu'il existe une perception selon laquelle le langage HCL de Terraform est difficile à apprendre.
Cependant, HCL n'est qu'un langage de configuration déclaratif comme JSON ou YAML, et il vous permet de définir des références de champs de ressources ou des références entre ressources d'une manière plus simple que JSON ou YAML.
En fait, tout script pouvant être écrit en HCL peut être écrit en utilisant une syntaxe de configuration équivalente basée sur JSON.
De plus, HCL pourrait théoriquement aussi être exprimé dans son équivalent YAML, puisque JSON est un sous-ensemble de YAML.
HCL est simplement un langage créé pour faciliter l'écriture de fichiers de configuration JSON et YAML pour les administrateurs d'infrastructure, et est équivalent à JSON.
--- p.17
Vous pouvez définir et utiliser des modules comme sous-répertoires au sein d'un module.
On appelle cela un module imbriqué.
En règle générale, lorsqu'on parcourt une collection et qu'on crée des ressources de manière répétée, il peut être nécessaire de créer une gamme assez large de ressources à chaque itération.
Dans ce cas, vous pouvez l'implémenter en utilisant simplement for_each ou for sur plusieurs types de ressources à la fois, mais comme vous pouvez facilement le prévoir, il existe un risque élevé d'erreur.
Dans ce cas, vous pouvez utiliser une méthode pour améliorer la lisibilité du module racine en définissant des actions en fonction du parcours des modules imbriqués.
Les modules imbriqués sont généralement placés dans le sous-répertoire /modules, conformément à la convention officielle de Terraform, mais cela fonctionne correctement même si vous ne suivez pas cette convention si vous avez une bonne raison de le faire.
--- p.74
Les métadonnées AWS sont une valeur fréquemment utilisée dans divers environnements et projets en pratique, il est donc nécessaire de les solliciter plus souvent qu'on ne le pense.
Par exemple, il est courant d'associer à chaque ressource d'un module des informations de compte.
De plus, vous pouvez créer des branches pour générer différentes ressources en fonction du compte ou de la région que vous référencez actuellement.
Cependant, dans chacune de ces situations, l'appel direct à la valeur des métadonnées AWS n'est pas efficace en termes de maintenance du code.
Pour expliquer la raison, il faut tout d'abord que l'identifiant soit reçu via différents blocs de données appelés aws_caller_identity, l'alias via aws_iam_account_alias et les informations de région via aws_region dans les valeurs des métadonnées AWS.
Cependant, il est fastidieux de devoir vérifier quel bloc de données contient l'information recherchée chaque fois que j'ai besoin de métadonnées.
De plus, si vous devez découvrir les métadonnées dans cet état en appelant simplement plusieurs blocs de données, vous finissez par écrire du code répétitif et verbeux, ce qui réduit la lisibilité et la maintenabilité.
--- p.105
Comme pour le module VPC, le module de groupe de sécurité définit également le bloc de sortie sur une valeur qui peut être référencée à partir d'autres ressources.
Les seules nouvelles ressources créées dans ce module sont les groupes de sécurité et les règles des groupes de sécurité.
Étant donné que l'identifiant d'une règle de groupe de sécurité est rarement utilisé directement en dehors du module de groupe de sécurité, la seule chose qu'il est utile de définir comme valeur de sortie est l'ID du groupe de sécurité.
Par conséquent, nous définissons le bloc de sortie du module de groupe de sécurité pour exporter les identifiants de tous les groupes de sécurité créés dans le module au format carte.
Pour ce faire, nous appliquons une expression for à aws_security_group.this, un bloc de ressources qui pointe vers un groupe de sécurité, et définissons une carte sous la forme k =〉 v.id en utilisant des paramètres qui pointent vers des clés et des valeurs.
En conséquence, un bloc de sortie est créé, capable d'obtenir l'ID d'un groupe de sécurité à partir du nom de ce groupe.
--- p.187
Un fournisseur nul est une ressource virtuelle qui ne crée aucune ressource réelle.
Au lieu de gérer des ressources réelles, elles servent à exécuter des modèles ou des scripts externes, ou à contrôler des flux de travail simples.
Par exemple, vous pouvez l'utiliser pour envoyer des requêtes API non prises en charge par Terraform, ou pour contrôler le flux de création des ressources.
Cependant, dans la plupart des cas, l'exécution de scripts ou le contrôle des ressources est possible sans fournisseur nul, et son utilisation n'est pas recommandée car elle rend le code difficile à comprendre.
De plus, à partir de la version 1.4 de Terraform, un type de ressource natif Terraform avec le même rôle nommé terraform_data6 a été introduit, éliminant ainsi le besoin d'utiliser le fournisseur nul.
En fait, si vous comparez les deux ressources, tout est identique sauf que la propriété triggers de null_resource a été remplacée par triggers_replace dans terraform_data.
--- p.249
Atlantis est un outil open source représentatif pour la collaboration Terraform.
Il est recommandé car il permet de définir des règles telles que l'exécution automatique de commandes de planification ou de réflexion lorsque des modifications de code Terraform sont envoyées au dépôt, et il fournit même un environnement d'exécution Terraform cohérent.
Cependant, cela ne signifie pas qu'Atlantis doive être appliqué à tous les projets Terraform.
Tout d'abord, si vous disposez d'une petite équipe gérant Terraform, le coût d'installation d'Atlantis peut être supérieur aux avantages que vous en retirerez.
Puisqu'il s'agit d'un outil de gestion d'infrastructure, il doit impérativement être installé au sein du réseau de l'entreprise. Les coûts liés aux serveurs doivent donc être pris en compte, et pour ceux qui l'installent pour la première fois, la mise en œuvre du pipeline peut nécessiter un apprentissage. Il est donc recommandé de vérifier si son installation est absolument nécessaire avant de la mettre en place.
Cependant, HCL n'est qu'un langage de configuration déclaratif comme JSON ou YAML, et il vous permet de définir des références de champs de ressources ou des références entre ressources d'une manière plus simple que JSON ou YAML.
En fait, tout script pouvant être écrit en HCL peut être écrit en utilisant une syntaxe de configuration équivalente basée sur JSON.
De plus, HCL pourrait théoriquement aussi être exprimé dans son équivalent YAML, puisque JSON est un sous-ensemble de YAML.
HCL est simplement un langage créé pour faciliter l'écriture de fichiers de configuration JSON et YAML pour les administrateurs d'infrastructure, et est équivalent à JSON.
--- p.17
Vous pouvez définir et utiliser des modules comme sous-répertoires au sein d'un module.
On appelle cela un module imbriqué.
En règle générale, lorsqu'on parcourt une collection et qu'on crée des ressources de manière répétée, il peut être nécessaire de créer une gamme assez large de ressources à chaque itération.
Dans ce cas, vous pouvez l'implémenter en utilisant simplement for_each ou for sur plusieurs types de ressources à la fois, mais comme vous pouvez facilement le prévoir, il existe un risque élevé d'erreur.
Dans ce cas, vous pouvez utiliser une méthode pour améliorer la lisibilité du module racine en définissant des actions en fonction du parcours des modules imbriqués.
Les modules imbriqués sont généralement placés dans le sous-répertoire /modules, conformément à la convention officielle de Terraform, mais cela fonctionne correctement même si vous ne suivez pas cette convention si vous avez une bonne raison de le faire.
--- p.74
Les métadonnées AWS sont une valeur fréquemment utilisée dans divers environnements et projets en pratique, il est donc nécessaire de les solliciter plus souvent qu'on ne le pense.
Par exemple, il est courant d'associer à chaque ressource d'un module des informations de compte.
De plus, vous pouvez créer des branches pour générer différentes ressources en fonction du compte ou de la région que vous référencez actuellement.
Cependant, dans chacune de ces situations, l'appel direct à la valeur des métadonnées AWS n'est pas efficace en termes de maintenance du code.
Pour expliquer la raison, il faut tout d'abord que l'identifiant soit reçu via différents blocs de données appelés aws_caller_identity, l'alias via aws_iam_account_alias et les informations de région via aws_region dans les valeurs des métadonnées AWS.
Cependant, il est fastidieux de devoir vérifier quel bloc de données contient l'information recherchée chaque fois que j'ai besoin de métadonnées.
De plus, si vous devez découvrir les métadonnées dans cet état en appelant simplement plusieurs blocs de données, vous finissez par écrire du code répétitif et verbeux, ce qui réduit la lisibilité et la maintenabilité.
--- p.105
Comme pour le module VPC, le module de groupe de sécurité définit également le bloc de sortie sur une valeur qui peut être référencée à partir d'autres ressources.
Les seules nouvelles ressources créées dans ce module sont les groupes de sécurité et les règles des groupes de sécurité.
Étant donné que l'identifiant d'une règle de groupe de sécurité est rarement utilisé directement en dehors du module de groupe de sécurité, la seule chose qu'il est utile de définir comme valeur de sortie est l'ID du groupe de sécurité.
Par conséquent, nous définissons le bloc de sortie du module de groupe de sécurité pour exporter les identifiants de tous les groupes de sécurité créés dans le module au format carte.
Pour ce faire, nous appliquons une expression for à aws_security_group.this, un bloc de ressources qui pointe vers un groupe de sécurité, et définissons une carte sous la forme k =〉 v.id en utilisant des paramètres qui pointent vers des clés et des valeurs.
En conséquence, un bloc de sortie est créé, capable d'obtenir l'ID d'un groupe de sécurité à partir du nom de ce groupe.
--- p.187
Un fournisseur nul est une ressource virtuelle qui ne crée aucune ressource réelle.
Au lieu de gérer des ressources réelles, elles servent à exécuter des modèles ou des scripts externes, ou à contrôler des flux de travail simples.
Par exemple, vous pouvez l'utiliser pour envoyer des requêtes API non prises en charge par Terraform, ou pour contrôler le flux de création des ressources.
Cependant, dans la plupart des cas, l'exécution de scripts ou le contrôle des ressources est possible sans fournisseur nul, et son utilisation n'est pas recommandée car elle rend le code difficile à comprendre.
De plus, à partir de la version 1.4 de Terraform, un type de ressource natif Terraform avec le même rôle nommé terraform_data6 a été introduit, éliminant ainsi le besoin d'utiliser le fournisseur nul.
En fait, si vous comparez les deux ressources, tout est identique sauf que la propriété triggers de null_resource a été remplacée par triggers_replace dans terraform_data.
--- p.249
Atlantis est un outil open source représentatif pour la collaboration Terraform.
Il est recommandé car il permet de définir des règles telles que l'exécution automatique de commandes de planification ou de réflexion lorsque des modifications de code Terraform sont envoyées au dépôt, et il fournit même un environnement d'exécution Terraform cohérent.
Cependant, cela ne signifie pas qu'Atlantis doive être appliqué à tous les projets Terraform.
Tout d'abord, si vous disposez d'une petite équipe gérant Terraform, le coût d'installation d'Atlantis peut être supérieur aux avantages que vous en retirerez.
Puisqu'il s'agit d'un outil de gestion d'infrastructure, il doit impérativement être installé au sein du réseau de l'entreprise. Les coûts liés aux serveurs doivent donc être pris en compte, et pour ceux qui l'installent pour la première fois, la mise en œuvre du pipeline peut nécessiter un apprentissage. Il est donc recommandé de vérifier si son installation est absolument nécessaire avant de la mettre en place.
--- p.333
Avis de l'éditeur
Si vous avez déjà utilisé Terraform, c'est le moment de vous y plonger vraiment.
L'infrastructure en tant que code (IaC) n'est plus une option.
En pratique, la déclaration et la gestion par le biais du code sont devenues essentielles pour exploiter une infrastructure stable et cohérente.
L'outil central de tout cela est Terraform.
Mais c'est là que le problème commence.
Installer Terraform et déclarer les ressources est facile.
Le problème survient ensuite.
Comment gérer l'état ? Comment segmenter l'environnement d'exécution ? Où et comment répartir les modules ? Pour utiliser efficacement Terraform, la simple déclaration d'une configuration ne suffit pas.
Une simple ligne de commande « terraform apply » ne suffit pas.
Ce livre n'est pas un ouvrage d'introduction qui se contente de traiter de la grammaire, mais un guide pratique applicable directement à des situations réelles.
Il explique étape par étape tout, depuis les raisons pour lesquelles vous devriez utiliser Terraform jusqu'aux méthodes de conception et d'exploitation qui ne peuvent pas être résolues par de simples déclarations.
La première partie explique la nécessité de l'IaC et pourquoi Terraform a été choisi, tandis que la deuxième partie aborde le fonctionnement de Terraform, la syntaxe HCL et les concepts fondamentaux des fichiers d'état et des modules personnalisés.
La partie 3 explique comment utiliser Terraform à travers des exemples pratiques, tels que la séparation de l'environnement d'exécution et la réalisation de la validation, en se concentrant sur la configuration des modules et des fournisseurs.
La partie 4 explique comment concevoir et mettre en œuvre une infrastructure AWS, notamment des VPC, des groupes de sécurité et EC2, dans des unités modulaires.
La partie 5 présente l'intégration de Terraform avec des outils open source tels que Kubernetes, Helm et KeyCloak, à l'aide d'exemples concrets.
L'annexe contient des questions-réponses couvrant des sujets qui pourraient intéresser les praticiens, tels que les précautions à prendre lors de l'introduction de Terraform dans une infrastructure existante et les problèmes liés aux changements de licence.
Ce livre va au-delà des simples déclarations pour vous apprendre à concevoir et à exploiter une infrastructure structurée et cohérente.
Vous pouvez réduire les répétitions, vous adapter avec souplesse à différents environnements et développer une capacité à orchestrer l'infrastructure avec une seule ligne de code.
En suivant ce livre, vous serez bientôt conquis par l'efficacité de Terraform et vous aurez le sentiment de ne plus pouvoir gérer d'infrastructure sans lui.
Public cible
Ingénieurs en infrastructure souhaitant gérer leur infrastructure par le biais du code
Les ingénieurs DevOps qui souhaitent réduire le stress lié au déploiement grâce à l'automatisation
● Les ingénieurs SRE qui rêvent d'un fonctionnement sans incident et qui prennent même en charge les scénarios de reprise d'activité
Contenu principal
● Comprendre les principes de fonctionnement et la gestion d'état de Terraform
● Conception et utilisation de modules personnalisés adaptés aux applications pratiques
● Exemple d'automatisation de la configuration de l'infrastructure AWS
● Intégration avec divers fournisseurs et logiciels libres
● Conception structurelle pour les environnements de comptes multirégionaux
Conseils pratiques pour l'utilisation et la mise en œuvre de Terraform
L'infrastructure en tant que code (IaC) n'est plus une option.
En pratique, la déclaration et la gestion par le biais du code sont devenues essentielles pour exploiter une infrastructure stable et cohérente.
L'outil central de tout cela est Terraform.
Mais c'est là que le problème commence.
Installer Terraform et déclarer les ressources est facile.
Le problème survient ensuite.
Comment gérer l'état ? Comment segmenter l'environnement d'exécution ? Où et comment répartir les modules ? Pour utiliser efficacement Terraform, la simple déclaration d'une configuration ne suffit pas.
Une simple ligne de commande « terraform apply » ne suffit pas.
Ce livre n'est pas un ouvrage d'introduction qui se contente de traiter de la grammaire, mais un guide pratique applicable directement à des situations réelles.
Il explique étape par étape tout, depuis les raisons pour lesquelles vous devriez utiliser Terraform jusqu'aux méthodes de conception et d'exploitation qui ne peuvent pas être résolues par de simples déclarations.
La première partie explique la nécessité de l'IaC et pourquoi Terraform a été choisi, tandis que la deuxième partie aborde le fonctionnement de Terraform, la syntaxe HCL et les concepts fondamentaux des fichiers d'état et des modules personnalisés.
La partie 3 explique comment utiliser Terraform à travers des exemples pratiques, tels que la séparation de l'environnement d'exécution et la réalisation de la validation, en se concentrant sur la configuration des modules et des fournisseurs.
La partie 4 explique comment concevoir et mettre en œuvre une infrastructure AWS, notamment des VPC, des groupes de sécurité et EC2, dans des unités modulaires.
La partie 5 présente l'intégration de Terraform avec des outils open source tels que Kubernetes, Helm et KeyCloak, à l'aide d'exemples concrets.
L'annexe contient des questions-réponses couvrant des sujets qui pourraient intéresser les praticiens, tels que les précautions à prendre lors de l'introduction de Terraform dans une infrastructure existante et les problèmes liés aux changements de licence.
Ce livre va au-delà des simples déclarations pour vous apprendre à concevoir et à exploiter une infrastructure structurée et cohérente.
Vous pouvez réduire les répétitions, vous adapter avec souplesse à différents environnements et développer une capacité à orchestrer l'infrastructure avec une seule ligne de code.
En suivant ce livre, vous serez bientôt conquis par l'efficacité de Terraform et vous aurez le sentiment de ne plus pouvoir gérer d'infrastructure sans lui.
Public cible
Ingénieurs en infrastructure souhaitant gérer leur infrastructure par le biais du code
Les ingénieurs DevOps qui souhaitent réduire le stress lié au déploiement grâce à l'automatisation
● Les ingénieurs SRE qui rêvent d'un fonctionnement sans incident et qui prennent même en charge les scénarios de reprise d'activité
Contenu principal
● Comprendre les principes de fonctionnement et la gestion d'état de Terraform
● Conception et utilisation de modules personnalisés adaptés aux applications pratiques
● Exemple d'automatisation de la configuration de l'infrastructure AWS
● Intégration avec divers fournisseurs et logiciels libres
● Conception structurelle pour les environnements de comptes multirégionaux
Conseils pratiques pour l'utilisation et la mise en œuvre de Terraform
SPÉCIFICATIONS DES PRODUITS
- Date d'émission : 14 juillet 2025
Nombre de pages, poids, dimensions : 376 pages | 750 g | 188 × 245 × 18 mm
- ISBN13 : 9791194587255
Vous aimerez peut-être aussi
카테고리
Langue coréenne
Langue coréenne