【Terraform】尝试创建Terraform模块

首先

我使用Udemy学习了Terraform,并整理了学习笔记,主要内容是关于Terraform模块的学习。

 

“什么是Terraform的模块?”

将资源生成过程整合为一个单独的块,以便能够像函数一样调用。

让我们尝试创建Terraform模块。

我想试着创建一个名为”server”的模块。

创建一个名为“modules”的文件夹,并创建一个名为“server”的文件夹。
在“server”文件夹下准备以下空文件以创建模块。

    • variables.tf : 引数

 

    • main.tf : 処理

 

    • outputs.tf : 戻り値

 

    README.md : 説明
スクリーンショット 2022-10-17 23.33.42.png

我会将EC2启动的Terraform代码写入服务器文件夹中的文件中。

resource "aws_instance" "server" {
  ami           = "ami-078296f82eb463377"  # Amazon Linux 2 AMI (HVM) - Kernel 5.10, SSD Volume Type
  instance_type = var.instance_type
  tags = {
    Name = "hogeServer"
  }
}
output "instance_id" {
  value = aws_instance.server.id
}
variable "instance_type" {
  type    = string
  default = "t2.micro"
}

这样,模块就完成了。

让我们调用编写好的模块试试看

我想要调用并使用已创建的模块。

terraform {
  required_version = ">=0.13"
  required_providers {
    aws = {
      source  = "hashicorp/aws"
      version = "~> 4.0"
    }
  }
}

# モジュールの呼び出し
module "webserver" {
  # モジュールのパスを記載する
  source = "./modules/server/"
  instance_type = "t2.micro"
}

output "web_server_id" {
  value = module.webserver.instance_id
}

我要执行了。

$ terraform init
$ terraform plan
$ terraform apply

只要模块中的内容能够成功部署,就可以了。

广告
将在 10 秒后关闭
bannerAds