Jenkins without Install
-
Upload
hirokazu-tokuno -
Category
Technology
-
view
297 -
download
1
description
Transcript of Jenkins without Install
インストールしないでJenkins
自己紹介
● 徳納 弘和 (とくのう ひろかず)● 某社の工場のITシステム部門● 39才にしてIT部門へ移動して4年目
– 遅れを取り戻すべく日夜勉強中
● 少し覚えた言語– VBA, Java, Perl, Shell...
● コードを極力書かないのがお気に入り
– Pentaho ETL, Mojolicious
目的
● サーバーにインストールするのは大人の事情で無理!でもJenkins使って自動テストする
● 前提
– サーバーには何もインストールしない
– 手元にはWindows PCがある
– Windowsにも何もインストールしない
– サーバーに直接ログイン出来るアカウントでテストを実行出来る
● 得られる結果
– Jenkinsからサーバーでテストを実行、結果を収集
用意するもの
● Putty Portable : サーバーへの接続● Jenkins : 継続的インテグレーションサーバー● xUnitの何か
– シェルのユニットテストshunit2を使ってみました
● 気合い
Putty Portable 1/2 鍵作成
● PUTTYGENで鍵を生成する– %PuTTYPortable%
¥App¥putty¥PUTTYGEN.EXEを実行– Generateを押す– マウスを元気よく動かす
● 秘密鍵をid_rsa.ppk,公開鍵をid_rsa.pub という名前で保存– Key passphrase
● 鍵を使う時に必要なパスワードを設定した方が良い
– 秘密鍵 : Save private key
– 公開鍵 : Save Public key
Putty Portable 2/2 鍵の登録● 公開鍵をサーバーにコピー
– pscp id_rsa.pub [email protected]:id_rsa.pub
– 初めて接続する場合、以下のメッセージが出るのでyを押すThe server's host key is not cached in the registry.
~中略~
Store key in cache? (y/n) ● サーバー上で公開鍵を登録
mkdir ~/.sshchmod 700 ~/.sshcd ~/.sshssh-keygen -i -f ~/id_rsa.pub >> authorized_keyschmod 600 authorized_keysrm ~/id_rsa.pub
Pagent
● 鍵を使う度にパスワードを聞かれない様にPagentを使う%PuTTYPortable%\App\putty\PAGEANT.EXE "%HOMEDRIVE%%HOMEPATH%\id_rsa.ppk"
● スタートアップに入れると良いかも?
shunit2
● shuni2 2.1系を展開– 2.0系ではJenkinsがSuccess/Failure判定が出来ない
– tar zxvf shunit2-2.1.6.tgz
~/Test/test_pass.sh
#! /bin/sh
testPass(){ assertEquals 1 1}
# load shunit2. ~/Test/shunit2
~/Test/test_mix.sh#! /bin/sh
testPass(){ assertEquals 1 1}
testFail(){ assetEquals 1 0}# load shunit2. ~/Test/shunit2
Jenkinsの設定 1/2
● 先ずは起動java -jar %Jenkins%\jenkins.war
● 新規Job作成
– フリースタイルを選択
Jenkinsの設定 2/2
● ビルド / ビルド手順の追加 / Windowsバッチコマンドの実行
– PUTTY_PATHやRSA_FILEは環境に合わせて変えて下さい
setlocalset PUTTY_PATH="D:\PortableApps\PuTTYPortable\App\putty\"set USER=your_userset SERVER=some_serverset RSA_FILE="%HOMEDRIVE%%HOMEPATH%\id_rsa.ppk"set SERVER_COMMAND=sh ~/Test/test_pass.sh%PUTTY_PATH%plink -batch -ssh -i %RSA_FILE% %USER%@%SERVER% %SERVER_COMMAND%
Jobの実行
結果確認
結果 1/2 Success
● 全ての結果がPassするとSuccessになる
結果 2/2 Failure
● 1つでも失敗するとFailure
まとめ
● インストールしなくてもJenkinsで自動テストが出来る– 手元のPCからサーバー側のスクリプトを実行
● Jenkinsからサーバー上でのshunit2の結果を判定出来た