S-JIS[2016-09-17/2016-12-15] 変更履歴

Retzインストール(スタンドアローン)メモ

以前は、Retzを1台のサーバーにインストールする方法が提供されていた。現在はこの方法は出来ない。


概要

Retzは複数のコンポーネントで構成されているが、1台のサーバーで全てを動かすことが出来る。
つまり、retz-server・Mesosマスター・ZooKeeper・Mesosエージェント・retz-clientを全て同一サーバーで動かす。
Mesosエージェントもそのサーバーにしか入れないので、実際のコマンド実行が行われるのもこのサーバー上になる。

テスト環境なら、この方式で大丈夫。
(本番環境であれば、マスター用のサーバーを用意した方が良さそう)

(複数サーバーへの)インストール


インストール(スタンドアローン)

以前のRetzのドキュメントにはAnsibleを使って 一括インストールする手順が載っていた。現在は提供されていないので、この方法は使えなくなった。[/2016-12-15]
(Ansibleは、設定ファイルに従って複数のコンポーネントのインストールを行ってくれるツール。なので、提供されている設定ファイル(centos7.yml)の中を見ながら、Ansibleを使わずに手動でインストールするということも出来た)


Mesosのインストール

  1. virtualenvをインストールする。
    $ sudo yum install gcc python-devel python-virtualenv libffi-devel
    $ virtualenv v
    これで、vというディレクトリーが作られる。
  2. virtualenvの仮想環境を開始する。
    vの中のactivateというコマンドを実行すると、(Pythonの)仮想環境が実行される。(プロンプトの前に「(v)」が表示されるようになる)
    $ source v/bin/activate
  3. Ansibleをインストールする。
    (v)$ easy_install pip
    (v)$ pip install ansible
    (v)$ pip install markupsafe		←OSのバージョンによっては不要らしい?
  4. Ansibleを使って各種プロダクト(Mesos等)をインストールする。
    1. GitHubのretz/doc/example/centos7.yml(Ansibleの設定ファイル)をダウンロードしてくる。 (「raw」ボタンを押せば、ダウンロードできるURLが分かる)
      (v)$ wget https://raw.githubusercontent.com/retz/retz/master/doc/example/centos7.yml
    2. inventoryファイルを作成する。(ホスト名を記述する)
      (v)$ hostname > inventory
      (v)$ ls
      centos7.yml  inventory
    3. Ansibleを実行する。
      (v)$ ansible-playbook centos7.yml -c local -i inventory -b --ask-become-pass
  5. virtualenvの仮想環境を終了する。
    (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

Retzのインストール

  1. GitHubのretz/releaseでアーカイブファイルのURLを確認し、ダウンロードする。(retz-serverとretz-clientのrpmファイル)
    $ 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
  2. インストールする。
    $ sudo rpm -ivh retz-server-0.0.24-1.el7.x86_64.rpm retz-client-0.0.24-1.el7.x86_64.rpm
  3. 設定ファイルを変更する。
    $ sudo vi /opt/retz-server/etc/retz.properties
    「localhost」を(自サーバーの)ホスト名に書き換える。
  4. retz-clientの実行ファイルのパスを環境変数PATHに加えておく。
    $ export PATH=/opt/retz-client/bin:$PATH

Retzの環境(設定ファイルの場所とか)は以下のコマンドで確認できる。

$ retz-client config

retz-serverの起動

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 &

Retz目次へ戻る / 技術メモへ戻る
メールの送信先:ひしだま