Jumpstart HCIBox

Azure Arc + Azure Stack HCIを簡単にAzure上で試せる「Jumpstart HCIBox」を実際に展開して試してみました。自動化がとっても素敵です! https://youtu.be/n0vRy0_trTQ

December 28, 2022 · 1 min · 胡田昌彦

Azure Storage Mover

https://learn.microsoft.com/ja-jp/azure/storage-mover/service-overview Azure Storage MoverはオンプレミスからAzureのストレージへの移行サービスだそうです。エージェントを任意の場所のVMにインストールした上で、クラウドサービスを使ってデータを移行するとのこと。 現時点ではまだNFS 共有から Azure BLOB コンテナーへの移行しか対象になっていないようですが、これからどんどんサポート対象を追加するそうです。 やっぱりSMBのファイル共有に対応してほしいところですね!

December 26, 2022 · 1 min · 胡田昌彦

AVD Insightsの複数ホストプール対応がパブリックプレビュー

Announcing the Public Preview of AVD Insights at Scale https://techcommunity.microsoft.com/t5/azure-virtual-desktop-blog/announcing-the-public-preview-of-avd-insights-at-scale/ba-p/3685387 AVD Insitesで複数のホストプールをまとめてみられる機能がパブリックプレビューで登場しています。特に何もしなくても使えるようです。便利になりますね。

December 25, 2022 · 1 min · 胡田昌彦

Azure Virtual Desktop のホストプール展開のアベイラビリティゾーン対応がGA

Announcing general availability of support for Azure availability zones in the host pool deployment https://techcommunity.microsoft.com/t5/azure-virtual-desktop-blog/announcing-general-availability-of-support-for-azure/ba-p/3636262Azure Virtual Desktop のホストプール展開のアベイラビリティゾーン対応がGAになってますね。 可用性が高まって良いことです。

December 25, 2022 · 1 min · 胡田昌彦

RDP ShortpathがGA

Announcing general availability of RDP Shortpath https://techcommunity.microsoft.com/t5/azure-virtual-desktop-blog/announcing-general-availability-of-rdp-shortpath/ba-p/3691026 RDP ShortPathがGAしてますね。クライアントとセッションホストの両方がインターネットにUDPで通信できていれば両者は直接の通信でRDP接続ができます、と。

December 25, 2022 · 1 min · 胡田昌彦

【動画】更新今週のAzure更新情報

毎週土曜日に一週間分のAzure更新情報を簡単にさらっと確認するという内容でYouTube の動画を更新してます。 https://youtu.be/BItLUJiTJ4w 今週は個人的に1番気になったのは下記のプレビューです。 https://azure.microsoft.com/ja-jp/updates/public-preview-azure-arc-enabled-azure-container-apps/ Azure Arcで接続、管理したオンプレや他クラウドのKubernetesサーバーでAzure Container Appsを動かせるという話ですね。とてもハイブリッドな感じで素敵です。 まだマネージドIDには対応していないようですが対応してくれるのも時間の問題でしょう。おそらく。

December 24, 2022 · 1 min · 胡田昌彦

#stablediffusion をCPUのみで動かす!しかも #docker を使って環境を汚さずに実行環境を整える!

