IBM Cloud Docs
使用Ansible

使用Ansible

Schematics 動作提供 Ansibleas-a-Service 功能,可讓您自動配置及管理 IBM Cloud 環境,並將複式多層應用程式部署至雲端基礎架構。

請檢閱 Schematics 動作 一節,以取得動作及 Red Hat Ansible的背景。

建立並執行 Schematics 動作

建立 Schematics 動作,並指定您要針對 IBM Cloud 資源執行的 Ansible 教戰手冊。

必要條件

  • 建立 Ansible 教戰手冊,並將教戰手冊儲存在 GitHub 或 GitLab 儲存庫中。 或者您可以嘗試使用其中一個 IBM提供的 Ansible 教戰手冊
  • 請確定您具有 許可權,可建立 Schematics 動作。

當您建立或更新 Schematics 工作區及動作時,請確定 locationurl 端點指向相同的地區。 如需位置和端點的相關資訊,請參閱 資訊儲存在何處?

創建Ansible劇本

  1. 登入 IBM Cloud控制台

  2. 點選選單圖示漢堡圖示> Platform Automation > Schematics > Ansible > Create playbook

    • 配置您的動作。
      1. 輸入操作的劇本名稱描述。 請注意,名稱的長度最多為 128 個字符,並且可以包含字母數字字符、空格、破折號和下劃線。
      2. (可選)輸入您要新增至操作中的標籤。 標籤可協助您執行動作的快速搜尋作業。
      3. 選擇要在其中建立操作的資源組
      4. 選擇要建立操作的位置。 該位置決定了操作的運作位置和操作資料的儲存位置。 您可以選擇地理位置 (例如 North America) 或位置 (例如 FrankfurtLondon)。 如果您選取地理位置,Schematics 會根據可用性來決定此地理位置內的位置。 請確定您可以將動作資料儲存在此位置,因為您無法在建立動作之後變更位置。 如需相關資訊,請參閱 資訊儲存在何處? 請注意,動作的位置與您要在其中執行 Ansible 教戰手冊的 IBM Cloud 資源位置無關。
      5. 按一下建立。 即會以 Normal 狀態建立您的動作,並將您導向至 Details 區段。
  3. Ansible 教戰手冊 區段中,按一下 編輯圖示 以匯入 Ansible 教戰手冊。

    1. 輸入 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

      沒有您可以使用的教戰手冊嗎? 請試用其中一個 範例教戰手冊

    2. 可選,如果您想使用私有GitHub儲存庫,請輸入您的個人存取權杖。 個人存取令牌用於驗證私有GitHub儲存庫以存取您的Ansible playbook。 如需如何建立存取記號的相關資訊,請參閱 為指令行建立個人存取記號。 如果您需要查看 容許及封鎖的副檔名,以從 Git 儲存庫進行複製。

    3. 檢閱用來執行教戰手冊的預設 Ansible 版本。 該版本無法變更。 如果您使用自己的 Ansible 教戰手冊,請確定您的教戰手冊使用指定的 Ansible 版本。 例如,Ansible v2.9.23

    4. 按一下 擷取教戰手冊 以連接至儲存庫,並從 Git 儲存庫中擷取所有 Ansible 教戰手冊。

    5. 選擇您要運行的劇本。 Schematics 動作一次可以指向一個教戰手冊。 若要執行多個劇本,您必須為每一個劇本建立個別動作。

    6. 選擇詳細級別。 詳細層次決定在執行 Ansible 教戰手冊時寫入日誌的資訊深度。 支援的值為 0 (Normal)1 (verbose)2 (More Verbose)3 (Debug)4 (Connection Debug。例如,如果您想要對教戰手冊進行除錯,或想要為 Ansible 執行的每一個作業包括詳細摘要,請選取高詳細層次。 您可以在劇本執行時檢視日誌。

    7. 選用,按一下 進階選項,以定義您要傳遞至劇本的輸入變數。 輸入變數必須在鍵值組中輸入。 如果變數包含機密性資訊,請啟用 機密 選項,以便在建立動作之後隱藏使用者的值。 如果您使用其中一個 IBM提供的 Ansible 教戰手冊,則可以在 readme.md 檔案中找到所有輸入變數。

    8. 按一下 儲存,以儲存動作詳細資料。

  4. 配置資源庫存。 資源庫存包括您要在其中執行 Ansible 教戰手冊的所有目標主機。

    1. 選擇庫存 區段中,按一下 編輯圖示
    2. 從資源庫存表格中,選取現有的資源庫存。 如果您還沒有資源庫存,請按一下 建立庫存 以建立庫存。 如需建立資源庫存的相關資訊,請參閱 建立靜態庫存檔案從 Schematics 工作區動態建置資源庫存
    3. 動作支援 SSHWinRM 類型的庫存連線標籤,以連接至遠端主機。
      • 選取 SSH 標籤,以輸入您要用來連接至目標主機的 使用者名稱IBM Cloud 資源庫存私密 SSH 金鑰。 所有主機都必須配置相符的公用 SSH 金鑰,以便 Schematics 可以連接至主機並執行您的教戰手冊。
        • 選取 需要基本主機存取權,以取得基本主機存取權。 若要使用不同的 SSH 金鑰來連接至防禦主機,請取消選取 對防禦主機使用相同的金鑰 選項。 如需 SSH 金鑰的相關資訊,請參閱 新增 SSH 金鑰
      • 針對用戶端與伺服器之間的通訊,選取 WinRM 標籤。 目前,WinRM 僅支援具有公用 IPs 的 Windows 系統,不支援基本主機。
        • 提供具有公用 IP 之 Windows 系統的 使用者名稱密碼
    4. 按一下儲存

    如需在中針對 Schematics 動作建立庫存的相關資訊,請參閱 靜態庫存動態庫存

  5. 按一下 檢查動作,以驗證您的動作詳細資料。 工作 頁面會自動開啟,您可以在日誌中檢視結果。 此檢查會驗證您的教戰手冊是否可以在 Schematics中執行。 若要變更動作設定,請回到動作的 設定 頁面,然後按一下 編輯圖示

  6. 按一下 執行動作 以執行動作。 您可以透過檢閱 工作 頁面上的日誌來監視動作的進度。 每個 30 seconds 都會自動重新整理工作日誌。

    您無法刪除或停止 Schematics 動作的執行中工作。 若要變更您的動作,請等待工作完成,然後變更您的設定,再按一下 檢查動作執行動作

編輯 Schematics 動作設定

設定 選項會編輯動作 詳細資料Ansible 動作IBM Cloud 資源庫存 參數。 然後,您可以按一下 Save 按鈕來儲存已編輯的配置。 最後,您按一下 檢查動作執行動作,以驗證並重新執行動作教戰手冊。

您可以透過檢閱 工作 頁面上的日誌來監視動作的進度。 您可以使用 ibmcloud schematics job list 指令來檢視動作的完整工作日誌。

在主控台中,未設定顯示工作日誌的限制。 每個 30 seconds 都會自動重新整理工作日誌。 您可以使用 ibmcloud schematics job list 指令來檢視動作的完整工作日誌。

刪除動作

如果您不再需要Schematics操作,則可以將其刪除。 刪除動作會移除 Ansible 教戰手冊及您的動作資料。 不過,不會移除您使用動作所建立之目標主機上的任何配置。

  1. Schematics 動作儀表板 中,尋找您要刪除的動作。
  2. 在動作功能表中,按一下刪除

動作狀態

動作狀態指出建立及處理 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 訊息。

將輸入變數配置成靜音警告訊息
將輸入變數配置成靜音警告訊息