初めに
以前にRunbook Hybrid Workerについて以下2本の記事を投稿しました。
- Azure Automation Hybrid Runbook Worker(拡張機能ベース)についてまとめておく
- LogicAppsからRunbook(Hybrid Runbook Worker)に入力パラメータを渡す方法
今回は、Runbook Hybrid Worker拡張機能のマニアックな部分を記録していきます。Runbookで困ったらこの中にヒントがあるかもしれません。
<本書における前提条件>
OS:Redhat 8系
スクリプト実行環境:PowerShell 7.2
目次
Runbookの実行ユーザー
Runbookに以下記載して実行してみます。
whoami
hweautomationユーザー
こちらのDocsにでてくるhweautomationユーザーを見てみました。
以下、確認コマンド
cat /etc/passwd
結果こんな感じでした。
- ホームディレクトリ:/home/hwautomation
- ログインシェル名:/bin/bash
Workerプロセスの確認
こちらのDocsに従って確認してみました。
ps aux | grep hwd
起動時の結果はこんな感じ
プロセスの見方については、こちらの記事を参照してください。
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
root 99999 0.0 0.0 12216 1108 pts/0 S+ 07:34 0:00 grep --color=auto hwd
設定ファイル
以下、ディレクトリとなります。versionはバージョンが入ります。
/var/lib/waagent/Microsoft.Azure.Automation.HybridWorker.HybridWorkerForLinux-<version>
config/0.setting
Automation AccountURLやProtectedSettingsの記載があります。
こちらがAutomationAccountへの接続情報を持ったファイルになるかと思われます。
{
"runtimeSettings":
[
{
"handlerSettings":
{
"publicSettings":
{
"AutomationAccountURL": "<AutomationAzzountのURL>"
},
"protectedSettings": null,
"protectedSettingsCertThumbprint": null
}
}
]
}
HybridWorkerAgentディレクトリ
インストール時に使用されるモジュールがいろいろ入っています。
hweautomationユーザー作るpythonとか設置されています。
lsコマンドの中身をここに記載しておきます。
status/0.status
拡張機能名やインストール日、プロビジョニングの状態が記載されています。
[
{
"version": "1.0",
"timestampUTC": "2024-07-02T12:16:28Z",
"status":
{
"name": "Microsoft.Azure.Automation.HybridWorker.HybridWorkerForLinux",
"operation": "Enable",
"status": "success",
"code": "0",
"formattedMessage":
{
"lang": "en-US",
"message": "Enable Successful."
}
}
}
]
AzurePortalでは以下から同じ情報を確認できます。
Automationアカウント>ハイブリッドWorkerグループ>ハイブリッドWorker
HandlerEnvironment.json
ログフォルダやConfigファイル、ステータスファイル等のディレクトリ情報が記載されたファイルとなります。
[
{
"name": "Microsoft.Azure.Automation.HybridWorker.HybridWorkerForLinux",
"version": 1.0,
"handlerEnvironment":
{
"logFolder": "/var/log/azure/Microsoft.Azure.Automation.HybridWorker.HybridWorkerForLinux",
"configFolder": "/var/lib/waagent/Microsoft.Azure.Automation.HybridWorker.HybridWorkerForLinux-1.1.16/config",
"statusFolder": "/var/lib/waagent/Microsoft.Azure.Automation.HybridWorker.HybridWorkerForLinux-1.1.16/status",
"heartbeatFile": "/var/lib/waagent/Microsoft.Azure.Automation.HybridWorker.HybridWorkerForLinux-1.1.16/heartbeat.log",
"eventsFolder": "/var/log/azure/Microsoft.Azure.Automation.HybridWorker.HybridWorkerForLinux/events",
"eventsFolder_preview": "/var/log/azure/Microsoft.Azure.Automation.HybridWorker.HybridWorkerForLinux/events"
}
}
]
config/HandlerStatusファイル
Runbookにおけるハンドラーの実行状況が格納されたファイルです。
{
"name": "Microsoft.Azure.Automation.HybridWorker.HybridWorkerForLinux",
"version": "1.1.16",
"status": "Ready",
"code": 0,
"message": "Plugin enabled",
"supports_multi_config": false,
"extension_status": null
}
Troubleshooterディレクトリ
トラブルシューティング用のスクリプトの入ったディレクトリ。
Linuxでは以下をトラブルシューティングで使用するようにDocsに記載があります。
/var/lib/waagent/Microsoft.Azure.Automation.HybridWorker.HybridWorkerForLinux-<version>/Troubleshooter/LinuxTroubleshooter.py
終わりに
設定ファイルは未熟でよくわからない構成ファイルも多くあるので、わかったらここに追記していきます。なお、こちらの情報は拡張機能のバージョンによって変更となっている可能性がありますので、記載のパスを元にファイルを実際に確認しつつ判断してください。