Il est maintenant de notoriété publique que l’intelligence artificielle est un excellent copilote pour (presque) n’importe quelle tâche. Dans tous les secteurs, de nombreux professionnels l’utilisent pour comme aide dans leurs tâches quotidiennes. Nous allons dans cet article nous pencher sur l’utilisation de Terraform avec ChatGPT.
Même si ChatGPT peut vous aider, notre formation Terraform reste le meilleur moyen d’acquérir une maitrise complète de l’outil. Vous y apprendrez l’utilisation et la configuration de Terraform avec des outils cloud afin d’automatiser votre infrastructure de manière performante.
L’équipe Ambient IT
L’apprentissage de Terraform
Terraform est un outil d’infrastructure-as-a-code permettant de définir des ressources d’infrastructure dans des solutions cloud. Terraform permet de faciliter la gestion des ressources en automatisant la création de celles-ci et de renforcer la sécurité des secrets dans une solution centralisée et hautement opérationnelle.
Cependant, pour pouvoir réaliser toutes les actions requises, il faut maitriser l’outil. Si la documentation est généralement très utile, il est parfois difficile d’appliquer des exemples généralistes à des situations particulières propres à ses environnements. C’est donc ici que ChatGPT intervient dans l’apprentissage de Terraform.
ChatGPT comme copilote pour Terraform
ChatGPT peut être utilisé de très nombreuses façons dans l’utilisation quotidienne de Terraform. Lorsque vous êtes débutant sur l’outil, il peut vous permettre d’apprendre de nouvelles choses et même de vous aider dans des tâches longues, difficiles ou rébarbatives.
Création de templates
ChatGPT est extrêmement utile pour créer des templates dans Terraform. Pour les créer de la meilleure façon, il vous suffit de suivre ces étapes :
- Décrivez votre infrastructure à Terraform : décrivez les composants de l’infrastructure que vous souhaitez créer. Expliquez les ressources, leurs configurations et les dépendances entre elles. Plus vous êtes explicite dans votre explication, plus le travail sera facilité pour ChatGPT. N’hésitez pas à décrire votre infrastructure étape par étape et assurez-vous d’être bien compris.
- Demandez le code HCL : demandez à ChatGPT de vous aider à générer du code HashiCorp Configuration Language (HCL) pour votre modèle Terraform. Vous pouvez demander des extraits de code pour des ressources spécifiques ou des configurations entières.
- Configuration des ressources : spécifiez les détails de la configuration pour chaque ressource. Par exemple, pour une instance AWS EC2, fournissez des informations sur le type d’instance, l’AMI, les groupes de sécurités, etc.
- Modules et variables : si vous prévoyez d’utiliser des modules ou des variables, mentionnez-le à ChatGPT. Vous pouvez demander de l’aide pour créer des modules réutilisables ou définir des variables.
- Test et déploiement : une fois que vous avez le code Terraform, testez-le en utilisant les commandes terraform plan et terraform apply pour vous assurer qu’il génère l’infrastructure attendue.
- Meilleures pratiques : vous pouvez également demander à ChatGPT de vous indiquer les meilleures pratiques et astuces Terraform pour améliorer la qualité et la maintenabilité de votre modèle.
Convertir du Code avec ChatGPT
Les utilisateurs de Terraform le savent, la conversion du code Terraform écrit pour AWS afin qu’il fonctionne dans Azure ou GCP est généralement une tache longue et délicate. Surtout pour les utilisateurs débutants. Terraform est « agnostique » en ce sens qu’il fonctionne avec tous ces services, mais le code n’est pas portable. Il ne suffit pas de changer de fournisseur pour qu’il fonctionne. Heureusement, ChatGPT peut nous aider dans cette tâche.
Si l’on demande à ChatGPT de convertir du code AWS pour Azure :
data "aws_ami" "my_base" {
most_recent = true
owners = ["self"]
filter {
name = "name"
values = ["my-base-*"]
}
}
resource "aws_instance" "my_instance" {
ami = data.aws_ami.my_base.id
iam_instance_profile = aws_iam_instance_profile.my_instance.name
instance_type = "t2.micro"
key_name = var.ec2_key_name
monitoring = false
subnet_id = data.terraform_remote_state.vpc.outputs.public_subnet_a
vpc_security_group_ids = [
aws_security_group.instances.id
]
root_block_device {
volume_type = "gp3"
volume_size = "8"
}
provisioner "local-exec" {
command = "sleep 180;ANSIBLE_HOST_KEY_CHECKING=False ansible-playbook -u ec2-user --private-key ${var.private_key_file} -i '${self.public_ip},' ${path.cwd}/ansible/my_instance.yml"
}
}
Ce code devient alors
data "azurerm_shared_image_version" "my_base" {
name = "my-base-1.0.0"
image_name = "my-base"
gallery_name = "my-image-gallery"
resource_group_name = "my-resource-group"
}
provider "azurerm" {
features = {}
}
resource "azurerm_virtual_machine" "my_instance" {
name = "my-instance"
location = "East US"
resource_group_name = "my-resource-group"
network_interface_ids = [azurerm_network_interface.my_nic.id]
vm_size = "Standard_B1s" # Equivalent to t2.micro in general purpose category
storage_image_reference {
id = data.azurerm_shared_image_version.my_base.id
}
storage_os_disk {
name = "myosdisk"
caching = "ReadWrite"
create_option = "FromImage"
managed_disk_type = "Standard_LRS" # Similar to gp3
disk_size_gb = 8
}
os_profile {
computer_name = "hostname"
admin_username = "adminuser"
admin_password = "AdminPassword123!"
}
os_profile_linux_config {
disable_password_authentication = false
}
# Additional configurations for networking, provisioners, etc. can be added below...
}
Dans cet exemple, ChatGPT suppose l’utilisation d’une version provenant d’une galerie d’images partagée, mais ce code est facilement adaptable à votre infrastructure.
Lors de la réalisation de cette opération, ChatGPT est également capable de vous fournir des conseils utiles pour une adaptation efficace de votre code.
Apprendre des tâches
Lorsque vous ne savez tout simplement pas comment réaliser une tâche, il est parfaitement possible de demander à ChatGPT. Par exemple, si vous avez un doute sur la façon de mettre en place une variable.
ChatGPT est alors en mesure de vous fournir un grand nombre de réponses afin de vous aider
ChatGPT est donc parfaitement en mesure de répondre à des questions sur votre infrastructure ou sur vos tâches quotidiennes sur terraform.
Conclusion
Même si vous ne devez pas faire aveuglément confiance à ChatGPT (il est capable de faire des erreurs, un peu comme un humain), il reste un excellent allié pour apprendre, Terraform ou pour vous faciliter certaines tâches.
Ces dernières années, l’infrastructureas-a-code a pris une tournure plus efficace et le développement de l’intelligence artificielle devrait accélérer ce processus.
Si l’IA devrait conduire à l’automatisation de nombreuses tâches, elle va également créer de nouvelles opportunités d’emploi pour les ingénieurs en IA experts dans l’agrégation, la production et l’analyse de données. Ils joueront un rôle important dans la mise en œuvre de systèmes automatisés d’orchestration du cloud, la gestion du big data, l’IoT, la gouvernance des données et le contrôle des coûts du cloud.