Azure Automation シリーズのパート3では、アセットの管理について説明します。
シリーズのパート1とパート2で、イントロダクションと Runbook の作成の説明を行いました。以前のブログをまだお読みでない場合は、パート3に進む前に、是非お読みいただければと思います。
このブログで作成するアセットは、以下のタスクを実行する自動化プロジェクトのサンプルの準備です。
このサンプルの自動化プロジェクトについては次のブログで詳しく説明する予定ですが、ここではまず、アセットについて説明します。
通常の PowerShell スクリプトでは、リファレンスのために任意のディレクトリにデータを含むテキストファイルを作成できます。また、スクリプトは実行時にそのテキストファイルからデータをインポートできます。基本的には、このファイルはアセットと見なされます。
Azure では、Azure Automation のアセットは永続データを保存するために使用されます。アセットが作成されると、実行のたびに Runbook からその値を呼び出すことができます。
違いは、コンピュータ内にある別のファイルではなく、コンテナにアセットが保存されることです。そのため、Azure Automation のアセットはより安全で信頼性が高く、資格情報や気密性の高いテキストを保存する場合は特に便利です。
このブログでは、3つの自動化アセットを使用します。それぞれのアセット・タイプについて簡単に説明します。
変数は、通常の PowerShell スクリプトで使用される変数と同じように機能します。ただし、スクリプトまたはコードで定義するのではなく、値は Azure Automation の変数アセット内に保存されます。
変数を暗号化しておいて、アセットを見ることができる誰にでもその値を読み取れてしまうことがないようにすることもできます。変数に割り当てられるタイプは、ストリング、日時、整数、ブール関数、特定せず、などです。
資格情報は、ユーザー名とパスワードのペアを保存するために特別に設計された特別なタイプの変数です。このタイプのアセットを使用すると、通常はスクリプトまたはテキストファイルにハードコードされている資格情報を公開するリスクを避けることができます。
スケジュールは、特定のある時点に、またはある時点に定期的に、Runbook をトリガーするために使用されます。たとえば、毎週金曜日の午前6時に Runbook を実行するスケジュールアセットを作成できます。
このブログで、Azure Portal と PowerShell を使用して、変数、資格情報、およびスケジュールの各アセットを作成する方法を説明します。
注意事項:ここでは、Runbook で作成されるレポートの受信者のメールアドレスを変数に入れます。
[ ‘Add a variable’ ボタンをクリック]
ポータルの右側に [New Variable] フォームが表示されます。
[ ‘New Variable’ フォーム - 必要な詳細情報を入力]
変数が作成されると、次のように表示されます。
[新しい変数が作成されました]
注意事項:作成される資格情報は、データを取得するために Azure にアクセスできる必要があります。アカウントは、レポートをメールで送信するのに使用されるため、Office 365 メールボックスも持っている必要があります。
[ ‘Add a credential’ ボタンをクリック]
ポータルの右側に [New Credential] フォームが表示されます。
[ ‘New Credential’ フォーム - 必要な詳細情報を入力]
資格情報が作成されると、次のように表示されます
[新しい資格情報が作成されました]
注意事項:この例では、毎週月曜日の午前6時に Runbook を実行するためのスケジュールを作成します。
[ ‘Add a schedule’ ボタンをクリック]
ポータルの右側に [New Schedule] フォームが表示されます。
[ ‘New Schedule’ フォーム - 必要な詳細情報を入力]
スケジュールが作成されると、次のように表示されます
[新しいスケジュールが作成されました]
注意事項:ここでは、Runbook で作成されるレポートの受信者のメールアドレスを変数に入れます。
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 という名前の変数を作成し、その変数の値としてレポート受信者の電子メールアドレスを設定します。また、変数の暗号化は行いません。
完了すると、以下のような出力が表示され、変数が作成できたことがわかります
[新しい変数が作成されました]
注意事項:作成される資格情報は、データを取得するために Azure にアクセスできる必要があります。アカウントは、レポートをメールで送信するのに使用されるため、Office 365 メールボックスも持っている必要があります。
# 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 という名前の資格情報アセットを作成します。
完了すると、以下のような出力が表示され、資格情報アセットが作成できたことがわかります
[新しい資格情報が作成されました]
注意事項:この例では、毎週月曜日の午前6時に Runbook を実行するためのスケジュールを作成します。
# 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 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.
より優れた業務アプリケーションやウェブサイトの開発に役立つ、ニュース、情報、チュートリアルをご案内します。
The specified form no longer exists or is currently unpublished.