使用Terraform管理CFS最佳实践
更新时间:2022-12-01
概览
百度智能云文件存储(Cloud File System)通过对标准NFS协议的支持,兼容POSIX接口,为云上的虚机、容器资源提供了跨操作系统的文件存储及共享能力。同时,百度智能云CFS提供简单、易操作的对外接口,并支持按实际使用量计费(公测期间免费),免去部署、维护费用的同时,最大化提升您的业务效率。
在目前的CFS使用过程中,开发和运维人员需要登录百度智能云的控制台,在控制台的页面内进行操作,从文完成CFS的创建、变更和释放等过程。这种做法很容易因为人为因素导致部署和管理上的错误,而且,资源不能进行批量的创建和管理、变更等操作。
通过Terraform这种基础设施架构自动化编排工具,能够很好的解决上述问题,Terraform能够创建配置文件的模板,以可重复、可预测的方式定义和预配百度智能云上的资源,减少人为因素导致的部署和管理错误。能够多次部署同一模板,创建相同的开发、测试和生产环境。
需求场景
面向企业IT人员(提升云上资源的管理维护效率)
- 可以用代码来管理维护您的CFS资源。允许保存CFS的状态,从而使您能够跟踪对CFS的配置所做的更改,并与其他人共享这些配置。
- 您通过按需创建开发和部署环境来降低成本。并且,您可以在CFS配置更改之前进行评估。
- 大大降低企业在基础设施构建过程中的成本,同时也可以提高云基础设施开发人员在 IAC(基础设施即代码) 方面的技能,简化云上资源运维
配置前您需要了解
CFS产品有如下配额限制:
限制项 | 限额 |
---|---|
单用户可创建文件系统数 | 20个 |
单个文件系统容量 | 100PB |
单个文件系统文件数 | 10亿个 |
单个文件大小 | 1PB |
目录深度 | 1000级 |
软链接路径长度 | 4080字节 |
文件名长度 | 255字节 |
同时连接的客户端数量 | 数百个 |
配置步骤
环境准备
Terraform:目前百度智能云已与Terraform集成,您可通过Terraform来创建、管理CFS、VPC、BCC等多种百度智能云资源,具体请参考Terraform BaiduCloud Provider。
初始化Terraform
- 登录Terraform官网下载适用于您的操作系统的程序包。
- 配置terraform baidu provider信息,配置文件可参考如下的代码,在当前文件夹内保存为version.tf。
terraform {
required_providers {
baiducloud = {
source = "baidubce/baiducloud"
version = "1.18.0" #版本号 从1.18.0版本开始支持文件存储CFS
}
}
}
- 执行命令terraform init,Terraform会根据当前文件夹内的version.tf文件初始化工作空间。
-
编辑Terraform配置文件。新建文件main.tf,在文件中指定VPC、CFS、CFS挂载点等元信息。请参考后续步骤中的配置示例。
更多CFS参数信息可参考baidu provider官方文档
CFS创建配置示例
resource "baiducloud_vpc" "vpc" {
name = "terraform_vpc"
cidr = "172.16.0.0/16"
}
resource "baiducloud_subnet" "subnet" {
name = "terraform_subnet-c"
zone_name = "cn-bj-c"
cidr = "172.16.128.0/24"
vpc_id = baiducloud_vpc.vpc.id
description = "terraform test subnet"
}
resource "baiducloud_cfs" "default" {
# CFS名称
name = "terraform_test"
# 可用区
zone = "zoneD"
# 协议类型 默认为nfs
protocol = "nfs"
# 存储类型 默认为cap
type = "cap"
}
挂载点创建配置示例
resource "baiducloud_cfs_mount_target" "mount1" {
fs_id = baiducloud_cfs.default.id
subnet_id = baiducloud_subnet.subnet.id
vpc_id = baiducloud_vpc.vpc.id
}
应用配置
- 执行如下命令,可查看资源变更计划
$ terraform plan
- 执行如下命令,可应用资源变更计划,完成资源的创建或更新,如图所示
$ terraform apply
CFS管理
更改CFS名称
如要对CFS进行名称的修改,只需要修改name字段的值,然后执行步骤7即可
查询CFS信息
data "baiducloud_cfss" "default" {
# 可通过filter进行过滤 如下为过滤fs_id=fsxxxx的CFS
filter{
name = "fs_id"
values = ["fsxxxx"]
}
}
资源删除
- 若需要删除挂载点,只需要删除baiducloud_cfs_mount_target这一资源即可,可通过如下命令
# 通过-target指定资源进行删除
terraform destroy -target baiducloud_cfs_mount_target.mount1
注意:再删除挂载点之前要先进行卸载操作
- 若要删除CFS,只需删除baiducloud_cfs这一资源即可,可通过如下命令
# 通过-target指定资源进行删除
terraform destroy -target baiducloud_cfs.default
- 可通过如下命令释放当前main.tf中的所有资源
terraform destroy
测试验证
- 在百度智能云控制台的产品界面查看对应的资源是否都创建成功。
- 在完成了上述步骤的配置之后,可按照这篇文档中的步骤去使用CFS,查看是否能够正确工作。 文档链接