2023 Vagrant 一鍵安裝自己的虛擬環境 === * [name=千神] 參考此[Hackmd語法](https://hackmd.io/@bwMrIJGoSwyHxPVocWmFmw/rJqeVSOrV?type=view) 2023/04/28 :::success 這個是我在工作時, 每次都要重新安裝虛擬環境, 不符合我的DRY原則, 所以我直接做一個教學幫助我以後直接安裝我的虛擬環境 ::: ## 此篇文章能幫助 1. 每次安裝環境都要重新拉iso檔, 部屬memory CPU Network, 改GUI, 安裝一堆package 2. 可以在自己喜歡的環境開發, 但是測試部屬上線都是在相同系統, 例如A可以在mac 開發, B可以在Linux開發, 但測試時都是在相同環境 3. 我覺得最重要的, 可以不用多開一個虛擬環境, 直接在本地目錄上開發, 直接同步到虛擬環境中, 有夠方便. ## Pre-work 需要安裝 1. Vagrant 2. Virtual Box 用這篇[教學](https://samkuo.me/post/2020/05/vagrant-virtualbox-devops-tool/) 可以用超快即優雅的方式(2,3行代碼)把這兩個東西都安裝好, 身為程序員應該都很喜歡吧? :::warning 需要注意的是, Vagrant目前並不支援VBox 7.0以上的版本, 而且Virtual Box 6.0以下的版本不知道為什麼不兼容很多東西, 所以保險起見, 建議安裝6.0 Version ::: ## Vagrant連動 本身Vagrant 其實很簡單, 只需兩行代碼就能幫你把環境建立完畢 ``` vagrant init bento/ubuntu-18.04 vagrant up ``` 以上代碼中, 他會自動到[Vagrant Cloud](https://app.vagrantup.com/boxes/search)幫你把環境的檔案下載下來, 並自動安裝 (bento/ubuntu-18.04 可以替換成任意網址) [Ubuntu](https://app.vagrantup.com/bento/boxes/ubuntu-18.04) 的指令在這 [Ubnutu Server](https://app.vagrantup.com/aspyatkin/boxes/ubuntu-18.04-server)的指令在這裡 ## 正式開始 1. 首先我們要先創建一個folder來裝vagrant box ``` mdkir ubuntu_bento_18_06_LTS_vbox ``` ![](https://i.imgur.com/fEGdkr2.png) 2. 我把剛剛我從[Ubuntu](https://app.vagrantup.com/bento/boxes/ubuntu-18.04) 這裡下載的box檔案拉進folder裡面 3. 接下來我要初始化, 確認狀態, 並啟動它 ``` vagrant init [Box_name] 初始化此box 並創建一個Vagrantfile檔 vagrant box list 查看目前有哪些box(環境) vagrant status 查看virtual environment 環境是否啟動 vagrant up 啟動虛擬環境 ``` ![](https://i.imgur.com/K1iocFv.png) ## 其他相關 要連上vagrant 可以使用 ``` vagrant ssh ``` 要關閉vagrant 可以直接使用 ``` vagrant halt ``` ## 待更新項目 1. 多台虛擬機互通, 並且可連到外網 2. 可以封裝自己environment, 快速一鍵安裝 3. 可以安裝帶有GUI Ubuntu ## Reference [最詳細的Vagrant教學](https://imququ.com/post/vagrantup.html) 1. [Vagrant的進階命令](https://blog.robodock.net/shi-yong-vagrant-qing-song-guan-li-xu-ni-ji/) 2. [Vagrant用多網卡方式 實現外網內網, 多重互通](https://blog.csdn.net/xuwenjingrenca/article/details/127875187) 3. [Vagrant Clound中 Ubuntu GUI box file](https://app.vagrantup.com/dmhughes/boxes/ubuntu-18.04-desktop-gui) 4. [另一種方式安裝帶有GUI介面的Ubuntu](https://qiita.com/MasanoriIwakura/items/5348331647b9d7893097) 5. [還是另一種方式安裝Ubuntu GUI](https://techracho.bpsinc.jp/anekawa/2017_12_25/50414) 6. [Ubuntu Server & Ubuntu Desktop Difference](https://worktile.com/kb/p/38286) 7. [Vagrant搭建一套集群系統](https://blog.csdn.net/u013961139/article/details/119708080?spm=1001.2101.3001.6650.1&utm_medium=distribute.pc_relevant.none-task-blog-2%7Edefault%7ECTRLIST%7ERate-1-119708080-blog-120797892.235%5Ev32%5Epc_relevant_increate_t0_download_v2_base&depth_1-utm_source=distribute.pc_relevant.none-task-blog-2%7Edefault%7ECTRLIST%7ERate-1-119708080-blog-120797892.235%5Ev32%5Epc_relevant_increate_t0_download_v2_base&utm_relevant_index=2) 8. [Vagrant打包本地開發環境](https://blog.csdn.net/qq_36431213/article/details/99710519) 9. [詳細解釋Vagrant 和進階功能](https://www.cnblogs.com/crazymakercircle/p/14194688.html) 10. [Vagrant 安裝CentOS](https://blog.csdn.net/qq_44413835/article/details/115220608)