使用 Vagrant,为什么 puppet 配置比自定义打包盒更好?

2024-05-07

我正在创建一个虚拟机来模仿我们的生产 Web 服务器,以便我可以与新开发人员共享它,让他们尽快上手。我已经阅读过 Vagrant 文档,但是我不明白使用通用基础盒并使用 Puppet 配置所有内容与打包已安装和配置所有内容的自定义盒相比有何优势。我能想到的就是;

使用 Puppet 与定制包装盒的优点

  • 轻松让每个人都了解最新情况 - 能够将清单放在下面 版本控制并共享存储库,以便其他开发人员可以 只需提取新的更新并重新运行木偶,即“流浪者规定”。
  • 环境记录在清单中。
  • 能够使用生产环境中定义的 puppet 模块来 确保相同的环境。

使用 Puppet 与定制包装盒的缺点

  • 编写清单比简单安装和安装花费更长的时间 配置定制包装盒。
  • 第一次构建虚拟机需要更长的时间 puppet 而不是简单地下载一个定制的包装盒。

我觉得我一定遗漏了一些重要的细节,你还能想到更多吗?


优点:

由于依赖关系可能会随着时间的推移而发生变化,因此从头开始构建新的盒子将涉及手动删除软件包,或者扔掉盒子并再次手动重复安装过程。显然,您可以使用 bash 或其他类型的脚本来自动执行安装,但您将调用本机操作系统包管理器,这意味着它只能在您选择的操作系统上运行。换句话说,你被困在了里面;)

据我所知,Puppet(如 Chef)包含一种与操作系统无关的通用方法来安装软件包,这意味着清单可以在不同的操作系统上运行而无需修改。

此外,这些相同的脚本可用于配置生产计算机,这意味着开发计算机和生产计算机实际上是相同的。

缺点:

