J版本 OpenStack上安装 Sahara 操作示例
国时间2014年10月16日,OpenStack JUNO版本正式发布,这是OpenStack开源云计算项目自2010年创立以来的第10个版本,包括支持软件开发、大数据分析和大规模应用架构等342个新功能点亮相。
最近开始接触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
修改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:[email protected]/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 &
确认服务是否启动正常: