Vagrant でお手軽開発環境

1,038 views

Published on

NSEG #50 発表用スライド

Published in: Engineering

Vagrant でお手軽開発環境

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

×