根據http://ovirt-china.org/mediawiki/index.php/%E5%AE%89%E8%A3%85%E9%83%A8%E7%BD%B2Ceph_Calamari php
原文以下: html
Calamari是管理和監控Ceph集羣的工具,而且提供REST api。 node
建議的部署平臺是ubuntu,本文使用CentOS 6.5。 python
# git clone https://github.com/ceph/calamari.git # git clone https://github.com/ceph/calamari-clients.git # git clone https://github.com/ceph/Diamond
# yum install gcc gcc-c++ postgresql-libs python-virtualenv # cd calamari && ./build-rpm.sh
# yum localinstall ../rpmbuild/RPMS/x86_64/calamari-server-<version>.rpm
使用yum能夠自動解決依賴,若是手動安裝依賴的能夠這樣: c++
# yum install postgresql-server salt-master salt-minion supervisor # rpm -ivh ../rpmbuild/RPMS/x86_64/calamari-server-<version>.rpm
# yum install npm ruby rubygems # npm install -g grunt grunt-cli bower grunt-contrib-compass # gem update --system && gem install compass # cd calamari-clients # make build-real # make dist
make dist會在上級目錄生成calamari-client的壓縮包;
手動解壓縮,創建mkdir -p opt/calamari/webapp;
在解壓生成的目錄下,手動更新目錄結構和內容: git
# for dir in manage admin login dashboard >do >mkdir -p ../opt/calamari/webapp/content/"$dir" >cp -pr "$dir"/dist/* ../opt/calamari/webapp/content/"$dir"/ >done
從新制做壓縮包,而後根據Makefile裏面的rpm target手動執行rpmbuild: github
# rpmbuild -bb --define "_topdir /xxx/calamari-clients/../rpmbuild" --define "version 1.2" --define "revision rc2_49_g3e3686d" --define "tarname /xxx/rpmbuild/SOURCES/calamari-clients_product_1.2.tar.gz" SPECS/clients.spec
# yum localinstall RPMS/x86_64/calamari-clients-1.2-rc2_49_g3e3686d.el6.x86_64.rpm
# calamari-ctl initialize
這一步在最後重啓服務(主要是cthulhu)的時候一直沒有結束,根據搜索到的信息,說是supervisord的問題,升級到3.0以上就不會有問題了。 web
# cd ../Diamond # git checkout origin/calamari # make rpm
master: {fqdn}
{fqdn}對應calamari服務器的域名。
啓動salt-minion服務: sql
# service salt-minion restart
### salt-master # iptables -A INPUT -m state --state NEW -m tcp -p tcp --dport 4505 -j ACCEPT # iptables -A INPUT -m state --state NEW -m tcp -p tcp --dport 4506 -j ACCEPT ### carbon # iptables -A INPUT -m state --state NEW -m tcp -p tcp --dport 2003 -j ACCEPT # iptables -A INPUT -m state --state NEW -m tcp -p tcp --dport 2004 -j ACCEPT
saltstack認證:
當ceph服務器上的salt-minion服務啓動以後,會自動向salt-master請求認證。
在Calamari服務器上能夠經過下面的命令查看salt-minion密鑰的列表: apache
# salt-key -L
剛剛啓動salt-minion服務的ceph服務器會出如今Unaccepted Keys列表以後,要使得Calamari可以經過saltstack管理ceph服務器,須要對這些密鑰進行認證:
# salt-key -A
# ausearch -m avc -c httpd -se httpd_t -o anon_inodefs_t | audit2allow -R -M httpd_anon_inodefs # semodule -i httpd_anon_inodefs.pp
生成的SELinux模塊規則以下:
require { type httpd_t; } #============= httpd_t ============== fs_rw_anon_inodefs_files(httpd_t)
HTTP 503 SERVICE UNAVAILABLE Vary: Accept Content-Type: text/html; charset=utf-8 Allow: GET, HEAD, OPTIONS { "detail": "No mon servers are responding" }
通過研究仍是SELinux的限制,經過ausearch配合audit2allow生成相應的模塊,能夠解決問題。
生成的SELinux模塊的規則以下:
require { type var_run_t; type httpd_t; class sock_file { write getattr }; } #============= httpd_t ============== allow httpd_t var_run_t:sock_file { write getattr }; files_read_var_files(httpd_t) init_stream_connect_script(httpd_t)
在centos6.5安裝了一下Calamari,期間出現了一些rpm的問題。安裝完成後,運行
calamari-ctl initialize進行初始化,最後一直中止在restart,此文說 這一步在最後重啓服務(主要是cthulhu )的時候一直沒有結束,根據搜索到的信息,說是supervisord 的問題,升級到3.0以上就不會有問題了。
試圖升級supervisord,但須要python2.7等,只能做罷,之後再折騰吧。
首頁能夠打開,但登錄後出現Server Error(500):