【Terraform/AWS】从安装到创建EC2的过程

首先

确保安装了Terraform,并能在AWS上创建EC2实例。

执行环境

    • Windows 10 21H2

 

    Terraform 1.1.9

安装

下载

请从以下网站进行下载。
对于Windows系统,有386和Amd64两个选择。
如果你的系统是64位操作系统,请在“开始菜单>设置>系统>详细信息”中选择Amd64。
如果你的系统是32位操作系统,请选择386。

 

让路径通过

スクリーンショット 2022-05-17 223228.png
スクリーンショット 2022-05-17 224050.png

确认

可以在命令提示符中执行命令,并显示Terraform的版本来确认是否正确安装。

C:\terraform> terraform -v
Terraform v1.1.9 
on windows_amd64 

顺便说一句,即使不通过路径也可以确认是否存在可执行文件。
但是,每次执行都必须写入绝对路径很麻烦,所以我添加了路径。

C:\terraform> C:\terraform\terraform.exe -v
Terraform v1.1.9
on windows_amd64 

创建EC2

因为目标是确认作成,所以代码很简单。

编写代码

我在terraform文件夹中创建了一个名为example的文件夹。
由于terraform执行时会生成保存执行状态和依赖关系的文件,所以我创建了这个文件夹。
在example文件夹中创建了一个名为main.tf的文件。以下是main.tf的内容。
文件名只要拓展名是.tf就可以,没有限制。
access_key和secret_key的值都是xxxxxx,但你可以在AWS的管理控制台>右上角的用户名>安全凭据>用于CLI、SDK和API访问的AWS访问密钥中找到这些值,请输入你自己的值。(请勿与他人共享此值)

terraform {
    required_providers {
        aws = {
            source = "hashicorp/aws"
            version = "~> 3.0"
        }
    }
}

provider "aws" {
    access_key = "xxxxxxxxxxxxxx"
    secret_key = "xxxxxxxxxxxxxxxxxxxxxxxxxxxx"
    region = "ap-northeast-1"
}

resource "aws_instance" "example" {
    ami = "ami-0c3fd0f5d33134a76"
    instance_type = "t2.micro"

    tags = {
        Name = "example"
    }
}

运行代码

可以使用 terraform apply 命令进行执行。
在执行过程中会显示 “Enter a value” 并进入等待输入的状态,输入 “yes” 后将开始创建 EC2。
(也可以使用 terraform apply –auto-approve 命令省略输入 “yes” 的选项)

C:\terraform\example> terraform apply
Terraform used the selected providers to generate the following execution plan. Resource actions are indicated with the following symbols:
  + create

Terraform will perform the following actions:

  # aws_instance.example will be created

(省略)

Plan: 1 to add, 0 to change, 0 to destroy.

Do you want to perform these actions?
  Terraform will perform the actions described above.
  Only 'yes' will be accepted to approve.

  Enter a value: yes ←yesと入力

aws_instance.example: Creating...
aws_instance.example: Still creating... [10s elapsed]

(省略)

Apply complete! Resources: 1 added, 0 changed, 0 destroyed.

确认

スクリーンショット 2022-05-18 135415.png

删除

我們確認已經完成了建立。
在忘記之前,請使用terraform destroy進行刪除。
請輸入與建立時相同的Enter a value,輸入yes。

C:\terraform\example> terraform destroy
aws_instance.example: Refreshing state... [id=i-075e0dc31836d8c17]

Terraform used the selected providers to generate the following execution plan. Resource actions are indicated with the following symbols:
  - destroy

(省略)

Plan: 0 to add, 0 to change, 1 to destroy.

Do you really want to destroy all resources?
  Terraform will destroy all your managed infrastructure, as shown above.
  There is no undo. Only 'yes' will be accepted to confirm.

  Enter a value: yes ←yesと入力

aws_instance.example: Destroying... [id=i-075e0dc31836d8c17]
aws_instance.example: Still destroying... [id=i-075e0dc31836d8c17, 10s elapsed]

(省略)

Destroy complete! Resources: 1 destroyed.

在这里已经完成删除。

最后

由于确认作业的目的,因此它比较简单。你可以将生成的.tfstate文件保存到S3中,将main.tf文件分割,而不是将所有内容写在一起。同时,建议将提供者的访问密钥和秘密访问密钥等设置为变量。尽管有很多需要做的事情,请尝试一下。

广告
将在 10 秒后关闭
bannerAds