簡體   English   中英

根據目標組健康檢查狀態更改 Ansible 動態庫存訂單

[英]Changing Ansible dynamic inventory order based on target group health check status

我正在嘗試通過 Ansible 在 ALB 后面的 AWS EC2 2 節點集群上設置滾動部署。 對於串行的每個節點,粗略的過程是這樣的——

+----------+   +----------+   +----------+
|Remove app|   |Redeploy  |   |Add back  |
|from load |-->|new app   |-->|to load   |
|balancer  |   |          |   |balancer  |
+----------+   +----------+   +----------+

我使用 Ansible 動態清單來選擇我的節點,默認情況下它們按 IP 地址排序。 現在在部署之前考慮這 4 個場景——

  1. 兩個節點都健康。
  2. 節點 #1 運行狀況不佳,節點 #2 運行狀況良好。
  3. 節點 #1 是健康的,節點 #2 是不健康的。
  4. 兩個節點都不健康。

現在在場景 #3 下,我最終會刪除唯一的健康節點。 我如何避免這種情況?

要么在您的劇本中添加一個步驟來執行健全性檢查,如果剩余的健康節點數量少於一個,則不允許您從負載均衡器中刪除節點

或者

首先找出如何優先從負載均衡器中刪除不健康的節點。 能否將節點按健康檢查狀態分組,然后先處理不健康的節點? 或者交替更改排序順序,使其按健康檢查狀態而不是按 IP 地址?

作為替代方法 - 在刪除舊節點之前,您不能添加新節點嗎?

好的,既然你有一個healthy標志,用它來包含一個update角色:

- hosts: all
  gather_facts: yes
  tasks:
  - include_role:
      role: update
    when: not healthy
  - include_role:
      role: update
    when: healthy

這樣,首先處理不健康的。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM