我正在使用Hashicorp terraform在AWS上创建一个MySQL集群 . 我创建了一个名为 mysql
的模块,并希望将创建的第一个实例标记为 master
. 但是,每个terraform文档:
模块当前不支持count参数 .
我该如何解决这个问题?目前,我在我的文件中有这些:
$ cat project/main.tf
module "mysql_cluster" {
source = "./modules/mysql"
cluster_role = "${count.index == "0" ? "master" : "slave"}"
}
$ cat project/modules/mysql/main.tf
..
resource "aws_instance" "mysql" {
ami = "ami-123456"
instance_type = "t2.xlarge"
key_name = "rsa_2048"
tags {
Role = "${var.cluster_role}"
}
count = 3
}
这会引发错误:
$ project git:(master) ✗ terraform plan
Error: module "mysql_cluster": count variables are only valid within resources
我在mysql模块和根模块的 variables.tf
文件中声明了必要的变量 . 我该如何解决这个问题?在此先感谢您的帮助!
2 回答
您在
module
资源中拥有count
的方式将推断您希望创建3个模块,而不是创建模块中的3个资源 . 您可以从module
资源中规定计数,但使用count.index
的任何逻辑都需要位于模块内 .main.tf
mysql.tf
模块没有计数 . 它仅在资源可用 .