Infrastructure as Code Casual
Sapporo #0
Social
Twitter: marcy_terui
Facebook: marcy.terui
Github: marcy-terui
Work
R&D (Automation, IoT)
Dev for Ops
Cloud Architecting
Cloud, Infrastructure
AWS認定でぶおっぷすえんじーにゃ
AWS以外も触りたいお年頃
クラウドゆとり世代っぽい
Infrastructure as Code
Chef歴2年
最近は周辺ライブラリ作ったり(OSS)
YAPC落ちたorz
誰ですか?
Masashi Terui
照井 将士
所属
ジグソー株式会社
サービスユニット技術開発グループ リーダー
アラサー2児の父
余談ですが
Assosiate Level
Developer
SysOps Administrator
Proffesional Level
DevOps Engineer
えっ(゜o゜;
そういうことじゃないよね?www
海外のDevOps Engineerは日本で言うところの
自動化おじさんっぽい
試験問題もそんな感じだったし、
GitHubでChef周りにいる人達を見てもとわりとそんな感じ
経緯
一人でやってると割と辛い
誰かとシェアしたかった
去年、東京・関西に混ぜてもらって

一回やってみたけど、一人で運営と思うと。。。
仲間ができたのでやってみよう
やりやすい、楽しくカジュアルな感じで
趣旨
これは(一般的な)コミュニティではない
自分は代表ではない、ただの言い出しっぺ
権威も上下関係もない
同窓会や近況報告会でもない
セミナー・勉強会形式とか、ハンズオンとかやらない
定期開催ではない
好きなことを話したい人が集まって好きな様に話す
一方向な勉強会ではなく、双方向シェアする
実践してほしい(そして次回があればは話してほしい)
次回があるかは皆様次第です。
話したいこと、聞きたいことがあったら言ってください。
はい次
Test-Kitchenを中心とした
Cookbook(Playbook)開発フロー
Test-Kitchen is 何
Cookbookのテストに必要な一連のワークフローを

支援するユーティリティ
gem install test-kitchen
YAMLで記述(ERBになってるのでコード埋め込みも可能)
プラガブル(1.4からさらに強化)
並列実行可能
これがない生活は考えられない(自分は)
Driver
インスタンスの立ち上げ・管理を行う
元々はプラグインといえばほぼコレのことだった
kitchen-vagrant(VirtualBox)
kitchen-ec2
kitchen-azure_vm

kitchen-azureもあるけど動かない(から作った)
kitchen-docker_cli

kitchen-dockerもあるけど更新遅い・DockerでSSH使いたくない(から作った)
and more
Provisioner
プロビジョニングを行う
chef-solo
chef-zero
shell
kitchen-ansible

その場で依存モジュール入れてAnsibleのビルド初めたり、Busser(後述)でテストする
ためにRuby入れたり、まずソース汚いから色々考えなおした方が良いと思った
kitchen-itamae
kitchen-provisioner-local_shell

プロビジョニングフレームワーク毎回インストールしなくてよくね?(から作った)

Kitchen-verifier-shellのほぼ丸パクリ(作者許可済み)
and more
Transport
コマンドやファイルの転送を行う
何故、Transporterにしなかったのか?
ssh
kitchen-winrm

kitchen-ec2は対応してる模様

kitchen-azure_vmは。。。pull req待ってます(ボソ
kitchen-docker_cli
and more
Verifier
テストを行う
busser

busser-serverspecが事実上デファクト
kitchen-verifier-shell

元々、対象の外からつついてテストしようというServerspecや、外からテストして
なんぼというInfratasterは、できるならセットアップ済みの環境からさくっと叩き
たい by sawanoboly氏
これは他には無いかも(知らない)
CentOSはDockerで高速に
Amazon LinuxはEC2で
Chef-Zeroでプロビジョニング
Itamaeも試してみよっか
Serverspecでテスト
全パターン並列でやっちゃおう
---
platforms:
- name: centos-6.6
- name: amazon-2015.03
image_id: ami-1ab3ce73
transport:
name: ssh
username: ec2-user
ssh_key: ~/.ssh/id_rsa
provisioner:
name: chef-zero
driver:
name: docker_cli
transport:
name: docker_cli
suites:
- name: chef
run_list:
- kitchen/recipes/default.rb
- name: itamae
provisioner:
name: itamae
run_list:
- recipe/default.rb
source "https://rubygems.org"
gem 'test-kitchen'
gem ‘kitchen-docker_cli'
gem 'kitchen-ec2'
gem 'kitchen-itamae'
$ bundle install —binstub
$ ./bin/kitchen test -c 6 -p
番外編
Test-KitchenでShell-VerifierとDockerCli-Driverで

高速にServerspecテストを回す

http://qiita.com/Marcy/items/8a85ae78a21787f57bca
DockerCli-Driver + LocalShell-Provisoner(Itamae) +
Shell-Verifier(Serverspec)でTest-Kitchen最速フロー

http://qiita.com/Marcy/items/7ca000f83d08266ee352
Enjoy!!

Infra as Code Sapppro Casual 札幌の開催趣旨とTest-Kitchenの話