最近在申請Oracle A1免費主機時,遇到已經額滿無法申請的問題。這篇將分享如何用官方OCI套件製作Shell Script,讓Windows幫你自動申請Oracle免費主機。
Oracle免費主機無法申請時,系統將顯示:AD-1 可用性網域中 VM.Standard.A1.Flex 資源配置的容量不足. 請在其他可用性網域中建立此執行處理, 或者稍後再試. 若已指定容錯域, 請嘗試在不指定容錯域的情況下建立執行處理. 若不可行, 請稍後再試
官方OCI套件GitHub網址
13步驟協助你自動申請Oracle免費主機(Windows為例)
powershell -NoProfile -ExecutionPolicy Bypass -Command "iex ((New-Object System.Net.WebClient).DownloadString('<https://raw.githubusercontent.com/oracle/oci-cli/master/scripts/install/install.ps1>'))"
oci -v
點選右上角頭像→我的設定檔
點選右上角頭像→租用戶
oci setup config
在安裝套件過程中,會需要輸入先前查詢到的OCID與選擇區域,其餘設定相關儲存路徑,建議記錄下來後Enter跳過即可。
到剛剛安裝套件過程中,顯示的「oci_api_key_public.pem」檔案位置,以記事本打開複製,至剛剛「我的設定檔」網頁頁面,選擇左下角「API金鑰」→點選新增API金鑰→貼上公開金鑰→點選新增。
oci iam availability-domain list
串接成功會顯示相關資料列表,若有部份Warning警告可不理會。
在Oracle申請免費主機的頁面,選擇規格後,按F12開啟網頁開發工具,切換至「Network」頁籤,再次點擊右下角建立,讓系統再次顯示「AD-1 可用性網域中 VM.Standard.A1.Flex 資源配置的容量不足」的提示。
選擇Instance→Payload→對第一行metadata按右鍵選copy value
依下方程式碼中的紅字數值,對應步驟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,以記事本打開後全選貼上即可
由於Windows預設無法直接執行.sh檔案,需要先設定允許後方可執行
Set-ExecutionPolicy -Scope CurrentUser -ExecutionPolicy Unrestricted
正常運作時,將回傳類似下方的資料,Out of host capacity、代碼500表示額滿未申請到。
ServiceError:
{
"code": "InternalError",
"message": "Out of host capacity.",
"opc-request-id": "EGJSD58J15241K5D"
"status": 500
}
工作排程器位置
C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Administrative Tools
或可於Windows左下方搜尋按扭直接搜尋。
建立工作→選擇觸發次數與時間→選擇開啟.sh檔案,即完成自動申請。
評論