kkamegawa's weblog

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

新しいGitHub Issue(Public Preview)を試す

github.blog

GitHub Issueはラベルだけで管理できて、慣れている人や単一のレポジトリで済むときには便利なのですが、複数のレポジトリでお互い依存関係があるような作業をしていると追いかけるのはつらかったです。そしてできたのがGitHub Projectで、だいぶ良くはなったのですが、やはりタスクの階層ができないのはちょっと辛かった。

そんな中できたのが、タスクの中にタスクが定義できます。使うにはorganization単位で申請します。申請したら一日もかからずに有効化されましたのでやってみましょう。

有効化されると、タスクがこのようにcreate moreのチェックがつきます。

チェックを付けて作ると、連続してissueが作られます。

作成したタスクの中にタスクの作成、もしくは既存タスクの関連付けができるようになります。いいですね。

サブタスク作るとちょっと変わったuiになります。画面下部にlabelやissue type, milestone, projectといったおなじみの項目が用意されています。

もちろん普通通りの操作ができます。

関連タスクがこんな風にわかりやすく見えるのはいいですね。

azure boardsのような階層構造になっているのかな、と思ってprojectに親タスクをto doに追加してみたら親タスクだけが追加されて、サブタスクはno statusのままでした。この辺はあくまでもissueとしては一つずつ作られるだけで、 projectとしての管理は別のようですね。

これはこれでいい人も多いと思いますが、子タスクが全部クローズされたら親もクローズしたいみたいな要望もあるんだろうなとは思います。今devblogradioで一つのissueに全部繋げていますが、分野ごとにサブタスクに関連付けられたら面白いかもしれないかなと思っています。見る方が大変かなぁ。

もうちょっと試してみようと思います。

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 DevOps 2024/9/26の更新

Azure DevOps Sprint 245リリースノートの翻訳を行いました。オリジナルはこちらからご覧ください。

learn.microsoft.com

今回は割と多く更新されていますね。GHAzDo(GitHub Advanced Security for Azure DevOps)も相変わらず投資されています。基本的にUIの更新とサードパーティSARIFサポートは使っている人うれしいでしょう。サードパーティ使っているときもアラートルールがちゃんと区別できるようになるのはありがたいですね。

GitHubとの統合で AB# リンクが見やすくなるとか、レポジトリ接続のREST APIが増えたのはいいですね。

添付ファイルを完全に削除できるようになったのはいいですね。GitHubでは…できないのかな?

Azure DevOpsも長い間運用されたことでレポジトリのサイズや構造に問題が出るケースがあるそうで、新しいHealth and usageパネルが追加されるそうです。私のところではまだないですが、使っているorganizationなかなか長く使っているので、出たら確認してみます。

セルフホストエージェント用のagentが.NET 8に移行するそうで、古いOSが軒並みサポート外になっています。割と多くの人に影響するのはUbuntu 18, Red Hat Enterprise Linux 7あたりでしょうか?おそらく年末ごろにかけてUbuntuも24.04がLatestになるので、移行は計画的に。

PowerShell, Bash, cmdなどのシェルタスクに渡す引数はちょっと失敗すると脆弱性につながります。そういう攻撃から守るためのインジェクションを防ぐために引数の検証機能があるのですが、それを有効にすると意図しない非互換につながります。プレビューモードをサポートしたということのようです。これはできれば有効にしたいですね。

アプリ登録にサブスクリプション名が付くのちょっと嫌だったのですが、接続名になるのは助かります。

Test Plansでようやくパイプラインとシームレスに結合できるようになったんですね。これ昔のXAMLエージェント(Classic Pipelineのもう一つ前)時代でできていたことが長い間できなくて困っていました。ありがたいですね。

Chrome拡張機能がmanifest v3へ移行することになっていて、Chrome版はすでに移行していますが、それがEdgeにも、ということのようですね。自動的に移行されるし、ユーザーとして何か変わるわけでもないわけではないので、そのままでいいはずです。

ではまた三週間後。

translate to Japanese to Azure DevOps release not…

WSUS非推奨化発表に伴う感想と今後どうするのか

techcommunity.microsoft.com

※ とりあえず現時点(2024/9/21)でのアナウンスなので、今後撤回もしくは延期される可能性もあります。

10月公開といわれているWindows Server 2025ではWSUSは継続するようですが、今回非推奨化のアナウンスが出たので、(変更がなければ)おそらく2025の次のWindows Serverには非推奨マークがつくのだろうと思います。私もWSUS初登場時からずっと使ってきて、大変お世話になりました。感慨深いですね。

