• [技术干货] ECS实例如何通过Terraform自动创建并配置安全组规则?
    在使用Terraform管理华为云基础设施时,我想通过IaC方式自动创建ECS实例并同时配置安全组规则。具体场景:1. 创建一台ECS实例(s6.large.2规格)2. 创建安全组并添加入站规则(放通22端口用于SSH)3. 将安全组绑定到ECS实例请问使用huaweicloud provider时,resource块应该怎么写?有没有完整的示例代码参考?另外,安全组规则中source_cidr_ip字段如果设置为0.0.0.0/0会有安全风险吗?最佳实践是什么?
  • [低码编排] 基于HCS Terraform Provider发放ECS、VPC等资源,搭建Web服务
    背景Web开发是使用云资源的一种典型场景。搭建Web服务通常需要ECS、EVS、VPC、EIP等多类资源,通过Terraform脚本和Module,简化资源申请流程,提升Web服务搭建效率。架构如图是一个简单的Web服务架构,需要使用以下资源:ECS * 2EVS * 3VPC * 1Subnet * 1ELB * 1EIP * 1Terraform模板data "hcs_availability_zones" "azs" { } resource "hcs_vpc" "vpc" { name = "vpc-tf" cidr = "12.12.12.0/24" } resource "hcs_vpc_subnet" "subnet" { name = "subnet-tf" cidr = "12.12.12.0/24" gateway_ip = "12.12.12.1" vpc_id = resource.hcs_vpc.vpc.id } data "hcs_networking_secgroups" "secgroups" { name = "default" } data "hcs_ims_images" "centos" { name_regex = "<os>" visibility = "public" } resource "hcs_ecs_compute_instance" "ecs-1" { name = "ecs-1" image_id = data.hcs_ims_images.centos.images[0].id flavor_id = "<规格>" security_group_ids = [data.hcs_networking_secgroups.secgroups.security_groups[0].id] availability_zone = data.hcs_availability_zones.azs.names[0] network { uuid = resource.hcs_vpc_subnet.subnet.id source_dest_check = false } system_disk_type = "SSD" system_disk_size = 50 data_disks { type = "SSD" size = 20 } delete_disks_on_termination = true delete_eip_on_termination = true } resource "hcs_ecs_compute_instance" "ecs-2" { name = "ecs-2" image_id = data.hcs_ims_images.centos.images[0].id flavor_id = "<规格>" security_group_ids = [data.hcs_networking_secgroups.secgroups.security_groups[0].id] availability_zone = data.hcs_availability_zones.azs.names[0] network { uuid = resource.hcs_vpc_subnet.subnet.id source_dest_check = false } system_disk_type = "SSD" system_disk_size = 50 delete_disks_on_termination = true delete_eip_on_termination = true }
  • [低码编排] HCS Terraform Provider使用指南
    1. 下载及配置从Github仓库下载对应版本的Provider二进制文件:https://github.com/huaweicloud/terraform-provider-hcs/releases将HCS provider可执行解压至如下目录:Linux:~/.terraform.d/plugins/<local-registry>/<organization>/hcs/<version>/<os_arch> Windows:%APPDATA%\terraform.d\plugins\<local registry>\<organization>\hcs\<version>\<os_arch> 在工作目录创建main.tf文件,内容如下,修改 source和version与第2步匹配:terraform { required_providers { hcs = { source = "<local-registry>/<organization>/hcs" version = "<version>" } } } 在工作目录下执行terraform init命令回显如下则表明配置成功。Initializing the backend... Initializing provider plugins... Terraform has been successfully initialized! 2. 示例申请EVS,main.tfterraform { required_providers { hcs = { source = "huaweicloud/hcs" version = "2.4.11" } } } # Configure the Huawei Cloud Stack Provider provider "hcs" { region = "<region>" # region0_id project_name = "<project>" # 资源空间 cloud = "<domain_name>" # external_global_domain_name access_key = "<ak>" # ak secret_key = "<sk>" # sk insecure = true } resource "hcs_evs_volume" "volume_1" { availability_zone = "az" name = "volume_1" description = "first test volume" size = 1 }