以前は、Retzを1台のサーバーにインストールする方法が提供されていた。現在はこの方法は出来ない。
|
|
Retzは複数のコンポーネントで構成されているが、1台のサーバーで全てを動かすことが出来る。
つまり、retz-server・Mesosマスター・ZooKeeper・Mesosエージェント・retz-clientを全て同一サーバーで動かす。
Mesosエージェントもそのサーバーにしか入れないので、実際のコマンド実行が行われるのもこのサーバー上になる。
テスト環境なら、この方式で大丈夫。
(本番環境であれば、マスター用のサーバーを用意した方が良さそう)
以前のRetzのドキュメントにはAnsibleを使って
一括インストールする手順が載っていた。現在は提供されていないので、この方法は使えなくなった。[/2016-12-15]
(Ansibleは、設定ファイルに従って複数のコンポーネントのインストールを行ってくれるツール。なので、提供されている設定ファイル(centos7.yml)の中を見ながら、Ansibleを使わずに手動でインストールするということも出来た)
$ sudo yum install gcc python-devel python-virtualenv libffi-devel $ virtualenv vこれで、vというディレクトリーが作られる。
(v)
」が表示されるようになる)$ source v/bin/activate
(v)$ easy_install pip (v)$ pip install ansible (v)$ pip install markupsafe ←OSのバージョンによっては不要らしい?
(v)$ wget https://raw.githubusercontent.com/retz/retz/master/doc/example/centos7.yml
(v)$ hostname > inventory (v)$ ls centos7.yml inventory
(v)$ ansible-playbook centos7.yml -c local -i inventory -b --ask-become-pass
(v)$ deactivate
Mesosの動作確認として、「java -version」を実行してみる。
$ mesos-execute --command="java -version" --master=ホスト名:5050 --name=java-version 〜 Received status update TASK_RUNNING for task java-version 〜 Received status update TASK_FINISHED for task java-version 〜
ホスト名は、インストールしたサーバー自身のホスト名を指定する。
コマンドが実行されれば、TASK_FINISHEDが表示される。
コマンドの実行結果自体は表示されない。(「http://ホスト名:5050
」から見られるらしい)
関係ある設定ファイルとしては以下のようなものがある。
$ cat /etc/mesos-slave/isolation cgroups/cpu,cgroups/mem $ cat /etc/mesos-slave/cgroups_enable_cfs true
$ wget https://github.com/retz/retz/releases/download/0.0.24/retz-client-0.0.24-1.el7.x86_64.rpm $ wget https://github.com/retz/retz/releases/download/0.0.24/retz-server-0.0.24-1.el7.x86_64.rpm
sudo yum remove retz-server retz-client
」で消してから「rpm -ivh」する。$ sudo rpm -ivh retz-server-0.0.24-1.el7.x86_64.rpm retz-client-0.0.24-1.el7.x86_64.rpm
$ sudo vi /opt/retz-server/etc/retz.properties「localhost」を(自サーバーの)ホスト名に書き換える。
$ export PATH=/opt/retz-client/bin:$PATH
Retzの環境(設定ファイルの場所とか)は以下のコマンドで確認できる。
$ retz-client config
AnsibleによってインストールされたZooKeeperやMesosはAnsibleによって起動(実行開始・常駐)しているが、retz-serverは手動で起動する必要がある。
$ /opt/retz-server/bin/retz-server
retz-serverは、Retzを使いたい間は起動しっぱなし(常駐)にしておく必要がある。(ので、retz-clientはretz-serverを起動したのとは違うコンソールから実行する必要がある)
なので、nohupとか使って起動してもいい。
$ nohpu /opt/retz-server/bin/retz-server > /dev/null &