1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

[Azure Automation] Runbook で変数を呼び出す方法 (PowerShell)

Last updated at Posted at 2021-02-15

Azure Portal 上で変数を作成する

[共有リソース] - [変数] - [変数の追加] で作成可能です。
暗号化設定をすると、Portal 上から値が表示されないようになります。

2021-02-13_16h21_40.png

Runbook 上で変数を呼び出す

設定した変数値を Runbook 上で呼び出す場合、内部コマンドレット Get-AutomationVariable を使用します。

$TestString=Get-AutomationVariable -Name "TestStringVariable"
$TestBool=Get-AutomationVariable -Name "TestBoolVariable"
$TestDateTime=Get-AutomationVariable -Name "TestDateTimeVariable"
$TestInt=Get-AutomationVariable -Name "TestIntVariable"
$TestNull=Get-AutomationVariable -Name "TestNullVariable"

Write-output "TestStringVariable : $TestString"
Write-output "TestBoolVariable : $TestBool"
Write-output "TestDateTimeVariable : $TestDateTime"
Write-output "TestIntVariable : $TestInt"
if($TestNull -Eq $null)
{
    Write-output "TestNullVariable is null"
}

# TestStringVariable : Hoge
# TestBoolVariable : True
# TestDateTimeVariable : 01/01/2021 01:23:45
# TestIntVariable : 12345
# TestNullVariable is null

複合型変数の作成と呼び出し

Get-AzVM で取得した VM 情報のような複数の情報を変数に格納する場合、複合型変数が利用できます。
複合型変数はAzure Portal 上からではなく、New-AzAutomationVariable コマンドレットを使って作成します。
なお、Runbook から New-AzAutomationVariable を使うには、Az.Automation モジュールをあらかじめインポートしておく必要があります。

$Conn = Get-AutomationConnection -Name AzureRunAsConnection
Connect-AzAccount -ServicePrincipal -Tenant $Conn.TenantID `
       -ApplicationId $Conn.ApplicationID `
       -CertificateThumbprint $Conn.CertificateThumbprint

$vm = Get-AzVM -ResourceGroupName "<VM が属する RG 名>" -Name "<VM 名>"
New-AzAutomationVariable -AutomationAccountName "<Automation Account 名>" -ResourceGroupName "<RG 名>" `
                         -Name "TestVMVariable" -Encrypted $false -Value $vm 
                         

$TestVm=Get-AutomationVariable -Name "TestVMVariable"
$TestVmName=$TestVm.Name.ToString()
$TestVmLocation=$TestVm.Location.ToString()

Write-output "TestVMVariable VM Name : $TestVmName"
Write-output "TestVMVariable VM Location : $TestVmLocation"

参考資料

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?