LoginSignup
0
0

More than 5 years have passed since last update.

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

Posted at

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

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0