vagrant でお手軽開発環境

44
VAGRANT でお手軽 開発環境 VAGRANT + CHEF SOLO MACHIDA 'matchy' Hideki

Upload: hideki-machida

Post on 27-Jun-2015

720 views

Category:

Engineering


1 download

DESCRIPTION

NSEG #50 発表用スライド

TRANSCRIPT

Page 1: Vagrant でお手軽開発環境

VAGRANTでお手軽開発環境

VAGRANT + CHEF SOLOMACHIDA 'matchy' Hideki

Page 2: Vagrant でお手軽開発環境

VAGRANT+CHEFVagrant と Chef で仮想マシンで開発環境をつくろう!Chef で設定を作れば本番環境の設定もできる!

Page 3: Vagrant でお手軽開発環境

よくきくハナシ

Page 4: Vagrant でお手軽開発環境

それです

Page 5: Vagrant でお手軽開発環境

実際にやってみた

Page 6: Vagrant でお手軽開発環境

WEB の運用・開発環境※ 異論はあるでしょうが今回は LAMP とします

Page 7: Vagrant でお手軽開発環境

勤務先から支給されるのはWINDOWS マシン

Page 8: Vagrant でお手軽開発環境

LINUX 使ってと言われても意欲のない開発者意欲はあるけど経験がたりてない開発者フロントエンド作成者 (俗にでざいなーという)

Page 9: Vagrant でお手軽開発環境

ぷろまねはかんがえたWindows 上に Apache+PHP+MySQLを入れてもらおう (XAMPP)

Page 10: Vagrant でお手軽開発環境

問題点運用環境は Windows じゃねーし各ミドルウェアのバージョンまちまちだしそもそもオレは Linux でいいし

Page 11: Vagrant でお手軽開発環境

仮想マシンでやればいいんじゃん

VMwarePlayer とかVirtualBox とか

Page 12: Vagrant でお手軽開発環境

チームメンバーの仮想マシンの使い方

よくわかんないのでいろいろツッコんでわけわかめ大事に大事に仮想マシンを育てているいずれにせよなにかとサポートしてあげないとー

Page 13: Vagrant でお手軽開発環境

ぷろまね危機一髪

Page 14: Vagrant でお手軽開発環境

もっと簡単に仮想マシンを1. 必要なときにサクっとできる2. 各種の設定もサクっとできる3. 用が済んだらさっさと捨てる

Page 15: Vagrant でお手軽開発環境

どうやらそれが VAGRANT+CHEF

Page 16: Vagrant でお手軽開発環境

社内ツールを勉強会で発表

Page 17: Vagrant でお手軽開発環境

NSEG でウケたら社内ツールにしよう

Page 18: Vagrant でお手軽開発環境

すみません

Page 19: Vagrant でお手軽開発環境

主な対象Linux とかそんな使ったことない開発者黒画面使えと言われると転職を考えるフロントエンド担当

Page 20: Vagrant でお手軽開発環境

動作環境DHCP が施設された LAN各メンバーはそれぞれ別のアカウントで Windows にログイン実行環境は CentOS-6

Page 21: Vagrant でお手軽開発環境

必要なもの

メモ帳じゃないテキストエディタ黒い画面に負けない勇気

Oracle VM VirtualBoxVagrantBonjour Print Services for Windows

Page 22: Vagrant でお手軽開発環境

まずはテンプレートを入手ひととおり作っといたのでダウンロードしてね

画面右下の「Download ZIP」をクリックしてどこかに解凍もちろんできる方は git clone

https://github.com/matchy2/lamp-centos6

Page 23: Vagrant でお手軽開発環境

Vagrantfile の編集 (1)あとから直せないのでタイプミスしないでね

