IBM Cloud Docs
创建虚拟服务器实例

创建虚拟服务器实例

您可以使用 IBM Cloud 控制台,CLI,API 或 Terraform 在 IBM Cloud VPC 中创建一个或多个虚拟服务器实例。

创建虚拟服务器时,可指定诸如虚拟服务器的位置和名称之类的信息。 您可以指定操作系统映像,用于定义 vCPU 和 RAM 的组合的概要文件以及用于安全连接到虚拟服务器的 SSH 密钥。 除启动卷外,还可添加数据卷。 您还可以指定为虚拟服务器创建的网络接口的类型。 最后,您可以从虚拟服务器配置的高级选项中进行选择。

使用 UI 创建虚拟服务器实例

使用以下步骤来创建虚拟服务器实例。

  1. IBM Cloud 控制台,单击 导航菜单 图标 菜单图标 > 基础设施 VPC 图标 > 计算 > 虚拟服务器实例

  2. 点击“创建”, 在表1中输入信息。

    选择开始实例调配
    字段
    地区 位置由区域(特定地理区域)和区域(区域内的容错数据中心)组成。 选择要创建虚拟服务器实例的位置。
    名称 虚拟服务器实例的名称是必需的。
    资源组 为实例选择资源组。
    标记 您可以将用户标记分配给实例,以便可以轻松地过滤资源列表中的实例资源。 有关更多信息,请参阅使用标记
    访问权管理标记 访问权管理标记有助于在特定资源上应用灵活的访问策略。 有关更多信息,请参阅 使用标记控制对资源的访问 UI 教程。
  3. 选择实例的映像和概要文件。 要从所有可用映像中进行选择,请单击 更改映像。 您可以选择映像,引导卷的快照或现有引导卷。 如果您配置实例的地理位置支持,您可以选择x86或者s390x建筑学。 表 2 描述了映像,快照和现有卷选项。 然后,选择概要文件。 要从所有可用的 vCPU 和 RAM 组合中进行选择,请单击 更改概要文件。 表 3 描述了概要文件选择。

    选择实例配置映像、快照或卷
    字段
    库存映像

    从可用库存映像中进行选择,然后单击 保存
    -有关可用库存映像的更多信息,请参阅 x86 虚拟服务器映像s390x 虚拟服务器映像。 所有操作系统映像都使用 cloud-init,您可以使用 cloud-init 来输入与供应后脚本的实例相关联的用户元数据。 元数据不支持 IBM Cloud® Hyper Protect Virtual Server 的 IBM Cloud® Virtual Private Cloud 实例和 z/OS 虚拟服务器实例。

    定制映像

    从可用定制图像中进行选择,然后单击 保存。 如果没有可用的定制映像,请单击 创建
    -定制映像可以是您定制并上载到 IBM Cloud Object Storage的映像,然后可以将其导入到 IBM Cloud VPC。 有关自定义映像的更多信息,请参阅 开始使用自定义映像.

    • 您也可以使用从启动卷创建的自定义映像。 有关从卷创建映像的更多信息,请参阅 About creating an image from a volume.
    • 您还可以选择 RHEL 或 Windows 自定义映像,并自带许可证 (BYOL)。 有关创建 BYOL 自定义图像的更多信息,请参阅 自带许可证
    目录映像

    选择可用商品目录映像后,单击 选择版本和定价计划,选择版本和定价计划,然后单击 保存
    -商品目录映像是导入到专用商品目录中的定制映像。 有关目录图像的更多信息,请参阅私有目录中自定义映像的 VPC 注意事项
    注: 如果选择属于其他帐户的目录映像,那么需要查看更多注意事项和限制。 看在 UI 中的私有目录中使用跨账户图像引用

    快照

    选择 导入现有快照按 CRN 导入快照更新然后,选择启动卷的快照,并单击 保存。 如果没有可用的快照,请单击 创建.

    • 筛选 快速恢复 的快照列表。 通过此选项,您可以使用在区域的不同区域中高速缓存的快照来快速创建引导卷。 有关从快照还原卷的更多信息,请参阅 Restoring a volume from a snapshot.
    • 如果您使用其他帐户快照的 CRN,请确保已获得正确的 IAM 授权
    现有卷 选择未连接到实例的现有引导卷,然后单击 保存
    表 3. 配置文件选择
    字段
    Profile 概要文件系列包括均衡,计算,内存,超高内存,甚高内存,GPU 和保密计算。 有关更多信息,请参阅 x86-64 实例概要文件。 为 IBM Cloud® Virtual Private Cloud 实例创建 IBM Cloud Hyper Protect Virtual Servers 时,请确保选择支持安全执行的概要文件,否则供应将失败。 有关更多信息,请参阅 s390x 实例概要文件

    某些概要文件可能不可用,因为虚拟服务器中的网络接口数超过了概要文件限制。 您可以除去网络接口以从更多概要文件中进行选择。 有关更多信息,请参阅 调整虚拟服务器的大小

    高级安全性选择
    安全引导 单击切换按钮即可启用安全启动。 安全启动仅适用于兼容的配置文件。 有关安全引导的更多信息,请参阅 Secure boot for Virtual Servers for VPC
    保密计算选择可用性 通过英特尔® 软件保护扩展(SGX)和英特尔可信域扩展(TDX)进行保密计算,利用称为加密飞地的隔离内存区域,通过基于硬件的服务器安全保护您的数据。 SGX和TDX仅适用于兼容配置文件。 有关机密计算的更多信息,请参阅 适用于 VPC 的 x86Virtual Servers for VPC的机密计算

    安全启动和保密计算可通过选定的平衡和计算配置文件实现。 有关更多信息,请参阅 SGX 兼容配置文件

  4. 通过指定表 4 中的信息,完成 SSH 密钥、存储和网络详细信息。

    选择完成实例调配
    字段
    SSH 密钥 您必须选择一个现有的 SSH 公钥,或点击创建 SSH 密钥来创建一个。 有关创建 SSH 密钥的更多信息,请参阅 使用 UI 创建 SSH 密钥。 在实例处于运行状态后,SSH 密钥用于安全地连接到实例。
    **注:**字母数字组合限制为 100 个字符。 SSH 密钥可以是 RSA 或 Ed25519 密钥。 只能创建 RSA SSH 密钥。 对于 ED25519 SSH 密钥,必须上传密钥信息。 仅当操作系统支持此密钥类型时,才能使用 Ed25519。 Ed25519 不能与 Windows 或 VMware 映像配合使用。
    有关更多信息,请参阅 SSH 密钥入门
    引导卷 大多数配置文件的默认启动卷大小为 100 GB。 默认启动卷大小z/OS虚拟服务器实例为 245 GB。 如果要导入定制映像,那么引导卷容量可以为 10 到 250 GB,具体取决于映像需要的容量。 小于 10 GB 的图像将四舍五入为 10 GB。单击編輯圖標編輯圖標 在侧面板中修改启动卷的属性。
    您可以通过指定唯一、有意义的名称来更改启动卷的名称。 例如,它可以是一个描述计算或工作负载功能的名称。 卷名称必须以小写字母开头。 名称最多可包含 63 个小写字母数字字符,并包含连字符 (-)。卷名称在整个 VPC 基础设施中必须是唯一的。 如果您愿意,可以稍后编辑该名称。
    您可以关闭启动卷的自动删除选项。 如果启用,则在删除实例时也会删除该卷。 如果禁用,则在删除实例后卷仍然存在。
    您可以指定可选的用户标签和访问管理标签来与此卷关联。 有关使用用户标签组织资源的更多信息,请参阅 使用标签
    您可以选择加密类型。 所有卷上都默认启用提供商管理的加密。 您还可以选择使用自己的根密钥创建信封加密。 加密密钥在密钥管理服务中创建和维护(Key Protect或者Hyper Protect Crypto Services )。
    您可以将启动卷的大小增加至最多 250 GB。
    数据卷 您可以创建一个或多个辅助数据卷,以便在配置实例时附加。 点击创造在数据卷部分打开侧面板,您可以在其中定义卷。
    指定一个唯一、有意义的名称。 与启动卷适用相同的规格。
    您可以切换数据卷的自动删除选项。 如果启用,则在删除实例时也会删除该卷。 如果禁用,则在删除实例后卷仍然存在。
    您可以指定可选的用户标签和访问管理标签来与此卷关联。 有关使用用户标签组织资源的更多信息,请参阅 使用标签
    您可以选择加密类型。 所有卷上都默认启用提供商管理的加密。 您也可以选择使用在密钥管理服务中创建和维护的自有根密钥创建信封加密。
    您可以选择 存储配置文件 最适合您的容量和 IOPS 需求。 有关详细信息,请参阅For more information, see 创建并附加Block Storage创建实例时的卷
    虚拟私有云 指定要在其中创建实例的 IBM Cloud VPC。 您可以使用默认 VPC、另一个现有 VPC 或创建一个 VPC。 要创建 VPC,请单击新建 VPC
    添加到群组网络 如果选择H100GPU 配置文件 gx3d-160x1792x8h100,则会看到“添加到群集网络”选项。 您可以将“添加到群集网络”设置为开,使虚拟服务器能够访问支持远程直接内存访问 (RDMA) 的高性能网络。 当添加到群集网络设置为开启且群集网络可用时,IBM Cloud控制台会包含用于为群集网络配置虚拟服务器的默认选择。 如果没有可用的群集网络,可以单击创建群集网络。 当选择集群网络时,虚拟私有云下拉菜单中仅显示配置了集群网络的VPC。 更多信息,请参阅 关于群集网络
    网络接口 缺省情况下,使用单个主网络接口创建虚拟服务器实例。 您可以单击 Edit 图标 Edit 图标 编辑网络接口的详细信息,例如与接口关联的子网或安全组。 要包括额外的辅助网络接口,请单击 创建。 您最多可以为虚拟服务器实例创建和分配 15 个网络接口,具体取决于实例配置文件中包含的 vCPU 数量。 有关更多信息,请参阅 关于网络接口.
    通过虚拟网络接口功能,您可以选择要使用的网络接口类型。 您可以选择新的选项“网络连接”和虚拟网络接口,也可以选择传统的选项“实例网络接口”。 在供应虚拟服务器时选择的任何类型的网络接口选项都将在虚拟服务器的生命周期内持久存在。 您可以单击附加,使用现有虚拟网络接口创建网络附加。 有关更多信息,请参阅 关于虚拟网络接口
  5. 对于“高级”选项,您可以选择完成更多实例配置。

    实例调配高级选项选择
    字段
    用户数据 您可以添加自动执行公共配置任务或运行脚本的用户数据。 有关更多信息,请参阅用户数据。 有关在为 IBM Cloud® Virtual Private Cloud 实例创建 IBM Cloud® Hyper Protect Virtual Server 时使用合同来指定用户数据的更多信息,请参阅 关于合同。 z/OS 虚拟服务器实例不支持用户数据。
    元数据 缺省情况下处于禁用状态。 单击切换以启用。 此设置通知实例收集实例配置信息和用户数据。 有关更多信息,请参阅 关于 VPC 的实例元数据。 IBM Cloud® Hyper Protect Virtual Server for IBM Cloud® Virtual Private Cloud 实例和 z/OS 虚拟服务器实例不支持元数据。
    可信概要文件 (可选) 如果启用元数据服务,那么可以选择可信概要文件并将其链接到此实例。 单击选择受信任的配置文件。 在侧面板中,选择可信概要文件,然后单击 选择可信概要文件 以将其链接到实例。 如果不存在任何消息,或者如果您无权链接消息,那么将显示一条消息。 有关更多信息,请参阅 创建可信概要文件。 有关获取访问权的更多信息,请参阅 用于链接可信概要文件的 IAM 授权
    添加到专用主机 此选项默认为禁用。 要在单租户空间中创建虚拟服务器实例,请单击切换以启用专用主机。 要供应专用实例,您必须具有可用的专用主机,或者 创建一个
    添加到放置组 缺省情况下,已禁用布置组。 单击切换以启用放置组。 然后,选择或创建实例的放置组。 如果添加布置组,那么将根据布置组策略来放置实例。 有关更多信息,请参阅 关于布置组
    添加到预留 如果您具有活动预留,请单击切换以将虚拟服务器实例添加到该预留。 有关更多信息,请参阅 关于 VPC 的预留
    主机故障自动重新启动 缺省情况下启用该设置。 要禁用主机故障自动重新启动,请单击切换开关。 更多信息,请参阅 主机故障恢复政策
  6. 准备好供应时,单击创建虚拟服务器实例

