【Terraform】尝试创建Terraform模块
首先
我使用Udemy学习了Terraform,并整理了学习笔记,主要内容是关于Terraform模块的学习。
“什么是Terraform的模块?”
将资源生成过程整合为一个单独的块,以便能够像函数一样调用。
让我们尝试创建Terraform模块。
我想试着创建一个名为”server”的模块。
创建一个名为“modules”的文件夹,并创建一个名为“server”的文件夹。
在“server”文件夹下准备以下空文件以创建模块。
-
- variables.tf : 引数
-
- main.tf : 処理
-
- outputs.tf : 戻り値
- README.md : 説明
我会将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
只要模块中的内容能够成功部署,就可以了。