背景
ファームウェア開発では自動ビルドは品質を担保する基盤になるので早めに導入しておきたい。
けれども自前のビルドサーバーを運用は大変。
かつ、今回は開発環境の縛りで Windows 環境が必要だった。
なので、WindowsServer 2012 on EC2 @ AWS で Jenkins を動かすところまでやってみた。
ソースはgit hubを使用しているのでそこもメモ。
AWS の登録から
(ここからかよっ!)
組み込みワールドにこもっていたのでサーバー運用なんてしたことありません。
AWS ってどうやって使うの?から入ります。
登録〜インスタンス作成
をサーフィンしていると、あちこちに「無料で始めてみる」があるので、始めてみる。
お決まりの登録作業で進んでいく。
ここも参考にしました。LIGさまのブログはわかりやすくていつもお世話になっています。
わずか5分!? AWSのEC2でクラウドなウェブサーバーを構築してみた
http://liginc.co.jp/web/programming/server/39969
【AWS】無料範囲でWindows Server 2012 を立てちゃうぞ!
http://fanblogs.jp/kagayakibito/archive/223/0
チェックポイントは
- クレカ登録が必要(無料枠からはみ出ると課金される)
- EC2 が仮想サーバー。これを使う。
- EC2上にインスタンスと呼ばれる仮想OSを展開する。ここで Windows Server 2012 Base を選択。2016/8/10現在、t2.micro が無料枠。
- Windows が相手なので RemoteDesktop環境が必要。
クライアントが OS X なので、これを使った。
https://itunes.apple.com/jp/app/microsoft-remote-desktop/id715768417?mt=12
インスタンスができたら、RemoteDesktop で接続します。
その際は、「リモートでデスクトップファイルのダウンロード」から落とした rdp ファイルを使うか、直接 「パブリックDNS」を指定します。
環境構築
Git
まずは git 導入。 Git for Windows を使う。
インストール後、以下にパスを通しておく。じゃないとあとで sh.exe がないとエラーになる。
{インストールパス}¥bin¥
Jenkins
いよいよ Jenkins を導入。まずはダウンロード。
インストーラでインスコ。簡単っ。
http://localhost:8080/
でアクセスする。
そろそろ Remote Desktop が ストレスになってくるので、クライアントから叩けきたい。
EC2の ip アドレス (自分の場合はip固定していないのでホスト名) + 8080 で叩けば、開けるはず!
ですが、デフォルトではポートが開いてませんでした(当たり前)。
ここを参考に、 TCP 8080 を開放します。
で、、でけた!(組み込み屋さんはこの程度で感動します)
Job 作成
早速ジョブを作成します。どきどき。
新規ジョブ作成を選びます。
ここでは自由にやりたいので(?)フリースタイル・プロジェクトのビルドを選びます。
ソースコード管理
Git を選択すると、リポジトリを設定する画面が出てきます。URLをいれましょう。
私の環境では、ssh で叩いているので、
git@github.com:hogehoge/horerepo
です。
ssh 鍵登録
Cardentials で認証情報を選択します。最初は何もないので、「追加」を選びましょう。
「種類」を「SSHユーザ名と秘密鍵」に設定します。
秘密鍵の設定方法はいろいろ試行錯誤してはまりました。確実なのは、「直接入力」で「鍵」をダイレクトに貼り付けるのが簡単でした。
ここで貼る鍵は
-----BEGIN RSA PRIVATE KEY-----
で始まるやつです。
ビルド
いよいよビルド手順の追加です。
これは動くでしょう!
実行
Jenkinsダッシュボードに戻ると先ほど作ったJobが表示されています。早速実行します。
で、でけた。。。 git のチェックアウトもちゃんと動いています。
実は git のチェックアウトでも幾つかエラーでて対処したのですが、それはまたどこかで。