LoginSignup
16
16

More than 5 years have passed since last update.

gradle-ssh-pluginを使ってGradleからSSHする

Posted at

GradleでSSHを使ってサーバへデプロイだとかサーバの再起動をするのに、これまでAntのsshexecを使っていた。
最近、gradle-ssh-pluginを知ったので、使い方をメモ。

ユースケースとしてはこんな形。

  • jarをビルドした後に、jarをVagrantで動いてるVMにコピー
  • VMにコピーしたファイルをTomcat向けの場所に移動
  • VMのTomcatを再起動
// gradle-ssh-pluginを使うための設定
buildscript {
    repositories {
        mavenCentral()
    }
    dependencies {
        classpath 'org.hidetake:gradle-ssh-plugin:0.2.7'
    }
}

apply plugin: 'ssh'

// SSH先のサーバ情報
remotes {
    vagrant {
        host = '192.168.33.10'
        user = 'vagrant'
        password = 'vagrant'
    }
}

// アップロード→Tomcat再起動タスク
task uploadAndRestartTomcat(type: SshTask) {
  // サーバ側のアップロード先ディレクトリ
  def uploadDir = '/home/vagrant/'
  // jarを作ったローカルのファイルパス
  def localFile = file("${project.buildDir.name}/libs/${project.jarName}").path
  // Tomcat上のjar置き場
  def tomcatLibDir = '/usr/local/tomcat/webapps/hoge-web/WEB-INF/lib'

  // SSHでやること
  session(remotes.vagrant) {
    // ファイルを置く
    put(localFile, uploadDir)
    // サーバ上でファイルを移動する
    execute("sudo cp ${uploadDir}/${project.jarName} ${tomcatLibDir}")
    // Tomcatを再起動
    execute("sudo service jsvc restart")
  }
}
16
16
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
16
16