命令行工具


概览

zstack-cli是供管理员调用所有ZStack API的命令行工具。本手册中所有API示例都将用zstack-cli来展示。

ZStack基于SOA(Service Oriented Architecture,面向服务架构)而设计,所有的ZStack操作本质上都是消息。例如,启动云主机的StartVmInstanceCLI命令,可以映射到APIStartVmInstanceMsg的API消息。

ZStack包含了内置的HTTP服务,将所有API消息封装于HTTP POST请求中,zstack-cli是基于内置的HTTP服务调用API请求进行相应的业务处理。


用法

链接到ZStack管理节点

默认情况下安装ZStack管理节点后,zstack-cli会被同步安装,可在shell终端通过命令zstack-cli直接启动:
[root@localhost ~]# zstack-cli

  ZStack command line tool
  Type "help" for more information
  Type Tab key for auto-completion
  Type "quit" or "exit" or Ctrl-d to exit
没有指定任何参数时,zstack-cli默认会连接localhost的8080端口;如果要连接远程的ZStack管理节点, 可以通过选项-H-p来分别指定IP和端口号。
[root@localhost ~]# zstack-cli --help
Usage: -c [options]

Options:
  -h, --help            show this help message and exit
  -H HOST, --host=HOST  [Optional] IP address or DNS name of a ZStack
                        management node. Default value: localhost
  -p PORT, --port=PORT  [Optional] Port that the ZStack management node is
                        listening on. Default value: 8080
  -d DEPLOY_CONFIG_FILE, --deploy=DEPLOY_CONFIG_FILE
                        [Optional] deploy a cloud from a XML file.
  -t DEPLOY_CONFIG_TEMPLATE_FILE, --template=DEPLOY_CONFIG_TEMPLATE_FILE
                        [Optional] variable template file for XML file
                        specified in option '-d'
  -D ZSTACK_CONFIG_DUMP_FILE, --dump=ZSTACK_CONFIG_DUMP_FILE
                        [Optional] dump a cloud to a XML file
  -P ADMIN_PASSWORD, --password=ADMIN_PASSWORD
                        [Optional] admin account password for dumping and
                        recovering cloud environment. It can only be used when
                        set -D or -d option. Default is 'password'.
  -s, --no-secure       [Optional] if setting -s, will save password
                        information in command history.
[root@localhost ~]# zstack-cli -H 172.20.16.35

  ZStack command line tool
  Type "help" for more information
  Type Tab key for auto-completion
  Type "quit" or "exit" or Ctrl-d to exit


admin >>>

如果有多个管理节点, 可以通过zstack-cli连接到任一个管理节点。

模式(Modes)

  • 命令模式
    zstack-cli可从shell接受参数工作在命令模式。在命令模式下,zstack-cli只运行一次,然后输出结果到shell,例如:
    [root@localhost ~]# zstack-cli -H 172.20.16.35 QueryZone name=Zone-1
    {
        "inventories": [
            {
                "createDate": "Nov 17, 2017 8:27:47 PM",
                "lastOpDate": "Nov 17, 2017 8:27:47 PM",
                "name": "Zone-1",
                "state": "Enabled",
                "type": "zstack",
                "uuid": "c3a228078e8c4f81ba7da0b16fb8d77f"
            }
        ],
        "success": true
    }
  • 交互模式
    ztack-cli也可工作在交互模式。在交互模式下,zstack-cli会维护一个会话(session)来不断地执行命令,例如:
    ...
    
    admin >>>query
    BatchQuery                                        PrometheusQueryLabelValues
    PrometheusQueryMetadata                           PrometheusQueryPassThrough
    PrometheusQueryVmMonitoringData                   QueryAccessKey
    QueryAccount                                      QueryAccountResourceRef
    QueryAffinityGroup                                QueryAlarm
    QueryAlert                                        QueryAliyunDiskFromLocal
    ...
    QueryVmCdRom                                      QueryVmInstance
    QueryVmNic                                        QueryVmNicInSecurityGroup
    QueryVniRange                                     QueryVolume
    QueryVolumeBackup                                 QueryVolumeSnapshot
    QueryVolumeSnapshotTree                           QueryVpcIkeConfigFromLocal
    QueryVpcIpSecConfigFromLocal                      QueryVpcRouter
    QueryVpcUserVpnGatewayFromLocal                   QueryVpcVpnConnectionFromLocal
    QueryVpcVpnGatewayFromLocal                       QueryVtep
    QueryWebhook                                      QueryZone
    ZQLQuery
    
    admin >>>QueryZone

