国时间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: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://blog.csdn.net/canxinghen/article/details/41826535