この記事はシリーズの4番目の記事です。まだほかの記事を読んでない方は先に読むことをお勧めします!
今回は、「修復タスク」を使って、OpsRampエージェントが入っていないと判断されたVMに対してエージェントを自動インストールさせちゃいます!
…、とはいえ、前回のポリシー適用時に、修復タスクも作成してありますので、全自動です(笑

自動的に、評価され、しばらくすると完了となりました。

どのノードに対して適用されたのかもわかります。Azure Stack HCI OSのノードも対象になっていますね。

ですが、ポリシーへの準拠状況としてはまだ準拠していないものがほとんどです。反映にはそれなりに時間がかかります。のんびりと待ちます。

ここで、1日以上時間をおきました。ですが、結局適用されたのは2台のみでした…。おかしいですね。


適用され、きちんと準拠している状態と出ているサーバーはOpsRampのコンソールからも確認できました。

準拠してくれない原因を調べたところ、例えばVMが停止したままだったり、Azure Arcで接続が切れていたりなどきちんと稼働してAzureと通信が取れていないVMであることがわかりました。Azureポリシーのコンプライアンスの状態の画面からだとパッと見ではそこまでわかりませんね…。
とはいえ、1台づつリソースを簡単に確認することはできます。



この状態では、コンプライアンスに準拠した状態にならないのは当たり前ですね…。
このようなオフラインのままのVMを一括でリストアップするようなことはAzure MonitorやResource Graphあたりを使ってやれば簡単にできそうですね。また別の機会に記事にしたいと思います。
というわけで、100%になっておらずちょっと気持ちが悪いところもありますが、オリジナルのAzure Policyのポリシーを作成し、それを展開することでOpsRampエージェントをVMに導入し、管理しているテナントに紐づけることを自動化することができました。さらに、コンプライアンスの状態も継続的に確認できます。これなら誤ってエージェントをアンインストールしたような状況でも再度エージェントがインストールされますし、管理化に入っていないVMを簡単に追跡できますね。
また、見てきたようにAzure Arcを使ってAzure外のVMも対象にすることができます。今回は触れていませんがAzure LightHouseと連携させて、顧客のテナントに対してポリシーを適用することも可能です。色々と夢がひろがりますね!