Now Playing Tracks

Azure VMでJenkins

#azurejp

Azure VM上にLinuxサーバーでのJenkinsはギャラリーなどで簡単に入れられますが色々な事情でWindows OSでやりたい場合のセットアップメモです

1.Azure VM上にJenkinsを立ち上げる

AzurePortalから通常の通りWindows Serverの仮想マシンを作成します。

2.エンドポイントの設定

image

HTTPを選択してデフォルトのまま設定。

(BitnamiTomcatも同時に入れるので80で大丈夫です)

3.bitnamiからダウンロード

image

リモートログイン後 Bitnami ( https://bitnami.com/stack/jenkins )からJenkinsセットをダウンロードし実行

4.Firewall設定

image

InBound Rule / OutBoundRuleの両方に New Ruleから設定 Port 80を通過する様に設定する。

OutBoundRuleがなくても起動はしますがPluginupdateができなくなります。

5.別PCからアクセステスト

image

この後は都合に合わせてsmtp立てたりプラグイン入れたりと普通の社内の仮想マシン感覚で(セキュリティー以外は)イケます。

課金されないAzure VMの停止方法

image

今回、ハマったのでメモ

Azureの仮想マシンはシャットダウンの方法によっては課金が止まらないケースがあります。

無駄に課金されないMicrosoft Azure仮想マシンのシャットダウン方法

http://www.atmarkit.co.jp/ait/articles/1405/09/news093.html

●課金されないようにシャットダウンするには

Stop-AzureVM -ServiceName <クラウドサービス名> -Name <仮想マシン名> -Force

Azure BLOBをJenkinsで利用する

Azure上のSlave ( or Master )から社内成果物などを参照して色々と処理したい要望は沢山あると思います。(特にストレステストなどなどなど)と言うわけでArtifactの共有化の手段の1つとしてBLOBを利用したArtifact共有化方法です。

Jenkins 継続的インテグレーション ソリューションでの Azure ストレージの使用

http://azure.microsoft.com/ja-jp/documentation/articles/storage-java-jenkins-continuous-integration-solution/

※実はMicrosoft公式にもっと詳しい内容が記載されていました・・が折角、書いたので・・・・

Access Keyの取得

image

Azure Portalにログインし任意のストレージアカウント作成時にそのストレージアカウントのダッシュボードからアクセスキーを管理を選択します。

image

アクセスキーの管理にて以下の2つの情報が取得します。

  1. ストレージアカウント名
  2. プライマリーアクセスキー

Azure Portalの利用はこれで終了です。

Jenkins への設定

image

Jenkinsセットアップ後にAzure Storage plugin (https://wiki.jenkins-ci.org/display/JENKINS/Windows+Azure+Storage+Plugin)の先ほど取得したストレージアカウント名、プライマリーアクセスキーをJenkinsの管理→設定します。

設定後Validate storage credentialsを押して Validation Successfulが出ればOK!

Jenkins JOBの設定

image

対象のJOBのビルド後の処理からUpload arfificats to Microsoft Azure Blob storageを選択しContainer name には好きなコンテナ名を記入してください。

Make new container public by defaultとClean Containerは用途に合わせてList of arfificats はここではワイルドカードにしていますが、特定フォルダー以下などの場合は /output/*.* のような感じにするとそのフォルダー以下だけを送るようになります。

ApplicationInsightsにCustom Counterを!

image

Application Insightsはとても便利なのですが、色々と気難しい部分があります。特にCustom Counterは中々にすんなり出てくれない問題があり、地味に苦労するケースが多いです。

・そもそもカスタムカウンターが登録出来ない

WebRoleから登録しようとすると色々と深みにハマります。ただしググると色々出てきます。

Custom Performance Counters in Windows Azure

http://blog.elastacloud.com/2011/01/14/implementing-custom-performance-counters-in-windows-azure-sdk-1-3/

Windows Azure Diagnosticsのパフォーマンス カウンターをプラグイン化して使う

http://blogs.gine.jp/taka/archives/2128

とりあえず私は前者のページを参考にwebrole実行前にcustom counterを登録するだけのexeを用意して対応しました。

・Base カウンターをApplicationInsights.configに記載しない

良く考えるとそりゃそうだなんですがマルチカウンターのベース値の方はApplicationInsights.configに設定してはいけません。していると、何の警告も無く、そのカウンターが出ません。この何も出ないのが辛いよね・・

ApplicationInsights.configにカウンターを重複させない

これも地味にひっかかる人が居るケース。特にWebRoleを作ってると、ちまちまとdiagnostics.wadcfgやApplicationInsights.configに何度も編集したりしているとミスしやすいです。一度形が出来ると自動化出来るので、ミスが減るのですが形が出来るまでにハマるパタンで案の定ハマりました。(;_;)

To Tumblr, Love Pixel Union