【Terraform学习】Terraform_count使用(Terraform配置语言学习)

这篇具有很好参考价值的文章主要介绍了【Terraform学习】Terraform_count使用(Terraform配置语言学习)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一、简单使用:对于一些需要起多个重复的实例有用

variable “elb_names” {
        type = list
        default = ["a", "b", "c"]
}
resource "aws_iam_user" "lb" {
        name = var.elb_names[count.index]
        count = 3
        path = "/sys/"
}

当我们在Terraform 模板里面创建资源的时候,如果有多个重复的资源,我们可以通过count来指定个数,他会自动执行一个类似for loop的循环,然后我们可以通过count.index 来指向他每次循环的索引值。从编程的思维来理解,就是我们执行一个for 循环, 每次循环获取index的值,从一个对应长度的数组里面获取元素值赋给name这个参数

使用count配置 EC2

  • 接下来,编辑main.tf以使用count根据新变量的值和私有子网的数量为 EC2 实例预置资源块

 resource "aws_instance" "app" {
+  count = var.instances_per_subnet * length(module.vpc.private_subnets)
+
   ami           = data.aws_ami.amazon_linux.id
   instance_type = var.instance_type

-  subnet_id              = module.vpc.private_subnets[0]
+  subnet_id              = module.vpc.private_subnets[count.index % length(module.vpc.private_subnets)]
   vpc_security_group_ids = [module.app_security_group.this_security_group_id]

   ## ...

 }

更新负载均衡器

  • 更新elb_http块中的负载均衡器配置以将实例附加到负载均衡器

-  number_of_instances = 2
-  instances           = [aws_instance.app_a.id, aws_instance.app_b.id]
+  number_of_instances = length(aws_instance.app)
+  instances           = aws_instance.app.*.id
  • 更新outputs.tf以引用新块aws_instance.app

 output "instance_ids" {
   description = "IDs of EC2 instances"
-  value       = [aws_instance.app_a.id, aws_instance.app_b.id]
+  value       = aws_instance.app.*.id
 }

应用配置

  • 立即应用此配置。Terraform 将输出 VPC、负载均衡器和实例的值

    • terraform apply

## ...

Apply complete! Resources: 8 added, 0 changed, 4 destroyed.

Outputs:

instance_ids = [
  "i-0bc4309c117df766a",
  "i-0aaa6de2b610ae749",
  "i-035ff2723aace0f12",
  "i-02640c564d3f08152",
]
public_dns_name = "lb-yksg-client-webapp-dev-702243816.us-west-2.elb.amazonaws.com"
vpc_arn = "arn:aws:ec2:us-west-2:561656980159:vpc/vpc-0195a5982b1ad302b"
  • 现在,您已使用变量count配置了 EC2 实例数文章来源地址https://www.toymoban.com/news/detail-657977.html