当您可能不打算切换操作系统或生产环境时,必须学习另一种 DSL。您必须决定这些优势是否值得您花时间进行设置。就我个人而言,我认为拥有一个抽象且可重复的包管理/配置策略将在未来为我节省大量时间,但是YMMV。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 Vagrant,为什么 puppet 配置比自定义打包盒更好? 的相关文章

  • 如何在 Puppet 模板中包含子模板

    我正在尝试在我的 Puppet 模块之一的模板中包含一个子模板 以下是我在基本模板中执行包含操作的方法 如果我使用 erb 命令行工具渲染它 效果很好 然而 在 Puppet 运行期间 导入会被默默地忽略 即基本模板在渲染的子模板应在的位置
  • Vagrant 超时

    有一些问题让我的流浪汉站起来 拿到箱子就跑vagrant init之后vagrant up命令我收到此消息 Bringing machine default up with virtualbox provider gt default Im
  • Nginx 没有将 websocket 升级响应传递回客户端?

    我在精确的 64 vagrant box 上使用 Nginx Websockets 并使用 c mono 作为应用程序服务器 目标是直接通过 Nginx 提供静态内容 并在同一端口上处理普通的 http 服务请求 在 service 上 和
  • 无法通过 SSH 访问 Vagrant VM(不使用 vagrant ssh)

    在准备调整结构部署脚本以与本地 Vagrant VM 配合使用时 我试图说服 VM 让我通过 SSH 连接到它而不使用vagrant ssh 我不断收到错误 我尝试了很多不同的设置组合 但这是最新的 Vagrant 文件 Vagrant c
  • 使用 Puppet 配置远程规则集

    我正在尝试使普罗米修斯自动化node exporter和我的普罗米修斯服务器 为了node exporter我已经编写了一个模块来安装所有需要的软件包 设置 ipaddress基于facter还有更多 现在我想确保收集到的信息 hostna
  • 在虚拟机共享目录上运行“grunt”

    将 Vagrant 与 Windows 主机和 Linux 客户机一起使用 grunt尝试运行作业时返回以下错误 据我了解 在主机 来宾共享目录中 此文件路径超出了 Windows 的 255 个字符限制 npm ERR Error EPE
  • Vagrant 提供,无法启动 grunt

    我正在尝试让 vagrant 安装 nodejs 正常运行所需的所有内容 然后在节点项目的根文件夹上执行 nohup grunt server 之后 我期望服务器在端口 3030 上侦听 但事实并非如此 如果在配置后我这样做 流浪者 ssh
  • 仅在配置时才在 Vagrantfile 中运行代码

    我想在运行时在屏幕上显示一些文本vagrant up or vagrant provision etc 当且仅当正在配置 为了vagrant up它仅在第一次运行 或者如果特别强制 provision 如何才能做到这一点 添加 shell
  • Ansible bitbucket 克隆存储库配置 ssh 错误

    我之前发布过这个问题 但那里的答案不再有效 总之 当使用 Ansible 配置我的 vagrant box 时 在尝试使用 ssh 克隆我的 bitbucket 私有存储库时 我遇到了一个神秘的错误 该错误指出 权限被拒绝 公钥 然而 如果
  • 在 mac-os-x Yosemite 上调用“npm”时,Jenkins 构建步骤失败

    在开始之前 我想说我已经检查过这些答案 Jenkins 构建步骤在 npm install 上失败 https stackoverflow com questions 11564508 jenkins build step fails on
  • 如何在 Vagrant 中使用 VirtualBox 创建具有两个 CPU 的虚拟机?

    在 Windows 7 64 位上尝试启动 VM Ubuntu 32 位 尽管添加了以下内容 但我仍无法让我的虚拟机显示两个核心modify vm我的 Vagrantfile 中的命令 我的 Vagrant 版本是 1 2 2 mode r
  • Vagrant 错误:无法挂载 VirtualBox 共享文件夹(Guest Additions、vboxsf)

    问题 我在 Windows 10 上安装了 Vagrant 这样我就可以在虚拟机中创建个人本地开发环境 我读到的有关 Vagrant 的所有内容都表明我什至可以启动多个系统并通过 NAT 端口转发测试它们之间的通信 但首先 我只想在对其余部
  • Homestead 无法远程访问第二个站点

    我的一个站点设置正常 但第二个站点无法远程访问 My YAML ip 192 168 10 10 memory 2048 cpus 1 provider virtualbox authorize ssh id rsa pub keys ss
  • 如何在公网访问Vagrant Box

    我在 vagrant 内的 e box 上创建了 在 Vagrantfile 中 我将网络指定为 Create a private network which allows host only access to the machine u
  • vagrant 仅在第一次“vagrant up”时询问密码

    我为 CentOS 6 6 制作了自定义的 vagrant box 我的问题是 为什么当我第一次 流浪 时 流浪者总是需要密码 这是控制台日志 vagrant up Bringing machine ns up with virtualbo
  • 开发/生产中的 Ansible 服务器/组

    我所处的情况是看不到正确的使用方法 我有多个分配了不同角色的服务器 分布在多个组中 与生产 登台环境相比 我在本地 Vagrant 环境中遇到了一些使用 group vars 的困难 在生产中 有更多的服务器 分配的组更少 在我的 Vagr
  • Vagrant Berkshelf - 架子路径?

    是否可以设置 berkshelf 插件放置其安装的说明书的路径 如在 berkshelf 文件夹中 我运行的是 Windows 7 我目前正在尝试使用 opscode 说明书将 mysql 服务器安装到虚拟机 并且在工作中他们将 HOMED
  • 在 %PATH% 的任何目录中都找不到 `ssh` 可执行文件

    ERROR c Users dhawal vora gt vagrant ssh ssh executable not found in any directories in the PATH variable Is an SSH clie
  • 在 Travis-CI 中启动 Vagrant VM

    如何使用 Vagrant 启动 Virtualbox 虚拟机特拉维斯 CI https travis ci org 我知道有时不支持在虚拟机内启动虚拟机 但也有报道成功 https www lewuathe com travisci vag
  • Vagrant 盒子无法找到错误

    我正在尝试使用虚拟盒设置虚拟机 我已经在我的 Windows 7 64 位机器上安装了 Virtual Box 和 vagrant 我还使用puphpet搭建了一个环境 但每当我尝试安装盒子 ubuntu1404 x64 时 它都会抛出错误

随机推荐