今天继续分享下Manila系列文章知识,之前两篇博文一个是Manila详解,一个是Manila for Centos的安装部署,今天呢我们采用Python Virtualenv的模式来安装Manila服务:) 

 

什么是Virtualenv?

VirtualenvPython的虚拟环境可以使一个Python程序拥有独立的库library和解释器interpreter,而不用与其他Python程序共享统一个libraryinterpreter。虚拟环境的好处是避免了不同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 &