![Page 1: Infra as Code Sapppro Casual 札幌の開催趣旨とTest-Kitchenの話](https://reader030.vdocuments.mx/reader030/viewer/2022032619/55c3126dbb61eb73608b45fa/html5/thumbnails/1.jpg)
Infrastructure as Code CasualSapporo #0
![Page 2: Infra as Code Sapppro Casual 札幌の開催趣旨とTest-Kitchenの話](https://reader030.vdocuments.mx/reader030/viewer/2022032619/55c3126dbb61eb73608b45fa/html5/thumbnails/2.jpg)
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の話](https://reader030.vdocuments.mx/reader030/viewer/2022032619/55c3126dbb61eb73608b45fa/html5/thumbnails/3.jpg)
余談ですが
![Page 4: Infra as Code Sapppro Casual 札幌の開催趣旨とTest-Kitchenの話](https://reader030.vdocuments.mx/reader030/viewer/2022032619/55c3126dbb61eb73608b45fa/html5/thumbnails/4.jpg)
Assosiate Level
Developer
SysOps Administrator
Proffesional Level
DevOps Engineer
![Page 5: Infra as Code Sapppro Casual 札幌の開催趣旨とTest-Kitchenの話](https://reader030.vdocuments.mx/reader030/viewer/2022032619/55c3126dbb61eb73608b45fa/html5/thumbnails/5.jpg)
えっ(゜o゜; そういうことじゃないよね?www
![Page 6: Infra as Code Sapppro Casual 札幌の開催趣旨とTest-Kitchenの話](https://reader030.vdocuments.mx/reader030/viewer/2022032619/55c3126dbb61eb73608b45fa/html5/thumbnails/6.jpg)
海外のDevOps Engineerは日本で言うところの
自動化おじさんっぽい
試験問題もそんな感じだったし、 GitHubでChef周りにいる人達を見てもとわりとそんな感じ
![Page 7: Infra as Code Sapppro Casual 札幌の開催趣旨とTest-Kitchenの話](https://reader030.vdocuments.mx/reader030/viewer/2022032619/55c3126dbb61eb73608b45fa/html5/thumbnails/7.jpg)
経緯
一人でやってると割と辛い
誰かとシェアしたかった
去年、東京・関西に混ぜてもらって
一回やってみたけど、一人で運営と思うと。。。
仲間ができたのでやってみよう
やりやすい、楽しくカジュアルな感じで
![Page 8: Infra as Code Sapppro Casual 札幌の開催趣旨とTest-Kitchenの話](https://reader030.vdocuments.mx/reader030/viewer/2022032619/55c3126dbb61eb73608b45fa/html5/thumbnails/8.jpg)
趣旨
これは(一般的な)コミュニティではない
自分は代表ではない、ただの言い出しっぺ
権威も上下関係もない
同窓会や近況報告会でもない
セミナー・勉強会形式とか、ハンズオンとかやらない
定期開催ではない
好きなことを話したい人が集まって好きな様に話す
一方向な勉強会ではなく、双方向シェアする
実践してほしい(そして次回があればは話してほしい)
![Page 9: Infra as Code Sapppro Casual 札幌の開催趣旨とTest-Kitchenの話](https://reader030.vdocuments.mx/reader030/viewer/2022032619/55c3126dbb61eb73608b45fa/html5/thumbnails/9.jpg)
次回があるかは皆様次第です。 話したいこと、聞きたいことがあったら言ってください。
![Page 10: Infra as Code Sapppro Casual 札幌の開催趣旨とTest-Kitchenの話](https://reader030.vdocuments.mx/reader030/viewer/2022032619/55c3126dbb61eb73608b45fa/html5/thumbnails/10.jpg)
はい次
![Page 11: Infra as Code Sapppro Casual 札幌の開催趣旨とTest-Kitchenの話](https://reader030.vdocuments.mx/reader030/viewer/2022032619/55c3126dbb61eb73608b45fa/html5/thumbnails/11.jpg)
Test-Kitchenを中心とした Cookbook(Playbook)開発フロー
![Page 12: Infra as Code Sapppro Casual 札幌の開催趣旨とTest-Kitchenの話](https://reader030.vdocuments.mx/reader030/viewer/2022032619/55c3126dbb61eb73608b45fa/html5/thumbnails/12.jpg)
Test-Kitchen is 何
Cookbookのテストに必要な一連のワークフローを
支援するユーティリティ
gem install test-kitchen
YAMLで記述(ERBになってるのでコード埋め込みも可能)
プラガブル(1.4からさらに強化)
並列実行可能
これがない生活は考えられない(自分は)
![Page 13: Infra as Code Sapppro Casual 札幌の開催趣旨とTest-Kitchenの話](https://reader030.vdocuments.mx/reader030/viewer/2022032619/55c3126dbb61eb73608b45fa/html5/thumbnails/13.jpg)
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の話](https://reader030.vdocuments.mx/reader030/viewer/2022032619/55c3126dbb61eb73608b45fa/html5/thumbnails/14.jpg)
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の話](https://reader030.vdocuments.mx/reader030/viewer/2022032619/55c3126dbb61eb73608b45fa/html5/thumbnails/15.jpg)
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の話](https://reader030.vdocuments.mx/reader030/viewer/2022032619/55c3126dbb61eb73608b45fa/html5/thumbnails/16.jpg)
Verifierテストを行う
busser
busser-serverspecが事実上デファクト
kitchen-verifier-shell
元々、対象の外からつついてテストしようというServerspecや、外からテストして
なんぼというInfratasterは、できるならセットアップ済みの環境からさくっと叩き
たい by sawanoboly氏
これは他には無いかも(知らない)
![Page 17: Infra as Code Sapppro Casual 札幌の開催趣旨とTest-Kitchenの話](https://reader030.vdocuments.mx/reader030/viewer/2022032619/55c3126dbb61eb73608b45fa/html5/thumbnails/17.jpg)
CentOSはDockerで高速に
Amazon LinuxはEC2で
Chef-Zeroでプロビジョニング
Itamaeも試してみよっか
Serverspecでテスト
全パターン並列でやっちゃおう
![Page 18: Infra as Code Sapppro Casual 札幌の開催趣旨とTest-Kitchenの話](https://reader030.vdocuments.mx/reader030/viewer/2022032619/55c3126dbb61eb73608b45fa/html5/thumbnails/18.jpg)
--- 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の話](https://reader030.vdocuments.mx/reader030/viewer/2022032619/55c3126dbb61eb73608b45fa/html5/thumbnails/19.jpg)
$ bundle install —binstub $ ./bin/kitchen test -c 6 -p
![Page 20: Infra as Code Sapppro Casual 札幌の開催趣旨とTest-Kitchenの話](https://reader030.vdocuments.mx/reader030/viewer/2022032619/55c3126dbb61eb73608b45fa/html5/thumbnails/20.jpg)
番外編
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の話](https://reader030.vdocuments.mx/reader030/viewer/2022032619/55c3126dbb61eb73608b45fa/html5/thumbnails/21.jpg)
Enjoy!!