My tool for web application
-
Upload
- -
Category
Technology
-
view
1.441 -
download
3
Transcript of My tool for web application
![Page 1: My tool for web application](https://reader030.fdocuments.net/reader030/viewer/2022032421/55a77e841a28abb4668b4898/html5/thumbnails/1.jpg)
My tool for Web Application
@koudaiii at 2015/1/27
![Page 2: My tool for web application](https://reader030.fdocuments.net/reader030/viewer/2022032421/55a77e841a28abb4668b4898/html5/thumbnails/2.jpg)
Profile
id: koudaiii fullname: Kodai Sakabe
![Page 3: My tool for web application](https://reader030.fdocuments.net/reader030/viewer/2022032421/55a77e841a28abb4668b4898/html5/thumbnails/3.jpg)
Attention• 個人が読んできたor読み中の書籍を紹介
• 私個人が2年ほど利用して、外せない設定
• ProvisioningToolを作成する上で個人的に気をつけている部分
• ベストプラクティスというわけではなく、こういう使い方をしていますというお話
• むしろ、ここをこうすると良い!等ありましたら教えて下さい><
![Page 4: My tool for web application](https://reader030.fdocuments.net/reader030/viewer/2022032421/55a77e841a28abb4668b4898/html5/thumbnails/4.jpg)
Agenda1. Vagrant
2. Vagrant plugins
3. Chef-solo
4. Continuous Integration
5. Serverspec
6. Vagrantの利用手順
7. Tips:ThorfileでCommandをCode化
8. 気をつけている点
9. Reference
![Page 5: My tool for web application](https://reader030.fdocuments.net/reader030/viewer/2022032421/55a77e841a28abb4668b4898/html5/thumbnails/5.jpg)
Vagrantfileの詳細な設定、Vagrantの裏側、pluginの作り方まで
![Page 6: My tool for web application](https://reader030.fdocuments.net/reader030/viewer/2022032421/55a77e841a28abb4668b4898/html5/thumbnails/6.jpg)
Vagrant• Virtualboxのホストオンリーアダプター設定
• Virtualboxの「環境設定」->「ネットワーク」->「ホストオンリーネットワーク」->「追加」
• PrivateIPで開発サーバーにアクセスする感覚でできる
• Port Forwardで繋がるが、より本番に近い形(80,22等)
• vagrant ssh-config >> ~/.ssh/configでsshを楽に
• vagrant sshやssh vagrant@XXXXが手間
• configのHostをwebappにすると「ssh webapp」でアクセス可能
![Page 7: My tool for web application](https://reader030.fdocuments.net/reader030/viewer/2022032421/55a77e841a28abb4668b4898/html5/thumbnails/7.jpg)
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は入っている
![Page 8: My tool for web application](https://reader030.fdocuments.net/reader030/viewer/2022032421/55a77e841a28abb4668b4898/html5/thumbnails/8.jpg)
WebApplicationの構築まで含めた実践入門
![Page 9: My tool for web application](https://reader030.fdocuments.net/reader030/viewer/2022032421/55a77e841a28abb4668b4898/html5/thumbnails/9.jpg)
Chef-solo• CookbookとRepositoryは1:1
• ApplicationのCookbookを作りたい時は、上で作ったCookbookを元に独自のParameterを渡す
• CFEngine/pupet/Ansible/Itamaeは?⇒chef-soloは比較的新しく書籍として一番まとめられているので初めてProvisioningToolを利用するにはオススメ。
![Page 10: My tool for web application](https://reader030.fdocuments.net/reader030/viewer/2022032421/55a77e841a28abb4668b4898/html5/thumbnails/10.jpg)
テスト駆動インフラでwerckerを使ったCI
![Page 11: My tool for web application](https://reader030.fdocuments.net/reader030/viewer/2022032421/55a77e841a28abb4668b4898/html5/thumbnails/11.jpg)
![Page 12: My tool for web application](https://reader030.fdocuments.net/reader030/viewer/2022032421/55a77e841a28abb4668b4898/html5/thumbnails/12.jpg)
3.Test
2.Provisioning
Ops
4.Notification
1.Webhook
![Page 13: My tool for web application](https://reader030.fdocuments.net/reader030/viewer/2022032421/55a77e841a28abb4668b4898/html5/thumbnails/13.jpg)
Serverspecの使い方はもちろん、背景・設計思想
![Page 14: My tool for web application](https://reader030.fdocuments.net/reader030/viewer/2022032421/55a77e841a28abb4668b4898/html5/thumbnails/14.jpg)
例: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
![Page 15: My tool for web application](https://reader030.fdocuments.net/reader030/viewer/2022032421/55a77e841a28abb4668b4898/html5/thumbnails/15.jpg)
wercker Continuous Integration テストが終わったらSlackへ通知する
![Page 16: My tool for web application](https://reader030.fdocuments.net/reader030/viewer/2022032421/55a77e841a28abb4668b4898/html5/thumbnails/16.jpg)
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でもテストが通ることを確認
![Page 17: My tool for web application](https://reader030.fdocuments.net/reader030/viewer/2022032421/55a77e841a28abb4668b4898/html5/thumbnails/17.jpg)
Tips:コマンドをCode化 Thorfileにコマンドを記述$ bundle exec thor -Tdocker------thor docker:berkshelf # berks vendorthor docker:build # build docker image provisioned by chefthor docker:default # build image and run specthor docker:roles # build Directory in rolesthor docker:spec # run spec
![Page 18: My tool for web application](https://reader030.fdocuments.net/reader030/viewer/2022032421/55a77e841a28abb4668b4898/html5/thumbnails/18.jpg)
気をつけている点• Vagrantfileにいろいろ設定せず出来る限りOSインストール済みの初期サーバーと同じアクセス方法
• チームで共有できるように極力シンプル
• 自分以外がテストしやすいように(Pullrequestを送りやすいように)ThorfileでコマンドをCode化する
![Page 19: My tool for web application](https://reader030.fdocuments.net/reader030/viewer/2022032421/55a77e841a28abb4668b4898/html5/thumbnails/19.jpg)
まとめ• 書籍より今ご紹介した内容はすべて実現可能
• チームで使いやすいようにシンプルさを保つ。(極力pluginを使わない。Vagrantfileを複雑に設定しない)
• 自分以外がカスタマイズしやすいようにThorfile等でCommandをCode化しておく(bundle exec thor
dockerで統合テストが通ればOK)
![Page 20: My tool for web application](https://reader030.fdocuments.net/reader030/viewer/2022032421/55a77e841a28abb4668b4898/html5/thumbnails/20.jpg)
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/