1. 程式人生 > >使用VirtualBox + Vagrant打造屬於自己的開發環境1

使用VirtualBox + Vagrant打造屬於自己的開發環境1

vagrant

很多新進入公司的小夥伴估計都有這樣的經歷,剛進公司必定會配置公司產品執行所需的開發環境。配置環境對於剛入職場的新手來說,還是很有難度的。

Vagrant就是為了解決這個問題而存在的,通過Vagrant可以打造專有的開發環境。通過Vagrant配置好開發環境後,就可以打包開發環境進行分發了。新手只需拿到Vagrant包,執行幾個指令碼就完成了環境的配置。

而且這一切都是在虛擬機器中完成的,所以也不用擔心配置失敗而帶來的從裝系統的風險,我曾經就因為資料庫安裝失敗而重灌系統過。我想肯定不止我一個人有這樣的經歷。

配置步驟

安裝VirtualBox

虛擬系統執行在VirtualBox中,類似的工具還有VMware,但後者是收費的。

它支援多個平臺,請根據自己的情況選擇對應的版本。

安裝Vagrant

選擇最新的版本即可。
檢查安裝是否成功,執行命令:vagrant

檢視安裝版本,執行命令:vagrant -v

至此,基本的工具已經安裝完成了。

初始化Vagrant

安裝完成後,在想要搭建環境的目錄下執行命令vagrant init

在當前目錄下會生成一個Vagrantfile配置檔案,內容如下:

# -*- mode: ruby -*-
# vi: set ft=ruby :

# All Vagrant configuration is done below. The "2" in
Vagrant.configure # configures the configuration version (we support older styles for # backwards compatibility). Please don't change it unless you know what # you're doing. Vagrant.configure(2) do |config| # The most common configuration options are documented and commented below. # For a complete reference, please see the online documentation at
# https://docs.vagrantup.com. # Every Vagrant development environment requires a box. You can search for # boxes at https://atlas.hashicorp.com/search. config.vm.box = "base" # Disable automatic box update checking. If you disable this, then # boxes will only be checked for updates when the user runs # `vagrant box outdated`. This is not recommended. # config.vm.box_check_update = false # Create a forwarded port mapping which allows access to a specific port # within the machine from a port on the host machine. In the example below, # accessing "localhost:8080" will access port 80 on the guest machine. # config.vm.network "forwarded_port", guest: 80, host: 8080 # Create a private network, which allows host-only access to the machine # using a specific IP. # config.vm.network "private_network", ip: "192.168.33.10" # Create a public network, which generally matched to bridged network. # Bridged networks make the machine appear as another physical device on # your network. # config.vm.network "public_network" # Share an additional folder to the guest VM. The first argument is # the path on the host to the actual folder. The second argument is # the path on the guest to mount the folder. And the optional third # argument is a set of non-required options. # config.vm.synced_folder "../data", "/vagrant_data" # Provider-specific configuration so you can fine-tune various # backing providers for Vagrant. These expose provider-specific options. # Example for VirtualBox: # # 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 = "1024" # end # # View the documentation for the provider you are using for more # information on available options. # Define a Vagrant Push strategy for pushing to Atlas. Other push strategies # such as FTP and Heroku are also available. See the documentation at # https://docs.vagrantup.com/v2/push/atlas.html for more information. # config.push.define "atlas" do |push| # push.app = "YOUR_ATLAS_USERNAME/YOUR_APPLICATION_NAME" # end # Enable provisioning with a shell script. Additional provisioners such as # Puppet, Chef, Ansible, Salt, and Docker are also available. Please see the # documentation for more information about their specific syntax and use. # config.vm.provision "shell", inline: <<-SHELL # sudo apt-get update # sudo apt-get install -y apache2 # SHELL end

修改配置引數:
config.vm.box = “base” 修改為config.vm.box = “hashicorp/precise32”

該引數的含義是虛擬機器使用什麼樣的映象,預設是base,我們將它修改為Ubuntu precise 32 VirtualBox

開啟配置:
# config.vm.synced_folder “../data”, “/vagrant_data”

將其修改如下:
config.vm.synced_folder “./projects”, “/projects”

該引數的含義是:使用當前目錄下的projects目錄作為專案目錄,它與虛擬機器的/projects目錄相對應,並且內容保持同步。

建立專案目錄projects

配置檔案中用到了當前目錄下的projects目錄,所以需要建立該目錄,不然啟動vagrant時會報錯。

mkdir ./projects

注:如果你安裝Vagrant時使用了sudo,那麼之後的所有vagrant命令前都需要加上sudo!!!

啟動Vagrant

經過上面的步驟後,就可以啟動Vagrant了,但是一般不推薦這樣做。

