在Windows上使用VirtualBox+Vagrant安裝CentOS 7環境,需要安裝VirtualBox和Vagrant工具,以及下載一個CentOS 7的box鏡像檔案。
一、安裝好以上工具,下載好box檔案後,使用vagrant命令添加鏡像到Vagrant:
vagrant box add 名稱 路徑
這裡成功添加鏡像到Vagrant,如下:
二、初始化開發環境
由於是在Windows下,在D盤建立一個檔案夾dev,然後進行如下操作:
D:\dev>vagrant up
Bringing machine 'default' up with 'virtualbox' provider...
==> default: Importing base box 'centos7'...
==> default: Matching MAC address for NAT networking...
==> default: Setting the name of the VM: dev_default_1458805394726_355
==> default: Clearing any previously set network interfaces...
==> default: Preparing network interfaces based on configuration...
default: Adapter 1: nat
==> default: Forwarding ports...
default: 22 (guest) => 2222 (host) (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: Authentication failure. Retrying...
default: Warning: Authentication failure. Retrying...
default: Warning: Authentication failure. Retrying...
default: Warning: Authentication failure. Retrying...
default: Warning: Authentication failure. Retrying...
default: Warning: Authentication failure. Retrying...
default: Warning: Authentication failure. Retrying...
default: Warning: Authentication failure. Retrying...
default: Warning: Authentication failure. Retrying...
主要是下面幾個命令:
$ cd ~/dev # 切換目錄
$ vagrant init hahaha # 初始化
$ vagrant up # 啟動環境
但是這裡有問題,一直提示:default: Warning: Authentication failure. Retrying…
這是Windows下沒有配置SSH key的問題,不要著急,使用XShell串連虛擬機器,ssh地址127.0.0.1:2222,密碼是vagrant.
1.vagrant使用者必須存在,所以/home/vagrant目錄也必須要存在的
2.匯入vagrant公開金鑰
cd /home/vagrant
sudo -u vagrant wget https://raw.githubusercontent.com/mitchellh/vagrant/master/keys/vagrant.pub -O .ssh/authorized_keys
sudo -u vagrant chmod 700 .ssh
sudo -u vagrant chmod 600 .ssh/authorized_keys
sudo -u vagrant chown -R vagrant:vagrant .ssh
這步搞定,如圖(點擊看大圖):
vagrant_authentication再次回到windows命令列,同樣是dev目錄,執行vagrant up啟動虛擬機器:
D:\dev>vagrant up
Bringing machine 'default' up with 'virtualbox' provider...
==> default: VirtualBox VM is already running.
虛擬機器成功啟動。