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

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

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

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

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

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

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

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

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

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

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

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名称那一栏)网段自己去分配。

注意这里交换机和vpc是一起创建的,你得确定交换机属于哪个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安全组


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

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

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

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

Terraform Registry

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

resource "alicloud_security_group" "group" {name   = "new-group"vpc_id = alicloud_vpc.vpc.idsecurity_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.

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

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

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

  • 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          = 1security_group_id = alicloud_security_group.default.idcidr_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          = 1security_group_id = alicloud_security_group.group.idcidr_ip           = "0.0.0.0/0"
}

总结


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

依赖关系(交换机依赖于vpc,安全组依赖于vpc,安全组规则依赖于安全组)

Terraform 基础 定义阿里云资源 VPC、安全组相关推荐

  1. Terraform 基础 申请阿里云资源

    之前,资源都定义好了,现在就是去申请资源了. 申请这些资源就需要使用terraform的命令行了,开始初始化后端,相当于terraform的后端存储,后端是有存储文件的,默认情况下是在本地存储的,然后 ...

  2. 阿里云——专有网络VPC

    什么是专有网络 专有网络是您专有的云上私有网络.您可以完全掌控自己的专有网络,例如选择IP地址范围.配置路由表和网关等,您可以在自己定义的专有网络中使用阿里云资源,如云服务器.云数据库RDS和负载均衡 ...

  3. 通过命令行工具使用阿里云资源编排服务

    资源编排ROS 是一种简单易用的云计算资源管理和自动化运维服务.用户通过模板描述多个云计算资源的依赖关系.配置等,并自动完成所有资源的创建和配置,以达到自动化部署.运维等目的. 了解更多 通过命令行工 ...

  4. 阿里云资源编排服务Python SDK使用入门

    阿里云资源编排服务(ROS)为我们维护云计算资源提供了一个低成本.可靠.标准化的方案.基于ROS提供的能力,我们只要编写和维护资源模板文件,就可以达到维护云计算资源的目的,而不再需要花费很多的时间通过 ...

  5. 混合现实手术规划模拟系统——阿里云资源+MR技术在医疗行业的典型应用

    作者:阿里云MVP.北京科云互联科技有限公司副总裁阎雨农 "未来,更希望能够把微乐的这项技术再全省各医疗机构,特别是基层医疗机构的专家们,让他们更早地能够学习,应用这项技术,在日常工作中,让 ...

  6. 阿里云专有网络VPC学习笔记

    转载自:专有网络 VPC - 帮助中心 - 阿里云 同一VPC内不同可用区的交换机内网互通.(同一VPC内网互通) 步骤: 步骤一 创建专有网络和交换机 步骤二 创建ECS实例 步骤三 创建EIP 步 ...

  7. 阿里云ECS vpc网络与办公网内网互通

    公网远程操作很不安全,因此决定使用内网互通模式,虽然阿里云有自带的vpn,但是太贵了,身为运维的我,一定要为公司省钱,只能想想法子,自己搭建一套内网vpn使用 环境: 阿里云vpc网络的ecs 办公网 ...

  8. 11月14日云栖精选夜读:轻松使用阿里云资源编排_方便你的API管理

    点击有惊喜 11月初,阿里云ROS正式发布API 网关(API Gateway)资源,为云计算用户提供高性能.高可用的 API 托管服务,帮助用户对外开放其部署在 ECS.容器服务等阿里云产品上的应用 ...

  9. 阿里云服务器的安全组怎么创建和修改?

    阿里云服务器的安全组怎么创建和修改呢 安全组是什么? 安全组是一种虚拟防火墙,具备状态检测和数据包过滤能力.我们通过配置安全组规则,来控制安全组内阿里云ECS实例的入流量和出流量. 如何创建安全组: ...

最新文章

  1. 并发 vs 并行 (Concurrency Is Not Parallelism)
  2. Java编程的逻辑 (62) - 神奇的序列化
  3. 玩转服务器(华为云)—环境安装(jdk安装,tomcat安装)
  4. Educational Codeforces Round 41 E. Tufurama (961E)
  5. 首度公开!OceanBase存储系统架构的演进历程及工程实践
  6. winexec函数 执行powershell 脚本_丢掉 Powershell.exe 来渗透测试
  7. matlab各类数学公式
  8. Linux 基本命令(三)--histroy 常用命令详解
  9. 去除迅雷5.9主界面广告
  10. [转帖]Mootools源码分析-23 -- Selectors-2
  11. 作为软件工程师,如何进行知识管理
  12. openssl genrsa
  13. vba 冻结窗格_在VBA中进行调试-2A)代码窗格(F7)
  14. WIN32 opengl三角形绘制
  15. 中南大学计算机博士就业,求救!中南大学博士毕业要求
  16. yum 无法安装gcc 出现Run “yum repolist all” to see the repos you have异常
  17. Linux下编译pjproject-2.6并运行例程simple_pjsua
  18. ffmpeg中音频解码方法(附代码)+ffmpeg音频解码播放速度快的问题(随手笔记,以供查阅)
  19. 代码加密 android,Android 开发怎样做代码加密或混淆
  20. 轨迹预测论文解读系列——几种经典的网络

热门文章

  1. 现金的消亡与货币的未来之战 |链捕手
  2. 2009 中国七夕情人节 --期待
  3. 1907 Problem A 吃糖果
  4. jquery判断元素内容是否为空的方法
  5. 替换空格 ——《剑指offer》
  6. 【学习笔记】第四章 概率论与数理统计
  7. ZYNQ学习笔记PS部分【基本介绍】
  8. 分享一些正确的放松方式
  9. 让老照片重现光彩(三):完整论文的中文译文
  10. Lineage Logistics完成对 UTI Forwarding的收购