在 UI 中创建实例后的后续步骤

创建实例后,需要 将浮动 IP 地址与实例关联。 然后,可以连接到该实例。 有关更多信息,请参阅 连接到 Linux 实例连接到 Windows 实例连接到 z/OS 实例

如果现有实例具有浮动 IP 地址,那么不必将第二个浮动 IP 分配给另一个实例。 您可以使用浮动 IP 连接到第一个实例,然后使用自动分配给该实例的专用子网 IP 地址通过 SSH 连接到第二个实例。

使用 CLI 创建虚拟服务器实例

您可以使用命令行界面 (CLI) 来创建实例。 如果要使用用户标记或访问管理标记来管理资源,请参阅 使用标记

IBM Cloud CLI 在 LinuxONE (s390x 处理器体系结构) 上不受支持。 但是,您可以在另一个受支持的平台上安装 CLI,并将其与 LinuxONE (s390x 处理器体系结构) 虚拟服务器实例配合使用。

准备工作

收集信息以使用 CLI 创建实例

准备好创建实例了吗? 在运行 ibmcloud is instance-create 命令之前,您需要了解实例的详细信息,如要使用的配置文件或映像。

使用关联的命令收集以下信息。

所需实例详细信息
实例详细信息 列出选项 VPC CLI 参考文档
图像 ibmcloud is images 列出所有图像
引导卷 ibmcloud is volumes 列出所有卷
Profile ibmcloud is instance-profiles 列出所有虚拟服务器实例配置文件
密钥 ibmcloud is keys 列出所有键

如果你没有可用的 SSH 密钥,请使用创建密钥创建一个。

注意: RSA 和 ED25519 是您可以使用的两种 SSH 密钥。 但是,您不能在 Windows 或 VMware 映像中使用 ED25519 SSH 密钥类型。 您只能对这些图像使用 RSA SSH 密钥。
有关更多信息,请参阅 SSH 密钥入门

