获取calamari相关代码 # git clone https://github.com/ceph/calamari.git
# git clone https://github.com/ceph/calamari-clients.git
# git clone https://github.com/ceph/Diamond
生成calamari-server安装包,先yum remove prlink # yum install gcc gcc-c++ postgresql-libs python-virtualenv
# cd calamari && ./build-rpm.sh
安装calamari-server # yum localinstall ../rpmbuild/RPMS/x86_64/calamari-server-.rpm
使用yum可以自动解决依赖,如果手动安装依赖的可以这样: # yum install postgresql-server salt-master salt-minion supervisor
# rpm -ivh ../rpmbuild/RPMS/x86_64/calamari-server-.rpm
生成calamari-clients安装包,需要安装ruby-devel # 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;
在解压生成的目录下,手动更新目录结构和内容: # 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: # 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
安装calamari-clients # yum localinstall RPMS/x86_64/calamari-clients-1.2-rc2_49_g3e3686d.el6.x86_64.rpm
初始化calamari # calamari-ctl initialize
这一步在最后重启服务(主要是cthulhu)的时候一直没有结束,根据搜索到的信息,说是supervisord的问题,升级到3.0以上就不会有问题了。
生成diamond安装包 # cd ../Diamond
# git checkout origin/calamari
# make rpm
将diamond-.noarch.rpm复制到所有的ceph服务器。
使用yum localinstall安装,或者yum install python-configobj然后使用rpm -ivh安装。
在所有的ceph服务器上安装salt-minion,创建/etc/salt/minion.d/calamari.conf,内容为: master: {fqdn}
{fqdn}对应calamari服务器的域名。
启动salt-minion服务: # service salt-minion restart
在Calamari服务器上配置防火墙和saltstack认证
防火墙(允许ceph服务器访问salt-master和carbon): ### 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密钥的列表: # salt-key -L
刚刚启动salt-minion服务的ceph服务器会出现在Unaccepted Keys列表之后,要使得Calamari能够通过saltstack管理ceph服务器,需要对这些密钥进行认证: # salt-key -A
部署完成之后,可以访问calamari