手机版
你好,游客 登录 注册
背景:
阅读新闻

Vagrant 中高效的 Puppet 模块管理

[日期:2014-05-18] 来源:oschina.net   作者: [字体: ]

到现在我还记得首次尝试使用vagrant和puppet这两个工具来准备本地开发环境时候的场景。找出适当的方式来捆绑puppet模块与项目后一切都是很容易做到。基本上它可以通过三步阶段来实现。

1.运行"puppet module install "并将它们添加到 git repo (不是最棒的主意但相对简单)。

2.在项目中把puppet模块作为 git 的子模块添加好。这原来是更加麻烦,添加/删除/更新模块成为了真正的痛苦。

3.作为它们的依赖项 使用 puppet-librarian来 管理 puppet 模块。

第三个选项应该是最好的方法啦...我们可以现在只需简单地在“Puppetfile”里面就可以添加、 删除或者升级“puppet”的模块版本,运行"librarian-puppet install"功能就可以安装好模块。但有一点要警告说明的是用户只在他们自己的宿主机器上安装“rubygems”打包系统会带来其他的麻烦。既然这样当这种情况发生且必须要马上被处理的时候用户为什么不能只在vagrant盒子里面安装那些模块?

Vagrant.configure("2") do |config|
  config.vm.synced_folder ".", "/home/vagrant/my-project", :nfs => true
 
  config.vm.provision "shell", inline: "gem install librarian-puppet"
  config.vm.provision "shell", inline: "cp /home/vagrant/my-project/Puppetfile /tmp"
  config.vm.provision "shell", inline: "cd /tmp && librarian-puppet install --verbose"
 
  config.vm.provision "puppet" do |puppet|
    puppet.temp_dir = "/tmp"
    puppet.options = ['--modulepath=/tmp/modules']
  end
end

向虚拟机中的项目根路径里面增加“Puppetfile”文件和安装当运行“puppet”应用时指向模块目录的模块时,这种方法都是有效的。而且无论开发者熟悉“rubygems”打包系统与否和在跨多种应用环境时都能保持同样的安装效果,这种方法也同样作用很大。

Puppet 学习系列:

Puppet 学习一:安装及简单实例应用 http://www.linuxidc.com/Linux/2013-08/88710.htm

Puppet学习二:简单模块配置和应用 http://www.linuxidc.com/Linux/2013-08/88711.htm

相关阅读:

有关Puppet agent端三种备份恢复方案探讨研究 http://www.linuxidc.com/Linux/2013-07/87885.htm
选择更安全的方式注册你的Puppet节点 http://www.linuxidc.com/Linux/2013-07/87884.htm
通过配置SSH深刻理解Puppet的语法及工作机制 http://www.linuxidc.com/Linux/2013-07/87882.htm
Puppet利用Nginx多端口实现负载均衡 http://www.linuxidc.com/Linux/2013-02/79794.htm
CentOS(5和6)下Puppet的C/S模式实例 http://www.linuxidc.com/Linux/2011-12/50502.htm

Puppet 的详细介绍请点这里
Puppet 的下载地址请点这里

本文永久更新链接地址http://www.linuxidc.com/Linux/2014-05/101873.htm

linux
相关资讯       Puppet  vagrant  Puppet模块 
本文评论   查看全部评论 (0)
表情: 表情 姓名: 字数

       

评论声明
  • 尊重网上道德,遵守中华人民共和国的各项有关法律法规
  • 承担一切因您的行为而直接或间接导致的民事或刑事法律责任
  • 本站管理人员有权保留或删除其管辖留言中的任意内容
  • 本站有权在网站内转载或引用您的评论
  • 参与本评论即表明您已经阅读并接受上述条款