VPC ibmcloud is vpcs 列出所有 VPC
子网 ibmcloud is subnets 列出所有子网
区域 ibmcloud is zones 列出目标区域的所有地区
放置组 ibmcloud is placement-groups 列出所有放置组

使用以下命令来确定创建新实例所需的信息。

  1. 列出与帐户关联的区域。

    ibmcloud is regions
    

    请参阅以下示例。

    $ ibmcloud is regions
    Listing regions under account Test Account as user test.user@ibm.com...
    Name       Endpoint                              Status
    au-syd     https://au-syd.iaas.cloud.ibm.com     available
    br-sao     https://br-sao.iaas.cloud.ibm.com     available
    ca-tor     https://ca-tor.iaas.cloud.ibm.com     available
    eu-de      https://eu-de.iaas.cloud.ibm.com      available
    eu-es      https://eu-es.iaas.cloud.ibm.com      available
    eu-gb      https://eu-gb.iaas.cloud.ibm.com      available
    jp-osa     https://jp-osa.iaas.cloud.ibm.com     available
    jp-tok     https://jp-tok.iaas.cloud.ibm.com     available
    us-east    https://us-east.iaas.cloud.ibm.com    available
    us-south   https://us-south.iaas.cloud.ibm.com   available
    
  2. 切换到目标区域。

    ibmcloud target -r <region-name>
    
  3. 列出与目标区域相关的区域。

    ibmcloud is zones
    

    在以下示例中,该命令在 us-south 区域中运行,并且输出将显示该区域中的可用区域。

    $ ibmcloud is zones
    Listing zones in target region us-south under account Test Account as user test.user@ibm.com...
    Name         Region     Status
    us-south-1   us-south   available
    us-south-2   us-south   available
    us-south-3   us-south   available
    
  4. 列出与帐户关联的 IBM Cloud VPC。

    ibmcloud is vpcs
    

    在此示例中,您将看到与以下输出类似的响应。

    ID                                        Name       Status     Classic access   Default network ACL              Default security group        Resource group
    r006-35b9cf35-616e-462e-a145-cf8db4062fcf my-vpc     available  false            immortality-casing-extoll-exit   enhance-corsage-managing-jinx Default
    

    如果没有可用的 VPC,可以使用 ibmcloud is vpc-create 命令创建一个。 有关创建 VPC 的更多信息,请参阅 ibmcloud is vpc-create

  5. 列出与 IBM Cloud VPC 关联的子网。

    ibmcloud is subnets
    

    在此示例中,您将看到与以下输出类似的响应。

    ID                                          Name            Status      Subnet CIDR      Addresses   ACL                              Public Gateway   VPC
    Zone         Resource group
    0717-198db988-3b9b-4cfa-9dec-0206420d37d0   my-subnet       available   10.240.64.0/28   7/16        immortality-casing-extoll-exit   -               my-vpc
    us-south-2   Default
    

    如果没有可用的子网,可以使用 ibmcloud is subnet-create 命令创建一个子网。 有关创建子网的更多信息,请参阅 ibmcloud is subnet-create

  6. 列出可用于创建实例的概要文件。

    ibmcloud is instance-profiles
    

    在此示例中,您将看到与以下输出类似的响应。

    Name                         vCPU Manufacturer   Architecture   Family              vCPUs   Memory(GiB)   Bandwidth(Mbps)   Volume bandwidth(Mbps)   GPUs          Storage(GB)   Min NIC Count   Max NIC Count
    bx2-2x8                      intel               amd64          balanced            2       8             4000              1000                     -      -                    1               5
    bx2a-2x8                     amd                 amd64          balanced            2       8             2000              500                      -      -                    1               5
    bx2d-2x8                     intel               amd64          balanced            2       8             4000              1000                     -            1x75          1               5
    bx2-4x16                     intel               amd64          balanced            4       16            8000              2000                     -      -                    1               5
    bx2a-4x16                    amd                 amd64          balanced            4       16            4000              1000                     -      -                    1               5
    bx2d-4x16                    intel               amd64          balanced            4       16            8000              2000                     -            1x150         1               5
    

    有关可用概要文件的更多信息,请参阅 x86 实例概要文件s390x 实例概要文件

    现在,支持安全执行的概要文件可用,并由概要文件名称的第四个字符 (即 "e") 标识,例如 bz2e。 有关更多信息,请参阅 使用 LinuxONE进行保密计算

    支持安全执行的概要文件可用于均衡,计算和内存系列。 确保在使用 IBM Hyper Protect Container Runtime 映像时使用安全启用的概要文件。 IBM提供的库存映像和 IBM Hyper Protect Container Runtime 的概要文件验证在 RIAS 层中进行。 任何概要文件不匹配都会导致类似于以下示例的错误消息。

    FAILED
    Response HTTP Status Code: 400
    Error code: bad_field
    Error message: Image OS IBM Hyper Protect is not supported by the instance profile <profile_name>
    Error target name: profile, type: field
    
  7. 列出用于创建实例的专用目录中与您的帐户共享的可用库存映像,定制映像或映像。 如果要从现有引导卷创建实例,请跳过此步骤。

    • 要列出所有可用的库存图片或自定义图片,请运行以下命令。

      ibmcloud is images
      

      在此示例中,您将看到与以下输出类似的响应。

      ID                                          Name                               Status       Arch    OS name                   OS version       File size(GB)
      Visibility   Owner type   Encryption   Resource group   Catalog Offering
      r006-24d856e2-6aec-41c2-8f36-5a8a3766f0d6   ibm-centos-7-9-minimal-amd64-9     available    amd64   centos-7-amd64            7.x - Minimal Install  1             public       provider     none         Default          -
      r006-9768bb7f-c75d-4408-ba34-61015632f907   ibm-debian-10-13-minimal-amd64-2   available    amd64   debian-10-amd64           10.x Buster/Stable     1             public       provider     none         Default          -
      r006-f83ce520-00b5-40c5-9938-a5c82a273f91   ibm-debian-11-3-minimal-amd64-4    available    amd64   debian-11-amd64           11.x Bullseye/Stable   1
      

      有关命令选项的完整列表,请参阅 ibmcloud is images

      不推荐使用的映像不包含最新支持。

    • 要列出从专用目录共享的所有可用映像,请运行以下命令:

      如果选择属于其他帐户的目录映像,那么需要查看额外的注意事项和限制。 请参阅 在 CLI 中的专用目录中使用跨帐户映像引用

      • 要列出所有可用的专用目录映像产品,请运行以下命令。

        ibmcloud is catalog-image-offerings
        

        此命令返回每个映像产品的标识以及映像所在的专用目录的标识。 将 offering_idcatalog_id 保存在变量中,这些变量稍后用于供应实例。

        offering_id=6bf79f7b-de48-4ce8-8cae-866b376f2889
        catalog_id=71306253-8444-4cae-a45d-64d35e5393ec
        
      • 要获取产品的 offering_crn 和产品中每个版本的 offering_version_crn,请运行以下命令。

        ibmcloud is catalog-image-offering $catalog_id $offering_id
        

      供应实例时,可以使用 offering_crn 值从目录产品中最新版本的专用目录管理映像供应实例,也可以使用 offering_version_crn 值从目录产品中的特定版本供应实例。

      offering_crnoffering_version_crn 保存在变量中,这些变量稍后用于供应实例。

      offering_crn="crn:v1:bluemix:public:globalcatalog-collection:global:a/a1234567:0b322820-dafd-4b5e-b694-6465da6f008a:offering:136559f6-4588-4af2-8585-f3c625eee09d"
      offering_version_crn="crn:v1:bluemix:public:globalcatalog-collection:global:a/a1234567:0b322820-dafd-4b5e-b694-6465da6f008a:version:136559f6-4588-4af2-8585-f3c625eee09d/8ae92879-e253-4a7c-b09f-8d30af12e518"
      
  8. 列出用于创建实例的可用启动卷。 要从现有卷创建实例,必须使用与之前选择的实例选项兼容的卷。 兼容卷与正在调配的实例位于同一区域,未连接,且操作系统与步骤 5 中选择的配置文件兼容。 使用 volumes 子命令可查看兼容卷。 例如,要在 us-south-1 中查看具有 x64 操作系统体系结构的未连接卷:

    ibmcloud is volumes --attachment-state unattached --operating-system-architecture amd64 --zone us-south-1
    
  9. 您可以选择 从可引导快照创建引导卷 并将其用于映像。 要列出卷的所有快照,请参阅 查看从 Block Storage for VPC创建的所有快照。 如果您打算使用其他账户的快照,请确保首先获得正确的 IAM授权。 然后,联系快照的所有者,获取快照的 CRN。

  10. 列出可以与实例关联的可用 SSH 密钥。

    ibmcloud is keys
    

    在此示例中,您将看到与以下输出类似的响应。

    ID                                          Name     Type   Length   FingerPrint          Resource group
    r006-89ec781c-9630-4f76-b9c4-a7d204828d61   my-key   rsa    4096     gtnf+pdX2PYI9Ofq..   Default
    

    如果没有可用的 SSH 密钥,可以使用 ibmcloud is key-create 命令创建 SSH 密钥。 有关更多信息,请参阅 SSH 密钥

  11. 列出可与实例关联的所有可用安置组。

