Posted at

fabricを使用したjbossへのデプロイスクリプト

More than 3 years have passed since last update.

fabricによるjbossへのデプロイ用スクリプト。

ビルド後の成果物が作られていることを前提とする。


スクリプト

from fabric.api import run, env, put

env.use_ssh_config = True

def deploy():
put("./trunk/project/build/libs/app.war", "/home/ec2-user/app.war")
run("sudo chown jboss:jboss /home/ec2-user/app.war")
run("sudo /opt/jboss7/bin/./jboss-cli.sh -c --command='undeploy app.war'")
run("sudo /opt/jboss7/bin/./jboss-cli.sh -c --command='deploy /home/ec2-user/app.war'")
run("sudo /etc/init.d/jboss restart")


実行

fab -H {ホスト名} deploy


おまけ

踏む台サーバを使用する方法。

引数に指定して使用する方法とconfigファイルに記述して使用する方法の2つを紹介。


引数で指定

.ssh/configに各サーバの設定を記述する。

Host           proxy                         #踏み台サーバの名前

HostName XXX.XXX.XXX.XXX #踏み台サーバのホスト
User deploy #SSH接続のユーザー名
IdentityFile /home/ec2-user/.ssh/key.pem #SSH接続の鍵ファイル

Host remote #接続先の名前
HostName XXX.XXX.XXX.XXX #接続先のホスト
User deploy #SSH接続のユーザー名
IdentityFile /home/ec2-user/.ssh/key.pem #SSH接続の鍵ファイル

「-g」オプションで踏み台サーバのホスト名を指定してコマンドを実行する。

fab -H remote -g proxy deploy


configに指定

下記のように直接configに指定する。

```

Host proxy #踏み台サーバの名前

HostName XXX.XXX.XXX.XXX #踏み台サーバのホスト

User deploy #SSH接続のユーザー名

IdentityFile /home/ec2-user/.ssh/key.pem #SSH接続の鍵ファイル

Host remote #接続先の名前

HostName XXX.XXX.XXX.XXX #接続先のホスト

User deploy #SSH接続のユーザー名

IdentityFile /home/ec2-user/.ssh/key.pem #SSH接続の鍵ファイル

ProxyCommand ssh -W %h:%p proxy #踏み台サーバを指定

```

ホスト名を指定してコマンドを実行する。



fab -H remote deploy