Infrastructure as Code Casual Sapporo #0
Infrastructure as Code CasualSapporo #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!!