vagrant在windows下的使用

下載安裝 VirtualBox :https://www.virtualbox.org/php

下載安裝 Vagrant :http://www.vagrantup.com/node

下載須要使用的 box :mysql

添加box

以下添加一個debian的boxredis

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的欣慰所建立的虛擬機信息。sql

vagrant使用

添加鏡像
vagrant box add abc   boxpath[url|path]  #abc未名稱
開發到開發目錄
  1. vagrant init abc #初始化shell

    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 #啓動ubuntu

    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登陸ssh

網絡配置

Vagrant的網絡有三種模式ide

一、較爲經常使用是端口映射,就是將虛擬機中的端口映射到宿主機對應的端口直接使用 ,在Vagrantfile中配置:

config.vm.network :forwarded_port, guest: 80, host: 8080
guest: 80 表示虛擬機中的80端口, host: 8080 表示映射到宿主機的8080端口。
    
    開啓這個後,若是vagrant已經啓動了,在命令行輸入 vagrant reload 重啓機器,就能夠再宿主機傷使用 localhost:8080來訪問虛擬機的localhost:80 。

二、若是須要本身自由的訪問虛擬機,可是別人不須要訪問虛擬機,可使用private_network,併爲虛擬機設置IP ,在Vagrantfile中配置:

config.vm.network :private_network, ip: "192.168.1.104"
192.168.1.104 表示虛擬機的IP,多臺虛擬機的話須要互相訪問的話,設置在相同網段便可

三、若是須要將虛擬機做爲當前局域網中的一臺計算機,由局域網進行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  (重啓)

  ==============補充=====================

在本地使用vagrant up命令是不能正常啓動,(未知緣由)

可是使用vagrant reload命令後,正常啓動,項目正常訪問

相關文章
相關標籤/搜索