如何制作一个vagrant的base box 及安装 additions

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何制作一个vagrant的base box 及安装 additions相关的知识,希望对你有一定的参考价值。

1. 在物理机上安装好 ubuntu 系统,在此系统上安装 virtualbox
2. 下载一个需要的 ubuntu 版本的 ISO 镜像
3. 创建一个新的虚拟机
给虚拟机取一个名字 “develop”
确保分配足够的磁盘空间给虚拟机,我给了 20GB
确保默认的内存也不用太高,给 512M 即可,后续可以再调整
确保网络控制器设置程 NAT 模式,wield了端口转发正常工作(注意:这个是非常重要的一点)
4. 启动虚拟机,安装 ubuntu,确保配置如下(非强制的要求,如果打算分发该 box,建议还是按照如下的步骤来操作)

Hostname:develop
Domain: vagrantup.com
Root Password: vagrant
Main account login: vagrant
Main account password: vagrant
5.安装完毕后,进入虚拟机
6.根据自己需要,安装一些常用软件
sudo apt-get -y install vim
7.创建admin组
sudo groupadd admin
8.添加vagrant用户到admin组
sudo usermod -G admin vagrant
9.修改sudoers文件
sudo vim /etc/sudoers #添加或修改如下行(有些发行版还需Disable requiretty):
Defaults env_keep="SSH_AUTH_SOCK"
%admin ALL=NOPASSWD: ALL
10.安装puppet(chef没有计划装进去,如需要可安装ruby,rubygems,chef)
sudo apt-get install puppet puppetmaster
11.安装ssh
sudo apt-get install openssh-server
12.安装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
13.Install virtual box guest additions(为了共享文件夹,端口转发等)
(1) First, build the necessary packages. You may have to look these up
for your system, but they should be fairly similar. On Ubuntu and
Debian based systems they are as follows:
$ sudo apt-get install linux-headers-$(uname -r) build-essential
(2) Next, make sure to insert the guest additions image by using the
GUI and clicking on “Devices” followed by “Install Guest Additions.”.
Then run the following to mount the CD Rom:
$ sudo mount /dev/cdrom /media/cdrom
(3) And finally, run the shell script which matches your system. For linux on x86, it is the following:
$ sudo sh /media/cdrom/VBoxLinuxAdditions.run
If you didn’t install a Desktop environment when you installed the
operating system, as recommended to reduce size, the install of the
VirtualBox additions should warn you about the lack of OpenGL or Window
System Drivers, but you can safely ignore this.
14.清除缓存
sudo apt-get clean
15.关闭虚拟机,进入virtual box directory(~/VirtualBox VM/develop)
vagrant package --output develop.box --base develop
参考技术A 自己装虚拟机,做一个base box出来,以便使用。本文主要针对ubuntu的base box的制作。
步骤如下:(环境 OS:ubuntu12.04_Desktop virtualbox:4.1.12)
1.在物理机安装好ubuntu系统,在此系统上安装virtualbox
2.下载一个需要的ubuntu版本的iso镜像
3.创建一个新的虚拟机
给虚拟机起个名字为”vagrant-precise32″
确保您分配足够的磁盘空间,40GB足够了。
确保默认的内存分配也不用太高,建议360M。
如果不需要,禁用音频,USB控制器等。大多数应用程序都不需要播放音乐!因此,节约资源,禁用这些功能。
确保网络控制器设置为NAT,为了端口转发正常工作。
4.启动虚拟机,安装ubuntu,确保配置如下(非强制,如打算分发此box,建议遵循如下约定)
Hostname:vagrant-[os-name],例:vagrant-ubuntu-Steve
Domain: vagrantup.com
Root Password: vagrant
Main account login: vagrant
Main account password: vagrant
5.安装完毕后,进入虚拟机
6.根据自己需要,安装一些常用软件
sudo apt-get -y install vim
7.创建admin组
sudo groupadd admin
8.添加vagrant用户到admin组
sudo usermod -G admin vagrant
9.修改sudoers文件
sudo vim /etc/sudoers #添加或修改如下行(有些发行版还需Disable requiretty):
Defaults env_keep=”SSH_AUTH_SOCK”
%admin ALL=NOPASSWD: ALL
10.安装puppet(chef没有计划装进去,如需要可安装ruby,rubygems,chef)
sudo apt-get install puppet puppetmaster
11.安装ssh
sudo apt-get install openssh-server
12.安装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
13.Install virtual box guest additions(为了共享文件夹,端口转发等)
(1) First, build the necessary packages. You may have to look these up for your system, but they should be fairly similar. On Ubuntu and Debian based systems they are as follows:
$ sudo apt-get install linux-headers-$(uname -r) build-essential
(2) Next, make sure to insert the guest additions image by using the GUI and clicking on “Devices” followed by “Install Guest Additions.”. Then run the following to mount the CD Rom:
$ sudo mount /dev/cdrom /media/cdrom
(3) And finally, run the shell script which matches your system. For linux on x86, it is the following:
$ sudo sh /media/cdrom/VBoxLinuxAdditions.run
If you didn’t install a Desktop environment when you installed the operating system, as recommended to reduce size, the install of the VirtualBox additions should warn you about the lack of OpenGL or Window System Drivers, but you can safely ignore this.
14.清除缓存
sudo apt-get clean
15.关闭虚拟机,进入virtual box directory(~/VirtualBox VM/vagrant-precise32)
vagrant package –output ubuntu_32.box –base vagrant-precise32
总结:以上步骤完成后生成的ubuntu_32.box就可以拿来用了,用vagrant box add ,vagrant init等自己测试看看吧。本回答被提问者和网友采纳

