IBM Cloud 命令行使用指南(IaaS篇)

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层的操作。

IBM Cloud 命令行使用指南(IaaS篇)_第1张图片

 

 

下面正式开始分别介绍如何设置IBMCloud CLI环境和SL CLI环境,您可以根据不同的需求,设置不同的环境, 这两种方式是我们传统使用的方式:

 

第一部分:运行环境的准备

一、设置IBM Cloud CLI运行环境:

1.)运行安装命令

  1. 对于 Mac 和 Linux™,请运行以下命令:

#curl -sL https://ibm.biz/idt-installer | bash

  1. 对于 Windows™ 10 专业版,请以管理员身份运行以下命令:

[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"

几种安装插件的方式:

  1. 常用方式安装插件

使用 ibmcloud plugin install PLUGIN_NAME -r REPO_NAME 命令安装插件。例如,使用以下命令安装官方 IBM 插件存储库“IBM Cloud”中的插件:

ibmcloud plugin install auto-scaling

  1. 在本地安装插件

使用 ibmcloud plugin install LOCAL_FILE_NAME 命令在本地计算机上安装插件二进制文件。例如:

ibmcloud plugin install ./auto-scaling-darwin-amd64-0.2.7

  1. 通过 Web URL 安装插件

使用 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登录,然后获取一次性密码,如下图:

IBM Cloud 命令行使用指南(IaaS篇)_第2张图片

登陆后显示如下:

IBM Cloud 命令行使用指南(IaaS篇)_第3张图片

 

二、SLCLI设置用户授权Key

1.) 登录cloud.ibm.com网页,选择并点击管理—访问权(IAM)

IBM Cloud 命令行使用指南(IaaS篇)_第4张图片

 

2.) 点击左边菜单栏“IBM Cloud API密钥”

IBM Cloud 命令行使用指南(IaaS篇)_第5张图片

3.) 查看经典基础架构API密钥的详情,

IBM Cloud 命令行使用指南(IaaS篇)_第6张图片

如果没有发现“经典基础架构API密码”条目,则说明还没有创建,可以点击右上角的“创建经典基础架构API”来创建,一个IBM Cloud账号只有一个经典基础架构API密钥。

 

4.) 记下用户名和API Key,如下图所示:

IBM Cloud 命令行使用指南(IaaS篇)_第7张图片

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

 

使用样例:

 

  1. 查看账号下的硬件设备(物理机)

slcli hardware list

可以使用linux的shell命令进行更复杂的查寻,如搜索指定ip地址的物理机器,然后将之详细信息写入指定文件,以备后续使用:

slcli hardware list|grep “xxx.xxx.xxx.xxx”|awk ‘{print $1}’|xargs slcli hardware detail >> /home/myservers.log

 

  1. 批量将给定列表内所有的物理机将进行退库处理,表格中包含内网我ip地址和机器名:
  1. 将账号下的所有物理机器信息导入临时文件,文件包含“机器ID”,“机器名”,“公网ip地址”,“内网ip地址”,和“数据中心”信息

slcli hardware list > /home/temp-hw-list.log

  1. 将指定需要退库的ip信息保存到文件: /home/temp-ips.log
  2. 根据ip地址匹配出对应的机器ID信息并保存:

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

  1. 读取机器ID,并执行机器退订操作:

x=0

While read record; do (sleep 2;echo $record)|slcli hardware cancel --immediate $record ; let x++; echo “$x done”; done

  1. 查看退订生成的工单,确认数量,日期是否都正确:

Slcli ticket list|grep “Canncellation”

       如果是虚拟机,步骤同上,只需将slcli命令中的hardware替换成virtual即可。

 

  1. 创建预配置的物理机器:

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可以查看创建机器所需要输入参数的具体数据和格式,下面列出了部分此命令的输出:

数据中心

IBM Cloud 命令行使用指南(IaaS篇)_第8张图片

机器size选项参数

IBM Cloud 命令行使用指南(IaaS篇)_第9张图片

操作系统选项参数

IBM Cloud 命令行使用指南(IaaS篇)_第10张图片

网卡速度选项参数

IBM Cloud 命令行使用指南(IaaS篇)_第11张图片

其他(额外ip)

IBM Cloud 命令行使用指南(IaaS篇)_第12张图片

创建物理机命令示例:

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选项删除即可。上面的命令输出如下:

IBM Cloud 命令行使用指南(IaaS篇)_第13张图片

 

 

  1. 创建虚拟服务器实例。

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

 

你可能感兴趣的:(IBM Cloud 命令行使用指南(IaaS篇))