• Like
My tool for web application
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

My tool for web application

  • 60 views
Published

at 2015/01/27 …

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

Published in Technology
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
    Be the first to like this
No Downloads

Views

Total Views
60
On SlideShare
0
From Embeds
0
Number of Embeds
0

Actions

Shares
Downloads
0
Comments
0
Likes
0

Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

  • 1. My tool for Web Application @koudaiii at 2015/1/27
  • 2. Profile id: koudaiii fullname: Kodai Sakabe
  • 3. Attention • 個人が読んできたor読み中の書籍を紹介 • 私個人が2年ほど利用して、外せない設定 • ProvisioningToolを作成する上で個人的に気をつけている部分 • ベストプラクティスというわけではなく、こういう使い方を していますというお話 • むしろ、ここをこうすると良い!等ありましたら教えて下さ い><
  • 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. Vagrantfileの詳細な設定、Vagrantの裏側、pluginの作り方まで
  • 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. 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. WebApplicationの構築まで含めた実践入門
  • 9. Chef-solo • CookbookとRepositoryは1:1 • ApplicationのCookbookを作りたい時は、上で作っ たCookbookを元に独自のParameterを渡す • CFEngine/pupet/Ansible/Itamaeは? chef-soloは 比較的新しく書籍として一番まとめられているので 初めてProvisioningToolを利用するにはオススメ。
  • 10. テスト駆動インフラでwerckerを使ったCI
  • 11. 3.Test 2.Provisioning Ops 4.Notification 1.Webhook
  • 12. Serverspecの使い方はもちろん、背景・設計思想
  • 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. wercker Continuous Integration テストが終わったらSlackへ通知する
  • 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. 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. 気をつけている点 • Vagrantfileにいろいろ設定せず出来る限りOSイン ストール済みの初期サーバーと同じアクセス方法 • チームで共有できるように極力シンプル • 自分以外がテストしやすいように(Pullrequestを送 りやすいように)ThorfileでコマンドをCode化する
  • 18. まとめ • 書籍より今ご紹介した内容はすべて実現可能 • チームで使いやすいようにシンプルさを保つ。(極力 pluginを使わない。Vagrantfileを複雑に設定しない) • 自分以外がカスタマイズしやすいようにThorfile等 でCommandをCode化しておく(bundle exec thor dockerで統合テストが通ればOK)
  • 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/