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

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

2,915

Published on

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

Published in: Technology

Transcript of "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 ご清聴 ありがとうございました
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×