私の手持ちのPCではGPUが貧弱(NVIDIA Geforce GTX 1650 4GB/ 1660 SUPER 6GB)でStable Diffusionが動作しませんでした(https://youtu.be/ba_LcDW8jtc)。 悔しいのでCPUのみで動作させるバージョンをDocker for Windows環境(WSL2使用)にて動作させてみました。 インストラクションに一部間違いがあり少しだけ苦労してしまいましたが、無事にCPUのみでStable Diffusionを動作させることに成功しました。 コンテナを使っているので環境構築自体はとても簡単です。ただ、もちろんCPUパワーの問題があり、画像生成には私の環境では1枚12分もかかってしまいます。でも、ローカル実行できるのとできないのとでは大違いですので動作させることができてよかったです。 ただし、この手法でもメインのRAMは16GBはないと動作させるのは厳しいだろうと思いますのでご注意ください。 時間がかかってもいいから手元のPCでStable Diffusionを使ってみたい!という方はぜひ動画を見ながら一緒にTryいただければと思います。 https://youtu.be/WwHA3IOVtiU 02:16 Gitレポジトリのダウンロード- 02:47 Torrentクライアントを用いたモデルデータのダウンロード- 03:19 Torrentクライアントのダウンロードとインストール- 06:25 ダウンロードしたGitレポジトリの展開- 07:34 ダウンロードしたモデルデータの配置- 09:36 Dockerコンテナの構成- 13:28 依存ライブラリ群の導入- 14:29 condaでの環境切り替え- 14:38 Stable Diffusionの利用(txt2img.py使用)- 15:38 初回実行時のモジュールダウンロード- 17:44 メモリ不足でkillされてしまうトラブルのトラブルシューティング- 25:46 WSL2へのメモリ割り当て増加後の再実行- 28:51 画像生成後の確認

September 6, 2022 · 1 min · 胡田昌彦

#stablediffusion をWindowsにボタン1発で導入できGUIで操作できる 「NMKD Stable Diffusion GUI」を試してみました(低スペックGPUでは動作せず)

Stable Diffusionが簡単にローカルにインストールできるということで「NMKD Stable Diffusion GUI」を使ってインストールしてみました。 https://nmkd.itch.io/t2i-gui 導入自体はとても簡単で本当にボタンをクリックするだけです。 ただし、実際に動作させるためにはそれなりのGPU専用のメモリ容量があるGPUが必要で、私の手持ちの2台のPC(NVIDIA GeForce GTX 1650, 1660 SUPER)ではエラーになったり、緑一色の画像しか生成できなかったりしました。 Azure VM(NC6s_v2, GPUのRAMは16GB)で試したところ快適に動作しました。 これは、まともなGPUが欲しくなってしまいますね~。 https://www.youtube.com/watch?v=ba_LcDW8jtc

September 4, 2022 · 1 min · 胡田昌彦

AzureへのAzure Pipelinesを使ったアプリ(functions)とインフラ(Bicepメイン)のCICD / PullRequestをトリガーに独立環境を展開する

現在業務でAzureをプラットフォームにしたシステムの開発をしています。.netのコードがありそれがAzure functionsに展開されて動いている感じです。「何を作るか」「どうやって作るか」などかなりの部分を私がコントロール可能な状況にさせてもらってるので、色々とやりたいことが実現出来て素敵な感じです。 そんな中、アプリ開発はチームメンバーに任せて、私は主にインフラ周りのコードなどを書いてます。これまで個人でボッチ開発しかまともにしたことが無かったのでgitでbranchの扱いとか、commit履歴のコントロールとか色々と勉強になっております。 そして、開発基盤にAzure DevOpsを使っております。GitレポジトリもAzure Repos, パイプラインもAzure Pipelinesを使っています。 そこで、PullRequestの生成をトリガーに完全に独立した環境を構築してそこで事前確認ができる環境を作ってみました。レポジトリが1つなら簡単だったのですが、アプリケーションのレポジトリとインフラ展開のレポジトリを分割している状況であまり直接的な例が見つけられずかなり苦労してしまいました。多分丸4日くらいかかりました…。 次回以降簡単に実装できるように記録しておきたいと思います。 なお、私はまだまともなAzure Pipelines歴は3ヶ月くらいなので効率的じゃない部分多いかと思います。アドバイスありましたらコメントいただけると嬉しいです。 レポジトリ構成 AppRepo - .netのアプリケーションのコードが書かれている- InfraRepo - インフラ展開周りのコードが書かれている できるようにしたこと アプリもインフラも更新があったら最新のコードでメインの環境が更新される- アプリもインフラもPullRequestがあったらPullRequestに対応した独立環境が作成される。PullRequestに使われたBranchに更新があったらその更新も反映される。これによりmainブランチにマージする前にAzureの環境上で実際の動作を確認できる。 もうちょっと詳しいできるようにしたこと AppRepoのmainレポジトリに更新があったら自動でビルド&テスト。ビルド&テストがOKなら最新のインフラのコードとともにメイン環境に展開(更新)。- InfraRepoのmainレポジトリに更新があったら自動で最新のアプリのビルドとともにメイン環境に展開(更新)。- AppRepoにPullRequestがあったらPullRequestのbranchの最新のアプリのコードで自動でビルド&テスト。ビルド&テストがOKなら最新のインフラのコードとともにPullRequestのIDから作成した新規のリソースグループに最新のインフラのコードとともに展開(新規作成)。- PullRequestのbranchに更新があったらその最新のコードで自動で自動でビルド&テスト。ビルド&テストがOKなら最新のインフラのコードとともにPullRequestのIDから作成したリソースグループの環境をインフラもアプリも更新(更新)。- InfraRepoにPullRequestがあったらPullReqestのbranchの最新のインフラのコードでPullRequestのIDから作成した新規のリソースグループにmainブランチの最新のアプリのコードとともに展開(新規作成)。 実装アイデアおよび苦労した点 PipelineはAppRepoにパイプライン1つ、InfraRepoにパイプライン1つという形で実装しました。ほかにも良いやり方がある気がしましたが、色々と悩んだ末…。- Pipelineが起動された時、特にインフラ側のPipelineが起動された時にそれがどういうパターンで起動されたのかを判別させる部分で苦労しました。下記4パターンがあります。具体的な判別のさせ方はPipelineの中身のコードの方で解説します。1. AppRepoのPipelineが直接起動されたか、mainブランチの更新で起動されてビルドに成功した結果としてInfraRepoのパイプラインが起動された場合- 2. AppRepoのPipelineがPullRequestで起動された結果ビルドに成功し、その結果としてInfraRepoのパイプラインが起動された場合- 3. InfraRepoのパイプラインが直接あるいはmainブランチの更新によって起動された場合- 4. InfraRepoのパイプラインがPullRequestにより起動された場合- Azure PipelinesのPipeline間で情報を連携する良い方法がわからなくて苦労しました。結局ビルド結果やほかの方法での受け渡し方がわからなかったのでPullRequestのIDを書いたテキストも一緒にZipで固めてArtifactsとして発行し、インフラ展開側のPipelineでダウンロードして利用しました。(※PullRequestIDの受け渡しはもっと良い方法が明らかにある気がしています。) 具体的なやり方 AppRepoのPipeline n t v s a r a t m i b b p r - e - - # - - # - e g a r a i p : g t a i - t e a n v s t d i t d i P s c t d i 発 p d a e c n n h x b a a : a i n a i n u c o a i n 行 u i r $ r h c c m s c - l m l s s p c p a s s p c p a l r n s s p r i a a r b s t ( : : h l a : l e e u k p u o r r k p u o r r l i d k p u o n r r e l p i D e u i u R s : e : l t m o g : l t m o g R p i : l t o c c c p i l f a t s d n d E : : a s m j u a s m j u e t t a s t l h h l s a a t r : e e A v D y : a e m D y : a e m q : i A y : F u i i a h y c e u : : D m " o N n c e o N n c e u o r N o d v v c : N t : e M I w t a d t n t a d t n e e n c a l e e e e a : y E m i N m : s t N m : s t s c : h m d R T F E $ m y . a n e e : s e e : s t h i e e o y i x ( e d y m g d t : " : t : ' : I o e v : r o p l i B : r y d e o C b C t D q e O t e e s u o M w o B u o T e も " ( F " r F : : t i C p M s r u i r e s 保 $ v i A F o i l r d - e i l o e s t - 存 ( a l r i l z $ n d e d l C l d u C t ' * c し s r e c l d i ( g . a ) a L d " . t L T o て y i s h e e p B A A t . t I c p I e n お s a @ i : r u r r e $ e @ a s u @ s f く t b 2 v : i c t ( s 2 n p t 2 t i e l e " l h i f R t d r . g m e $ f d i f u e " o $ c u . s F ( a . v a n v R j ( s r p [ i S l A e c c : e ' S p a u ' l y s r : t t r s y r t l B e s e t S i ) t s o i l u s t i t t o o t j o R i " e f r a n r e ' n e l m a u g e m q d . c e i a . R u . D t n p D e e R e S g p e l s e f t D f e t a a a i a a a . s u g r r u s p o l i e t l e u n t n c i t ' l ' W g t f W l ] o D o a o R , r i r c r e k r y t k q ' i e ) i u P n c / n e u g t $ g s l D o ( D t l i r B i I R r y u r d e e ) i e ) q c / l c " u t $ d t e o ( . o > s r B B r t y u u y $ ' ) i i ) ( ) / l l / S p d d p y u . I u s b B d b t l u ) l e i i . i m s l z s . h d i h D _ I p _ e o d o f u ) u a t . t u p z p l u i u t t p t W " o r - k c i o n n g f D i i g r u e r c a t t o i r o y n ) / R p e u l b e l a i s s e h _ o u t p u t / p u l l r e q u e s t I D . t x t ほとんど素直にビルド、テストしたうえでArtifactを発行しているだけですが下記の部分で「PullRequestで起動された場合にはPullRequestのIDをpullrequestID.txtというテキストファイルに書いて一緒に発行されるようにしています。 ...

July 17, 2022 · 19 min · 胡田昌彦

MCP試験を自宅で受けたら色々と大変なことになりました

先日MCPの試験を自宅で受けました。2回目の自宅受験だったので前回同様今回もなんの問題もなく行くかと思っていましたがあれやこれやと苦労してしまいました。同じ苦労をする人が出ないように、また、次回受験時に自分で(今回の事を忘れてしまって)また同じ苦労をしてしまわないように記録しておきます。 登録されている氏名と身分表の表記が異なる(日、英) MCPのプロファイルはアルファベットで名前が登録されています。なので、これまではパスポートを身分証として使っていました。アルファベットで名前が書いてありますからね。 ですが、コロナ禍になりパスポートの期限が迫り…期限内に更新しても一度期限切れになってから再度取得してもどちらでも費用的にも期間的にも変わりない事を確認したのであえて更新してませんでした。 なので、今は政府発行の身分証として運転免許証やマイナンバーしか持っていません。そしてそれらには漢字の氏名しか書かれていないのです。 MASAHIKO EBISUDAが胡田 昌彦と等しい事を理解できるのってかなり稀ですよね。日本人でも大多数の人はわからないと思います。もちろん調べたらわかるでしょうけど、これではIDチェックをパスできないのではないかと思ってしまったんです。 そこで、氏名の変更フォームから申請を送って英語から日本語にしてくれと依頼しましたが4日ほどたっても音沙汰がなく。困って色々検索したらフォーラムも見つけて日本人はそこから依頼できるのだそうです。 ですが、依頼してみて分かったのですが、そもそもMCPのプロファイル情報にはアルファベットでしか登録できない仕様で、さらに漢字の身分証明書でも問題ないのだそうです。 この辺りはフォーラムで回答いただいたので正式な話だと推測されます。 https://trainingsupport.microsoft.com/ja-jp/mcp/forum/all/mcp%E3%83%97%E3%83%AD%E3%83%95%E3%82%A1%E3%82%A4/d6c922db-684e-48cf-b803-14e1e5420444 ただ、これ、海外で日本人じゃない試験監督者の方に対応してもらうときに本当に大丈夫なのかというと怪しいんじゃないかと私は思ってます。(※個人の感想です) 実際に今回の受験ではオンラインチェックイン時に免許証の写真を撮って提出しましたがOKでした。でもそもそも氏名の読み方の確認自体がありませんでした。 初回の自宅受験では免許証だけじゃダメで、パスポートを取り出したような記憶があるのですが…かなり前のことでこれは記憶違いかもしれません。もう良くわかりませんが、とにかく、漢字しか書かれていない身分証でOKというのが正式回答であり、今回確かに大丈夫だったのは事実です。なのでおなじ状況の方がいたら安心していただいて大丈夫だろうと思います。 予約し忘れ問題 氏名の日英問題があり、何度も予約したり、キャンセルしたりしてました。そうしたら最終的に受験を決めた日時に予約…できてませんでした! それに気がついたのは試験30分前のチェックイン可能時間になってでして…。 これは完全に自分の責任ですが、すっかり予約したつもりになっていながらも予約していなかったようです。 試験のためにあれこれ予定を調整していたので焦ってしまいました。今すぐ申し込めば間に合うかも?と、ダメ元でその場で再度予約してみると…できちゃいました。 試験時間の30分前を切っていても予約可能であるという知見を得ました。いつでも受験できますね。 いやーよかった!と思ってました、その時は…。(このあと大変なことになるとも知らずに…。) カメラ認識しない問題 で、なんとか予約を入れられたのですぐにチェックイン…しようとしたのですがなんとカメラが認識しませんでした。 全く同じPCで以前に受験しているのでHW構成は問題ないはずです。他のソフトではカメラは使えます。ブラウザを使ったTeamsでもカメラ認識OK。明らかに試験のアプリのカメラデバイスの扱いに問題があるのだろうとは思います。 でも、そんなソフトの不具合的なものを見つけても、カメラがONにできないとチェックインできず、受験できません。もうすぐに試験を始めるタイミングなのでキャンセルしてもお金はかかってしまいます。焦る。 再起動をしましたが、ダメ。仕方がないので別のPCで試そうと思って古いノートPCを取り出しましたがスペックが低くて起動に時間がかかる。 ダメもとでもう一度PCを再起動すると…、カメラがやっと認識してくれました。 ハードウェアの事前チェックはできるのですが、カメラの認識が怪しいようです。カメラが認識してくれなかったら「再起動」を繰り返すしかないのかもしれません…。特にWindows10以降はシャットダウン→起動ではHWの再認識が行われていませんので「再起動」でないときっとだめです。 チェックインする時間は30分ではちょっとトラブルがあると厳しいかもしれませんね…。 リモートコントロール系プロセス検出される問題 そして、やっと色々とうまくいって試験が展開された…と思ったらエラーが出ました。 リモートコントロール系のソフトがインストールされているとそのexeを検出して試験をさせてもらえませんでした。私は確かに管理のために入れてますし、それが試験時に悪用されるとまずい事もわかります。 なので、チャットで試験管の方に「プロセスを停止しますね」と伝えて、サービスを止めて、OKボタンを押すと…。 試験のプログラムが終了し。何もなくなりました。 ・・・。 これ、どうやって復帰したらいいんでしょうか?という…。 仕方がないので、もう一度試験へのチェックインを1からやり直しました。部屋や身分証明書も再度取り直して…。試験開始前の試験管の方とのやり取りももう一度やりました。 これ、事前の機器チェック時には出なくて、試験が展開されてから出たんですよね。ちょっと不親切かなと…。 意識せずに声出しちゃう問題 そんなこんなで何とか試験が始まったのですが…、試験中には声を出してはいけないのですが、私無意識にぶつぶつとIPアドレスをつぶやいてしまっていたようで、「つぎやったら失格ですよ」と叱られました。ごめんなさい。 試験アプリが重くなる問題 そしたら、そのチャットで突っ込まれた瞬間から試験アプリが凄く重たくなっちゃいました。マウスがまともに操作できないくらい重くなり、チャットへの文字も打ってから10秒くらいしたら一文字出てくるような状況になっちゃいました。 カメラに✕マークをだして、クソ重いチャットでまともに操作できないことを伝えると「アプリが高負荷になっているのかもしれません。PCを再起動してください」ということでした。 結構よくあることなのかも? で、PCを再起動したのですが、再起動したら再度接続しなおしです…。何回接続し直ししなくてはいけないのか…。 さすがにチェックインプロセスは省略してもらえて、いきなり試験が始まるようにしてもらえました。こういう事態にも対応できるように仕組みがあるってのは大したものだなと感心しました。 再起動するとカメラ認識しなくなる問題 再起動して、試験アプリも再度快調に動くようになり、問題を解いていたら、またチャットがありました。今度は「再起動しましたね?今度はカメラが映らなくなっています。」とのこと。カメラ映らない問題再発です。 「もう一度再起動してください」と言われたので仕方なくもう一度再起動…。何回接続し直ししなくてはいけないのか…。 試験時間追加してくれない問題 そして、再起動し、再度試験アプリを立ち上げて…。 それからは問題なく試験を受けることができました。でも、これだけトラブルがあれこれあったので時間がかなり消費されておりまして…。つながっていなかった時間はおそらくタイマー的なものは止まっていたのだろうとは思うのですが、チャットしたり、マウスが重かったりなどなどかなり対応に時間を消費してたので、時間の追加があっても良かったんじゃないかと思いました…。 まぁ、何とかしましたが。 結果画面が違う試験になってる問題 で、やっと試験を残り時間10分程度で終え、無事合格。 ああ、よかった、と思っていたら試験結果の画面で項目が明らかに違う試験のものが表示されていました。どう考えてもバグっている。 これだけ何度も試験を中断したから問題や結果にも問題があったのかも?とかなり心配しました。 でも、どうやら大丈夫だったみたいです。 次は試験センターに行こうかな… まぁ、そんなこんなでとっても大変で、試験以外の部分で疲れましたというお話でした…。 結局試験を受けられて、合格もできたので結果オーライではあるのですが、そもそも、自宅で試験を受けるために1時間くらいものを片付けたり、試験時にあってはいけないものを動かしたり、モニタの電源を外したりなど準備してます。終わった後も戻す作業もありますし、試験中に何度もトラブルも発生したし…。 これはもう、自宅でやる方が大変だから、次からは試験センターに行って受験した方が楽かもしれないなぁと思っております…。どうしよっかなー。

July 6, 2022 · 1 min · 胡田昌彦

#マインクラフト でプログラミングを行う方法/ #MakeCode #JavaScript #Python #minecraft

Web上にほぼ情報が無かったのでTwitterにつぶやきましたが、ブログにも書いておきます。困っている人が結構ほかにもいるはず。 実現できること Minecraft for windows 10(統合版)をプログラムから操ることができます。使える言語は下記です。 ブロックプログラミング- JavaScript- Python はまりポイント 利用する「Code Connection」と「Minecraft」で接続できるバージョンに依存関係がある模様です。使えていた環境でも、Minecraftのバージョンが上がったタイミングでCode Connectionと接続できなくなってしまうことが過去多発している模様です。これからも発生する可能性が高いと覚悟しておく必要がありそうな雰囲気があります(私の勝手な感想です)。 対処方法 原因はプログラムのバグなので基本的にはバグを報告し、修正してもらうのを待つ対応となります。2022年5月時点の問題は下記で報告されています。私も報告しておきました。 https://bugs.mojang.com/browse/MCPE-154405?jql=project%20%3D%20MCPE%20AND%20resolution%20%3D%20Unresolved%20AND%20text%20~%20%22code%22%20ORDER%20BY%20updated%20DESC 問題の回避方法 変更を待っているといつ直るかわかりませんので、能動的に問題を回避するにはminecraftの古いバージョンを実行するという方法があります。 下記のツールで複数バージョンのminecraftを同時にインストール、起動させることが簡単に可能です。 https://github.com/MCMrARM/mc-w10-version-launcher ただし、このツールで過去のバージョンのminecraftを実行するためにはWindowsを開発モードに設定しておく必要があります。これは「設定」から「開発モード」を検索して有効化しておいてください。 2022年4月30日時点の接続可能なバージョン minecraft バージョンCode Connectionとの接続可否1.18.31.4NG1.18.30.4NG1.18.12.1OK 接続デモ Youtubeで接続を実演してますので細かい操作方法はそちらを見ながら真似してもらえればと思います。 https://www.youtube.com/watch?v=lcdE04qewBU

May 6, 2022 · 1 min · 胡田昌彦

Youtubeの動画をTwitterで紹介する by Azure Functions

自分のYoutubeチャンネルにアップロードした動画も283(2022/2/28時点)となりました。全く日の目を見られない動画も多数…。 動画を掘り起こして適切な人の目に触れさせることはYoutube自身がやってくれているので私が何かしても別に意味はない…のではありますが、せっかくなので自分のTwitterのフォロワー向けに定期的に紹介することをしたいなと思いました。 そこで、Azure Functionsのタイマートリガーで定期的に下記の処理を実行させることにしてみました。 Youtubeの特定チャンネルのアップロード動画の一覧を取得- 動画一覧の中から1つの動画をランダムでピックアップ- 動画のタイトルとURLを含むtweetを行う ソースはここに置いてあります。 https://github.com/ebibibi/youtubemanagement/tree/main YoutubeのDataAPIは初めていじってみました。Webで公開して誰でも使える…という構造ではなく自分専用なのでOAuthではなくAPIキーを使う形で実装しました。 アプリケーションを登録する- APIキーを作成する- googleapisライブラリを使う- Channels:listにてforUsernameを指定してリスト一覧を取得→UploadsのリストのIDを取得- PlaylistItems:listにて動画の情報を50件づつ最後まで取得 という感じにしてみました。

February 28, 2022 · 1 min · 胡田昌彦

Azure PolicyでOpsRampエージェントをインストールする その4 – 修復タスクを使って自動インストール

この記事はシリーズの4番目の記事です。まだほかの記事を読んでない方は先に読むことをお勧めします! https://cloud.ebisuda.net/2022/02/21/azure-policy%e3%81%a7opsramp%e3%82%a8%e3%83%bc%e3%82%b8%e3%82%a7%e3%83%b3%e3%83%88%e3%82%92%e3%82%a4%e3%83%b3%e3%82%b9%e3%83%88%e3%83%bc%e3%83%ab%e3%81%99%e3%82%8b-%e3%81%9d%e3%81%ae%ef%bc%91-opsram/ 今回は、「修復タスク」を使って、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と連携させて、顧客のテナントに対してポリシーを適用することも可能です。色々と夢がひろがりますね!

February 24, 2022 · 1 min · 胡田昌彦

Azure PolicyでOpsRampエージェントをインストールする その3 - Azure Policyの割り当てと状況可視化

この記事はシリーズの3つ目の記事です!前回までの記事を未読の方はそちらを先に読んでいただくことを推奨します! https://cloud.ebisuda.net/2022/02/21/azure-policy%e3%81%a7opsramp%e3%82%a8%e3%83%bc%e3%82%b8%e3%82%a7%e3%83%b3%e3%83%88%e3%82%92%e3%82%a4%e3%83%b3%e3%82%b9%e3%83%88%e3%83%bc%e3%83%ab%e3%81%99%e3%82%8b-%e3%81%9d%e3%81%ae%ef%bc%91-opsram/ https://cloud.ebisuda.net/2022/02/22/azure-policy%e3%81%a7opsramp%e3%82%a8%e3%83%bc%e3%82%b8%e3%82%a7%e3%83%b3%e3%83%88%e3%82%92%e3%82%a4%e3%83%b3%e3%82%b9%e3%83%88%e3%83%bc%e3%83%ab%e3%81%99%e3%82%8b-%e3%81%9d%e3%81%ae2-azure-policy/ では、前回まででAzure Policyを公開できていますのでそれを割り当てていきたいと思います。 ポリシーの割り当て では、テスト的にサブスクリプション全体に対してポリシーを割り当ててエージェントが入っているもの、入っていないものがきちんと可視化されることを確認します。 せっかくですのでAzure Arcのサーバーも対象可能とします。これでAzure内のVMのみならずどこにあるVMでも実機でも対象にすることができます。 修復タスクも実行可能なようにします。ポリシー割り当て自体がマネージドIDを持ち、その権限でVMを修正することになります。素敵な仕組みですね。 反映にはしばらく時間がかかりますので、待ちます。 しばらく時間を置くと、すでに展開済みのVMが準拠していないということが検出されました。 これで、OpsRampエージェントが入っていないVMをすぐに見つける事が可能となりました!とっても便利ですね。 次は、エージェントが入っていないVMに対して修復アクションを実行してエージェントをインストールすることができるようにしていきたいと思います!

February 23, 2022 · 1 min · 胡田昌彦

Azure PolicyでOpsRampエージェントをインストールする その2 - Azure Policy用のゲスト構成パッケージの作成と公開

この記事は前回の続きです。前回の記事を未読の方は前回の記事から読んでいただくことを推奨します! https://cloud.ebisuda.net/2022/02/21/azure-policy%e3%81%a7opsramp%e3%82%a8%e3%83%bc%e3%82%b8%e3%82%a7%e3%83%b3%e3%83%88%e3%82%92%e3%82%a4%e3%83%b3%e3%82%b9%e3%83%88%e3%83%bc%e3%83%ab%e3%81%99%e3%82%8b-%e3%81%9d%e3%81%ae%ef%bc%91-opsram/ ゲスト構成用パッケージを作成する 前回までで動作確認できてますのでゲスト構成用パッケージを作成していきます。 まず、ゲスト構成用のモジュールをインストールします。 I n s t a l l - M o d u l e - N a m e G u e s t C o n f i g u r a t i o n 次に、ゲスト構成パッケージを作成します。 N e w - - - - - N C T F G a o y o u m n p r e e f e c s i e t ' g A C O u u o p r d n s a i f R t t i a i A g m o n u p n d r A S a g e t e t i n / o t I ` n I n P n s a s t c t a k a l a l l g l O e ' p s ` ` R a m p C l i e n t / l o c a l h o s t . m o f ' ` 作成に成功するとZipファイルが生成されます。 ...

February 22, 2022 · 9 min · 胡田昌彦

Azure PolicyでOpsRampエージェントをインストールする その1 - OpsRampエージェントをPowerShell DSCでインストールする

以前、AnsibleでのOpsRampエージェントインストールをやりましたが、今回はPowerShell DSCです。 将来的にOpsRampエージェントのインストールをAzure Policyを使って「管理下のVM(Azure上のVMでもオンプレのVMでもすべて)にはOpsRampエージェントをインストールし、その状態を保つ」ということを実現したく、今回はその前準備的な感じです。 DSC自体はマルチプラットフォーム対応ですが、まずはWindowsを対象に進めます。 OpsRampエージェントをhttpsでアクセスできる場所へに配置する 今回はMSI版をダウンロードして利用しようと思います。(※exe版でも同じです) 将来的にAzureからの管理を考えているので、インストーラーはAzure上のストレージアカウントに配置しておきます。 当初SASを生成して利用しようとしましたが、SASだとDSCからきちんとMSIパッケージだと認識してもらえなかったので、直接URLを指定してダウンロードできるように、匿名の読み取りアクセスを許可しました。 このとき、exeにしてしまうと、OpsRampのテナントに接続するための情報も含まれてしまうのでこのやり方をするならMSIパッケージの方が良いですね。 手元のWindowsPCにDSCを適用する ここから先はPowerShellコンソールで操作をします。Windows PowerShellではなくPowerShell Coreでやった方がいいのではと思います。(※これはよくわかっていません。将来的にAzure Policyでマルチプラットフォームを見越しているので、おそらく。でも今回はインストーラーがWindows専用ですから気にしなくていいのかもしれません。) まずモジュールをインストールします。 I # n s D t o a c l s l の - 記 M 事 o で d は u ス l コ e ー プ - 指 N 定 a は m 無 e い で P す S が D 、 s 私 c は R A e l s l o U u s r e c r e s s に 入 - れ S た c 方 o が p よ e い の A で l は l と U 思 s っ e て r い s ま す - V e r b o s e - F o r c e つぎに、PowerShellでConfigurationを定義します。Functionを定義するような感じですね。 ...

February 21, 2022 · 5 min · 胡田昌彦

PowerShellモジュールのインストールパス

PowerShellモジュールに関しては適当にinstall-moduleとやっておけば動くのでこれまであまり深く考えたことはなかったのですが、今日、DSC関連で結構苦労してしまったので書き残しておきます。 まず、Install-Moduleでモジュールをインストール。 https://docs.microsoft.com/ja-jp/powershell/module/powershellget/install-module?view=powershell-7.2 この時に、モジュールが入る場所が複数あります。 現在のユーザー用:$HOME\Documents\PowerShell\Modules- すべてのユーザー用:$env:ProgramFiles\PowerShell\Modules 1と2の切り替えはInstall-Moduleの-Scopeパラメーター。何もスコープを指定しない、あるいは-Scope CurrentUserとすれば「1.現在のユーザー用」に入ります。-Scope AllUsersとすれば「2.すべてのユーザー用」に入ります。 で、これでおしまいではなくて… PowerShell自体にWindows PowerShellとPowerShell(Core)がある。- コマンドによっては別ユーザーのコンテキストで実行されるものがある。- 複数バージョンを混在させることも可能 という要素もあり、複雑です。 モジュールを読み込む場所自体は「$Env:PSModulePath」で参照可能です。 私が今日ハマったのはStart-DscConfiguration実行時にモジュールが見つからないといわれてしまうという事象でした。どうやらWindowsPowerShellのモジュールディレクトリ(C:\Program Files\WindowsPowerShell\Modules)からしかモジュールを探してくれていなかったので、手動でモジュールをコピーして回避してしまいました。 これまで「動いているからいいや」ということであまりよく仕組みを調べずにやり過ごしてきてしまいましたが、それではうまくいかないケースに遭遇したのでこれを機にきちんとどこに存在するモジュールが使用されているのかなども意識していこうと思います。

February 19, 2022 · 1 min · 胡田昌彦

AnsibleでのWindows ServerへのOpsRampエージェントインストール

この記事はOpsRamp Advent Calendar 2021の12月16日の記事です。 このブログでOpsRampを扱うのは初めてです。ありがたいことにOpsRampさんから検証用ライセンスを支援いただきましたので環境を作りながらAdvent Calendarにも1日参加させていただきました。 私は現在Youtubeで企業でよくあるWindows/M365環境を構築してみるというシリーズを作成しています。AnsibleをつかってHyper-VでInfrastructure as Codeを実現していますので、コードによって自動的に生成されたVMが自動的にOpsRampから監視されるように構成してみたいと思います。 OpsRampのエージェントをAnsibleから管理する方法に関しては下記の記事に記載がありますので、この内容に沿って試してみます。 https://docs.opsramp.com/platform-features/agents/managing-agents-ansible/ 上記ドキュメントでは主にLinuxに関しての言及がなされています。ですが、私が今検証を進めている環境は今のところWindows Serverおよびそのうえで動いているWSL環境しか存在していません。Windows Server + WSLをAnsible環境として利用しつつ、Windows Serverを管理することができるのかどうか、ドキュメントの枠を超えて試してみたいと思います。 OpsRamp環境の初期セットアップ~手動でのエージェントインストール Ansibleでの検証に先立って、そもそものOpsRamp環境の初期セットアップを行い、試しに1台手動でエージェントを導入してみます。下記ドキュメントを参考にしながら作業を行いました。 https://jpdemopod2.docs.opsramp.com/ 管理ポータルにアクセスし…。 パスワードを変更し…。 Windows用のインストーラーをダウンロードし…。 インストーラーはネットワーク上の共有フォルダに配置しました。 監視対象には、ネットワーク上の共有フォルダから直接管理者として実行してエージェントをインストールしました。 「Undefined Resource」として見えてくることが確認できました。 モニターテンプレートを割り当てました。 Upの状態として認識されることを確認しました。 テスト的に監視対象を停止し、Downと検知されるところまで確認しました。 これで本当に基本的な部分のみですが、動作が確認できましたので、Ansibleを使ったエージェントインストールに進んでいきます。 Ansibleを使ったWindows ServerへのOpsRampエージェントインストール 管理者権限で実行すればエージェントがインストールされ、OpsRampからの監視を始めることのできるEXEファイルはOpsRampが用意してくれているわけですから単純にこのEXEファイルを実行させてインストールさせればよさそうです。 これを実現するにはwin_packageモジュールを利用すればよさそうです。 https://docs.ansible.com/ansible/latest/collections/ansible/windows/win_package_module.html パスとしては共有フォルダへのUNCパスもサポートしているので都合が良いです。 インストール済みかどうかの判定にはProduct_IDを利用するということですので、インストール済みのVMにてProduct_IDを確認します。 コンピューター\HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\Windows\CurrentVersion\Uninstall{5DD30F80-C9BD-429B-89CA-03C0578C77B4} 結果的に「5DD30F80-C9BD-429B-89CA-03C0578C77B4」がProduct_IDであるとわかりました。 - n a m w e i : n p P _ a r O p t o p a h d s c = u R k " c a a \ t m g \ _ p e \ I エ : \ d ー n = ジ e " ェ s 5 ン t D ト e D イ d 3 ン h 0 ス y F ト p 8 ー e 0 ル r - v C \ 9 \ B S D h - a 4 r 2 e 9 \ B \ - O 8 p 9 s C R A a - m 0 p 3 \ C \ 0 O 5 p 7 s 8 R C a 7 m 7 p B A 4 g " e n t - d e m o 0 0 1 . e x e " これをPlaybookに追加追記します。 ...

December 16, 2021 · 1 min · 胡田昌彦

Windows 11へのアップグレード情報まとめ

Windows11へのアップグレード情報についてまとめておきます。 公開日 Windows 11の正式版は10月4日から公開されています。 Windows 11へのアップグレード方法 https://www.youtube.com/watch?v=45A0mKwwCBw&list=PLas-S4LkjlLpJL8DkQQjvIJsmfLim734a&index=16 Windows Update(インプレースアップグレード)- インストールアシスタントを使用する(インプレースアップグレード)- USBメディアやDVD等のインストールメディアを作成し利用する(インプレースアップグレード / クリーンインストール)- ISOファイルをダウンロードし利用する(インプレースアップグレード / クリーンインストール) USBインストールメディアの作成方法 Windows 11のダウンロードやインストールメディア作成ツール入手は下記ページから行うことができます。 https://www.microsoft.com/ja-jp/software-download/windows11 https://www.youtube.com/watch?v=cQUvUN-IP-s&list=PLas-S4LkjlLpJL8DkQQjvIJsmfLim734a&index=17&t=41s トラブル対応 既存のWindows 10をインプレースアップグレードする場合には、問題が発生する可能性があります。私自身もブルースクリーンが発生してしまい、問題切り分け、対処を試みましたが結局原因不明でインプレースアップグレードをあきらめました。 インプレースアップグレードができない場合にはクリーンインストールを行い、ソフトウェアを再インストールし、データを復旧することでWindows 11にすることができます。このような選択肢も考えておくとよいでしょう。 https://www.youtube.com/watch?v=S7q3vq-Pyio&list=PLas-S4LkjlLpJL8DkQQjvIJsmfLim734a&index=4&t=2s Windows 11の互換性 Windows 11は互換性の要件が厳しいことでも有名になってしまいました。ご自身が使っているPCが対応しているかどうかは互換性チェックツールで確認することができます。 https://www.youtube.com/watch?v=bqP-A_Sbjgk&list=PLas-S4LkjlLpJL8DkQQjvIJsmfLim734a&index=1&t=218s 互換性がないPCにWindows 11を導入する方法 互換性がないPCを使っている方はPCの買い替えも検討しつつ、しばらくはWindows 10を利用すれば問題ありません。Windows 10がサポートされている間は(Windows Updateが提供されている間は)無理にWindows 11にしなければいけないわけではありませんので、無理をしないのが良いと思います。 とはいえ、互換性がないPCを使っていながらもWindows 11にアップグレードしたい!触ってみたい!という方もいると思います。そのような方のために自己責任でいくつかの互換性チェックをバイパスしてWindows 11を導入する方法が存在はしています。 推奨はしないながらもMicrosoftからも公式情報としてTPM 2.0とCPUモデルのチェックをバイパスするレジストリ設定が公開されています。 https://www.youtube.com/watch?v=rQDNb9KUr5k&list=PLas-S4LkjlLpJL8DkQQjvIJsmfLim734a&index=16&t=119s さらに、非公式ですがTPM自体のチェックをスキップしてしまう方法も存在しています。 TPM 2.0非搭載CPU互換性無しでもインストールできるようにする設定 キー HKEY_LOCAL_MACHINE\SYSTEM\Setup\MoSetup 値の名前 AllowUpgradesWithUnsupportedTPMOrCPU 型 REG_DWORD(DWORD 32ビット)型 値の内容 1 TPM自体を搭載していなくてもインストールできるようにする設定 キー HKEY_LOCAL_MACHINE\SYSTEM\Setup\LabConfig 値の名前 BypassTPMCheck 型 REG_DWORD(DWORD 32ビット)型 値の内容 1 互換性のないPCに無理やりWindows 11を導入した場合にWindows Updateできるのか? 互換性がないPCにWinodows 11をインストールした場合Windows Updateの実行は保証されません。いつできなくなってもおかしくないですし、実行したらブルースクリーンが発生して…ということも起きる可能性が高くなります。 ...

October 26, 2021 · 1 min · 胡田昌彦

AzureでWebAppsとSQL Databaseを使った簡単なWebアプリケーションを作成してデータベース接続について学ぶ

Youtubeの動画作成リクエストをもらったので作成しました。 Microsoftが公開しているチュートリアルに沿ってアプリケーションを動かしながらどのようにWebアプリケーションからデータベースに接続をしているのかという点を説明しています。 https://youtu.be/kqx2ds1NBhA 一番単純に接続する方法としては接続文字列をアプリケーションのコードに生で書いてしまうことでしょうが、さすがにそれは筋が悪すぎるので、チュートリアルでは接続文字列内にIDとパスワードを記載しそれを利用して接続する形態になっています。 次のステップとしてはKeyvaultの利用、あるいはマネージドIDの利用ということになります。 https://www.youtube.com/watch?v=tAfwj_HH02E

October 21, 2021 · 1 min · 胡田昌彦