今天继续分享下Manila系列文章知识,之前两篇博文一个是Manila详解,一个是Manila for Centos的安装部署,今天呢我们采用Python Virtualenv的模式来安装Manila服务:) 。
什么是Virtualenv?
Virtualenv是Python的虚拟环境可以使一个Python程序拥有独立的库library和解释器interpreter,而不用与其他Python程序共享统一个library和interpreter。虚拟环境的好处是避免了不同Python程序间的互相影响(共同使用global library 和 interpreter),例如程序A需要某个库的1.0版本,而程序B需要同样这个库的2.0版本,如果程序B执行则A就不能执行了。
为什么使用Virtualenv?
很多人会问为什么会采用Manila for Virtualenv,因为避免不了有时候OpenStack组件版本不一致的情况,之所以这样是因为Manila L版本功能开始逐渐健全并完善的,而云平台OpenStack组件版本相较于L版来说老一些,毕竟生产环境还是不能跟随社区版本发布而更新的,求稳为主,所以这时候就出现了现在的需求,由于版本不一致有些Python依赖以及OpenStack组件依赖版本不同,如果不采用分离的话会导致组件失效等问题。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
|
安装部署:
1.创建Manila数据库.
mysql -u root -p
CREATE DATABASE manila;
GRANT ALL PRIVILEGES ON manila.* TO
'manila'
@
'localhost'
IDENTIFIED BY
'password'
;
GRANT ALL PRIVILEGES ON manila.* TO
'manila'
@
'%'
IDENTIFIED BY
'password'
;
2.创建Manila用户、服务等.
openstack user create --password-prompt manila
openstack role add --project service --user manila admin
openstack service create --name manila --description
"OpenStack Shared Filesystems"
share
openstack endpoint create \
--publicurl http:
//X
.X.X.X:8786
/v1/
%\(tenant_id\)s\
--internalurl http:
//X
.X.X.X:8786
/v1/
%\(tenant_id\)s\
--adminurl http:
//X
.X.X.X:8786
/v1/
%\(tenant_id\)s\
--region RegionOne \
share
3.安装依赖.
yum -y
install
libxslt-devel libxml2-devel libxml2-python postgresql-devel \
python-greenlet-develpython-devel python-greenlet libffi-devel
4.下载Manila源码.
git clone https:
//github
.com
/openstack/manila
.git
cd
manila
5.创建Virtualenv环境.
由于Manila 源码里面自带tools所以这里直接就采用了tools
python tools
/install_venv
.py
6.进入
env
环境安装Manila.
source
.venv
/bin/activate
python setup.py build
python setup.py
install
7.安装Manila client.
pip
install
python-manilaclient>=1.4.0
8.创建Manila目录从Manila源码目录拷贝配置文件等.
mkdir
/etc/manila
cp
-r
/root/manila/etc/manila/
*
/etc/manila/
9.编辑配置manila.conf文件
[之前的Manila
for
Centos部署文档里面详细说明了,这里就不在详细赘述。]
10.同步数据库
manila-managedb
sync
11.启动Manila服务.
nohup
su
-s
/bin/sh
-c
"/opt/manila/.venv/bin/python /opt/manila/.venv/bin/manila-api--config-file /etc/manila/manila.conf"
>
/var/log/manila/manila-api
.log&
nohup
su
-s
/bin/sh
-c
"/opt/manila/.venv/bin/python /opt/manila/.venv/bin/manila-scheduler--config-file /etc/manila/manila.conf"
>
/var/log/manila/manila-scheduler
.log&
nohup
su
-s
/bin/sh
-c
"/opt/manila/.venv/bin/python/opt/manila/.venv/bin/manila-share --config-file /etc/manila/manila.conf"
>
/var/log/manila/manila-share
.log &
|
本文转自Devin 51CTO博客,原文链接:http://blog.51cto.com/devingeng/1752186