vagrant box php centos 选 哪个

安装Vagrant 和 VirtualBox
3、在你本地的硬盘上创建一个用来存储Vagrant配置文件的目录,将 1 中下载的 centos-6.5-x86_64-base.box 镜像也放到这个目录里。
比如你创建的目录地址为: E:\\testvbox ,那么就将centos-6.5-x86_64-base.box 放到此目录下.
4、运行cmd命令,到命令行下,并且切换到 3 中创建的目录(testvbox)中。
命令:
cd E:/testvbox

5、在此目录(testvbox)中,依次执行下面的命令:
1).
vagrant box add dev centos-6.5-x86_64-base.box

PS: 上面的命令含义为:vagrant 是vagrant的命令,box为参数,add为添加一个box环境,dev为你要创建的box环境名称,centos-6.5-x86_64-base.box 为你下载的box环境镜像。
2).
vagrant init dev

PS: 上面的命令含义为:vagrant 是vagrant的命令,init为参数,初始化一个box环境,dev为你要初始化的box环境名称。
6、 这时,你会在当前目录下看到一个Vagrantfile文件,这个文件就是vagrant box环境的配置文件。编辑这个文件,你可以用记事本打开这个文件,修改如下几处:
1) . 第22行,去掉前面的#
# config.vm.network :forwarded_port, guest: 80, host: 8080
变为
config.vm.network :forwarded_port, guest: 80, host: 8080
2) . 第26行,去掉前面的#
# config.vm.network :private_network, ip: “192.168.33.10”
变为
config.vm.network :private_network, ip: “192.168.33.10”
PS: 这里是私有ip,只有你自己可以访问虚拟机,如果你想要配置局域网里面可以访问,那就不需要修改26行,保持原样,此时需要修改的是第31行
# config.vm.network :public_network
变为
config.vm.network :public_network, ip: “192.168.8.88”
PS: ip可以配置也可以不用配置,虚拟机可以自动DHCP。我这里是自己配置了的,因为每次自动配置ip地址变来变去不方便.
3) . 第41行
# config.vm.synced_folder “../data”, “/vagrant_data”
改为
config.vm.synced_folder “E:/www”, “/var/www/html”
PS:
1). E:/www 这个为你本地的项目目录,这个目录会自动挂在到box环境中去
2). /var/www/html为虚拟开发环境中的挂载点。
7、最后,修改本地hosts文件,将第6步中第“2)”中的ip地址映射到相应的域名下,将如下添加到你本地的hosts中:
192.168.33.10 www.testvbox.com
PS: 想映射就映射不想映射就IP地址访问好了.
8、最后, 在你的box环境的配置目录(testvbox)下的cmd中运行,如下命令,就可以开启你的虚拟化环境了
vagrant up

