Cloud - Terraform import - OpenTofu import

Importation d'une instance dans le "state"

provider "aws" {
profile = "default"
region = "eu-west-1"
}
resource "aws_instance" "inst1" {
# (resource arguments)
}

terraform import aws_instance.inst1 i-0127e23e987f1f08a

Création de la définition de notre instance

terraform state list terraform state show -no-color aws_instance.inst1 > aws_instance-inst1.tf mv import.tf import.tf.bak terraform fmt aws_instance-inst1.tf

Créer ce fichier

provider "aws" {
access_key = ""
secret_key = ""
region = "eu-west-1"
}

Correction du code

terraform plan -target=aws_instance.inst1 2>&1 |grep Err

Error: "public_ip": this field cannot be set
Error: "arn": this field cannot be set
Error: "public_dns": this field cannot be set
Error: "instance_state": this field cannot be set
Error: "root_block_device.0.volume_id": this field cannot be set
Error: "private_dns": this field cannot be set
Error: "primary_network_interface_id": this field cannot be set
Error: : invalid or unknown key: id

Commenter les ligner en erreur (“public_ip, arn…”)

# aws_instance.inst1:
resource "aws_instance" "inst1" {
ami = "ami-0a3c5e107eda3e29b"
#arn = "arn:aws:ec2:eu-west-1:299632874688:instance/i-0127e23e987f1f08a"
associate_public_ip_address = true
availability_zone = "eu-west-1b"
#cpu_core_count = 1
#cpu_threads_per_core = 1
disable_api_termination = false
ebs_optimized = false
get_password_data = false
#id = "i-0127e23e987f1f08a"
#instance_state = "running"
instance_type = "t2.micro"
ipv6_address_count = 0
ipv6_addresses = []
key_name = "My keyPair"
monitoring = false
#primary_network_interface_id = "eni-034b4bb5957d77123"
#private_dns = "ip-172-31-237-138.eu-west-1.compute.internal"
private_ip = "172.31.237.138"
#public_dns = "ec2-34-241-189-63.eu-west-1.compute.amazonaws.com"
#public_ip = "34.241.189.63"
security_groups = []
source_dest_check = true
subnet_id = "subnet-0d63fcd2f893bbb9b"
tags = {
"Name" = "InstanceName"
}
tenancy = "default"
volume_tags = {}
vpc_security_group_ids = [
"sg-0e09491e039edf3dd",
]
credit_specification {
cpu_credits = "standard"
}
# root_block_device {
# delete_on_termination = true
# iops = 100
# volume_id = "vol-02ccd390ba7b838cd"
# volume_size = 8
# volume_type = "gp2"
# }
timeouts {}
}

#terraform plan -target=aws_instance.inst1 terraform apply

Error: Error launching source instance: UnsupportedOperation: The t2.micro instance type does not support specifying CpuOptions.
status code: 400, request id: e6bb04ea-3f2a-47d7-a140-98d12857ceed

Commenter les lignes “cpu_core_count” et “cpu_threads_per_core” puis

terraform plan |grep 'known after apply' #terraform taint aws_instance.inst1 terraform state rm aws_instance.inst1 terraform apply