kkamegawa's weblog

Visual Studio,TFS,ALM,VSTS,DevOps関係のことについていろいろと書いていきます。Google Analyticsで解析を行っています

WSUSの代わりとしてAzure Update Managerは使えるのか

kkamegawa.hatenablog.jp

WSUSが非推奨となるアナウンス出たことを書いたら結構読まれてびっくりです。ありがとうございます。今後のパッチ管理はこんな感じにしたいんでしょうかね 。

  • 10台くらいまでのSMB:ADのドメインコントローラーのような例外を除いてWindows Updateに任せる
  • 100台くらいまで:Azure Update Managerにつないで管理
  • それ以上System Center使うよね?

いつもは「クラウドに移行しましょう」みたいなことを言いますが、今回に限っては「あと5年くらいはWSUSつかいつづけてもいいんじゃね?」というのが個人的なスタンスです。

というかですね。Azureのこの手のサービスで5年続いたものって多くない。 Azure Update Managerも前身のAzure Automation Update ManagementのGAが2018年で、6年ほどです。移行期間を入れると5年かどうかというところでしょう。なので、今のところはWindows Server 2025のWSUSに移行して、標準サポート終わるくらいまでの間状況をウォッチしておけばいいんじゃないかなと思います。Windows Server 2025はArcにつなぐとHotpatchが使えるので年4回の再起動でよくなるみたいですしね(もちろんWSUSが使うSQL Serverなどのパッチインストール後再起動を要求すると別です)。

今は移行ではなく、評価としてAzure Update Managerを試しておくのは悪くないと思います。ESUの運用やWindows Server 2025のHotpatchで必要になるからついでにという人もいるでしょう。

普通に使う方法はいくらでも載っているので、実際の運用でAzureポータルへのアクセス権を渡したくない、という場合を考えてみます。ぱっと思いつくのがPower BIです。

learn.microsoft.com

Azure Resource QueryをPower BIから発行してビジュアライズします。

patchinstallationresources
| where type has 'softwarepatches' and properties !has 'version'
| extend machineName = tostring(split(id, '/', 8)), resourceType = tostring(split(type, '/', 0)), tostring(rgName = split(id, '/', 4)), tostring(RunID = split(id, '/', 10))
| extend prop = parse_json(properties)
| extend lTime = todatetime(prop.lastModifiedDateTime), patchName = tostring(prop.patchName), kbId = tostring(prop.kbId), installationState = tostring(prop.installationState), classifications = tostring(prop.classifications)
| where lTime > ago(7d)
| project lTime, RunID, machineName, rgName, resourceType, patchName, kbId, classifications, installationState
| sort by lTime desc 

KQL力がないのでサンプルそのまま。Projectの部分はもうちょっといじれると思います。

で、これをPower BIに発行するとこんな感じ。

毎日更新したいのでセマンティックモデルを定期更新します。とりあえず毎日一度にしています。

Power BIのライセンスは必要ですが、Azureポータルにアクセスしなくても見えるので便利かなと思います。もしくはSharePointに貼り付けでもいいでしょう。

learn.microsoft.com

Update Managerは現状の適用状態を取得するしかなく、どんなパッチがリリースされているかはまったくわかりません。 データ抜くところは全然足りないので、この辺がResource Graphで取得できたらいいなぁとか、反映がかなり遅いので(Windowsでは適用済みでもAzureポータルでは未適用とか出る)、ここ何とかしてほしいとは思っています。

Azure Log Analytics AgentからAzure Monitor Agentへの移行に苦労した話

learn.microsoft.com

jpazmon-integ.github.io

2024/8/31までです。移行終わりました?私は大変苦労しました。自分の検証環境なので、同じデータが取得できているかという検証なしで都合一週間くらいあれこれやっていました。Azure ArcにオンボードしているオンプレミスPCとVMのうち、Log Analytics Agent時代から入れていた二台がどうしても消しても消しても復活して困っていました。8/31までのメモというか、移行で忘れている人がいないか書いておきます。

移行✅

Azure MonitorのWorkbookにある、AMA Migration Helperで見ればわかります。

Both Agentが1以上であったら移行漏れ。Migration StatusがIn Progressになって水色のバーと緑のバーが混在しています。度のエージェントが残っているかはLog Analytics Workspacesを見ればいいです。

実際に苦労した話を…

Automation Update Managementからの移行

learn.microsoft.com

オンボードしていればまずこれ。しかし、後述のAutomanageから削除しておけないと何回でも復活します…。方法はドキュメントの通りで、Automationアカウント使って移行処理やればまず失敗はしないはずです。

Azure Automanage

learn.microsoft.com

こいつに気づいてなくて大変苦労しました。最後の最後まで苦労しましたが、Activity Logみて、Automanage使ってプロファイル割り当てていることをすっかり忘れていたのを思い出しました。Automanageのベストプラクティスで更新履歴、AntiMalware, Log Analytics Workspacesを付けていたのです。

今後使うかどうかはともかく、とりあえずオフボードして、Log AnalyticsからLegacy Solution、VMから明示的に自動更新Noの拡張機能を削除したら移行終わりました…疲れた。

Sentinelのコンテンツパック

Sentinelに入れていたWindows DNSのLegacyパックも消しました。

おわりに

サポートにたくさん来ているそうですが、この辺もチェックしてみてください。あと、Automanage以外はAzureポータルのCopilotが教えてくれました。Log Analytics Workspaceに入るログの量もちゃんとエージェントが消えた分減りました。

Defender for Cloudの新しいIaCスキャナーがパブリックプレビュー

