このブログでは、ドラフトの Runbook を公開し、それをスケジュールして自動的に実行する方法、手動で実行をトリガーする方法、Runbook のログを確認する方法について説明します。
このパート5が、Azure Automation に関するこのシリーズの最後のブログになります。以前のパート1からパート4を前提にしていますので、ご確認ください。
Azure Automation パート1:イントロダクション
Azure Automation パート2:Runbook の作成
Azure Automation パート4:サンプルの Runbook のテスト
前のパート4では、Runbook にコードをインポート・変更する方法と、テストペインを使用して Runbook コードをテストする方法を示しました。
ドラフト Runbook の公開
テストして確認し、Runbook のを実際に運用する準備が整ったら、次に行うことは、Runbook の公開です。いったん Runbook を公開すると、ドラフトに戻すことはできませんが、更新することは可能です。
Runbook の公開は、Azure Portal からも、PowerShell を使用しても、可能です。以下で説明します。
Azure Portal を使って Runbook を公開
Runbook を公開するには、Runbook に移動して、[Edit] をクリックします。
[’Edit’ をクリックしてエディタを開く]
エディタで、[Publish] ボタンをクリックします。続行しますかというプロンプトが出ますので、[Yes] をクリックします。
[’Publish’ をクリックし、続行するために ‘Yes’ をクリックする]
公開が完了すると、Runbook のステータスが、Published に変わります
[Runbook のステータスが Published になりました]
PowerShell を使って Runbook を公開
PowerShell を使って Runbook を公開するには、次の手順で行います。
- PowerShell を使用して Azure に接続します(まだ接続されていない場合)。
- 次のコマンドをコピーして、PowerShell コンソールに貼り付けます。
Publish-AzAutomationRunbook
-Name AzVmReport
-AutomationAccountName Azure-AA
-ResourceGroup Azure-AA-RG
上記のコードは、リソースグループ Azure-AA-RG に属する、Azure-AA というAzure Automation アカウントを使用して、自動化 Runbook、AzVmReport を公開します。
コマンドが完了すると、次のような出力が表示されます。
[PowerShell を使用して Runbook を公開]
公開された Runbook の実行をスケジュール
Runbook が公開されました。この時点で、Runbook コードは、前のブログ(パート3)で作成した3つのアセットのうち、変数アセットと資格情報アセットの2つを使用しています。
公開された Runbook は、スケジュールアセットにリンクできます。設定されたスケジュールに基づいて Runbook を実行することができます。
Runbook の、スケジュールアセットへのリンクは、これまでと同様、Azure Portal と PowerShell の両方で可能です。以下にその方法をしまします。
Azure Portal を使用して Runbook をスケジュールにリンク
Runbook をスケジュールにリンクするには、Runbook に移動し、[Link to schedule] をクリックします。
[‘Link to schedule’ をクリック]
次に、[Schedule Runbook] で、前に作成したスケジュールの名前、EveryMondayAtSix を選択しますです。確認して、[OK] をクリックします。
[前に作成したスケジュールを選択]
完了したら、Runbook の [Schedules] ページに移動し、スケジュールがリンクされており、スケジュールのステータスがオンになっていることを確認できます。
[Runbook が EveryMondayAtSix スケジュールにリンクされています]
PowerShell を使用して Runbook をスケジュールにリンク
PowerShell で Runbook をスケジュールにリンクするには、次のようにします。
- PowerShell を使用して Azure に接続します(まだ接続されていない場合)。
- 次のコマンドをコピーして、PowerShell コンソールに貼り付けます。
Register-AzAutomationScheduledRunbook
-Name AzVMReport
-ScheduleName EveryMondayAtSix
-AutomationAccountName Azure-AA
-ResourceGroupName Azure-AA-RG
上のコードは、AzVmReport Runbook を EveryMondayAtSix スケジュールにリンクするものです。
完了すると、次のような出力が表示されます。
[PowerShell を使って Runbook が EveryMondayAtSix スケジュールにリンクされました]
Runbook の実行を手動でトリガー
公開された Runbook は、もちろん、スケジュールして自動実行するだけでなく、実行を手動でトリガーすることもできます。
Azure Portal を使って Runbook の実行をトリガー
ポータルを使用して Runbook の実行をトリガーするには、Runbook に移動して、 [Overview] ページで [Start] をクリックするだけです。プロンプトが出たら [Yes] をクリックすれば、Runbook が実行されます。
[Azure Portal で Runbook の実行を手動でトリガー]
実行が完了すると、ステータスが表示されます。
[Runbook の実行が完了し、ステータスが Completed になりました]
PowerShell を使って Runbook の実行をトリガー
PowerShell を使用して Runbook の実行をトリガーする方法は以下の通りです。
- PowerShell を使用して Azure に接続します(まだ接続されていない場合)。
- 次のコマンドをコピーして、PowerShell コンソールに貼り付けます。
Start-AzAutomationRunbook `
-Name AzVmReport `
-AutomationAccountName azure-aa `
-ResourceGroupName azure-aa-rg
上のコマンドは、AzVmReport Runbook の実行をトリガーします。
Runbook の実行ステータスを確認するには、以下のコマンドを使用して最新のステータスログを取得します。
Get-AzAutomationJob `
-RunbookName AzVmReport `
-AutomationAccountName Azure-AA `
-ResourceGroupName Azure-AA-RG
次のような出力が表示され、ステータスを確認できます。
[Runbook の実行ステータスが Completed になっています]
詳細ログの有効化
作成された Runbook の詳細ログはデフォルトでは無効になっています。そのため、スクリプトに Write-Verbose コードが含まれていても、それらは Runbook ログに記録されていません。
Azure Portal を使って詳細ログを有効化
ポータルを使用してRunbookの詳細ログを有効にするには、Runbook に移動し、[Runbook setting] セクションの [Logging and tracing] をクリックします。 右ペインで、[Log verbose record] スイッチを [On] に切り替え、[Save] ボタンをクリックします。
[ポータルから詳細ログを有効化]
PowerShell を使って詳細ログを有効化
PowerShell を使用して Runbook の詳細ログを有効にするには、Azure PowerShell セッションで下のコードをコピーして実行します。
Set-AzAutomationRunbook `
-Name AzVmReport `
-AutomationAccountName Azure-AA `
-ResourceGroupName Azure-AA-RG `
-LogVerbose $true
このコマンドは、AzVmReport Runbook の詳細ログを有効にします。コマンドが完了すると、以下のように表示されます。
[PowerShell で詳細ログを有効化]
Runbook ログの確認
毎週実行するようにスケジュールされた、または手動でトリガーできる公開済みの Runbook ができましたが、レポートが届かなかったり、コンテンツが空だったりしたらどうすればいいでしょうか?
そのような場合は、Runbook のジョブログが役立ちます。ログをチェックすると、Runbook の実行で何が起こったのかがわかり、トラブルシューティングに利用できます。
ログは、Azure Portal を使っても、PowerShell を使っても、チェックできます。
Azure Portal を使ってログをチェック
ログをチェックするには、Runbook に移動し、[Resources] セクションで [Jobs] をクリックします。右ペインに表示されるリストからチェックしたいジョブを選択します。
[リストからジョブを選択]
すると、該当のジョブが表示され、そのジョブに関するエラー、警告、詳細記録などの利用可能なすべてのログを表示できます。[All Logs] をクリックすると、詳細メッセージを含むすべてのログ情報が表示されます。
[ポータルで Runbook ジョブからのログを表示]
PowerShell を使ってログをチェック
PowerShell を使用してログをチェックするには、まず、以下のコマンドを使用してチェックしたいジョブのIDを知る必要があります。
Get-AzAutomationJob `
-RunbookName AzVMReport `
-AutomationAccountName Azure-AA `
-ResourceGroupName Azure-AA-RG
このコマンドでジョブのリストが表示されますから、チェックしたいジョブを見つけてそのIDをコピーします。
[チェックしたいジョブのIDをコピー]
IDをコピーしたら、PowerShell で次のコマンドの -Id の内容をコピーしたIDに変更して、実行します。ここでは、Type プロパティと Summary プロパティだけを表示するようにしています。
Get-AzAutomationJobOutput `
-Id 75bebc48-e542-4669-bdc2-8023cd698e30 `
-AutomationAccountName Azure-AA `
-ResourceGroupName Azure-AA-RG |
Format-Table Type, Summary
[PowerShell を使って Runbook ジョブからのログを表示]
まとめ
Azure Automation に関するこのシリーズの最後のブログ、パート5で、Runbook を公開する方法、Runbook をスケジュールして指定した間隔で自動実行する方法、手動で実行をトリガーする方法、そして、詳細ログを有効化し、ログを表示する方法を、Azure Portal を使う場合、PowerShell を使う場合、それぞれについて説明しました。
このシリーズに最後までおつきあいいただき、どうもありがとうございました!DevOps と自動化の促進のために、Azure Automation を使いこなしていただければ幸いです。
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.