设为首页 收藏本站
查看: 966|回复: 0

[经验分享] puppet vagrant 管理VirtualBox 虚拟机

[复制链接]

尚未签到

发表于 2015-10-12 12:03:28 | 显示全部楼层 |阅读模式

  

  [导读]
  运维人员经常需要给开发人员分配机器,搭建各种开发环境,还得维护开发机器,如果开发人员越多,
  需要更多的开发机器,有没有简单的方案来解决这些问题.这里就是为大家vagrant.
  vagrant大家可能不熟悉,vagrant 是使用的Oralce 公司的VirtualBox 建立快速,便携式,
  动态配置的虚拟机.vagrant 可以给开发人员提供一个功能齐全的web开发环境,
  vagrant 项目主页地址为:http://vagrantup.com,vagrant 可以和puppet ,chef等结合,
  实现虚拟机管理自动化.
  
  
  [说明]
  本次是在ubuntu 11.10上进行测试的.其它操作系统可以参阅官方安装文档,基本步骤都差不多.
  [vagrant 安装过程]
  1.安装virtualbox
apt-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,欢迎讨论!
    
  原创文章,转载请注明: 文章地址puppet vagrant 管理VirtualBox 虚拟机
  
  

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-125833-1-1.html 上篇帖子: virtualbox中硬盘复制导致找不到eth0的解决办法 下篇帖子: 如何在 Ubuntu Linux 中为 VirtualBox 开启 USB 支持
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表