-
自动补全 KooCLI开启自动补全后,在输入命令时使用“Tab”键,会根据已有命令提示其待补全的内容。 开启自动补全功能: hcloud auto-complete on hcloud auto-complete on开启成功!自动补全仅支持bash,若未生效请执行`bash`命令 关闭自动补全功能: hcloud auto-complete off hcloud auto-complete off关闭成功!若未生效请执行`bash`命令 自动补全功能仅支持bash。 自动补全提示参数时,若提示的参数名中有“[N]”,其含义为索引位,请使用数字代替该字符;若提示的参数名中有“{*}”,其含义为自定义参数名称,请使用任意不含“.”的字符串代替该字符; 父主题: 常用命令
-
设置配置项中的custom参数 KooCLI支持向配置项中设置custom参数,方便用户集中管理命令中高频使用,参数值过长,或需要对其值加密处理的参数。使用如下命令进入交互模式,根据提示新增或修改配置项中的custom参数: hcloud configure set [--cli-profile=${profileName}] --cli-custom=true hcloud configure set --cli-profile=test --cli-custom=true 1.请输入custom参数的名称: projectId 2.此custom参数值是否加密保存(y/N): n 3.请输入custom参数的值: 06810000000000000000000000f89d2e 此custom参数已保存,使用`Ctrl+C`可终止设置custom参数 1.请输入custom参数的名称: password 2.此custom参数值是否加密保存(y/N): y 3.请输入custom参数的值: **** 此custom参数已保存,使用`Ctrl+C`可终止设置custom参数 custom参数的名称不能超过128位字符。在交互设置的过程中,用户可根据custom参数在使用中的实际需要判断该参数是否需要加密保存。对于需要加密保存的custom参数,为保障您的参数安全,对您输入的参数值进行了匿名化处理。在您输入过程中不会显示输入的字符,在输入结束回车至下一行时,会以“****”回显您的输入内容。 使用custom参数的方法是将命令中原参数的value值用“custom.${custom参数的名称}”代替,例如: hcloud E
CS NovaListServers --cli-profile=test --project_id="custom.projectId" 使用被加密存储的custom参数时,KooCLI会在可能显示其值的情况下(例如:debug信息中打印的request请求的url,或dryrun模式下打印的body体参数),对其值做匿名化处理。 父主题: 新增或修改配置项
-
删除指定配置项及其custom参数 使用“--cli-profile”指定要删除的配置项的名称。删除指定配置项的命令为: hcloud configure delete --cli-profile=${profileName} hcloud configure delete --cli-profile=test删除配置项test成功,默认配置项为default 删除配置项时,会同时删除其中的系统参数和custom参数。 父主题: 删除指定配置项
-
无配置方式使用概述 KooCLI既可以使用配置项调用云服务API,也提供了无配置的操作方式,无配置方式使用是指在使用KooCLI时不通过已有配置项传入当前用户的认证信息,而是直接在命令中传入当前用户认证相关的参数。此方式可使用户免于添加配置项,方便快捷地使用KooCLI。用户可以通过如下认证方式直接调用云服务API: 无配置方式AKSK 无配置方式ecsAgency 无配置方式使用KooCLI时,需留意这些注意事项,也需了解各认证方式的优先级。 父主题: 无配置方式使用KooCLI
-
删除指定配置项中的custom参数 使用“--cli-profile”指定要删除的配置项的名称。删除指定配置项中的custom参数的命令可分为: 删除指定配置项中的指定custom参数: hcloud configure delete --cli-profile=${profileName} [--cli-custom=true] --cli-custom-key=${customName} hcloud configure delete --cli-profile=test --cli-custom-key=projectId删除配置项test中的custom参数projectId成功 删除指定配置项中的所有custom参数: hcloud configure delete --cli-profile=${profileName} --cli-custom=true hcloud configure delete --cli-profile=test --cli-custom=true删除配置项test中的所有custom参数成功 父主题: 删除指定配置项
-
打印命令调用过程中的调试信息 KooCLI支持打印命令执行过程中的调试信息。在命令中添加“--debug”即可: hcloud VPC ShowVpc/v3 --cli-region="cn-north-4" --project_id="0dd8cb****************19b5a84546" --vpc_id="0bbe****-****-****-****-****235be6e7" --debug[debug info] 2022/06/21 19:59:25 Read and connection timeouts are 40s and 30s respectively.[debug info] 2022/06/21 19:59:25 URL: https://vpc.cn-north-4.myhuaweicloud.com/v3/0dd8cb****************19b5a84546/vpc/vpcs/0bbe****-****-****-****-****235be6e7[debug info] 2022/06/21 19:59:26 API response status code is 200.[debug info] 2022/06/21 19:59:26 API response X-Request-Id is f9fd68****************2e48ec7f88.{ "vpc": { "id": "0bbe****-****-****-****-****235be6e7", "name": "CCI-VPC-*******", "description": "", "cidr": "192.***.*.*/**", "extend_cidrs": [], "status": "ACTIVE", "project_id": "0dd8cb****************19b5a84546", "enterprise_project_id": "0", "tags": [], "created_at": "2022-05-10T02:53:42Z", "updated_at": "2022-05-10T02:53:43Z", "cloud_resources": [ { "resource_type": "routetable", "resource_count": 1 }, { "resource_type": "virsubnet", "resource_count": 1 } ] }, "request_id": "f9fd68****************2e48ec7f88"} 父主题: 选项说明
-
指定区域 KooCLI除了可以从配置项读取区域信息外,还可以在命令中传入cli-region值,如下: hcloud EVS DeleteVolume --cli-region="cn-north-4" --volume_id="aed9****-****-****-****-****0e3219cf" --project_id="0dd8cb****************19b5a84546"{ "job_id": "70a5****-****-****-****-****441e862b"} 不同区域,项目也不同,因此指定区域时,一般需要同时指定项目ID。 父主题: 选项说明
-
跳过https请求证书验证 cli-skip-secure-verify选项用于指定是否跳过https请求证书验证(不建议)。当用户已配置HTTP代理,KooCLI调用云服务的API时,可能会因证书校验失败,导致请求报错x509。用户可在命令中添加“--cli-skip-secure-verify=true”后执行原命令,在执行时会向用户交互以确认是否跳过https请求证书验证: hcloud ECS NovaListServers --cli-region="cn-north-4" --project_id="2cc6****************6caefa5019ef" --cli-skip-secure-verify=true使用`--cli-skip-secure-verify=true`跳过https请求证书验证会导致您的隐私数据暴露在公网,有被外部窃取的风险,请确认是否跳过(y/N): y{ "servers": []} 需要注意的是,因为使用“--cli-skip-secure-verify=true”跳过https请求证书验证会导致您的隐私数据暴露在公网,有被外部窃取的风险,不建议您这样使用。推荐的做法是将您公司颁发的证书导入到操作系统的可信任CA证书下。 父主题: 选项说明
-
获取账号ID、项目ID 在调用云服务API的时候,大多数场景需要填入项目ID。项目ID获取步骤如下: 注册并登录管理控制台。 单击右上角用户名,在下拉列表中单击“我的凭证”,查看“账号ID(cli-domain-id)”、“项目ID(cli-project-id)”,如下图。 项目用于对云服务器资源进行物理隔离,默认有区域级别的隔离,也可在区域下建立多项目,做更细级别的隔离。因此,请参考下图,在项目列表中找到您的服务器资源对应的所属区域,在其左侧获取对应区域的项目ID,单击其左侧的图标可获取对应区域下的子项目ID。 图1 账号ID、项目ID KooCLI可在API调用过程中, 根据当前用户认证信息自行获取请求头中需要的账号ID、项目ID,因此命令中可不输入该参数。 父主题: 获取认证信息
-
无配置方式AKSK 访问密钥(永久AK/SK) 用户可以在命令中直接输入永久AK(cli-access-key)和SK(cli-secret-key)调用云服务API: hcloud ECS NovaListServers --cli-region="cn-north-4" --project_id="4ff018c3******************f31948" --cli-access-key=******** --cli-secret-key=******** 临时安全凭证(临时AK/SK和SecurityToken) 用户可以在命令中直接输入临时AK(cli-access-key),SK(cli-secret-key)和SecurityToken(cli-security-token)调用云服务API: hcloud ECS NovaListServers --cli-region="cn-north-4" --project_id="4ff018c3******************f31948" --cli-access-key=******** --cli-secret-key=******** --cli-security-token=******** 父主题: 无配置方式使用KooCLI
-
交互式提示 KooCLI支持功能强大的多平台支持的交互式提示,方便命令构建,在命令中添加“--interactive”参数即可进入交互式提示。交互式中根据用户当前输入的内容,提示云服务名称,API的operation,参数及其描述信息,也提供部分参数值的补全功能。 交互式的使用方式如下: 交互模式中使用“Tab”或向上箭头、向下箭头键实现待补全内容的上下选择。 选中待补全内容后,使用空格键将已选内容追加到当前命令中。 进入交互模式后,使用“Ctrl+C”可切换至新命令行,使用“Ctrl+D”可退出交互模式。 交互式可提示和补全如下内容: 云服务 初次进入交互模式后,会自动提示云服务及系统命令列表。 图1 交互式中提示云服务和系统命令列表 所提示的云服务列表中,左列展示云服务短名/系统命令,右列展示该云服务的服务名称/该系统命令的描述信息。 API 已输入的云服务/系统命令经校验无误后,会继续提示该服务的API列表/该系统命令的子命令(或参数)。 所提示的系统命令列表中,左列展示该系统命令的子命令(或参数),右列展示该子命令(或参数)的描述信息。 图2 交互式中提示云服务的API列表 所提示的云服务API列表中,左列展示API的operation名称,右列展示该API的描述信息。 图3 交互式中提示系统命令的子命令 图4 交互式中提示系统命令的参数 若已输入的云服务/系统命令非法,则不再提示任何信息。 参数 已输入服务名与API的operation,或已输入系统命令及其子命令经校验无误后,会继续提示该API/系统命令子命令的参数列表。 图5 交互式中提示云服务API的参数列表 图6 交互式中提示系统命令子命令的参数列表 所提示的参数列表中,左列展示参数名称;右列展示该参数的描述信息。 若已输入API的operation/系统命令子命令非法,或已输入的参数名非法,则不再提示任何信息。 参数值 在交互式中,在部分参数名后输入等号,会提示该参数的可取值或默认值列表。例如:若调用API的命令中当前输入的参数是“--cli-region=”时,会提示该API的可选区域列表。 图7 交互式中提示已输入云服务API的可选区域列表 交互模式下的快捷键 Ctrl + W:将光标前的单词删除 Ctrl + K:将光标之后的内容删除 Ctrl + U:将光标之前的内容删除 Ctrl + L:清除屏幕 若用户尚未添加配置项,或默认配置项中的区域不被命令中的API所支持,用户需先根据提示,从目标API支持的cli-region列表中选择合适的区域值。确定区域后,KooCLI会继续提示该API的参数列表。 交互式提示参数时,除自定义map类型的参数(即:参数名中包含“{*}”的参数)外,已输入的参数不会重复提示;若提示的参数名中有“[N]”,其含义为索引位,请使用数字代替该字符;若提示的参数名中有“{*}”,其含义为自定义参数名称,请使用任意不含“.”的字符串代替该字符。 切换至新命令行后可使用向上箭头和向下箭头浏览已执行命令的历史记录。 父主题: 常用命令
-
指定请求连接重试次数 cli-retry-count选项用于指定请求连接重试次数。即:在请求超时(因网络连接问题导致请求失败)的情况下会自动重试。“--cli-retry-count”的默认取值为0次,参数取值范围为0~5次: 若因网络连接问题导致请求失败,KooCLI会提示如下信息: hcloud RDS ListInstances --cli-region="cn-north-4" --Content-Type="application/json" --project_id="2cc60****************caefa5019ef" --cli-retry-count=3[NETWORK_ERROR]连接超时4次(重试3次)请检查网络连通性 若网络连接正常,则可成功返回: hcloud RDS ListInstances --cli-region="cn-north-4" --Content-Type="application/json" --project_id="2cc60****************caefa5019ef" --cli-retry-count=3{ "instances": [], "total_count": 0} 需要注意的是,因为使用“--cli-retry-count”设置重试次数可能会导致调用接口幂等性的问题,有重复调用的风险。对于创建类的接口,请您谨慎使用。 父主题: 选项说明
-
结果轮询 cli-waiter用于结果轮询,参数应为JSON格式且使用双引号包裹。您可以使用此参数进行结果轮询: hcloud ECS NovaShowServer --cli-region="cn-north-4" --server_id="e6b99563-xxxx-xxxx-xxxx-1820d4fd2a6" --cli-query="server.status" --cli-waiter="{\"expr\":\"server.status\",\"to\":\"ACTIVE\",\"timeout\":300}"结果轮询结束,server.status的值达到期待结果ACTIVEACTIVE cli-waiter的取值中,每个字段的含义如下: - expr required string 使用JMESPath表达式指定被轮询字段 - to required string 被轮询字段的目标值 - timeout optional int 轮询的超时时间(秒),min=1,max=600,默认值180 - interval optional int 轮询的间隔时间(秒),min=2,max=10,默认值5 需要注意的是,因为使用“--cli-waiter”可能会导致调用接口幂等性的问题,有重复调用的风险,请您谨慎使用。建议查询类接口使用此参数。 父主题: 选项说明
-
查询指定配置项中的custom参数 使用“--cli-profile”指定要查询的配置项的名称,支持以table,json或tsv格式输出,默认为json格式。查看指定配置项中的custom参数的命令为: hcloud configure show [--cli-profile=${profileName}] --cli-custom=true hcloud configure show --cli-profile=test --cli-custom=true{ "password": { "value": "****", "isEncrypted": true }, "projectId": { "value": "06810000000000000000000000f89d2e", "isEncrypted": false }} 父主题: 查询指定配置项
-
在线体验KooCLI 在线体验功能内嵌于
API Explorer 页面中,您可以在除IE之外的任意浏览器上在线体验KooCLI,如下图所示,鼠标左键单击“CLI示例”方框中的图标按钮即可启动。 图1 在API Explorer上启动在线体验功能 启动时会自动为您分配一个Linux系统的容器(以下称之为实例)供您使用,该实例上已预装最新版的KooCLI。在线体验功能具有以下优点: 实例启动后默认将当前CLI示例内容复制到实例窗口并执行。 图2 实例启动后默认复制当前CLI示例内容到实例窗口 实例启动时,默认将已登录账号的认证信息配置到名为“default”的配置项中,实现自动授权。用户无需额外配置即可使用KooCLI管理云资源,方便快捷。 每个实例可使用时长为60分钟,60分钟后,实例将会被删除,并且数据也会被删除;在无操作情况下,实例15分钟后会被自动释放。 在线体验KooCLI时,会对所有登录用户进行安全认证,并实现实例按用户隔离,保证运行环境的安全。 命令执行时,会使用已登录账号的认证信息执行请求,部分接口调用涉及云产品计费,请谨慎操作。如需使用其它AK/SK认证,请您使用“hcloud configure set --cli-profile=${profileName} --cli-access-key=${accessKeyID} --cli-secret-key=${secretAccessKey}”命令,将您的AK/SK添加到新的配置项中。 在使用的过程中,请您尽量不要执行“hcloud configure init”命令,或通过“hcloud configure set”命令操作名称为“default”的配置项(即--cli-profile=default),避免该配置项被修改,破坏自动授权。 父主题: 在线体验