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

  • 2,446 views
Uploaded on

JAWS FESTA KANSAI 2013でお話した「Vagrantと網元で開発環境を作ってみよう」のスライド資料

JAWS FESTA KANSAI 2013でお話した「Vagrantと網元で開発環境を作ってみよう」のスライド資料

More in: Technology
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
No Downloads

Views

Total Views
2,446
On Slideshare
0
From Embeds
0
Number of Embeds
1

Actions

Shares
Downloads
22
Comments
0
Likes
23

Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

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