とはいえ、私が管理する自宅ではもうWSUSの運用やめちゃったんですよね。昔は複数のWindows Serverがあって、Officeもいろいろあってと自宅で10台程度でも割と運用する意味があったんですが、今はもうないかなーということでWindows Server 2019のころにやめてしまいました。

WSUSそのものが重い

Visual Studioサブスクリプションライセンスで提供されるSQL ServerとWindows Serverで環境作って検証していましたが、実機でもかなり重かった。自宅の狭いネットワークだと帯域は問題にならないのですが、本番ではサーバーや社内のLANのせいで一日たってもダウンロードできないとかしょっちゅうみました。これは笑い話があって、組織内のWSUSからのダウンロードまつより普通にUpdate Catalogから手動でダウンロードしちゃう方が早かったんですよね。Update Catalogだと数分でダウンロード終わるし。

本番だといい性能のサーバー使うのでしょうけど、これにどこまでお金かけるのか?というとちょっとためらうところが多いのではと思います。ちなみに自宅でもそこそこいい性能のCPUとかディスクとか使っていました。SQL Serverのインデックスや使わなくなったパッチを定期的にクリーンアップしないといけないというのもつらかった。

あと、ディスクサイズがね…当時2TBのディスクをほぼWSUS専用で用意していたのに容量不足の警告出たときはびっくりしました。Windows 10とWindows Server 2016/2019くらいだったかな?だけなのに…。クリーンアップもそれなりにしていましたが、ちょっとこれはやってられないなということになって廃止しました。

環境移行面倒

WSUSの移行ってたまに聞かれますが、同期したコンテンツを移すよりももう一度新しいサーバーで同期してくれ、ということになっていて、これがまぁ面倒でした。いやそりゃ古くもう不要になったOSやアプリがなくなるので心機一転ということはわかるのですが。あのWSUSのカタログ適当じゃないけど、ルールがよくわからなくて困ったんですよね。このカタログは本当に同期する必要あるのかとか。

WSUSで管理できないものも増えた

ほぼOfficeなんですが。会社でも「OfficeはWSUSから管理できますか?」という質問が割とよくあります。WSUSのカタログにあるから勘違いされるのですが、クイック実行のOfficeではMicrosoftのCDNからの取得になるのでできません。

learn.microsoft.com

したがってオフライン環境で組織内に何らかの手段で取得するサーバーを用意しなくてはなりません。OfficeとってこれないのであればほぼOSだけですよね。しかもこれ結構めんどくさい(毎月とってくる手間もある)。まぁWSUSをオフライン運用していた人ならできるのかもしれませんが…。

あとはproxy使っている場合、組織内ではProxyを使うけど組織外では使わない、なんて制御もちょっと面倒。バイパスするとかそりゃいろいろ方法はありますが、小さいところではそれこそ面倒。

じゃあどうするの

元記事のコメントにもついていますが、無料で展開をコントロールするソリューションというのはないっぽいですね。Ansible使ってリモートで順繰りにとかありましたが、結構でかいパッチファイルを一台ずつ送るのはちょっとなぁ…という気はします。Windows Updateなら差分なので毎月真面目にインストールしていれば2-300MBくらい?でしょうかね。Defenderなどの定義ファイルの問題もあります。

Unified Update Platformが出てきて、オンプレミスにも提供されたから、細々と続くのかなと思っていたので、今回の発表は正直ちょっと意外でした。

learn.microsoft.com

jpmem.github.io

blogs.windows.com

techcommunity.microsoft.com

サーバーはAzure ArcにつないでAzure Update Managerでやって、クライアントはWindows E3/E5(もしくはM365 E3/E5)ライセンスのAutopatch使えということなのでしょうけど、Update ManagerってArc Enabledだと$5/server/monthというまぁまぁなお値段します。台数少なければWSUSサーバーの運用よりは安いとは思うのですが…ね。

learn.microsoft.com

azure.microsoft.com

Update Managerも20台くらいまでは一台ずつでもいいけど、それ超えたらボリュームディスカウントというか、Tier制にしてほしいですね。あとは長期予約割引とか。

どうしても組織内で配布したいという場合はMicrosoft 接続キャッシュ(Connected Cache)を使うのでしょう。まだプレビューですが、WSUS廃止までには正式版になる…のかな。ネットワーク帯域の節約はここに集約していくのでしょうね。

learn.microsoft.com

というとりとめもない感想でした。