ibmcloud is placement-groups

在此示例中,您将看到与以下输出类似的响应。

ID                                            Name                             State    Strategy       Resource Group
c5f1f366-b92a-4080-991a-aa5c2e33d96b          placement-group-region-us-south   stable   power_spread  Default

使用 CLI 创建实例

使用以下信息通过 CLI 创建实例。

从库存或定制映像供应

知道所需值后,请使用这些值来运行 ibmcloud is instance-create 命令。 您还需要指定实例的唯一名称。

使用以下步骤通过 CLI 从库存映像创建基本虚拟服务器实例。 缺省情况下,在创建实例时,会将引导卷附加到该实例。 对于大多数虚拟服务器实例,缺省引导卷大小为 100 GB。 z/OS 虚拟服务器实例的缺省引导卷大小为 250 GB。

  1. 使用以下命令创建一个实例。

    ibmcloud is instance-create \
        INSTANCE_NAME \
        VPC \
        ZONE_NAME \
        PROFILE_NAME \
        SUBNET \
        --image IMAGE \
        --keys KEYS \
    

    例如,以下 instance-create 命令使用在 收集信息 部分中找到的样本值。

    ibmcloud is instance-create \
        my-instance \
        r006-35b9cf35-616e-462e-a145-cf8db4062fcf \
        us-south-2 \
        bx2-2x8 \
        0717-198db988-3b9b-4cfa-9dec-0206420d37d0 \
        --image r006-f83ce520-00b5-40c5-9938-a5c82a273f91 \
        --keys r006-89ec781c-9630-4f76-b9c4-a7d204828d61 \
    

    使用以下参数和选项值的位置

    • INSTANCE_NAME:my-instance
    • VPC: r006-35b9cf35-616e-462e-a145-cf8db4062fcf
    • ZONE_NAME:us-south-2
    • PROFILE_NAME:bx2-2x8
    • 子网: 0717-198db988-3b9b-4cfa-9dec-0206420d37d0
    • IMAGE: Debian 11 图像 r006-f83ce520-00b5-40c5-9938-a5c82a273f91
    • 钥匙 r006-89ec781c-9630-4f76-b9c4-a7d204828d61

    响应因您使用的选项值而异。

    ID                                    0726_67b1179a-8b25-4ac9-8bc0-7f3027466ed0
    Name                                  my-instance
    CRN                                   crn:v1:public:is:us-south-2:a/a1234567::instance:0726_67b1179a-8b25-4ac9-8bc0-7f3027466ed0
    Status                                pending
    Availability policy on host failure   restart
    Startable                             true
    Profile                               bx2-2x8
    Architecture                          amd64
    vCPU Manufacturer                     intel
    vCPUs                                 2
    Memory(GiB)                           8
    Bandwidth(Mbps)                       4000
    Volume bandwidth(Mbps)                1000
    Network bandwidth(Mbps)               3000
    Lifecycle Reasons                     Code   Message
                                           -      -
    
    Lifecycle State                       pending
    
    Metadata service                      Enabled   Protocol   Response hop limit
                                          false     http       1
    
    Image                                 ID                                          Name
                                          r006-f83ce520-00b5-40c5-9938-a5c82a273f91   ibm-debian-11-3-minimal-amd64-4
    
    VPC                                   ID                                          Name
                                          r006-35b9cf35-616e-462e-a145-cf8db4062fcf   my-vpc
    
    Zone                                  us-south-2
    Resource group                        ID                                 Name
                                          cdc21b72d4e647b195de988b175e3d82   Default
    
    Created                               2023-03-23T21:50:24+00:00
    Boot volume                           ID   Name   Attachment ID                               Attachment name
                                          -    -      0717-7ccd4284-e59d-45d8-932a-9e52f62f187a   landing-faucet-prankish-sprout
    

    创建新实例后,不会返回有关为新实例创建的网络接口的信息。 您可以使用 ibmcloud is instance INSTANCE 命令来查看信息,如以下步骤中所述。 在创建实例之前,状态显示为待定

    有关可作为 instance-create 命令的命令选项包含的一些其他功能的更多信息,请参阅以下主题: 创建卷连接 JSON启用或禁用元数据服务创建布置组

    有关命令选项的完整列表,请参阅 ibmcloud is instance-create

  2. 接下来,运行以下 instance details 命令以验证您是否可以看到新实例并查看为新实例创建的网络接口。0726_67b1179a-8b25-4ac9-8bc0-7f3027466ed0 是在上一步中创建实例时分配的虚拟服务器实例标识。

    ibmcloud is instance 0726_67b1179a-8b25-4ac9-8bc0-7f3027466ed0
    

    在此示例中,您将看到以下回复。 现在,状态显示为 正在运行。 检查“网络接口”部分以查找网络接口的标识。

    ID                                    0726_67b1179a-8b25-4ac9-8bc0-7f3027466ed0
    Name                                  my-instance
    CRN                                   crn:v1:public:is:us-south-2:a/a1234567::instance:0726_67b1179a-8b25-4ac9-8bc0-7f3027466ed0
    Status                                running
    Availability policy on host failure   restart
    Startable                             true
    Profile                               bx2-2x8
    Architecture                          amd64
    vCPU Manufacturer                     intel
    vCPUs                                 2
    Memory(GiB)                           8
    Bandwidth(Mbps)                       4000
    Volume bandwidth(Mbps)                1000
    Network bandwidth(Mbps)               3000
    Lifecycle Reasons                     Code   Message
                                           -      -
    
    Lifecycle State                       stable
    
    Metadata service                      Enabled   Protocol   Response hop limit
                                          false     http       1
    
    Image                                 ID                                          Name
                                          r006-f83ce520-00b5-40c5-9938-a5c82a273f91   ibm-debian-11-3-minimal-amd64-4
    
    VPC                                   ID                                          Name
                                          r006-35b9cf35-616e-462e-a145-cf8db4062fcf   my-vpc
    
    Zone                                  us-south-2
    Resource group                        ID                                 Name
                                          cdc21b72d4e647b195de988b175e3d82   Default
    
    Created                               2023-03-23T21:50:24+00:00
    Network Interfaces                    Interface   Name      ID                                          Subnet            Subnet ID                                   Floating IP   Security Groups                 Allow source IP spoofing   Reserved IP
                                          Primary     primary   0717-4db768bb-65c3-4045-8712-523e62eeabd2   my-subnet   0717-198db988-3b9b-4cfa-9dec-0206420d37d0         -             enhance-corsage-managing-jinx   false                      10.240.64.10
    
    Boot volume                           ID                                          Name                           Attachment ID                                    Attachment name
                                          r006-7a1d72d1-56ac-438e-bf85-6c0173e3f9a6   expend-anger-whiff-jackknife   0717-7ccd4284-e59d-45d8-932a-9e52f62f187a        landing-faucet-prankish-sprout
    
  3. 使用以下命令请求要与实例关联的浮动 IP 地址。 为浮动 IP 指定的名称为 my-floatingip0717-4db768bb-65c3-4045-8712-523e62eeabd2 是上一步中显示的虚拟服务器实例的网络接口标识。

    ibmcloud is floating-ip-reserve \
        my-floatingip \
        --nic 0717-4db768bb-65c3-4045-8712-523e62eeabd2
    

    在此示例中,您将看到与以下输出类似的响应。

    ID               r006-9b79b9bc-a2dc-4337-865a-57d9b9198b76
    Address          169.59.214.164
    Name             my-floatingip
    CRN              crn:v1:public:is:us-south-2:a/a1234567::floating-ip:r006-9b79b9bc-a2dc-4337-865a-57d9b9198b76
    Status           available
    Zone             us-south-2
    Created          2023-03-23T22:13:07+00:00
    Target           ID                                          Target type         Instance ID                                 Target interface name   Target interface private IP
                     0717-4db768bb-65c3-4045-8712-523e62eeabd2   network_interface   0726_67b1179a-8b25-4ac9-8bc0-7f3027466ed0   primary                 -
    
    
    Resource group   ID                                 Name
                     cdc21b72d4e647b195de988b175e3d82   Default
    

    记录浮动 IP Address 以稍后使用。

    有关命令选项的完整列表,请参阅 ibmcloud is 浮动-ip-reserve

