Azure Automation シリーズのパート3では、アセットの管理について説明します。
シリーズのパート1とパート2で、イントロダクションと Runbook の作成の説明を行いました。以前のブログをまだお読みでない場合は、パート3に進む前に、是非お読みいただければと思います。
このブログで作成するアセットは、以下のタスクを実行する自動化プロジェクトのサンプルの準備です。
- 毎週月曜日の午前6時に実行
- Azure にログイン
- 仮想マシンとその電源状態のリストを取得
- 指定された受信者アドレスにレポートをメールで送信
このサンプルの自動化プロジェクトについては次のブログで詳しく説明する予定ですが、ここではまず、アセットについて説明します。
Azure Automation のアセットとは?
通常の PowerShell スクリプトでは、リファレンスのために任意のディレクトリにデータを含むテキストファイルを作成できます。また、スクリプトは実行時にそのテキストファイルからデータをインポートできます。基本的には、このファイルはアセットと見なされます。
Azure では、Azure Automation のアセットは永続データを保存するために使用されます。アセットが作成されると、実行のたびに Runbook からその値を呼び出すことができます。
違いは、コンピュータ内にある別のファイルではなく、コンテナにアセットが保存されることです。そのため、Azure Automation のアセットはより安全で信頼性が高く、資格情報や気密性の高いテキストを保存する場合は特に便利です。
Azure Automation のアセットの種類
このブログでは、3つの自動化アセットを使用します。それぞれのアセット・タイプについて簡単に説明します。
変数
変数を暗号化しておいて、アセットを見ることができる誰にでもその値を読み取れてしまうことがないようにすることもできます。変数に割り当てられるタイプは、ストリング、日時、整数、ブール関数、特定せず、などです。
資格情報
スケジュール
Azure Automation アセットの作成
このブログで、Azure Portal と PowerShell を使用して、変数、資格情報、およびスケジュールの各アセットを作成する方法を説明します。
Azure Portal を使用して Automation アセットを作成
Portal を使って変数アセットを作成
注意事項:ここでは、Runbook で作成されるレポートの受信者のメールアドレスを変数に入れます。
- Azure Automation アカウントに移動します。ここでは、アカウント名は Azure-AA です。
- 左ペインの [Shared Resources] セクションで、[Variables] をクリックします。
- 右ペインで [Add a variable] をクリックします。
[ ‘Add a variable’ ボタンをクリック]
ポータルの右側に [New Variable] フォームが表示されます。
- 変数に名前をつけます。目的にふさわしい、わかりやすい名前にしてください。このプロジェクトでは、変数に ReportRecipients という名前をつけました。
- 説明を記入します(任意です)。
- 変数タイプから、String を選択します。
- 値を入力します。ここでは、レポートの受信者の電子メールアドレスになります。
- 暗号化の設定は、No のままにしておきます。
- [Create] をクリックします。
[ ‘New Variable’ フォーム - 必要な詳細情報を入力]
変数が作成されると、次のように表示されます。
[新しい変数が作成されました]
Portal を使って資格情報アセットを作成
注意事項:作成される資格情報は、データを取得するために Azure にアクセスできる必要があります。アカウントは、レポートをメールで送信するのに使用されるため、Office 365 メールボックスも持っている必要があります。
- Azure Automation アカウントに移動します。
- 左ペインの [Shared Resources] セクションで、[Credentials] をクリックします。
- 右ペインで [Add a credential] をクリックします。
[ ‘Add a credential’ ボタンをクリック]
ポータルの右側に [New Credential] フォームが表示されます。
- 資格情報に名前をつけます。この例では、ServiceAccount という名前を使っています。
- 説明を記入します(任意です)。
- ユーザー名を入力します。
- パスワードを入力します。
- 確認のためパスワードを再入力します。
- [Create] をクリックします。
[ ‘New Credential’ フォーム - 必要な詳細情報を入力]
資格情報が作成されると、次のように表示されます
[新しい資格情報が作成されました]
Portal を使ってスケジュールアセットを作成
注意事項:この例では、毎週月曜日の午前6時に Runbook を実行するためのスケジュールを作成します。
- Azure Automation アカウントに移動します。
- 左ペインの [Shared Resources] セクションで、[Schedules] をクリックします。
- 右ペインで [Add a schedule] をクリックします。
[ ‘Add a schedule’ ボタンをクリック]
ポータルの右側に [New Schedule] フォームが表示されます。
- スケジュールに名前をつけます。ここでは、内容がわかるように EveryMondayAtSix という名前にしました。
- 説明を記入します(任意です)。
- 最初の開始日と時刻を入力します。
- 適切なタイムゾーンをを選択します。
- 繰り返しか1回限りか繰り返しかの選択をします。ここでは繰り返しに設定します。
- 繰り返しの場合、単位と頻度を選択します。週単位で1回を指定します。
- 週のどの曜日かを選択します。ここでは月曜日にチェックを入れます。
- [Create] をクリックします。
[ ‘New Schedule’ フォーム - 必要な詳細情報を入力]
スケジュールが作成されると、次のように表示されます
[新しいスケジュールが作成されました]
PowerShell を使って Automation アセットを作成
PowerShell を使って変数アセットを作成
注意事項:ここでは、Runbook で作成されるレポートの受信者のメールアドレスを変数に入れます。
- PowerShell を使用して Azure に接続します(まだ接続されていない場合)。
- 次のコマンドをコピーして、PowerShell コンソールに貼り付けます。-Value のメールアドレスを実際に使う適切なメールアドレスに変更してください。
New-AzAutomationVariable
-Name 'ReportRecipients'
-ResourceGroupName 'Azure-AA-RG'
-AutomationAccountName 'Azure-AA'
-Value 'email@address.here'
-Encrypted $false
このコードは、リソースグループ Azure-AA-RG に属する、Azure Automation アカウント名 Azure-AA の中に、ReportRecipients という名前の変数を作成し、その変数の値としてレポート受信者の電子メールアドレスを設定します。また、変数の暗号化は行いません。
完了すると、以下のような出力が表示され、変数が作成できたことがわかります
[新しい変数が作成されました]
PowerShell を使って資格情報アセットを作成
注意事項:作成される資格情報は、データを取得するために Azure にアクセスできる必要があります。アカウントは、レポートをメールで送信するのに使用されるため、Office 365 メールボックスも持っている必要があります。
- PowerShell を使用して Azure に接続します(まだ接続されていない場合)。
- 次のコマンドをコピーして、PowerShell コンソールに貼り付けます。username と password の内容を実際の正しいものに変更してください。
# Specify the username
$username = "USERNAME"
# Specify the password
$password = ConvertTo-SecureString -String "PASSWORD" -AsPlainText -Force
# Convert username and password strings into a credential object
$credential = [pscredential]::new($username,$password)
# Create the Credential Asset
New-AzAutomationCredential
-Name 'ServiceAccount'
-Value $credential
-ResourceGroupName 'Azure-AA-RG'
-AutomationAccountName 'Azure-AA'
このコードは、リソースグループ Azure-AA-RG に属する、Azure Automation アカウント名 Azure-AA の中に、ServiceAccount という名前の資格情報アセットを作成します。
完了すると、以下のような出力が表示され、資格情報アセットが作成できたことがわかります
[新しい資格情報が作成されました]
PowerShell を使ってスケジュールアセットを作成
注意事項:この例では、毎週月曜日の午前6時に Runbook を実行するためのスケジュールを作成します。
- PowerShell を使用して Azure に接続します(まだ接続されていない場合)。
- 次のコマンドをコピーして、PowerShell コンソールに貼り付けます。具体的な値については、1つずつチェックして適切な値に変更してください。
# Build the schedule parameters
$azSchedule = @{
Name = 'EveryMondayAtSix'
TimeZone = 'Eastern Standard Time'
StartTime = (Get-Date '11/25/2019 06:00:00 -05:00')
DaysOfWeek = 'Monday'
WeekInterval = 1
ResourceGroupName = 'Azure-AA-RG'
AutomationAccountName = 'Azure-AA'
}
# Create the schedule
New-AzAutomationSchedule @azSchedule
上の $azSchedule ブロックは、スケジュールのパラメーターがコンパイルされる場所です。スケジュールの名前は EveryMondayAtSix で、開始時刻の値は11月25日の午前6時(東部標準時)に設定され、毎週月曜日に繰り返されます。スケジュールは、リソースグループ Azure-AA-RG に属する、Azure Automation アカウント名 Azure-AA の中に作成されます。
注意事項:StartTime オフセット値は、TimeZone オフセット値と一致する必要があります。
例えば、TimeZone が -5:00 のオフセット値を持つ「東部標準時」である場合、StartTime パラメータには同じオフセット値を含める必要があります(例:11/25/2019 06:00:00 **-05:00**)。
完了すると、以下のような出力が表示され、スケジュールが作成できたことが確認できます
[新しいスケジュールが作成されました]
まとめ
このブログでは、Azure Automation のアセットとそのタイプについて説明し、Azure Portal と PowerShell の両方で、変数、資格情報、スケジュールの各アセットを作成する方法を示しました。
次回のブログでは、実行時に Runbook コードを使用してこれらのアセットを使用するサンプルの自動化プロジェクトを作成します。次回もどうぞよろしくお願いします。
June Castillote
June has been in IT since 2004 and is currently an IT Engineer and Consultant by day. He's also a freelance writer, blogger, and coder. When not dabbling with tech stuff, he's mostly busy with his family, their dogs, and trying hard to be a mechanic.