1. 程式人生 > >Vagrant系列(一)----win10搭建Vagrant+VirtualBox環境

Vagrant系列(一)----win10搭建Vagrant+VirtualBox環境

一、Vagrant是什麼?

    vagrant是一個操作虛擬機器的工具.是一個基於Ruby的工具,用於建立和部署虛擬化開發環境。    通過命令和配置檔案來管理虛擬機器,很快就能完成一套開發環境的部署,並可以打包傳播,統一了開發環境,也解決了重複配置環境的麻煩.

二、Vargant的好處

1. Vagrant會建立共享資料夾,用來在主機和虛擬機器之間進行資源共享; 

2. Vagrant通過新增box映象進行快速部署,部署完畢後可以通過package進行打包分發,避免二次重建環境; 

3. Vagrant可以使用puppet、chref等管理工具進行自動化配置部署;

 4. Vagrant支援單機模擬多臺機器,且支援一個配置檔案Vagrantfile就可以跑分散式系統。

三、準備工作

win7下建議安裝版本

1.vagrant_1.8.6.msi  

2.VirtualBox-5.1.24-117012-Win.exe

win10下建議安裝版本

我這裡是Win10系統,剛開始不清楚,裝的是最新的VirtualBox-5.2.8-121009-Win.exe+Vagrant 2.1.1啟動就報錯,後來上網一搜說是版本不相容造成的。我這裡有兩臺電腦都是win10的有臺電腦上死活裝不上,有臺電腦卻能裝上。。跟win10系統版本也有關係?我這系統版本是:

四、進行安裝

1.安裝VirtualBox

VirtualBox安裝就不多說了,一直下一步下一步就行了。

2.安裝Vagrant

Vargrant下載win版的,然後一直下一步下一步就行了。

3.下載package.box

去vagrant官網下載一個package.box 檔案,box檔案就是一個系統的映象檔案 :http://www.vagrantbox.es/

4.把虛擬機器載入到box容器中

下載好之後,在該目錄下執行命令載入映象檔案到Vagrant中去:

vagrant box add centos7 xxxx.box
centos7是給虛擬機器起的名字 ,隨意寫。然後可以通過以下命令檢視,當前vagrant下有那些可用
C:\Users\fendo>vagrant box list
centos7 (virtualbox, 0)

5.初始化虛擬機器

在你想要建立虛擬機器的目錄下,執行以下命令進行初始化

vagrant init centos7

會生成一個Vagrantfile檔案,該檔案就是Vagrant的配置檔案。

6.啟動虛擬機器

在該目錄下輸入:

vagrant up 

啟動報錯:

E:\OS_WORK\Node1>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: Node1_default_1525964151077_64147
"rsync" could not be found on your PATH. Make sure that rsync
is properly installed on your system and available on the PATH.

修改:

C:\Users\{your_username}\.vagrant.d\boxes\centos7\0\virtualbox\Vagrantfile

原配置:

Vagrant.configure("2") do |config|
  config.vm.base_mac = "525400cae48b"
  config.vm.synced_folder ".", "/vagrant", type: "rsync"
end

改為:

Vagrant.configure("2") do |config|
  config.vm.base_mac = "525400cae48b"
  config.vm.synced_folder ".", "/vagrant", type: "virtualbox"
end

然後啟動,報如下錯誤:

E:\OS_WORK\Node1>vagrant up
Bringing machine 'default' up with 'virtualbox' provider...
==> 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:
    default: Vagrant insecure key detected. Vagrant will automatically replace
    default: this with a newly generated keypair for better security.
    default:
    default: Inserting generated public key within guest...
    default: Removing insecure key from the guest if it's present...
    default: Key inserted! Disconnecting and reconnecting using new SSH key...
==> default: Machine booted and ready!
==> default: Checking for guest additions in VM...
    default: No guest additions were detected on the base box for this VM! Guest
    default: additions are required for forwarded ports, shared folders, host only
    default: networking, and more. If SSH fails on this machine, please install
    default: the guest additions and repackage the box to continue.
    default:
    default: This is not an error message; everything may continue to work properly,
    default: in which case you may ignore this message.
==> default: Mounting shared folders...
    default: /vagrant => E:/OS_WORK/Node1
Vagrant was unable to mount VirtualBox shared folders. This is usually
because the filesystem "vboxsf" is not available. This filesystem is
made available via the VirtualBox Guest Additions and kernel module.
Please verify that these guest additions are properly installed in the
guest. This is not a bug in Vagrant and is usually caused by a faulty
Vagrant box. For context, the command attempted was:

