Ansible の CI を
drone/Docker で試してみた
西村健太
Ansible Meetup
2015/09/14 @日経カンファレンスルーム
コンテンツ
About me
なぜ drone/Docker なのか
drone の設定イメージ
drone 画面イメージ
構成
試してみての雑感
About Me
名前:西村健太 @
ビッグデータ系のプロジェクトで上流工程から下流工程までを担当
分析環境整備でノリと勢いだけで ansible を使って、

「そろそろテストコード(serverspec)かかねーと」というのが

今回の動機。
※この発表は個人の意見であり、

所属する企業の意見を代表するものではありません
Why drone/Docker
ソースコードは自社から出さない、というルールを守る
出していいなら、いっぱい CI Services がありますし
ansible の設定がコンテナ内で閉じるので CI を始めやすい
VM 立ち上げのようなオーバーヘッドも少ない、はず
サーバを作れば、後はレポジトリに yaml ファイルを置
くだけ。
参考
http://atskimura.hatenablog.com/entry/2014/02/06/184048
http://sideci.hatenablog.com/entry/2014/03/14/181030
drone の設定イメージ
←ansible が入ったコンテナを自作
↓Ansible の実行
←serverspec でテスト
リポジトリのルートディレクトリに次のような
.drone.yml を追加すれば OK です。
drone/docker のインストールはこちらを参考:
http://gre.hatenablog.com/entry/2015/07/12/140521(手前味 です)
http://qiita.com/sonots/items/71da7797139aab7c28d1, http://blog.takus.me/2014/02/25/drone-on-centos/
Drone 画面イメージ
serverspec でコケて FAILURE になっています。
構成
Production 環境はすべて RHEL/
CentOS6 なので、コンテナも
CentOS6 にしている
CentOS7 だと golang (drone
に必要)と Docker とを

yum だけでインストール可能
HTTPS を使うなら GItLab,
drone の手前に Nginx を入れた
ほうが設定が簡単。
Web
Hook
Clone
POST
Push
凡例
Git
HTTP
試してみての雑感
単体テストなら OK(すべて localhost の inventory を加えるぐらい)
複数のコンテナを動かす必要があるなら、もっと手を加える→
ansible の docker モジュールでできそう

drone の設定で手軽にワーカーを追加可能
drone の機能が豊富というわけではない。

(ansible の自動テストぐらいなら十分?)

Ansible の CI を drone/Dokcker で試してみた