1. 程式人生 > >vagrant初識(一)

vagrant初識(一)

  vagrant是部署虛擬開發環境的工具,他可以簡化虛擬機器配置,為我們搭建和配置輕量級可重用,可移植的開發環境。他能幫助開發人員迅速的構建一個開發環境,幫助測試人員構建測試環境。

  vagrant支援VirtualBox,VMware,AWS等虛擬機器。

  vagrant關鍵字

  host——宿主機,安裝虛擬機器軟體和vagrant的系統

  guest/vm——虛擬機器

  

  安裝Vagrant

  ubuntu下載安裝vagrant,官方下載地址:https://www.vagrantup.com/downloads.html

  安裝虛擬機器管理軟體:virtualbox ; virtualbox官方下載地址:

https://www.virtualbox.org/

  vagrant的基本原理:

  1.首先,讀取配置檔案,獲取需要的環境,網路配置。基礎軟體等資訊。

  2.呼叫虛擬化軟體API(VMWare Fusion, Oracle VirtualBox, AWS,OpenStack等),根據使用者提供的配置檔案為使用者構建基礎環境。

  3.呼叫使用者的配置指令碼(shell, puppet, chef) 安裝好相應的服務和軟體包;

  Vagrant概念

  • Provider

  Provider指的是為Vagrant提供虛擬化支援的具體軟體,比如vmware或virtual box。

  • Box

   Box代表虛擬機器映象。Vagrant根據Porvider的不同提供了很多的基礎映象(通過url從s3上獲取),使用者可以根據自己的需求使用vagrant package製作屬於自己的box。

  • Project
    一個目錄和目錄中的Vagrantfile就組成了vagrant的一個專案,專案下可以有子專案,子專案中的Vagrantfile配置將繼承和重寫父專案的配置。專案的虛擬機器例項並不會儲存在這個目錄(儲存在~/.vagrant.d/box下),所以可以通過git等版本管理工具來管理專案。
  • Vagrantfile
    Vagrant的配置檔案,使用Ruby的語法描述。裡面定義了專案所使用的box,網路,共享目錄,provision指令碼等。當vagrant up命令執行時,將讀取當前目錄的Vagrantfile。
  • Provisioning
    Provisioning指的是虛擬機器例項啟動後,所需要完成的基礎配置工作,比如說安裝LAMP服務等。Vagrant支援使用shell,puppet,chef來完成provisioning工作。
  • Plugin

  Vagrant提供了外掛機制,可以很好的擴充套件對宿主機OS, GuestOS,Provider,Provisioner的支援,比如vagrant的aws和openstack支援都是通過plugin來實現的。

  vagrant配置

  下載box

  box的第三方下載地址: http://www.vagrantbox.es/ 

  box的安裝

  建立vagrant開發環境

  $ mkdir ~/vagrant

  $ cd ~/vagrant

  agrant提供的線上安裝,非常便利,但是無奈我國有非常NB的gfw,為了速度,就先FQ出去把box下載到本地,然後再進行安裝。  

$ vagrant box add {title} {url}
$ vagrant init {title}
$ vagrant up

  vagrant box add 是新增box的命令 
  其中{title}可以自行設定,我這裡使用的是 centos7 ,{url}是下載到本地box路徑。我的路徑是:/home/slang/downloads/centos-7.0-x86_64.box    

  

  安裝box

$ vagrant box add CentOs7 /home/slang/downloads/centos-7.0-x86_64.box

  box的映象預設被存放到~/.vagrant.d/boxes/下,

# 如果是才add 的box,就必須執行本步驟,初始化一次後,以後啟動系統,就不需要執行本步驟。此步驟主要是建立Vagrantfile配置檔案。
$ vagrant init CentOs7
# 啟動系統
$ vagrant up

 

   ssh遠端連線到虛擬機器

   

$ vagrant ssh

  如果是官方的box,那麼使用者名稱和密碼預設都是vagrant

  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的所有環境狀態