mount -t vboxsf -o uid=1000,gid=1000 vagrant /vagrant

The error output from the command was:

mount: unknown filesystem type 'vboxsf'

中文意思就是:

vagrant 無法裝載VirtualBox的共享資料夾,因為檔案系統"vboxsf"無法使用.
這個檔案系統通過VirtualBox客戶新增核心模組獲得,請確認是否被正確安裝.
這不是vagrant的問題,而是VirtualBox引起的問題.
請嘗試執行,以下命令:
mount -t vboxsf -o uid=1001,gid=1001 work_ /work
命令輸出的錯誤資訊為:
sbin/mount.vboxsf:掛載失敗:找不到這個檔案或目錄

網上說的是,是Vagrant沒有安裝VBoxGuestAdditions,下面來手工安裝VitrualBox的這個增強功能:

●使用命令

E:\OS_WORK\Node1>vagrant halt
==> default: Attempting graceful shutdown of VM...

停止已在執行的虛擬機器

●啟動VirtualBox中的虛擬機器

直接在VirtualBox中啟動虛擬機器,如下所示進行登入:


輸入預設使用者名稱 : vagrant , 登入密碼 : vagrant 

●掛載並安裝VBoxGuestAdditions

掛載辦法如下所示:裝置->安裝增強功能


提示以下錯誤


手動安裝下,在VirtualBox安裝目錄下找到VBoxGuestAdditions.iso


載入進來,之後重啟下,使用以下命令安裝VBoxGuestAdditions

sudo mount /dev/cdrom /media/cdrom
cd /media/cdrom/
sudo ./VBoxLinuxAddtions.run

發現還是不行,然後又執行以下命令更新了下系統

sudo yum update
sudo yum install gcc
sudo yum install kernel-devel

exit #退出虛擬機器
vagrant halt # 關閉虛擬機器

後面還是不行。然後使用vagrant命令進行安裝

E:\OS_WORK\Node1>vagrant plugin install vagrant-vbguest
Installing the 'vagrant-vbguest' plugin. This can take a few minutes...
Installed the plugin 'vagrant-vbguest (0.15.1)'!

之後重啟

E:\OS_WORK\Node1>vagrant reload --provision
==> default: Clearing any previously set forwarded ports...
==> 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: Machine booted and ready!
[default] No installation found.
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
 * base: mirrors.shu.edu.cn
 * extras: mirrors.shu.edu.cn
 * updates: mirrors.shu.edu.cn
Package kernel-devel-3.10.0-862.2.3.el7.x86_64 already installed and latest version
Package gcc-4.8.5-28.el7.x86_64 already installed and latest version
Package binutils-2.27-27.base.el7.x86_64 already installed and latest version
Package 1:make-3.82-23.el7.x86_64 already installed and latest version
Package 4:perl-5.16.3-292.el7.x86_64 already installed and latest version
Package bzip2-1.0.6-13.el7.x86_64 already installed and latest version
Nothing to do
Copy iso file C:\Program Files\Oracle\VirtualBox/VBoxGuestAdditions.iso into the box /tmp/VBoxGuestAdditions.iso
Mounting Virtualbox Guest Additions ISO to: /mnt
mount: /dev/loop0 is write-protected, mounting read-only
Installing Virtualbox Guest Additions 5.1.24 - guest version is unknown
Verifying archive integrity... All good.
Uncompressing VirtualBox 5.1.24 Guest Additions for Linux...........
VirtualBox Guest Additions installer
Copying additional installer modules ...
Installing additional modules ...
vboxadd.sh: Starting the VirtualBox Guest Additions.

Could not find the X.Org or XFree86 Window System, skipping.
Redirecting to /bin/systemctl start vboxadd.service
Redirecting to /bin/systemctl start vboxadd-service.service
Unmounting Virtualbox Guest Additions ISO from: /mnt

==> default: Checking for guest additions in VM...
==> default: Mounting shared folders...
    default: /vagrant => E:/OS_WORK/Node1

然後啟動:

E:\OS_WORK\Node1>vagrant up
Bringing machine 'default' up with 'virtualbox' provider...
==> default: Machine already provisioned. Run `vagrant provision` or use the `--provision`
==> default: flag to force provisioning. Provisioners marked to run always will still run.

五、Vagrant連線

1.虛擬機器相關登入資訊

E:\OS_WORK\Node1>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: E:/OS_WORK/Node1/.vagrant/machines/default/virtualbox/private_key
這樣我們就可以像連線到一臺伺服器一樣進行操作了。

2.ssh登入