因為之前沒有下載好映象,所以第一次啟動時,會下載映象的,而且映象是從國外的伺服器下載,這樣會需要一個漫長等待的過程。

下面給出推薦的方法:

下載映象

官方封裝好的Ubuntu基礎映象:

將下載下來的映象檔案放在與Vagrantfile檔案同級目錄的file(如果沒有需要建立)資料夾中.

目錄如下:file/box/precise32.box

新增配置:

在Vagrantfile檔案中的config.vm.box配置之後新增如下配置:

config.vm.box_url = "./files/boxes/precise32.box"

配置完成之後,就可以啟動Vagrant了。
在當前目錄執行命令:vagrant up

至此,vagrant虛擬環境就啟動起來了。在當面目錄執行vagrant ssh就能登陸到虛擬系統中。

在虛擬系統的/projects中路中執行touch testfile。建立一個測試檔案,然後進入到你自己的系統,Vagrantfile所在的目錄,進入到projects目錄中,你會發現存在一個testfile檔案。

我想你已經明白了vagrant的精髓之處,你可以在自己的系統中編輯程式碼,而在vagrant的虛擬系統中去執行程式碼,也就是說,你不用在自己的系統中安裝執行環境!

Windows 使用者注意:Windows 終端並不支援 ssh,所以需要安裝第三方 SSH 客戶端,比如:Putty、Xshell 等。

常用命令

$ vagrant init  # 初始化
$ vagrant up  # 啟動虛擬機器
$ vagrant halt  # 關閉虛擬機器
$ vagrant reload  # 重啟虛擬機器
$ vagrant ssh  # SSH 至虛擬機器
$ vagrant status  # 檢視虛擬機器執行狀態
$ vagrant destroy  # 銷燬當前虛擬機器

至此,一個簡單的,垮平臺的vagrant開發環境就配置好了。但虛擬機器中卻什麼都沒有安裝,比如php,mysql,apache等。

下一篇文章中,我會準備一些shell指令碼,使得在第一次啟動虛擬機器時,安裝好常用的或者是你所需要的所有軟體。當然,你也可以參考官方文件自己動手。

相關推薦

使用VirtualBox + Vagrant打造屬於自己開發環境1

很多新進入公司的小夥伴估計都有這樣的經歷,剛進公司必定會配置公司產品執行所需的開發環境。配置環境對於剛入職場的新手來說,還是很有難度的。 Vagrant就是為了解決這個問題而存在的,通過Vagrant可以打造專有的開發環境。通過Vagrant配置好開發環境

快速打造自己開發環境 vagrant + virtualbox

工欲善其事必先利其器,開發環境 和 開發工具 就是 我們開發人員的劍,所以我們需要一個快並且好用的劍 剛開始做開發的時候的都是把開發環境 配置在 自己的電腦上,隨著後面我們接觸的東西越來越多,慢慢的電腦上都是各種環境了,php,java,python,nodejs等等,非常麻煩,並且經常由於某種原因就把電腦重

vagrant特性——基於docker開發環境(docker和vagrant的結合)-1-基本使用

Docker vagrant提供了使用Docker作為provider(其他的provider有virtualBox、VMware\hyper-V等)的開箱即用支援。這允許你的開發環境由Docker容器而不是虛擬機器支援。此外,它為開發dockerfile提供了一個良好的工作流。 Docker Basic

vagrant特性——基於docker開發環境(docker和vagrant的結合)-1-簡介

原文https://www.hashicorp.com/blog/feature-preview-docker-based-development-environments Feature Preview: Docker-Based Development Environments vagrant 1.6

第六章(1.2)自然語言處理實戰——打造屬於自己的中文word2vector工具

一、環境 二、實戰演練 訓練語料source.txt 9月12日隨著頒獎典禮的結束,我院獲得了商委系統運動會系列活動之一——足球比賽的季軍,本次比賽立時十天,十二隻球隊分成兩個小組比賽。我院代表隊以小組第二名的成績出現,在和另一小組第二名石油公

用Android-X86和VirtualBox打造高效能Android開發環境

