You need to enable JavaScript to run this app.
Pulumi

Pulumi

复制全文
快速入门
使用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
这个页面对您有帮助吗?
有用
有用
无用
无用