window機器不支援這樣的命令,必須使用第三方客戶端來進行連線,例如xmoba、putty、Xshell等.

ssh: 127.0.0.1  
埠: 2222  
使用者名稱: vagrant  
密碼: vagrant  

這裡使用Xshell來登入


找到剛剛上面生成的祕鑰: 

E:/OS_WORK/Node1/.vagrant/machines/default/virtualbox/private_key

然後點選確定,進行連線


注意事項:

注意關機之前都要關閉下虛擬機器。如果不關閉的話 明天早上起來就發現啟動不了

在.Vagrantfile檔案中設定:
設定使用者名稱以及密碼:
    config.ssh.username = "vagrant"
    config.ssh.password = "vagrant"
設定虛擬網路

    config.vm.network "private_network", ip: "192.168.33.10"

六、Vagrant常用命令

1. 新增box

提前下載好的box檔案,~/box/centos.box,我們給這個box命名為centos vagrant box add centos ~/box/centos.box#box檔案也可以是遠端地址 base 為預設名稱#vagrant box add base http://files.vagrantup.com/lucid64.box
2. 初始化

開啟目錄#cd ~/vagrant/work#初始化vagrant init#如果你新增的box名稱不是base,那麼需要在初始化的時候指定名稱,例如vagrant init centos

3. 啟動虛擬機器
vagrant up
4. 打包分發

vagrant package
5. 幫助命令

vagrant help
6. 檢視vagrant版本資訊
vagrant -v
Vagrant命令詳解
命令作用
vagrant box add新增box的操作
vagrant init初始化box的操作,會生成vagrant的配置檔案Vagrantfile
vagrant up啟動本地環境
vagrant ssh通過 ssh 登入本地環境所在虛擬機器
vagrant halt關閉本地環境
vagrant suspend暫停本地環境
vagrant resume恢復本地環境
vagrant reload修改了 Vagrantfile 後,使之生效(相當於先 halt,再 up)
vagrant destroy徹底移除本地環境
vagrant box list顯示當前已經新增的box列表
vagrant box remove刪除相應的box
vagrant package打包命令,可以把當前的執行的虛擬機器環境進行打包
vagrant plugin用於安裝解除安裝外掛
vagrant status獲取當前虛擬機器的狀態
vagrant global-status顯示當前使用者Vagrant的所有環境狀態

相關推薦

Vagrant系列()----win10搭建Vagrant+VirtualBox環境

一、Vagrant是什麼?    vagrant是一個操作虛擬機器的工具.是一個基於Ruby的工具,用於建立和部署虛擬化開發環境。    通過命令和配置檔案來管理虛擬機器,很快就能完成一套開發環境的部署,並可以打包傳播,統一了開發環境,也解決了重複配置環境的麻煩.二、Varg

什麼是 Vagrant種新的開發環境搭建方式)要關注新東西了。

Vagrant是一款用來構建虛擬開發環境的外掛工具,可以簡化虛擬機器配置和管理。它底層支援VirtualBox、VMware、AWS等,非常適合使用php/python/ruby/java語言開發web應用,“程式碼在我機子上執行沒有問題”這種說辭將成為歷史。 https://blog.csdn

vagrant系列vagrant的安裝與初識

一個月沒有更新過了。三月份終於把設計模式看完了,自己也寫了一些設計模式的基礎程式碼。也用到了幾個設計模式到自己的專案中。 今天當然不是來說設計模式的,先說說這段時間學到的一個新東西。vagrant,其實之前在用laravel的時候,就知道了這麼個東西,一直覺得

springboot2.0x全系列 快速搭建springboot2.0x專案

搭建springboot專案有兩種快捷方式 第一是從idea中可以之間建立,因為網路原因,所以我習慣於從官網搭建,下面介紹從官網搭建的方式: 網址:https://start.spring.io/ 開啟網址後可以看到: 在此頁面中從上往下的紅框中第一個代表springboot的

logstash():搭建syslog測試環境

首先建立logstash配置檔案(命名為syslog.conf),專門用於解析syslog日誌,如下: # 監聽514埠 input { syslog { port => "514" } } # 輸出到控制檯

Java安全——步步搭建Spring Security環境

首先,先建立springboot專案(這裡我的版本號採用的是spring boot2.0),選擇引入web和security的依賴 <dependency> <groupId>org.springframework.boot

vagrant系列(1):使用vagrant線上/離線安裝centos7

Vagrant是一款用來構建虛擬開發環境的外掛工具,可以簡化虛擬機器配置和管理。它底層支援VirtualBox、VMware、AWS等,非常適合使用php/python/ruby/java語言開發web應用,“程式碼在我機子上執行沒有問題”這種說辭將成為歷史

