在J版的OpenStack上安装Sahara,openstacksahara


声明:

本博客欢迎转载,但请保留原作者信息,并请注明出处!

作者:郭德清

团队:华为杭州OpenStack团队


        最近开始接触Sahara,为了玩起来,第一步就是要搭建一个Sahara的环境,下面主要是我安装的过程,里面大部分参考的是官网的文档,但是里面还有一些细节需要注意下。

 

1.   安装一个openstack的原生环境,这边是通过之前同事制作好的镜像,直接起一个虚拟机(Ubuntu 14.04 OpenStack J版)。

2.   环境安装设置完,设置下IP方便远程接入,还有配置下nameserver(在/etc/resolv.conf中添加一条记录:

nameserver 8.8.8.8


3.   更新系统的源,这里推荐阿里的源,速度不错。修改前最好先备份下原来的源,路径是:/etc/apt/ sources.list

deb http://mirrors.aliyun.com/ubuntu/ trusty main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ trusty-security main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ trusty-updates main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ trusty-proposed main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ trusty-backports main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ trusty main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ trusty-security main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ trusty-updates main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ trusty-proposed main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ trusty-backports main restricted universe multiverse


修改完,执行以下命令,执行更新,时间一般会比较久:

apt-get update
apt-get upgrade
apt-get dist-upgrade


 

4.   安装需要的软件包

apt-get install python-setuptools python-virtualenv python-dev


 

5.   从pypi安装最新版本的Sahara

pip install sahara


也可以通过pip指定地址安装:

pip install 'http://tarballs.openstack.org/sahara/sahara-master.tar.gz'


 

6.   修启动服务之前需要先准备一些账号:

      a、创建keystone账号,并添加角色

keystone user-password-update --pass openstack sahara
keystone user-role-list --user sahara --tenant service
keystone user-role-add --user sahara --tenant service --role admin


      b、添加keystone的endpoint

keystone service-create --name sahara --type data_processing \
    --description "Sahara Data Processing"

keystone endpoint-create --service sahara --region RegionOne \
    --publicurl "http://192.168.206.190:8386/v1.1/%(tenant_id)s" \
    --adminurl "http://192.168.206.190:8386/v1.1/%(tenant_id)s" \
    --internalurl "http://192.168.206.190:8386/v1.1/%(tenant_id)s"


      这边有一个需要注意的是,创建service的时候,官方文档上面service的type是data-rocessing,而时间代码中用的是data_processing。

      c、修改mysql的配置,把max_allowed_packet大小改为256M

            vim /etc/mysql/my.cnf

           修改完重启数据库服务:

service mysql restart

 

       d、登录数据库,创建sahara用户和sahara数据库,并添加权限:

create user sahara IDENTIFIED by 'openstack';
grant alert,select,insert,update,delete,create,drop on sahara.* to sahara identified by 'openstack';


            创建sahara的数据库表:

sahara-db-manage --config-file  /etc/sahara.conf upgrade head

 

7. 进行Shara的配置,配置模板在/usr/local/share/sahara/sahara.conf.sample-basic目录下

cp /usr/local/share/sahara/sahara.conf.sample-basic /etc/sahara.conf


        修改sahara.conf的配置文件(配置的含义,在/usr/local/share/sahara/sahara.conf.sample-basic中有比较详细的描述,需要配置rabbit database keystone等配置。

[DEFAULT]
use_neutron=true
debug=true
verbose=true
log_file=sahara.log
log_dir=/var/log
#plugins=vanilla,hdp,spark
rpc_backend = rabbit
rabbit_host=192.168.206.190
rabbit_port=5672
rabbit_hosts=$rabbit_host:$rabbit_port
rabbit_userid=guest
rabbit_password=openstack
rabbit_virtual_host=/

[database]
connection = mysql://sahara:openstack@192.168.206.190/sahara

[keystone_authtoken]
auth_uri = http://192.168.206.190:5000
identity_uri=http://192.168.206.190:35357/
admin_tenant_name = service
admin_user = sahara
admin_password = openstack


 

8.   设置policy文件

        在sahara配置文件的同一个目录(/etc/sahara)下,创建一个policy.json的文件,当然也可以在配置文件中指定policy_file 和 policy_dirs。

默认是运行所有用户访问所有的方法:

{
    "default": ""
}


        下面这个配置不允许非admin用户访问镜像的主要方法:

{
    "default": "",
    "images:register": "role:admin",
    "images:unregister": "role:admin",
    "images:add_tags": "role:admin",
    "images:remove_tags": "role:admin"
}


 

9.   启动sahara服务

sahara-all --config-file /etc/sahara/sahara.conf &


      确认服务是否启动正常:

sahara --debug cluster-list


 

【参考资料】

http://docs.openstack.org/developer/sahara/userdoc/installation.guide.html#to-install-into-a-virtual-environment

相关内容