ユーザ用ツール

サイト用ツール


temporary:vagrant

文書の過去の版を表示しています。


Contents

vagrant

Install

  • virtualbox

https://www.virtualbox.org/wiki/Downloads VirtualBox-4.2.16-86992-Win.exe ※Ver4.3はvirtualboxが動作しないバグあり

  • vagrant

http://www.vagrantup.com/ Vagrant Archive http://downloads.vagrantup.com/ Vagrant_1.2.4.msi

  • BOXファイル

http://www.vagrantbox.es/ セットアップ済みのOSイメージ VMWareとVirtualBOXの2種類あるが、VirtualBOX使用。

基本動作

$ vagrant box add {title} {url}
$ vagrant init {title}
$ vagrant up

ヘルプ表示

C:\Users\*****>vagrant -h
Usage: vagrant [-v] [-h] command [<args>]

    -v, --version                    Print the version and exit.
    -h, --help                       Print this help.

Available subcommands:
     box
     destroy
     halt
     init
     package
     plugin
     provision
     reload
     resume
     sandbox
     ssh
     ssh-config
     status
     suspend
     up

For help on any individual command run `vagrant COMMAND -h`

バージョン表示

C:\Users\*****>vagrant -v
Vagrant version 1.2.4

BOXファイルをダウンロード

C:\Users\*****>vagrant box add centos http://developer.nrel.gov/downloads/vagrant-boxes/CentOS-6.3-x86_64-v20130101.box

標準ではC:\Users\*\.vagrant.d\boxes配下にダウンロードされる

ダウンロード後に作成される「C:\Users\*\.vagrant.d\boxes\centos\virtualbox\Vagrantfile」に アプリのインストールなど共通処理を記述しておくと、セットアップ時に自動実行される

OS初期化

C:\Users\*****>vagrant init centos

コマンド実行時のディレクトリ(標準ではC:\Users\*\)に設定ファイル「Vagrantfile」が作成される

VM作成・起動

C:\Users\*****>vagrant up
Bringing machine 'default' up with 'virtualbox' provider...
[default] Importing base box 'centos'...
[default] Matching MAC address for NAT networking...
[default] Setting the name of the VM...
[default] Clearing any previously set forwarded ports...
[default] Fixed port collision for 22 => 2222. Now on port 2200.
[default] Creating shared folders metadata...
[default] Clearing any previously set network interfaces...
[default] Preparing network interfaces based on configuration...
[default] Forwarding ports...
[default] -- 22 => 2200 (adapter 1)
[default] Booting VM...
[default] Waiting for VM to boot. This can take a few minutes.
[default] VM booted and ready for use!
[default] Mounting shared folders...
[default] -- /vagrant

状態確認

C:\Users\*****>vagrant status
Current machine states:

default                   running (virtualbox)

The VM is running. To stop this VM, you can run `vagrant halt` to
shut it down forcefully, or you can run `vagrant suspend` to simply
suspend the virtual machine. In either case, to restart it again,
simply run `vagrant up`.

ssh接続

C:\Users\*****>vagrant ssh
`ssh` executable not found in any directories in the %PATH% variable. Is an
SSH client installed? Try installing Cygwin, MinGW or Git, all of which
contain an SSH client. Or use the PuTTY SSH client with the following
authentication information shown below:

Host: 127.0.0.1
Port: 2200
Username: vagrant
Private key: C:/Users/*****/.vagrant.d/insecure_private_key

SSHクライアント(puttyなど)で接続

デフォルトのユーザ/パスワードは「vagrant/vagrant」

login as: vagrant
vagrant@127.0.0.1's password:(vagrant)
Welcome to your Vagrant-built virtual machine.
[vagrant@localhost ~]$ sudo su -
[root@localhost ~]#

vm起動

vagrant up

vm停止

vagrant halt

vm削除

vagrant destroy

プロジェクト毎に設定ファイルを分けて、任意のvm名で起動する。

プロジェクト名:samplePJ vm名:sampleVM ipアドレス:192.168.10.199

C:\Users\*****>mkdir samplePJ
C:\Users\*****>cd samplePJ
C:\Users\*****\samplePJ>vagrant init centos
A `Vagrantfile` has been placed in this directory. You are now
ready to `vagrant up` your first virtual environment! Please read
the comments in the Vagrantfile as well as documentation on
`vagrantup.com` for more information on using Vagrant.

C:\Users\*\samplePJ\Vagrantfileを編集

# -*- mode: ruby -*-
# vi: set ft=ruby :

Vagrant.configure("2") do |config|
  config.vm.box = "centos"

  config.vm.define :sampleVM do |sampleVM|
    sampleVM.vm.network :private_network, ip: "192.168.10.199"
  end
