vagrant でお手軽開発環境
DESCRIPTION
NSEG #50 発表用スライドTRANSCRIPT
![Page 2: Vagrant でお手軽開発環境](https://reader034.vdocuments.net/reader034/viewer/2022052311/558e67f91a28ab92218b477c/html5/thumbnails/2.jpg)
VAGRANT+CHEFVagrant と Chef で仮想マシンで開発環境をつくろう!Chef で設定を作れば本番環境の設定もできる!
![Page 3: Vagrant でお手軽開発環境](https://reader034.vdocuments.net/reader034/viewer/2022052311/558e67f91a28ab92218b477c/html5/thumbnails/3.jpg)
よくきくハナシ
![Page 4: Vagrant でお手軽開発環境](https://reader034.vdocuments.net/reader034/viewer/2022052311/558e67f91a28ab92218b477c/html5/thumbnails/4.jpg)
それです
![Page 5: Vagrant でお手軽開発環境](https://reader034.vdocuments.net/reader034/viewer/2022052311/558e67f91a28ab92218b477c/html5/thumbnails/5.jpg)
実際にやってみた
![Page 6: Vagrant でお手軽開発環境](https://reader034.vdocuments.net/reader034/viewer/2022052311/558e67f91a28ab92218b477c/html5/thumbnails/6.jpg)
WEB の運用・開発環境※ 異論はあるでしょうが今回は LAMP とします
![Page 7: Vagrant でお手軽開発環境](https://reader034.vdocuments.net/reader034/viewer/2022052311/558e67f91a28ab92218b477c/html5/thumbnails/7.jpg)
勤務先から支給されるのはWINDOWS マシン
![Page 8: Vagrant でお手軽開発環境](https://reader034.vdocuments.net/reader034/viewer/2022052311/558e67f91a28ab92218b477c/html5/thumbnails/8.jpg)
LINUX 使ってと言われても意欲のない開発者意欲はあるけど経験がたりてない開発者フロントエンド作成者 (俗にでざいなーという)
![Page 9: Vagrant でお手軽開発環境](https://reader034.vdocuments.net/reader034/viewer/2022052311/558e67f91a28ab92218b477c/html5/thumbnails/9.jpg)
ぷろまねはかんがえたWindows 上に Apache+PHP+MySQLを入れてもらおう (XAMPP)
![Page 10: Vagrant でお手軽開発環境](https://reader034.vdocuments.net/reader034/viewer/2022052311/558e67f91a28ab92218b477c/html5/thumbnails/10.jpg)
問題点運用環境は Windows じゃねーし各ミドルウェアのバージョンまちまちだしそもそもオレは Linux でいいし
![Page 11: Vagrant でお手軽開発環境](https://reader034.vdocuments.net/reader034/viewer/2022052311/558e67f91a28ab92218b477c/html5/thumbnails/11.jpg)
仮想マシンでやればいいんじゃん
VMwarePlayer とかVirtualBox とか
![Page 12: Vagrant でお手軽開発環境](https://reader034.vdocuments.net/reader034/viewer/2022052311/558e67f91a28ab92218b477c/html5/thumbnails/12.jpg)
チームメンバーの仮想マシンの使い方
よくわかんないのでいろいろツッコんでわけわかめ大事に大事に仮想マシンを育てているいずれにせよなにかとサポートしてあげないとー
![Page 13: Vagrant でお手軽開発環境](https://reader034.vdocuments.net/reader034/viewer/2022052311/558e67f91a28ab92218b477c/html5/thumbnails/13.jpg)
ぷろまね危機一髪
![Page 14: Vagrant でお手軽開発環境](https://reader034.vdocuments.net/reader034/viewer/2022052311/558e67f91a28ab92218b477c/html5/thumbnails/14.jpg)
もっと簡単に仮想マシンを1. 必要なときにサクっとできる2. 各種の設定もサクっとできる3. 用が済んだらさっさと捨てる
![Page 15: Vagrant でお手軽開発環境](https://reader034.vdocuments.net/reader034/viewer/2022052311/558e67f91a28ab92218b477c/html5/thumbnails/15.jpg)
どうやらそれが VAGRANT+CHEF
![Page 16: Vagrant でお手軽開発環境](https://reader034.vdocuments.net/reader034/viewer/2022052311/558e67f91a28ab92218b477c/html5/thumbnails/16.jpg)
社内ツールを勉強会で発表
![Page 17: Vagrant でお手軽開発環境](https://reader034.vdocuments.net/reader034/viewer/2022052311/558e67f91a28ab92218b477c/html5/thumbnails/17.jpg)
NSEG でウケたら社内ツールにしよう
![Page 18: Vagrant でお手軽開発環境](https://reader034.vdocuments.net/reader034/viewer/2022052311/558e67f91a28ab92218b477c/html5/thumbnails/18.jpg)
すみません
![Page 19: Vagrant でお手軽開発環境](https://reader034.vdocuments.net/reader034/viewer/2022052311/558e67f91a28ab92218b477c/html5/thumbnails/19.jpg)
主な対象Linux とかそんな使ったことない開発者黒画面使えと言われると転職を考えるフロントエンド担当
![Page 20: Vagrant でお手軽開発環境](https://reader034.vdocuments.net/reader034/viewer/2022052311/558e67f91a28ab92218b477c/html5/thumbnails/20.jpg)
動作環境DHCP が施設された LAN各メンバーはそれぞれ別のアカウントで Windows にログイン実行環境は CentOS-6
![Page 21: Vagrant でお手軽開発環境](https://reader034.vdocuments.net/reader034/viewer/2022052311/558e67f91a28ab92218b477c/html5/thumbnails/21.jpg)
必要なもの
メモ帳じゃないテキストエディタ黒い画面に負けない勇気
Oracle VM VirtualBoxVagrantBonjour Print Services for Windows
![Page 22: Vagrant でお手軽開発環境](https://reader034.vdocuments.net/reader034/viewer/2022052311/558e67f91a28ab92218b477c/html5/thumbnails/22.jpg)
まずはテンプレートを入手ひととおり作っといたのでダウンロードしてね
画面右下の「Download ZIP」をクリックしてどこかに解凍もちろんできる方は git clone
https://github.com/matchy2/lamp-centos6
![Page 23: Vagrant でお手軽開発環境](https://reader034.vdocuments.net/reader034/viewer/2022052311/558e67f91a28ab92218b477c/html5/thumbnails/23.jpg)
Vagrantfile の編集 (1)あとから直せないのでタイプミスしないでね
ホスト名chef.json = { 'host' => { 'name' => 'vm-' + (ENV['USERNAME'] || ENV['USER']) },
「vm-ログインユーザー名」になるはず。めったにいじる必要はないハズ
![Page 24: Vagrant でお手軽開発環境](https://reader034.vdocuments.net/reader034/viewer/2022052311/558e67f91a28ab92218b477c/html5/thumbnails/24.jpg)
Vagrantfile の編集 (2)メール送信関係の設定
'postfix' => { 'relay' => { 'smtphost' => 'smtp.gmail.com', # SMTP ホスト名 'smtpport' => '587', # SMTP ポート番号 'usetls' => 'yes', # SSL/TLSを使うならyes 'smtpuser' => '[email protected]', # SMTP ログイン名 'smtppasswd' => 'your password' # SMTP パスワード } },
![Page 25: Vagrant でお手軽開発環境](https://reader034.vdocuments.net/reader034/viewer/2022052311/558e67f91a28ab92218b477c/html5/thumbnails/25.jpg)
Vagrantfile の編集 (3)MYSQLの設定
'mysql' => { 'rootpasswd' => 'rootpasswd', # MySQL root パスワード 'mydbname' => 'mydb', # 新たに作る DB 名 'myuser' => 'myuser', # 新たに作る DB グイン名 'mypasswd' => 'mypass' # 新たに作る DB パスワード }}
![Page 26: Vagrant でお手軽開発環境](https://reader034.vdocuments.net/reader034/viewer/2022052311/558e67f91a28ab92218b477c/html5/thumbnails/26.jpg)
VAGRANT 実行黒画面で
cd Vagrantfile のあるディレクトリvagrant up
仮想マシンのひな形をダウンロード仮想マシンを VirtualBox にインポート仮想マシンの実行各種設定
![Page 27: Vagrant でお手軽開発環境](https://reader034.vdocuments.net/reader034/viewer/2022052311/558e67f91a28ab92218b477c/html5/thumbnails/27.jpg)
WEB 公開ディレクトリVagrantfile のあるディレクトリ下の www/htdocs ディレクトリあくまで Windows 上なので、好きなエディタやIDEやオーサリングツールをつかっておk
![Page 28: Vagrant でお手軽開発環境](https://reader034.vdocuments.net/reader034/viewer/2022052311/558e67f91a28ab92218b477c/html5/thumbnails/28.jpg)
WEB アクセスhttp://vm-ログインユーザー名.local/
※自分以外の仮想マシンも同様にアクセス可能
![Page 29: Vagrant でお手軽開発環境](https://reader034.vdocuments.net/reader034/viewer/2022052311/558e67f91a28ab92218b477c/html5/thumbnails/29.jpg)
データベース操作http://vm-ログインユーザー名.local/phpmyadmin/
※アクセス制限はかかってないので注意
![Page 30: Vagrant でお手軽開発環境](https://reader034.vdocuments.net/reader034/viewer/2022052311/558e67f91a28ab92218b477c/html5/thumbnails/30.jpg)
仕事終わって帰る前に仮想マシンを終わらせてからPCの電源を切ってください
vagrant halt
また仕事をはじめるときは
vagrant up
※最初の時ほど時間はかかりません
![Page 31: Vagrant でお手軽開発環境](https://reader034.vdocuments.net/reader034/viewer/2022052311/558e67f91a28ab92218b477c/html5/thumbnails/31.jpg)
プロジェクトの終了時PhpMyAdmin でデータベースをバックアップしてから、HDD 節約
のため仮想マシンを破棄
vagrant destroy -f
![Page 32: Vagrant でお手軽開発環境](https://reader034.vdocuments.net/reader034/viewer/2022052311/558e67f91a28ab92218b477c/html5/thumbnails/32.jpg)
プロジェクト再開時再び起動
vagrant up
※最初ほどではないけど設定し直すので時間かかります
PhpMyAdmin でデータベースをリストア
![Page 33: Vagrant でお手軽開発環境](https://reader034.vdocuments.net/reader034/viewer/2022052311/558e67f91a28ab92218b477c/html5/thumbnails/33.jpg)
まとめWindows の操作のみで、Linux のコマンドを使う必要ナシ本番環境にとても近い状態で開発・制作できる黒画面なんてそんなこわくない
![Page 34: Vagrant でお手軽開発環境](https://reader034.vdocuments.net/reader034/viewer/2022052311/558e67f91a28ab92218b477c/html5/thumbnails/34.jpg)
HAVE FUN WEBDEVELOPMENT!
![Page 35: Vagrant でお手軽開発環境](https://reader034.vdocuments.net/reader034/viewer/2022052311/558e67f91a28ab92218b477c/html5/thumbnails/35.jpg)
本番環境設定篇knife-solo が必要
![Page 36: Vagrant でお手軽開発環境](https://reader034.vdocuments.net/reader034/viewer/2022052311/558e67f91a28ab92218b477c/html5/thumbnails/36.jpg)
NODE ファイルの編集 (1)対象ファイル:chef-repos/nodes/production.json
サーバーの正式な FQDN"host": { "fqdn": "foo.example.net"}
![Page 37: Vagrant でお手軽開発環境](https://reader034.vdocuments.net/reader034/viewer/2022052311/558e67f91a28ab92218b477c/html5/thumbnails/37.jpg)
NODE ファイルの編集 (2)Postfix と MySQL は Vagrant のときとほぼ同じ
![Page 38: Vagrant でお手軽開発環境](https://reader034.vdocuments.net/reader034/viewer/2022052311/558e67f91a28ab92218b477c/html5/thumbnails/38.jpg)
本番環境の設定一般ユーザーで ssh ログイン可能とするssh 公開鍵をセットし、クライアントは ssh-agent を使用して、パスワードなしでログインできるようにするそのユーザーは sudo でパスワードなしでなんでもできるできるようにしとく自分側の ~/.ssh/config を設定して ssh production でサクっとログインできるようにする
![Page 39: Vagrant でお手軽開発環境](https://reader034.vdocuments.net/reader034/viewer/2022052311/558e67f91a28ab92218b477c/html5/thumbnails/39.jpg)
CHEF 化Windows 側で実行
knife solo prepare production
対象マシンに Ruby 実行環境コミで Chef の rpm がインストールされる
![Page 40: Vagrant でお手軽開発環境](https://reader034.vdocuments.net/reader034/viewer/2022052311/558e67f91a28ab92218b477c/html5/thumbnails/40.jpg)
実行cd chef-reposknife solo cook production
![Page 41: Vagrant でお手軽開発環境](https://reader034.vdocuments.net/reader034/viewer/2022052311/558e67f91a28ab92218b477c/html5/thumbnails/41.jpg)
開発環境との違いAvahi はインストールしないOS のホスト名は設定しないApache/Postfix のホスト名指定は正式な FQDNiptables のファイアーウォールはより厳格にPhpMyAdmin もインストールしないDenyHosts という ssh への連続アクセスを締め出すヤツssh は root ログイン禁止・パスワードログイン禁止
![Page 42: Vagrant でお手軽開発環境](https://reader034.vdocuments.net/reader034/viewer/2022052311/558e67f91a28ab92218b477c/html5/thumbnails/42.jpg)
ポイントメンバーの Windows 環境には Vagrant しか入れないWindows で Knife Solo とかの環境を作るのはしんどい
参考:同様に Berkshelf も使わないことにした
http://j.mp/1eG1YQv
![Page 43: Vagrant でお手軽開発環境](https://reader034.vdocuments.net/reader034/viewer/2022052311/558e67f91a28ab92218b477c/html5/thumbnails/43.jpg)
ご意見募集ツッコミくださいもしよければこれを folk して自分用やプロジェクト用にカスタマイズしてね
![Page 44: Vagrant でお手軽開発環境](https://reader034.vdocuments.net/reader034/viewer/2022052311/558e67f91a28ab92218b477c/html5/thumbnails/44.jpg)
THE ENDBY MACHIDA 'MATCHY' HIDEKI