手动执行时通常更适合使用交互模式,而脚本集成时通常更适合使用命令模式。

登录(Login)

ZStack的认证和访问管理系统(IAM,Identity and Access Management)支持三种登录方式:账户登录、用户登录、AD/LDAP登录。

账户分为admin管理员账户和普通账户。admin管理员账户使用默认密码password。

在执行任何命令之前, 需运行登录命令LogInByAccount取得一个会话令牌(session token),这个令牌会被zstack-cli自动保存到~/.zstack/cli/session,需要单独维护。
admin >>>LogInByAccount accountName=admin password=password

登出(LogOut)

一旦工作完成,可以使用LogOut命令结束当前会话:
admin >>>LogOut

LogOut命令可以接受参数sessionUuid, 可选参数,zstack-cli默认会自动读取已保存的session。

执行API命令

每一个API都可拥有多个参数,可通过命令模式或交互模式来执行:
  • 命令模式:
    [root@localhost ~]# zstack-cli StartVmInstance uuid=f1bd87fe2a40498db78ee596766f57b0
  • 交互模式:
    admin >>>StartVmInstance uuid=f1bd87fe2a40498db78ee596766f57b0

查看命令历史

可以使用more命令来查看命令历史,例如:
  • 命令模式:
    [root@localhost ~]# zstack-cli more
  • 交互模式:
    admin >>>more
结果格式和Linux *more*命令类似,可使用上下键来浏览或者搜索。

[NUM]   COMMAND
------------------------------------------------
[1]      LogInByAccount accountName=admin password=******
[2]      ['LogOut']
[3]      ['QueryVmInstance', 'state=Running']
[4]      ['QueryZone']
[5]      ['QueryVmInstance']
[6]      LogInByAccount accountName=admin password=******
[7]      [u'QueryVmInstance', u'count=True', u'state=Stopped']
[8]      [u'QueryVmInstance', u'count=True', u'state=Running']
[9]      [u'QueryVmInstance', u'count=True']
...
使用more后面跟上命令编号可以查看一个命令的详情:
  • 命令模式:
    [root@localhost ~]# zstack-cli more 6
  • 交互模式:
    admin >>>more 6
    结果类似于:
    
    Command:
            LogInByAccount accountName=admin password=******
    Result:
    {
        "inventory": {
            "accountUuid": "36c27e8ff05c4780bf6d2fa65700f22e",
            "createDate": "Dec 28, 2017 5:13:59 PM",
            "expiredDate": "Dec 28, 2017 7:13:59 PM",
            "userUuid": "36c27e8ff05c4780bf6d2fa65700f22e",
            "uuid": "c0488a149e1244799317a84ab3378763"
        },
        "success": true
    }
    (END)

导出命令结果

可通过save命令导出命令历史,可以一次保存一个历史也可以一次保存多个历史:
  • 一次保存一个历史
    • 命令模式:
      [root@localhost ~]# zstack-cli save 1
      Saved command: 1 result to file: /root/LogInByAccount-1.json
    • 交互模式:
      admin >>>save 1
      Saved command: 1 result to file: /root/LogInByAccount-1.json
  • 一次保存多个历史
    • 命令模式:
      [root@localhost ~]# zstack-cli save 1,2,3
      [u'CreateDataVolume', u'primaryStorageUuid=4db283cfa9ac4b0a9994aab52bff4069', u'diskOfferingUuid=7c3ba7609e2e44d2a429e93e2944871e', u'name=volume', u'systemTags=localStorage::hostUuid::37bfae93611541039aec7ae87a204e5a']
      Saved command: 1 result to file: /usr/local/CreateDataVolume-1.json
      [u'CreateDataVolume', u'primaryStorageUuid=4db283cfa9ac4b0a9994aab52bff4069', u'diskOfferingUuid=7c3ba7609e2e44d2a429e93e2944871e', u'name=volume', u'systemTags=localStorage::hostUuid::37bfae93611541039aec7ae87a204e5a']
      Saved command: 2 result to file: /usr/local/CreateDataVolume-2.json
      [u'CreateDataVolume', u'primaryStorageUuid=4db283cfa9ac4b0a9994aab52bff4069', u'diskOfferingUuid=7c3ba7609e2e44d2a429e93e2944871e', u'name=volume', u'systemTags=localStorage::hostUuid::37bfae93611541039aec7ae87a204e5a']
      Saved command: 3 result to file: /usr/local/CreateDataVolume-3.json
    • 交互模式:
      admin >>>save 1,2,3
      [u'CreateDataVolume', u'primaryStorageUuid=4db283cfa9ac4b0a9994aab52bff4069', u'diskOfferingUuid=7c3ba7609e2e44d2a429e93e2944871e', u'name=volume', u'systemTags=localStorage::hostUuid::37bfae93611541039aec7ae87a204e5a']
      Saved command: 1 result to file: /usr/local/CreateDataVolume-1.json
      [u'CreateDataVolume', u'primaryStorageUuid=4db283cfa9ac4b0a9994aab52bff4069', u'diskOfferingUuid=7c3ba7609e2e44d2a429e93e2944871e', u'name=volume', u'systemTags=localStorage::hostUuid::37bfae93611541039aec7ae87a204e5a']
      Saved command: 2 result to file: /usr/local/CreateDataVolume-2.json
      [u'CreateDataVolume', u'primaryStorageUuid=4db283cfa9ac4b0a9994aab52bff4069', u'diskOfferingUuid=7c3ba7609e2e44d2a429e93e2944871e', u'name=volume', u'systemTags=localStorage::hostUuid::37bfae93611541039aec7ae87a204e5a']
      Saved command: 3 result to file: /usr/local/CreateDataVolume-3.json
