resource是我们的资源,一般在terraform里面定义的都是资源,是个非常重要的角色。
关键字resource+资源类型(比如dns,ecs,vpc,交换机)+资源的名称。
模块下资源的名称要保证唯一,不要冲突。
块里面就是所有resource的配置,也就是它的主体部分。
对于资源我们只需要了解它的主体,它的结构,接下来就可以开始定义ecs。
阿里云登录 - 欢迎登录阿里云,安全稳定的云计算服务平台
首先你得知道在哪个区域创建ecs,创建的时候选择镜像,操作系统,然后是系统盘多大,cpu,内存这些规格大小。
接下来为你配置网络
分配公网IP,带宽,安全组,弹性网卡,ipv6。
最后就是系统的配置,账号密码这些。实例名称,主机名称。
cloud-init其实就是每个云产品的机制,实例创建完之后想要执行一些任务,就可以借用这种机制去执行。里面可以写一段脚本。
下面就要去定义ecs资源了,resource是从provider里面来的。
第一个是可用区,第二个是安全组,之前创建过安全组,然后加了两条安全组的规则,80和22。
再往下面就是实例的类型,规格。
再后面就是云盘。
镜像的id可以通过data source去拿到。
这个就是我资源的配置
ecs创建之后可能会去搭建一些服务,那么就需要通过ecs的公网IP,公网IP就可以访问这台服务器了。
这个密码其实就是在配置文件里面写的密码(password= "root@123")记住这里需要创建22端口访问规则,在安全组里面。
当你在上面部署了一台ecs,并且在ecs上面部署了你的web应用,那么就需要配置域名解析了。DNS是有zone区分的,
阿里云登录 - 欢迎登录阿里云,安全稳定的云计算服务平台
这个域名其实就是我的zone,然后进去添加解析。
可以看到这个域名解析到这个IP了。
上面演示就是加了一条DNS的A记录,指向了我们ecs的IP。
# Create a new Domain record
resource "alicloud_dns_record" "record" {
name = "domainname"
host_record = "@"
type = "A"
value = "192.168.99.99"
}
type=A表示添加一条A记录,A记录一般指定的一台主机IP。name是zone的名称,然后是记录。
如果访问就是@.domainname就行了。value就是IP地址。
这里引用的是我们的公网IP,引用的是我们定义的ecs资源的公网IP。
value = alicloud_instance.instance.public_ip
标签:resource,IP,语法,Terraform,ecs,资源,公网,就是 From: https://blog.51cto.com/u_14035463/5806199