Ce diaporama a bien été signalé.
Le téléchargement de votre SlideShare est en cours. ×

Vagrantと網元で開発環境を作ってみよう

Publicité
Publicité
Publicité
Publicité
Publicité
Publicité
Publicité
Publicité
Publicité
Publicité
Publicité
Publicité
Prochain SlideShare
Cpi mega mix
Cpi mega mix
Chargement dans…3
×

Consultez-les par la suite

1 sur 64 Publicité

Plus De Contenu Connexe

Diaporamas pour vous (20)

Similaire à Vagrantと網元で開発環境を作ってみよう (20)

Publicité

Plus récents (20)

Vagrantと網元で開発環境を作ってみよう

  1. 1. Vagrant+網元AMIで簡単に 開発環境を作ってみよう JAWS FESTA KANSAI 2013 森川琢磨
  2. 2. 自己紹介 森川琢磨(もりたく) PolishWebPartner代表 基本Web何でも屋、主にサーバーインフラ 甘いモノが好き、ブロッコリーが嫌い 個人で勉強会とか開催してます WordBench大阪管理人 飲めない幹事、なんちゃってプラグイン作者
  3. 3. 今回のお話にあたって Kansai PHP Users Groupの 新原さんに許可を頂き一部資料を 参考にさせてもらってる箇所があります この場をお借りして御礼申し上げます http://www.slideshare.net/shin1x1/ xampp-mamp-vagrant-php
  4. 4. そもそもVagrantって何よ?
  5. 5. ちゃいます
  6. 6. 開発現場でこんな事ないですか?
  7. 7. れかえるVirtualHost とあるエンジニアさんの場合 膨れ上がるhostsファイル
  8. 8. とあるデザイナーさんの場合 XAMPPやMAMPを インストール でも何だか動かない Port80はオレのもの
  9. 9. とある開発チームの場合 WindowsとMacで開発 あれ?動かない 何か変なコード書いた? こっちは動いてるよ 拡張追加しないとダメだよ  オレの環境では動く
  10. 10. こんなのが解決できちゃうのが
  11. 11. もうちょっとだけ詳しく 見てみましょうか
  12. 12. Vagrantとは 「べいぐらんと」と読みます Mitchell Hashimotoさんが作りました 「最高の開発フロー」を提供すること 仮想環境構築ツール 黒い画面を使って簡単に仮想環境を構築 MacOSXやLinux、Windows等で利用可能
  13. 13. Last login: Thu Sep 28 12:45:02 2013 from 192.168.1.1 [admin@shell ]$ su - パスワード: [root@shell ]# cd /etc/httpd/conf [root@shell conf]# ls -al 合計 104 drwxr--xr--x 2 root root 4096 4月 25 16:18 . drwxr--xr--x 4 root root 4096 2月 24 2010 . . --rw--r---r--- 1 root root 33771 10月 18 2010 httpd.conf [root@shell conf]# cd /var/log/httpd [root@shell httpd]# ls access_log error_log ssl_access_log ssl_error_log ssl_result_log access_log.1 error_log.1 ssl_access_log.1 ssl_error_log.1 ssl_result_log.1 access_log.2 error_log.2 ssl_access_log.2 ssl_error_log.2 ssl_result_log.2 [root@shell httpd]# apachectl -t /etc/init.d/httpd restart[root@shell httpd]# Syntax OK httpd を停止中: httpd を起動中: [root@shell httpd]# [ OK ] [ OK ] え?黒い画面使うの?
  14. 14. 別にVagrant使わなくても 良いんじゃないの?
  15. 15. Vagrantの目指すところは 「最高の開発フロー」
  16. 16. Vagrantの素晴らしい点 「vagrant」というコマンドに集約 ➡ 要するに簡単手軽に仮想環境を操作出来る 作って壊して元に戻すもオテノモノ ➡ 要するに簡単手軽に作成削除コピー出来る 仮想マシンの設定やインストールを自動化 ➡ 要するに簡単手軽に自動化出来る
  17. 17. 簡単手軽に仮想環境を構築 出来る点が素晴らしいんです でも、Vagrantって 仮想環境を構築出来るのは これまでと一緒
  18. 18. 簡単手軽 超大事
  19. 19. Don't Repeat Yourself DRY
  20. 20. では早速 Vagrantの説明に入ります
  21. 21. Vagrantの構成 Vagrant 仮想化ソフトウェア [Provider] プロビジョニングツール [Provisioning] ➡ 仮想化を便利にするツール ➡ VirtualBox、VMWare、AWS等 ➡ Chef、Puppet等
  22. 22. Vagrantのイメージ 仮想化ソフトウェア プロビジョニングツール
  23. 23. Vagrantの用語と説明 Boxファイル Vagrantfile vagrantコマンド ➡ 仮想マシン起動に必要となるイメージファイル ➡ 仮想マシンの構成を記述するファイル ➡ Vagrantの全ての操作を行なうコマンド
  24. 24. Vagrantを使う準備 仮想化ソフトウェアのインストール Vagrantのインストール プロビジョニングツールのインストール ➡ 今回はVirtualBoxを利用します ➡ 自分の利用する環境のものをダウンロード ➡ 今回は説明しません...m(_ _)m
  25. 25. VirtualBoxのインストール https://www.virtualbox.org/wiki/ Downloads VirtualBox本家サイトからダウンロード 自分の環境にあったものを ダウンロードして下さい
  26. 26. Vagrantのインストール http://downloads.vagrantup.com/ Vagrant本家サイトからダウンロード とりあえず最新のバージョンでOK
  27. 27. Vagrantの確認 $ vagrant -v Vagrant version 1.3.3 Vagrantのバージョンを表示 きちんとVagrantがインストールされてる!
  28. 28. VagrantコマンドのHELP $ vagrant -h Usage: vagrant [-v] [-h] command [<args>] -v, --version Print the version and exit. -h, --help Print this help.
  29. 29. Boxファイルの準備 $ vagrant box add NAME URL [NAME]Boxファイルの名前 [URL]Boxファイルが配置されているURL [参考サイト]http://www.vagrantbox.es/
  30. 30. Boxファイルの準備 $ vagrant box add centos6.4 URL わかりやすい名前をつける URLを貼っつける $ vagrant box add centos6.4 http:// developer.nrel.gov/downloads/ vagrant-boxes/CentOS-6.4-x86_64- v20130427.box
  31. 31. Boxファイルの準備 $ vagrant box list centos6.4 (VirtualBox) Boxファイルの確認 Boxファイルの削除 $ vagrant box remove NAME
  32. 32. Vagrantfileの生成と設定 $ vagrant init NAME Vagrantfileの生成 [NAME]Boxファイルの名前を指定 $ vagrant init centos6.4 さっき作ったBoxファイルの名前を指定
  33. 33. Vagrantfileの生成と設定 $ ls Vagrantfile Vagrantfileの存在を確認 $ less Vagrantfile lsコマンドを利用してファイルの存在を確認 lessコマンドでVagrantfileの中身を確認
  34. 34. # -*- mode: ruby -*- # vi: set ft=ruby : Vagrant.configure("2") do ¦config¦ # All Vagrant configuration is done here. The most common configuration # options are documented and commented below. For a complete reference, # please see the online documentation at vagrantup.com. # Every Vagrant virtual environment requires a box to build off of. lessを終了するには[Q]ボタン
  35. 35. Vagrant.configure("2") do ¦config¦ config.vm.box = "centos6.4" end Vagrantfileの行頭#の文を消すと... Vagrant::Config.run do ¦config¦ config.vm.box = "centos6.4" config.vm.boot_mode = :gui end ちょっとだけ修正してみよう GUIモードを有効にした状態に設定変更
  36. 36. 仮想マシンの起動と操作 $ vagrant up 仮想マシンの起動 VirtualBoxウィンドウも表示される
  37. 37. 仮想マシンの起動と操作 VirtualBoxウィンドウ内に ログインプロンプトが表示される
  38. 38. 仮想マシンの起動と操作 [login] vagrant [password] vagrant ログインするには と入力する VirtualBoxウィンドウから抜ける場合は 左側の (command)ボタンを押す
  39. 39. 仮想マシンの起動と操作 SSHで仮想マシンにログインする $ vagrant ssh 仮想マシンの状態を確認する $ vagrant status Current machine states: default running (virtualbox)
  40. 40. 仮想マシンの起動と操作 仮想マシンを停止する $ vagrant halt 停止状態で仮想マシンの状態を確認する $ vagrant status Current machine states: default poweroff (virtualbox)
  41. 41. 仮想マシンの起動と操作 仮想マシンを削除する $ vagrant destroy Are you sure you want to destroy the 'default' VM? [y/N] y 仮想マシンの状態を確認すると Current machine states: default not created (virtualbox)
  42. 42. この後の目標 sshログインしてWeb仮想マシン作ってみる 作ったらブラウザからアクセス可能か確認 Vagrantプラグインsaharaを利用してみる 複数の仮想マシンを起動してみる 仮想マシンをエクスポートしてみる エクスポートファイルからBoxファイル作成 プロビジョニングツールと連携させてみる
  43. 43. AWSの網元AMIを使って Vagrantで 高速WordPressの入った EC2インスタンスをたてる
  44. 44. パルスのファルシの ルシがパージでコクーン
  45. 45. それぞれの用語説明 Amazon Web Service (AWS) Elastic Computing Cloud (EC2) 網元AMI ➡ Amazonが提供しているクラウドサービス群 ➡ AWSの1つ、仮想サーバを利用できる ➡ め組提供の超高速WordPressが入ったAMI Amazon Machine Image (AMI) ➡ 色んな設定が詰まったイメージファイル
  46. 46. 必要なモノ AWSへの登録(クレジットカード必須) vagrant-awsプラグインのインストール AWSのセキュリティグループの設定 AWSのキーペアの作成 Boxファイルの作成 Vagrantfileに設定を記述
  47. 47. AWSの設定はコチラを参考に AWS提供のEC2ドキュメント http://aws.amazon.com/jp/ documentation/ec2/ もりたくのSlideShare http://www.slideshare.net/duffytoy1/ awswordpress
  48. 48. プラグインのインストール $ vagrant plugin install NAME プラグインをインストールする [NAME]プラグインの名前を指定 vagrant-awsというプラグイン $ vagrant plugin install vagrant-aws
  49. 49. AWS用Boxファイルの作成 VagrantにはBoxファイルが必要 dummyのBoxファイルを用意する AWSにはBoxファイルが必要ない $ vagrant box add NAME URL
  50. 50. DummyBoxファイルの作成 $ vagrant box add dummy https:// github.com/mitchellh/vagrant-aws/ raw/master/dummy.box Boxファイルの名前を[dummy] URLを以下のように指定して実行
  51. 51. AWS用Vagrantfileの生成 Vagrantfileの生成を行なうには $ vagrant init dummy [NAME]Boxファイルの名前を指定 $ vagrant init NAME 先程作ったDummyのBoxファイル名を指定
  52. 52. AWS用Vagrantfileの設定 Vagrant.configure("2") do ¦config¦ config.vm.box = "dummy" end Vagrantfileの行頭#の文を消すと... config.vm.boxがdummyになってればOK
  53. 53. Vagrant.configure("2") do ¦config¦ config.vm.box = "dummy" config.vm.provider :aws do ¦aws, override¦ aws.access_key_id = 'アクセスキー' aws.secret_access_key = 'シークレットアクセスキー' aws.keypair_name = 'キーペアネーム' aws.instance_type = 't1.micro' aws.region = 'ap-northeast-1' aws.ami = 'ami-3a7cfe3b' aws.security_groups = ['セキュリティグループ名'] Vagrantfile設定[1]
  54. 54. aws.tags = { 'Name' => 'NAME', 'Description' => 'DESCRIPTION' } override.ssh.private_key_path = 'プライベートキーの パス' override.ssh.username = "root" end Vagrantfile設定[2]
  55. 55. EC2インスタンスの起動 $ vagrant up 毎度お馴染み起動コマンド AWSの場合はちょっとだけ追記が必要 $ vagrant up --provider=aws いつもどおりsshで接続もできるよ $ vagrant ssh
  56. 56. ココらへん参考にチャレンジ 新原さんの 「Vagrant入門ガイド」 ドットインストール 「Vagrant入門」
  57. 57. It's a Wonderful Vagrant Life ご清聴 ありがとうございました

×