end
C:\Users\*****\samplePJ>vagrant init centos
A `Vagrantfile` has been placed in this directory. You are now
ready to `vagrant up` your first virtual environment! Please read
the comments in the Vagrantfile as well as documentation on
`vagrantup.com` for more information on using Vagrant.
C:\Users\*****\samplePJ>vagrant up sampleVM
Bringing machine 'sampleVM' up with 'virtualbox' provider...
[sampleVM] Importing base box 'centos'...
[0K[sampleVM] Matching MAC address for NAT networking...
[sampleVM] Setting the name of the VM...
[sampleVM] Clearing any previously set forwarded ports...
[sampleVM] Fixed port collision for 22 => 2222. Now on port 2200.
[sampleVM] Creating shared folders metadata...
[sampleVM] Clearing any previously set network interfaces...
[sampleVM] Preparing network interfaces based on configuration...
[sampleVM] Forwarding ports...
[sampleVM] -- 22 => 2200 (adapter 1)
[sampleVM] Booting VM...
[sampleVM] Waiting for VM to boot. This can take a few minutes.
[sampleVM] VM booted and ready for use!
[sampleVM] Configuring and enabling network interfaces...
[sampleVM] Mounting shared folders...
[sampleVM] -- /vagrant
C:\Users\*****\samplePJ\.vagrant\machines
C:\Users\*****\samplePJ\.vagrant\machines\sampleVM\virtualbox\id
0c17f8bf-e56f-4a1b-8f7c-6c94bb587415
C:\Users\*****\VirtualBox VMs\~

samplePJ_1390202702ディレクトリが作成されて、配下にvm保存

C:\Users\*****\samplePJ>vagrant status
Current machine states:

sampleVM                  running (virtualbox)

The VM is running. To stop this VM, you can run `vagrant halt` to
shut it down forcefully, or you can run `vagrant suspend` to simply
suspend the virtual machine. In either case, to restart it again,
simply run `vagrant up`.
C:\Users\*****\samplePJ>vagrant ssh sampleVM
`ssh` executable not found in any directories in the %PATH% variable. Is an
SSH client installed? Try installing Cygwin, MinGW or Git, all of which
contain an SSH client. Or use the PuTTY SSH client with the following
authentication information shown below:

Host: 127.0.0.1
Port: 2200
Username: vagrant
Private key: C:/Users/*****/.vagrant.d/insecure_private_key

putty

login as: vagrant
vagrant@192.168.10.199's password:(vagrant)
Welcome to your Vagrant-built virtual machine.
[vagrant@localhost ~]$ sudo su -
[root@localhost ~]#

プラグイン「sahara」

インストール

C:\Users\*****\samplePJ>vagrant plugin install sahara

sandboxモード開始

C:\Users\*****\samplePJ>vagrant sandbox on sampleVM
0%...10%...20%...30%...40%...50%...60%...70%...80%...90%...100%

sandboxモードの確認

C:\Users\*****>vagrant sandbox status
[sampleVM] Sandbox mode is on

状態の巻き戻し

vmでphpをインストールする

[root@localhost ~]# yum list installed | grep php
[root@localhost ~]# yum install -y php
~省略~
Complete!
[root@localhost ~]# yum list installed | grep php
php.x86_64            5.3.3-27.el6_5    @updates
php-cli.x86_64        5.3.3-27.el6_5    @updates
php-common.x86_64     5.3.3-27.el6_5    @updates

vagrantからロールバックコマンドを実行する

C:\Users\*****>vagrant sandbox rollback sample
0%...10%...20%...30%...40%...50%...60%...70%...80%...90%...100%
0%...10%...20%...30%...40%...50%...60%...70%...80%...90%...100%

vmでphpがインストールされていない(される前に戻っている)事を確認

[root@localhost ~]# yum list installed | grep php

sandboxの内容を反映

C:\Users\*****>vagrant sandbox commit sample
0%...10%...20%...30%...40%...50%...60%...70%...80%...90%...100%
0%...10%...20%...30%...40%...50%...60%...70%...80%...90%...100%

[root@localhost ~]# yum list installed | grep mysql [root@localhost ~]# yum install -y mysql ~省略~ Complete!

sandboxモードの終了

C:\Users\*****>vagrant sandbox off sample
0%...10%...20%...30%...40%...50%...60%...70%...80%...90%...100%

※commitされていない処理はcommitされる

C:\Users\*****>vagrant sandbox status
[sample] Sandbox mode is off
[root@localhost ~]# yum list installed | grep mysql
mysql.x86_64          5.1.71-1.el6      @base
mysql-libs.x86_64     5.1.71-1.el6      @base

vagrant-global-status

C:\Users\*>vagrant plugin install vagrant-global-status Installing the 'vagrant-global-status' plugin. This can take a few minutes… Installed the plugin 'vagrant-global-status (0.1.4)'!

C:\Users\*>vagrant global-status -a

文字化け。。。

C:\Users\*>vagrant status Current machine states:

sample inaccessible (virtualbox)

This environment represents multiple VMs. The VMs are all listed above with their current state. For more information about a specific VM, run `vagrant status NAME`.

C:\Users\*>“C:\Program Files\Oracle\VirtualBox\VBoxManage.exe” list vms

“<inaccessible>” {4f131712-d950-4f4c-bf08-d9b80d89abe9}

C:\Users\*>“C:\Program Files\Oracle\VirtualBox\VBoxManage.exe” unregistervm {4f131712-d950-4f4c-bf08-d9b80d89abe9}

C:\Users\*>vagrant status Current machine states:

sample not created (virtualbox)

This environment represents multiple VMs. The VMs are all listed above with their current state. For more information about a specific VM, run `vagrant status NAME`.

temporary/vagrant.1390208500.txt.gz · 最終更新: 2025/02/16 13:50 (外部編集)