我正在尝试通过此模块集成 Puppet 和 vSphere:
https://forge.puppetlabs.com/puppetlabs/vsphere
该模块允许您通过几行 puppet 代码创建服务器。
我有一个要克隆的虚拟机模板。它上面安装了 vmware 工具和 puppet 客户端。
节点启动后,但傀儡主机认为所有连续的克隆都是同一个节点,可能是因为它们具有相同的 SSL 证书。
那么这应该如何工作?我可以修复单个节点上的 SSL 问题,但我希望能够以自动化方式创建 100 个节点。
它看起来puppet resource vsphere_vm
应该显示客户机 IP,我想象它随后可以输入到 Puppet 中并从那里配置节点,但该命令目前没有产生任何 IP 信息。
一定有人使用这个 puppet vsphere 插件,并用它来自动启动节点。这也意味着一个更普遍的问题:如果您使用基于映像的虚拟化技术(如 vSphere),如何使用 puppet 自动创建和配置服务器?
值得注意的是,我正在使用 puppet enterprise 2015.2。
答案1
您必须检测 puppet 服务器使用哪些信息来检测相同节点并准备更改它的脚本。脚本将在启动新节点后立即准备运行并重新设置这些信息,puppet 服务器将认为这是新服务器并对其进行管理。
答案2
我有一个要克隆的虚拟机模板。它上面安装了 vmware 工具和 puppet 客户端。
节点启动后,但傀儡主机认为所有连续的克隆都是同一个节点,可能是因为它们具有相同的 SSL 证书。
要解决此问题,您需要一个具有 puppet 客户端但尚未使用 puppet 服务器生成 CSR 的模板。您可以将模板转换回虚拟机并删除(或重命名)客户端的 puppet ssl 目录(不确定它在 PE 2015.2 上存储在哪里,但在 Puppet v4 上它位于 / 下etc/puppetlabs/puppet/ssl
)。
然后在 Puppet 服务器上执行由模板生成的证书的puppet cert clean <name>
位置。<name>
将虚拟机转换回模板。现在,从此模板部署的任何虚拟机在运行后都将生成自己的 CSR puppet agent -t
。缺点是,每当生成 CSR 时,您都必须签署每个新证书。为了使其更自动化,您可以在服务器的 puppet.conf 文件中配置 puppet 服务器以自动签署证书autosign = true
。但是,不建议在生产环境中保留此设置。本文档更详细地介绍自动签名证书。