我们使用 puppet-enc-ec2 ENC 模块通过 AWS EC2 标签指定 puppet 节点的角色和环境。
有没有办法通过 EC2 标签强制执行 noop?另一个模块什么的?我还没有找到一些不错的代码?
运行开源 Puppet v7
蒂亚!
我尝试在实例上设置 noop:true 标签。我没想到这会起作用,但事实并非如此。我的搜索还没有带来任何有希望的结果。
有没有办法通过 EC2 标签强制执行 noop?
可能。
首先,puppet-enc-ec2记录了它产生的效果
所有 EC2 标签均可作为受信任的顶级变量提供给 Puppet,并带有
前缀。ec2_tag_
这意味着您可以访问 Puppet 清单中的标签值。
为了利用它,你建议
另一个模块或其他什么?
事实上,是的。或许。您似乎正在寻找 trlinkin-noop。它提供了一个函数
noop()
,当调用该函数时,会使当前范围内的所有资源成为 noop(免责声明:我个人没有使用过这个模块或其函数)。对于您想要的特定行为,我想您会在站点清单的顶部范围中放置适当的代码,以对目标节点的 EC2 标记执行您想要的任何测试,并且当条件合适时,调用 noop()
。
但是,存在一个潜在的问题:该模块有点旧,Forge 上最新版本的元数据仅通过 Puppet 5 报告兼容性。但是,在其 GitHub 存储库中存在一个未解决的问题和相关的拉取请求:通过 Puppet 8 扩展兼容性。因此,虽然您可能无法从 Forge 中下载一个版本,但不需要做太多工作就能获得一个可以使用的版本。