天天看點

AutoScaling 通過lifecycleHook自動添加Redis白名單

彈性伸縮核心資料庫元件不包含Redis執行個體,想要自動化配置伸縮組執行個體到Redis白名單中,是一件相當麻煩的事情。彈性伸縮與OOS運維編排合作,通過lifecycleHook的方式為大家提供了一種簡單,可靠的自動化添加Redis白名單的方案。

OOS 簡介

什麼是OOS

Operation Orchestration Service,簡稱OOS,是全面、免費的雲上自動化運維平台,提供運維任務的管理和執行。典型使用場景包括:事件驅動運維,批量操作運維,定時運維任務,跨地域運維等,OOS為重要運維場景提供審批,通知等功能。OOS幫您實作标準化運維任務,進而實踐運維即代碼(Operations as Code)的先進理念。關于OOS更詳細的介紹請查閱

運維編排服務

OOS核心概念

模闆:

OOS通過模闆來定義具體的運維動作。OOS為使用者提供了大量的通用模闆來應對豐富的運維場景,同時,OOS允許使用者友善的建立和修改模闆來實作自定義運維動作。例如,ACS-ESS-LifeCycleModifyRedisIPWhitelist為使用者提供了将彈性伸縮建立出來的執行個體的private ip添加Redis白名單的運維動作。關于模闆的定義與文法,請檢視

模闆

執行:

模闆定義了一個具體的運維動作,通過模闆,我們可以建立出一個執行,即按照模闆中定義的任務按照一定的順序依次執行。我們可以手動觸發一次執行,并觀察其運作結果和狀态是否符合預期,然後再将其應用于自動化流程。關于OOS執行的更多内容請檢視

執行

關聯模闆

模闆介紹

ACS-ESS-LifeCycleModifyRedisIPWhitelist模闆負責添加/移除Redis白名單操作。當您需要實作自動化添加/移除Redis白名單操作時,您需要針對擴縮容流程分别設定兩條OOS類型lifecycleHook。

模闆具有如下行為:

  1. 根據指定的執行個體ID清單擷取Private IP清單;
  2. 将Private IP清單添加/移除Redis執行個體IP清單;

該模闆同時支援回調功能:

  1. 執行成功時,通過回調通知lifecycleHook繼續執行挂起的伸縮活動;
  2. 執行失敗時,通過回調通知lifecycleHook復原挂起的伸縮活動;
  3. 當無回調時,lifecycleHook挂起的伸縮活動将在逾時後,執行hook指定的政策。

參數指定

使用者可以建立類型為OOS的lifecycleHook,并選擇OOS系統模闆ACS-ESS-LifeCycleModifyRedisIPWhitelist。在選擇了指定的系統模闆之後,你需要為模闆運作配置合适的參數,例如目标Redis執行個體的ID,執行個體ID清單,lifecycleHook ID資訊等。由于執行個體ID清單,lifecycleHook ID等資訊隻有在運作時才能擷取到,你需要通過僞參數的提供占位符資訊,支援的僞參數資訊如下:

  1. ${scalingGroupId},目前伸縮活動所屬的伸縮組id;
  2. ${instanceIds},目前伸縮活動關聯的執行個體清單;
  3. ${regionId},目前伸縮活動執行的地域;
  4. ${lifecycleActionToken},伸縮活動的等待狀态辨別符,用于提前結束目前的挂起活動;
  5. ${lifecycleHookId},關聯生命周期挂鈎id。

注意事項

使用ACS-ESS-LifeCycleModifyRedisIPWhitelist模闆時您需要注意:

  1. 當您建立該模闆的lifecycleHook時,您需要将伸縮組中存量的執行個體清單手動添加到Redis白名單中,否則,當移除一個Redis白名單中不存在的執行個體私網IP時,将出現錯誤。

當指定生命周期挂鈎關聯一個OOS模闆時,使用者需要通過生命周期挂鈎的通知辨別(NotificationMetadata,簡稱metadata)為建立OOS執行指定所需的參數。針對OOS模闆的metadata,你需要注意:

  1. metadata必須為JSON字元串格式;
  2. metadata中的鍵,必須與OOS模闆參數一一對應;
  3. OOS模闆中不存在預設值的參數必須指定,存在預設值的參數可選擇是否指定以覆寫預設值。
  1. OOS模闆通過扮演指定的角色 OOSServiceRole 執行關聯的運維操作,是以您需要確定該角色存在,并具有相應的權限。

最佳實踐

控制台使用

下面以控制台建立自動添加Redis白名單的OOS類型lifecycleHook為例進行使用介紹。

首先,您需要确定OOS模闆扮演的角色 OOSServiceRole 存在,并具有相應的權限,否則您需要首先建立該角色。

登入

RAM控制台

,點選建立角色。

AutoScaling 通過lifecycleHook自動添加Redis白名單

角色類型選擇 阿裡雲 服務.

AutoScaling 通過lifecycleHook自動添加Redis白名單

角色名稱必須為 OOSServiceRole, 授信服務選擇 運維編排服務。點選完成進行建立。

AutoScaling 通過lifecycleHook自動添加Redis白名單

為角色添加操作權限。

AutoScaling 通過lifecycleHook自動添加Redis白名單
AutoScaling 通過lifecycleHook自動添加Redis白名單

針對擴容流程建立類型為OOS模闆的生命周期挂鈎,這時,彈框提示您選擇OOS模闆,這裡需要選擇系統模闆ACS-ESS-LifeCycleModifyRedisIPWhitelist。

AutoScaling 通過lifecycleHook自動添加Redis白名單

接下來,您需要填充模闆使用的參數,此處已經為您自動填充了部分僞參數,您隻需要填寫目标Redis執行個體ID,同時選擇modifyMode為Append。點選确認,核實您傳入的參數。

AutoScaling 通過lifecycleHook自動添加Redis白名單

點選建立執行,将回到建立lifecycleHook的彈框。

AutoScaling 通過lifecycleHook自動添加Redis白名單

再次點選建立生命周期挂鈎,完成建立。

此時您可以執行一條擴容伸縮規則,并在

OOS控制台

觀察模闆的執行過程。

AutoScaling 通過lifecycleHook自動添加Redis白名單