搭建Vagrant的Debian8的base box



最近有很多好的項目的想法想實施,其中涉及到很多的環境。因爲現在用的是MAC筆記本,對於MAC系統而言,每次升級之後系統的配置文件都會被重置,這個是一個糟糕的場景。於是我們就需要搭建一個獨立的環境。要是以前的話,我肯定裝一個虛擬機就開搞了,不過最近接觸到一個新的工具,叫做Vagrant。

Vagrant是一個基於Ruby的工具,用於創建和部署虛擬化開發環境。它使用Oracle的開源Virtual Box虛擬化系統,使用 Chef創建自動化虛擬環境。

Vagrant還有一個很重要的好處在於,它可以將虛擬環境的目錄映射到本機的指定的目錄,這樣我們就不用在本機開發完成代碼後,然後再將代碼拖到虛擬環境中進行測試了。

雖然這裏http://www.vagrantbox.es/已經羅列出了許多個base box,基本上已經涵蓋了所有的大部分操作系統的大部分版本。然後嘗試去下載,但是發現下載的速度實在太慢太慢太慢了,而且下載一會後,就卡住不動了。雖然在網上其他人也提供了一些版本的box文件,但是主要都是Centos和Ubuntu的BOX文件,都是我想要的,我想要的Debian8的BOX文件。無奈之下,只能自己搭建一個這樣的環境。

那麼我們就開始吧。

1、安裝VirtualBox,(VirtualBox-4.3.36)

2、安裝Vagrant

3、準備Debian8的ISO鏡像(debian-8.5.0-amd64)

4、創建一個新的虛擬機

  • 給虛擬機起個名字爲“Debian8”
  • 確保您分配足夠的磁盤空間,20GB足夠了。
  • 確保默認的內存分配也不用太高,建議512M。
  • 如果不需要,禁用音頻,USB控制器等。大多數應用程序都不需要播放音樂!因此,節約資源,禁用這些功能。
  • 確保網絡控制器設置爲NAT,爲了端口轉發正常工作。

5、啓動虛擬機,安裝Debian8,確保配置如下(非強制,如打算分發此box,建議遵循如下約定)

  • Hostname:vagrant-[os-name],例:vagrant-ubuntu-Steve
  • Domain: vagrantup.com
  • Root Password: vagrant
  • Main account login: vagrant
  • Main account password: vagrant

這個過程中需要注意的是Debian8的引導問題。系統裝了很多次,每次裝完後,都無法進入系統,後來百度了一下原來是系統安裝過程中默認選擇的引導方式有問題,安裝是失敗的,導致無法進入系統。那麼要如何解決呢?那就是在選擇引導類型的時候,選擇“/dev/sda1”。然後就OK了。

6、安裝完畢後,進入虛擬機

7、根據自己需要,安裝一些常用軟件

(1)apt-get install sudo

(2)apt-get install vim

(3)apt-get install zip unzip

(4)apt-get  install  php5

(5)apt-get  install   apache2

(6)apt-get  install  mysql-server   mysql-client

(7)apt-get  install  php5-mysql  php5-curl  php5-gd  libapache2-mod-php5  php5-mysql

(8)apt-get install openssh-server

8、創建admin組

sudo groupadd admin

9、添加vagrant用戶到admin組
sudo usermod -G admin vagrant

10、安裝puppet
sudo apt-get install puppet puppetmaster
sudo apt-get install ruby rubygems
sudo apt-get install chef

11、安裝vagrant的public keys
mkdir ~/.ssh/
cd ~/.ssh
wget http://github.com/mitchellh/vagrant/raw/master/keys/vagrant
wget http://github.com/mitchellh/vagrant/raw/master/keys/vagrant.pub
mv vagrant.pub authorized_keys
chmod 700 ~/.ssh
chmod 600 ~/.ssh/*

12、Install virtual box guest additions(爲了共享文件夾,端口轉發等)
sudo apt-get install linux-headers-$(uname -r) build-essential
下載指定版本的VBoxGuestAdditions.iso
http://download.virtualbox.org/virtualbox/4.0.36/VBoxGuestAdditions_4.0.36.iso

然後用虛擬機的光驅加載這個鏡像,接下來:

sudo mount /dev/cdrom /media/cdrom
sudo sh /media/cdrom/VBoxLinuxAdditions.run

添加共享文件夾
sudo mkdir /vagrant

13、清除緩存
sudo apt-get clean

14、關閉虛擬機,進入virtual box directory
vagrant package --output debian8.box --base Debian8
這個過程中會遇到一個坑,系統可能會提示:Debian8: VM not created. Moving on
這是因爲虛擬機的目錄不一定就是虛擬機的名稱,可以通過命令來查詢:vboxmanage list vms

15、這樣我們的定製版的Box文件就創建好了。接下來就簡單了,創建一個目錄,放入兩個文件:
debian8.box
Vagrantfile

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|
  config.vm.box = "debian8"
  config.vm.boot_timeout = 360
  config.ssh.username = "root"
  config.ssh.password = "vagrant"
  config.vm.network "public_network"
  config.vm.network "forwarded_port", guest: 80, host: 8081
  config.vm.network "forwarded_port", guest: 3306, host: 3307
  config.vm.synced_folder "/Users/harry/Sites", "/var/www", create:true, owner: "www-data", group: "www-data"
end

16、cd到該目錄(非常重要)

17、執行添加BOX命令
vagrant box add debian8 debian8.box

18、打開BOX命令
vagrant up

然後所有的環境都已經準備好了。這個時候我們就可以在本機寫代碼,然後直接訪問虛擬機的就可以測試了。

PS:vagrant常用命令如下:
vagrant halt 關機
vagrant statue 當前虛擬機的狀態
vagrant global-status 全局虛擬機的狀態
vagrant destroy xxxx 刪除虛擬環境
vagrant box list 列出當前box列表
vagrant box xxxx remove 刪除box

順便說明一下哦,以上步驟一個都不能少,少了任何一個都會引起很多問題,以上步驟是本人踩了很多坑後總結的步驟,
如果不想踩坑的話就按照步驟執行吧。
 
配置中有什麼問題可以諮詢我
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章