登录百度云控制台
- 安全认证,Access Key,创建Access key
- 云服务器BCC, 密钥对,然后导入本地用户的公钥(~/.ssh/id_rsa.pub)
在环境变量中加入:
# baiducloud
export BAIDUCLOUD_ACCESS_KEY="xxxxx"
export BAIDUCLOUD_SECRET_KEY="xxxxx"
export BAIDUCLOUD_REGION="bj"
main.tf,将创建一个服务器实例
# Configure the BaiduCloud Provider
terraform {
required_providers {
baiducloud = {
source = "baidubce/baiducloud"
}
}
required_version = ">= 0.13"
}
data "baiducloud_images" "default" {
os_name = "ubuntu"
name_regex = "^20.04"
}
# Create a web server
resource "baiducloud_instance" "my-server" {
image_id = "m-hDf0Uqut"
name = "from-terraform"
availability_zone = "cn-bj-c"
cpu_count = "1"
memory_capacity_in_gb = "1"
keypair_id = "k-ZH88qrxH"
subnet_id = baiducloud_subnet.default.id
security_groups = baiducloud_security_group.default.*.id
billing = {
payment_timing = "Postpaid"
}
}
# Create an eip
resource "baiducloud_eip" "my-eip" {
name = "from-terraform"
bandwidth_in_mbps = 100
payment_timing = "Postpaid"
billing_method = "ByTraffic"
}
resource "baiducloud_eip_association" "my-eip-asso" {
eip = baiducloud_eip.my-eip.eip
instance_type = "BCC"
instance_id = baiducloud_instance.my-server.id
}
resource "baiducloud_vpc" "default" {
name = "my_vpc"
cidr = "192.168.0.0/16"
}
resource "baiducloud_subnet" "default" {
name = "my_sub"
zone_name = "cn-bj-c"
cidr = "192.168.3.0/24"
vpc_id = baiducloud_vpc.default.id
}
# Create a security group
resource "baiducloud_security_group" "default" {
name = "my_sg"
vpc_id = baiducloud_vpc.default.id
}
resource "baiducloud_security_group_rule" "allow_all_tcp_in" {
security_group_id = baiducloud_security_group.default.id
remark = "remark"
direction = "ingress"
# port_range = "1-65523"
}
resource "baiducloud_security_group_rule" "allow_all_tcp_out" {
security_group_id = baiducloud_security_group.default.id
remark = "remark"
direction = "egress"
# port_range = "1-65523"
}
初始化,安装baiducloud provider等
terraform init
查看计划:
terraform plan
部署:
terraform apply
销毁:
terraform destroy
到目前为止,2021-6-24,百度云的相关文档不足,一些配置都是摸索或者参考其他provider完成的。