今までDefender for CloudのIaCスキャナーといえばオープンソースのTemplate AnalyzerTerraScanなどでした。

Template Analyzerもいいのですが、この度パブリックプレビューとして新しくCheckovが追加されました。

learn.microsoft.com

シンプルにスキャンをかけるだけなら使い方は簡単で、marketplaceからMicrosoft Security for DevOps(Azure DevOpsの場合)をインストールして、YAMLを定義してください。

pool:
  vmImage: ubuntu-latest

steps:
- task: MicrosoftSecurityDevOps@1
  displayName: 'Microsoft Security DevOps'
  inputs:
    categories: 'IaC'
    break: true

スキャンするだけならこう。Template Analyzerとの違いはルールセットが都度ダウンロードされるということでしょうか。Template Analyzerは最新のものを入れるとか、組織で独自のルールセットを作る時は便利かなと思います。タスクでbreak:trueを指定していると、スキャン時のエラーがあると後続のビルドタスクが進みません。

marketplace.visualstudio.com

sarifが出力されるので、publishすれば管理もできます。

learn.microsoft.com

GitHubの場合もmicrosoft/security-devops-actionというタスクがあるので追加します。

learn.microsoft.com

実行時のパラメータで細かい引数設定もできるので、こちらもどうぞ。

github.com

実行結果はPipelineの結果と。

AzureポータルのDefender for DevOpsのポータル内で見えます。

これは無料の範囲で使える(はず…)なので、使ってみてください。

Microsoft Build 2024 3日目

早かったものでもう最終日です。オンラインではいろんなセッションのつまみ食いとか自分のペース(特に英語ゆっくりとか)で聞きたいときにはいいのですが、やはり現地の担当者に質問できるとか録画で見えないデモやラボはありがたいですね。勘違いしていたのですが、予約が必要なデモ(時間決まっている)とオンデマンドでいつでものデモと二種類ありました。当日待つこともできたのですが、時間が見えないのでやめました。

その代わり特典の一つMCP無料受験を使ってSC-200受けたら…落ちました😅。いつも使っているハヅキルーペ忘れたと思ったら、端末がSurface Bookだったおかげでピンチイン/アウトがおもいのままでよかったです。試験中にlearn見えるの忘れてて…見るの思い出したら解けた問題がもうちょっとあったかなぁ…。GitHubの受験バウチャーももらったのでこちらは後日何とか受験します。

というか、日本中の試験センターHiDPIの端末にしてくれ!

C#13新機能セッション。これキーノート会場でしかも結構埋まっていたので関心の高さがうかがえます。私はこっち。

Advanced Securityまだなんもわからん、ということで。クエリ実行するの遅いなぁと思っていたらやはりautobuildタスクは使ったら負けらしい。このセッションやデモセッションでもautobuildではなく普通にビルドしてから解析でした。

Mark Russinovich氏の生成AIセッション。AIトレーニングに使うコンピューターリソースの話などから彼が使っているゲームPC(やるんだ…)の紹介の一コマ。データセンター内のケーブル引っ張るところとかなんでもハイテクなわけじゃなくて効果的に使っている話とか興味深いです。

MCP受験していたら遅れたのですが、毎年夏ごろに.NETの性能改善のものすごい長いブログを公開するStephen氏とHanselman氏の掛け合い。実際壇上でチューニングをライブでやっていきます。allocationが頻出していたのがなんとも。

build.microsoft.com

またゆっくり見返してみたい。

GitHub Copilot拡張の話。Limited Public Previewが始まったAzure拡張機能。AzureはLimitedですが、作る方はパートナープログラムに登録すればいい…のかな?

github.blog

早速Azure拡張機能に申し込んでみました。

こちらはGitHub Advanced Security for Azure DevOpsのデモ。Microsoftの人がどういう説明したいのかということを聞いてみたかった。

build.microsoft.com

ちょっと離れてAzure Monitorのセッション。VMの監視をする場合、「VMが起動している」とか「CPU、メモリの消費量」はわかるのですが、「どのプロセスでリソースが消費されている」ということはわかりませんでした。もうすぐ来るConituous Performance Diagnostics for Azure VMsは解決してくれそうで結構期待しています。

最後はNES(ファミコンのUS版)で.NETを動かすというどういう経緯で決まったのか全く分からないセッションです。いいぞもっとやれ。

build.microsoft.com

非常に小さいリソースしか持てないNESで.NETを動かすために(今回はHello Worldが目標)、可能な限り小さくしたCLRを作って、NuGetパッケージとして公開しているそうです。C# コンパイラーからMSILを生成して、6502を出力と。

www.nuget.org

GCもなければクラスもない状態ですが、最終的にはスーパーマリオを動かすのが目標だそうで、どこまでできるか…?

一応右側のチキンのまいたような奴はたべられましたが、これだけでおなかいっぱいです…。

夜のパーティはLumenフィールドでのイベントでした。ここでのイベントは2013年のGlobal MVP Summit以来です。

2013年の写真から。この時CanonのS100買ったのに、アメリカでリコール対象となっている操作不具合が起きてしまって、iPhone 3GSでとる羽目になったんですよね…

アメリカの球場で食べるホットドッグはおいしいということだったのでいただきましたが…パンがかなりつぶれやすくかつ、パンが上下に切れているので、割と食べづらかったです。

ほかのものは正直あんまり…だったので、ホットドッグもう一回チャレンジしてもよかったかなぁ。普段は降りることのできない人工芝あるけてよかったですね。

明日はちょっと用事でMicrosoft本社に行って、土曜日に帰国します!