01-正文
本章节下载 (463.28 KB)
目 录
Terraform是一个开源的IT基础设施编排管理工具,通过扩展Terraform的Provider可以对接控制组件,轻松地创建、修改、删除、获取Tenant、Network、Subnet等多种资源。
Terraform插件支持编排的资源如下:
· Network:提供向控制组件创建、修改、删除、查询虚拟链路层网络的功能。
· Port:提供向控制组件创建、修改、删除、查询虚拟端口的功能。
· QoS:提供向控制组件创建、修改、删除、查询网络策略的功能。
· Router:提供向控制组件创建、修改、删除、查询虚拟路由器的功能。
· Router interface:提供向控制组件添加、删除路由子网接口的功能。
· Security group:提供向控制组件创建、修改、删除、查询安全组的功能。
· Security group rules:提供向控制组件创建、修改、删除、查询安全组规则的功能。
· Subnet:提供向控制组件创建、修改、删除、查询虚拟子网的功能。
· Tenant:提供向控制组件创建、修改、删除、查询租户的功能。
Terraform插件所需的服务器或虚拟机的硬件配置需求如表2-1所示。
|
CPU内核 |
内存 |
所需磁盘空间 |
|
1核及以上 |
2GB及以上 |
5GB及以上 |
Terraform插件基于以下环境运行。
表2-2 软件配置需求
|
软件环境 |
版本 |
|
操作系统 |
CentOS 7、CentOS 8 |
|
Terraform |
1.1.x+ |
|
Golang |
1.19.x |
安装插件前,需要先安装基础环境,步骤如下:
(1) Terraform是以二进制可执行文件发布,可选择自动安装或者手动安装。
¡ (推荐)自动安装
[root@localhost ~]# yum install -y yum-utils
[root@localhost ~]# yum-config-manager --add-repo https://rpm.releases.hashicorp.com/RHEL/hashicorp.repo
[root@localhost ~]# yum -y install terraform
¡ 手动安装
前往Terraform官网下载对应操作系统的可执行文件(Terraform是用go编写的,只有一个可执行文件),解压缩到指定的位置后,将Terraform可执行文件所在目录添加到系统环境变量PATH中即可。
[root@localhost terraform]# ll
总用量 56652
-rwxrwxrwx. 1 root root 58011648 10月 27 15:48 terraform
[root@localhost terraform]# export PATH=/home/terraform/:$PATH
Terraform版本需在1.1.0及以上。
(2) 验证Terraform插件是否安装成功。若显示正确的软件版本号,则说明安装成功。
[root@localhost terraform]# terraform version
Terraform v1.1.9
on linux_386
获取所需版本的Terraform插件软件包,并将软件包拷贝至服务器或虚拟机上的待安装目录下,或通过FTP、TFTP、SCP等文件传输协议将软件包上传到指定目录。
使用FTP、TFTP方式上传时,请选择binary模式(二进制模式)传输,以免损坏软件包。
进入软件包(.zip文件)的存放路径(以路径/root为例),部署软件包。软件包的名称格式为SeerEngine_DC_TERRAFORM_PLUGIN-version.zip,其中version为软件包版本号。解压对应文件,并将文件拷贝到./h3c.com/sdn/tfplugin/1.0.0/linux_386/目录下(对应目录需预制,linux_386目录名称需与部署版本一致)。
[root@localhost linux_386]# ll
总用量 19572
-rwxrwxrwx. 1 root root 20039992 10月 27 16:10 terraform-provider-tfplugin
(1) /root目录下,手动生成.terraformrc文件,文件内容如下。
[root@localhost ~]# cat .terraformrc
provider_installation {
filesystem_mirror {
path = "/home/tf-test"
include = ["h3c.com/*/*"]
}
}
表3-1 .terraformrc文件参数说明
|
参数 |
说明 |
|
path |
h3c.com/sdn/tfplugin/1.0.0/linux_386/所在父目录 |
|
include |
path路径下Terraform插件的安装路径,内容固定 |
(2) /home/tf-test目录下,手动生成main.tf文件,配置Terraform对应provider,内容如下。
[root@localhost tf-test]# cat main.tf
terraform {
required_providers {
h3csdn = {
source = "h3c.com/sdn/tfplugin"
version = "=1.0.0"
}
}
required_version = ">= 1.1.0"
}
provider "h3csdn" {
url = "http://192.168.97.100:30000"
username = "admin"
password = "Pwd@12345"
domain = "sdn"
}
表3-2 main.tf文件参数说明
|
参数 |
说明 |
|
|
required_providers |
required_providers用于指定Provider的registry源和版本。在这里内容固定 |
|
|
provider |
Provider代表一个服务提供商,Terraform通过插件机制与Provider进行交互。Provider通过关键字“provider”进行声明 |
|
|
h3csdn |
url |
控制组件北向访问的URL |
|
username |
控制组件的登录用户名 |
|
|
password |
控制组件登录密码 |
|
|
domain |
对应用户所属域 |
|
(1) 进入.terraformrc配置文件中的path配置目录
[root@localhost ~]# cd /home/tf-test
(2) 删除.terraform.lock.hcl文件和.terraform目录
[root@localhost tf-test]# rm -f .terraform.lock.hcl
[root@localhost tf-test]# rm -rf .terraform
(3) 确认是否删除,使用ls –a查询path配置目录下文件是否删除,回显中不存在.terraform.lock.hcl文件和.terraform目录
[root@localhost tf-test]# ls -a
可通过卸载插件后重新安装来对Terraform插件进行升级。卸载插件请参见“0
卸载Terraform插件”。安装插件请参见“3.2 安装Terraform插件”。
以创建一个租户资源为例介绍如何使用Terraform。
(1) 修改main.tf文件,配置创建tenant,新增内容如下。
resource "h3csdn_tenant" "example" {
name = "tenant"
vds_list = ["ffffffff-0000-0000-0000-000000000001"]
}
描述一个名为example的租户资源,其中租户名称为tenant,租户所属分布式交换机列表为"ffffffff-0000-0000-0000-000000000001"。
(2) 执行如下命令初始化。
terraform init
回显结果如下,首次执行时会部署Terraform插件。
[root@localhost tf-test]# terraform init
Initializing the backend...
Initializing provider plugins...
- Reusing previous version of h3csdn/tfplugin from the dependency lock file
- Using previously-installed h3csdn/tfplugin v1.0.0
Terraform has been successfully initialized!
You may now begin working with Terraform. Try running "terraform plan" to see
any changes that are required for your infrastructure. All Terraform commands
should now work.
If you ever set or change modules or backend configuration for Terraform,
rerun this command to reinitialize your working directory. If you forget, other
commands will detect it and remind you to do so if necessary.
(3) 执行如下命令查看需要创建的资源。
terraform plan
回显如下,Terraform会显示要创建哪些资源。
[root@localhost tf-test]# terraform plan
Terraform used the selected providers to generate the following execution plan. Resource actions are indicated with the following symbols:
+ create
Terraform will perform the following actions:
# h3csdn_tenant.example will be created
+ resource "h3csdn_tenant" "example" {
+ id = (known after apply)
+ name = "tenant"
+ vds_list = [
+ "ffffffff-0000-0000-0000-000000000001",
]
}
Plan: 1 to add, 0 to change, 0 to destroy.
────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
Note: You didn't use the -out option to save this plan, so Terraform can't guarantee to take exactly these actions if you run "terraform
apply" now.
(4) 执行如下命令创建资源。
terraform apply
根据提示输入“yes”,回显如下,可以看到名为tenant的租户已经创建,也可以在控制组件上查看资源是否已经创建。
[root@localhost tf-test]# terraform apply
Terraform used the selected providers to generate the following execution plan. Resource actions are indicated with the following symbols:
+ create
Terraform will perform the following actions:
# h3csdn_tenant.example will be created
+ resource "h3csdn_tenant" "example" {
+ id = (known after apply)
+ name = "tenant"
+ vds_list = [
+ "ffffffff-0000-0000-0000-000000000001",
]
}
Plan: 1 to add, 0 to change, 0 to destroy.
Do you want to perform these actions?
Terraform will perform the actions described above.
Only 'yes' will be accepted to approve.
Enter a value: yes
h3csdn_tenant.example: Creating...
h3csdn_tenant.example: Creation complete after 1s [id=e4fcf721-5762-4f41-93b1-10e2259498ca]
Apply complete! Resources: 1 added, 0 changed, 0 destroyed.
(5) 执行如下命令删除资源。
terraform destroy
根据提示输入“yes”,回显如下,可以看到名为tenant的租户被删除,也可以在控制组件上查看资源是否已经删除。
[root@localhost tf-test]# terraform destroy
h3csdn_tenant.example: Refreshing state... [id=e4fcf721-5762-4f41-93b1-10e2259498ca]
Terraform used the selected providers to generate the following execution plan. Resource actions are indicated with the following symbols:
- destroy
Terraform will perform the following actions:
# h3csdn_tenant.example will be destroyed
- resource "h3csdn_tenant" "example" {
- id = "e4fcf721-5762-4f41-93b1-10e2259498ca" -> null
- name = "tenant" -> null
- vds_list = [
- "ffffffff-0000-0000-0000-000000000001",
] -> null
}
Plan: 0 to add, 0 to change, 1 to destroy.
Do you really want to destroy all resources?
Terraform will destroy all your managed infrastructure, as shown above.
There is no undo. Only 'yes' will be accepted to confirm.
Enter a value: yes
h3csdn_tenant.example: Destroying... [id=e4fcf721-5762-4f41-93b1-10e2259498ca]
h3csdn_tenant.example: Destruction complete after 1s
Destroy complete! Resources: 1 destroyed.
(1) 修改main.tf文件,配置查询所有tenant,新增内容如下。
data "h3csdn_tenants" "all" {}
output "h3csdn_tenants" {
value = data.h3csdn_tenants.all
}
(2) 运行terraform plan查看资源。
(3) 确定资源无误后,运行terraform apply查看所有租户资源。
(1) 修改main.tf文件,配置创建或修改tenant,新增内容如下。
resource "h3csdn_tenant" "tf" {
name = "tf"
vds_list = ["ffffffff-0000-0000-0000-000000000001"]
}
(2) 运行terraform plan查看资源。
(3) 确定资源无误后,运行terraform apply开始创建/修改。
(4) 运行terraform show查看已创建/修改的资源。
(1) 在创建或修改tenant的基础上,配置删除tenant。
(2) 运行terraform destroy开始删除。
· name:租户名称,字符串类型,必填字段。
· vds_list:虚拟分布式交换机列表,列表类型,非必填字段。
· 必填字段,表示资源中必需填写此字段和值。
· 非必填字段,表示资源中可不填写此字段,如果此字段在控制组件中存在默认值会以控制组件的默认值处理。
(1) 修改main.tf文件,配置查询所有network,新增内容如下。
data "h3csdn_networks" "nets" {}
output "h3csdn_networks" {
value = data.h3csdn_networks.nets
}
(2) 运行terraform plan查看资源。
(3) 确定资源无误后,运行terraform apply查看所有虚拟链路层网络资源。
(1) 修改main.tf文件,配置创建或修改network,新增内容如下。
resource "h3csdn_network" "net" {
name = "net"
shared = false
admin_state_up = true
external = false
mtu = 1500
tenant_id = "60453b88-b5ce-497b-b173-adc822887a76"
}
(2) 运行terraform plan查看资源。
(3) 确定资源无误后,运行terraform apply开始创建/修改。
(4) 运行terraform show查看已创建/修改的资源。
(1) 在创建或修改network的基础上,配置删除network。
(2) 运行terraform destroy开始删除。
· name:虚拟链路层网络名称,字符串类型,非必填字段。
· shared:网络是否共享,取值true或false,布尔类型,非必填字段。
· admin_state_up:管理状态,取值true或false,布尔类型,非必填字段。
· external:是否为外网,取值true或false,布尔类型,非必填字段。
· mtu:网络MTU值,整数类型,非必填字段。
· tenant_id:网络所属租户名称,字符串类型,必填字段。
· provider_physical_network:物理接口名称,字符串类型,非必填字段。
· provider_network_type:网络类型,取值为vlan、vxlan或flat,字符串类型,非必填字段。
· provider_segmentation_id:网络Segment ID,整数类型,非必填字段。
· 必填字段,表示资源中必需填写此字段和值。
· 非必填字段,表示资源中可不填写此字段,如果此字段在控制组件中存在默认值会以控制组件的默认值处理。
(1) 修改main.tf文件,配置查询所有subnet,新增内容如下。
data "h3csdn_subnets" "sbs"{}
output "h3csdn_subnets" {
value = data.h3csdn_subnets.sbs
}
(2) 运行terraform plan查看资源。
(3) 确定资源无误后,运行terraform apply查看所有子网资源。
(1) 修改main.tf文件,配置创建或修改subnet,新增内容如下。
resource "h3csdn_subnet" "sn"{
name = "subnet1"
network_id = "343c92b2-f4fc-4cf7-a834-6e8759919067"
cidr = "123.123.123.0/24"
ip_version = 4
tenant_id = "60453b88-b5ce-497b-b173-adc822887a76"
lease_time = 365
allocation_pools = [
{
start = "123.123.123.3"
end = "123.123.123.254"
}
]
}
(2) 运行terraform plan查看资源。
(3) 确定资源无误后,运行terraform apply开始创建/修改。
(4) 运行terraform show查看已创建/修改的资源。
(1) 在创建或修改subnet的基础上,删除subnet。
(2) 运行terraform destroy开始删除。
· name:虚拟子网名称,字符串类型,必填字段。
· network_id:子网所属网络ID,字符串类型,必填字段。
· network_name:子网所属网络名称,字符串类型,非必填字段。
· cidr:网络地址,IPv4格式为IP地址/掩码长度,IPv6格式为IP地址/前缀长度,字符串类型,必填字段。
· ip_version:IP版本,取值4或6,整数类型,必填字段。
· tenant_id:子网所属租户名称,字符串类型,必填字段。
· gateway_ip:网关IP地址,字符串类型,非必填字段。
· enable_dhcp:子网DHCP开关,取值true或者false,布尔类型,非必填字段。
· dns_nameservers:DNS服务器列表,列表类型,非必填字段。
· lease_time:DHCP租用时间,单位为天,仅IPv4支持,整数类型,必填字段。
· allocation_pools:子网地址池,列表类型,必填字段。
· start:子网地址池开始的IP地址,字符串类型,当allocation_pools有值时为必填字段。
· end:子网地址池结束的IP地址,字符串类型,当allocation_pools有值时为必填字段。
· ipv6_address_mode:IPv6地址模式,字符串类型,取值为slaac、dhcpv6-stateful或dhcpv6-stateless,非必填字段。
· ipv6_ra_mode:IPv6 RA模式,取值为slaac、dhcpv6-stateful或dhcpv6-stateless,字符串类型,非必填字段。
· 必填字段,表示资源中必需填写此字段和值。
· 非必填字段,表示资源中可不填写此字段,如果此字段在控制组件中存在默认值会以控制组件的默认值处理。
· 涉及IPv6的IP地址或CIDR,必须为全大写缩略格式,例如bd:06D::/64应为BD:6D::/64。
(1) 修改main.tf文件,配置查询所有router,新增内容如下。
data "h3csdn_routers" "routers" {}
output "h3csdn_routers" {
value = data.h3csdn_routers.routers
}
(2) 运行terraform plan查看资源。
(3) 确定资源无误后,运行terraform apply查看所有虚拟路由器资源。
(1) 修改main.tf文件,配置创建或修改router,新增内容如下。
resource "h3csdn_router" "rt" {
name = "router_test"
admin_state_up = true
tenant_id = "60453b88-b5ce-497b-b173-adc822887a76"
external_gateway = [
{
network_id = "d1ee4e87-ceda-4512-9f5b-c14cd4a8c0e7"
}
]
provider_segmentation_id = 2020
}
(2) 运行terraform plan查看资源。
(3) 确定资源无误后,运行terraform apply开始创建/修改。
(4) 运行terraform show查看已创建/修改的资源。
(1) 在创建或修改router的基础上,删除router。
(2) 运行terraform destroy开始删除。
· name:虚拟路由器名称,字符串类型,必填字段。
· admin_state_up:管理状态,取值为true或false,布尔类型,必填字段。
· tenant_id:虚拟路由器所属租户ID,字符串类型,必填字段。
· external_gateway:外部网关信息,值为空时置为[],必填字段。
· network_id:虚拟路由器连接的外部网络信息,字符串类型,非必填字段。
· provider_segmentation_id:三层VXLAN ID,取值1~16777215的整数,必填字段。
· 必填字段,表示资源中必需填写此字段和值。
· 非必填字段,表示资源中可不填写此字段,如果此字段在控制组件中存在默认值会以控制组件的默认值处理。
(1) 修改main.tf文件,配置查询所有router interface,新增内容如下。
data "h3csdn_routerinterfaces" "faces" {}
output "h3csdn_routerinterfaces" {
value = data.h3csdn_routerinterfaces.faces
}
(2) 运行terraform plan查看资源。
(3) 确定资源无误后,运行terraform apply查看所有虚拟端口资源。
(1) 修改main.tf文件,配置创建router interface,新增内容如下。
resource "h3csdn_routerinterface" "bind"{
router_id = "bb8bb40d-7c1f-4f34-9c26-40f021a00f3e"
subnet_id = "cb693ee6-bac5-4f0b-a517-f8566c831954"
}
(2) 运行terraform plan查看资源。
(3) 确定资源无误后,运行terraform apply开始创建/修改。
(4) 运行terraform show查看已创建/修改的资源。
(1) 在创建router interface的基础上,删除router interface。
(2) 运行terraform destroy开始删除。
· router_id:虚拟路由器ID,字符串类型,必填字段。
· subnet_id:子网ID,字符串类型,必填字段。
· 必填字段,表示资源中必需填写此字段和值。
· 非必填字段,表示资源中可不填写此字段,如果此字段在控制组件中存在默认值会以控制组件的默认值处理。
(1) 修改main.tf文件,配置查询所有qos,新增内容如下。
data "h3csdn_qoses" "qoses" {}
output "h3csdn_qoses" {
value = data.h3csdn_qoses.qoses
}
(2) 运行terraform plan查看资源。
(3) 确定资源无误后,运行terraform apply查看所有虚拟端口资源。
(1) 修改main.tf文件,配置创建或修改qos,新增内容如下。
resource "h3csdn_qos" "qos" {
name = "qos_test"
policies = {
dscp = "59",
rate_unit: "Kbps",
rx_averatelimit = 0,
rx_brustsize = 333,
tx_averatelimit = 23330,
tx_brustsize = 0
}
}
(2) 运行terraform plan查看资源。
(3) 确定资源无误后,运行terraform apply开始创建/修改。
(4) 运行terraform show查看已创建/修改的资源。
(1) 在创建或修改qos的基础上,配置删除qos。
(2) 运行terraform destroy开始删除。
· name:QoS名称,字符串类型,必填字段。
· policies:QoS策略,字典类型,字典内容可参考示例,必填字段。
· dscp:字符串类型,非必填字段。
· rate_unit:速率单位,字符串类型,取值为Kbps或Mbps,非必填字段。
· rx_averatelimit:平均接收速率,整数类型,非必填字段。
· rx_brustsize:接收流量突发尺寸,整数类型,非必填字段。
· tx_averatelimit:平均发送速率,整数类型,非必填字段。
· tx_brustsize:发送流量突发尺寸,整数类型,非必填字段。
· 必填字段,表示资源中必需填写此字段和值。
· 非必填字段,表示资源中可不填写此字段,如果此字段在控制组件中存在默认值会以控制组件的默认值处理。
(1) 修改main.tf文件,配置查询所有port,新增内容如下。
data "h3csdn_ports" "ports" {}
output "h3csdn_ports" {
value = data.h3csdn_ports.ports
}
(2) 运行terraform plan查看资源。
(3) 确定资源无误后,运行terraform apply查看所有虚拟端口资源。
(1) 修改main.tf文件,配置创建或修改port,新增内容如下。
resource "h3csdn_port" "port1" {
name = "port_test"
network_id = "59ae5453-d7be-40f4-8aaf-535184a8e783"
mac_address = "fa:16:3e:bc:2d:51"
fixed_ips = [
{
subnet_id = "1fa1a32d-bee1-420e-b7f2-60127cebd403",
ip_address = "10.0.0.44"
},
{
subnet_id = "aa7f29e6-0e77-4417-b1f4-0de2ac8ae293",
ip_address = "24::32"
},
]
port_security_enabled = true
port_securities = [
{
port_security = "d1ee4e87-ceda-4512-9f5b-c14cd4a8c0e7",
}
]
qos = "b8ec06c3-941c-4956-a91c-0571117e9a25"
}
(2) 运行terraform plan查看资源。
(3) 确定资源无误后,运行terraform apply开始创建/修改。
(4) 运行terraform show查看已创建/修改的资源。
(1) 在创建或修改port的基础上,配置删除port。
(2) 运行terraform destroy开始删除。
· name:虚拟端口名称,字符串类型,非必填字段。
· network_id:虚拟端口所属网络ID,字符串类型,必填字段。
· mac_address:虚拟端口MAC地址,以fa:16:3e:bc:2d:51格式为例,字符串类型,非必填字段。
· port_securities:安全策略列表,值为空时置为[],列表类型,必填字段。
· port_security:安全组ID,字符串类型,当port_securities非空时必填。
· fixed_ips:虚拟端口IP地址,列表类型,必填字段。
· subnet_id:虚拟端口IP的子网,字符串类型,当fixed_ips非空时必填。
· ip_address:虚拟端口IP,字符串类型,当fixed_ips非空时必填。
· qos:虚拟端口绑定的QoS ID,字符串类型,非必填字段。
· port_security_enabled:端口安全开关,取值true或者false,布尔类型,非必填字段。
· 必填字段,表示资源中必需填写此字段和值。
· 非必填字段,表示资源中可不填写此字段,如果此字段在控制组件中存在默认值会以控制组件的默认值处理。
· 涉及IPv6的IP地址或CIDR,必须为全大写缩略格式,例如bd:06D::/64应为BD:6D::/64。
(1) 修改main.tf文件,配置查询所有security group,新增内容如下。
data "h3csdn_securitygroups" "sgs" {}
output "h3csdn_securitygroups" {
value = data.h3csdn_securitygroups.sgs
}
(2) 运行terraform plan查看资源。
(3) 确定资源无误后,运行terraform apply查看所有安全组。
(1) 修改main.tf文件,配置创建或修改security group,新增内容如下。
resource "h3csdn_securitygroup" "sg_instance" {
name = "sg1"
tenant_id = "a85d80eb-e5a0-4de6-b75b-4f48329ae262"
empty_rule_action = "deny"
ip_mac_binding = true
}
(2) 运行terraform plan查看资源。
(3) 确定资源无误后,运行terraform apply开始创建/修改。
(4) 运行terraform show查看已创建/修改的资源。
(1) 在创建或修改安全组的基础上,删除安全组。
(2) 运行terraform destroy开始删除。
· name:安全组名称,字符串类型,必填字段。
· tenant_id:虚拟路由器所属租户ID,字符串类型,必填字段。
· empty_rule_action:空规则行为,取值为permit或deny,字符串类型,必填字段。
· ip_mac_binding:IP-MAC防欺骗,取值true或者false,布尔类型,必填字段。
· 必填字段,表示资源中必需填写此字段和值。
· 非必填字段,表示资源中可不填写此字段,如果此字段在控制组件中存在默认值会以控制组件的默认值处理。
(1) 修改main.tf文件,配置查询所有Security rule,新增内容如下。
data "h3csdn_securityrules" "sr" {}
output "h3csdn_securityrules" {
value = data.h3csdn_securityrules.sr
}
(2) 运行terraform plan查看资源。
(3) 确定资源无误后,运行terraform apply查看所有安全组规则。
(1) 修改main.tf文件,配置创建或修改Security rule,新增内容如下。
resource "h3csdn_securityrule" "rule_instance" {
name = "rule"
portsecurity_id = "d638cc9f-19d4-48ef-bd25-6682965f0564"
remote_portsecurity_id = "d638cc9f-19d4-48ef-bd25-6682965f0564"
ip_version = "4"
direction = "ingress"
protocol = "udp"
tenant_id = "60453b88-b5ce-497b-b173-adc822887a76"
}
(2) 运行terraform plan查看资源。
(3) 确定资源无误后,运行terraform apply开始创建/修改。
(4) 运行terraform show查看已创建/修改的资源。
(1) 在创建或修改Security rule的基础上,删除Security rule。
(2) 运行terraform destroy开始删除。
· name:安全组规则名称,字符串类型,必填字段。
· portsecurity_id:安全策略ID,字符串类型,必填字段。
· remote_portsecurity_id:远端安全策略ID,字符串类型,非必填。
· ip_version:IP版本,字符串类型,非必填。
· ipprefix:IP前缀,字符串类型,非必填。
· direction:安全组规则生效方向,字符串类型,取值为ingress或egress,必填字段。
· protocol:协议类型,字符串类型,取值为tcp、udp或icmp,非必填字段。
· tenant_id:安全组规则所属租户ID,字符串类型,必填字段。
· portrange_max:端口号范围上限,整数类型,非必填。
· portrange_min:端口号范围下限,整数类型,非必填。
· icmp_type:ICMP协议类型,整数类型,非必填。
· icmp_code:ICMP协议代码,整数类型,非必填。
· 必填字段,表示资源中必需填写此字段和值。
· 非必填字段,表示资源中可不填写此字段,如果此字段在控制组件中存在默认值会以控制组件的默认值处理。
Terraform每次执行命令前,均会在控制组件上查找相应的资源并更新Terraform state文件中的值。当查找的资源不存在时,会报错。此时需要手动在Terraform state文件上删除此资源。
不同款型规格的资料略有差异, 详细信息请向具体销售和400咨询。H3C保留在没有任何通知或提示的情况下对资料内容进行修改的权利!
