您可以透過定義和使用名稱和值對 (稱為軟體內容) 並將其做為參數傳遞至動作指令碼,將動作指令碼設計為一般的可重複使用指令碼。您可以建立預期字串、陣列、內容、布林值或整數值的軟體內容。您可以自行提供值、要求其他人提供值,或透過建立繫結從其他藍圖元件擷取值。

內容選項

您可選取 [計算值] 核取方塊計算任何字串內容的值,然後在設定 軟體 內容時選取適當的核取方塊,將任一內容變為已加密、可覆寫或必要。將這些選項與值合併可達到不同的目的。例如,您想要求藍圖架構設計人員在藍圖中使用軟體元件時提供密碼值並加密該值。建立密碼內容,但是將值文字方塊保留空白。選取 [可覆寫]、[必要] 和 [已加密]。如果您預期的密碼屬於您的使用者,則藍圖架構設計人員可選取在申請中顯示來要求使用者在填寫申請表單時輸入密碼。

選項

說明

已加密

將內容標記為已加密,以遮罩該值並在 vRealize Automation 中顯示為星號。如果將內容從已加密變更為未加密,則 vRealize Automation 會重設內容值。為安全起見,必須為內容設定新值。

可覆寫

允許架構設計人員在組合應用程式藍圖時編輯此內容的值。如果輸入值,則會顯示為預設值。

必要

要求架構設計人員提供此內容的值,或接受您提供的預設值。

計算值

計算內容的值由 INSTALL、CONFIGURE、START 或 UPDATE 生命週期指令碼指派。已指派的值會傳播至後續可用生命週期階段,以及藍圖中繫結到這些內容的元件。如果為不是字串內容的內容選取 [計算值],則內容類型會變更為字串。

如果選取計算內容選項,請將自訂內容的值保留空白。設計計算值的指令碼。

表格 1. 計算內容選項的指令碼範例

範例字串內容

指令碼語法

範例使用

my_unique_id = ""

Bash - $my_unique_id

export my_unique_id="0123456789"

Windows CMD - %my_unique_id%

set my_unique_id=0123456789

Windows PowerShell - $my_unique_id

$my_unique_id = "0123456789"

字串內容

字串內容預期字串值。您可以自行提供字串、要求其他人提供值,或透過建立與其他字串內容的繫結從其他藍圖元件擷取值。字串值可包含任何 ASCII 字元。若要建立內容繫結,請使用設計畫布上的內容索引標籤選取用於繫結的適當內容。然後,內容值會做為原始字串資料傳遞到動作指令碼中。繫結至藍圖字串內容時,請確保繫結的藍圖元件無法叢集化。如果元件已叢集化,則字串值會變成陣列,並且您無法擷取預期值。

範例字串內容

指令碼語法

範例使用

admin_email = "admin@email987.com"

Bash - $admin_email

echo $admin_email

Windows CMD - %admin_email%

echo %admin_email%

Windows PowerShell - $admin_email

write-output  $admin_email

陣列內容

陣列內容預期字串、整數、十進位或布林值陣列定義為 [“value1”, “value2”, “value3”…]。您可以自行提供值、要求其他人提供值,或透過建立內容繫結從其他藍圖元件擷取值。當您為陣列內容定義值時,必須用方括弧括住陣列。對於字串陣列,陣列元素中的值可以包含任何 ASCIl 字元。若要在陣列內容值中正確編碼反斜線字元,請新增額外的反斜線,例如 ["c:\\test1\\test2"]。對於繫結內容,請使用藍圖畫布中的內容索引標籤選取用於繫結的適當內容。如果繫結至陣列,您必須設計軟體元件,以便其無法以任何特定順序預期值陣列。

例如,以正在平衡應用程式伺服器虛擬機器叢集之負載的負載平衡器虛擬機器為例。在此情況下,會對負載平衡器服務定義陣列內容,並將其設定為應用程式伺服器虛擬機器的 IP 位址陣列。

這些負載平衡器服務將指令碼設定為使用陣列內容,以在 Red Hat、Windows 和 Ubuntu 作業系統上設定適當的負載平衡配置。

範例陣列內容

指令碼語法

範例使用

operating_systems = ["Red Hat","Windows","Ubuntu"]

Bash - ${operating_systems[@]}

適用於整個字串陣列

${operating_systems[N]}

適用於個別陣列元素

for (( i = 0 ; i < ${#operating_systems[@]}; i++ )); do
   echo ${operating_systems[$i]}
done

Windows CMD - %operating_systems_N%

其中 N 代表元素在陣列中的位置

for /F "delims== tokens=2" %%A in ('set operating_systems_') do (
    echo %%A
)

Windows PowerShell - $operating_systems

適用於整個字串陣列

$operating_systems[N]

適用於個別陣列元素

foreach ($os in $operating_systems){
   write-output  $os
}

內容屬性

內容屬性值為要下載內容之檔案的 URL。軟體代理程式從該 URL 將內容下載到虛擬機器,然後將本機檔案在虛擬機器中的位置傳遞到指令碼中。

內容屬性必須定義為使用 HTTP 或 HTTPS 通訊協定的有效 URL。例如,Dukes Bank 範例應用程式中的 JBOSS 應用程式伺服器 軟體 元件將指定內容屬性 cheetah_tgz_url。構件主控於 軟體 應用裝置,URL 會指向應用裝置中的此位置。軟體 代理程式會從指定位置將構件下載到已部署的虛擬機器。

如需可與內容屬性搭配使用的 software.http.proxy 設定的相關資訊,請參閱自訂內容 S 資料表

範例字串內容

指令碼語法

範例使用

cheetah_tgz_url = "http://app_content_server_ip:port/artifacts/software/jboss/cheetah-2.4.4.tar.gz"

Bash - $cheetah_tgz_url

tar -zxvf $cheetah_tgz_url

Windows CMD - %cheetah_tgz_url%

start /wait c:\unzip.exe
%cheetah_tgz_url%

Windows PowerShell - $cheetah_tgz_url

 & c:\unzip.exe
$cheetah_tgz_url

布林值內容

使用布林值內容類型在 [值] 下拉式功能表中提供 True 和 False 選項。

整數內容

針對零、正整數或負整數使用整數內容類型。

十進位內容

針對代表非重複十進位小數的值使用十進位內容類型。