Ansible/Chef/Puppet 管理个人虚拟机

Ansible/Chef/Puppet 管理个人虚拟机

是否有意义?

我知道当我们有许多服务器/虚拟机时它很有用,但我想使用这些工具来管理我的个人虚拟机。

我正在使用 virtualbox。有时我必须用 Ruby 编写一些东西,稍后用 Python 编写,有时我需要完整的 Android SDK 或 Java 等。一两个月后,我的 VM 就一团糟,最后我只能用一个新的,一切从头开始。我不是 bash 专家,也没有所有这些花哨的 bash 脚本来为我做所有事情,这就是我寻找其他东西的原因。

我需要一些东西来组织我的软件/依赖项等。我想到了一个主意。为什么我不能使用 vagrant 来生成我的虚拟机,使用 Ansible/Chef/Puppet 来管理软件,但你们觉得这有意义吗?我没有使用这些工具(Ansible/Chef/Puppet)的经验,我只是阅读了关于所有这些工具的一些简短说明,每个人都说“有很多东西要学”……Ansible 看起来是最简单的,而 Puppet 最难……

我不知道这是否很多,但我每周使用一台虚拟机,之后我想从 chef/ansible/pupet 脚本中挑选最有趣的东西(一些配置、一些已安装的软件),将它们移动到我的脚本并销毁虚拟机。当我需要它时,我想生成它,选择 recipe/puppet、ansible 脚本并自动安装所有内容。

您能给我一些建议吗?这些工具值得使用吗?还是旧的普通 bash 脚本 + apt-get/aptitude 最好?

我主要使用基于 Debian/Ubuntu/Mint 的虚拟机。有时也使用 Fedora/CentOS。

答案1

我亲自这么做。

我不会谈论 Puppet 是否更难或更容易,但这是我使用的工具,并将在这里进行解释。

它有几个优点:

  • 清单文件的版本控制:您的需求会发生变化。您可能需要您的 VM 附带 ruby​​ 软件包,并在稍后进行一些额外的配置。Puppet 作为 Vagrant 提供程序(正如您提到的另一个),将允许您始终使用您对清单所做的最新更新来生成 VM

  • 享受社区贡献:您提到的所有软件都有一个很棒的社区,您可以享受他们所有的贡献,这将为您节省大量的重复工作,并让您直接集中精力。

  • 不必担心失败或配置错误:虚拟机很便宜。真的。删除虚拟机就像是重新安装一个虚拟机vagrant destroyvagrant up然后你就可以回到工作状态的虚拟机上。这样,如果出现问题,你就不会担心/也不会浪费大量时间

  • 共享环境:我知道你说的是个人的,但如果明天你想和朋友一起开始一个需要大量配置的项目,这个模式将允许你向他提供你的清单,他将立即启动并运行

我肯定我漏掉了一些要点,但使用 Vagrant + Puppet 确实改变了我的工作流程,这是值得的。两者都在你提到的平台上运行良好。

相关内容