vagrant 安装使用 win7
第一步、安裝VirtualBox和vagrant
下載地址:
https://www.virtualbox.org/wiki/Downloads
http://downloads.vagrantup.com/
下載相應的版本安裝即可,win下一路next即可(其他os安裝方法請自行百度)
在網絡環境不是很好的情況下,也需要下載需要的box鏡像:http://www.vagrantbox.es/
第二步、添加vagrant虛擬機
1.創建box存放目錄E:\vagrant-box并切換進來,將下載好的box文件復制進來
添加box到vagrant,使用命令: vagrant box add your-box-name ./centos-7.0-x86_64.box
2.創建開發目錄E:\vagrant-box\centos7-puppet381并切換到目錄 cd?E:\vagrant-box\centos7-puppet381
初始化:vagrant init [your-box-name] #不寫box名稱時是初始化默認的box
啟動:vagrant up
第三步、SSH到虛擬機中
Windows 終端并不支持 ssh,所以需要安裝第三方 SSH 客戶端,比如:Putty、Cygwin、xshell、secureCRT等(默認帳號密碼都是vagrant)
Vagrant 初始化成功后,會在初始化的目錄里生成一個 Vagrantfile 的配置文件,可以修改配置文件進行個性化的定制。Vagrant 默認是使用端口映射方式將虛擬機的端口映射本地從而實現類似 http://127.0.0.1:80 這種訪問方式,這種方式比較麻煩,新開和修改端口的時候都得編輯。 相比較而言,host-only 模式顯得方便多了。 打開 Vagrantfile,將下面這行的注釋去掉(移除 #)并保存: config.vm.network :private_network, ip: "192.168.30.177"config.vm.network "public_network" #,:bridge=>'en1: Wi-Fi (xxx)'多個網絡可選時可以使用紅色背景部分免去 vagrant up時的網絡選擇部分
重啟虛擬機,這樣我們就能用 192.168.30.177 訪問這臺機器了,你可以把 IP 改成其他地址,只要不產生沖突就行。當你配置好開發環境后,退出并關閉虛擬機。在終端里對開發環境進行打包: $ vagrant package 打包完成后會在當前目錄生成一個 package.box 的文件,將這個文件傳給其他用戶,其他用戶只要添加這個 box 并用其初始化自己的開發目錄就能得到一個一模一樣的開發環境了。常用命令: $ vagrant init # 初始化 $ vagrant up # 啟動虛擬機 $ vagrant halt # 關閉虛擬機 $ vagrant reload # 重啟虛擬機 $ vagrant ssh # SSH 至虛擬機 $ vagrant status # 查看虛擬機運行狀態 $ vagrant destroy # 銷毀當前虛擬機使用 Apache/Nginx 時會出現諸如圖片修改后但頁面刷新仍然是舊文件的情況,是由于靜態文件緩存造成的。需要對虛擬機里的 Apache/Nginx 配置文件進行修改: # Apache 配置添加: EnableSendfile off # Nginx 配置添加: sendfile off;
更多內容請查閱官方文檔 http://docs.vagrantup.com/v2/cli/index.html
以下內容引自:http://blog.smdcn.net/article/1308.html
設置好box之后,在當前工作目錄運行
?
| 1 | vagrant init |
?
生成對應的Vagrantfile。通過文本編輯器打開Vagrantfile可以進行一些進一步的常用配置:
網絡配置:
Vagrant的網絡有三種模式
1、較為常用是端口映射,就是將虛擬機中的端口映射到宿主機對應的端口直接使用 ,在Vagrantfile中配置:
?
| 1 | config.vm.network :forwarded_port, guest: 80, host: 8080 |
?
guest: 80 表示虛擬機中的80端口,?host: 8080 表示映射到宿主機的8080端口。
2、如果需要自己自由的訪問虛擬機,但是別人不需要訪問虛擬機,可以使用private_network,并為虛擬機設置IP?,在Vagrantfile中配置:
?
| 1 | config.vm.network :private_network, ip:?"192.168.1.104" |
?
192.168.1.104 表示虛擬機的IP,多臺虛擬機的話需要互相訪問的話,設置在相同網段即可
3、如果需要將虛擬機作為當前局域網中的一臺計算機,由局域網進行DHCP,那么在Vagrantfile中配置:
?
| 1 | config.vm.network :public_network |
?
目錄映射:
既然是開發環境,那么開發工作肯定還是需要在本地完成,而不是都要進到虛擬機中去完成,虛擬機就好好在后臺運行服務就好了,不然就本末倒置了,所以這里就需要使用目錄映射功能,將本地的目錄映射到虛擬機的對應目錄。
默認情況下,當前的工作目錄,會被映射到虛擬機的 /vagrant 目錄,當前目錄下的文件可以直接在 /vagrant 下進行訪問,當然也可以在通過 ln 創建軟連接,如
?
| 1 | ln?-fs?/vagrant/wwwroot /var/www |
?
來進行目錄映射,當然,從自動化配置的角度,能不進系統就不需要進系統,所以在Vagrant也可以進行目錄映射的操作:
?
| 1 | config.vm.synced_folder?"wwwroot/",?"/var/www" |
?
前面的參數 “wwwroot/” ?表示的是本地的路徑,這里使用對于工作目錄的相對路徑,這里也可以使用絕對路徑,比如: “d:/www/”
后面的參數 “/var/www” 表示虛擬機中對應映射的目錄。
運行腳本:
雖然不是必須,但是如果有需要在啟動時運行一些腳本(環境的安裝或者有些服務的啟動需要在完成目錄映射之后進行),可以編輯腳本,類似如下(摘自Vagrant Document):
| 1 | #!/usr/bin/env bash |
| 2 | ? |
| 3 | apt-get?update |
| 4 | apt-get?install?-y?apache2 |
| 5 | rm?-rf?/var/www |
| 6 | ln?-fs?/vagrant /var/www |
保存在和Vagrantfile相同目錄,文件名自取(如 boot.sh),然后在Vagrantfile中添加:
| 1 | config.vm.provision :shell, :path =>?"boot.sh" |
?當初次使用基本的設置都完成則之后,則可以使用 vagrant up 啟動虛擬機
| 01 | Bringing machine?'default'?up with?'virtualbox'?provider... |
| 02 | [default] Setting the name of the VM... |
| 03 | [default] Clearing any previously?set?forwarded ports... |
| 04 | [default] Creating shared folders metadata... |
| 05 | [default] Clearing any previously?set?network interfaces... |
| 06 | [default] Preparing network interfaces based on configuration... |
| 07 | [default] You are trying to forward to privileged ports (ports < = 1024). Most?operating systems restrict this to only privileged process (typicallyprocesses running as an administrative user). This is a warning in case |
| 08 | the port forwarding doesn't work. If any problems occur, please try a?port higher than 1024. |
| 09 | [default] Forwarding ports... |
| 10 | [default] -- 22 => <strong>2222</strong> (adapter 1) |
| 11 | [default] -- 80 => 8080 (adapter 1) |
| 12 | [default] Booting VM... |
| 13 | [default] Waiting for VM to boot. This can take a few minutes. |
| 14 | [default] VM booted and ready for use! |
| 15 | [default] The guest additions on this VM do not match the installed version of?VirtualBox! In most cases this is fine, but in rare cases it can?cause things such as shared folders to not work properly. If you see?shared folder errors, please update the guest additions within the?virtual machine and reload your VM. |
| 16 | ? |
| 17 | Guest Additions Version: 4.1.18 |
| 18 | VirtualBox Version: 4.2 |
| 19 | [default] Mounting shared folders... |
| 20 | [default] -- /var/www |
| 21 | [default] -- /vagrant |
| 22 | [default] Running provisioner: shell... |
虛擬機啟動之后則可以通過 vagrant ssh 聯入虛擬機進行進一步的環境配置,或者軟件安裝相關的工作,在Windows系統下,并不能直接通過 vagrant ssh 連到虛擬機,需要使用 Putty,Xshell 等第三方工具進行連接
連接的IP和端口根據網絡環境配置的不同有所不同,如果是默認使用端口映射的話,一般是連接 本地的2222端口。
登錄的帳號密碼均為 vagrant ,登錄之后如果需要 su root ,密碼也是 vagrant
注:使用 vagrant ssh 時,會提示可以使用密鑰進行登錄,如果需要使用putty進行密鑰登錄的話,需要下載 puttygen 將 ssh 的密鑰轉換為 ppk 文件才能使用。
登錄ssh完成環境的配置,如果在開發環境中使用webserver(nginx/apache)為了避免一些靜態文件處理的問題,可能還需要進行一些額外的配置:Vagrant下共享目錄靜態文件(js/jpg/png等)“緩存”問題
在不進入虛擬機的情況下,還可以使用下面的命令對 虛擬機進行管理:
vagrant up?(啟動虛擬機)
vagrant halt?(關閉虛擬機——對應就是關機)
vagrant suspend?(暫停虛擬機——只是暫停,虛擬機內存等信息將以狀態文件的方式保存在本地,可以執行恢復操作后繼續使用)
vagrant resume?(恢復虛擬機 —— 與前面的暫停相對應)
vagrant destroy?(刪除虛擬機,刪除后在當前虛擬機所做進行的除開Vagrantfile中的配置都不會保留)
當在啟動Vagrant后,對于虛擬機有進行過安裝環境相關的配置,如果并不希望寫在Vagrant的啟動shell里面每次都重新安裝配置一遍,可以將當前配置好的虛擬機打包成box,
| 1 | vagrant package?--output?NAME?--vagrantfile?FILE |
| 2 | ? |
| 3 | 可選參數: |
| 4 | ? |
| 5 | --output?NAME?: (可選)設置通過NAME來指定輸出的文件名 |
| 6 | ? |
| 7 | --vagrantfile?FILE:(可選)可以將Vagrantfile直接封進box中 |
注:如果網絡模式中使用 private_network 的話,在打包之前需要清除一下private_network的設置,避免不必要的錯誤:
| 1 | sudo?rm?-f?/etc/udev/rule.d/70-persistent-net.rules |
制作完成之后直接將box文件拿到其他計算機上配置即可使用。
轉載于:https://www.cnblogs.com/benlightning/p/4666822.html
總結
以上是生活随笔為你收集整理的vagrant 安装使用 win7的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 管理神话2:专家只有权这样做
- 下一篇: java基础知识之初识java