生涯未熟

生涯未熟

プログラミングをちょこちょこと。

jenkinsを使ってNATサーバ越しにデプロイしてみる

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"

要するにシェルスクリプトsshを書いてコマンド実行しましょってなことです。

結果

jenkinsでローカルから多段接続しようとするとひじょーに面倒くさいことが分かりました。
普通はjenkinsをサーバにおいて運用するんでしょうけど、もしもローカルから多段接続をせねばならん時はこんな感じで踏み台先サーバに
シェルスクリプトを書いて実行しましょー。



Jenkins実践入門 ~ビルド・テスト・デプロイを自動化する技術 (WEB+DB PRESS plus)
佐藤 聖規 和田 貴久 河村 雅人 米沢 弘樹 山岸 啓
技術評論社
売り上げランキング: 27,243