{{tag>Brouillon Cloud IAC}} = Cloud - Terrafom / 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]] * [[https://github.com/apparentlymart/terraform-clean-syntax|terraform-clean-syntax]] * Terragrunt == Notes Terraform n'est plus un Logiciel Libre. Le Fork libre s'appelle OpenTofu Install snap install --classic opentofu terraform fmt terraform validate 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 provider "aws" { profile = "default" region = "eu-west-1" } resource "aws_instance" "example" { ami = "ami-01b282b0f06ba5fd2" instance_type = "t2.micro" tags = { Name = "Test-JBL-tf1" } } 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 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 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 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'' export TF_LOG=1 terraform plan ${VARS} -out="./${ENV}.tfplan" -input=false terraform apply -input=false ${ENV}.tfplan