Vagrant 在 Windows 下的使用

程式設計師的貓發表於2020-06-28

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 協議》,轉載必須註明作者和本文連結

你還差得遠吶!

相關文章