Redmine,GitBucket,WordPress,PHP,JSのメモ書き

いぬのメモ帳

jenkins

Jenkinsでパスワード入力が必要のSFTPなサーバーに展開してみる~

投稿日:2019年1月14日 更新日:

開けましたおめでとう(´・ω・`)?

前回別サーバーにJenkinsから展開するよ?ってかいてから半年以上たちました(´・ω・`)?
いかがお過ごしでしょうか(´・ω・`)?わたしは元気です(´・ω・`)?

パスワード付きの他サーバーに展開する

他サーバーに展開するためにはファイル転送が必要になります。ただ近年はSFTP化されていたりとパスワード入力が必須なサーバーがほとんどです(´・ω・`)?
NFSとか張ってたり、キーをあらかじめサーバーに仕込んでおけばそんナンいらないんだけど個人サーバーだとそこまでのインフラを含めた環境を用意出来ないと思うので今日はこっちで説明しまする(´・ω・`)ノ

スポンサーリンク

アドセンス

1)WINSCPを入れる
ファイル転送はWINSCPのコマンドラインを使って転送します(´・ω・`)?
まずWINSCPをWindowsServerに入れたってください(´・ω・`)?

2)WINSCPで目的のサーバーにアクセスする。
まず、普通にWINSCP上でアクセス出来るようにアカウントを設定します?
SFTPのパスフレーズもいれてアクセスまで確認してね(´・ω・`)?

3)展開元のリポジトリを作成する
当たり前ですが事前に展開するリポジトリをつくっておいてね(´・ω・`)?
ちゃんとプル、プッシュ、コミットできるまで確認するのよー(´・ω・`)?

https://dgz.jp/jenkins-git/
コレの前半部分を参考に~(´・ω・`)ノ

4)一度Jenkeinsにセッション名で登録する(ホストの認証鍵を確認する)
前回の記事のとおりにJenkinsプロジェクトをいったん作成します(´・ω・`)?
1点だけジェンキンスのプロジェクト設定の「ビルド」ー「Windowsバッチコマンドの実行」に以下のように打ち込みます。

call winscp.com 「セッション名」 >c:log.txt

Jenkinsのビルドを一回走らせ(必ず失敗しますw)c:log.txtの内容を確認してください(´・ω・`)?エラーメッセージがあるので内容を確認するっす!
「ホストの認証鍵は ssh-ed**** 256 B********Vjk= です」と書かれている部分があるので「ssh-」から最後の「=」までコピーしておきます(´・ω・`)?

スポンサーリンク

アドセンス

5)wcspファイルを作成
WINSCPのコマンドラインから実行するためスクリプトを作成しますう(´・ω・`)ノ置き場所は適当にjenkinsを入れたフォルダにscriptってフォルダつくって新規作成スクリプトファイルをそこにぶち込んでます。


open sftp://「ID」:「PASS」@「サーバーURL」/ -hostkey="「上記で保存したホスト認証鍵」" -privatekey="ローカルにおいてあるプライベートキーのファイルの場所"
cd /home/kusanagi/test_html/DocumentRoot/test
lcd "C:\app\jenkins\workspace\test(release)"←ワークベースとJenkinsプロジェクト名
synchronize remote
close
exit

File名:test_sync.wscp

所々アカウントとかパスワードとかサーバーとかワークベースとかプロジェクト名がでてますが適宜おきかえくだしあ(´・ω・`)ノ

6)Jenkinsプロジェクト修正
最後に4)で作ったJenkinsプロジェクトを修正します(´・ω・`)ノ「ビルド」-「 Windowsバッチコマンドの実行 」は以下に置き換えて置きます。スクリプトファイルの置き場所は5)で作ったスクリプトを指定してね(´・ω・`)?

echo 「パスワード」|call winscp.com /script=C:\app\jenkins\script\test_sync.wscp

入力先:Windowsバッチコマンドの実行

ちなココでパスワードを入れるのは、相手先の設定によっては、パスワードを手入力しないと駄目な場合があり、パイプライン処理でパスワードを渡しております。(´・ω・`)

Jenkinsがクラックされるとココも抜かれちゃうのでお客様のサーバーとかこの仕組みでつくったら事案発生なので自己責任でね(´・ω・`)?そもそも、NFSとかでマウントしろやって話しだからね(´・ω・`)?
おじさんとの約束さ(´・ω・`)♪ らんらん

7)ビルドしてみる
ビルドしてみて「Finished: SUCCESS」ってビルドコンソールにでたら完成っす (´・ω・`)ノ
ほんと便利ね(´・ω・`)?

アドセンス

アドセンス

アドセンス

-jenkins

Copyright© いぬのメモ帳 , 2019 AllRights Reserved.