View
1.000
Download
5
Category
Preview:
DESCRIPTION
Fablicを使って、SOS JobSchedulerの全自動インストールをやってみました
Citation preview
FabricでJobSchedulerの 全自動インストール
2013/6/7 JobScheduler User Group Japan
yamashita@ossl.co.jp
目次
1.Fabricを使用したインストール前提条件 2.Fabricのインストール 3.簡単なサンプル 4.Fabricの実行 5.JobSchedulerのインストール例 1) JRE32bitのインストール 2) mysql-connectorのインストール 3) JobSchedulerのインストール 6.インストール後の動作確認(envassert) 7.envassert使用例
1.Fabricを使用したインストール前提条件
・CentOS6.4 minimal ・パッケージを最新バージョンへアップデート ・時刻の設定 ・SELinux、ファイアウオール 機能を無効化
端末(Fabric)よりサーバへJobSchedulerをインストールします
2.Fabricのインストール
インストールは簡単で、以下のコマンドだけで Fabricが使えるようになります。
# pip install fabric
3.簡単なサンプル
| まず適当なディレクトリにfabfile.pyを作成します。(/root/fabric/fabfile.py)
| 次に内容を書き込みます
from fabric.api import run def test(): run(‘pwd')
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
◆実行結果
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コマンドを実行したユーザのディレクトリがルートディレクトリになり、コマンドを 実行するたびにルートに戻ってしまうため、毎回作業ディレクトリを入れる必要があります。
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の起動
6.インストール後の動作確認 (envassert) Fabricにはサーバ環境をテストするenvassert というプラグインがあります。 envassertには次の事が出来ます。 | ファイル、ディレクトリの有無確認 | サービスの起動確認 | ユーザの存在確認 | その他パーミッションの確認など envassertはfabricのインストールだけでは使用できないため 別途プラグインをインストールします。
# pip install envassert
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の起動確認
Recommended