Terraform 基础 定义阿里云资源 VPC、安全组

这篇具有很好参考价值的文章主要介绍了Terraform 基础 定义阿里云资源 VPC、安全组。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

provider里面提供了资源,接下来就开始定义阿里云的资源了。我们将阿里云的插件也就是provider安装好了,接下来就是调用里面的资源。

在terraform里面最重要的就是资源,资源主要来自provider里面,每个资源里面都有很多属性。

什么是资源呢,比如网络,vpc,安全组,ecs实例以及DNS的域名记录,这些都是资源。

可以理解每个产品都是资源。

既然是要往配置文件里面写资源,那么它也是有它的格式的。

它的关键字是resource,后面就是资源的类型,后面就是自己定义资源的名称,资源的名称是自己定义的,因为我可能创建2个vpc,vpc的名称肯定不能让它一致, 

Terraform 基础 定义阿里云资源 VPC、安全组

vpc是阿里云的专有网络,你可以理解为这个就是网段,创建多个vpc,vpc之间是有隔离的逻辑的。比如可以创建测试环境的vpc,也可以创建生产环境的,它其实就是一个网段。

要申请阿里云的资源就需要知道在代码里面怎么写这些资源。如果不了解这些,强烈建议去阿里云的控制台上看看是如何使用的。

Terraform 基础 定义阿里云资源 VPC、安全组

Terraform 基础 定义阿里云资源 VPC、安全组

可以看到里面有region信息,专有网络的名称,地址段。

除了专有网络之外,这里还有交换机,填写名称和可用区,网段的建议,如下所示。

Terraform 基础 定义阿里云资源 VPC、安全组

只要属性上面的界面,然后使用代码的方式来实践。现在就要去tf的配置文件里面写我们申请哪些资源。 

VPC


Terraform 基础 定义阿里云资源 VPC、安全组

Terraform 基础 定义阿里云资源 VPC、安全组

Example Usage

Basic Usage(声明一个专有网络,专有网络名称和其网段)

resource "alicloud_vpc" "vpc" {
  vpc_name   = "tf_test_foo"
  cidr_block = "172.16.0.0/12"
}
  • cidr_block - (Optional) The CIDR block for the VPC. The cidr_block is Optional and default value is 172.16.0.0/12 after v1.119.0+.
  • vpc_name - (Optional, Available in v1.119.0+) The name of the VPC. Defaults to null.

你要写资源就需要打开文档了,搜索VPC。

第一个就是关键字+资源类型+自定义资源的名称(这个名称就是对应阿里云控制台创建vpc名称那一栏)网段自己去分配。

Terraform 基础 定义阿里云资源 VPC、安全组

注意这里交换机和vpc是一起创建的,你得确定交换机属于哪个vpc里面,属于哪个专有网络。

这里会有绑定的关系。下面就是资源的属性

Terraform 基础 定义阿里云资源 VPC、安全组

交换机要关联vpc,怎么关联呢?通过vpc_id这个属性,怎么拿到这个资源的id呢?就需要资源参数的引用,也就是在一个资源里面引用另外一个资源属性或者参数。

这就需要资源类型(alicloud_vpc).name(定义的资源名称 vpc).属性(比如引用实例化之后的id)

在vpc里面没有定义id,因为需要创建完之后才有id,这里引用的是实例化之后的id,如果在路由器里面要使用vpc_name,那么直接可以这样写vpc_id     = alicloud_vpc.vpc.vpc_name

有些参数是创建完之后才可以拿到的。

output "vswitch_id" {
  value = alicloud_vswitch.vsw.id
}

output "vpc_id" {
  value = alicloud_vpc.vpc.id
}

Changes to Outputs:
  + vpc_id     = (known after apply)
  + vswitch_id = (known after apply)

ECS安全组


Terraform 基础 定义阿里云资源 VPC、安全组

类似于虚拟的防火墙,一般不开安全组,不开端口,那么访问不了。所以需要在安全组里面添加一些规则让ECS去关联。

阿里云登录 - 欢迎登录阿里云,安全稳定的云计算服务平台

