使用Ansible
Schematics 動作提供 Ansibleas-a-Service 功能,可讓您自動配置及管理 IBM Cloud 環境,並將複式多層應用程式部署至雲端基礎架構。
請檢閱 Schematics 動作 一節,以取得動作及 Red Hat Ansible的背景。
建立並執行 Schematics 動作
建立 Schematics 動作,並指定您要針對 IBM Cloud 資源執行的 Ansible 教戰手冊。
必要條件
- 建立 Ansible 教戰手冊,並將教戰手冊儲存在 GitHub 或 GitLab 儲存庫中。 或者您可以嘗試使用其中一個 IBM提供的 Ansible 教戰手冊。
- 請確定您具有 許可權,可建立 Schematics 動作。
當您建立或更新 Schematics 工作區及動作時,請確定 location
及 url
端點指向相同的地區。 如需位置和端點的相關資訊,請參閱 資訊儲存在何處?
創建Ansible劇本
-
登入 IBM Cloud控制台。
-
點選選單圖示> Platform Automation > Schematics > Ansible > Create playbook。
- 配置您的動作。
- 輸入操作的劇本名稱和描述。 請注意,名稱的長度最多為 128 個字符,並且可以包含字母數字字符、空格、破折號和下劃線。
- (可選)輸入您要新增至操作中的標籤。 標籤可協助您執行動作的快速搜尋作業。
- 選擇要在其中建立操作的資源組。
- 選擇要建立操作的位置。 該位置決定了操作的運作位置和操作資料的儲存位置。 您可以選擇地理位置 (例如
North America
) 或位置 (例如Frankfurt
或London
)。 如果您選取地理位置,Schematics 會根據可用性來決定此地理位置內的位置。 請確定您可以將動作資料儲存在此位置,因為您無法在建立動作之後變更位置。 如需相關資訊,請參閱 資訊儲存在何處? 請注意,動作的位置與您要在其中執行 Ansible 教戰手冊的 IBM Cloud 資源位置無關。 - 按一下建立。 即會以
Normal
狀態建立您的動作,並將您導向至Details
區段。
- 配置您的動作。
-
在 Ansible 教戰手冊 區段中,按一下 編輯圖示 以匯入 Ansible 教戰手冊。
-
輸入 Ansible 教戰手冊儲存所在的 GitHub 或 GitLab 儲存庫 URL。 URL 可以指向 master 分支、任何其他分支或子目錄。 如果您的儲存庫儲存多個劇本,則必須選取您要執行的劇本。 Schematics 動作一次可以指向一個教戰手冊。 若要執行多個劇本,您必須為每一個劇本建立個別動作。
- 主分支範例 -
https://github.com/myorg/myrepo
- 其他分支的範例 -
https://github.com/myorg/myrepo/tree/mybranch
- 子目錄範例 -
https://github.com/mnorg/myrepo/tree/mybranch/mysubdirectory
沒有您可以使用的教戰手冊嗎? 請試用其中一個 範例教戰手冊。
- 主分支範例 -
-
可選,如果您想使用私有GitHub儲存庫,請輸入您的個人存取權杖。 個人存取令牌用於驗證私有GitHub儲存庫以存取您的Ansible playbook。 如需如何建立存取記號的相關資訊,請參閱 為指令行建立個人存取記號。 如果您需要查看 容許及封鎖的副檔名,以從 Git 儲存庫進行複製。
-
檢閱用來執行教戰手冊的預設 Ansible 版本。 該版本無法變更。 如果您使用自己的 Ansible 教戰手冊,請確定您的教戰手冊使用指定的 Ansible 版本。 例如,
Ansible v2.9.23
。 -
按一下 擷取教戰手冊 以連接至儲存庫,並從 Git 儲存庫中擷取所有 Ansible 教戰手冊。
-
選擇您要運行的劇本。 Schematics 動作一次可以指向一個教戰手冊。 若要執行多個劇本,您必須為每一個劇本建立個別動作。
-
選擇詳細級別。 詳細層次決定在執行 Ansible 教戰手冊時寫入日誌的資訊深度。 支援的值為
0 (Normal)
、1 (verbose)
、2 (More Verbose)
、3 (Debug)
、4 (Connection Debug
。例如,如果您想要對教戰手冊進行除錯,或想要為 Ansible 執行的每一個作業包括詳細摘要,請選取高詳細層次。 您可以在劇本執行時檢視日誌。 -
選用,按一下 進階選項,以定義您要傳遞至劇本的輸入變數。 輸入變數必須在鍵值組中輸入。 如果變數包含機密性資訊,請啟用 機密 選項,以便在建立動作之後隱藏使用者的值。 如果您使用其中一個 IBM提供的 Ansible 教戰手冊,則可以在
readme.md
檔案中找到所有輸入變數。 -
按一下 儲存,以儲存動作詳細資料。
-
-
配置資源庫存。 資源庫存包括您要在其中執行 Ansible 教戰手冊的所有目標主機。
- 在 選擇庫存 區段中,按一下 編輯圖示。
- 從資源庫存表格中,選取現有的資源庫存。 如果您還沒有資源庫存,請按一下 建立庫存 以建立庫存。 如需建立資源庫存的相關資訊,請參閱 建立靜態庫存檔案 或 從 Schematics 工作區動態建置資源庫存。
- 動作支援 SSH 及 WinRM 類型的庫存連線標籤,以連接至遠端主機。
- 選取 SSH 標籤,以輸入您要用來連接至目標主機的 使用者名稱 及 IBM Cloud 資源庫存私密 SSH 金鑰。 所有主機都必須配置相符的公用 SSH 金鑰,以便 Schematics 可以連接至主機並執行您的教戰手冊。
- 選取 需要基本主機存取權,以取得基本主機存取權。 若要使用不同的 SSH 金鑰來連接至防禦主機,請取消選取 對防禦主機使用相同的金鑰 選項。 如需 SSH 金鑰的相關資訊,請參閱 新增 SSH 金鑰。
- 針對用戶端與伺服器之間的通訊,選取 WinRM 標籤。 目前,WinRM 僅支援具有公用
IPs
的 Windows 系統,不支援基本主機。- 提供具有公用 IP 之 Windows 系統的 使用者名稱 及 密碼。
- 選取 SSH 標籤,以輸入您要用來連接至目標主機的 使用者名稱 及 IBM Cloud 資源庫存私密 SSH 金鑰。 所有主機都必須配置相符的公用 SSH 金鑰,以便 Schematics 可以連接至主機並執行您的教戰手冊。
- 按一下儲存。
-
按一下 檢查動作,以驗證您的動作詳細資料。 工作 頁面會自動開啟,您可以在日誌中檢視結果。 此檢查會驗證您的教戰手冊是否可以在 Schematics中執行。 若要變更動作設定,請回到動作的 設定 頁面,然後按一下 編輯圖示。
-
按一下 執行動作 以執行動作。 您可以透過檢閱 工作 頁面上的日誌來監視動作的進度。 每個
30 seconds
都會自動重新整理工作日誌。您無法刪除或停止 Schematics 動作的執行中工作。 若要變更您的動作,請等待工作完成,然後變更您的設定,再按一下 檢查動作 或 執行動作。
編輯 Schematics 動作設定
設定 選項會編輯動作 詳細資料、Ansible 動作及 IBM Cloud 資源庫存 參數。 然後,您可以按一下 Save
按鈕來儲存已編輯的配置。 最後,您按一下 檢查動作 及 執行動作,以驗證並重新執行動作教戰手冊。
您可以透過檢閱 工作 頁面上的日誌來監視動作的進度。 您可以使用 ibmcloud schematics job list
指令來檢視動作的完整工作日誌。
在主控台中,未設定顯示工作日誌的限制。 每個 30 seconds
都會自動重新整理工作日誌。 您可以使用 ibmcloud schematics job list
指令來檢視動作的完整工作日誌。
刪除動作
如果您不再需要Schematics操作,則可以將其刪除。 刪除動作會移除 Ansible 教戰手冊及您的動作資料。 不過,不會移除您使用動作所建立之目標主機上的任何配置。
- 從 Schematics 動作儀表板 中,尋找您要刪除的動作。
- 在動作功能表中,按一下刪除。
動作狀態
動作狀態指出建立及處理 Schematics 系統狀態可識別的動作的結果。 此表格代表 Schematics 動作狀態及其說明。
狀態 | 說明 |
---|---|
Critical |
當範本無法下載儲存庫,或儲存庫名稱無效時,範本會失敗,並將動作狀態變更為嚴重。 |
Disabled |
不允許使用者執行。 |
Locked |
在配置處於 Normal 狀態之後。 管理者可以鎖定動作以停止進一步變更。 |
Normal |
管理者發佈動作以啟用使用者執行的可見性。 |
Pending |
當使用者在建立、更新或刪除期間提供範本時,您的動作會進入 Pending 狀態。 |
狀態圖流程
下表代表動作狀態工作流程。
動作 | 狀態圖 | 說明 |
---|---|---|
建立 | 當使用者建立動作時,最初動作的狀態是 Draft 狀態。 如果使用者在建立期間或建立之後提供範本,則動作會進入 Pending 狀態。 如果範本處理成功,動作會進入 Normal 狀態。 如果範本管理程式將停用設為停止使用,則動作會進入 Disable 狀態。 如果範本處理程序中發生錯誤,動作會進入 Critical 狀態。 |
|
刪除 | 當使用者選取刪除現有動作時,起始動作會進入 Pending 狀態。 如果範本刪除失敗,動作會進入 Critical 狀態。 |
|
更新 | 當使用者按一下現有動作來更新範本儲存庫時,立即動作會進入 pending 狀態。 如果範本處理成功,動作會進入 Normal 狀態。 如果使用者嘗試將範本儲存庫設為停用,則動作會進入 Disabled 狀態。 最後,如果範本處理失敗,動作會進入 Critical 狀態。 |
檢閱動作工作詳細資料
使用 Schematics 動作工作詳細資料,以尋找所有 Schematics 內部活動的歷程。 活動,例如下載 Ansible 教戰手冊或驗證教戰手冊,以及查看您在目標主機上執行之教戰手冊的 Ansible 日誌。
工作分類為下列種類:
- 系統工作: 這些工作代表所有 Schematics 內部活動及檢查,例如,從 GitHub 下載 Ansible 教戰手冊或驗證教戰手冊。 您可以在動作的「工作」頁面上的 全部 標籤中找到這些工作。
- 使用者工作: 當您檢查或執行動作時,會建立這些工作。 當您按一下動作之「工作」頁面上的 使用者 標籤時,您可以找到所有使用者起始工作的摘要。
檢閱可指派給工作的下列狀態:
狀態 | 說明 |
---|---|
ok |
執行 Ansible 教戰手冊的目標主機總數。 |
changed |
已存取及變更的目標主機總數。 |
failed |
Ansible 劇本可能未順利執行的目標主機總數。 |
skipped |
已存取但由於變更套用至主機而可能未更新的目標主機總數。 |
unreachable |
可能找不到或無法達到的目標主機總數。 |
當動作工作執行顯示 DEPRECATION WARNING 訊息時,您需要將輸入變數設為 ansible_python_interpreter = auto
,如畫面擷取中所示,以避免工作中出現 DEPRECATION WARNING
訊息。