不知道有多少Android開發著對Android虛擬機器的那悲劇的效能有意見,反正我的看法是:那速度實在是太坑爹了! 為什麼Android虛擬機器比iOS和WP7的虛擬機器要慢很多呢?原因如下: 1. Android 模擬器模擬的是 ARM 的體系結構(arm-ea

sublime集成MinGW,打造C/C++開發環境

sub printf cts brush 而且 log target 新建 配置 MinGW是是將GCC編譯器和GNU Binutils移植到Win32平臺下的產物,包括一系列頭文件(Win32API)、庫和可執行文件。MinGW是從Cygwin(1.3.3版)基礎上發展而

使用Vagrant搭建本地python開發環境

lac setting folders ins share www. 連接 placed devops 使用Vagrant搭建本地python開發環境 關於vagrant:Vagrant是一個基於Ruby的工具,用於創建和部署虛擬化開發環境,它使用Oracle的開源Vir

iOS打造屬於自己的用戶行為統計系統

不可 全部 pop cto objective ont ole nts markdown ??打造一款符合自己公司需求的用戶行為統計系統,相信是非常多運營人員的夢想,

Scrapy爬蟲學習筆記 - windows下搭建開發環境1

ima 搭建開發環境 環境 navicat win pyc arm bsp mysql 一、pycharm的安裝和簡單使用 二、mysql和navicat的安裝和使用 三、wi

使用ViewDragHelper打造屬於自己的DragLayout(抽屜開關 )

true header 限制 open() flat 重寫 support 重要 red 使用ViewDragHelper打造屬於自己的DragLayout(抽屜開關

酷斃了!python用37行代碼打造屬於自己的音樂播放器,附源碼

python 爬蟲 音樂 代碼想不想手動打造一款專屬於你的播放器,同時練練Python編程? 如果想,那就立即行動吧! 所需庫pygametkintermutagen 至於它們的使用,可以瀏覽一下文檔,如果你想做更功能強大的播放器,那必須好好看看哦! 設計思路作為版本0,我們並不想做太復雜的項目。只需實現以下

用爬蟲和Flask打造屬於自己的電影網站,完整教程送上!

alt mysql服務器 學習 安裝 友好 點擊 沒有 網易 sql安裝 也許你曾經為了一部電影找遍全網卻沒發現任何有用的資源,也許你曾經被披著電影外衣的網站忽悠進去而染上×××病毒。一部小小的電影搞得你心力交瘁,懷疑人生。不過,作為一名合格的程序員,一向以write th

ORACLE 全綠色版的PL/SQL和Oracle客戶端配置-打造綠色Oracle開發環境

 全綠色版的PL/SQL和Oracle客戶端配置-打造綠色Oracle開發環境 我的環境: win7 64 Oracle 10g伺服器、也有11g的,都可以用。 1、準備軟體 PL/SQL Developer 9.0.5.1648 綠色版註冊版 instantclient-basi

PyCharm專業版+Django搭建web開發環境———1

PyCharm專業版+Django搭建web開發環境-1        PyCharm專業版可以直接通過Django來建立專案: 先說一下專業版簡單的吧:    開啟pycharm專業版  左上角的

android開發環境-- 1 夜神模擬器連線及資料庫匯出

啟動夜神模擬器的開發者選項 進入螢幕上的[設定],如圖 2,進入[關於平板電腦],如圖   3,點選5次[版本號] 4,退回到[設定]目錄,會看到[開發者選項],如圖 5,進入[開發者選項],選中[USB除錯],或選擇其他需要選項,如圖

第2講如何打造屬於自己的工程師文化

有的技術管理者遇到到這樣的問題,招聘的時候每個成員都是特別棒的,為什麼進入公司幾個月後精英個人都變成變成了平凡的,整體團隊產出也不理想。這是為什麼呢? 文化是什麼 谷歌 亞馬遜 facebook 等都有很強的工程師文化,以亞馬遜為例,它的工程師文化包括:通過解決問題來改造世界、基於事實與科學

JAVA Socket通訊 打造屬於自己的網盤

 近一個月沒敲JAVA程式碼了,最近老師佈置了一個寫JAVA網盤的作業,總共花了十幾個小時,總算寫完了,debug真的累,感覺自己還是菜了,沒有那種有一個想法就能馬上用程式碼實現的能力。。。。不扯了,下面開始正題。 功能介紹 支援1個客戶端,1個伺服器端。伺服器提供網盤空間。 首先執行

JAVA Socket通信 打造屬於自己的網盤

文件 content rac msg ring indexof truct stack ren 近一個月沒敲JAVA代碼了,最近老師布置了一個寫JAVA網盤的作業,總共花了十幾個小時,總算寫完了,debug真的累,感覺自己還是菜了,沒有那種有一個想法就能馬上用代碼實現的能

JAVA-Socket通訊 打造屬於自己的聊天室(初級版)

我們每天都在使用著微信、QQ等聊天軟體,但不知你是否有想過這些聊天軟體是如何實現的?是否想過要製作一個屬於自己的聊天室? 本篇部落格將帶你打造一個簡單的屬於自己的聊天室,將cmd作為聊天視窗,可通過內網,與周圍的小夥伴相互通訊,當然也可以掛到伺服器上,實現通過外網的通訊。同時還能通過服務端視窗對連入的使用者