vagrant在windows下的使用
下載安裝 VirtualBox :www.virtualbox.org/
下載安裝 Vagrant :www.vagrantup.com/
下載需要使用的 box :
新增box
如下新增一個debian的box
E:\ubuntu\vagrant-box-ngixn-php-fpm-mysql-redis-nodejs>vagrant box add debian p
ackage.box
==> box: Adding box 'debian' (v0) for provider:
box: Downloading: file://E:/ubuntu/vagrant-box-ngixn-php-fpm-mysql-redis-nod
ejs/package.box
box: Progress: 100% (Rate: 11.0M/s, Estimated time remaining: --:--:--)
==> box: Successfully added box 'debian' (v0) for 'virtualbox'!
vagrantfile
在任何vagrant工程下面都有一個vagrantfile,就像makefile一眼規,用來配置vagrant的欣慰所建立的虛擬機器資訊。
vagrant使用
新增映象
vagrant box add abc boxpath[url|path] #abc未名稱
開發到開發目錄
1. vagrant init abc #初始化
D:\work\test>vagrant init debian
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.
2. vagrant up #啟動
D:\work\test>vagrant up
Bringing machine 'default' up with 'virtualbox' provider...
==> default: Importing base box 'debian'...
==> default: Matching MAC address for NAT networking...
==> default: Setting the name of the VM: test_default_1413449093680_48484
==> default: Clearing any previously set network interfaces...
==> default: Preparing network interfaces based on configuration...
default: Adapter 1: nat
==> default: Forwarding ports...
default: 22 => 2222 (adapter 1)
==> default: Booting VM...
==> default: Waiting for machine to boot. This may take a few minutes...
default: SSH address: 127.0.0.1:2222
default: SSH username: vagrant
default: SSH auth method: private key
default: Warning: Connection timeout. Retrying...
default: Warning: Connection timeout. Retrying...
==> default: Machine booted and ready!
==> default: Checking for guest additions in VM...
==> default: Mounting shared folders...
default: /vagrant => D:/work/test
3. vagrant ssh #ssh登入
D:\work\test>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 your favorite SSH client with the following
authentication information shown below:
Host: 127.0.0.1
Port: 2222
Username: vagrant
Private key: C:/Users/zhangwei_f/.vagrant.d/insecure_private_key
開啟ssh後使用xshell登入
網路配置
Vagrant的網路有三種模式
1、較為常用是埠對映,就是將虛擬機器中的埠對映到宿主機對應的埠直接使用 ,在Vagrantfile中配置:
config.vm.network :forwarded_port, guest: 80, host: 8080
guest: 80 表示虛擬機器中的80埠, host: 8080 表示對映到宿主機的8080埠。
開啟這個後,如果vagrant已經啟動了,在命令列輸入 vagrant reload 重啟機器,就可以再宿主機傷使用 localhost:8080來訪問虛擬機器的localhost:80 。
2、如果需要自己自由的訪問虛擬機器,但是別人不需要訪問虛擬機器,可以使用private_network,併為虛擬機器設定IP ,在Vagrantfile中配置:
config.vm.network :private_network, ip: "192.168.1.104"
192.168.1.104 表示虛擬機器的IP,多臺虛擬機器的話需要互相訪問的話,設定在相同網段即可
3、如果需要將虛擬機器作為當前區域網中的一臺計算機,由區域網進行DHCP,那麼在Vagrantfile中配置:
config.vm.network :public_network
目錄對映:
既然是開發環境,那麼開發工作肯定還是需要在本地完成,而不是都要進到虛擬機器中去完成,虛擬機器就好好在後臺執行服務就好了,不然就本末倒置了,所以這裡就需要使用目錄對映功能,將本地的目錄對映到虛擬機器的對應目錄。
預設情況下,當前的工作目錄,會被對映到虛擬機器的 /vagrant 目錄,當前目錄下的檔案可以直接在 /vagrant 下進行訪問,當然也可以在通過 ln 建立軟連線,如
ln -fs /vagrant/wwwroot /var/www
來進行目錄對映,當然,從自動化配置的角度,能不進系統就不需要進系統,所以在Vagrant也可以進行目錄對映的操作:
config.vm.synced_folder "wwwroot/", "/var/www"
前面的引數 “wwwroot/” 表示的是本地的路徑,這裡使用對於工作目錄的相對路徑,這裡也可以使用絕對路徑,比如: “d:/www/”
後面的引數 “/var/www” 表示虛擬機器中對應對映的目錄。
一些命令
vagrant up (啟動虛擬機器)
vagrant halt (關閉虛擬機器——對應就是關機)
vagrant suspend (暫停虛擬機器——只是暫停,虛擬機器記憶體等資訊將以狀態檔案的方式儲存在本地,可以執行恢復操作後繼續使用)
vagrant resume (恢復虛擬機器 —— 與前面的暫停相對應)
vagrant destroy (刪除虛擬機器,刪除後在當前虛擬機器所做進行的除開Vagrantfile中的配置都不會保留)
vagrant reload (重啟)
本作品採用《CC 協議》,轉載必須註明作者和本文連結