制作 Vagrant Box 简明教程

/

前提:安装好 Vagrant 和 VirtualBox。

设置虚拟机

硬盘 VMDK(动态分配大小,最大40G足够了),禁用声卡和 USB(在开发中一般没用,启用只会浪费资源),网卡1连接方式设为 NAT,同时设置端口转发(名称:ssh,协议:TCP,主机 IP:127.0.0.1,主机端口:2222,子系统 IP:空白,子系统端口:22)

设置端口转发

加载安装盘在虚拟机中进行安装

以 debian Jessie netinstall.iso 为例。安装过程中的一些约定:Root Password: vagrant,Full Name: vagrant,User: vagrant,Password: vagrant,同时建议在选择安装软件时什么都不要选,debian 的软件包管理机制更加透明方便。

选择安装软件时什么都不要选

将 vagrant 用户添加到 sudoers 中

su -
vi /etc/sudoers

#  /etc/sudoers
vagrant	ALL=(ALL) NOPASSWD:ALL

#  测试,如成功则不用输入密码了
sudo pwd

升级所有已安装的软件

sudo apt-get update -y
sudo apt-get upgrade -y
#  重启
sudo shutdown -r now

设置 ssh server

mkdir -p /home/vagrant/.ssh
chmod 0700 /home/vagrant/.ssh
wget --no-check-certificate https://raw.github.com/mitchellh/vagrant/master/keys/vagrant.pub -O /home/vagrant/.ssh/authorized_keys
chmod 0600 /home/vagrant/.ssh/authorized_keys
chown -R vagrant /home/vagrant/.ssh
#  安装 openssh server
sudo apt-get install -y openssh-server
#  设置
sudo vi /etc/ssh/sshd_config

#  sshd_config
Port 22
PubKeyAuthentication yes
AuthorizedKeysFile %h/.ssh/authorized_keys
PermitEmptyPasswords no
PasswordAuthentication no

#  重启 sshd 服务
sudo service ssh restart

安装 Guest Tools

在“虚拟介质管理”的“虚拟光盘”中加载 VBoxGuestAdditions.iso

#  Server
sudo apt-get install -y gcc build-essential linux-headers-server
#  Desktop
sudo apt-get install -y gcc build-essential linux-headers-$(uname -r)

sudo mount /dev/cdrom /mnt 
cd /mnt
sudo ./VBoxLinuxAdditions.run

制作

sudo dd if=/dev/zero of=/EMPTY bs=1M
sudo rm -f /EMPTY
#  关机
sudo shutdown -h now
vagrant package

测试

vagrant box add test package.box
vagrant init test
vagrant up

Comments