到了这里,关于【Terraform学习】Terraform_count使用(Terraform配置语言学习)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【Terraform学习】使用 Terraform创建DynamoDB添加项目(Terraform-AWS最佳实战学习)

     本站以分享各种运维经验和运维所需要的技能为主 《python》:python零基础入门学习 《shell》:shell学习 《terraform》持续更新中:terraform_Aws学习零基础入门到最佳实战 《k8》暂未更新 《docker学习》暂未更新 《ceph学习》ceph日常问题解决分享 《日志收集》ELK+各种中间件 《运

    2024年02月10日
    浏览(42)
  • 【Terraform学习】使用 Terraform创建 S3 存储桶事件(Terraform-AWS最佳实战学习)

      本站以分享各种运维经验和运维所需要的技能为主 《python》:python零基础入门学习 《shell》:shell学习 《terraform》持续更新中:terraform_Aws学习零基础入门到最佳实战 《k8》暂未更新 《docker学习》暂未更新 《ceph学习》ceph日常问题解决分享 《日志收集》ELK+各种中间件 《运

    2024年02月10日
    浏览(44)
  • 【Terraform学习】使用 Terraform 创建应用程序负载均衡器(Terraform-AWS最佳实战学习)

    前提条件 安装 Terraform : 地址 下载仓库代码模版 本实验代码 位于  task_elb  文件夹中 。 变量文件  variables.tf        在上面的代码中,您将 声明 , aws_access_key , aws_secret_key 和  区域变量 。 terraform.tfvars       在上面的代码中,您将 定义变量的值 。 main.tf        在

    2024年02月10日
    浏览(44)
  • 【Terraform学习】使用 Terraform创建Lambda函数启动EC2(Terraform-AWS最佳实战学习)

     本站以分享各种运维经验和运维所需要的技能为主 《python》:python零基础入门学习 《shell》:shell学习 《terraform》持续更新中:terraform_Aws学习零基础入门到最佳实战 《k8》暂未更新 《docker学习》暂未更新 《ceph学习》ceph日常问题解决分享 《日志收集》ELK+各种中间件 《运

    2024年02月11日
    浏览(52)
  • 【Terraform学习】使用 Terraform 从 EC2 实例访问 S3 存储桶(Terraform-AWS最佳实战学习)

    前提条件 安装 Terraform : 地址 下载仓库代码模版 本实验代码 位于  task_ec2_s3connet  文件夹中 。 变量文件  variables.tf     在上面的代码中,您将 声明 , aws_access_key , aws_secret_key 和 区域变量 。 声明存储桶名称变量 。 terraform.tfvars   在上面的代码中,您将 定义变量的值

    2024年02月11日
    浏览(46)
  • HarmonyOS北向开发(软件开发方向)基于ArkTS 入门学习 (1) - 开发语言及环境配置

            建议快速阅读一遍,不要求记住。知道一个大概框架即可,方便以后查阅开发文档 开发语言 - ArkTS          HarmonyOS主要的开发语言                 未来版本的HarmonyOS的主要开发语言将会是ArkTS,在Devco Studio创建项目的时候,选择API 9 开发的情况下,只能使

    2024年01月21日
    浏览(52)
  • C语言学习 使用函数求素数和

    题目描述 本题要求实现一个判断素数的简单函数、以及利用该函数计算给定区间内素数和的函数。 输入两个正整数m和n(1≤m≤n≤500),求m和n之间的素数和。 素数就是只能被1和自身整除的正整数。注意:1不是素数,2是素数。 要求定义并调用函数prime(p)判断p是否为素数

    2024年02月03日
    浏览(48)
  • C语言学习笔记 vscode使用外部console-11

    在默认情况下,我们运行C语言程序都是在vscode终端的,在小程序运行时这个是没有问题的,但是当程序变得复杂它就不好用了,这时我们可以将这个终端设置为外部console,这样方便处理更多、更复杂的程序。 1.点击左角的文件夹下的.vscode目录下的lauch.json文件 2.在打开的文件

    2024年02月13日
    浏览(39)
  • C语言学习之路(工具篇)—— Visual Studio的使用

    说明:该篇博客是博主一字一码编写的,实属不易,请尊重原创,谢谢大家! 源文件—添加—新建项 C语言编译步骤 1)预处理 宏定义展开、头文件展开、条件编译等,同时将代码中的注释删除, 这里并不会检查语法 2)编译 检查语法 ,将预处理后文件编译生成汇编文件

    2023年04月08日
    浏览(41)
  • 【Terraform学习】Terraform-AWS部署快速入门(快速入门)

     本站以分享各种运维经验和运维所需要的技能为主 《python零基础入门》:python零基础入门学习 《python运维脚本》: python运维脚本实践 《shell》:shell学习 《terraform》持续更新中:terraform_Aws学习零基础入门到最佳实战 《k8》暂未更新 《docker学习》暂未更新 《ceph学习》ce

    2024年02月15日
    浏览(52)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包