![]() |
$ mkdir /tmp/calamari-repo
$ cd /tmp/calamari-repo
$ git clone https://github.com/ceph/calamari.git
Cloning into 'calamari'...
remote: Counting objects: 10253, done.
remote: Compressing objects: 100% (4433/4433), done.
remote: Total 10253 (delta 5434), reused 10188 (delta 5387)
Receiving objects: 100% (10253/10253), 20.53 MiB | 3.55 MiB/s, done.
Resolving deltas: 100% (5434/5434), done.
Checking connectivity... done.
$
$ git clone https://github.com/ceph/Diamond.git --branch=calamari
Cloning into 'Diamond'...
remote: Counting objects: 16225, done.
remote: Compressing objects: 100% (9229/9229), done.
remote: Total 16225 (delta 6170), reused 16225 (delta 6170)
Receiving objects: 100% (16225/16225), 3.79 MiB | 1.19 MiB/s, done.
Resolving deltas: 100% (6170/6170), done.
Checking connectivity... done.
$
$ cd calamari/
$ ls -la
total 168
drwxr-xr-x 32 ksingh wheel 1088 Sep 17 10:34 .
drwxr-xr-x 4 ksingh wheel 136 Sep 17 10:36 ..
drwxr-xr-x 13 ksingh wheel 442 Sep 17 10:34 .git
-rw-r--r-- 1 ksingh wheel 292 Sep 17 10:34 .gitignore
-rw-r--r-- 1 ksingh wheel 1310 Sep 17 10:34 .travis.yml
-rw-r--r-- 1 ksingh wheel 251 Sep 17 10:34 COPYING
-rw-r--r-- 1 ksingh wheel 26436 Sep 17 10:34 COPYING-LGPL2.1
-rw-r--r-- 1 ksingh wheel 8977 Sep 17 10:34 Makefile
-rw-r--r-- 1 ksingh wheel 2183 Sep 17 10:34 README.rst
-rwxr-xr-x 1 ksingh wheel 2961 Sep 17 10:34 adduser.py
drwxr-xr-x 6 ksingh wheel 204 Sep 17 10:34 alembic
-rwxr-xr-x 1 ksingh wheel 979 Sep 17 10:34 build-rpm.sh
drwxr-xr-x 5 ksingh wheel 170 Sep 17 10:34 calamari-common
drwxr-xr-x 4 ksingh wheel 136 Sep 17 10:34 calamari-web
-rw-r--r-- 1 ksingh wheel 3785 Sep 17 10:34 calamari.spec
drwxr-xr-x 11 ksingh wheel 374 Sep 17 10:34 conf
drwxr-xr-x 5 ksingh wheel 170 Sep 17 10:34 cthulhu
drwxr-xr-x 13 ksingh wheel 442 Sep 17 10:34 debian
drwxr-xr-x 11 ksingh wheel 374 Sep 17 10:34 dev
drwxr-xr-x 13 ksingh wheel 442 Sep 17 10:34 doc
-rwxr-xr-x 1 ksingh wheel 659 Sep 17 10:34 get-flavor.sh
-rwxr-xr-x 1 ksingh wheel 874 Sep 17 10:34 get-versions.sh
drwxr-xr-x 5 ksingh wheel 170 Sep 17 10:34 minion-sim
-rwxr-xr-x 1 ksingh wheel 326 Sep 17 10:34 pre-commit.py
drwxr-xr-x 4 ksingh wheel 136 Sep 17 10:34 repobuild
drwxr-xr-x 4 ksingh wheel 136 Sep 17 10:34 requirements
drwxr-xr-x 6 ksingh wheel 204 Sep 17 10:34 rest-api
drwxr-xr-x 4 ksingh wheel 136 Sep 17 10:34 salt
drwxr-xr-x 17 ksingh wheel 578 Sep 17 10:34 tests
-rw-r--r-- 1 ksingh wheel 792 Sep 17 10:34 tox.ini
drwxr-xr-x 11 ksingh wheel 374 Sep 17 10:34 vagrant
drwxr-xr-x 3 ksingh wheel 102 Sep 17 10:34 webapp
$
$ cd vagrant/
$ ls -la
total 8
drwxr-xr-x 11 ksingh wheel 374 Sep 17 10:34 .
drwxr-xr-x 32 ksingh wheel 1088 Sep 17 10:34 ..
drwxr-xr-x 4 ksingh wheel 136 Sep 17 10:34 centos-build
drwxr-xr-x 5 ksingh wheel 170 Sep 17 10:34 devmode
drwxr-xr-x 4 ksingh wheel 136 Sep 17 10:34 precise-build
drwxr-xr-x 4 ksingh wheel 136 Sep 17 10:34 production
drwxr-xr-x 4 ksingh wheel 136 Sep 17 10:34 rhel-build
drwxr-xr-x 4 ksingh wheel 136 Sep 17 10:34 rhel7-build
drwxr-xr-x 4 ksingh wheel 136 Sep 17 10:34 trusty-build
-rwxr-xr-x 1 ksingh wheel 344 Sep 17 10:34 urllib-bootstrap-salt.sh
drwxr-xr-x 4 ksingh wheel 136 Sep 17 10:34 wheezy-build
$
$ cd centos-build/
$ ls -la
total 8
drwxr-xr-x 4 ksingh wheel 136 Sep 17 10:34 .
drwxr-xr-x 11 ksingh wheel 374 Sep 17 10:34 ..
-rw-r--r-- 1 ksingh wheel 1112 Sep 17 10:34 Vagrantfile
drwxr-xr-x 4 ksingh wheel 136 Sep 17 10:34 salt
$
$ vagrant up
Bringing machine 'default' up with 'virtualbox' provider...
==> default: Importing base box 'centos6'...
==> default: Matching MAC address for NAT networking...
==> default: Setting the name of the VM: centos-build_default_1410939808331_97817
==> default: Clearing any previously set network interfaces...
==> default: Preparing network interfaces based on configuration...
default: Adapter 1: nat
==> default: Forwarding ports...
default: 22 => 2201 (adapter 1)
==> default: Running 'pre-boot' VM customizations...
==> default: Booting VM...
==> default: Waiting for machine to boot. This may take a few minutes...
default: SSH address: 127.0.0.1:2201
default: SSH username: vagrant
default: SSH auth method: private key
==> default: Machine booted and ready!
==> default: Checking for guest additions in VM...
==> default: Mounting shared folders...
default: /git => /private/tmp/calamari-repo
default: /vagrant => /private/tmp/calamari-repo/calamari/vagrant/centos-build
default: /srv/salt => /private/tmp/calamari-repo/calamari/vagrant/centos-build/salt/roots
==> default: Running provisioner: salt...
Copying salt minion config to vm.
Checking if salt-minion is installed
salt-minion was not found.
Checking if salt-call is installed
salt-call was not found.
Bootstrapping Salt... (this may take a while)
Salt successfully configured and installed!
run_overstate set to false. Not running state.overstate.
run_highstate set to false. Not running state.highstate.
$
$ vagrant ssh
[vagrant@vagrant-centos64 ~]$
[vagrant@vagrant-centos64 ~]$ df -h
Filesystem Size Used Avail Use% Mounted on
/dev/sda1 7.3G 1017M 6.0G 15% /
tmpfs 246M 0 246M 0% /dev/shm
git 233G 214G 20G 92% /git
vagrant 233G 214G 20G 92% /vagrant
srv_salt 233G 214G 20G 92% /srv/salt
[vagrant@vagrant-centos64 ~]$
[vagrant@vagrant-centos64 ~]$ cd /git
[vagrant@vagrant-centos64 git]$ ll
total 0
drwxr-xr-x 1 vagrant vagrant 1088 Sep 17 07:34 calamari
drwxr-xr-x 1 vagrant vagrant 952 Sep 17 07:35 Diamond
[vagrant@vagrant-centos64 git]$
$ sudo salt-call state.highstate
[vagrant@vagrant-centos64 ~]$ sudo salt-call state.highstate
[INFO ] Loading fresh modules for state activity
[INFO ] Creating module dir '/var/cache/salt/minion/extmods/modules'
[INFO ] Syncing modules for environment 'base'
[INFO ] Loading cache from salt://_modules, for base)
............... Output truncated ................
----------
ID: cp-artifacts-to-share Diamond/dist/diamond-*.noarch.rpm
Function: cmd.run
Name: cp Diamond/dist/diamond-*.noarch.rpm /git/
Result: True
Comment: Command "cp Diamond/dist/diamond-*.noarch.rpm /git/" run
Changes:
----------
pid:
28292
retcode:
0
stderr:
stdout:
Summary
-------------
Succeeded: 11
Failed: 0
-------------
Total: 11
[vagrant@vagrant-centos64 ~]$
[vagrant@vagrant-centos64 ~]$ ll
total 14964
drwxr-xr-x 19 vagrant vagrant 4096 Sep 17 08:00 calamari
-rw-r--r-- 1 vagrant vagrant 15303265 Sep 17 08:00 calamari-server_1.2.1.tar.gz
drwxr-xr-x 12 vagrant vagrant 4096 Sep 17 07:59 Diamond
drwxr-xr-x 8 vagrant vagrant 4096 Sep 17 08:00 rpmbuild
[vagrant@vagrant-centos64 ~]$
[vagrant@vagrant-centos64 ~]$ cd rpmbuild/
[vagrant@vagrant-centos64 rpmbuild]$
[vagrant@vagrant-centos64 rpmbuild]$
[vagrant@vagrant-centos64 rpmbuild]$ find . -name *.rpm
./BUILD/calamari-server-1.2.1/repobuild/el6/sshpass-1.05-1.el6.x86_64.rpm
./BUILD/calamari-server-1.2.1/repobuild/el6/openpgm-5.1.118-3.el6.x86_64.rpm
./BUILD/calamari-server-1.2.1/repobuild/el6/python-msgpack-0.1.13-3.el6.x86_64.rpm
./BUILD/calamari-server-1.2.1/repobuild/el6/salt-2014.1.10-4.el6.noarch.rpm
./BUILD/calamari-server-1.2.1/repobuild/el6/PyYAML-3.10-3.el6.x86_64.rpm
./BUILD/calamari-server-1.2.1/repobuild/el6/python-babel-0.9.4-5.1.el6.noarch.rpm
./BUILD/calamari-server-1.2.1/repobuild/el6/python-zmq-2.2.0.1-1.el6.x86_64.rpm
./BUILD/calamari-server-1.2.1/repobuild/el6/salt-minion-2014.1.10-4.el6.noarch.rpm
./BUILD/calamari-server-1.2.1/repobuild/el6/libyaml-0.1.6-1.el6.x86_64.rpm
./BUILD/calamari-server-1.2.1/repobuild/el6/python-crypto-2.0.1-22.el6.x86_64.rpm
./BUILD/calamari-server-1.2.1/repobuild/el6/zeromq3-3.2.4-1.el6.x86_64.rpm
./BUILD/calamari-server-1.2.1/repobuild/el6/m2crypto-0.20.2-9.el6.x86_64.rpm
./BUILD/calamari-server-1.2.1/repobuild/el6/diamond-3.4.67-0.noarch.rpm
./BUILD/calamari-server-1.2.1/repobuild/el6/python-jinja2-2.2.1-2.el6_5.x86_64.rpm
./RPMS/x86_64/calamari-server-1.2.1-29_g9d02dc3.el6.x86_64.rpm
[vagrant@vagrant-centos64 rpmbuild]$
teeri:calamari-repo ksingh$
teeri:calamari-repo ksingh$ ls -la
total 61960
drwxr-xr-x 7 ksingh wheel 238 Sep 17 11:18 .
drwxrwxrwt 10 root wheel 340 Sep 17 11:46 ..
drwxr-xr-x 28 ksingh wheel 952 Sep 17 10:35 Diamond
drwxr-xr-x 32 ksingh wheel 1088 Sep 17 10:34 calamari
-rw-r--r-- 1 ksingh wheel 7038999 Sep 17 11:18 calamari-repo-el6.tar.gz
-rw-r--r-- 1 ksingh wheel 24082060 Sep 17 11:18 calamari-server-1.2.1-29_g9d02dc3.el6.x86_64.rpm
-rw-r--r-- 1 ksingh wheel 595548 Sep 17 11:18 diamond-3.4.67-0.noarch.rpm
teeri:calamari-repo ksingh$
$ cd /tmp/calamari-repo/
$
$ git clone https://github.com/ceph/calamari-clients.git
Cloning into 'calamari-clients'...
remote: Counting objects: 16261, done.
remote: Total 16261 (delta 0), reused 0 (delta 0)
Receiving objects: 100% (16261/16261), 28.81 MiB | 4.01 MiB/s, done.
Resolving deltas: 100% (9441/9441), done.
Checking connectivity... done.
$ ls -la
total 61960
drwxr-xr-x 8 ksingh wheel 272 Sep 17 12:03 .
drwxrwxrwt 10 root wheel 340 Sep 17 11:46 ..
drwxr-xr-x 28 ksingh wheel 952 Sep 17 10:35 Diamond
drwxr-xr-x 32 ksingh wheel 1088 Sep 17 10:34 calamari
drwxr-xr-x 22 ksingh wheel 748 Sep 17 12:04 calamari-clients
-rw-r--r-- 1 ksingh wheel 7038999 Sep 17 11:18 calamari-repo-el6.tar.gz
-rw-r--r-- 1 ksingh wheel 24082060 Sep 17 11:18 calamari-server-1.2.1-29_g9d02dc3.el6.x86_64.rpm
-rw-r--r-- 1 ksingh wheel 595548 Sep 17 11:18 diamond-3.4.67-0.noarch.rpm
$ cd calamari-clients/vagrant/precise-build/
$
$ ls -la
total 16
drwxr-xr-x 4 ksingh wheel 136 Sep 17 12:04 .
drwxr-xr-x 10 ksingh wheel 340 Sep 17 12:04 ..
-rw-r--r-- 1 ksingh wheel 789 Sep 17 12:04 README.rst
-rw-r--r-- 1 ksingh wheel 882 Sep 17 12:04 Vagrantfile
$
$ vagrant up
Bringing machine 'default' up with 'virtualbox' provider...
==> default: Importing base box 'precise64'...
==> default: Matching MAC address for NAT networking...
==> default: Setting the name of the VM: precise-build_default_1410947713821_66264
==> default: Clearing any previously set network interfaces...
==> default: Preparing network interfaces based on configuration...
default: Adapter 1: nat
==> default: Forwarding ports...
default: 22 => 2202 (adapter 1)
==> default: Running 'pre-boot' VM customizations...
==> default: Booting VM...
==> default: Waiting for machine to boot. This may take a few minutes...
default: SSH address: 127.0.0.1:2202
default: SSH username: vagrant
default: SSH auth method: private key
==> default: Machine booted and ready!
==> default: Checking for guest additions in VM...
default: The guest additions on this VM do not match the installed version of
default: VirtualBox! In most cases this is fine, but in rare cases it can
default: prevent things such as shared folders from working properly. If you see
default: shared folder errors, please make sure the guest additions within the
default: virtual machine match the version of VirtualBox you have installed on
default: your host and reload your VM.
default:
default: Guest Additions Version: 4.2.0
default: VirtualBox Version: 4.3
==> default: Mounting shared folders...
default: /git => /private/tmp/calamari-repo
default: /vagrant => /private/tmp/calamari-repo/calamari-clients/vagrant/precise-build
default: /srv/salt => /private/tmp/calamari-repo/calamari-clients/vagrant/salt/roots
==> default: Running provisioner: salt...
Copying salt minion config to vm.
Checking if salt-minion is installed
salt-minion was not found.
Checking if salt-call is installed
salt-call was not found.
Bootstrapping Salt... (this may take a while)
Salt successfully configured and installed!
run_overstate set to false. Not running state.overstate.
run_highstate set to false. Not running state.highstate.
$
$ vagrant ssh
Welcome to Ubuntu 12.04 LTS (GNU/Linux 3.2.0-23-generic x86_64)
* Documentation: https://help.ubuntu.com/
New release '14.04.1 LTS' available.
Run 'do-release-upgrade' to upgrade to it.
Welcome to your Vagrant-built virtual machine.
Last login: Fri Sep 14 06:23:18 2012 from 10.0.2.2
vagrant@precise64:~$
vagrant@precise64:~$
vagrant@precise64:~$ df -h
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/precise64-root 79G 2.3G 73G 4% /
udev 489M 4.0K 489M 1% /dev
tmpfs 200M 276K 199M 1% /run
none 5.0M 0 5.0M 0% /run/lock
none 498M 0 498M 0% /run/shm
/dev/sda1 228M 25M 192M 12% /boot
git 233G 216G 17G 93% /git
vagrant 233G 216G 17G 93% /vagrant
srv_salt 233G 216G 17G 93% /srv/salt
vagrant@precise64:~$
vagrant@precise64:~$ sudo apt-get install ruby1.9.1 ruby1.9.1-dev python-software-properties g++ make git debhelper build-essential devscripts
$ sudo apt-add-repository http://ppa.launchpad.net/chris-lea/node.js/ubuntu
$ sudo apt-get update
$ sudo apt-get install nodejs
$ sudo npm install -g bower@1.3.8
$ sudo npm install -g grunt-cli
$ sudo gem install compass
vagrant@precise64:~$ sudo salt-call state.highstate
[INFO ] Loading fresh modules for state activity
[INFO ] Creating module dir '/var/cache/salt/minion/extmods/modules'
[INFO ] Syncing modules for environment 'base'
[INFO ] Loading cache from salt://_modules, for base)
[INFO ] Caching directory '_modules/' for environment 'base'
[INFO ] Creating module dir '/var/cache/salt/minion/extmods/states'
[INFO ] Syncing states for environment 'base'
[INFO ] Loading cache from salt://_states, for base)
................... OUTPUT TRUNCATED ..........................
----------
ID: copyout_build_product
Function: cmd.run
Name: cp calamari-clients*tar.gz /git/
Result: True
Comment: Command "cp calamari-clients*tar.gz /git/" run
Changes:
----------
pid:
25090
retcode:
0
stderr:
stdout:
Summary
-------------
Succeeded: 13
Failed: 0
-------------
Total: 13
vagrant@precise64:~$
vagrant@precise64:~$ df -h
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/precise64-root 79G 3.8G 72G 6% /
udev 489M 4.0K 489M 1% /dev
tmpfs 200M 276K 199M 1% /run
none 5.0M 0 5.0M 0% /run/lock
none 498M 0 498M 0% /run/shm
/dev/sda1 228M 25M 192M 12% /boot
git 233G 219G 15G 94% /git
vagrant 233G 219G 15G 94% /vagrant
srv_salt 233G 219G 15G 94% /srv/salt
vagrant@precise64:~$
vagrant@precise64:~$ cd /git/
vagrant@precise64:/git$ ll
total 34324
drwxr-xr-x 1 vagrant vagrant 340 Sep 17 10:37 ./
drwxr-xr-x 25 root root 4096 Sep 17 09:55 ../
drwxr-xr-x 1 vagrant vagrant 1088 Sep 17 07:34 calamari/ # git clone of calamari server
drwxr-xr-x 1 vagrant vagrant 748 Sep 17 09:04 calamari-clients/ # git clone of calamari clients
-rw-r--r-- 1 vagrant vagrant 1705158 Sep 17 10:37 calamari-clients_1.2.1-27-g9eb09d5_all.deb # package for installation on calamari server if OS is ubuntu
-rw-r--r-- 1 vagrant vagrant 1711183 Sep 17 10:37 calamari-clients-build-output.tar.gz # unpackaged build of calamari-clients , to be added on calamari server if the OS is CentOS
-rw-r--r-- 1 vagrant vagrant 7038999 Sep 17 08:18 calamari-repo-el6.tar.gz
-rw-r--r-- 1 vagrant vagrant 24082060 Sep 17 08:18 calamari-server-1.2.1-29_g9d02dc3.el6.x86_64.rpm # package for installation on calamari server
drwxr-xr-x 1 vagrant vagrant 952 Sep 17 07:35 Diamond/ # git clone of diamond
-rw-r--r-- 1 vagrant vagrant 595548 Sep 17 08:18 diamond-3.4.67-0.noarch.rpm # diamond package for use on ceph nodes
vagrant@precise64:/git$
$ sudo yum install -y calamari-server-1.2.1-37_g6f353e6.el6.x86_64.rpm
$ sudo yum install -y diamond-3.4.67-0.noarch.rpm
$ sudo gunzip calamari-clients-build-output.tar.gz
$ sudo tar -xvf calamari-clients-build-output.tar
$ cd /tmp/opt/calamari/webapp
$ sudo cp -rp content/ /opt/calamari/webapp/content
$ sudo ls -l /opt/calamari/webapp/content
total 16
drwxr-xr-x. 7 1000 1000 4096 Sep 23 09:28 admin
drwxr-xr-x. 7 1000 1000 4096 Sep 23 09:28 dashboard
drwxr-xr-x. 7 1000 1000 4096 Sep 23 09:28 login
drwxr-xr-x. 8 1000 1000 4096 Sep 23 09:28 manage
[ceph@ceph-node4 calamari]$ sudo calamari-ctl initialize
[INFO] Loading configuration..
[INFO] Starting/enabling salt...
[INFO] Starting/enabling postgres...
[INFO] Initializing database...
[INFO] Initializing web interface...
[INFO] You will now be prompted for login details for the administrative user account. This is the account you will use to log into the web interface once setup is complete.
Username (leave blank to use 'root'):
Email address: karan.singh@csc.fi
Password:
Password (again):
Superuser created successfully.
[INFO] Starting/enabling services...
[INFO] Restarting services...
.................................. Output Truncated ...............
master: ceph-node4
$ sudo salt-key -L
Accepted Keys:
Unaccepted Keys:
ceph-node1
ceph-node2
ceph-node3
Rejected Keys:
$
$ sudo salt-key -A
The following keys are going to be accepted:
Unaccepted Keys:
ceph-node1
ceph-node2
ceph-node3
Proceed? [n/Y] y
Key for minion ceph-node1 accepted.
Key for minion ceph-node2 accepted.
Key for minion ceph-node3 accepted.
$ sudo salt-key -L
Accepted Keys:
ceph-node1
ceph-node2
ceph-node3
Unaccepted Keys:
Rejected Keys:
$
Sage Weil, creator of Ceph, announced that Calamari – the Ceph web interface – will be open sourced, following Redhat’s acquisition of Inktank.
You might have heard this already but Redhat made an annoucement
last week that they will be acquiring Inktank, the company behind
Ceph.
Inktank steered Ceph’s development, offered training and provided
support through an entreprise package which included Calamari: a web
interface to have insight on what is going on inside your cluster.
You can have a peek at what Calamari looks like here – in a session
from Portland’s Openstack Summit.
Now, what’s interesting is that prior to this announcement, Calamari
was closed source and would only be available as part of Inktank’s
entreprise package. The fact that Calamari was closed source resulted in
several open source alternatives spawning left and right – some of them
pretty good looking, too – to name a few:
I’m glad that Calamari will be open sourced, hopefully this means the
community will focus their efforts on one initiative. Having personally
worked on both python-cephclient and kraken, the programmer in
me is also curious as to how Inktank developed it. I can’t wait.