注意安全组也需要关联VPC,所以在创建安全组的代码里面也会引用VPC ID的信息。

最后安全组无非就是开通端口这些(安全组下面有很多的规则,所以安全组和规则是两个资源)

Terraform 基础 定义阿里云资源 VPC、安全组

Terraform Registry

Terraform 基础 定义阿里云资源 VPC、安全组

安全组组成:安全组+规则   组里面包含一组规则

resource "alicloud_security_group" "group" {
  name   = "new-group"
  vpc_id = alicloud_vpc.vpc.id
  security_group_type = "normal"
}

 vpc_id = alicloud_vpc.vpc.id 要关联vpc,这是还是要引用其id。

  • security_group_type - (Optional, ForceNew, Available in 1.58.0+) The type of the security group. Valid values: normal: basic security group. enterprise: advanced security group For more information.

 可以看到一个是普通类型,一个是企业类型,这里设置为普通的。

Terraform 基础 定义阿里云资源 VPC、安全组

 最后就是创建安全组规则。

Terraform 基础 定义阿里云资源 VPC、安全组

这里有个出入方向,得选一个是出方向还是入方向,然后授权是允许还是拒绝。

  • priority - (Optional, ForceNew) Authorization policy priority, with parameter values: 1-100, default value: 1.(优先级怎么设置) 
  • ip_protocol - (Required, ForceNew) The protocol. Can be tcpudpicmpgre or all.( 协议是什么等等这些参数。)
  • port_range - (ForceNew) The range of port numbers relevant to the IP protocol. Default to "-1/-1". When the protocol is tcp or udp, each side port number range from 1 to 65535 and '-1/-1' will be invalid. For example, 1/200 means that the range of the port numbers is 1-200. Other protocols' 'port_range' can only be "-1/-1", and other values will be invalid.(这里开放端口,如果开放一个端口就是80/80,如果是范围就是1-65535
  • security_group_id - (Required, ForceNew) The security group to apply this rule to.( 这个就需要引入安全组的id,security_group_id = alicloud_security_group.group.id,资源类型+名称+资源的属性,这样就可以引用,并且关联上。)
  • nic_type - (Optional, ForceNew) Network type, can be either internet or intranet, the default value is internet.(nic_type          = "intranet" 这个是选择外网还是内网,选择内网)
resource "alicloud_security_group_rule" "allow_all_tcp" {
  type              = "ingress"
  ip_protocol       = "tcp"
  nic_type          = "internet"
  policy            = "accept"
  port_range        = "1/65535"
  priority          = 1
  security_group_id = alicloud_security_group.default.id
  cidr_ip           = "0.0.0.0/0"
}

resource "alicloud_security_group_rule" "allow_80_tcp" {
  type              = "ingress"
  ip_protocol       = "tcp"
  nic_type          = "intranet"
  policy            = "accept"
  port_range        = "80/80"
  priority          = 1
  security_group_id = alicloud_security_group.group.id
  cidr_ip           = "0.0.0.0/0"
}

总结


其实你对照控制台上面的字段,就可以看到非常简单,都代码化了。上面全部就是定义阿里云的资源。

依赖关系(交换机依赖于vpc,安全组依赖于vpc,安全组规则依赖于安全组)文章来源地址https://www.toymoban.com/news/detail-440076.html

到了这里,关于Terraform 基础 定义阿里云资源 VPC、安全组的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

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

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

