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: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