vagrant 系列 部落格

2022-05-20 20:42:05 字數 4252 閱讀 1805

1. 新增box

vagrant box add [自定義box名字] [映象檔案]

例子: 

vagrant box add ubuntu/14.04 trusty-server-cloudimg-amd64-vagrant-disk1.box

建立通過源建立ubuntu映象

檢視box

vagrant box list 

2. 初始化, 啟動 連線虛擬機器

v初始化

vagrant init base [box]

例子: 通過ubuntu/16.04初始化乙個虛擬機器

vagrant init ubuntu/16.04

建立虛擬機器

vagrant up

3. 啟動, 停止, 重啟, 銷毀

檢視虛擬機器執行的狀態: 

vagrant status

停止虛擬機器:

vagrant halt

暫停虛擬機器

vagrant suspend

恢復虛擬機器

vagrant resume

重啟虛擬機器

vagrant reload

銷毀虛擬機器

vagrant destroy

4. 共享目錄

預設的共享目錄: 主機當前目錄和虛擬機器的/vagrant預設共享

/users/narcisohuang/workspace/vagrant-workspace/centos/ => /vagrant

5. 自定義共享資料夾(暫時跳過)

看15通過外掛程式實現的nfs格式的共享資料夾.

網路配置:

私有網路, 虛擬機器不能和主機的其他的應用進行網路的通訊

公有網路, 虛擬機器擁有乙個公網ip, 可以和主機的其他的應用通訊

7. 私有網路

通過以下的命令, 設定虛擬的網路為私有網路, 主機上的其他的應用不能訪問到虛擬機器

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

8. 公有網路

通過以下配置來實現虛擬機器配置乙個公有的ip位址, 主機內的其他的應用可以通過公網ip位址訪問到虛擬機器

config.vm.network "public_network"

由於我是用的是無線網絡卡, 需要在多個網絡卡中選擇乙個網路, 我選擇1號網絡卡, 也就是連線無線網的網絡卡

9. 搭建web伺服器

10. 重新打包

建立出乙個box檔案

vagrant package

通過這個box檔案可以建立乙個虛擬機器檔案, 再通過虛擬機器檔案建立出乙個虛擬機器例項

11. 多主機

建立兩個主機分別命名為dev和pro

沒有設定網路, 兩台虛擬機器之間是不能通訊的

config.vm.define "

dev" do |dev|end

config.vm.define

"pro

" do |pro|end

12. 多主機網路設定

設定私有網路, 注意私有網路是不能和對外通訊的網絡卡在同乙個網路段內

當前我的網路在

192.168.1.103

那麼, 建立的私有的虛擬機器所處的網路就不能在192.168.1.0/24這個段內

vagrant.configure("2") do |config|

end建立兩個在192.168.2.0/24網段的兩個主機, 如果之前已經建立兩個主機了, 就需要重新啟動虛擬機器 vagrant reload

13. 多主機多機名

通過dev和pro變數設定hostname, 從而設定虛擬機器的主機名

vagrant.configure("

2") do |config|config.vm.box = "

centos7

"config.vm.define

"dev

" do |dev|dev.vm.network

"private_network

", ip: "

192.168.2.11

"dev.vm.hostname = "hzh-dev"end

config.vm.define

"pro

" do |pro|pro.vm.network

"private_network

", ip: "

192.168.2.12

"pro.vm.hostname = "hzh-pro"end

end

主機名外掛程式: vagrant-hostmanager

使用國內的源進行安裝外掛程式

使用外掛程式

vagrant hostmanager

dev虛擬機器的主機名為hzh-dev

pro虛擬機器的主機名為hzh-pro

可以直接通過主機名連線到另乙個虛擬機器的網路

hostmanager外掛程式將虛擬機器的主機名和網路連線在一起了, 並且將各個虛擬機器的主機名和ip位址都寫到了各自的配置檔案/etc/hosts中

14. guest additions:vagrant-vbguest, 使用外掛程式來修復原來的共享資料夾的錯誤

為虛擬機器安裝 guest additions, 從而就可以使用預設的共享資料夾的功能了

為dev虛擬機器安裝增強組建

vagrant vbguest --do install dev

centos 安裝的過程中網路問題失敗了, 算了, 有更好的方法,  使用nfs外掛程式可以不用安裝增強組建就可以實現共享檔案, 所以算了, 不弄這個了

15. nfs共享目錄, 效能更好的共享目錄

黑體的部分實現了nfs共享資料夾

#

-*- mode: ruby -*-

vagrant.configure("2

") do |config|config.vm.box = "

centos7"#

啟用vagrantmanage 外掛程式

config.hostmanager.enabled =true

config.hostmanager.manage_guest =true

config.hostmanager.manage_host =true #

設定vbguest不自動更新

config.vbguest.auto_update =false

config.vm.define

"dev

" do |dev|dev.vm.network

"private_network

", ip: "

192.168.2.11

"dev.vm.hostname = "

hzh-dev

"#

配置nfs繫結共享檔案

dev.vm.synced_folder "

", "

", type: "

nfs"

dev.bindfs.bind_folder

"", "",

force_user:

"root

", force_group: "

root

", o: "

nonempty

"end

config.vm.define

"pro

" do |pro|pro.vm.network

"private_network

", ip: "

192.168.2.12

"pro.vm.hostname = "

hzh-pro

"end

end

安裝外掛程式

vagrant plugin install vagrant-bindfs --plugin-clean-sources --plugin-source

vagrant up 

會自動安裝bindfs, 需要訪問wai 網 加 速 下 載 , 而且要5到10分鐘

建立vagrant 映象 vagrant基本使用

簡介 vagrant是用於構建和管理虛擬機器環境的工具。官方 以mac系統為例 開啟命令列終端iterm2.輸入以下命令 mkdir p vms centos7 1 cd vms centos7 1 vagrant init centos 7 vagrant up vagrant ssh 以上幾步就...

工具系列 部落格簽名

頁面 div href target blank tinywan a p div div p 出處 a href target blank a p div div p 本文版權歸作者和共有。歡迎 但必須保留此段宣告,且在文章頁面明顯位置給出原文連線,否則保留追究法律責任的權利。p div div d...

Django 系列部落格(九)

本篇部落格介紹 django 模板的匯入與繼承以及匯入匯入靜態檔案的幾種方式。語法 如下 圖書管理系統 django 模板引擎中最強大的也是最複雜的除了 orm 就是模板繼承了。模板繼承可以讓您建立乙個基本的 骨架 模板,它包含您站點的全部元素,並且可以定義可以被子模板覆蓋的 blocks。通過下面...