第四章 安装和配置OpenStack

目录

  • 概述……………………………………………………………………………………………. 30
  • 安装OpenStack命令行客户端………………………………………………………….. 31
  • 设置使用OpenStack RC文件的环境变量 …………………………………………….33
  • 创建openrc.sh 文件 ………………………………………………………………………. 34

 下面的部分包含关于使用OpenStack 客户端工作的信息。
 回顾:在前面的章节,我们使用了keystone客户端。

 你必须安装客户端工具来完成安装过程的剩余部分。

 配置你的客户端安装在你的桌面上而不是服务器上来让你有和你的用户相同的体验。

概述

 你可以使用OpenStack 命令行客户端来运行简单的命令去做API调用。你可以运行这些来自命令行的指令或者运用脚本来自动执行任务。如果你提供了OpenStack的凭证,那么你可以在任何一台电脑上运行这些指令。
 内部呢,每个客户端命令都是运行嵌入了API请求的cURL指令。OpenStack 的API都是那些使用了HTTP协议的RESTful APIS,这些协议包括方法,网址,媒体类型和响应代码。
 这些开源的Python客户端运行在linux或者Mac OS X 系统上,非常简单学习和使用。每一个OpenStack服务都有它自己的命令行客户端。在某些客户端命令上,你可以指定一个调试参数来显示这个命令的底层API请求。这是一个好方法来快速熟悉 OpenStack的API调用。
 下面的表格列出了每个OpenStack服务的命令行客户端,包含了它的包名和描述。

表4.1. OpenStack服务和客户端

服务客户端描述
块存储cinderpython-cinderclient创建和管理卷
计算novapython-novaclient创建和管理图片,实例和口味
数据库服务trovepython-troveclient创建和管理数据库
身份认证keystonepython-keystoneclient创建和管理用户,租用用户,角色,端点,认证凭据
镜像服务glancepython-glanceclient创建管理镜像
网络neutronpython-neutronclient为客户服务器配置网络,这个客户端以前叫做quantum
对象存储swiftpython-swiftclient收集统计数据,列表项,更新元数据并上传下载,和删除由对象存储服务存储的文件。获得访问对象存储设备的专案处理。
业务流程heatpython-heatclient从模板启动堆栈查看运行堆栈的细节,包括事件和资源,以及上传和跟新堆栈
遥测ceilometerpythonceilometerclient从OpenStack创建和收集测量数据
一个普通的OpenStack客户端就是这样开发的。

## 安装OpenStack命令行客户端 ## 首先为每个OpenStack客户端安装必备软件和Python包。 ### 安装必备软件 ### 下表列出了你需要用来运行命令行客户端的软件,并提供了可能需要的安装说明。

Table 4.2.必备软件
必备软件客户端
Python2.6或者更早目前这些客户端不支持Python3
设置工具包在MAC OS X系统上是默认安装。

许多linux发行版本都提供软件包使得设置工具包非常简单安装。从你的安装包管理器搜索setuptools来发现一个安装包。如果你找不到,可以直接从下面这个网址下载:http://pypi.python.org/pypi/setuptools

