今天继续分享下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组件依赖版本不同,如果不采用分离的话会导致组件失效等问题。
代码语言:javascript复制安装部署:
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 &