需要更多帮助吗? 您可以随时运行 ibmcloud is instance-create --help 来显示有关创建实例的帮助。

从专用目录映像供应

知道所需值后,请使用这些值来运行 ibmcloud is instance-create 命令。 您还需要指定实例的唯一名称。

使用以下步骤通过 CLI 从专用目录产品或目录产品版本创建虚拟服务器实例。

  1. 使用以下命令创建一个实例。

    ibmcloud is instance-create \
        INSTANCE_NAME \
        VPC \
        ZONE_NAME \
        PROFILE_NAME \
        SUBNET \
        --catalog-offering <CRN for the IBM Cloud catalog offering> or --catalog-offering-version <The CRN for the version of an IBM Cloud catalog offering> \
        --keys KEYS \
        --placement-group PLACEMENT_GROUP_NAME \
    

    例如,如果在 us-south-2 中创建名为 my-instance 的实例,并使用 bx2-2x8 概要文件和目录产品,那么 instance-create 命令类似于以下示例。

    ibmcloud is instance-create\
        my-instance\
        r006-35b9cf35-616e-462e-a145-cf8db4062fcf\
        us-south-2\
        bx2-2x8\
        0717-198db988-3b9b-4cfa-9dec-0206420d37d0\
        --catalog-offering crn:v1:public:globalcatalog-collection:global:a/efe5afc483594adaa8325e2b4d1290df:0b322820-dafd-4b5e-b694-6465da6f008a:offering:136559f6-4588-4af2-8585-f3c625eee09d
        --keys r006-89ec781c-9630-4f76-b9c4-a7d204828d61\
        --placement-group c5f1f366-b92a-4080-991a-aa5c2e33d96b\
    

    其中使用以下参数和选项值。

    • INSTANCE_NAME:my-instance
    • VPC: r006-35b9cf35-616e-462e-a145-cf8db4062fcf
    • ZONE_NAME:us-south-2
    • PROFILE_NAME:bx2-2x8
    • 子网: 0717-198db988-3b9b-4cfa-9dec-0206420d37d0
    • CATALOG-OFFERING: 为 crn:v1:public:globalcatalog-collection:global:a/efe5afc483594adaa8325e2b4d1290df:0b322820-dafd-4b5e-b694-6465da6f008a:offering:136559f6-4588-4af2-8585-f3c625eee09d
    • 钥匙 r006-89ec781c-9630-4f76-b9c4-a7d204828d61
    • 安置组:c5f1f366-b92a-4080-991a-aa5c2e33d96b

    创建新实例后,不会返回有关为新实例创建的网络接口的信息。 您可以使用 ibmcloud is instance INSTANCE 命令来查看信息,如以下步骤中所述。

    虚拟服务器实例的状态将显示 pending,直到创建该实例为止。

    有关命令选项的完整列表,请参阅 ibmcloud is instance-create

  2. 接下来,运行以下 instance details 命令以验证您是否可以看到新实例并查看为新实例创建的网络接口。 对于 INSTANCE,指定在上一步中分配给新虚拟服务器实例的标识。

    ibmcloud is instance INSTANCE
    

    现在,状态显示为 正在运行。 检查“网络接口”部分以查找网络接口的标识。

  3. 使用以下命令请求要与实例关联的浮动 IP 地址。 对于 FLOATING_IP_NAME,指定浮动 IP 的名称,对于 TARGET_INTERFACE,指定您在上一步中标识的网络接口的标识。

    ibmcloud is floating-ip-reserve \
        FLOATING_IP_NAME \
        --nic TARGET_INTERFACE
    

    记录浮动 IP Address 以稍后使用。

    有关命令选项的完整列表,请参阅 ibmcloud is 浮动-ip-reserve

需要更多帮助吗? 您可以随时运行 ibmcloud is instance-create --help 来显示有关创建实例的帮助。

从现有卷供应

了解所需数值后,使用它们运行 instance-create 命令。 您还需要指定实例的唯一名称。

