如何利用Vagrant快速搭建相同配置的開發環境?

做爲一名程序猿,咱們經常會遇到須要搭建開發環境的問題,特別是在新入職的時候,sublime, node, apache, mysql, php等等以及各類框架的安裝。若是入職的是大公司有可能這些必要的開發環境運維人員會爲咱們安裝好,若是是中小型公司那就須要開發者本身來搭建開發環境,並且還要避免安裝的版本不一樣等問題,這就須要用到咱們今天介紹的這款工具了。Vagrant目前是國內互聯網公司應用最多的內部開發環境工具。Vagrant是咱們開發者的福音,使咱們徹底擺脫了重複配置環境的處境。php

前期準備

在搭建以前咱們將用到如下軟件:html

  • vagrant這裏咱們選用1.8.6的版本,可在這裏下載對應平臺下的安裝包
  • virtualBox這裏我使用virtualBox虛擬機,固然也能夠使用其餘虛擬機,
  • xshell5,window用戶須要安裝xshell5用來登陸linux系統環境

這些軟件安裝好後接下來才真正開始使用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的打包與分發

如今開發環境安裝好後咱們須要將咱們的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就能夠直接使用了,這樣其餘同事就和咱們有相同的環境配置了

vagrant優化

若是一個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經常使用命令

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默認以root用戶身份登陸

當經過vagrant up,以vagrant身份進入linux後,

sudo su root
vi /etc/ssh/sshd_config
找到PermitRootLogin設置爲 yes
找到PasswordAuthentication設置爲yes
保存後執行重啓sshd
service sshd restart

重啓該box後咱們就能夠用root身份登陸了,須要填寫密碼默認是vagrant

相關文章
相關標籤/搜索