相关文章

  • 阿里云——专有网络VPC

    专有网络是您专有的云上私有网络。您可以完全掌控自己的专有网络,例如选择IP地址范围、配置路由表和网关等,您可以在自己定义的专有网络中使用阿里云资源,如云服务器、云数据库RDS和负载均衡等。 您可以通过高速通道将专有网络连接到本地网络,形成一个按需定制

    2024年02月09日
    浏览(89)
  • AWS使用 Client VPN 配置访问VPC 内网资源

    AWS Client VPN是一种基于客户端的托管VPN服务,让您能够安全地访问云上资源或借助云作为网络通道访问其他资源。AWS Client VPN具有专用的VPN客户端,也支持使用OpenVPN作为客户端。 注意:AWS Client VPN只能用于企业海外员工到附近的海外AWS区域的访问接入,不可用于跨境访问。跨

    2024年03月09日
    浏览(39)
  • terraform创建多台阿里云ecs 命名问题

    在使用Terraform创建多台阿里云ECS实例时,可能会遇到因命名不当导致的问题。以下是一些常见的命名问题以及相应的解决方法: 1)资源名称重复 问题:在Terraform配置文件中,可能为不同的资源分配了相同的名称。 解决方法:确保每个资源的名称是唯一的,可以使用变量来生

    2024年04月14日
    浏览(25)
  • Terraform 系列-批量创建资源时如何根据某个字段判断是否创建

    Terraform 系列文章 Grafana 系列文章 前文 Grafana 系列 - Grafana Terraform Provider 基础 介绍了使用 Grafana Terraform Provider 创建 Datasource. 这几天碰到这么一个现实需求: 使用 Terraform 批量创建日志数据源时, 有的数据源类型是 ElasticSearch, 有些是 Opensearch. 那么, 如何根据某个字段(如: es_t

    2024年02月13日
    浏览(78)
  • 本地资源检测 自定义规则 零基础上手指南

    本地资源检测 是UWA推出的、面向于静态资源的全量分析。可以全面自动检测项目静态工程内各项资源、代码和设置,能够帮助项目组制定合理的资源与代码标准,及时发现潜在的性能问题和异常错误,建立有效的开发规范。 其中“自定义规则”功能特别获得了开发者的好感

    2024年02月13日
    浏览(45)
  • Terraform 基础 云计算概述 基础设施即代码

    云计算概述 lac基础设施即代码 什么是Terraform 在开始学习Terraform之前,要了解这个工具到底解决了什么问题 企业上云,可提高资源配置效率、降低信息化建设成本(说白了就是用上云计算了)  比较大型的企业都会有自建的机房,里面托管服务器和硬件设备。 还有一种情况

    2024年02月02日
    浏览(49)
  • Terraform-云上基础设施自动化工具

    https://developer.hashicorp.com/terraform/install?product_intent=terraform 根据操作系统进行对应的安装操作。 这里我选择Windows安装,配置环境变量Path,将路径添加进入 输入命令进行验证 编辑器推荐使用VSCode,推荐使用Terraform插件 新建文件 main.tf https://developer.hashicorp.com/terraform/language/pro

    2024年01月19日
    浏览(49)
  • Terraform 改善基础架构的十个最佳实践

    Terraform 是一种非常流行的开源 IaC(基础设施即代码)工具,用于定义和提供完整的基础设施。Terraform 于 2014 年推出,其采用率已在全球范围内快速增长,越来越多的开发人员正在学习 Terraform 并尝试在其组织中部署基础设施。   如果您已经开始使用 Terraform,则必须采用最佳

    2024年02月08日
    浏览(37)
  • IaC基础设施即代码:Terraform 创建ACK集群 与部署应用

    目录  一、实验 1.环境 2.Terraform 创建网络资源 3. 阿里云给RAM添加权限 4.Terraform 创建 ACK集群 5.在ACK集群中部署应用 6.销毁资源 二、问题 1.Terraform 验证失败 2.Terraform申请资源失败       (1)主机 表1-1 主机 主机 系统 软件 工具 备注 jia Windows  Terraform 1.6.6 VS Code、 PowerShell、

    2024年01月24日
    浏览(66)
  • TerraForm是一个基础设施自动化工具,它可以自动创建、更新、删除IT基础设施(例如服务器、网络设备、存储系统等Ten things you didn‘t know about Terraform

    作者:禅与计算机程序设计艺术 TerraForm是一个基础设施自动化工具,它可以自动创建、更新、删除IT基础设施(例如服务器、网络设备、存储系统等)上的云资源配置。Terraform 的主要优点包括: 声明式语法: TerraForm 使用描述性语言而不是编程语言来描述期望的资源状态,这

    2024年02月07日
    浏览(53)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包