ようへいの日々精進XP

よかろうもん

2016 年 06 月 26 月(日)

tl;dr

久し振りの晴れ空。

  • 納豆うどんを作って食べる
  • CircleCI 上で Serverspec の Docker バックエンドを使ったテストがイバラの道だった(CircleCI で利用する Docker コンテナに対しては docker exec利用出来ない
  • 結局、色々とやりたいことがあったのにソファでダラダラ過ごしてしまう

  • ギョーザを焼く、美味しかった

  • ギョーザがとても美味しかった

2016 年 06 月 25 月(土)

tl;dr

変な天気が続く。

  • 7 時前に目が覚める
  • 昨晩の夕食の片付けをボチボチ
  • 来月の勉強会の資料を作成、一旦 fix させる(修正等あれば対応する)

  • ジョギング(香椎浜 2 周)
  • ジョギングシューズの左足先がスレてゴム底がめくれてきているので買い替えを検討したい
  • 遅い昼ごはん、奥さんの英気を養う為にうなぎ(自分は白飯にうなぎのタレのみ)

  • Jenkins の使い方をイマイチ理解出来ていないので弄ってブログに纏めた

眠い。

Serverspec と Infrataster でテストした Docker コンテナイメージを Jenkins を介して Amazon ECR に push する考察

tl;dr

ニーズがあるかどうか解らないけど...Jenkins を触ってみたくて試してみた。Jenkins の Amazon ECR プラグインとの出会いに身震いした。

参考

やったことを一枚の絵にすると...

こんな感じ。

f:id:inokara:20160625193046p:plain

実際に動いている画面

f:id:inokara:20160625193614p:plain

サンプル

github.com

このサンプルでは以下のようなテストを行う。

  • Serverspec の Docker バックエンド(厳密に言えば Specinfra の Docker バックエンド)を利用してコンテナに対して Docker API を介してテスト
  • 合わせて Infrataster と Docker API を利用してコンテナ内に立ち上げた Apache に対して振る舞いのテスト

事前にやったこと

サマリ

  1. Jenkins の導入
  2. Jenkins ユーザーで Docker API を叩けるようにする
  3. 各種 Jenkins プラグインの導入(後述)
  4. GitHub に Jenkins の Jenkins (GitHub plugin) にて URL を設定する(後述)
  5. IAM ユーザーの払い出して Amazon ECR にリポジトリを作成
  6. IAM ユーザーのクレデンシャル情報を Jenkins の「認証情報」に設定
  7. ECR に push するジョブ(ジョブ (2))を作成
  8. ジョブ (2) にリポジトリ作成時に払いだされたレジストリ URL を Jenkins の Amazon ECR 用プラグインに設定する(後述)
  9. Serverspec と Infrataster でコンテナをテストするジョブ(ジョブ (1))を作成(後述)
  10. ジョブ (2)のビルドトリガにジョブ (1) を指定する(後述)
  11. ジョブ (2)の Amazon ECR 用プラグインに Build Context と Dockerfile Path を指定する(後述)
  12. Build Pipeline の View を作成する(後述)

各種 Jenkins プラグインの導入

以下のプラグインを順不同でインストール。(※ 以下のプラグイン以外でも依存関係で関連するプラグインがインストールされる)

GitHub に Jenkins の Jenkins (GitHub plugin) にて URL を設定する

対象となる GitHub リポジトリの設定で Jenkins (GitHub plugin) を追加して Jenkins の Webhook URL を設定する。

f:id:inokara:20160625195221p:plain

尚、Jenkins の Webhook を設定する際に GitHub 側の IP アドレスを制限したい場合には以下のように API を実行して GitHub 側の IP アドレスを確認することが出来る。(Webhook の接続元は hooks キーの値を利用した)

curl -s https://api.github.com/meta

リポジトリ作成時に払いだされたレジストリ URL を Jenkins の Amazon ECR 用プラグインに設定する

ビルドにて Docker Build and Publish を選択すると以下のようにレジストリの情報等を入力出来るようになる。

f:id:inokara:20160625195911p:plain

Registry credentials では 事前に Jenkins の「認証情報」に登録しておいた IAM ユーザーの設定を利用する。

Serverspec と Infrataster でコンテナをテストするジョブ(ジョブ (1))を作成

PATH="/var/lib/jenkins/.rbenv/bin:$PATH"
eval "$(rbenv init -)"
cd /var/lib/jenkins/workspace/$JOB_NAME
bundle install
bundle exec rspec spec/docker_*_spec.rb

ジョブ (2)のビルドトリガにジョブ (1) を指定する

ビルドトリガにて「他のプロジェクトの後にビルド」を選択して、対象プロジェクトからジョブ (1) を選択する。

f:id:inokara:20160625200913p:plain

ジョブ(2)の Amazon ECR 用プラグインに Build Context と Dockerfile Path を指定する

ジョブ (1) の workspace に展開されている Dockerfile を利用してコンテナをビルドしたいので Build Context と Dockerfile Path を下図のように指定する。

f:id:inokara:20160625200925p:plain

Build Pipeline の View を作成する

特に難しいことは無く、Build Pipeline Plugin 導入後に Jenkins のダッシュボードの Job 一覧にある をクリックして作成する。

f:id:inokara:20160625193614p:plain

後は...

手元で Dockerfile を修正、spec ファイルを修正して push すれば Jenkins 先生がテストを走らせて、テストが合格であれば Dockerfile からコンテナイメージをビルドして Amazon ECR に push するという継続的デリバリー的な何かが動き始める。(これを継続的デリバリーと言うのかは解らないけど...)

そして、以下のように Amazon ECR のリポジトリにコンテナイメージが push されている。

f:id:inokara:20160625210720p:plain

また、Slack なんか絡めるとビルドの成功、失敗も以下のように通知してくれてナウい感じなるんぢゃないかと思ったり。

f:id:inokara:20160625203311p:plain

自戒を込めて、勉強会の資料は事前に用意しておきたい

tl;dr

勉強会の資料作りをしながら、頭によぎったことをダンプする。

勉強会で発表する意味

hb.matsumoto-r.jp

上記のブログ記事を読ませて頂いて、とても心動かされたし、自分の中でモヤモヤした迷いが吹っ切れた気がした。

ということで、発表の機会を得ることで、以下のような効果があると考えている。

  • 聞いてくださる人に理解してもらう為に、話す方はより理解を深めなければらない #=> 結果、勉強する必要がある
  • 同様に「もやっ」と理解していた知識や経験を整理する機会となる

もちろん、時間的な制約もあり完璧には理解を深めたり、情報の整理をすることは難しいが、その「きっかけ」が得られるという意味でとても有意義なことだと考えている。

資料は出来るだけ直前ではなく余裕を持って事前に

当たり前のことかもしれないけど、発表資料は余裕を持って事前に用意するようにしたい。

事前に用意出来ることで読みなおしや、最新情報への対応等も行いやすく、資料自体のクオリティもきっと上がるはずだし、それが聞いてくれる方々への敬意であると考えている。そして、様々な事情で残念ながら、資料が間に合わない、間に合っていないことはネタではなく反省点として次の勉強会に生かすべきだと思う。

繰り返しになるけど、当たり前のことなのかもしれないけど、自戒を込めて文字に起こしてみた。

ということで

日々精進。

2016 年 06 月 24 月(金)

tl;dr

昨日の日記だけど。

  • 体が重だるいので汗をかけば軽くなるんぢゃないかと思ってジョギング(香椎浜を 2 周)
  • 結局、体の重だるさは抜けなかった
  • 10 時前に始業

  • 詳しくは書けないけど、チームメンバーもさることながら、会社にはエンジニアとして優秀な人が多い
  • すげー会社に置いてもらってるなと毎回思う
  • 置いてかれないようにしたいけど、多分、置いてかれてる...

  • 奥さんが仕事に行き始めたので掃除、洗濯、たまに夕飯作り等の比重が大きくなってきているけど、ま、いいか
  • 家事は仕事で一息いれるタイミングにささっと片付けているのでクオリティは低い、ま、いいか

  • ま、いいか

2016 年 06 月 13 月(月)

tl;dr

既に火曜日だけど。

体調悪し。月曜日の朝は大概どこかおかしい。奥さんのお弁当作ってから暫く横になっていた。

今日の弁当。

べんとぅ

あっという間に午後。お昼ごはんは安定のセブンイレブンのごぼ天ぶっかけうどん。うまし。

打ち合わせ等であっという間に夕方。

朝の雨が嘘のように晴れて夕焼けが綺麗だっただろう(直接我が家からは夕焼けは見ることが出来ない)

奥さんの体調もイマイチ。心配。

蒸し暑くなって体調を崩しがちなので気をつけたい。

そう言えば、昨日の手作り餃子はナカナカ美味しかった。

ギョーザ。

2016 年 06 月 12 月(日)

tl;dr

ざっくり言うと一日死んでいた。

朝からシトシト雨。

日曜朝はガンダムユニコーン、ジューオージャー、仮面ライダーゴーストで始まる。 トイレ掃除等を済ます。

カップ麺とおにぎりランチ。 食べた後に色々とやりたい事があったのに気付いたら寝てた。

長いお昼寝の後、イオンモール香椎浜に買い物。

夕食は手作り餃子。焼き担当。一通り焼いて仕上げに強火のコマ油が香ばしく皮パリで焼けるようだ。

年相応の体力になってきたようだ。

JAWS-UG 福岡「3度目の濃い目にAWSの話をしてみよう」に参加したメモ(資料のリンク集になりつつある)#jawsug

tl;dr

昼からお酒を呑みながら緩く AWS の話をしたい大人たちが集まる勉強会の三回目。今回は東京からもゲスト参加頂いたり、飛び込み LT あったり個々のスピーカーの方の話も濃かったけど、参加者のメンツや会全体が濃かった気がする。

jaws-ug-kyushu.doorkeeper.jp

会場を提供して下さった株式会社 Fusic 様、準備、写真撮影諸々裏方で動いて下さった皆さん、参加された皆さん、大変お疲れ様でした。

プログラム

セッション

時間 登壇者 概要
13:00-13:15 藤崎 優 開会の挨拶と自己紹介タイム
13:15-13:45 藤崎 優 「Cognito User Poolsと仲良くなりたい」
13:50-14:20 夏目祐樹 AWSで自作CGIをサーバレス実装してみた 〜その3」(仮)
14:25-14:40 岳 伸一 【Shortセッション】AWS IoT と AWS ES を使ってみた
14:45-15:10 木村 健一郎 「Lambdaで始めるlog-drivenサービス構築(仮)」
15:15-15:30 青柳 英明 【Shortセッション】ネットワーク構成から考える AWS IaaS 管理
15:35-16:05 小山 健一郎 「"inside of awspec"」 (仮)
16:10-16:40 川原 洋平 「絶対ゲットだぜ!AWS 認定試験ソリューションアーキテクト(小さい文字で:アソシエイト)」(仮)※ 15 分位を予定
16:45-17:15 安土 茂亨 「CloudFrontを使ったサイト公開とハマりどころ」
17:20-17:50 森田 邦裕 「ServerLessでPriceLessの夢を見たい」

懇親会+LT

時間 登壇者 概要
18:00- 垣花 暁 【LT】未定
坂本小葉瑠 【LT】Line botでちょっとだけ遊んでみた
満園 裕人 【LT】CakePHP + PHPUnit
チョ ジョンミン 【LT】未定
高田知典 【LT】未定
峯久由 【LT】専用線で遊んでみた
岡崎賢吉 【LT】未定
戸田浩史 【LT】未定
谷山徳太郎 【LT】未定
松村 優大 【LT】AWS x MLB -after cast-
古渡 晋也 業界激震、謎の LT(15 〜 20 分程度)
堀家隆宏 【LT】未定

資料リンク集

www.slideshare.net

www.slideshare.net

www.slideshare.net

www.slideshare.net

t.co

speakerdeck.com

t.co

speakerdeck.com

www.slideshare.net

www.slideshare.net

www.slideshare.net

www.slideshare.net

参加された方のブログ

blog.star-flare.com

k1low.hatenablog.com

hawaku.hateblo.jp

tsubalog.hatenablog.com

diary.scarecrow.jp

showm001.hatenablog.com

結局、セッションは 9 人、LT 20 人近くとなって長丁場な勉強会になったけど、こんな感じの全員参加型がこれから流行る(はず)。

そして、毎回楽しいのでこれからも続くことを祈って。

2016 年 06 月 11 日(土)

tl;dr

AWS ソリューションアーキテクトアソシエイト受験の後に JAWS-UG の勉強会に参加する。

5 時に起きて勉強会の資料作りを試みるも何も降りてこないので出来るだけ簡略化して口頭の説明で頑張ることにした。

11 時より AWS ソリューションアーキテクトアソシエイト受験。合格。

総合スコア は 80% だったが、個人的には 100% 近いんぢゃないかって思っていたので悔しかったり。また、各トピックを個別に見てみると「設計」とか「実装」がギリギリ又は落第点という結果だった。うーむ。

13 時より JAWS-UG 福岡。

jaws-ug-kyushu.doorkeeper.jp

参加者のほぼ全員がネタを持ち寄りつつ、酒を呑みながら話したいだけ話すという、他の勉強会には無い(と思われる)スタイルがとても心地よい。このスタイルはずっと続けていきたいなと思ったり。

勉強会後、勉強会参加者有志で懇親会。

飛び込みで入ったお店で、お通しにいきなりアワビが出てきてビックリ。若い世代のメンバーとおじさんメンバーで相まみえて、いにしえのインターネットの話から AR / VR の話までココでも濃い話が交わされていた。

一日を通して、ずっと頭痛が続いて辛かったけど充実した一日だった。

2016 年 06 月 10 日(金)

tl;dr

出張最終日。福岡に帰る。

昨晩、暫く閉めだされていたけど、30 分位したらホテルに入れて貰えた。ホントに野宿だったらどんな風にネタにしようと考えていたのでちょっと残念。

オフィスで少し仕事をして空港へ移動。電車へ駆け込むように飛行機に乗り込む。

売店でお弁当を購入。特になにも見ずに買ったら明太子が入っていて、これから福岡帰るのになーって思って笑えた。

飛行機の中でソリューションアーキテクトアソシエイト受験の悪あがき。

帰宅。

色々と疲れた。