IBM Cloud 命令行使用指南(IaaS篇)
IBM Cloud CLI环境可以同时Access IBM云平台的IaaS,PaaS以及SaaS服务,而SL CLI仅访问IBM云平台的IaaS(基础硬件)环境。
写在最前:
在正式介绍上面说的这两个传统的访问方式之前,我在这里要先 提一下当下比较时尚的另一种访问方式,web shell的方式。这是专门为“懒人”设计的直接在web上进行命令行操作的一个shell窗口。打开和使用也都非常简单和方便。
当你登录进IBM Cloud平台之后,在右上角的几个快捷按钮中你就能找到她,如图:
点击之后,通常会打开浏览器的一个新的Tab页,并且是以当前登录IBM Cloud portal的用户的相关信息设置好了的web shell窗口。这个shell窗口的命令功能同下面要讲的IBM Cloud CLI功能相同,可以进行IaaS和PaaS以及SaaS层的操作。
下面正式开始分别介绍如何设置IBMCloud CLI环境和SL CLI环境,您可以根据不同的需求,设置不同的环境, 这两种方式是我们传统使用的方式:
第一部分:运行环境的准备
一、设置IBM Cloud CLI运行环境:
1.)运行安装命令
#curl -sL https://ibm.biz/idt-installer | bash
[Net.ServicePointManager]::SecurityProtocol = "Tls12"; iex(New-Object Net.WebClient).DownloadString('https://ibm.biz/idt-win-installer')
2.)验证安装
ibmcloud help
3.)配置环境
使用 IBM 标识登录到 IBM Cloud。如果您有多个帐户,系统会提示您选择要使用的帐户。如果未使用 -r 标志指定区域,那么还必须选择区域。
ibmcloud login
4.)使用插件扩展 IBM Cloud CLI (可选)
IBM Cloud™ CLI 支持通过插件框架来扩展其功能。您可以从存储库或 Web URL 安装插件,也可以在本地安装插件二进制文件。
从 IBM Cloud CLI 存储库安装插件
搜索插件
使用 ibmcloud plugin repo-plugins -r REPO_NAME 命令在存储库中查找插件。
IBM Cloud CLI 提供名称为“IBM Cloud”的正式插件存储库,您可以进行搜索,如以下示例所示:
ibmcloud plugin repo-plugins -r "IBM Cloud"
几种安装插件的方式:
使用 ibmcloud plugin install PLUGIN_NAME -r REPO_NAME 命令安装插件。例如,使用以下命令安装官方 IBM 插件存储库“IBM Cloud”中的插件:
ibmcloud plugin install auto-scaling
使用 ibmcloud plugin install LOCAL_FILE_NAME 命令在本地计算机上安装插件二进制文件。例如:
ibmcloud plugin install ./auto-scaling-darwin-amd64-0.2.7
使用 ibmcloud plugin install URL 命令直接通过 Web URL 安装插件。例如:
ibmcloud plugin install https://plugins.cloud.ibm.com/downloads/bluemix-plugins/auto-scaling/0.2.7/auto-scaling-darwin-amd64-0.2.7
二、设置SL CLI运行环境
1.) Linux环境安装SLCLI环境,确保linux系统已经安装有python环境,并且已安装有pip运行程序。然后运行以下命令安装SLCLI环境:
#pip install softlayer
2.) Windows环境下安装SLCLI运行环境, 安装python环境和pip运行程序,然后在windows命令行窗口执行:
C:\Users\xxx>pip install softlayer
第二部分:设置命令行运行环境的用户认证
设置用户和API Key:
一、IBM Cloud CLI设置用户登录
登录到IBM Cloud CLI:
ibmcloud login [-a API_ENDPOINT] [--sso] [-u USERNAME] [-p PASSWORD] [--apikey KEY | @KEY_FILE] [--no-iam] [-c ACCOUNT_ID | --no-account] [-g RESOURCE_GROUP] [-r REGION | --no-region] [-o ORG] [-s SPACE]
命令选项说明:
-a API_ENDPOINT
API 端点,例如 cloud.ibm.com。
--apikey API_KEY 或 @API_KEY_FILE_PATH
API 密钥内容或用 @ 符号指示的 API 密钥文件的路径。
-u USER_NAME
用户名。可选。
-p PASS_WORD
用户密码。可选。
-c ACCOUNT_ID
目标帐户的标识。此选项与 --no account 选项互斥。
--no-account
强制在没有帐户的情况下登录。建议不要使用此选项,此选项与 -c 选项互斥。
-g RESOURCE_GROUP
目标资源组的名称。可选。
-r REGION
目标区域的名称,例如,us-south 或 eu-gb。
--no-region
强制在不设置目标区域的情况下登录。
-o ORG
目标组织的名称。不推荐使用该选项。请改为使用 ibmcloud target -o org_name。可选。
-s SPACE
目标空间的名称。不推荐使用该选项。请改为使用 ibmcloud target -s space_name。可选。
--no-iam
强制向登录服务器(而不是公共 IAM)进行认证。
--skip-ssl-validation
绕过 HTTP 请求的 SSL 验证。不建议使用此选项。
示例,
以交互方式登录:
ibmcloud login
使用一次性密码登录,并设置目标帐户、组织和空间:
ibmcloud login --sso -c MyAccountID -o MyOrg -s MySpace
使用具有关联帐户的 API 密钥:
ibmcloud login --apikey api-key-string -o MyOrg -s MySpace
使用没有关联帐户的 API 密钥:
ibmcloud login --apikey api-key-string -c MyAccountID -o MyOrg -s MySpace
使用一次性密码:(个人推荐)
ibmcloud login -u UserID --sso
然后,CLI 会提供一个 URL 链接并要求输入密码(IBMid密码):
One Time Code (Get one at https://URL_Link_To_Obtain_Passcode):
在浏览器中打开链接,以获取密码。在控制台中输入密码进行登录。
使用你的IBMid登录,然后获取一次性密码,如下图:
登陆后显示如下:
二、SLCLI设置用户授权Key
1.) 登录cloud.ibm.com网页,选择并点击管理—访问权(IAM)
2.) 点击左边菜单栏“IBM Cloud API密钥”
3.) 查看经典基础架构API密钥的详情,
如果没有发现“经典基础架构API密码”条目,则说明还没有创建,可以点击右上角的“创建经典基础架构API”来创建,一个IBM Cloud账号只有一个经典基础架构API密钥。
4.) 记下用户名和API Key,如下图所示:
5.) 打开SLCLI命令行窗口,输入命令:
C:\Users\TINGZHU>slcli config setup
根据提示输入 “用户名”和“API Key”。
Endpoint项输入默认值:“回车即可”
Timeout使用默认值【0】:“回车即可” –永远不超时。
然后保存配置文件即可。
第三部分:使用命令行执行IaaS相关操作
使用SLCLI / IBM Cloud CLI for IaaS
常规经典基础架构服务命令:
使用 IBM Cloud CLI 中的经典基础架构命令可配置和管理基础架构服务。
运行 ibmcloud sl 命令
使用SLCLI,运行 slcli命令, 可查看可用命令的列表,
用法:
ibmcloud sl command [arguments...] [options...]
或 slcli command [arguments…] [options…]
command:
block 经典基础架构块存储器
file 经典基础架构文件存储器
dns 经典基础架构域名系统
globalip 经典基础架构全局 IP 地址
hardware 经典基础架构硬件服务器
image 经典基础架构计算映像
ipsec 经典基础架构 IPSEC VPN
loadbal 经典基础架构负载均衡器
security 经典基础架构 SSH 密钥和 SSL 证书
securitygroup 经典基础架构网络安全组
subnet 经典基础架构网络子网
ticket 经典基础架构管理凭单
vlan 经典基础架构网络 VLAN
vs 经典基础架构虚拟服务器
order 经典基础架构订单
user 经典基础架构管理用户
call-api 调用任意 API 端点
help 显示命令用法消息
要查看有关命令的帮助信息,请运行以下命令:
ibmcloud sl [command] -h
或者 sl [command] -h
使用样例:
slcli hardware list
可以使用linux的shell命令进行更复杂的查寻,如搜索指定ip地址的物理机器,然后将之详细信息写入指定文件,以备后续使用:
slcli hardware list|grep “xxx.xxx.xxx.xxx”|awk ‘{print $1}’|xargs slcli hardware detail >> /home/myservers.log
slcli hardware list > /home/temp-hw-list.log
cat /home/temp-ips.log|while read LINE; do cat /home/temp-hw-list.log|grep “$LINE “|awk ‘{print $1}’ >> /home/temp-ids.log; done
x=0
While read record; do (sleep 2;echo $record)|slcli hardware cancel --immediate $record ; let x++; echo “$x done”; done
Slcli ticket list|grep “Canncellation”
如果是虚拟机,步骤同上,只需将slcli命令中的hardware替换成virtual即可。
slcli hardware create [options]
Usage: slcli hardware create [OPTIONS]
Order/create a dedicated server.
Options:
-H, --hostname TEXT Host portion of the FQDN [required]
-D, --domain TEXT Domain portion of the FQDN [required]
-s, --size TEXT Hardware size [required]
-o, --os TEXT OS install code [required]
-d, --datacenter TEXT Datacenter shortname [required]
--port-speed INTEGER Port speeds [required]
--billing [hourly|monthly] Billing rate [default: hourly]
-i, --postinstall TEXT Post-install script to download
-k, --key TEXT SSH keys to add to the root user (multiple occurrence permitted)
--no-public Private network only
-e, --extra TEXT Extra options (multiple occurrence permitted)
--test Do not actually create the server
-t, --template PATH A template file that defaults the command-line options
--export PATH Exports options to a template file
--wait INTEGER Wait until the server is finished provisioning for up to X seconds before returning
-h, --help Show this message and exit.
See 'slcli server create-options' for valid options.
slcli server create-options可以查看创建机器所需要输入参数的具体数据和格式,下面列出了部分此命令的输出:
数据中心
机器size选项参数
操作系统选项参数
网卡速度选项参数
其他(额外ip)
创建物理机命令示例:
C:\Users\TINGZHU>ibmcloud sl hardware create -H zttest -D zhutingsh.com -s DSILVER_4110_96GB_1X960GB_SSD_SED_NORAID -o CENTOS_7_64 -d dal13 -p 100 -t
此次仅对命令执行测试验证,不真正创建机器,如需要真正创建,将命令行末尾的 -t选项删除即可。上面的命令输出如下:
ibmcloud sl vs create [OPTIONS]
命令选项:
-H, --hostname
必需。FQDN 的主机部分。
-D, --domain
必需。FQDN 的域部分。
-c, --cpu
必需。CPU 核心数。
-m, --memory
必需。内存(以兆字节为单位)。
--flavor
Public Virtual Server 类型模板键名。
-d, --datacenter
必需。数据中心短名称。
-o, --os
操作系统安装代码。提示:可以指定 _LATEST。
--image
映像标识。请参阅 ibmcloud sl image list 以获取参考信息。
--billing
计费费率。缺省值为:hourly。选项为:hourly 或 monthly。
--dedicated
创建专用虚拟服务器(专用节点)。
--host-id
要将 Dedicated Virtual Server 供应到的主机标识。
--san
使用 SAN 存储器(而非本地磁盘)。
--test
不创建虚拟服务器。
--export
将选项导出到模板文件。
-i, --postinstall
要下载的安装后脚本。
-k, --key
要添加到 root 用户的 SSH 密钥的标识。可以指定多个标识。
--disk
磁盘大小。可以指定多个大小。
--private
强制虚拟服务器只能访问专用网络。
--like
使用现有虚拟服务器中的配置。
-n, --network
网络端口速度(以 Mbps 为单位)。
-g, --tag
要添加到实例的标记。可以指定多个标记。
-t, --template
对命令行选项使用缺省值的模板文件。
-u, --userdata
用户定义的元数据字符串。
-F, --userfile
从文件中读取用户数据。
--vlan-public
要将虚拟服务器放到其中的公用 VLAN 的标识。
--vlan-private
要将虚拟服务器放到其中的专用 VLAN 的标识。
-S, --public-security-group
要与公共接口关联的安全组标识。可以指定多个标识。
-s, --private-security-group
要与专用接口关联的安全组标识。可以指定多个标识。
--wait
等待虚拟服务器完成供应(最长 X 秒)。
-f, --force
强制操作而不确认。
示例:
ibmcloud sl vs create -H myvsi -D ibm.com -c 4 -m 4096 -d dal10 -o UBUNTU_16_64 --disk 100 --disk 1000 --vlan-public 413
此命令订购虚拟服务器实例,其主机名为 myvsi,域为 ibm.com,4 个 CPU 核心,4096 M 内存,位于数据中心 dal10