## 创建EIP ##
1. ECS公网IP 与eip 区别
序号 |功能| ECS公网IP | EIP
:-: | :-: | :-: | :-:
1 |支持的网络环境 |专有网络 |专有网络 经典网络
2|是否能够单独持有|否|是
3|是否支持在ECS上的弹性插拔|否|是
4|ECS实例网卡上是否能看到该IP|经典网络:能看到;专有网络VPC:看不到|多EIP网卡可见模式下可见
2. 创建Eip
EIP是一种NAT IP。它实际位于阿里云的公网网关上,通过NAT方式映射到了被绑定的云资源上。和云资源绑定后,云资源可以通过EIP与公网通信。
● 可独立持有的公网IP
● 可用于VPC中的 ECS实例、NAT网关、私网负载均衡SLB等产品
● 可动态绑定和解绑
● 可自带IP地址上云,系统架构变动小,IP品牌信誉不变
```
resource "alicloud_eip" "eip" {
bandwidth = "10"
# Internet charge type of the EIP, Valid values are PayByBandwidth, PayByTraffic. Default to PayByBandwidth. From version 1.7.1, default to PayByTraffic. It is only PayByBandwidth when instance_charge_type is PrePaid
internet_charge_type = "PayByTraffic"
# Elastic IP instance charge type. Valid values are "PrePaid" and "PostPaid". Default to "PostPaid".
instance_charge_type = "PostPaid"
}
resource "alicloud_eip_association" "eip_asso" {
allocation_id = alicloud_eip.eip.id
instance_id = alicloud_instance.server.id
}
```
出现执行错误的问题,这是因为eip之前服务器已经有了ip了
```
Error: [ERROR] terraform-provider-alicloud/alicloud/resource_alicloud_eip_association.go:99: Resource alicloud_eip_association AssociateEipAddress Failed!!! [SDK alibaba-cloud-sdk-go ERROR]:
│ SDK.ServerError
│ ErrorCode: EIP_CAN_NOT_ASSOCIATE_WITH_PUBLIC_IP
│ Recommend: https://error-center.aliyun.com/status/search?Keyword=EIP_CAN_NOT_ASSOCIATE_WITH_PUBLIC_IP&source=PopGw
│ RequestId: F0830361-B3B9-4049-9724-482EC5E2C526
│ Message: instance already bind natpublicip,cannot bind eip.
│
│ with alicloud_eip_association.eip_asso,
│ on eip.tf line 12, in resource "alicloud_eip_association" "eip_asso":
│ 12: resource "alicloud_eip_association" "eip_asso" {
```
首先要更改internet_max_bandwidth_out,让ecs主机创建的时候不要分配公网IP
```
variable "internet_max_bandwidth_out" {
default = 0
}
```
然后更改
```
# 使用file provisioner 拷贝文件到服务器
resource "null_resource" "copy" {
# 等待server eip eip绑定完毕后再执行拷贝文件的操作
depends_on = [alicloud_instance.server,alicloud_eip.eip]
triggers = {
key = "${uuid()}"
}
provisioner "file" {
source = "./html/"
destination = "/usr/share/nginx/html/"
connection {
type = "ssh"
user = "root"
password = var.ecs_password
host = "${alicloud_eip.eip.ip_address}"
}
}
}
```
- 【概要简介】1.001-简介-本课程体系简介
- 【概要简介】1.002-简介-云的发展趋势
- 【概要简介】1.003-简介-国内主流的云服务平台
- 【概要简介】1.004-简介-Terraform云平台devops的瑞士军刀
- 【快速入门】2.000-快速入门-云后台创建主机
- 【快速入门】2.001-快速入门-创建主机-先查询资源
- 【快速入门】2.002-快速入门-创建主机-阿里云
- 【快速入门】2.003-快速入门-创建主机-亚马逊aws
- 【快速入门】2.100-快速入门-官方网站学习资料
- 【快速入门】2.101-快速入门-Terraform主要的文件.
- 【快速入门】2.102-快速入门-创建虚拟网络
- 【快速入门】1.103-快速入门-创建安全和规则
- 【快速入门】2.104-快速入门-创建云盘
- 【快速入门】2.105-快速入门-创建Ecs主机服务
- 【快速入门】2.200-快速入门-搭建Nginx
- 【快速入门】2.201-快速入门-搭建Nginx-分拆main文件
- 【快速入门】2.203-快速入门-购买固定IP并绑定到主机
- 【快速入门】2.204-快速入门-绑定域名到自己的主页
- 【快速入门】2.205-快速入门-申请免费的https证书并绑定TODO
- 【快速入门】2.300-快速入门-创建Oss存储并搭建静态网站
- 【快速入门】2.300-快速入门-Cdn-TODO
- 【中级进阶】3.101-中级进阶-用Packer创建Wordpress的主机镜像
- 【中级进阶】3.102-中级进阶-利用自己的镜像创建Ecs主机
- 【中级进阶】3.104-中级进阶-用自己镜像搭建负载均衡的Wordpress网站
- 【中级进阶】3.105-中级进阶-利用弹性伸缩ESS创建SLB对应的动态数量的ECS服务器
- 【中级进阶】3.106-中级进阶-自定义Module搭建多个负载均衡的Wordpress网站
- 【中级进阶】3.200-中级进阶-备份多个Wordpress服务器的日志到ossTODO
- 【中级进阶】3.300-中级进阶-创建Ecs快照服务
- 【中级进阶】3.400-中级进阶-Datasource查询
- 【中级进阶】3.500-中级进阶-保存Terraform的state文件
- 【中级进阶】3.600-中级进阶-Variables and environment variables
- 【中级进阶】3.700-中级进阶-Terraform命令解析
- 【高级深入】4.000-高级深入-创建容器镜像服务
- 【高级深入】4.001-高级深入-编译自己的docker镜像并上传到Aliyun cr
- 【高级深入】4.002-高级深入-Terraform创建Kubernetes集群
- 【高级深入】4.003-高级深入-Terraform在Kubernetes集群中部署Wordpress应用
- 【高级深入】4.100-高级深入-使用云服务平台提供的module来创建服务资源
- 【高级深入】4.200-高级深入-同步Terraform的状态.到terraform cloud
- 【高级深入】4.300-高级深入-Terraform的语法
- 【高级深入】4.400-高级深入-Terraform与其Ansible一起使用
- 【高级深入】4.500-高级深入-Terraform的provisioner
- 【高级深入】4.600-高级深入-Snat
- 【高级深入】4.601-高级深入-Dnat
- 4.602-高级深入-Vpc-vpc通信
- 【高级深入】4.603-高级深入-Switch与switch-通信