默认情况下结果被保存到当前目录下,也可以通过额外提供一个路径来指定目的文件夹:
save 1 /tmp

学习路径

ZStack 产品学习路径

快速梳理文档,点击相应文本链接,快速跳转到相应文档的页面,学习 ZStack 产品。

我知道了

下载ZStack企业版

您已填写过基本信息?点击这里

姓名应该不少于两个字符
手机号格式错误
验证码填写错误 获取短信验证码 60 秒后可重发
公司名称不应该少于4个字符
邮箱格式错误

下载链接将会通过邮件形式发送至您的邮箱,请谨慎填写。

下载ZStack企业版

还未填写过基本信息?点击这里

邮箱或手机号码格式错误
验证手机号
手机号格式错误
验证码填写错误 获取短信验证码 60 秒后可重发
登录观看培训视频
仅对注册用户开放,请 登录 或 填写资料 观看培训视频
填写资料

商务咨询:

400-962-2212 转 1

售后咨询:

400-962-2212 转 2

商务联系:

sales@zstack.io
ZStack认证培训咨询
姓名应该不少于两个字符
手机号格式错误
验证码填写错误 获取短信验证码 60 秒后可重发
公司名称不应该少于4个字符
邮箱格式错误

商务咨询:

400-962-2212 转 1

商务联系:

channel@zstack.io
申请ZStack多机版
姓名应该不少于两个字符
手机号格式错误
验证码填写错误 获取短信验证码 60 秒后可重发
公司名称不应该少于4个字符
邮箱格式错误

商务咨询:

400-962-2212 转 1

售后咨询:

400-962-2212 转 2

商务联系:

sales@zstack.io

下载链接已发送至您的邮箱。

如未收到,请查看您的垃圾邮件、订阅邮件、广告邮件。 当您收到电子邮件后,请点击 URL 链接,以完成下载。

下载链接已发送至您的邮箱。

如未收到,请查看您的垃圾邮件、订阅邮件、广告邮件。
或点击下方URL链接 (IE内核浏览器请右键另存为), 完成下载:

感谢您使用 ZStack 产品和服务。

成功提交申请。

我们将安排工作人员尽快与您取得联系。

感谢您使用 ZStack 产品和服务。

立即体验

联系我们

商务咨询
400-962-2212 转 1
售后咨询
400-962-2212 转 2

回到顶部

产品试用申请
请选择您要试用的产品
ZStack企业版
ZStack混合云版
ZStack信创云平台
ZStack Ceph企业版
ZStack Mini 边缘计算一体机
ZStack CMP 多云管理平台
请填写您的基本信息
姓名应该不少于两个字符
手机号格式错误
验证码填写错误 获取短信验证码 60 秒后可重发
公司名称不应该少于4个字符
邮箱格式错误

商务咨询:

400-962-2212 转 1

售后咨询:

400-962-2212 转 2

商务联系:

sales@zstack.io

成功提交申请。

我们将安排工作人员尽快与您取得联系。

感谢您使用 ZStack 产品和服务。