私はグーグルでイカを見つけました。 さらに掘り下げて、組み立てと設置に関する英語の記事をいくつか見つけました。 いくつかの「熊手」を踏んで、配達しようとしました。 その結果、私はこの記事を書くようになりました。
結果として収集されたパッケージは、debパッケージを構築するためのdebian-policyとは完全に一致していません。 監視はより重要です。
0.簡単な説明Calamari
Calamariは、CEPH分散ファイルストレージクラスター監視および管理システムです。 以下が含まれます。
- calamari-server-サーバー自体、バックエンド
- calamari-clients-サーバーとともにインストールされるフロントエンド(Webインターフェース)
- salt-master-calamari-serverと共にインストールされる、構成ファイルを管理するためのサーバー
- salt-minon-構成ファイルを受信するクライアントは、CEPHクラスター内のすべてのマシンにインストールされます
- diamond-CEPHクラスターのすべてのマシンにインストールされた統計コレクター
もちろん、他のソフトウェア(PostgresQLなど)が必要です。 ただし、前述のものとは異なり、さらに構成する必要はありません。 インストールのみが必要です。
1.初期配布設定
1.新しいUbuntu 14.04.1(Trusty Tahr)をインストールします。
私のバージョンでは、最小限の標準サーバー構成が設定されています。 /var/log/apt/history.logに次の行があります
Commandline: apt-get -o APT::Status-Fd=4 -o APT::Keep-Fds::=5 -o APT::Keep-Fds::=6 -q -y install minimal^ openssh-server^ server^ standard^
したがって、一部のパッケージ(例: software-properties-common )はすでにシステムに存在します。
また、アセンブリに必要な一部のパッケージ(例: libssl-dev )はインストールされるパッケージによって異なりますが、ドキュメントおよび説明されている記事に記載されているので、インストールすることを引き続き示します。
便宜上、 Midnight Commanderがインストールされています。
sudo経由でroot権限を持つcephユーザーを作成しました。
デフォルトでは、 aptitudeは推奨パッケージを自動的にインストールするように構成されています。 そのままにしておきます。
私は以前に書かれたすべてのものは、あなたが助けなしで行うことができると仮定しています。 そして、できるだけ詳細に自分の行動を説明しようとします。
2.更新:
sudo aptitude update && sudo aptitude -y upgrade
3.重要な何かが更新された場合。 たとえば、私の場合、これはlinux-imageカーネルを含むパッケージです。その後、再起動します
sudo reboot
4.タイムゾーンをSamaraからMoscowに変更します(オプション):
sudo dpkg-reconfigure tzdata
5.パッケージをビルドするためのツールをインストールします。
sudo aptitude -y install build-essential debhelper devscripts git make g++
重要:次の3つの段落では、パッケージをビルドします。 各パッケージは個別のマシンで組み立てることができますが、配布の初期構成を行う必要があります。
2. calamari-serverの環境設定とパッケージのビルド
calamari-serverを構築するための依存関係をインストールします 。 それらはBuild-Dependsにリストされているか、ビルドプロセスにとって重要であると私が発見しました。 記事の冒頭で既に述べたように、それらのいくつかは既にインストールされています。
sudo aptitude -y install libcairo2-dev libpq-dev python-dev python-pip python-virtualenv python-crypto python-m2crypto python-mako \ python-msgpack python-zmq cython libssl-dev lsb-release openssl curl software-properties-common swig libzmq-dev python-cairo \ python-sphinx reprepro
作業するディレクトリを作成し、 calamari-serverでリポジトリをクローンします 。
ceph@calamari:~$ mkdir -p ~/dev; cd ~/dev ceph@calamari:~/dev$ git clone https://github.com/ceph/calamari.git ceph@calamari:~/dev$ cd calamari
収集しようとしています
ceph@calamari:~/dev/calamari$ dpkg-buildpackage
取得します
dpkg-buildpackage: source package calamari dpkg-buildpackage: source version 1.0.0-1 dpkg-buildpackage: source distribution precise dpkg-buildpackage: source changed by Gary Lowell <glowell@pudgy.ops.newdream.net> dpkg-buildpackage: host architecture amd64 dpkg-source --before-build calamari fakeroot debian/rules clean dh clean --with python2 dh_testdir dh_auto_clean make -j1 clean make[1]: Entering directory `/home/ceph/dev/calamari' target: clean rm -rf venv rest-api/calamari_rest/version.py make[1]: Leaving directory `/home/ceph/dev/calamari' dh_clean rm -f debian/calamari-server.substvars rm -f debian/calamari-server.*.debhelper rm -rf debian/calamari-server/ rm -f debian/*.debhelper.log rm -f debian/files find . \( \( -type f -a \ \( -name '#*#' -o -name '.*~' -o -name '*~' -o -name DEADJOE \ -o -name '*.orig' -o -name '*.rej' -o -name '*.bak' \ -o -name '.*.orig' -o -name .*.rej -o -name '.SUMS' \ -o -name TAGS -o \( -path '*/.deps/*' -a -name '*.P' \) \ \) -exec rm -f {} + \) -o \ \( -type d -a -name autom4te.cache -prune -exec rm -rf {} + \) \) rm -f *-stamp dpkg-source -b calamari dpkg-source: error: can't build with source format '3.0 (quilt)': no upstream tarball found at ../calamari_1.0.0.orig.tar.{bz2,gz,lzma,xz} dpkg-buildpackage: error: dpkg-source -b calamari gave error exit status 255
エラーが表示されます
dpkg-source: error: can't build with source format '3.0 (quilt)': no upstream tarball found at ../calamari_1.0.0.orig.tar.{bz2,gz,lzma,xz} dpkg-buildpackage: error: dpkg-source -b calamari gave error exit status 255
そして、カルスが目を向ける3行:
dpkg-buildpackage: source version 1.0.0-1 dpkg-buildpackage: source distribution precise dpkg-buildpackage: source changed by Gary Lowell <glowell@pudgy.ops.newdream.net>
イカのバージョンは同じではありません。 配布は信頼できるはずです。 はい、ゲイリーではなくパッケージを収集します。 パッケージのアセンブリが停止したためのエラーは、私も好きではありません。
したがって、私は独自の方法でパッケージを収集します。
BugFix開発者からのバージョンでは、debian形式がパッケージ形式として指定されているため、 dpkg-buildpackageエラーが発生します
「3.0(キルト)」のバージョン。 形式を変更します。
ceph@calamari:~/dev/calamari$ echo '3.0 (native)' > debian/source/format
パッケージをビルドします。パッケージのバージョン、リビジョン、リリース、重要度だけでなく、名前、メールアドレスに従ってdebian / changelogファイルを変更します。
ceph@calamari:~/dev/calamari$ DEBEMAIL=your@email.com DEBFULLNAME="Your Name" dch \ -v `./get-versions.sh VERSION`-`./get-versions.sh REVISION`-1 -D trusty -u low 'Switch to dpkg-source 3.0 (native) format'
確認する
ceph@calamari:~/dev/calamari$ head -5 debian/changelog calamari (1.2.1-100-ge0b9b21-1) trusty; urgency=low * Switch to dpkg-source 3.0 (native) format -- Your Name <your@email.com> Wed, 10 Dec 2014 17:05:10 +0300
その後、パッケージはエラーなしで、正しいバージョン、リビジョン、リリース、重要度でビルドされます。 明らかな理由から、私はdpkg-buildpackageの出力を引用しません。
ceph@calamari:~/dev/calamari$ dpkg-buildpackage
確認する
ceph@calamari:~/dev/calamari$ ls -la .. total 12016 drwxrwxr-x 3 ceph ceph 4096 Dec 10 17:20 . drwxr-xr-x 5 ceph ceph 4096 Dec 10 17:11 .. drwxrwxr-x 20 ceph ceph 4096 Dec 10 17:11 calamari -rw-rw-r-- 1 ceph ceph 1396 Dec 10 17:20 calamari_1.2.1-100-ge0b9b21-1_amd64.changes -rw-rw-r-- 1 ceph ceph 750 Dec 10 17:11 calamari_1.2.1-100-ge0b9b21-1.dsc -rw-rw-r-- 1 ceph ceph 1278706 Dec 10 17:11 calamari_1.2.1-100-ge0b9b21-1.tar.gz -rw-r--r-- 1 ceph ceph 10998618 Dec 10 17:20 calamari-server_1.2.1-100-ge0b9b21-1_amd64.deb
親ディレクトリに戻る
ceph@calamari:~/dev/calamari$ cd ..
3.環境のセットアップとダイヤモンドの組み立て
重要:別のマシンでパッケージを収集する場合-記事の1段落の実装を忘れないでください。
ダイヤモンドアセンブリの依存関係をインストールする
sudo aptitude -y install python-mock cdbs python-support python-configobj
ダイヤモンドリポジトリをダウンロードします。
mkdir -p ~/dev; cd ~/dev ceph@calamari:~/dev$ git clone https://github.com/ceph/Diamond.git --branch=calamari ceph@calamari:~/dev$ cd Diamond ceph@calamari:~/dev/Diamond$ DEBEMAIL=your@email.com DEBFULLNAME="Your Name" dch -v `./version.sh`-1 -D trusty \ -u low `/bin/echo -n "built on "; date`
確認する
ceph@calamari:~/dev/Diamond$ head -5 debian/changelog diamond (3.4.67-1) trusty; urgency=low * built on Wed Dec 10 17:57:02 MSK 2014 -- Your Name <your@email.com> Wed, 10 Dec 2014 17:57:02 +0300
パッケージを収集
ceph@calamari:~/dev/Diamond$ dpkg-buildpackage
確認する
ceph@calamari:~/dev/Diamond$ ls -la .. total 4572 drwxrwxr-x 3 ceph ceph 4096 Dec 10 18:00 . drwxr-xr-x 4 ceph ceph 4096 Dec 10 17:54 .. drwxrwxr-x 11 ceph ceph 4096 Dec 10 18:00 Diamond -rw-r--r-- 1 ceph ceph 232292 Dec 10 18:00 diamond_3.4.67-1_all.deb -rw-rw-r-- 1 ceph ceph 1182 Dec 10 18:00 diamond_3.4.67-1_amd64.changes -rw-rw-r-- 1 ceph ceph 723 Dec 10 18:00 diamond_3.4.67-1.dsc -rw-rw-r-- 1 ceph ceph 4427329 Dec 10 18:00 diamond_3.4.67-1.tar.gz
親ディレクトリに戻る
ceph@calamari:~/dev/Diamond$ cd ..
4. calamari-clientsの環境を設定して構築する
重要:別のマシンでパッケージを収集する場合-記事の1段落の実装を忘れないでください。
node.jsを使用してリポジトリを追加します。
echo "deb http://ppa.launchpad.net/chris-lea/node.js/ubuntu trusty main" | sudo tee /etc/apt/sources.list.d/nodejs.list sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys B9316A7BC7917B12
パッケージリストの更新:
sudo aptitude update
calamari-clientsをビルドするための依存関係をインストールします。
sudo aptitude -y install ruby1.9.1 ruby1.9.1-dev python-software-properties nodejs
NPMとGemを使用して依存関係をインストールします。
sudo npm install -g bower@1.3.8 sudo npm install -g grunt-cli sudo gem install compass
一部の記事では、 sudoなしでgemをインストールすることが推奨されていますが、システムディレクトリへのアクセス権を誓いました。 もう1つの「レーキ」を踏んでsudoを実行し、次の行でrootユーザーの露出の結果を修正しました
sudo chown -R ceph ~/.npm
注: NPMとGemを介して依存関係をインストールし、 calamari-clientsをビルドするのは、githubをブロックする時間と一致しました。 警戒してください。 このリソースにアクセスしないと、多くの問題を発見できます。 おそらく、本格的な(匿名ではない)プロキシまたはVPNがなければ解決されないでしょう。
calamari-clientsリポジトリをダウンロードする
mkdir -p ~/dev; cd ~/dev ceph@calamari:~/dev$ git clone https://github.com/ceph/calamari-clients.git ceph@calamari:~/dev$ cd calamari-clients
パッチを(親ディレクトリに)ダウンロードします
ceph@calamari:~/dev/calamari-clients$ wget https://raw.githubusercontent.com/avssav/patches/master/calamari-clients/makefile.patch -qO \ ../makefile.patch
githubが再び落ちる場合に備えて、ここにdiffファイルを残します。 画面からコピーすると、差分ファイルが曲がって作成されます。
../makefile.patch
ceph@calamari:~/dev/calamari-clients$ echo 'diff -ruN a/Makefile b/Makefile --- a/Makefile 2014-12-03 10:13:32.486463458 +0300 +++ b/Makefile 2014-12-03 10:14:10.994462934 +0300 @@ -45,7 +45,7 @@ DATESTR=$(shell /bin/echo -n "built on "; date) set_deb_version: DEBEMAIL=$(DEBEMAIL) dch \ - --newversion $(VERSION)-$(REVISION)$(BPTAG) \ + --newversion $(VERSION)-$(REVISION)$(BPTAG) -u low \ -D $(DIST) --force-bad-version --force-distribution "$(DATESTR)" build:' > ../makefile.patch
パッチを適用します。
ceph@calamari:~/dev/calamari-clients$ patch -ZEfsp1 < ../makefile.patch
calamari-clients debパッケージをビルドします。
ceph@calamari:~/dev/calamari-clients$ DEBEMAIL=your@email.com DEBFULLNAME="Your Name" DIST=trusty BPTAG=-1 REAL_BUILD=y make dpkg
確認する
ceph@calamari:~/dev/calamari-clients$ ls -la .. total 936 drwxrwxr-x 3 ceph ceph 4096 Dec 10 18:54 . drwxr-xr-x 8 ceph ceph 4096 Dec 10 18:45 .. drwxrwxr-x 11 ceph ceph 4096 Dec 10 18:41 calamari-clients -rw-r--r-- 1 ceph ceph 838592 Dec 10 18:54 calamari-clients_1.2.1.1-53-gddd7187-1_all.deb -rw-rw-r-- 1 ceph ceph 810 Dec 10 18:54 calamari-clients_1.2.1.1-53-gddd7187-1_amd64.changes -rw-rw-r-- 1 ceph ceph 92902 Dec 10 18:54 calamari-clients-make-dpkg.txt -rw-rw-r-- 1 ceph ceph 431 Dec 10 18:41 makefile.patch
親ディレクトリに戻る
ceph@calamari:~/dev/calamari-clients$ cd ..
5. calamari-serverをインストールします
サーバーを別のマシンにインストールします。 最後の(5)を除く、パラグラフ1のすべてのサブパラグラフを満たします。
更新2015.07:
開発者からのSaltstackがバージョン2015.07に更新されました。 イカは彼と一緒には働きません。 次のようにsaltstackをインストールします
sudo aptitude -y install python-pip sudo pip install 'salt==2014.7.0'
2015.07までの塩マスターのインストール(情報を残す)
saltstackを使用してリポジトリを追加します。
構成管理システムをインストールします。
echo "deb http://ppa.launchpad.net/saltstack/salt/ubuntu trusty main" | sudo tee /etc/apt/sources.list.d/saltstack.list sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 4759FA960E27C0A6 sudo aptitude update
構成管理システムをインストールします。
sudo aptitude -y install salt-master salt-minion salt-syndic
calamari-serverの依存関係をインストールする
sudo aptitude install -y apache2 libapache2-mod-wsgi libcairo2 supervisor python-cairo libpq5 postgresql python-txamqp python-gevent \ python-sqlalchemy
calamari-serverおよびcalamari-clientsをインストールします
sudo dpkg -i ./calamari-server_1.2.1-100-ge0b9b21-1_amd64.deb sudo dpkg -i calamari-clients_1.2.1.1-53-gddd7187-1_all.deb
イカのセットアップ
ceph@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: your@email.com Password: Password (again): Superuser created successfully. [INFO] Starting/enabling services... [INFO] Restarting services... [INFO] Complete.
6. Cephノードをイカ監視に追加する
更新2015.07:
開発者からのSaltstackがバージョン2015.07に更新されました。 イカは彼と一緒には働きません。 次のようにsaltstackをインストールします。
すべてのノードで
gdebiをインストールする
sudo aptitude -y install gdebi-core
ダイヤモンドとその設定
sudo gdebi --option=APT::Get::force-yes=1,APT::Get::Assume-Yes=1 -n diamond_3.4.67-1_all.deb sudo cp /etc/diamond/diamond.conf.example /etc/diamond/diamond.conf
ソルトミニオンとその設定
wget https://github.com/avssav/packages/raw/master/saltstack/salt-common_2014.7.0%2Bds-2trusty1_all.deb wget https://github.com/avssav/packages/raw/master/saltstack/salt-minion_2014.7.0%2Bds-2trusty1_all.deb sudo gdebi --option=APT::Get::force-yes=1,APT::Get::Assume-Yes=1 -n salt-common_2014.7.0+ds-2trusty1_all.deb sudo gdebi --option=APT::Get::force-yes=1,APT::Get::Assume-Yes=1 -n salt-minion_2014.7.0+ds-2trusty1_all.deb echo "master: CALAMARI_SERVER_IP" | sudo tee /etc/salt/minion.d/calamari.conf sudo update-rc.d salt-minion defaults
2015.07まで塩分を設定(情報を残す)
すべてのノードで
ソルトミニオンでリポジトリを追加
diamondをインストールするための依存関係をインストールする
ダイヤモンドとその設定
ソルトミニオンとその設定
ソルトミニオンでリポジトリを追加
echo "deb http://ppa.launchpad.net/saltstack/salt/ubuntu trusty main" | sudo tee /etc/apt/sources.list.d/saltstack.list wget -q -O - "http://keyserver.ubuntu.com:11371/pks/lookup?op=get&search=0x4759FA960E27C0A6" | sudo apt-key add - sudo aptitude update
diamondをインストールするための依存関係をインストールする
sudo aptitude -y install python-support python-configobj
ダイヤモンドとその設定
sudo dpkg -i diamond_3.4.67-1_all.deb sudo cp /etc/diamond/diamond.conf.example /etc/diamond/diamond.conf
ソルトミニオンとその設定
sudo aptitude -y install salt-minion echo "master: CALAMARI_SERVER_IP" | sudo tee /etc/salt/minion.d/calamari.conf sudo update-rc.d salt-minion defaults
再起動
sudo service salt-minion restart sudo service diamond restart
7. CalamariのCephクラスターの承認
前の段落を完了すると、Cephマシンのソルトミニオンクライアントはウィザードからアップグレードしようとします。
calamari-serverとsalt-masterを備えたマシン上
ceph@calamari:~$ sudo salt-key -L Accepted Keys: Unaccepted Keys: ceph1 ceph2 ceph3 ceph4 ceph5 Rejected Keys:
クラスタマシンのリストが表示されます。 アクセスを許可する
ceph@calamari:~$ sudo salt-key -A The following keys are going to be accepted: Unaccepted Keys: ceph1 ceph2 ceph3 ceph4 ceph5 Proceed? [n/Y] y Key for minion ceph1 accepted. Key for minion ceph2 accepted. Key for minion ceph3 accepted. Key for minion ceph4 accepted. Key for minion ceph5 accepted.
9.すべてが機能するはずです
ブラウザからhttp:// CALAMARI_SERVER_IPにログインし、セットアップ時に指定したユーザー名とパスワードを使用します(calamari-ctl initialize)。
10.役に立つささいなこと
ダイヤモンドの設定は、Cephノードで自動的に同期されます。 ただし、設定を手動で更新するコマンドがあります
sudo salt-call state.highstate
次のコマンドは、calephari-serverとのCephノードの接続を確認します
sudo salt-call ceph.get_heartbeats
ソルトマスターに接続されているすべてのソルトミニオンを確認します
sudo salt '*' ceph.get_heartbeats
注:一部の中間結果は記事に含まれていません。 たとえば、不快なエラーを排除するパッチは除外されます。 しかし、記事を確認して、もう一度イカをgithubから複製し、パッチを適用したところ、パッチは機能しませんでした。 一般に、判明したように、私が記事を書いている間に、calamari'vtsyはメインブランチのバグを修正しました。
9.材料
Ubuntu 14.04でCephのCalamariをコンパイルする
Ceph Calamari:ステップバイステップ
Debian WeezyでパッケージをビルドしてCalamariをインストールする
Ceph Calamari:サバイバルガイド
イカのドキュメント
精密なビルド手順