Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
My tool
for Web Application
@koudaiii
at 2015/1/27
Profile
id: koudaiii
fullname: Kodai Sakabe
Attention
• 個人が読んできたor読み中の書籍を紹介
• 私個人が2年ほど利用して、外せない設定
• ProvisioningToolを作成する上で個人的に気をつけている部分
• ベストプラクティスというわけではなく、こういう使い方を...
Agenda
1. Vagrant
2. Vagrant plugins
3. Chef-solo
4. Continuous Integration
5. Serverspec
6. Vagrantの利用手順
7. Tips:Thorfileで...
Vagrantfileの詳細な設定、Vagrantの裏側、pluginの作り方まで
Vagrant
• Virtualboxのホストオンリーアダプター設定
• Virtualboxの「環境設定」->「ネットワーク」->「ホストオンリーネットワーク」->
「追加」
• PrivateIPで開発サーバーにアクセスする感覚でできる
...
Vagrant plugins
• vagrant plugin install ~~で拡張。Vagrantfileで記述
• vagrant-sahara(serverのある地点をsnapshotを取る)
• vagrant-digitaloc...
WebApplicationの構築まで含めた実践入門
Chef-solo
• CookbookとRepositoryは1:1
• ApplicationのCookbookを作りたい時は、上で作っ
たCookbookを元に独自のParameterを渡す
• CFEngine/pupet/Ansibl...
テスト駆動インフラでwerckerを使ったCI
3.Test
2.Provisioning
Ops
4.Notification
1.Webhook
Serverspecの使い方はもちろん、背景・設計思想
例:Serverspec
$ cat spec/default/matsuri_spec.rb
require 'spec_helper'
describe package('nginx') do
it { should be_installe...
wercker Continuous Integration
テストが終わったらSlackへ通知する
Vagrantの利用手順
(初めて触るMiddlewareのインストール)
1.vagrant sandbox onでまずはsnapshotを取得
2.virtualbox上で実際にコマンド作業
3.confファイル等はlocal上にマウントし...
Tips:コマンドをCode化
Thorfileにコマンドを記述
$ bundle exec thor -T
docker
------
thor docker:berkshelf # berks vendor
thor docker:build...
気をつけている点
• Vagrantfileにいろいろ設定せず出来る限りOSイン
ストール済みの初期サーバーと同じアクセス方法
• チームで共有できるように極力シンプル
• 自分以外がテストしやすいように(Pullrequestを送
りやすいよう...
まとめ
• 書籍より今ご紹介した内容はすべて実現可能
• チームで使いやすいようにシンプルさを保つ。(極力
pluginを使わない。Vagrantfileを複雑に設定しない)
• 自分以外がカスタマイズしやすいようにThorfile等
でComma...
Reference
• 実践Vagrant
• http://www.oreilly.co.jp/books/9784873116655/
• Chef 実践
• http://www.amazon.co.jp/Chef%E5%AE%9F
%E...
My tool for web application
Upcoming SlideShare
Loading in …5
×

My tool for web application

2,248 views

Published on

at 2015/01/27
vagrant からChef-solo,serverspecのお話をしました。
Tech-Circle #2: Vagrant+Dockerを使って環境を簡単に作るハンズオン勉強会でLTしました。

Published in: Technology
  • Be the first to comment

My tool for web application

  1. 1. My tool for Web Application @koudaiii at 2015/1/27
  2. 2. Profile id: koudaiii fullname: Kodai Sakabe
  3. 3. Attention • 個人が読んできたor読み中の書籍を紹介 • 私個人が2年ほど利用して、外せない設定 • ProvisioningToolを作成する上で個人的に気をつけている部分 • ベストプラクティスというわけではなく、こういう使い方を していますというお話 • むしろ、ここをこうすると良い!等ありましたら教えて下さ い><
  4. 4. Agenda 1. Vagrant 2. Vagrant plugins 3. Chef-solo 4. Continuous Integration 5. Serverspec 6. Vagrantの利用手順 7. Tips:ThorfileでCommandをCode化 8. 気をつけている点 9. Reference
  5. 5. Vagrantfileの詳細な設定、Vagrantの裏側、pluginの作り方まで
  6. 6. Vagrant • Virtualboxのホストオンリーアダプター設定 • Virtualboxの「環境設定」->「ネットワーク」->「ホストオンリーネットワーク」-> 「追加」 • PrivateIPで開発サーバーにアクセスする感覚でできる • Port Forwardで繋がるが、より本番に近い形(80,22等) • vagrant ssh-config >> ~/.ssh/configでsshを楽に • vagrant sshやssh vagrant@XXXXが手間 • configのHostをwebappにすると「ssh webapp」でアクセス可能
  7. 7. Vagrant plugins • vagrant plugin install ~~で拡張。Vagrantfileで記述 • vagrant-sahara(serverのある地点をsnapshotを取る) • vagrant-digitalocean(DigitalOcean利用) • vagrant-omnibus(Chefをインストール) • vagrant-berkshelf(Chefのcookbook管理) • 結局使っているのはvagrant-digitalocen(CI用)とvagrant-sharaのみ ※vagrant-berkshelfはchef-dkを入れたりと依存関係が多い点。 常に自分のMachineで使えるかわからない。けど自分のチーム(developer)であればrubyは入っている
  8. 8. WebApplicationの構築まで含めた実践入門
  9. 9. Chef-solo • CookbookとRepositoryは1:1 • ApplicationのCookbookを作りたい時は、上で作っ たCookbookを元に独自のParameterを渡す • CFEngine/pupet/Ansible/Itamaeは? chef-soloは 比較的新しく書籍として一番まとめられているので 初めてProvisioningToolを利用するにはオススメ。
  10. 10. テスト駆動インフラでwerckerを使ったCI
  11. 11. 3.Test 2.Provisioning Ops 4.Notification 1.Webhook
  12. 12. Serverspecの使い方はもちろん、背景・設計思想
  13. 13. 例:Serverspec $ cat spec/default/matsuri_spec.rb require 'spec_helper' describe package('nginx') do it { should be_installed } end describe service('nginx') do it { should be_enabled } it { should be_running } end
  14. 14. wercker Continuous Integration テストが終わったらSlackへ通知する
  15. 15. Vagrantの利用手順 (初めて触るMiddlewareのインストール) 1.vagrant sandbox onでまずはsnapshotを取得 2.virtualbox上で実際にコマンド作業 3.confファイル等はlocal上にマウントしている/vagrant/へコピー 4.chefのrecipeを書く 5.specを書く(serverspec) 6.vagrant sandbox rollbackで元に戻す 7.prvisioning(bundle exec knife solo cook webapp) 8.bundle exec thor dockerで他OSでもテストが通ることを確認
  16. 16. Tips:コマンドをCode化 Thorfileにコマンドを記述 $ bundle exec thor -T docker ------ thor docker:berkshelf # berks vendor thor docker:build # build docker image provisioned by chef thor docker:default # build image and run spec thor docker:roles # build Directory in roles thor docker:spec # run spec
  17. 17. 気をつけている点 • Vagrantfileにいろいろ設定せず出来る限りOSイン ストール済みの初期サーバーと同じアクセス方法 • チームで共有できるように極力シンプル • 自分以外がテストしやすいように(Pullrequestを送 りやすいように)ThorfileでコマンドをCode化する
  18. 18. まとめ • 書籍より今ご紹介した内容はすべて実現可能 • チームで使いやすいようにシンプルさを保つ。(極力 pluginを使わない。Vagrantfileを複雑に設定しない) • 自分以外がカスタマイズしやすいようにThorfile等 でCommandをCode化しておく(bundle exec thor dockerで統合テストが通ればOK)
  19. 19. Reference • 実践Vagrant • http://www.oreilly.co.jp/books/9784873116655/ • Chef 実践 • http://www.amazon.co.jp/Chef%E5%AE%9F %E8%B7%B5%E5%85%A5%E9%96%80-~%E3%82%B3%E3%83%BC %E3%83%89%E3%81%AB%E3%82%88%E3%82%8B %E3%82%A4%E3%83%B3%E3%83%95%E3%83%A9%E6%A7%8B %E6%88%90%E3%81%AE%E8%87%AA%E5%8B%95%E5%8C%96-WEB- PRESS-plus/dp/477416500X • Serverspec • http://www.oreilly.co.jp/books/9784873117096/

×