聲明:
本博客歡迎轉載,但請保留原作者信息,並請註明出處!
作者:郭德清
團隊:華爲杭州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
use_floating_ips=false
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 &
確認服務是否啓動正常:
sahara --debug cluster-list
【參考資料】