python之Django學習筆記()---搭建Django開發環境和一些基本命令

system cfile 生成 ont superuser 如果 session username ins 1、Django下載 官方下載地址:https://www.djangoproject.com/download/ 2、Django安裝 linux/wind

win10搭建JSP開發環境詳細步驟【圖文】

由於JSP使用Java作為指令碼語言,因此需要建立Java的執行環境。另外,JSP是基於Web的應用程式,需要特定的web伺服器程式支援 第一步:配置JAVA開發工具包JDK(Java Develop Kit) 1.JDK安裝 在下載頁面中選擇接受許可,並根據自己的系統

Deep Learning---win10 搭建caffe開發環境(GPU)

按照Microsoft官方https://github.com/Microsoft/caffe安裝教程。不過依賴工具庫版本有點不一樣,比如CUDA。建議按照官方的安裝版本來,最簡單的就是隻跑CPU安裝。 1 Download 下載選擇截圖:

Python():搭建Python開發環境(Windows)

學習Python的第一步當然是要配置一下開發環境了,這裡記錄一下本人在windows 10(64位)下配置Python開發環境的過程,供跟我一樣的新手參考一下。一、下載Python安裝包目前最新的版本為Python 3.6.2,下載地址:https://www.python.

使用maven 搭建Spring+mybatis環境

本文章適合初學者學習 spring mybatis的一個操作 指導 首先看一下專案整體架構 看看這個專案是不是你想要的如果不是,就不用跟我這篇部落格浪費時間了 從spring的配置檔案開始

權限管理系統--前端篇(搭建前端開發環境

自己 如果 host 優秀 router 文件 modules 技術分享 mage 1、技術基礎(1)vue2.0:優秀的MVVM設計模式下的JS框架;(2)vue-router:vue.js路由管理模塊;(3)vuex:vue.js狀態管理模塊;(4)ElementUI:

搭建python3.4環境之ubuntu14.04下安裝多版本Python(親測有效)

轉自:http://www.cnblogs.com/ningvsban/p/4384995.html 今天一不小心又把ubuntu系統給完壞了,因為我把python3解除安裝了,然後就。。。好了,不廢話了,接下來就說一下如何在ubuntu下管理python的多

Redis系列():Redis簡介及環境安裝

提到Redis,大家肯定都聽過,並且應該都在專案中或多或少的使用過,也許你覺得Redis用起來挺簡單的呀,但如果有人問你下面的幾個問題(比如同事或者面試官),你能回答的上來嗎? 什麼是Redis? Redis能儲存哪幾種資料結構? Redis有幾種持久化機制?它們的優缺點分別是什麼? 哪些場景需要使用Red

WIN10 vagrantvirtualbox虛擬機和搭建lnmp環境配置thinkphp虛擬主機

版本 瀏覽器 roo inf inter 偽靜態 軟件 生效 映射 版本:win10系統  virtualbox:5.1.26  vagrant :1.9.7  centos 7.0  xshell/git 首先下載好對應版本的軟件 配置vagrant和virtualb

NineChapter專案WIN10環境vagrant+VirtualBox環境搭建

1.vagrant與VirtualBox 版本選擇: virtualbox選擇4.3.12版本,vagrant選擇1.9.4版本。 2.準備工作: 在D:盤根目錄下建立NineCap

PHP Laravel系列環境搭建VirtualBox+Vagrant+Homestead+系列網址)

搭建環境從來都是阻擋一門新技能的最致命的硬傷,為了這個環境,我又是花費了半天的時間,各種問題層出不窮,下面基於網上的一些教程(我看到的都多少有些問題) 開始的時候是在實驗樓這個平臺上開始學習的,不過 這個平臺對於入門還真的是很好的,不過後期因為結合專案還有一些許可權問題就不

Virtualbox Vagrant 搭建 Linux 虛擬環境

1.安裝 Virtualbx https://www.virtualbox.org/ 2.安裝 Vagrant https://www.vagrantup.com/ 3.下載 box http://www.vagrantbox.es/ 4.新建目錄:D:\mycentos 5.win+r 輸入powe

k8s搭建之初始環境準備-vagrant部署虛擬機器(

k8s搭建之初始環境準備-虛擬機器篇(一) 我相信很多搭建k8s 叢集的小夥伴最頭疼的一件事情就是,我沒有那麼多機器啊,別說高可用,就算是一個master一個node 用VM都煩的很,安裝的哪個圖形化就要點老半天,snapshot 快照要是沒有準備,環境搞得亂七