この記事は前回の続きです。前回の記事を未読の方は前回の記事から読んでいただくことを推奨します!

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/

ゲスト構成用パッケージを作成する

前回までで動作確認できてますのでゲスト構成用パッケージを作成していきます。

まず、ゲスト構成用のモジュールをインストールします。

Install-Module-NameGuestConfiguration

次に、ゲスト構成パッケージを作成します。

New-----NCTFGaoyoumnpreefecsiet'gACOuuoprdnsaifRttiaiAgmonupndrASagetetin/otI`nInPnsastctakalallglOe'ps``RampClient/localhost.mof'`

作成に成功するとZipファイルが生成されます。

念のため、作成した構成パッケージが要件を正しく満たしていることを検証します。

Get-GuestConfigurationPackageComplianceStatus-Path\OpsRampAgentInstall\OpsRampAgentInstall.zip

complianceStatusがTrueとなっていればOKです。

構成のテストも下記のコマンドで可能です。

Start-GuestConfigurationPackageRemediation-Path\OpsRampAgentInstall\OpsRampAgentInstall.zip

構成パッケージの公開

構成パッケージを公開します。推奨の保存先はAzue Blob Storageですので、インストーラー自体を保存しているBlob Storageに対して発行します。

-StorageContainerNameというオプションがありますが、省略するとguestconfigurationというコンテナに発行されます。あらかじめguestconfigurationという名前のコンテナを作成しておいてからコマンドレットを実行します。

Publish-GuestConfigurationPackage-Path\OpsRampAgentInstall\OpsRampAgentInstall.zip-ResourceGroupNameOpsRampManagement-StorageAccountNameopsrampmanagementst|%ContentUri

これで、パッケージの公開ができました。

Azure Policyの定義を作成して公開する

次にAzure Policyの定義を作成します。

New----------PCDDPPVMVGooiealeoeulnsstardreitpchtsebscelrfiotynaioo'sCItyprnAeodUNt/mpnraip1pf'imoo'.liOenlW0ygp'ii.Aus''cn0nrROIiddaapneo`AtmssswuipRt'stoAaa'ongml`CPepl`oonrltAOriIgpecnescysnRttta'`amlIplnWsAiUtgnRaedLlnoltwsft'oor`WWi'innd`doowwss'Se`rver'`

Policyを公開します。

Publish-GuestConfigurationPolicy-Path\policies'

きちんとAzureポータル上でも確認できる状態になりました。

ここまでで、Azure Policyを作成することができました。

今回は理解のために1ステップづつやりましたが、実際にはバージョン管理のことも考えて、下記のようにやってしまうのがよさそうです。下記のようになります。(※読んでわかる人向けです)

$$$$$$$$$$I$PSNPvCMRSDDppmncuteueooetieolosobawbrnfsossladtnlr-lsfPorpciteatitGiiiaualrcfles-usogtrgaiyolnhSehnNhceypIrOt-ls-aeANtdmpuGetGmGcaisrueCuercmoRiepoeooenasnsuum=t6ftpnpC0iCNtCNogoaNlenunmaiwfrfeme-iaienGgtgtuuiu==========eror-sana'"'''"''OttPt1OOoOIOWAuCioi.p\pppnpiptoolo0slsssssnppnnin.RoRrRtRdlufPcP0acaaaaaoytiayo'mammmlmwAPgclplppplpsnauk-iAhMmA'dtraPcgoaaAOgAhagoyesnngpeu:telntaaesnt(iit.ggnRtoGo-cImeetaICenRynommmnotPeIsfeeIpsr-asdt'nnntrLcoattsAaeoku$l'stglccarpltaeltagco_'lnW'teel$ltiiGivno-rceftdnNoyrooo)auIsrwmpdiWseNoWi_a-nin$$mD"ndvCeidoeosowrn$pwssfRlsiiea'SogsyenNoNr"auavmrmeecere'-G$CrDooinusfppiNlgaaumyreNaat-miSeotno-rD$aeMgsoecfArPciacptothuino-tnPNaa$tmDhees$c/SrptiaopcrtkaiagogeneA/c-cP-oaTutynhpteNaAm/uepdoi-ltFiAocnridceSese't|--FPFolorarEtcafecohr|-mOb$jpelcattfCoornmte-nVteUrrsiion$version-Mode$mode-ContentUri$contenturi|

さて、次回は実際にポリシーを割り当てて既存VMの適用状況を確認していきたいと思います!