【教學】用腳本幫你自動申請Oracle免費主機(13步驟)

最近在申請Oracle A1免費主機時,遇到已經額滿無法申請的問題。這篇將分享如何用官方OCI套件製作Shell Script,讓Windows幫你自動申請Oracle免費主機。

Oracle免費主機無法申請時,系統將顯示:AD-1 可用性網域中 VM.Standard.A1.Flex 資源配置的容量不足. 請在其他可用性網域中建立此執行處理, 或者稍後再試. 若已指定容錯域, 請嘗試在不指定容錯域的情況下建立執行處理. 若不可行, 請稍後再試

官方OCI套件GitHub網址

目錄

13步驟協助你自動申請Oracle免費主機(Windows為例)

STEP
步驟1:開啟PowelShell下載OCI套件
powershell -NoProfile -ExecutionPolicy Bypass -Command "iex ((New-Object System.Net.WebClient).DownloadString('<https://raw.githubusercontent.com/oracle/oci-cli/master/scripts/install/install.ps1>'))"
STEP
步驟2:在PowelShell內查看版本,確認安裝完成
oci -v
STEP
步驟3:查詢User OCID並記錄

點選右上角頭像→我的設定檔

步驟3:查詢User OCID並記錄
STEP
步驟4:查詢Tenancy OCID並記錄

點選右上角頭像→租用戶

步驟4:查詢Tenancy OCID並記錄
STEP
步驟5:在PowelShell內安裝套件
oci setup config

在安裝套件過程中,會需要輸入先前查詢到的OCID與選擇區域,其餘設定相關儲存路徑,建議記錄下來後Enter跳過即可。

STEP
步驟6:新增API金鑰

到剛剛安裝套件過程中,顯示的「oci_api_key_public.pem」檔案位置,以記事本打開複製,至剛剛「我的設定檔」網頁頁面,選擇左下角「API金鑰」→點選新增API金鑰→貼上公開金鑰→點選新增。

STEP
步驟7:在PowelShell確認是否串接成功
oci iam availability-domain list

串接成功會顯示相關資料列表,若有部份Warning警告可不理會。

STEP
步驟8:蒐集主機需要的資訊,並下載SSH 金鑰

在Oracle申請免費主機的頁面,選擇規格後,按F12開啟網頁開發工具,切換至「Network」頁籤,再次點擊右下角建立,讓系統再次顯示「AD-1 可用性網域中 VM.Standard.A1.Flex 資源配置的容量不足」的提示。

選擇Instance→Payload→對第一行metadata按右鍵選copy value

步驟8:蒐集主機需要的資訊,並下載SSH 金鑰
STEP
步驟9:將上述取得的資訊,替換到以下的腳本程式碼中

依下方程式碼中的紅字數值,對應步驟8所得到的value,並將數值後綴資料(綠字)替換。

oci compute instance launch –availability-domain CrLN:AP-CHUNCHEON-1-AD-1 –image-id ocid1.image.oc1.ap-chuncheon-1.aa@@ –subnet-id ocid1.subnet.oc1.ap-chuncheon-1.aa@@ –shape VM.Standard.A1.Flex –assign-public-ip true –compartment-id ocid1.tenancy.oc1..aa@@ –shape-config ‘{“ocpus”:4,”memory_in_gbs”:24,”local_disks”:200}’ –metadata ‘{ “ssh_authorized_keys”: “SSH金鑰ssh-rsa開頭” }’
sleep 10s

※上述SSH金鑰來源是步驟8所下載的檔案,檔名是ssh-key-日期.key,以記事本打開後全選貼上即可

STEP
步驟10:將以上程式碼用記事本另存成檔名.sh檔案
STEP
步驟11:在PowerShell中執行程式碼,並選擇YES

由於Windows預設無法直接執行.sh檔案,需要先設定允許後方可執行

Set-ExecutionPolicy -Scope CurrentUser -ExecutionPolicy Unrestricted
STEP
步驟12:測試.sh檔案是否正常運作

正常運作時,將回傳類似下方的資料,Out of host capacity、代碼500表示額滿未申請到。

ServiceError:
{
	"code": "InternalError",
	"message": "Out of host capacity.",
	"opc-request-id": "EGJSD58J15241K5D"
	"status": 500
}
STEP
步驟13:到Windows工作排程器,設定啟用排程

工作排程器位置

C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Administrative Tools

或可於Windows左下方搜尋按扭直接搜尋。

建立工作→選擇觸發次數與時間→選擇開啟.sh檔案,即完成自動申請。

在工作排程介面可查看上次執行時間、執行狀態與預計下次執行時間

參考資料

評論

有什麼想法嗎?歡迎隨時留言分享~

目錄