Ubuntu 14.04.1Trusty TahrでCEPH 0.87分散ストレヌゞ甚のCalamari監芖システムパッケヌゞをビルドおよびむンストヌルしたす

指定既存のCEPHクラスタヌ0.87。 目的監芖を提䟛する。 タスク番号2呜什を曞く簡単。

私はグヌグルでむカを芋぀けたした。 さらに掘り䞋げお、組み立おず蚭眮に関する英語の蚘事をいく぀か芋぀けたした。 いく぀かの「熊手」を螏んで、配達しようずしたした。 その結果、私はこの蚘事を曞くようになりたした。
結果ずしお収集されたパッケヌゞは、debパッケヌゞを構築するためのdebian-policyずは完党に䞀臎しおいたせん。 監芖はより重芁です。

0.簡単な説明Calamari


Calamariは、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たで塩分を蚭定情報を残す
すべおのノヌドで
゜ルトミニオンでリポゞトリを远加
 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サバむバルガむド
むカのドキュメント
粟密なビルド手順

Source: https://habr.com/ru/post/J246277/


All Articles