至此,启动完成之后,vagrant的虚拟化开发环境就配置完成了.那么此时在浏览器里面就可以访问了.。
PS: 额外奉送:
# vagrant halt 关闭虚拟化开发环境
# vagrant reload 修改配置文件后,重启虚拟化开发环境
# vagrant box list 查看当前可用的虚拟化开发环境
# vagrant box remove boxname 删除指定的box环境
# vagrant package 当前正在运行的VirtualBox虚拟环境打包成一个可重复使用的box
# vagrant up 启动虚拟机
# vagrant destroy 销毁虚拟机
PS: 如果发现图片和JS,css文件改过之后没有任何反映,那就是这些被缓存了,
这个时候重启虚拟服务都是没有用的.应做如下修改:
如果是nginx环境 ,那么就找到 nginx.conf ,把里面的 “sendfile on” 修改为 “sendfile off”.
当然,如果你使用Apache也可能遇到类似的问题,那么同样也有类似的配置需要修改为:
EnableSendfile off
PS:
因为liunx不是太熟悉,仅记录个人常使用的一些命令.
apache目录 配置文件
vim /etc/httpd/conf.d/vhost.conf
/etc/init.d/httpd restart
nginx目录 配置文件
vim /etc/nginx/conf.d/virtual.conf
/etc/init.d/nginx restart
配置网卡
vim /etc/sysconfig/network-scripts/ifcfg-eth1
/etc/init.d/network restart
参考技术A vagrant box php centos 选 哪个
1、搜索vagrantbox,如:百度vagrantbox。

2、复制VagrantBox的url,以CentOS6.4 x86_64 Minimal为例。
◆在vagrantbox页面查找CentOS6.4 x86_64 Minimal的url,该url可用于下载vagrantbox文件。
3、添加VagrantBox。
◆Vagrant添加VagrantBox有两种方式:离线添加与在线添加。演示两种添加方式:在D盘创建_vagrant_centos6.4,重命名_centos6.4,在E盘创建vagrant_centos6.4,重命名为centos6.4。
3.1、离线添加VagrantBox。
(1)使用url下载VagrantBox,如:CentOS-6.4-x86_64-v20131103.box。
(2)新建Vagrant工程目录,如:_vagrant_centos6.4。
(3)将CentOS-6.4-x86_64-v20131103.box文件拷贝到_vagrant_centos6.4目录下。
(4)离线添加VagrantBox,命令语法:vagrant box add title box,如下图。
title:为添加的VagrantBox进行重命名,命名方式不限。
box:为下载的VagrantBox文件。
(5)查看Vagrant box,输入命令:vagrant box list。
3.2、在线添加VagrantBox。
(1)进入Windows的“命令提示符”界面。
(2)创建一个Vagrant工程目录:mkdir vagrant_centos6.4。
(3)进入Vagrant工程目录:cd vagrant_centos6.4。
(4)在线添加VagrantBox;命令语法:vagrant box add title url,如下图。
title:为添加的VagrantBox进行重命名,命名格式不限。
url:为CentOS-6.4-x86_64-v20131103.box下载地址(第二步Copy的url)。
(5)查看Vagrant box,输入命令:vagrant box list。
4、初始化Vagrant工程,以”_centos6.4”为例。
◆初始化完成后会生成Vagrantfile文件,Vagrantfile是配置vagrant的重要文件。如:配置网络、端口、SSH等。
(1)初始化Vagrant工程,命令语法:vagrant init title,如下图。
title:为config.vm.box重命名,title可略则默认的config.vm.box=”base”。
(2)查看当前目录是否存在Vagrantfile文件。
5、启动虚拟机”_centos6.4”。
◆启动:vagrant up ◆关闭:vagrant halt ◆重启:vagrant reload
注:vagrant命令需在对应虚拟机目录下运行才有效。
6、运行VirtualBox,查看虚拟机现状(可略)。
7、使用SSH协议连接虚拟机”_centos6.4”。
(1)vagrant ssh连接。

(2)Putty工具连接。
注:虚拟机的默认IP|Port:127.0.0.1:2222 用户:vagrant | root 密码:vagrant
8、打包(package)虚拟机”_centos6.4”。
◆通过SSH连接到虚拟机,进入Centos6.4系统进行各种环境搭建和配置;完毕后则需要将该虚拟机进行打包。
◆打包虚拟机输入命令:vagrant package --output Centos6.4.box;打包方式很多在此不做介绍。
9、添加打包的虚拟机Centos6.4.box并运行该虚拟机。
(1)添加Centos6.4.box:vagrant box add Centos_6.4 Centos6.4.box。
(2)初始化VagrantBox:vagrant init centos_6.4。
(3)启动虚拟机centos_6.4:vagrant up。本回答被提问者采纳

以上是关于如何制作一个vagrant的base box 及安装 additions的主要内容,如果未能解决你的问题,请参考以下文章

如何制作一个vagrant box

基于VMware Workstation构建Vagrant base box

基于VMware Workstation构建Vagrant base box

vagrant box php centos 选 哪个

Vagrant - 使用 Packer 制作 Box 虚拟机镜像

vagrant 怎么安装 lnmp 环境