Ansible 剧本用于部署到新服务器并从其他服务器中删除

Ansible 剧本用于部署到新服务器并从其他服务器中删除

我正在考虑编写一个剧本,当服务器位于某个组中时运行某项任务,当服务器不在组中时运行另一项任务。

假设我有 office1 及其所有服务器,并且有一个主 DHCP 服务器:

[office1]
server1
server2
server3

[dhcp]
server2

我想确保我只有一个 DHCP 服务器:

- include: tasks/add-dhcp.yml
  when: inventory_hostname in dhcp
- include: tasks/remove-dhcp.yml
  when: inventory_hostname not in dhcp

因此,当我将 DHCP 更改为 server3 时,它将安装在 3 上并从 2 中删除。当完成新的 DHCP 部署后,该卷将在所有 office1 服务器上运行。

对此有什么想法吗?这是一个坏主意吗?您将如何解决这个问题?

答案1

如果这种方法对你有用,那就采用它吧。定义配置的方式没有好坏之分。除此之外,你还可以使用变量。

但条件应该如下所示:

- include_tasks: tasks/remove-dhcp.yml
  when: `dhcp` not in group_names

group_names魔法变量其中包含执行目标所属的所有组的列表。

相关内容