用於部署到新伺服器並從其他伺服器中刪除的 Ansible playbook

用於部署到新伺服器並從其他伺服器中刪除的 Ansible playbook

我正在考慮擁有一個劇本,當伺服器位於群組中時運行某個任務,而當伺服器不在群組中時運行另一個任務。

假設我有一個包含所有伺服器的 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 上刪除。

有什麼想法嗎?這是一個壞主意嗎?你會如何解決這個問題?

答案1

如果這種方法對您有用,那就採用它。定義配置的方式沒有什麼好壞之分。除此之外,您還可以使用變數。

然而,條件應該如下所示:

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

group_names是一個魔法變數其中包含執行目標所屬的所有群組的清單。

相關內容