1. 程式人生 > >vagrant介紹及安裝配置

vagrant介紹及安裝配置

介紹:

Vagrant是一個基於Ruby的工具,用於建立和部署虛擬化開發環境。它 使用Oracle的開源VirtualBox虛擬化系統,使用 Chef建立自動化虛擬環境。

- 一次配置打包,統一開發環境,統一發給開發團隊
- 避免重複搭建開發環境,新人入職,快速開發
- 特定版本和環境,使用不同的box隔離。
- 安裝和解除安裝快捷

安裝:

3. - 配置Vagrant環境變數
    wins系統:
        在系統變數PATH後新增
        ;E:\Program Files\Oracle\VirtualBox;E:\HashiCorp\Vagrant\bin
        (上面的PATH根據自己的安裝軟體的路徑填寫,不要直接複製使用)

   linux系統:

5.- 使用box模版,建立屬於自己的box

#新增box映象到環境:vagrant box add 為vagrant的命令dev為box環境名稱,可自定義;centos-6.5-x86_64-base.box為下載的box模版和第三方製作的box檔案,也可以是指定的網際網路資源線上安裝
vagrant box add dev centos-6.5-x86_64-base.box 
#vagrant box add dev centos6.7_lnmp_20170601.box(如果懶的改名字,直接使用下載好的檔案就行了)
#建立並進入box工作環境,自己找個次磁碟目錄建立一個工作資料夾就可以(例如進入D盤,建立一個box_workdir資料夾作為vagrant工作目錄)
cd /e/box_workdir
#windows系統進入d:/box_workdir工作目錄下面
#初始化:生成vagrantfile配置檔案
vagrant init dev

#配置vagrantfile

config.vm.box = "vagrant_module" #修改成本地環境的box名稱(如果vagrant box add dev 寫的是什麼這裡就寫什麼,例如dev 這裡就填dev)
config.vm.network "forwarded_port", guest: 80, host: 80   #埠轉發模組
config.vm.network "forwarded_port", guest: 9000, host: 9000
config.vm.network "forwarded_port", guest: 3306 , host: 33060
config.vm.network "forwarded_port", guest: 6379, host: 63790
config.vm.network "forwarded_port", guest: 11211, host: 11212
#config.vm.network "forwarded_port", guest: 1194, host: 11940
config.ssh.password = "vagrant"  # default: Warning: Authentication failure. Retrying...(vagrant登入的時候的密碼)
#同步目錄,需要自己建立 share 本地路徑(可以隨便起名字)  vagrant_data虛擬機器目錄不需要更改
config.vm.synced_folder "./share", "/vagrant_data", :mount_options => ["dmode=777","fmode=777"]#共享本地share路徑到虛擬機器/vagrant_data路徑
config.vm.provider "virtualbox" do |v|
	 v.name = "my_vagrant"
     v.memory = "1024"
	 v.customize ["modifyvm", :id, "--natdnshostresolver1", "on"]
	 v.customize ["modifyvm", :id, "--natdnsproxy1", "on"]
end
#啟動虛擬機器
vagrant up
#重新載入
vagrant reload
#ssh連線到虛擬機器:非必需操作(這裡著重針對windows系統說明,如果使用普通的docs視窗執行會提示SSH沒有安裝
#這個時候需要使用你安裝的git工具,開啟git工具執行下面的命令就可以了)
vagrant ssh
#登入之後  執行su  會提示輸入密碼 就是配置檔案裡面的密碼config.ssh.password = "vagrant",配置的什麼就是什麼
#進入系統之後(cd /)然後(ll)就可以看到虛擬環境的所有目錄了,就像正常操作linux系統就可以了
#打包分發:非必需操作
vagrant package --output=yourboxname.box --base in_oracle_vm_name

進入虛擬機器後執行 df -h 可以看到 Vagrant 預設把宿主機 Vagrantfile 所在的目錄和虛擬機器的 /vagrant 目錄共享,可以通過 ls /vagrant/ 檢視該目錄內容,內容和宿主機對應目錄一致。

6. -ssh登入

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

ssh: 127.0.0.1

埠: 2222

使用者名稱: vagrant

密碼: vagrant

7.-Vagrant常用命令

- 幫助

    vagrant -h                              #檢視vagrant 支援的所有命令
    vagrant box -h                          #檢視vagrant 的子命令box的幫助

- 新增box

    vagrant box add centos/7                 #線上安裝centos7的box環境                
    
    vagrant box add huoxing360/devbox-LNMP   #線上安裝整合lnmp的box環境
  
    vagrant box add dev /e/box_download/centos-6.5-x86_64-base.box  #安裝本地box檔案
     
   - 檢視box
   
    vagrant box list

   - 刪除box
   
    vagrant box remove dev                   #刪除指定的box環境

- 開機,關機等操作

    vagrant up                              #開啟虛擬機器
    vagrant halt                            #關閉虛擬機器
    vagrant suspend                         #暫停虛擬機器
    vagrant resume                          #恢復暫停的虛擬機器
    vagrant reload                          #修改vagrantfile後,重啟虛擬化環境

- 快照

    vagrant snapshot list           #檢視當前儲存的快照
    vagrant snapshot save shot1     #建立一個名為shot1的快照
    vagrant snapshot restore shot1  #恢復快照
    vagrant snapshot delete shot1   #刪除快照
    vagrant snapshot push   #建立快照,快照自動命名:push_隨機數 
    vagrant snapshot pop    #恢復到最新的快照,並刪除快照

- ssh操作

    vagrant ssh
    vagrant ssh-config 輸出用於 ssh 連線的一些資訊

- 打包操作

    vagrant package --output yourbox.box --base in_oracle_vm_name.box -f

- 銷燬操作

    vagrant destory