puppet vagrant 管理VirtualBox 虚拟机
[导读]
运维人员经常需要给开发人员分配机器,搭建各种开发环境,还得维护开发机器,如果开发人员越多,
需要更多的开发机器,有没有简单的方案来解决这些问题.这里就是为大家vagrant.
vagrant大家可能不熟悉,vagrant 是使用的Oralce 公司的VirtualBox 建立快速,便携式,
动态配置的虚拟机.vagrant 可以给开发人员提供一个功能齐全的web开发环境,
vagrant 项目主页地址为:http://vagrantup.com,vagrant 可以和puppet ,chef等结合,
实现虚拟机管理自动化.
[说明]
本次是在ubuntu 11.10上进行测试的.其它操作系统可以参阅官方安装文档,基本步骤都差不多.
[vagrant 安装过程]
1.安装virtualboxapt-get install virtualbox
2.安装vagrant 和Veewee(veewee此为可选安装)
gem install vagrant
gem install veewee
3.vagrant 增加要安装的虚拟机
vagrant box add centos-5.7 http://packages.vstone.eu/vagrant-boxes/centos-5.8-64bit-latest.box
注意: vagrant box add
box 可以为本地文件,也可以为远程的文件,上面的命令会下载centos-5.8-64bit-latest.box .
box是保存在~/vagrant.d/boxes/ 目录下.如果要存放在到其它目录,可以将文件mv 到目标目录下,
并做个软链接即可.
我们看下 ~/vagrant.d/boxes/目录下有哪些文件?
ls /root/.vagrant.d/boxes/
centos-5.7
ls /root/.vagrant.d/boxes/centos-5.7/
box-disk1.vmdk box.ovf Vagrantfile
[vagrant 使用过程]
下载完成后,我们看下可用的box 有哪些?
#vagrant box list
centos-5.7
接下来我们创建工程目录结构,用来保存puppet 的代码,以及puppet 模块目录.
mkdir -p /root/example/{manifests,modules}
cd example
初始化box .
root@test1:~/example# vagrant init centos-5.7
如果我们不加参数centos-5.7,默认名为base.
接下来我们配置相关环境:
cat Vagrantfile
将配置文件纳入版本控制:
root@test1:~/example# git init
在manifests目录下建立init.pp,可以将写好的模块,放到modules目录下,简单示例:
cat manifests/init.pp
group { "puppet":
ensure => "present",
}
File { owner => 0, group => 0, mode => 0644 }
file { ‘/etc/motd’:
content => “Welcome to sky grant-built virtual machine!
启动box
root@test1:~/example# vagrant up
[default] VM already created. Booting if it's not already running...
[default] Clearing any previously set forwarded ports...
[default] Forwarding ports...
[default] -- 22 => 2222 (adapter 1)
[default] Creating shared folders metadata...
[default] Clearing any previously set network interfaces...
[default] Booting VM...
[default] Waiting for VM to boot. This can take a few minutes.
[default] VM booted and ready for use!
[default] Mounting shared folders...
[default] -- v-root: /vagrant
[default] -- manifests: /tmp/vagrant-puppet/manifests
[default] -- v-pp-m0: /tmp/vagrant-puppet/modules-0
[default] Running provisioner: Vagrant::Provisioners::Puppet...
[default] Running Puppet with /tmp/vagrant-puppet/manifests/init.pp...
notice: /Stage[main]//File[/etc/motd]/content: content changed '{md5}d41d8cd98f00b204e9800998ecf8427e' to '{md5}7162446602331ff93e480d67d604a701'
notice: /Stage[main]/Rsync/File[/etc/rsync]/ensure: created
notice: /Stage[main]/Rsync/Package[rsync]/ensure: created
大概就两到三分钟就好,我们现在连到虚拟机(box)
root@test1:~/example# vagrant ssh
Last login: Fri Apr 27 05:17:14 2012 from 10.0.2.2
Welcome to sky grant-built virtual machine!
这里如果我们修改了manifests下的init.pp文件,那要怎么执行,可以使用如下命令!
root@test1:~/example# vagrant provision
[default] Running provisioner: Vagrant::Provisioners::Puppet...
[default] Running Puppet with /tmp/vagrant-puppet/manifests/init.pp...
notice: /Stage[main]/Rsync/Tidy[/etc/rsync]: Tidying File[/etc/rsync]
如果修改了Vagrantfile的其它配置可以使用vagrant reload 生效.
更多用法与参考,可以参阅官方文档http://vagrantup.com/docs/provisioners/puppet.html
[vagrant 使用总结]
使用vagrant 可以快速构建虚拟机,如果要大量的虚拟机,非常方便从本地文件重构,或者从网上下载.box文件.
配置比较简单.可以节约大量时间和精力.vagrant的用法官网有详细说明,至此我们可以使用VirtualBox 给
开发人员作为开发机.当然你的宿主机NB 的话,可以开多个虚拟机.想怎么折腾就怎么折腾.感兴趣的同学
可以比较Xen的用法与vagrant有用法,也可以比较虚拟机之间的性能差异.本文同步更新至
http://www.puppetfans.com/thread-270-1-1.html,欢迎讨论!
建议继续学习:
- 使用Apache 和Passenger来运行puppetmaster (阅读:6878)
- Win7 + VirtualBox安装Mac OS X雪豹操作系统图文详解 (阅读:5152)
- 自动化运维之企业实际案例分析 (阅读:3745)
- puppet使用rsync来同步文件教程 (阅读:3250)
- DevOps之Puppet (阅读:2930)
- 如何有效运行puppet cron任务以及如何触发运行puppet (阅读:2941)
- puppet运维之使用自定义函数 (阅读:2594)
- puppet extlookup 和puppet hiera使用 (阅读:2205)
- puppetmaster集群解决方案之puppet客户端共享一张证书 (阅读:1958)
- puppet 手册检查puppet配置文件和使用puppet tags (阅读:1621)
扫一扫订阅我的微信号:IT技术博客大学习
- 作者:sky 来源: MySQLOPS 数据库与运维自动化技术分享
- 标签: puppet vagrant VirtualBox
- 发布时间:2012-05-12 22:39:58
- [56] Oracle MTS模式下 进程地址与会话信
- [56] IOS安全–浅谈关于IOS加固的几种方法
- [55] 如何拿下简短的域名
- [54] 图书馆的世界纪录
- [52] android 开发入门
- [52] Go Reflect 性能
- [50] 读书笔记-壹百度:百度十年千倍的29条法则
- [49] 【社会化设计】自我(self)部分――欢迎区
- [38] 程序员技术练级攻略
- [33] 视觉调整-设计师 vs. 逻辑