阿里云通过CLI使用ECS实例

如果您平时习惯使用CLI方式运维阿里云资源,可以通过Cloud Shell以CLI方式创建和使用ECS实例。

CLI使用方式

  • 访问Cloud Shell客户端。

    在阿里云控制台访问

    登录ECS管理控制台,单击右上角的Cloud Shell图标,进入Cloud Shell控制台。Cloud Shell

    在本地终端访问

  • 安装CLI。
  • 授予CLI获取访问您阿里云账户的权限。本文以AccessKey认证为例。更多认证方式,请参见配置凭证。aliyun configure
    aliyun Access Key ID [None]: xxxxx
    aliyun Access Key Secret [None]: xxxxx
    Default Region Id [None]: cn-hangzhou # 地域ID
    Default Output Format [json]: json (Only supports JSON) # 目前仅支持JSON
    Default Language [zh|en]: en # 在这里选择英语配置完成后,若配置凭证有效,显示如下信息:Configure Done!!!
    …………..888888888888888888888 ……..=8888888888888888888D=…………..
    ………..88888888888888888888888 ……….D8888888888888888888888I………..
    ………,8888888888888ZI: ………………………=Z88D8888888888D……….
    ………+88888888 ……………………………………88888888D……….
    ………+88888888 …….Welcome to use Alibaba Cloud…….O8888888D……….
    ………+88888888 …………. ************* …………..O8888888D……….
    ………+88888888 …. Command Line Interface(Reloaded) ….O8888888D……….
    ………+88888888…………………………………….88888888D……….
    ……….D888888888888DO+. ……………………..?ND888888888888D……….
    ………..O8888888888888888888888………..D8888888888888888888888=………..
    ………… .:D8888888888888888888………78888888888888888888O …………..
  • 在阿里云CLI中,按照下列格式要求调用API完成某个任务。重要
    • 不同数据类型字段需要遵循的格式要求,详细说明,请参见参数格式说明。
    • 调用接口前建议您仔细阅读接口的相关说明。

    aliyun
    –parameter1 value1 \
    –parameter2 value2 \

  • CLI请求示例

    重要

    • 以下请求仅为示例,具体请求命令请根据实际需求修改。
    • ECS的API详细信息,请参见API参考。

    创建ECS实例

    以在杭州地域创建一个基于Alibaba Cloud Linux镜像的包年包月的ECS实例为例,指导您如何通过CLI创建ECS实例。

  • 准备工作。在创建ECS实例前,请确保您已经创建专有网络VPC、交换机、安全组,并获取其ID。说明 如果您已有上述资源且符合需求,可跳过该步骤。
  • 调用CreateVpc创建VPC。示例:创建VPC假设在华东1(杭州)创建专有网络VPC,VPC网段为192.168.0.0/16。
    • 命令aliyun vpc CreateVpc \
      –RegionId cn-hangzhou \
      –CidrBlock 192.168.0.0/16
    • 返回结果{
      “RequestId”: “EC94C73B-8103-4B86-B353-E65C7C9E****”,
      “ResourceGroupId”: “rg-acfmzw2jz2z****”,
      “RouteTableId”: “vtb-bp1jxpr9ji5wcn4yv****”,
      “VRouterId”: “vrt-bp1dyxemup2q4ouga****”,
      “VpcId”: “vpc-bp1d9v4763ym2hlzt****”
      }
  • 调用CreateVSwitch在VPC中创建交换机。示例:创建交换机假设交换机网段为192.168.0.0/24,VPC ID为vpc-bp1d9v4763ym2hlzt****。
    • 命令aliyun vpc CreateVSwitch \
      –CidrBlock 192.168.0.0/24 \
      –VpcId vpc-bp1d9v4763ym2hlzt**** \
      –ZoneId=cn-hangzhou-i
    • 返回结果{
      “RequestId”: “AF1787C4-0D81-44F0-A324-D5C54EA0****”,
      “VSwitchId”: “vsw-bp11hf5r945gewysp****”
      }
  • 调用CreateSecurityGroup创建安全组。示例:创建安全组
    • 命令aliyun ecs CreateSecurityGroup \
      –RegionId cn-hangzhou \
      –VpcId vpc-bp1d9v4763ym2hlzt****
    • 返回结果{
      “RequestId”: “B1C25C34-9B84-49E3-9E50-FB7D7970****”,
      “SecurityGroupId”: “sg-bp18z2q1jg4gq95t****”
      }
  • 调用AuthorizeSecurityGroup添加安全组规则。示例:添加安全组规则假设在安全组(ID为sg-bp18z2q1jg4gq95t****)的入方向放行22端口,协议为TCP。
    • 命令aliyun ecs AuthorizeSecurityGroup \
      –RegionId cn-hangzhou \
      –SecurityGroupId sg-bp18z2q1jg4gq95t**** \
      –IpProtocol tcp \
      –SourceCidrIp 0.0.0.0/0 \
      –PortRange 22/22
    • 返回{
      “RequestId”: “FA8B1E61-C9C9-4D91-9628-64B8E2F4****”
      }
  • 调用RunInstances创建一个包年包月的ECS实例。
    • 场景示例
      参数 示例取值
      RegionId 地域:cn-hangzhou
      ImageId 镜像:推荐使用Alibaba Cloud Linux镜像aliyun_2_1903_x64_20G_alibase_20200324.vhd。
      InstanceType 实例规格:

      • 个人应用:推荐选择1核2G的实例规格ecs.s6-c1m2.small。
      • 中小企业应用:推荐选择2核4G的实例规格ecs.c5.large。
      SecurityGroupId 安全组ID:根据CreateSecurityGroup返回结果。 示例:sg-bp18z2q1jg4gq95t****
      VSwitchId 交换机ID:根据CreateVSwitch返回结果。 示例:vsw-bp11hf5r945gewysp****
      InstanceName 实例名称。 示例:ecs_cli_demo
      InstanceChargeType 付费方式:实例按照包年包月的付费方式PrePaid。 说明 您需要确保账号余额能够完成支付。
      PeriodUnit 付费周期单位:Month
      Period 付费时长:1
      InternetMaxBandwidthOut 公网IP带宽:1
      Password 实例登录密码:说明 您需要自定义复杂密码以保护ECS实例的安全。
    • 命令:aliyun ecs RunInstances \
      –RegionId cn-hangzhou \
      –ImageId aliyun_2_1903_x64_20G_alibase_20200324.vhd \
      –InstanceType ecs.s6-c1m2.small \
      –SecurityGroupId sg-bp18z2q1jg4gq95t**** \
      –VSwitchId vsw-bp11hf5r945gewys**** \
      –InstanceName ecs_cli_demo \
      –InstanceChargeType PrePaid \
      –PeriodUnit Month \
      –Period 1 \
      –InternetMaxBandwidthOut 1 \
      –Password
    • 返回{
      “InstanceIdSets”: {
      “InstanceIdSet”: [
      “i-bp1ducce5hs1jm98****”
      ]
      },
      “OrderId”: 22660647277****,
      “RequestId”: “7F0166F9-9466-4AE1-8799-E68D6514****”,
      “TradePrice”: ****
      }
  • 连接实例

  • (可选)获取实例公网IP信息。假设调用DescribeInstances,通过实例ID(i-bp1ducce5hs1jm98****)获取实例公网IP信息。
    • 命令aliyun ecs DescribeInstances \
      –RegionId cn-hangzhou \
      –InstanceIds ‘[“i-bp1ducce5hs1jm98****”]’
    • 返回参数PublicIpAddresses为实例公网IP信息。公网IP
  • 连接ECS实例。ssh @ssh登录
  • 启动实例

    调用StartInstance接口启动一台ECS实例。

    • 场景示例:实例ID为i-bp1aq39j2yul5y01****,启动实例不做故障处理,并且预检查后直接启动ECS实例。
    • 命令:
    • aliyun ecs StartInstance \
      –InstanceId i-bp1aq39j2yul5y01**** \
      –InitLocalDisk false \
      –DryRun false

    • 返回
    • {
      “RequestId”: “2DD09CBD-1F4D-4923-94C7-F3BD67137BBE”
      }

    查询实例的详细信息

    您可以调用DescribeInstances接口查询一台或多台ECS实例的详细信息。示例1:根据实例ID查询ECS实例假设查询实例ID为i-bp14a7xie8erwsvo****的实例信息。

    • 命令aliyun ecs DescribeInstances \
      –RegionId cn-hangzhou \
      –InstanceIds ‘[“i-bp14a7xie8erwsvo****”]’ \
      –output cols=InstanceId,InstanceName,Description,ImageId,Status rows=Instances.Instance[]
    • 返回InstanceId | InstanceName | Description | ImageId | Status
      ———- | ———— | ———– | ——- | ——
      i-bp14a7xie8erwsvo**** | wpdemo | wp | m-bp12qhgxbmp5eh02**** | Running

    示例2:根据标签查询ECS实例假设查询绑定owner:zhangsan标签的ECS实例信息。

    • 命令aliyun ecs DescribeInstances \
      –RegionId cn-hangzhou \
      –Tag.1.Key owner \
      –Tag.1.Value zhangsan \
      –output cols=InstanceId,InstanceName,Description,ImageId,Status rows=Instances.Instance[]
    • 返回InstanceId | InstanceName | Description | ImageId | Status
      ———- | ———— | ———– | ——- | ——
      i-bp1aq39j2yul5y01**** | namedemo01 | demo01 | m-bp12qhgxbmp5eh02**** | Stopped
      i-bp1dpvr406hq1jnw**** | namedemo02 | demo01 | centos_7_06_64_20G_alibase_20190711.vhd | Running

    示例3:根据镜像ID查询ECS实例查询镜像为m-bp12qhgxbmp5eh02****标签的ECS实例信息。

    • 命令:aliyun ecs DescribeInstances \
      –RegionId cn-hangzhou \
      –ImageId m-bp12qhgxbmp5eh02**** \
      –output cols=InstanceId,InstanceName,Description,ImageId,Status rows=Instances.Instance[]
    • 返回InstanceId | InstanceName | Description | ImageId | Status
      ———- | ———— | ———– | ——- | ——
      i-bp14a7xie8erwsvo**** | demo01 | desc01 | m-bp12qhgxbmp5eh02**** | Running
      i-bp1aq39j2yul5y01**** | demo02 | desc02 | m-bp12qhgxbmp5eh02**** | Stopped

    示例4:查询指定VPC内的ECS实例假设VPC ID为vpc-bp1vwnn14rqpyiczj****、交换机ID为vsw-bp1ddbrxdlrcbim46****。

    • 命令aliyun ecs DescribeInstances \
      –RegionId cn-hangzhou \
      –VpcId vpc-bp1vwnn14rqpyiczj**** \
      –VSwitchId vsw-bp1ddbrxdlrcbim46**** \
      –output cols=InstanceId,InstanceName,ImageId,Status rows=Instances.Instance[]
    • 返回InstanceId | InstanceName | ImageId | Status
      ———- | ———— | ——- | ——
      i-bp14a7xie8erwsvo**** | namedemo01 | m-bp12qhgxbmp5eh02**** | Running
      i-bp1c271nqm264lwj**** | namedemo02 | P2VSImageLnx125 | Running
      i-bp18a6ub0vt1tvn1**** | namedemo03 | centos_7_02_64_20G_alibase_20170818.vhd | Running
      i-bp1aq39j2yul5y01**** | namedemo04 | m-bp12qhgxbmp5eh02**** | Stopped

    示例5:分页查询ECS实例调用DescribeInstances分页查询杭州地域的ECS实例,每页展示5条信息。

    • 命令aliyun ecs DescribeInstances \
      –RegionId cn-hangzhou \
      –PageNumber 2 \
      –PageSize 5 \
      –output cols=InstanceId,InstanceName,ImageId,Status rows=Instances.Instance[]
    • 返回InstanceId | InstanceName | ImageId | Status
      ———- | ———— | ——- | ——
      i-bp1akazu9o0rm7q0**** | demoname01 | centos_8_0_x64_20G_alibase_20191225.vhd | Running
      i-bp134jm1g6kqyiqu**** | demoname02 | m-bp1bc3g3b032o0ja**** | Running
      i-bp17qwke5y0v7hk2**** | demoname03 | centos_7_02_64_20G_alibase_20170818.vhd | Running
      i-bp18a6ub0vt1tvn1**** | demoname04 | centos_7_02_64_20G_alibase_20170818.vhd | Running
      i-bp1aq39j2yul5y01**** | demoname05 | m-bp12qhgxbmp5eh02**** | Stopped

    创建快照

    调用CreateSnapshot接口创建快照。

    • 场景示例:为高效云盘d-bp14bjlwo3t3owin****创建一个快照(快照名称为demoname,描述为demo,保留时间:3天)。
    • 命令aliyun ecs CreateSnapshot \
      –DiskId d-bp14bjlwo3t3owin**** \
      –SnapshotName demoname \
      –Description demo \
      –RetentionDays 3
    • 返回{
      “RequestId”: “DFB0B01F-420D-4932-911E-7328920C2012”,
      “SnapshotId”: “s-bp1eyr9nxxoo9icj****”
      }

    通过实例创建自定义镜像

    调用CreateImage接口,基于ECS实例创建一个自定义镜像。

    • 场景示例:实例ID为i-bp1aq39j2yul5y01****,操作系统为CentOS,地域为华东1(杭州)(cn-hangzhou)。更多参数说明,请参见CreateImage。
    • 命令:aliyun ecs CreateImage \
      –RegionId cn-hangzhou \
      –InstanceId i-bp1aq39j2yul5y01**** \
      –ImageName demoimage \
      –Description demoimage \
      –Platform CentOS
    • 返回{
      “ImageId”: “m-bp1503ydxxrppctb****”,
      “RequestId”: “011AE447-20CE-4043-81AC-7AF2BBC45C38”
      }

    发表评论