做爲一名程序猿,咱們經常會遇到須要搭建開發環境的問題,特別是在新入職的時候,sublime, node, apache, mysql, php等等以及各類框架的安裝。若是入職的是大公司有可能這些必要的開發環境運維人員會爲咱們安裝好,若是是中小型公司那就須要開發者本身來搭建開發環境,並且還要避免安裝的版本不一樣等問題,這就須要用到咱們今天介紹的這款工具了。Vagrant目前是國內互聯網公司應用最多的內部開發環境工具。Vagrant是咱們開發者的福音,使咱們徹底擺脫了重複配置環境的處境。php
在搭建以前咱們將用到如下軟件:html
這些軟件安裝好後接下來才真正開始使用vagrantnode
在xshell中執行mysql
cd D: mkdir vagrant/centos cd vagrant/centos vagrant init
此時能夠看到在centos文件夾下有一個Vagrantfile文件,
用sublime或其餘編輯器打開此文件找到config.vm.box = "base",並將它改成config.vm.box = "centos/7",同時也能夠添加一下這個box的版本號 config.vm.box_version="1804.02"linux
這裏爲何將base改成centos/7?
我這裏打算用linux的centos7發行版,vagrant爲咱們提供了不少的box,咱們能夠在這裏查詢到https://app.vagrantup.com/boxes/search,選擇centos7,就能夠看到它推薦咱們將config.vm.box = "centos/7",同時選好咱們使用的版本,這裏咱們選擇用1804.02web
vagrant up
在這裏使用window的朋友須要將powershell升級到3.0及以上
如何升級可參考這篇博客https://blog.csdn.net/i_am_wangbo/article/details/50033473
升級好後再次執行vagrant up
能夠看到vagrant在自動下載咱們配置好的box
若是出現如圖所示狀況,咱們能夠更改下Vagrantfile的配置,
啓用vb.gui = true配置,以圖形界面的形式啓動虛擬機,這樣咱們就能看到具體是什麼報錯了
這裏咱們須要開啓硬件加速
具體如何開啓可參考這篇https://jingyan.baidu.com/article/4b52d702a3e0aafc5d774b7c.html
設置好後再次執行vagrant up,此次沒有報錯了,此時咱們能夠看到執行到了centos的登陸界面
sql
至此mac用戶能夠直接執行vagrant ssh
window用戶能夠根據提供的address username port新建ssh鏈接
輸入用戶名後,密鑰咱們點擊瀏覽,選擇文件D:\vagrant\CentOS.vagrant\machines\default\virtualbox\private_key,這是剛生成的密鑰
至此咱們已經登陸進了centos系統了。shell
進入系統後咱們就能夠安裝配置咱們的環境了,具體的PHP開發環境可參LNMP + Apache 架構配置.
可開發環境安裝好後如何讓他人和我有相同的環境配置呢?apache
如今開發環境安裝好後咱們須要將咱們的box打包,centos
vagrant package --output D:/vagrant/box/CentOS.box
咱們能夠看到在box文件夾下生成了一個CentOS.box文件,咱們能夠經過U盤或網盤將這個box分發給其餘同事。
提他同事安裝後vagrant就能夠用這個box了
載入這個box
vagrant box add CentOS.box
vagrant up就能夠直接使用了,這樣其餘同事就和咱們有相同的環境配置了
若是一個box在使用的過程當中又安裝了其餘軟件怎麼辦?
對於新用戶咱們能夠從新打包分發,對於老用戶咱們能夠修改Vagrantfile文件
config.vm.provision "shell", inline: <<-SHELL yum install -y apache2 SHELL
這樣在下次執行vagrant up的時候會自動安裝新的軟件
如何以固定ip的形式訪問虛擬機上的web服務器
這裏咱們能夠經過設置私有網絡ip的形式供本身訪問,
config.vm.network "private_network",ip:"192.168.10.10"
這樣咱們就能夠經過這個ip訪問到咱們的服務器了
vagrant box list 查看目前已有的box
vagrant box add 新增長一個box
vagrant box remove
vagrant inti 初始化配置生成vagrantfile
vagrant up 啓動虛擬機
vagrant ssh登陸虛擬機
vagrant suspend 掛起虛擬機
vagrant reload 重啓虛擬機
vagrant halt 關閉虛擬機
vagrant status 查看虛擬機
vagrant destory 刪除虛擬機
當經過vagrant up,以vagrant身份進入linux後,
sudo su root vi /etc/ssh/sshd_config 找到PermitRootLogin設置爲 yes 找到PasswordAuthentication設置爲yes 保存後執行重啓sshd service sshd restart
重啓該box後咱們就能夠用root身份登陸了,須要填寫密碼默認是vagrant