10

Click here to load reader

FabricでJobSchedulerを全自動インストール

  • Upload
    oss

  • View
    1.000

  • Download
    5

Embed Size (px)

DESCRIPTION

Fablicを使って、SOS JobSchedulerの全自動インストールをやってみました

Citation preview

Page 1: FabricでJobSchedulerを全自動インストール

FabricでJobSchedulerの 全自動インストール

2013/6/7 JobScheduler User Group Japan

[email protected]

Page 2: FabricでJobSchedulerを全自動インストール

目次

1.Fabricを使用したインストール前提条件 2.Fabricのインストール 3.簡単なサンプル 4.Fabricの実行 5.JobSchedulerのインストール例   1) JRE32bitのインストール   2) mysql-connectorのインストール   3) JobSchedulerのインストール 6.インストール後の動作確認(envassert) 7.envassert使用例

Page 3: FabricでJobSchedulerを全自動インストール

1.Fabricを使用したインストール前提条件

・CentOS6.4 minimal ・パッケージを最新バージョンへアップデート ・時刻の設定 ・SELinux、ファイアウオール 機能を無効化

端末(Fabric)よりサーバへJobSchedulerをインストールします

Page 4: FabricでJobSchedulerを全自動インストール

2.Fabricのインストール

インストールは簡単で、以下のコマンドだけで Fabricが使えるようになります。

# pip install fabric

Page 5: FabricでJobSchedulerを全自動インストール

3.簡単なサンプル

| まず適当なディレクトリにfabfile.pyを作成します。(/root/fabric/fabfile.py)

| 次に内容を書き込みます

from fabric.api import run def test(): run(‘pwd')

Page 6: FabricでJobSchedulerを全自動インストール

4.Fabricの実行 ◆fabコマンドを使用し実行します  # fab -H localhost -p password test    -H 実行するホストを指定    -p ホストのパスワード ※コマンドのオプションでホストを指定するほかfabfile.pyに以下を追加する 事で、省く事ができます。

env.hosts = ['192.168.106.162'] env.user = 'root'

env.password = 'password'

fab -f tt.py -H localhost -p password test [localhost] Executing task 'test' [localhost] run: pwd [localhost] out: /root

◆実行結果

Page 7: FabricでJobSchedulerを全自動インストール

5.JobSchedulerのインストール例

1)JRE32bitのインストール run('cp /opt/fabric_file/jre-6u45-linux-i586.bin /opt') jre-6u45-linux-i586.binを/optへコピー run('chmod +x /opt/jre-6u45-linux-i586.bin') コピーしたjre-6u45-linux-i586.binのパーミッションの変更 java_install='/opt/jre-6u45-linux-i586.bin‘ インストールコマンドを変数に格納 run('cd /opt && %s' %java_install ) JREのインストール

JobSchedulerをインストールする前に必要のモジュール等をインストールします。 (インストール元ファイルは事前に/opt/fabric_fileに格納、またソースはところどころ省略してます。)

2) mysql-connectorのインストール with cd('/opt'): run(‘cp fabric_file/mysql-connector-java-5.1.25.tar.gz .') mysql-connector-java-5.1.25.tar.gzを/optにコピー run('tar xvf mysql-connector-java-5.1.25.tar.gz')  mysql-connectorのインストール

変数にコマンドを入れることも可能

変数を使うには%sを仕様

Withを使用することにより作業ディレクトリを固定することが可能

※Fabricはfabコマンドを実行したユーザのディレクトリがルートディレクトリになり、コマンドを   実行するたびにルートに戻ってしまうため、毎回作業ディレクトリを入れる必要があります。

Page 8: FabricでJobSchedulerを全自動インストール

3) JobSchedulerのインストール adduser='scheduler' インストールユーザを定義 with cd('/opt'): run('cp fabric_file/jobscheduler_linux.1.3.12.3072.tar.gz /opt')  jobscheduler_linux.1.3.12.3072.tar.gzを/optへコピー run('tar xvf jobscheduler_linux.1.3.12.3072.tar.gz') run(‘cp jobscheduler.1.3.12.3072/jobscheduler_install.xml /home/%s’%adduser ) run(‘sed -ie \'s/key=\“databaseHost\" value=\"\"/key=\" databaseHost \" value=\“192.168.106.162\"/g\' /home/%s/jobscheduler_install.xml" %adduser’)  sedコマンドを使用し、jobscheduler_install.xmlの中身を置換  <entry key=“databaseHost” value=“”/> →   <entry key=“databaseHost” value=“192.168.100.248”/> run('export PATH=/opt/jre1.6.0_45/bin:$PATH')  インストールにはJRE32bitを使用するためパスをexport run('chown %s:%s /opt/jobscheduler.1.3.12.3072' %(adduser,adduser)) sos_install=‘/opt/jobscheduler.1.3.12.3072/setup.sh -u \ /home/%s/jobscheduler_install.xml' %adduser sudo('sudo -u %s %s' %(adduser,sos_install)) sos_start=‘/opt/sos-berlin.com/jobscheduler/%s/bin/jobscheduler.sh start' %adduser  JobScheduler起動コマンドを変数に格納 run('%s' %sos_start)  JobSchedulerの起動

Page 9: FabricでJobSchedulerを全自動インストール

6.インストール後の動作確認      (envassert) Fabricにはサーバ環境をテストするenvassert というプラグインがあります。 envassertには次の事が出来ます。 |  ファイル、ディレクトリの有無確認 |  サービスの起動確認 |  ユーザの存在確認 |  その他パーミッションの確認など envassertはfabricのインストールだけでは使用できないため 別途プラグインをインストールします。

# pip install envassert

Page 10: FabricでJobSchedulerを全自動インストール

7.envassert使用例

def check(): print('MySQL Process Check') if process.is_up('mysqld'): print('MySQL Running\n') else: print('Not MySQL Running\n')

if user.exists('scheduler'): print('User:scheduler is present\n') else: print('User:scheduler not present\n')

print('JobScheduler StertUP') if port.is_listening(4444): print('JobScheduler Running\n') else: print('Not JobScheduler Running\n')

以下はMySQLの起動確認、 schedulerユーザの存在確認、 Jobscheduler(ポート4444の使用)の起動確認を行っている サンプルとなります。

MySQLの起動確認

Schedulerユーザの確認

JobSchedulerの起動確認