You need to enable JavaScript to run this app.
文档中心
复制全文
快速入门
使用Pulumi快速创建火山引擎ECS服务器
复制全文
使用Pulumi快速创建火山引擎ECS服务器

操作场景

本文指导您如何使用 Go 语言和 Pulumi 管理火山引擎的基础设施。更多信息和示例请参考 Pulumi Go SDK 文档Volcengine Pulumi SDK

操作步骤

  1. 创建一个新的项目文件夹并进入该目录,然后使用 Pulumi 初始化一个新项目。

    mkdir my-volcengine-project
    cd my-volcengine-project
    // 以Go语言为例
    pulumi new go
    

  2. 在项目中,执行以下命令安装 Volcengine 的 Pulumi SDK。

    go get github.com/volcengine/pulumi-volcengine/sdk/go
    
  3. 编写 代码创建火山引擎ECS。

    package main
    
    import (
            "github.com/pulumi/pulumi/sdk/v3/go/pulumi"
            "github.com/volcengine/pulumi-volcengine/sdk/go/volcengine/ecs"
            "github.com/volcengine/pulumi-volcengine/sdk/go/volcengine/vpc"
    )
    
    func main() {
            pulumi.Run(func(ctx *pulumi.Context) error {
                    fooZones, err := ecs.Zones(ctx, nil, nil)
                    if err != nil {
                            return err
                    }
                    fooVpc, err := vpc.NewVpc(ctx, "fooVpc", &vpc.VpcArgs{
                            VpcName:   pulumi.String("acc-test-vpc"),
                            CidrBlock: pulumi.String("172.16.0.0/16"),
                    })
                    if err != nil {
                            return err
                    }
                    fooSubnet, err := vpc.NewSubnet(ctx, "fooSubnet", &vpc.SubnetArgs{
                            SubnetName: pulumi.String("acc-test-subnet"),
                            CidrBlock:  pulumi.String("172.16.0.0/24"),
                            ZoneId:     pulumi.String(fooZones.Zones[0].Id),
                            VpcId:      fooVpc.ID(),
                    })
                    if err != nil {
                            return err
                    }
                    fooSecurityGroup, err := vpc.NewSecurityGroup(ctx, "fooSecurityGroup", &vpc.SecurityGroupArgs{
                            SecurityGroupName: pulumi.String("acc-test-security-group"),
                            VpcId:             fooVpc.ID(),
                    })
                    if err != nil {
                            return err
                    }
                    fooImages, err := ecs.Images(ctx, &ecs.ImagesArgs{
                            OsType:         pulumi.StringRef("Linux"),
                            Visibility:     pulumi.StringRef("public"),
                            InstanceTypeId: pulumi.StringRef("ecs.g2i.large"),
                    }, nil)
                    if err != nil {
                            return err
                    }
                    _, err = ecs.NewInstance(ctx, "fooInstance", &ecs.InstanceArgs{
                            InstanceName:       pulumi.String("acc-test-ecs"),
                            Description:        pulumi.String("acc-test"),
                            HostName:           pulumi.String("tf-acc-test"),
                            ImageId:            pulumi.String(fooImages.Images[0].ImageId),
                            InstanceType:       pulumi.String("ecs.g2i.large"),
                            Password:           pulumi.String("93f0cb0614A****"),
                            InstanceChargeType: pulumi.String("PostPaid"),
                            SystemVolumeType:   pulumi.String("ESSD_PL0"),
                            SystemVolumeSize:   pulumi.Int(40),
                            DataVolumes: ecs.InstanceDataVolumeArray{
                                    &ecs.InstanceDataVolumeArgs{
                                            VolumeType:         pulumi.String("ESSD_PL0"),
                                            Size:               pulumi.Int(50),
                                            DeleteWithInstance: pulumi.Bool(true),
                                    },
                            },
                            SubnetId: fooSubnet.ID(),
                            SecurityGroupIds: pulumi.StringArray{
                                    fooSecurityGroup.ID(),
                            },
                            ProjectName: pulumi.String("default"),
                            Tags: ecs.InstanceTagArray{
                                    &ecs.InstanceTagArgs{
                                            Key:   pulumi.String("k1"),
                                            Value: pulumi.String("v1"),
                                    },
                            },
                    })
                    if err != nil {
                            return err
                    }
                    return nil
            })
    }
    
  4. 部署基础设施。

    1. 在终端中,执行以下命令部署您的基础设施。

      pulumi up
      
    2. 回显将要创建的资源,输入yes确认。

  5. 管理和更新基础设施。

    • 如需更新基础设施,请再次执行 pulumi up命令。
    • 如需销毁资源,请执行pulumi destroy命令。
  6. 查看状态和历史,即当前资源的状态和历史变更。

    pulumi stack
    pulumi stack history
    

最近更新时间:2024.08.09 11:31:06
这个页面对您有帮助吗?
有用
有用
无用
无用