天天看點

運維編排場景系列----Autoscaling 通過LifecycleHook在執行個體啟動時安裝軟體

本文将為您介紹如何通過LifecycleHook實作彈性伸縮組中執行個體啟動/釋放時執行指令

相關介紹

lifecycleHook通過關聯OOS模闆的方式來實作到執行個體執行指令的工作,關于lifecycleHook與OOS如何協作,你可以檢視兄弟文章

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

關聯模闆

ACS-ESS-LifeCycleRunCommand模闆負責執行指令的操作。

模闆具有如下行為:

  1. 根據指定的執行個體ID清單并發到執行個體執行指令

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

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

參數指定

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

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

注意事項

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

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

  1. metadata必須為JSON字元串格式;
  2. metadata中的鍵,必須與OOS模闆參數一一對應;
  3. OOS模闆中不存在預設值的參數必須指定,存在預設值的參數可選擇是否指定以覆寫預設值

角色配置

OOS服務使用OOSServiceRole做為預設角色,您需要建立并給該角色相應的權限以使OOS完成相應的操作

配置步驟如下:

1.在Ram控制台建立角色并指定受信服務為運維編排服務

運維編排場景系列----Autoscaling 通過LifecycleHook在執行個體啟動時安裝軟體

2.為OOS配置相應的權限 這裡需要ECS和ESS的Full權限

運維編排場景系列----Autoscaling 通過LifecycleHook在執行個體啟動時安裝軟體

操作步驟

運維編排場景系列----Autoscaling 通過LifecycleHook在執行個體啟動時安裝軟體
運維編排場景系列----Autoscaling 通過LifecycleHook在執行個體啟動時安裝軟體
運維編排場景系列----Autoscaling 通過LifecycleHook在執行個體啟動時安裝軟體

手動将執行個體擴容到4台 然後看看執行結果

運維編排場景系列----Autoscaling 通過LifecycleHook在執行個體啟動時安裝軟體

執行後我們可以看到在OOS控制台有相應的一條執行并執行成功了,可以點詳情看執行内容

運維編排場景系列----Autoscaling 通過LifecycleHook在執行個體啟動時安裝軟體

總結

至此我們完成了在執行個體啟動時到執行個體執行指令的整個操作,相應的,您還可以再移除執行個體之前到執行個體執行指令,借此您可以完成安裝軟體和優雅停機的整個過程。

系列文章

主題文章

阿裡雲重磅釋出雲上自動化利器——運維編排OOS

最佳實踐

玩轉運維編排服務的權限:Assume Role+Pass Role 阿裡雲運維編排新功能:一鍵批量克隆ECS 批量在多台ECS内執行指令

場景系列

運維編排場景系列----更新ECS鏡像 運維編排場景系列----給ECS執行個體自動打TAG 運維編排場景系列----從執行個體中拷貝檔案到OSS 運維編排場景系列----給執行個體加到SLS機器組 運維編排場景系列----檢測MFA功能狀态 運維編排場景系列----每日統計多Region執行個體的運作狀态 運維編排場景系列----如何使用jq 運維編排場景系列----分批到機器上運作指令 運維編排場景系列----更新鏡像後自動更新伸縮配置鏡像 運維編排場景系列----向Linux執行個體上傳檔案 運維編排場景系列----運作遠端shell腳本 運維編排場景系列----在ECS執行個體上運作Ansible-playbook 運維編排場景系列----下載下傳JVM堆棧到OSS 運維編排系列場景----将執行個體的固定公網IP轉換為其它新EIP 運維編排場景系列----自動定時更新臨時帶寬 運維編排場景系列----批量更新雲助手用戶端 運維編排系列場景----批量釋放執行個體 運維編排場景系列----ECS執行個體系統快照下載下傳到本地 運維編排場景系列----批量更換系統盤 運維編排場景系列----基于鏡像的日常釋出 運維編排場景系列----自動建立多個區域同類型存儲空間