使用以下步骤从可引导卷创建包含卷连接的虚拟服务器实例。

  1. 使用以下命令创建一个实例。

    ibmcloud is instance-create \
        INSTANCE_NAME \
        VPC \
        ZONE_NAME \
        PROFILE_NAME \
        SUBNET \
        --boot-volume VOLUME_ID \
        --keys KEYS \
        --volume-attach VOLUME_ATTACH_JSON \
    

    例如,如果在 us-south-1 中创建名为 my-instance 的实例,并使用 bx2-2x8 概要文件和现有引导卷,那么 instance-create 命令类似于以下示例。

    ibmcloud is instance-create\
        my-instance\
        r006-35b9cf35-616e-462e-a145-cf8db4062fcf\
        us-south-1\
        bx2-2x8\
        0717-198db988-3b9b-4cfa-9dec-0206420d37d0\
        --boot-volume r006-feec3e99-995e-4e8f-896b-48b42c7d05a7\
        --keys r006-89ec781c-9630-4f76-b9c4-a7d204828d61\
        --volume-attach @/Users/myname/myvolume-attachment_create.json\
    

    有关示例卷连接 JSON 文件,请参阅创建卷连接 JSON。 您还可以在卷连接中包含 卷的用户标记

    创建新实例后,不会返回有关为新实例创建的网络接口的信息。 您可以使用 ibmcloud is instance INSTANCE 命令来查看信息,如下一步中所述。

    在创建实例之前,状态显示为待定

    有关命令选项的完整列表,请参阅 ibmcloud is instance-create

  2. 接下来,运行以下 instance details 命令以验证您是否可以看到新实例并查看为新实例创建的网络接口。 对于 INSTANCE,指定在上一步中分配给新虚拟服务器实例的标识。

    ibmcloud is instance INSTANCE
    

    现在,状态显示为 正在运行。 检查“网络接口”部分以查找网络接口的标识。

  3. 使用以下命令请求要与实例关联的浮动 IP 地址。 对于 FLOATING_IP_NAME,指定浮动 IP 的名称,对于 TARGET_INTERFACE,指定您在上一步中标识的网络接口的标识。

    ibmcloud is floating-ip-reserve \
        FLOATING_IP_NAME \
        --nic TARGET_INTERFACE
    

    记录浮动 IP Address 以稍后使用。

    有关命令选项的完整列表,请参阅 ibmcloud is 浮动-ip-reserve

    需要更多帮助吗? 您可以随时运行 ibmcloud is instance-create --help 来显示有关创建实例的帮助。

从快照创建启动卷,并用它从 CLI 配置新实例

您可以从可引导的 快照 创建引导卷,并将其用于映像。 运行“ibmcloud is instance-create 命令时,在启动卷 JSON 中指定”source_snapshot 子属性,并指定可启动快照的 ID、名称或 CRN。 有关示例,请参阅 从快照为新实例创建启动卷

创建具有保密计算功能的实例

选择可用性

使用英特尔 SGX for VPC 的保密计算仅在美国南部(达拉斯)地区提供。

了解所需数值后,使用它们运行 ibmcloud is instance-create 命令。 您还需要指定实例的唯一名称。

对于 "confidential-compute-mode,您需要为选项指定 "sgx 或 "tdx

使用以下步骤创建启用保密计算的基本虚拟服务器实例。

使用以下命令创建一个实例。

   ibmcloud is instance-create \
       INSTANCE_NAME \
       VPC \
       ZONE_NAME \
       PROFILE_NAME \
       SUBNET \
       --image IMAGE \
       --confidential-compute-mode sgx \
       --keys KEYS \

例如,以下 instance-create 命令使用在 收集信息 部分中找到的样本值。

   ibmcloud is instance-create \
       my-instance \
       r006-35b9cf35-616e-462e-a145-cf8db4062fcf \
       us-south-2 \
       bx2-2x8 \
       0717-198db988-3b9b-4cfa-9dec-0206420d37d0 \
       --image r006-f83ce520-00b5-40c5-9938-a5c82a273f91 \
       --confidential-compute-mode sgx \
       --keys r006-89ec781c-9630-4f76-b9c4-a7d204828d61 \

使用以下参数和选项值的位置

  * INSTANCE_NAME: `my-instance`
  * VPC: `r006-35b9cf35-616e-462e-a145-cf8db4062fcf`
  * ZONE_NAME: `us-south-2`
  * PROFILE_NAME: `bx2-2x8`
  * SUBNET: `0717-198db988-3b9b-4cfa-9dec-0206420d37d0`
  * IMAGE: Debian 11 image `r006-f83ce520-00b5-40c5-9938-a5c82a273f91`
  * KEYS: `r006-89ec781c-9630-4f76-b9c4-a7d204828d61`

创建安全启动实例

选择可用性

使用英特尔 SGX for VPC 的保密计算仅在达拉斯(美国南部)和法兰克福(欧洲东部)地区提供。

了解所需数值后,使用它们运行 ibmcloud is instance-create 命令。 您还需要指定实例的唯一名称。

对于 "enable-secure-boot,您需要指定 "true 或 "false。 缺省值为 false

使用以下步骤创建启用安全启动的基本虚拟服务器实例。

使用以下命令创建一个实例。

   ibmcloud is instance-create \
       INSTANCE_NAME \
       VPC \
       ZONE_NAME \
       PROFILE_NAME \
       SUBNET \
       --image IMAGE \
       --enable-secure-boot true \
       --keys KEYS \

例如,以下 instance-create 命令使用在 收集信息 部分中找到的样本值。

   ibmcloud is instance-create \
       my-instance \
       r006-35b9cf35-616e-462e-a145-cf8db4062fcf \
       us-south-2 \
       bx2-2x8 \
       0717-198db988-3b9b-4cfa-9dec-0206420d37d0 \
       --image r006-f83ce520-00b5-40c5-9938-a5c82a273f91 \
       --enable-secure-boot true \
       --keys r006-89ec781c-9630-4f76-b9c4-a7d204828d61 \

使用以下参数和选项值的位置

  * INSTANCE_NAME: `my-instance`
  * VPC: `r006-35b9cf35-616e-462e-a145-cf8db4062fcf`
  * ZONE_NAME: `us-south-2`
  * PROFILE_NAME: `bx2-2x8`
  * SUBNET: `0717-198db988-3b9b-4cfa-9dec-0206420d37d0`
  * IMAGE: Debian 11 image `r006-f83ce520-00b5-40c5-9938-a5c82a273f91`
  * KEYS: `r006-89ec781c-9630-4f76-b9c4-a7d204828d61`

从 CLI 创建实例后的后续步骤

这将向管理员发送一系列电子邮件:虚拟服务器实例订单确认,订单核准和处理,以及指示实例已创建的消息。

如果选择 GPU 概要文件,请参阅 管理 GPU

创建实例后,请将浮动 IP 地址关联到该实例。 然后,可以连接到该实例。 有关更多信息,请参阅连接到 Linux 实例连接到 Windows 实例

使用 API 创建虚拟服务器实例

您可以使用应用程序接口创建实例。

准备工作

确保您拥有所需的访问权限。 要调用这些方法,必须根据列出的任何条件为您分配一个或多个包含以下操作的 IAM 访问角色。 您可以通过转至 Cloud Identity and Access Management 仪表板的“用户”页面来检查您的访问权。

使用应用程序接口收集信息以创建实例

在创建实例之前,您需要了解有关实例的详细信息,例如要使用的实例概要文件或映像。 通过执行以下 API 调用来收集信息:

所需实例详情 api
实例详细信息 列出选项 API 规范文档
图像 GET /images 列出所有图像
Profile GET /instance/profiles 列出所有实例概要文件
GET /keys 列出所有密钥
VPC GET /vpcs 列出所有 VPC
子网 GET /subnets 列出所有子网
区域 GET /regions/<region>/zones 列出区域中的所有专区
放置组 GET /placement_groups 列出所有放置组

