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