排程自動開關機Azure VM,在離峰時段節省您的荷包 - Azure Automation 9. November 2015 mandy Azure (0) 前言 本文介紹Azure Automation(自動化)服務的應用 - 排程開關機Azure VM,主要是因為要幫客戶節省雲端成本,而他們的VM可以允許在非用戶使用期間(e.g. 晚上十點半~清晨六點半)關閉。 概念 Automation Account - 自動化服務的帳戶 Runbook - 相當於一個script檔,一個Automation Account可包含多個Runbook-Runbook是以Windows Powershell或Windows Powershell Workflow為基礎,所有PS指令基本上都可以在Runbook上面使用。-若application或service有API,Runbook也可以取用這些資源。 如何編輯我的Runbook? 利用Azure Portal去新刪修 在本地編輯完成後匯入至Azure Automation 限制 目前Automation服務只有在以下地區才有,服務若都在不同的地區,仍可正常啟動,若靠近運用的Azure資源地區,會執行得比較快。 支援的地區(7 regions): 實作 建立Automation Account登入Azure管理介面→自動化→建立自動化帳戶: 輸入帳戶名稱及建立的地區: 建立Runbook左下角新增→自動化→RUNBOOK→快速建立→輸入RUNBOOK名稱,並建立在剛剛的Account底下: 編輯Runbook點選欲編輯的Runbook→「製作」→在workflow中貼上VM開機的語法: ※Azure VM關機語法請將Start-AzureVM的指令換成Stop-AzureVM※記得要代換以下語法的SubscriptionName & VMName & ServiceName inlineScript { $cred = Get-AutomationPSCredential -Name 'TaskCredential' Add-AzureAccount -Credential $cred Select-AzureSubscription -SubscriptionName "SubscriptionName" Start-AzureVM -Name VMName -ServiceName ServiceName} 完成編輯Runbook (關機語法請以此類推~) 加入認證上述語法中Get-AutomationPSCredential的Name指定為「TaskCredential」,因此我要新增一個認證(就是帳號密碼驗證),名稱為TaskCredential。編輯Runbook畫面→管理→加入設定: 選擇要加入的設定類型:加入認證 定義認證:名稱請設定為Get-AutomationPSCredential參數指定的Name(名稱) 定義認證:輸入使用者帳號密碼 ※注意:這邊請輸入Azure Active Directory使用者(也稱Azure Organization ID)的帳密因為Automation服務就是用AzureAD內的身份去跑的,且不可使用Microsoft Live ID(會出現指定的subscription不存在之錯誤訊息),若沒有此類帳號,請在Azure Active Directory服務新增一使用者。 測試Runbook (注意:測試是真的會跑!!!雖然它叫做「測試」,但如果測試會影響到線上服務的Runbook,請勿利用production環境測試。) 測試成功: 發行Runbook(發行之後,不會立即執行此Runbook,後續可選擇立即執行、建立排程。當然也可繼續編輯此Runbook,但注意一下這邊即使編輯後存檔,依然按發行,才會跑目前最新版的Runbook) 立即執行Runbook發行後可按「開始」,可立即正式執行此Runbook 排程執行Runbook點選Runbook→排程→連結至新排程: 設定排程名稱:(關機排程請以此類推~) 依需求設定排程時間: ※若要測試一次排程,至少要在目前時間的五分鐘後排程啟動後會在「工作」頁箋留下紀錄: 費用 以東南亞為例,費用如下圖: 免費(Free Tier):工作執行時間小於500分鐘/月 基本(Basic Tier):工作執行時間大於500分鐘/月~無上限的使用時間。 免費升級基本層次,可以去Azure管理介面調整Automation Account的tier(調整規模功能)。 若使用多個不同地區的Automation Account,這些Job的執行時數是會相加的。 相關連結 什麼是 Azure Automation? Azure Automation Runbook Types Automation Pricing == 要試用 Azure的朋友,請點選 Azure Free Trial – 試用 30 天期 進行試用申請。 ==