我在用着舵2.3(v.2.3.7~rc2~git201205021042)已经几个月了,我添加了一些 VM,但现在已被删除。
因此,我逐步搜索如何将其从舵节点列表中删除。我猜想它在 LDAP 条目中,但可能也存在于某些文件/目录中,还有 Postgres?
附言:我知道这是 2.4 中的新/未来功能,但我不是 2.4 版本...
答案1
感谢您提供的步骤,也许这篇文章会帮助那些想要从舵中删除节点的人。
ldapdelete -D cn=Manager,cn=rudder-configuration -x nodeId=${NODEID},ou=nodes,cn=rudder-configuration -W
ldapdelete -r -D cn=Manager,cn=rudder-configuration -x nodeId=${NODEID},ou="nodes configuration",ou=rudder,cn=rudder-configuration -W
第三步,您应该搜索每个具有您的节点的对象:
ldapsearch -D cn=Manager,cn=rudder-configuration -b groupCategoryId=GroupRudder,ou=rudder,cn=rudder-configiration -W "(nodeId=${NODEID})"
检索每个 dn 结果并创建一个文件 (to_remove),如下所示:
dn: ${DN_RETRIEVED_BY_COMMAND}
changetype: modify
delete: nodeId
nodeId: ${NODEID}
下一顿午餐:
ldapmodify -D cn=Manager,cn=rudder-configuration -f to_remove.txt
最后,删除所有库存信息:
ldapdelete -r -D cn=Manager,cn=rudder-configuration -x nodeId=${NODEID},ou="accepted inventories",ou=inventories,cn=rudder-configuration
PS: 替换${NODEID}
为你的nodeId。
答案2
删除节点的最简单方法是升级到版本 2.4
在 Rudder 2.3 上,困难的方法需要修改 LDAP 树的内容:
- 确定要删除的节点的舵 ID(此 ID 可在“节点摘要”的舵信息部分找到)。为了举例说明,假设我想删除节点d2049764-bdd8-4aed-b116-167546ffa157
您必须连接到 LDAP 目录,并执行以下步骤:
- 在分支ou=节点,删除 RDN nodeId=d2049764-bdd8-4aed-b116-167546ffa157 的条目(这将删除此节点的入口点)
- 在分支ou=节点配置删除 RDN nodeId=d2049764-bdd8-4aed-b116-167546ffa157 的条目(这将删除已部署的承诺的缓存)
在每次进入在树上groupCategoryId=GroupRoot,ou=Rudder,从多值属性 nodeId 中删除值 d2049764-bdd8-4aed-b116-167546ffa157(如果存在)(这将从所有组中删除该节点)
最后,在ou=节点,ou=已接受库存,ou=库存找到具有 RDN nodeId=d2049764-bdd8-4aed-b116-167546ffa157 的条目
- 找到容器属性(应该是这样的machineId=55207ab4-a0bf-4772-8b72-cd10570a33fb,ou=机器,ou=已接受库存,ou=库存,cn=rudder-configuration)。
删除条目 DN:nodeId=d2049764-bdd8-4aed-b116-167546ffa157,ou=节点,ou=已接受库存,ou=库存,cn=rudder-configuration及其所有子条目(这将删除其库存)
如果只有一个节点链接到此机器(最常见的情况),则可以删除条目machineId=55207ab4-a0bf-4772-8b72-cd10570a33fb,ou=机器,ou=已接受库存,ou=库存,cn=rudder-configuration及其所有子条目,否则就不管它
要重新生成所有承诺并更正预期报告,您必须转到 Web 界面的“管理”窗格,在子菜单“策略服务器”中,点击清除缓存. 每份预期报告都将重新计算,以确保正确的合规计算。