infra as code sapppro casual 札幌の開催趣旨とtest-kitchenの話

21
Infrastructure as Code Casual Sapporo #0

Upload: masashi-terui

Post on 06-Aug-2015

626 views

Category:

Technology


2 download

TRANSCRIPT

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

Infrastructure as Code CasualSapporo #0

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

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児の父

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

余談ですが

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

Assosiate Level

Developer

SysOps Administrator

Proffesional Level

DevOps Engineer

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

えっ(゜o゜; そういうことじゃないよね?www

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

海外のDevOps Engineerは日本で言うところの

自動化おじさんっぽい

試験問題もそんな感じだったし、 GitHubでChef周りにいる人達を見てもとわりとそんな感じ

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

経緯

一人でやってると割と辛い

誰かとシェアしたかった

去年、東京・関西に混ぜてもらって

一回やってみたけど、一人で運営と思うと。。。

仲間ができたのでやってみよう

やりやすい、楽しくカジュアルな感じで

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

趣旨

これは(一般的な)コミュニティではない

自分は代表ではない、ただの言い出しっぺ

権威も上下関係もない

同窓会や近況報告会でもない

セミナー・勉強会形式とか、ハンズオンとかやらない

定期開催ではない

好きなことを話したい人が集まって好きな様に話す

一方向な勉強会ではなく、双方向シェアする

実践してほしい(そして次回があればは話してほしい)

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

次回があるかは皆様次第です。 話したいこと、聞きたいことがあったら言ってください。

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

はい次

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

Test-Kitchenを中心とした Cookbook(Playbook)開発フロー

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

Test-Kitchen is 何

Cookbookのテストに必要な一連のワークフローを

支援するユーティリティ

gem install test-kitchen

YAMLで記述(ERBになってるのでコード埋め込みも可能)

プラガブル(1.4からさらに強化)

並列実行可能

これがない生活は考えられない(自分は)

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

Driverインスタンスの立ち上げ・管理を行う

元々はプラグインといえばほぼコレのことだった

kitchen-vagrant(VirtualBox)

kitchen-ec2

kitchen-azure_vm

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

kitchen-docker_cli

kitchen-dockerもあるけど更新遅い・DockerでSSH使いたくない(から作った)

and more

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

Provisionerプロビジョニングを行う

chef-solo chef-zero shell kitchen-ansibleその場で依存モジュール入れてAnsibleのビルド初めたり、Busser(後述)でテストする

ためにRuby入れたり、まずソース汚いから色々考えなおした方が良いと思った kitchen-itamae kitchen-provisioner-local_shellプロビジョニングフレームワーク毎回インストールしなくてよくね?(から作った)Kitchen-verifier-shellのほぼ丸パクリ(作者許可済み) and more

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

Transportコマンドやファイルの転送を行う

何故、Transporterにしなかったのか?

ssh

kitchen-winrm

kitchen-ec2は対応してる模様

kitchen-azure_vmは。。。pull req待ってます(ボソ

kitchen-docker_cli

and more

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

Verifierテストを行う

busser

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

kitchen-verifier-shell

元々、対象の外からつついてテストしようというServerspecや、外からテストして

なんぼというInfratasterは、できるならセットアップ済みの環境からさくっと叩き

たい by sawanoboly氏

これは他には無いかも(知らない)

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

CentOSはDockerで高速に

Amazon LinuxはEC2で

Chef-Zeroでプロビジョニング

Itamaeも試してみよっか

Serverspecでテスト

全パターン並列でやっちゃおう

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

--- 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'

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

$ bundle install —binstub $ ./bin/kitchen test -c 6 -p

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

番外編

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

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

Enjoy!!