CLI概述
命令行接口采用OpenStackClient工具。该工具提供命令行客户端,通过执行命令即可访问云服务的API获取云服务,操作方便。
命令行客户端概述
OpenStackClient项目设有统一命令行客户端(Unified CLI),通过执行命令即可访问OpenStack项目的API,操作非常简单。并且,大多数OpenStack项目会为每一项服务设置一个命令行客户端(Individual CLI)。例如,Compute服务提供的是Nova命令行客户端。具体信息请参见详情。
安装
工具安装说明
OpenStackClient可以通过安装运行python-openstackclient插件使用。因此,在使用该工具之前,需要确保python-openstackclient正常。
只要保证Python运行正常,该工具可以在所有操作系统上运行。但是由于各种操作系统之间存在差异,所以操作方法不尽相同。推荐使用Ubuntu16.04(64bit)操作系统。以下操作都以Ubuntu16.04(64bit)为例。
- 更新系统
执行如下命令:
apt-get update
apt-get upgrade
- 安装Python
根据OS类型安装 Python和pip。支持Python 2.7版本。
Ubuntu 16.04一般包含 Python 2.7。若尚未安装Python,请按照下面步骤安装。
执行以下命令安装python:
apt-get install python
执行以下命令安装setuptools:
apt-get install python-setuptools
执行以下命令安装pip:
apt-get install python-pip
(如果Ubuntu支持的setuptools和pip版本比较低,用户可以采用离线的方式安装。)
执行以下命令安装dev:
apt-get install python-dev
- 安装 python-openstackclient以及依赖的组件
默认支持以下版本:
- python-openstackclient: 3.2.1
- python-novaclient: 6.0.2
- python-glanceclient: 2.5.0
- python-keystoneclient: 3.5.1
- python-neutronclient: 6.0.1
- python-cinderclient: 1.9.0
- python-heatclient: 1.5.1
- python-designateclient: 2.3.0
- openstacksdk: 0.9.5
- cliff:2.2.0
- os-client-config:1.21.1
- osc-lib:1.1.0
通过执行以下命令,使用pip安装python-openstackclient:
pip install python-openstackclient==3.2.1
安装完成之后,请在命令行中输入如下命令,验证python-openstackclient能否正常运行。
openstack -h
查看是否显示帮助信息。如有帮助信息,表示安装成功。
其他部件安装方法相同。请使用相同的命令,按顺序进行安装。
配置
- 配置OpenStack Client
既可以使用root用户,也可以以普通用户身份进行配置。
只能通过安全网络(例如,通过VPN或租户弹性云服务器)调用API。如果网络不安全,则可能会受到攻击。
- 在OpenStack客户端安装路径下,创建一个环境变量文件,例如novarc。
- 使用文本编辑器创建环境变量文件,然后输入用户名、密码、区域、IAM IP地址和端口。
示例如下:
export OS_USERNAME="user_name" export OS_USER_DOMAIN_NAME=user_domain_name #export OS_DOMAIN_NAME="domain_name" export OS_PASSWORD=password # Only change these for a different region export OS_TENANT_NAME=tenant_name export OS_PROJECT_NAME=tenant_name export OS_AUTH_URL=https://iam.example.com:443/v3 export OS_INTERFACE=public # No changes needed beyond this point export NOVA_ENDPOINT_TYPE=publicURL export OS_ENDPOINT_TYPE=publicURL export CINDER_ENDPOINT_TYPE=publicURL export OS_VOLUME_API_VERSION=2 export OS_IDENTITY_API_VERSION=3 export OS_IMAGE_API_VERSION=2
需要配置的环境变量包括用户名、密码、IAM URL和端口号等。环境变量见表 1。
表1 环境变量 参数
说明
OS_USERNAME
指调用命令所用的用户名。
指登录管理控制台所用的用户名。
OS_USER_DOMAIN_NAME
指当前用户的租户名。
指登录控制台所用的企业账号。
OS_DOMAIN_NAME
指当前租户的名称。
OS_PASSWORD
指调用命令所用的密码。
指登录控制台所用的密码。
OS_TENANT_NAME
指调用命令所用的租户名。
指我的凭证页项目列表中的项目名称。
OS_PROJECT_NAME
指调用命令所用的项目名称。
和OS_TENANT_NAME一致。
OS_AUTH_URL
参数值的格式为https://IAM URL:port number/API version。例如https://iam.example.com:443/v3
- IAM URL:请从地区和终端节点中获取。
- 端口号:443
- API版本:v3(当前)
OS_INTERFACE
指Endpoint可见类型。参数值为public。
NOVA_ENDPOINT_TYPE
指Nova的终端节点类型。当使用OpenStack命令时,需要配置该参数。参数值为publicURL。
OS_ENDPOINT_TYPE
指OS的终端节点类型。当使用OpenStack命令时,需要配置该参数。将参数值设置为publicURL。
CINDER_ENDPOINT_TYPE
指Cinder的终端节点类型。当使用OpenStack命令时,需要配置该参数。将参数值设置为publicURL。
OS_VOLUME_API_VERSION
指Cinder API的版本。参数值为2。
OS_IDENTITY_API_VERSION
指鉴权API版本。参数值为3。
OS_IMAGE_API_VERISON
指Glance API版本。参数值为2。
- 执行以下命令设置环境变量:
source novarc
- 注意:当调用OpenStackClient中的Keystone命令行时,需要配置环境变量OS_DOMAIN_NAME,并且将环境变量OS_TENANT_NAME和OS_PROJECT_NAME设置为空。命令如下:
export OS_DOMAIN_NAME=domain_name
unset OS_TENANT_NAME
unset OS_PROJECT_NAME
在调用其他服务的命令行时,需要把环境变量OS_DOMAIN_NAME设置为空,重新配置环境变量OS_TENANT_NAME和OS_PROJECT_NAME。命令如下:
unset OS_DOMAIN_NAME
export OS_TENANT_NAME=tenant_name
export OS_PROJECT_NAME=project_name
完成CLI安装和配置后,您就可以开始使用CLI了。
云平台支持的CLI列表,请参考附录。
如果您在安装、配置和使用过程中遇到问题,请到常见问题中寻找解决方法。
云平台除了支持OpenStack的Individual CLI和Unified CLI,还通过插件提供了Extended CLI。如果您需要使用Extended CLI,请参考下面的指导完成安装和配置,然后进行使用。
(可选)安装扩展客户端
扩展客户端可以通过运行python-openstackclient插件使用。因此,在使用扩展客户端之前,需要保证 python-openstackclient处于正常状态。
当前共提供六个服务的插件。详情请参见插件清单。请根据实际需要选择安装所需的服务插件。
由于插件未被提交至pip库,因此插件不能使用pip安装。请从GitHub 下载插件源代码(请单击这里下载插件),使用python setup.py install来安装插件。关于如何安装,请参见各插件随附的Readme 文档。
(可选)配置扩展客户端
在使用扩展客户端时,需要配置认证信息,认证成功后,扩展客户端才可以访问服务。您可以通过配置环境变量的方式来配置用户名和密码进行认证。
环境变量如下:
export OS_AUTH_URL=<url-to-openstack-identity> export OS_PROJECT_NAME=<project-name> export OS_USERNAME=<username> export OS_PASSWORD=<password> export OS_REGION_NAME=<region> # IP address of each service export OS_ANTIDDOS_ENDPOINT_OVERRIDE=<url-to-endpoint-of-service> export OS_AS_ENDPOINT_OVERRIDE=<url-to-endpoint-of-service> export OS_CLOUDEYE_ENDPOINT_OVERRIDE=<url-to-endpoint-of-service> export OS_VB_ENDPOINT_OVERRIDE=<url-to-endpoint-of-service> export OS_WORKSPACE_ENDPOINT_OVERRIDE=<url-to-endpoint-of-service> export OS_KM_ENDPOINT_OVERRIDE=<url-to-endpoint-of-service>
配置环境变量后,即可使用命令行。