如果计划使用其他账户的快照,请首先确保已获得正确的 IAM 授权。 然后,联系快照的所有者,获取快照的 CRN。

使用应用程序接口创建实例

检索到所需的信息后,可以运行 POST /instances 方法来创建实例。

使用 API 从库存或定制映像供应实例

您可以通过将映像的 id 子属性指定为 image 属性的值来供应具有股票或定制映像的实例。

   curl -X POST "$vpc_api_endpoint/v1/instances?version=$api_version&generation=2" \
     -H "Authorization:$iam_token" \
     -d '{
           "name": "my-instance",
           "zone": {
             "name": "us-south-3"
           },
           "vpc": {
             "id": "'$vpc'"
           },
           "primary_network_interface": {
             "subnet": {
               "id": "'$subnet'"
             }
           },
           "keys":[{"id": "'$key'"}],
           "profile": {
             "name": "'$profile_name'"
            },
           "image": {
             "id": "'$image_id'"
            }
           }'

使用 API 从专用目录映像供应实例

您可以通过将映像的 offering_crnversion_crn 子属性指定为 catalog_offering 属性的值来供应具有专用目录映像的实例。

  • 通过使用最新版本的目录产品产品中的专用目录映像来创建实例。

    curl -X POST "$vpc_api_endpoint/v1/instances?version=$api_version&generation=2" \
      -H "Authorization:$iam_token" \
      -d '{
            "name": "my-instance",
            "zone": {
              "name": "us-south-3"
            },
            "vpc": {
              "id": "'$vpc'"
            },
            "primary_network_interface": {
              "subnet": {
                "id": "'$subnet'"
              }
            },
            "keys":[{"id": "'$key'"}],
            "profile": {
              "name": "'$profile_name'"
             },
            "catalog_offering": {
              "offering": {
                "crn": "'$offering_crn'"
             }
            }'
    
  • 通过使用特定版本的目录产品产品中的专用目录映像来创建实例。

    curl -X POST "$vpc_api_endpoint/v1/instances?version=$api_version&generation=2" \
      -H "Authorization:$iam_token" \
      -d '{
            "name": "my-instance",
            "zone": {
              "name": "us-south-3"
            },
            "vpc": {
              "id": "'$vpc'"
            },
            "primary_network_interface": {
              "subnet": {
                "id": "'$subnet'"
              }
            },
            "keys":[{"id": "'$key'"}],
            "profile": {
              "name": "'$profile_name'"
             },
            "catalog_offering": {
              "version": {
                "crn": "'$version_crn'"
             }
            }'
    

从现有卷供应

复用现有可引导卷比从快照或映像创建新卷更快。

您可以通过将现有卷的 idcrn 子属性指定为 boot_volume_attachment 属性的值来供应具有现有卷的实例。

现有的可启动卷必须是一个未连接的可启动卷,且其架构与实例配置文件相同。 使用 列表卷 过滤器并引用 attachment_state 属性和 operating_system 属性以查看卷的资格。

例如,要查看 us-south-1 中具有 x86 操作系统的未连接卷。

curl -X GET "$vpc_api_endpoint/v1/volumes?version=2023-02-08&generation=2?attachment_state=unattached&zone.name=us-south-1&operating_system.architecture=amd64"
-H "Authorization: Bearer $iam_token"

缺省情况下,在供应虚拟服务器实例过程中创建的引导卷将在删除该实例时删除。 您可以在创建实例或更新启动卷附件时,将 delete_volume_on_instance_delete 属性设置为 false 来更改此行为。

使用 POST /instances 方法来创建包含所收集信息的实例。 以下调用是使用现有引导卷供应实例的示例。

curl -X POST "$vpc_api_endpoint/v1/instances?version=2023-02-08&generation=2"
-H "Authorization: Bearer $iam_token"
-d '{
  "boot_volume_attachment": {
    "volume": {
      "id": "r006-feec3e99-995e-4e8f-896b-48b42c7d05a7"
    }
  },
  "keys": [
    {
      "id": "363f6d70-0000-0001-0000-00000013b96c"
    }
  ],
  "name": "my-instance",
  "placement_target": {
    "id": "0787-8c2a09be-ee18-4af2-8ef4-6a6060732221"
  },
  "primary_network_interface": {
    "name": "my-network-interface",
    "subnet": {
      "id": "bea6a632-5e13-42a4-b4b8-31dc877abfe4"
    }
  },
  "profile": {
    "name": "bx2-2x8"
  },
  "volume_attachments": [
    {
      "volume": {
        "capacity": 1000,
        "encryption_key": {
          "crn": "crn:[...]"
        },
        "name": "my-data-volume",
        "profile": {
          "name": "5iops-tier"
        }
      }
    }
  ],
  "vpc": {
    "id": "f0aae929-7047-46d1-92e1-9102b07a7f6f"
  },
  "zone": {
    "name": "us-south-1"
  }
}'

有关更多信息,请参阅 创建实例

从快照复原引导卷并使用它来供应新实例

您可以从可引导快照 复原 引导卷,然后在供应实例时使用该引导卷。 可引导快照必须具有与实例概要文件相同的操作系统和体系结构。

POST /instances 请求中,在 source_snapshot 子属性中指定 boot_volume_attachment 属性和可引导快照标识。 或者,您也可以使用快照的名称或 CRN。 请参阅以下示例。

curl -X POST \
"$vpc_api_endpoint/v1/instances?version=2023-03-07&generation=2" \
-H "Authorization: $iam_token" \
-H "Content-Type: application/json" \
-d '{
      "boot_volume_attachment": {
        "delete_volume_on_instance_delete": true,
        "volume": {
            "profile": {
                "name": "general-purpose"
            },
            "source_snapshot": {
                "id": "eb373975-4171-4d91-81d2-c49efb033753"
            }
        }
     },
     .
     .
     .
  }'

有关使用 API 复原卷的更多信息,请参阅 使用 API 从快照复原卷

创建具有保密计算功能的实例

选择可用性

使用英特尔 SGX for VPC 的保密计算仅在达拉斯(美国南部)和法兰克福(欧洲东部)地区提供。

要为实例提供保密计算,请添加 confidential_compute_mode 属性并将其设置为 sgxtdx

   curl -X POST "$vpc_api_endpoint/v1/instances?version=$api_version&generation=2" \
     -H "Authorization:$iam_token" \
     -d '{
           "name": "my-instance",
           "zone": {
             "name": "us-south-3"
           },
           "vpc": {
             "id": "'$vpc'"
           },
           "primary_network_interface": {
             "subnet": {
               "id": "'$subnet'"
             }
           },
           "keys":[{"id": "'$key'"}],
           "profile": {
             "name": "'$profile_name'"
            },
           "image": {
             "id": "'$image_id'"
            },
            "confidential_compute_mode": "sgx"
           }'

创建安全启动实例

要使用安全启动配置实例,请添加“enable_secure_boot 属性并将其设置为”true

   curl -X POST "$vpc_api_endpoint/v1/instances?version=$api_version&generation=2" \
     -H "Authorization:$iam_token" \
     -d '{
           "name": "my-instance",
           "zone": {
             "name": "us-south-3"
           },
           "vpc": {
             "id": "'$vpc'"
           },
           "primary_network_interface": {
             "subnet": {
               "id": "'$subnet'"
             }
           },
           "keys":[{"id": "'$key'"}],
           "profile": {
             "name": "'$profile_name'"
            },
           "image": {
             "id": "'$image_id'"
            },
            "enable_secure_boot": "true"
           }'

