Outils pour utilisateurs

Outils du site


tech:cloud_-_terraform

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
tech:cloud_-_terraform [2026/04/28 11:37] Jean-Baptistetech:cloud_-_terraform [2026/06/16 15:31] (Version actuelle) Jean-Baptiste
Ligne 1: Ligne 1:
 +<!DOCTYPE markdown>
 +{{tag>Brouillon Cloud IAC}}
 +
 +# Cloud - Terrafom / OpenTofu
 +
 +Terraform antonomase OpenTofu
 +
 +Voir :
 +* https://www.morot.fr/infrastructure-as-code-sous-aws-avec-terraform-publie-dans-glmf-216/
 +* https://blog.gruntwork.io/terraform-tips-tricks-loops-if-statements-and-gotchas-f739bbae55f9
 +* https://blog.gruntwork.io/an-introduction-to-terraform-f17df9c6d180
 +* https://wiki.christophchamp.com/index.php?title=Terraform
 +* https://dev.to/anthonylaw/terraform-for-beginner-jak
 +* https://www.redpill-linpro.com/techblog/2018/08/14/getting-started-with-terraform.html
 +* https://medium.com/faun/terraform-remove-element-from-ec2-list-without-destroying-others-when-terraform-plan-again-dbfe1ed291b4
 +
 +Voir aussi :
 +* [[Cloud Pulumi|Pulumi]]
 +* [terraform-clean-syntax](https://github.com/apparentlymart/terraform-clean-syntax)
 +* Terragrunt
 +
 +
 +
 +## Notes
 +
 +Terraform n'est plus un Logiciel Libre. Le Fork libre s'appelle OpenTofu
 +
 +Install
 +~~~bash
 +snap install --classic opentofu
 +~~~
 +
 +
 +~~~bash
 +terraform fmt
 +terraform validate
 +~~~
 +
 +~~~bash
 +terraform plan -out plan01
 +terraform apply "plan01"
 +~~~
 +
 +
 +## Pb
 +
 +### EBS volumes destroyed & recreated - Keep EBS without create new topology ?
 +
 +Voir :
 +* https://github.com/hashicorp/terraform/issues/5006
 +* https://github.com/hashicorp/terraform/issues/3654
 +* https://github.com/terraform-providers/terraform-provider-aws/issues/7796
 +
 +
 +### Erreur : VPCIdNotSpecified: No default VPC for this user status code: 40
 +
 +`example.tf`
 +~~~
 +provider "aws" {
 +  profile    = "default"
 +  region     = "eu-west-1"
 +}
 +
 +resource "aws_instance" "example" {
 +  ami           = "ami-01b282b0f06ba5fd2"
 +  instance_type = "t2.micro"
 +  tags = {
 +    Name = "Test-JBL-tf1"
 +  }
 +
 +}
 +~~~
 +
 +~~~bash
 +terraform apply
 +~~~
 +
 +Erreur
 +~~~
 +Error: Error launching source instance: VPCIdNotSpecified: No default VPC for this user
 +        status code: 400, request id: c83af246-9715-4d82-a47d-d08a7941c7f6
 +~~~
 +
 +#### Solution
 +
 +`example.tf`
 +~~~
 +provider "aws" {
 +  profile    = "default"
 +  region     = "eu-west-1"
 +}
 +
 +resource "aws_instance" "example" {
 +  ami           = "ami-01b282b0f06ba5f32"
 +  instance_type = "t2.micro"
 +  vpc_security_group_ids = ["sg-08bc01c0ececbc84f"]
 +  subnet_id     = "subnet-0d63fcd2f893bbb5b"
 +  tags = {
 +    Name = "par-web-01"
 +  }
 +
 +}
 +~~~
 +
 +
 +### Erreur : No suitable endpoint could be found in the service
 +
 +~~~bash
 +terraform apply
 +~~~
 +
 +~~~
 +│ Error: Error creating OpenStack compute client: No suitable endpoint could be found in the service catalog.
 +│ 
 +│   with openstack_compute_keypair_v2.test_keypair,
 +│   on 10_test.tf line 2, in resource "openstack_compute_keypair_v2" "test_keypair":
 +│    2: resource "openstack_compute_keypair_v2" "test_keypair" {
 +~~~
 +
 +
 +Lister le catalogue ici
 +~~~bash
 +openstack catalog list
 +~~~
 +
 +Mettre la région appropriée 
 +
 +
 +## Autres
 +
 +
 +### SFTP TO S3 - AWS Storage Gateway
 +
 +Voir :
 +* https://docs.aws.amazon.com/fr_fr/storagegateway/latest/userguide/CreatingAnSMBFileShare.html
 +* https://github.com/terraform-providers/terraform-provider-aws/issues/5597
 +* https://github.com/terraform-providers/terraform-provider-aws/issues/6650
 +* https://docs.aws.amazon.com/fr_fr/storagegateway/latest/userguide/get-activation-key.html
 +* https://medium.com/tensult/creating-aws-file-gateway-as-an-nfs-storage-for-your-ec2-instance-57c141c76409
 +
 +~~~
 +
 +
 +resource "aws_storagegateway_gateway" "example" {
 +  #gateway_ip_address = "1.2.3.4"
 +  #activation_key     = ""
 +  gateway_name       = "example"
 +  gateway_timezone   = "GMT"
 +  gateway_type       = "FILE_S3"
 +  smb_guest_password = "pass"
 +}
 +
 +resource "aws_storagegateway_smb_file_share" "example" {
 +  authentication = "GuestAccess"
 +  gateway_arn    = "${aws_storagegateway_gateway.example.arn}"
 +  location_arn   = "${aws_s3_bucket.example.arn}"
 +  role_arn       = "${aws_iam_role.example.arn}"
 +}
 +~~~
 +
 +## Autres
 +
 +`~/.terraforrc`
 +
 +~~~bash
 +export TF_LOG=1
 +~~~
 +
 +
 +~~~bash
 +terraform plan ${VARS} -out="./${ENV}.tfplan" -input=false
 +terraform apply -input=false ${ENV}.tfplan
 +~~~
 +
  

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki