使用Vagrant搭建跨平臺的Python開發環境

發表於2015-08-02

最近升級了Win10之後感覺系統萌萌噠,不過也可惜了自己之前花費很大力氣搭建的開發環境。由於最近跨平臺的需求比較大,就考慮搭建一套跨平臺的開發環境。

Vagrant

Vagrant是一個相對輕量級的虛擬機器管理軟體,根據官方的說明:

(Vagrant) Create and configure lightweight, reproducible, and portable development environments.

所以選擇了Vagrant來管理開發環境。Vagrant的下載和安裝非常的容易,在它的官方網站https://www.vagrantup.com/downloads.html 中下載需要的版本即可。

Virtual Box

Vagrant本身並不包含虛擬機器管理軟體,因此我們需要配合Vagrant安裝一個虛擬機器軟體。Vagrant支援VMware, Virtual Box, Hyper-V 等多種虛擬機器軟體,我選擇的是Virtual Box。 免費,跨平臺。

Virtual Box的安裝也非常的容易,官方網站下載即可,在此就不再贅述了。

Tips:為什麼有了虛擬機器軟體還需要使用Vagrant?

因為簡單的虛擬機器並不能滿足我們的需要,我們希望一個新的環境,開機就幫我們解決了一切。使用Vagrant可以方便的幫助我們在搭建系統之後,自動的管理埠對映/軟體包安裝等等問題。

同時,更重要的,Vagrant還可以方便的設定同步資料夾,讓我們在宿主機內對程式的修改,可以方便的同步到客戶機,在除錯程式時,這是一個非常優秀的特質。

選擇客戶機系統

Vagrant 的客戶機可以支援多種系統,具體支援那些,可以前往 https://atlas.hashicorp.com/boxes/search 檢視,我選擇的是Ubuntu 14.04 x64的版本,也就是https://atlas.hashicorp.com/ubuntu/boxes/trusty64 這個版本。

如果你沒有其他的需求,僅僅是需要一個乾淨的ubuntu,選擇好之後在一個資料夾裡執行 vagrant init ubuntu/trusty64 即可初始化一個Ubuntu 14.04 x64的虛擬機器。

此時資料夾中會出現一個Vagrantfile的檔案,就是這個客戶機的配置檔案了。

修改配置檔案

修改配置檔案主要有兩個目的,一是配置埠對映,使我們可以從宿主機的埠去訪問客戶機,另一個目的是使得客戶機在系統載入完成時執行一個Shell指令碼來安裝所需要的程式檔案。

Vagrant會預設初始化一個埠對映為guest:22, host:2222 也就是說客戶機的22埠,將被對映到宿主機的2222埠。

修改埠對映

我們在Vagrantfile檔案內找到

這一行,去掉#號,並按照我們的需要來修改埠號,我的設定如下:

這樣就設定了客戶機的5000埠轉發到宿主機的15000埠,或者說宿主機的15000埠將轉發到客戶機的5000埠。

載入配置指令碼

Vagrant可以設定一個配置指令碼,以方便我們來設定配置:找到

這幾行,將其修改為

表明首次啟動後,將找到python_env.sh並執行。我們就可以通過設定這個指令碼來完成配置不同的環境,我的配置如下:

此時的目錄如下:

啟動

這一切做好之後,我們就可以啟動客戶機了。在目錄下執行 vagrant up

配置環境中,可以看到已經在執行Shell指令碼,更新系統了。這個時候只需要默默等待就好… 

開始使用

Vagrant在啟動之後會為我們建立一個Private Key以供登陸,你可以直接在Windows的命令列下輸入 vagrant ssh來進行SSH的操作,也可以像我一樣,使用其他的客戶端。我使用MobaXterm作為Windows下的SSH Client。

輸入之後,即可進入到開發環境中。

同步資料夾

不妨在終端中輸入 cd /vagrant和ls,你看到了什麼?

沒錯,我們之前在Windows中建立的python_env.sh和Vagrantfile赫然出現在了客戶機中。這就是同步資料夾了。該資料夾和Windows中的對應資料夾同步。

這樣,我們就可以輕鬆的在虛擬機器中進行操作了。

相關文章