使用 Terraform 创建虚拟服务器实例

您可以使用 Terraform 创建实例。 如果要使用用户标记或访问管理标记来管理资源,请参阅 使用标记

准备工作

确保设置 Terraform for VPC

创建专用目录

此步骤是可选的。 如果计划共享专用目录中的映像,那么必须首先创建专用目录。 如果选择属于其他帐户的目录映像,请查看 在 Terraform 中的专用目录中使用跨帐户映像引用 以了解更多注意事项和限制。 要创建专用目录,请参阅教程 使用 Terraform 加载虚拟服务器映像

使用 Terraform 收集信息以创建实例

准备好创建实例了吗? 在运行 ibm_is_instance 命令之前,您需要了解实例的详细信息,如要使用的配置文件或映像。

使用 DataSource 命令收集以下信息。

  1. 收集实例概要文件详细信息。 对您选择的概要文件运行以下命令。 请参阅 x86 实例概要文件 以获取可用概要文件的列表。 有关更多信息,请参阅 ibm_is_instance_profiles 上的 Terraform 文档。 通过引用实例概要文件数据源来使用实例概要文件。 有关更多信息,请参阅 ibm_is_instance_profile 上的 Terraform 文档。

    data "ibm_is_instance_profile" "example_profile" {
       name = "bx2-2x8"
    }
    
  2. 列出可用于创建实例的映像。 该命令取决于要使用的映像。 您可以使用库存映像,帐户中的定制映像或专用目录中与帐户共享的映像。 有关更多信息,请参阅 ibm_is_image 上的 Terraform 文档。 如果计划使用从专用目录共享的映像,请参阅 ibm_cm_versionibm_cm_offering_instance 上的 Terraform 文档。

    • 从实例的帐户中选择股票映像或定制映像。
    data "ibm_is_image" "example_image" {
       name = "ibm-centos-7-6-minimal-amd64-2"
    }
    

    如果选择属于其他帐户的目录映像,那么需要查看更多注意事项和限制。 请参阅 在 Terraform 中的专用目录中使用跨帐户映像引用

    • 要列出所有可用的专用目录映像产品,请运行以下命令。

      data "ibm_is_images" "example_images" {
         catalog_managed = true
       }
      
  3. 创建 VPC 资源或通过引用 VPC 数据源来使用现有 VPC。 有关更多信息,请参阅 ibm_is_vpc 上的 Terraform 文档。

    resource "ibm_is_vpc" "example_vpc" {
       name = "example-vpc"
    }
    
  4. 创建子网资源或通过引用子网数据源来使用现有子网。 有关更多信息,请参阅 ibm_is_subnet 上的 Terraform 文档。

    resource "ibm_is_subnet" "example_subnet" {
       name            = "example-subnet"
       vpc             = ibm_is_vpc.example_vpc.id
       zone            = "us-south-1"
       ipv4_cidr_block = "10.240.0.0/24"
    }
    
  5. 创建 ssh-key 资源或通过引用 ssh-key 数据源来使用现有 ssh-key。 有关更多信息,请参阅 ibm_is_ssh_keys上的 Terraform 文档。

    resource "ibm_is_ssh_key" "example_sshkey" {
       name       = "example-sshkey"
       type       = "rsa"
       public_key = "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCKVmnMOlHKcZK8tpt3MP1lqOLAcqcJzhsvJcjscgVERRN7/9484SOBJ3HSKxxNG5JN8owAjy5f9yYwcUg+JaUVuytn5Pv3aeYROHGGg+5G346xaq3DAwX6Y5ykr2fvjObgncQBnuU5KHWCECO/4h8uWuwh/kfniXPVjFToc+gnkqA+3RKpAecZhFXwfalQ9mMuYGFxn+fwn8cYEApsJbsEmb0iJwPiZ5hjFC8wREuiTlhPHDgkBLOiycd20op2nXzDbHfCHInquEe/gYxEitALONxm0swBOwJZwlTDOB7C6y2dzlrtxr1L59m7pCkWI4EtTRLvleehBoj3u7jB4usR"
    }
    

    SSH 密钥可以是 RSA 或 Ed25519 密钥。 您可以使用 UI 生成新的 RSA 密钥对。 可以上传预先存在的 RSA 和 ED25519 SSH 密钥。 仅当操作系统支持此密钥类型时,才能使用 Ed25519。 Ed25519 不能与 Windows 或 VMware 映像配合使用。

  6. 创建 subnet_reserved_ip 资源或通过引用 subnet_reserved_ip 数据源来使用现有 subnet_reserved_ip。 有关更多信息,请参阅 ibm_is_subnet_reserved_ip 上的 Terraform 文档

    resource "ibm_is_subnet_reserved_ip" "example_reserved_ip" {
       subnet    = ibm_is_subnet.example_subnet.id
       name      = "example-reserved-ip1"
       address   = "${replace(ibm_is_subnet.example_subnet.ipv4_cidr_block, "0/24", "13")}"
    }
    

使用 Terraform 创建实例

使用下列其中一个示例来创建实例。 有关更多信息,请参阅 ibm_is_instance 上的 Terraform 文档。

根据您计划使用的映像运行下列其中一个 Terraform 命令。

  • 通过使用实例的帐户中的股票映像或定制映像来创建实例。

    resource "ibm_is_instance" "example_instance" {
      name    = "example-instance-reserved-ip"
      image   = data.ibm_is_image.example_image.id
      profile = data.ibm_is_instance_profile.example_profile.name
    
      primary_network_interface {
        name   = "eth0"
        subnet = ibm_is_subnet.example_subnet.id
        primary_ip {
          reserved_ip = ibm_is_subnet_reserved_ip.example_reserved_ip.reserved_ip
        }
      }
      network_interfaces {
        name   = "eth1"
        subnet = ibm_is_subnet.example_subnet.id
        primary_ip {
          name = "example-reserved-ip1"
          auto_delete = true
          address = "${replace(ibm_is_subnet.example_subnet.ipv4_cidr_block, "0/24", "14")}"
        }
      }
    
      vpc  = ibm_is_vpc.example_vpc.id
      zone = "us-south-1"
      keys = [ibm_is_ssh_key.example_sshkey.id]
    }
    
  • 创建使用专用目录管理的映像的实例。

    resource "ibm_is_instance" "example_instance" {
      name    = "example-instance-reserved-ip"
      image   = data.ibm_is_image.example_image.id
      profile = data.ibm_is_instance_profile.example_profile.name
    
      primary_network_interface {
        name   = "eth0"
        subnet = ibm_is_subnet.example_subnet.id
        primary_ip {
          reserved_ip = ibm_is_subnet_reserved_ip.example_reserved_ip.reserved_ip
        }
      }
      network_interfaces {
        name   = "eth1"
        subnet = ibm_is_subnet.example_subnet.id
        primary_ip {
          name = "example-reserved-ip1"
          auto_delete = true
          address = "${replace(ibm_is_subnet.example_subnet.ipv4_cidr_block, "0/24", "14")}"
        }
      }
    
      vpc  = ibm_is_vpc.example_vpc.id
      zone = "us-south-1"
      keys = [ibm_is_ssh_key.example_sshkey.id]
    }