在微软windows系统下安装配置工具包的推荐方式是根据在配置工具包的网址提供的文档进行。另一种方式是使用由Christoph Gohlke整理的非官方安装包(http://www.lfd.uci.edu/~gohlke/pythonlibs/#setuptools)。
PIP 包使用pip在Linux,MAC OS X,windows系统上来安装这些客户端。保证你能从Python安装包索引得到最新的客户端版本,并且后面更新或者删除安装包。

通过安装包管理器为你的系统安装pip:
mac os.
# easy_install pip

microsoft windows.
确保C:\Python27\Scripts目录已经确定写入PATH环境变量里,并且使用设置工具包里使用easy_install命令:
C:>easy_install pip
另一种方法是选择由Christoph Gohlke提供的非官方安装包(http://www.lfd.uci.edu/~gohlke/pythonlibs/#pip)。

Ubuntu and Debian.
# apt-get install python-pip

Red Hat Enterprise Linux, CentOS, or Fedora.
在RDO有一个可得到的版本包能让你使用yum来安装客户端或者可以使用安装pip来管理客户端安装。

# yum install python-pip

openSUSE 12.2 and earlier.在Open Build Service有一个可打包版本能够让你使用rpm或者zypper来安装这些客户端,或者可以安装pip来安装管理这些客户端:

# zypper install python-pip

openSUSE 12.3 and later.一个可打包版本能让你使用rpm或者zypper来安装这些客户端。可见下部分“安装客户端”

安装客户端

 当跟随本节的指示,使用客户端的小写名字来代替项目来完成安装,例如nova。重复每个客户端。以下是有效值:

  • ceilometer - Telemetry API
  • cinder - Block Storage API and extensions
  • heat - Orchestration API
  • keystone - Identity service API and extensions
  • neutron - Networking API
  • nova - Compute API and extensions
  • swift - Object Storage API
  • trove - Database Service API

下面的例子展示了使用pip来安装nova客户端的命令。

  1. # pip install python-novaclient

使用pip来安装

在Linux,Mac OS X或者Microsoft Windows系统上使用pip来安装OpenStack客户端。这个非常简单去使用并且确保从Python Package Index得到最新的客户端版本。当然,pip能够使你更新或者删除一个包。

分别使用以下指令来安装每个客户端。

  • 对于Mac OS X或者Linux:

    # pip install python-PROJECTclient

  • 对于微软windows系统:

    C:\>pip install python-PROJECTclient

从安装包安装

 RDO和openSUSE由客户端安装包无需使用pip来安装。
 在Red Hat Enterprise Linux,CentOS,或者Fedora系统上,可以使用从RDO可得到安装包用yum来安装这些客户端:

  1. # yum install python-PROJECTclient

 对于openSUSE,可以使用rpm或者zypper来安装从the Open Build Service得到可安装版本:

  1. # zypper install python-PROJECT`

更新或者删除客户端

 为了更新一个客户端,要早pip install命令里添加—upgrade选项:

  1. # pip install --upgrade python-PROJECTclient

 删除一个客户端,可以运行下面这个pip uninstall 命令:

  1. # pip uninstall python-PROJECTclient

使用OpenStack RC 文件来设置环境变量

  为了为这些OpenStack命令行客户端设置必须的环境变量,你必须创建一个叫做OpenStack rc文件或者叫做openrc.sh文件的环境文件。这些特殊项目的环境文件包含了所有OpenStack服务使用所需的凭证。

  当你打开这个源文件,环境变量就已经为你当前shell设置好了。这些变量能使这些OpenStack客户端命令能与那些运行在云里的OpenStack服务进行联系。

注意
  确定环境变量使用一个环境文件在微软windows系统上不是一个常见做法。环境变量通常在系统属性对话框中的高级选项中进行设置。

创建和生成OpenStack RC文件

1.在文本编辑器中,创建一个叫做project-openrc.sh的文件,并且添加下面的认证信息:

下面的例子展示了一个叫做admin项目的信息,当系统的使用者名字也叫做admin,并且标示位于控制器的主机。

  1. export OS_USERNAME=admin
  2. export OS_PASSWORD=ADMIN_PASS
  3. export OS_TENANT_NAME=admin
  4. export OS_AUTH_URL=http://controller:35357/v2.0

2.在任何你想要运行OpenStack命令的shell上,为每个不同项目释放PROJECT-openrc.sh文件。在下面的例子里,你为admin项目释放admin-openrc.sh文件:

  1. source admin-openrc.sh

覆盖环境变量值

  当你运行OpenStack客户端命令时,你可以使用在help末尾列出的不同客户端命令输出选项来覆盖一些环境变量设置。例如。你可以通过在keystone指令中特殊一个密码来覆盖设置在PROJECT-openrc.sh文件中的OS_PASSWORD。如下:

  1. $ keystone --os-password *PASSWORD* service-list

  其中PASSWORD就是你的密码。

创建openrc.sh文件

  如同在小节“创建和生成OpenStack RC文件”中所解释的,使用小节“定义使用者,租用用户和角色”的凭据来创建下面的PROJECT-openrc.sh文件:

-为管理者用户创建的admin-openrc.sh文件。

-为普通用户创建的demo-openrc.sh文件:

  1. export OS_USERNAME=demo
  2. export OS_PASSWORD=DEMO_PASS
  3. export OS_TENANT_NAME=demo
  4. export OS_AUTH_URL=http://controller:35357/v2.0