建立 Script 自動化

您可以使用 SSH 提供者來建立 Script 類型的自動化。 端點系統的作業系統可以是 UNIX ® (包括 AIX® 和 Linux®) 或 Windows™。若為 UNIX , SSH 提供者會使用預設 Shell 來執行 Script。 或者,可以使用 shebang (#!) ,以目標系統可解譯的任何 Scripting 語言來執行 Script。 SSH 提供者不需要其他代理程式,因為它透過 SSH 使用直接遠端執行連線。

關於本作業

對於 Windows , SSH 提供者可以執行 Powershell Script。
附註:
  • 若要透過 SSH 存取系統,您必須在 Windows 系統上設定 SSH 伺服器,例如 OpenSSH for Windows Server 2019 或 Windows 10。 Windows 系統必須已安裝 Powershell 作為 SSH 伺服器的預設 Shell。
  • 如果您使用 jumpserver ,則 jumpserver 必須是 Linux 系統。 您無法使用 Windows 系統作為 jumpserver。
請完成下列步驟來啟用 Script 自動化:

程序

  1. 建立 Script 連線。 如需相關資訊,請參閱 建立連線
  2. 建立 Script 類型的自動化。 按一下 自動化 > 新建自動化。 完成下列欄位:
    類型
    選取 Script。
    如果您想要讓 Script 作為自動化項目來執行,則必須在連線頁面上配置 Script 自動化提供者。
    名稱
    請提供名稱,以說明這個自動化項目所執行的作業。 例如,Find large file systems
    必要條件
    如果這個自動化項目需要必備項目,請新增這項資訊。 例如,Db2 Version 10.5 or higher
    說明
    請提供任何有用的其他資訊,以讓使用者可立即瞭解此自動化項目所解決的問題。
    Shell
    針對在 UNIX 系統上使用 Bash 作為 ssh Shell 執行的 Script ,選取 Bash 。 在 Script 內,您可以指定目標系統上安裝的其他 Script 直譯器,例如 python。 如需範例,請參閱下面的 Script 項目。
    關於 Runbook Automation 如何呼叫 Bash Script 的注意事項:
    • 它會產生含有 Script 內容的暫存檔。
    • 它會將參數匯出為環境變數。
    • 它會執行暫存 Script 檔。
    • 它會刪除暫存 Script 檔。
    • 它會傳回暫時 Script 執行的 Script 回覆碼。
    對於使用 powershell 作為 ssh Shell (使用 cmd 作為 ssh Shell 不受支援) 在 Windows 系統上執行的 Script ,請選取 Powershell
    關於 Runbook Automation 如何呼叫 Powershell Script 的注意事項:
    • 它會將參數值指派給具有所選取類型的變數。
    • 它會從 Script 執行指令。
    Script
    您可選取匯入以從檔案系統中選取 Script,也可以直接在編輯器中輸入 Script。 如果您選取 Bash ,則只能在 UNIX 系統上使用預設 Shell 或直譯器 (在 shebang #!之後指定) 來執行 Script。 如果您選取 Powershell ,則 Script 只能在使用 Powershell 的 Windows 系統上執行。

    附註
    • 如果匯入的 Script 包含非 ASCII 字元 (例如,中文) ,則必須採用 UTF-8 格式。
    • 如果選取 "Bash" Shell 類型,則所匯入 Script 中的任何 Windows 行尾都會自動轉換為 UNIX 行尾。
    範例
    1. 使用使用 python 直譯器的下列 Bash Script 來建立 Script 自動化:
      #!/usr/bin/env python3
      import os
      import platform
      
      print("Your message \'" + os.environ.get("message") + "\' is presented by python version " + platform.python_version())
      建立參數 message ,並將預設值 Hello python 指派給參數。 在已安裝 python3 的目標系統上執行 Script。 輸出類似於下列輸出:
      Your message 'Hello python' is presented by python version 3.9.13
    2. 使用下列 Bash Script 來建立 Script 自動化,該 Script 使用 IBM WebSphere Application Server CLI 來啟動、停止或取得伺服器的伺服器狀態:
      $profilePath/bin/$serverAction.sh $serverName
      建立參數:
      • profilePath (WAS 設定檔的路徑名稱,將類型設為單一字串,範例預設值: /opt/IBM/JazzSM/profile)
      • serverAction (要在 WAS 伺服器上採取的動作,將類型設為字串列舉 (serverStatusstartServerstopServer) ,範例預設值: serverStatus)
      • serverName (WAS 伺服器的名稱,將類型設為單一字串,範例預設值: server1)。
      在已安裝 IBM WebSphere Application Server 且已在 $profilePath/properties/soap.client.props中配置管理認證的目標系統上執行 Script。 或者,新增管理使用者名稱及密碼的參數,並相應地修改 CLI 指令。
    自動化輸出
    • 過濾自動化輸出 依預設,所有自動化輸出都會收集並列印至自動化輸出欄位。 如果您只對自動化輸出的子集感興趣 (例如,因為您想要在 Runbook 內建立兩個自動化項目的鏈結,其中第一個自動化項目的部分特定資訊用作第二個自動化項目的輸入) ,則您可以啟用 過濾自動化項目輸出 開關,並指定型樣來控制傳回自動化項目輸出的哪個部分。
    • 選擇查詢語法 視建立的輸出類型而定,您可以在三種型樣相符引擎及其各自的語法之間進行選擇:
      • XPath: 最適合剖析 XML 資料
      • JSONPath: 最適合剖析 JSON 資料
      • 正規表示式: 最適合剖析非結構化資料
    • 在執行時期選擇查詢語法 如果您要容許在測試自動化時以及在母項 Runbook 內選擇查詢語法,請選取此勾選框。 這個勾選框通常會停用。
    • 輸入查詢型樣 輸入所選查詢語法支援的型樣。 例如,如果 JSON 輸出物件預期包含稱為 "version" 的屬性,且您選取 "JSONPath" 查詢語法,則可以使用查詢型樣 "$.version" ,從整體 JSON 輸出中挑選版本屬性的值。
    • 在執行時期輸入查詢型樣 如果您要容許在測試自動化時以及在母項 Runbook 內選擇查詢型樣,請選取此勾選框。
    • 測試輸出過濾器 當您準備好測試自動化時,請按一下此鏈結 (或動作功能表中的 測試 按鈕)。 這會儲存自動化,並直接開啟現行自動化的 測試自動化 頁面。 對許多開發人員而言,使用查詢型樣是一個反覆運算處理程序。 因此,建議至少在開發自動化時啟用 在執行時期輸入查詢型樣 ,並切換至 測試自動化 以細部調整查詢型樣。 測試自動化 頁面本身也支援開發查詢型樣,在此頁面中,您可以在執行自動化之後,在 顯示已過濾的輸出顯示未過濾的輸出 之間切換。 您也可以在 編輯自動化測試自動化 之間切換,直到您對結果滿意為止。
    參數
    請新增輸入參數,以執行自動化 Script。 這些輸入參數可作為環境變數供 Script 使用。 例如,在 Linux Script 中,可以 $filesystem 方式使用 filesystem 參數。 會自動新增 $ 符號,以區分使用者定義參數與系統參數 (例如 targetuser)。 匯出參數時,其不帶錢幣符號。 附註: 輸入參數名稱必須僅包含英數字元及底線字元。 存在下列系統參數:
    target
    必要參數。 適用於 Script 類型的自動化。 會建立 target 參數,以定義 Script 執行所在的目標機器。 依預設,會假設目標機器上的 SSH 伺服器正在埠 22 上接聽。 如果使用不同的 SSH 埠,請將 target 參數的值設為 hostname:port,例如 mytarget.mycompany.com:2022
    使用者
    必要參數。 適用於 Script 類型的自動化。 user 參數定義用來在目標機器上執行 Script 的 UNIX 或 Windows 使用者名稱。
    附註: 如果使用者參數的值包含 @ 符號 (例如電子郵件位址) ,則會忽略 @ 符號及其後面的所有字元。
  3. 將自動化項目新增至 Runbook ,請參閱 新增自動化項目
  4. 執行 Runbook ,請參閱 執行您的第一個 Runbook