2014年9月18日木曜日

Jenkins でリモートサーバーのコマンドを実行できる SSH pluginを使ってみた

毎朝Linuxサーバーの電源を入れては起動後に必要なスクリプトを実行していたのですが
たまに忘れたりして他の人に迷惑をかけていました。

このような作業は自動でやりたいと思っていたのでJenkinsで出来ないか調査したところ
リモートサーバーのコマンドを実行できるSSH pluginというのがありました。

インストールから設定方法
  1. プラグインの管理の「利用可能」からsshで検索してSSH pluginをインストールします。
  2.  システムの設定で「SSHリモートホスト」でSSHサイトの「追加」ボタンを押すと下のキャプチャの設定項目が表示されます。
  3. ユーザー名とパスワードで接続できる場合はホスト名、ユーザ名、パスワード/パスフレーズでパスワードを入力します。

SSH plugin 設定画面
SSH plugin 設定画面
公開鍵で接続を行っている場合
キーファイルに秘密鍵のファイルパスを入力して、パスワード/パスフレーズで秘密鍵の
パスワードを入力することで接続できるようになります。
秘密鍵をPuTTY形式で作成している場合はOpenSSH形式に変換する必要があります。

OpenSSH形式ではなかったために見事に接続に失敗してしまいました。

使い方
  1. ビルドの設定画面で「ビルド手順の追加」から「リモートホストでシェルを実行」を選択。
  2. 下のキャプチャの項目が表示されます。SSHサイトにはシステムの設定で追加したSSHサイトが選択できるので、実行するサイトを選択します。
  3. リモートホストで実行したいコマンドを入力します。
  4. ビルド実行で実際にリモートホストに対してコマンドを実行してくれます。

SSH plugin ビルド設定項目
SSH plugin ビルド設定画面