jenkinsおじさんと仲良くなりつつある今日このごろ。
jenkinsって色んな使われ方があると思うのですが、今回はNATサーバを踏み台にしたデプロイをしてみます。
ちなみにローカル→NATサーバ→踏み台先サーバと渡り歩く上に、バージョン管理システムを使わないという
くっそ汚いプロセスを想定してますので、ご容赦を。
jenkinsでやること
jenkinsではプラグインとしてPublish Over SSHを使います。
まずSSHで接続したNATサーバ先でコマンド叩きたかったんで、このプラグインを使っています。
で、このPublish Over SSHを使って、まずNATサーバへつなぎます。
Publish Over SSHの設定としては、jenkinsの管理内にPublish Over SSHって項目があるので
そこに色々とNATサーバの設定を記述していってください。
注意として、keyを使う時は-----BEGIN RSA PRIVATE KEY-----と-----END RSA PRIVATE KEY-----も含めることを忘れずに。
これで、NATサーバへつなぐ準備は出来ました!
こっからはビルド内容の説明。
ローカルにあるソースコードをzipで固めるなりしたものを、NATサーバへ送ります。
まずビルドの項目の種別をシェルの実行に。
その次に、シェルにソースコードをzipに固め、NATサーバに送るとこまで書きます。
これは簡単にかけちゃうので割愛。
次に、ビルド環境にあるSend files or execute commands over SSH after the build runsを選択し、
対象となるSSHServerにさっき作成したサーバを選択。
ExecCommandに先ほど固めてNATサーバへ送ったzipを踏み台先サーバに送り、
その後./deploy.shと書いておきます。
NATサーバでやること
NATサーバでdeploy.shを作成します。
中身はこんな感じで書きましょ。
#! /bin/bash ssh 踏み台先サーバアドレス "unzip さっき作成したzip"
結果
jenkinsでローカルから多段接続しようとするとひじょーに面倒くさいことが分かりました。
普通はjenkinsをサーバにおいて運用するんでしょうけど、もしもローカルから多段接続をせねばならん時はこんな感じで踏み台先サーバに
シェルスクリプトを書いて実行しましょー。