搭建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

顺便说明一下哦,以上步骤一个都不能少,少了任何一个都会引起很多问题,以上步骤是本人踩了很多坑后总结的步骤,
如果不想踩坑的话就按照步骤执行吧。
 
配置中有什么问题可以咨询我

你可能感兴趣的:(项目管理,vagrant)