vagrant搭建centos環境

2022-08-23 05:45:15 字數 3156 閱讀 7265

macos作為開發環境已經相當方便,有很豐富的工具,如homebrew類似於ubuntu的apt-get和centos的yum,很方便地安裝各種開發工具。但終究與線上生產環境不同,即便安裝的是相同的軟體,安裝目錄,管理方式都有所不同。當專案很複雜,或者有多個專案時,很容易將mac本地環境弄得亂七八糟。

為了能與線上生產環境一致,嘗試過用docker, 並沒有想象中的方便,可能是我對dokcer的了解太少。且覺得docker的門檻較高。

衡量各種方案後,最終選擇用vagrant與virtualbox搭建乙個完整的linux系統,這樣能夠與線上生產環境一致,也能很方便地進行移植。

我選擇的是 centos7.2 的映象

新建目錄centos,作為vagrant的根目錄

☁  centos  vagrant box add centos ~/downloads/vagrant-centos-7.2.box

# 將box命名為centos

☁  centos  vagrant init
會自動生成vagrantfile配置檔案

box名稱須與上面命令指定的box名一致

config.vm.box = "centos"
config.vm.network "forwarded_port", guest: 80, host: 8080, host_ip: "127.0.0.1"
macos不允許將本機的80埠**, 解決方案參照: mac設定埠**

預設的virtualbox共享檔案速度太慢,需要啟用nfs預設

vagrantfile 設定:

config.vm.network "private_network", type: "dhcp"

config.vm.synced_folder "/users/airmb/downloads/work", "/home/wwwroot/work", :nfs => true, :mount_options => ['actimeo=2']

記憶體大小根據物理機記憶體設定,我的mac物理機是8g記憶體,分配了3g給虛擬機器

如果要安裝mysql5.7,記憶體不能低於2g

config.vm.provider "virtualbox" do |vb|

vb.memory = "3072"

end

連線vagrant虛擬機器有兩種方式:

檢視ssh-config

可以用vagrant預設生成的key,也可以將自己的私鑰替換到 identityfile 指定的檔案,連線虛擬機器後再將公鑰放到虛擬機器中的~/.ssh/authorized_keys

啟動虛擬機器

☁  centos  vagrant up
連線進入虛擬機器

☁  centos  vagrant ssh
預設的共享掛載目錄:/home/vagrant

☁  centos  vagrant package --base centos_default_1533259579120_24934 --out centos7.2.box # 匯出box

☁ centos vagrant box add centos ./centos7.2.box # 匯入box

當需要重新匯入映象時,為避免出現各種奇奇怪怪的問題,清空以下內容:

# 將現有的box刪除

☁ centos vagrant box list

centos (virtualbox, 0)

☁ centos vagrant box remove centos

☁ centos vagrant global-status --prune

☁ centos rm -rf .vagrant

☁ centos rm -rf vagrantfile

☁ centos cd ~/virtualbox\ vms

☁ virtualbox vms ls

centos_default_1534145188471_82398

☁ virtualbox vms rm -rf ./*

config.vm.network "forwarded_port", guest: 80, host: 8080
config.vm.provider "virtualbox" do |vb|

# # display the virtualbox gui when booting the machine

# vb.gui = true

## # customize the amount of memory on the vm:

vb.memory = "3072"

end

config.vm.synced_folder "~/code", "/home/wwwroot/code", :owner=> 'vagrant', :group=>'www', :mount_options => ['dmode=775', 'fmode=775']
同乙個檔案,本地修改後,centos虛擬機器能看到同步的修改,但怎麼重新整理都看不到變化,只有在centos裡面再修改檔案才有效。而動態檔案,如php檔案修改後實時能看到變化

解決:將nginx.conf的配置修改:

sendfile off;
apache也有相同問題,修改配置:

enablesendfile off

vagrant環境搭建

總結 直白的說是一鍵生成特定虛擬機器的工具。1 新增虛擬機器 vagrant box add 0525 d soft vagrantfile 20200523.box 0525為虛擬機器名,目錄為box的檔案目錄 2 初始化虛擬機器 vagrant init 會生成box的配置檔案vagrantfi...

環境搭建 ubuntu上安裝vagrant

ubuntu安裝vagrant時需要首先安裝virtualbox。step2 在ubuntu終端中執行 sudo dpkg i virtualbox 4.3 4.3.14 95030 ubuntu raring amd64.deb如果提示缺少依賴包,那麼可以執行 sudo apt get f ins...

vagrant安裝centos7失敗

本人在安裝過程中,遇到了不少問題,從網上也找了些解決方案,自己也嘗試了一些,最終還是失敗了,不過過程中有幾個問題與解決方案值得記錄一下,說不定以後就知道是忽略了 這是我先vagrant init centos 7,然後vagrant up,經過較長時間,報告的錯誤 an error occurred...