Rundeck ansible inventory:静态而不是动态

Rundeck ansible inventory: static instead of dynamic

已部署 Rundeck (rundeck/rundeck:4.2.0) 使用 Ansible 资源模型源导入和发现我的库存。有 300 个节点,据统计,其中约 150 个 accessible/online,其余节点离线(IOT 设备)。一切正常。

我的挑战是在创建作业时我只能分配那些在线的节点,而我想分配所有节点(包括那些离线的节点)并只为失败的节点继续重试作业。只有这样我才能跟踪部署的完整性。理想情况下,我希望 Rundeck 足够智能,以便在我的节点恢复在线后立即自动部署作业。

任何 ideas/hints 如何实现?

谢谢,

最简单的方法是使用 health checks 功能(仅适用于 PagerDuty Process Automation On-Prem,以前称为“Rundeck Enterprise”),这样您就可以仅对“健康”(向上)个节点。

使用这种方法(例如:针对所有节点配置命令健康检查),您可以仅为“up”节点(来自全局节点集)分派作业,这可以使用 .*作为节点过滤器,!healthcheck:status: HEALTHY 作为排除节点过滤器。如果任何“离线”节点“打开”,filter/exclude 过滤器应该自动工作。

在 Ansible/Rundeck 集成中,它使用以下环境 variable 工作:ANSIBLE_HOST_KEY_CHECKING=False 或在 ansible.cfg 文件上使用 host_key_checking=false(位于 [defaults] 节)。

这样,您可以看到 Rundeck 节点中的所有 ansible 主机,并且您的 commands/jobs 应该只为在线节点分派,如果任何“离线”节点改变了它们的状态,过滤器应该工作。