ホスト名chef.json = { 'host' => { 'name' => 'vm-' + (ENV['USERNAME'] || ENV['USER']) },

「vm-ログインユーザー名」になるはず。めったにいじる必要はないハズ

Page 24: Vagrant でお手軽開発環境

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 でお手軽開発環境

Vagrantfile の編集 (3)MYSQLの設定

'mysql' => { 'rootpasswd' => 'rootpasswd', # MySQL root パスワード 'mydbname' => 'mydb', # 新たに作る DB 名 'myuser' => 'myuser', # 新たに作る DB グイン名 'mypasswd' => 'mypass' # 新たに作る DB パスワード }}

Page 26: Vagrant でお手軽開発環境

VAGRANT 実行黒画面で

cd Vagrantfile のあるディレクトリvagrant up

仮想マシンのひな形をダウンロード仮想マシンを VirtualBox にインポート仮想マシンの実行各種設定

Page 27: Vagrant でお手軽開発環境

WEB 公開ディレクトリVagrantfile のあるディレクトリ下の www/htdocs ディレクトリあくまで Windows 上なので、好きなエディタやIDEやオーサリングツールをつかっておk

Page 28: Vagrant でお手軽開発環境

WEB アクセスhttp://vm-ログインユーザー名.local/

※自分以外の仮想マシンも同様にアクセス可能

Page 29: Vagrant でお手軽開発環境

データベース操作http://vm-ログインユーザー名.local/phpmyadmin/

※アクセス制限はかかってないので注意

Page 30: Vagrant でお手軽開発環境

仕事終わって帰る前に仮想マシンを終わらせてからPCの電源を切ってください

vagrant halt

また仕事をはじめるときは

vagrant up

※最初の時ほど時間はかかりません

Page 31: Vagrant でお手軽開発環境

プロジェクトの終了時PhpMyAdmin でデータベースをバックアップしてから、HDD 節約

のため仮想マシンを破棄

vagrant destroy -f

Page 32: Vagrant でお手軽開発環境

プロジェクト再開時再び起動

vagrant up

※最初ほどではないけど設定し直すので時間かかります

PhpMyAdmin でデータベースをリストア

Page 33: Vagrant でお手軽開発環境

まとめWindows の操作のみで、Linux のコマンドを使う必要ナシ本番環境にとても近い状態で開発・制作できる黒画面なんてそんなこわくない

Page 34: Vagrant でお手軽開発環境

HAVE FUN WEBDEVELOPMENT!

Page 35: Vagrant でお手軽開発環境

本番環境設定篇knife-solo が必要

Page 36: Vagrant でお手軽開発環境

NODE ファイルの編集 (1)対象ファイル:chef-repos/nodes/production.json

サーバーの正式な FQDN"host": { "fqdn": "foo.example.net"}

Page 37: Vagrant でお手軽開発環境

NODE ファイルの編集 (2)Postfix と MySQL は Vagrant のときとほぼ同じ

Page 38: Vagrant でお手軽開発環境

本番環境の設定一般ユーザーで ssh ログイン可能とするssh 公開鍵をセットし、クライアントは ssh-agent を使用して、パスワードなしでログインできるようにするそのユーザーは sudo でパスワードなしでなんでもできるできるようにしとく自分側の ~/.ssh/config を設定して ssh production でサクっとログインできるようにする

Page 39: Vagrant でお手軽開発環境

CHEF 化Windows 側で実行

knife solo prepare production

対象マシンに Ruby 実行環境コミで Chef の rpm がインストールされる

Page 40: Vagrant でお手軽開発環境

実行cd chef-reposknife solo cook production

Page 41: Vagrant でお手軽開発環境

開発環境との違いAvahi はインストールしないOS のホスト名は設定しないApache/Postfix のホスト名指定は正式な FQDNiptables のファイアーウォールはより厳格にPhpMyAdmin もインストールしないDenyHosts という ssh への連続アクセスを締め出すヤツssh は root ログイン禁止・パスワードログイン禁止

Page 42: Vagrant でお手軽開発環境

ポイントメンバーの Windows 環境には Vagrant しか入れないWindows で Knife Solo とかの環境を作るのはしんどい

参考:同様に Berkshelf も使わないことにした

http://j.mp/1eG1YQv

Page 43: Vagrant でお手軽開発環境

ご意見募集ツッコミくださいもしよければこれを folk して自分用やプロジェクト用にカスタマイズしてね

Page 44: Vagrant でお手軽開発環境

THE ENDBY MACHIDA 'MATCHY' HIDEKI