Mais conteúdo relacionado Semelhante a Azure Arc Automanage Machine Configuration による構成の管理と適用 (20) Mais de Kazuki Takai (20) Azure Arc Automanage Machine Configuration による構成の管理と適用1. Azure Arc Automanage
Machine Configuration
による構成の管理と適用
SCUGJ (wSCUGJ) 勉強会 #34 2023-03-18
Kazuki Takai
Windows Server & Cloud User Group Japan
2. お話しすること
• PowerShell DSC のおさらい
• Azure Automation State Configuration と
Azure Automanage マシン構成の違い
• Azure Automanage マシン構成で利用可能な
リソースとパッケージの作成方法
• Azure Arc 対応サーバーに対するマシン構成
の適用
3. 自己紹介
• たかい (Kazuki Takai)
• 会社員 (某ISP勤務)
• サービス基盤開発、技術開発
• ライセンス関連
• wSCUGJ (Windows Server & System Center User Group Japan)
• 興味分野:統合管理、ID、自動化、セキュリティ、監視・運用
• 趣味:カメラ(風景写真)、ビデオゲーム、旅行(温泉)
• Microsoft MVP for Cloud and Datacenter Management
7. DSC とは
• Desired State Configuration
• 構成管理プラットフォーム
• 構成(Configuration)を特定の状態に保ち続ける
ための仕組み
• あるべき状態を定義
• 定義に基づいて設定を変更
• 定期的に設定をチェックし正しい状態を維持
9. Infrastructure as Code
• Infrastructure as Code (狭義の)
• インフラ(ファブリック)の定義をコード化して管理・自動構成
• Azure Resource Manager, Chef Provision, etc…
• Configuration as Code
• ファブリック上で動作する環境(OS、ミドルウェア、アプリ
ケーションなど)の構成、設定をコード化して、管理・自動構成
• DSC, Ansible, etc…
10. DSC のメリット
• 構成が管理されている
• あるべき状態が定義されている
• 定義が表現されている
• 構成を担保できる
• あるべき状態に保つ(保ち続ける)
• 必ず「定義された状態」になる(オペミスしない)
• 構成状態をレポートできる
12. DSC の構成要素
• Configuration
• 「あるべき姿」を定義したもの(PS Script -> MOF)
• Resource
• 構成(操作)対象を実際に操作するために必要なもの
• Local Configuration Manager (LCM)
• MOF と Resource を使用して構成(変更)を実施
• Pull サーバー (コントローラー、管理マネージャー)
• LCM からの要求を受け、MOF およびリソースを応答
• LCM からのレポートを受信(レポートサーバー)
13. ローカル構成マネージャー
• LCM : Local Configuration Manager
• ノード構成ファイル(MOF)を解釈して構成を変更
• 構成モード
• ApplyOnly : 構成を一度のみ適用し、後の変更は追跡しない
• Audit : 定義された状態になっているか確認、追跡する
• ApplyAndMonitor : 構成を適用後、変更を追跡する
• ApplyAndAutoCorrect : 構成を適用後変更を追跡し、ずれが生
じた場合は自動修正する
14. Push と Pull
• Push モデル
• ターゲットへ構成ファイルを送信して構成を実施
• Push されたタイミングで 1 回のみ実行
• Pull モデル
• ターゲットノードが Pull サーバーから構成ファイルを
取得して構成を実施
• DSC Pull サーバー側へ状態レポートを送信
15. Ansible と DSC の違い
Ansible DSC
構成の記述 Playbook Configuration
記述方式 宣言的 宣言的
記述言語 YAML PowerShell
リモート構成 可能 可能
接続プロトコル SSH HTTPS (Pull), PSRP (Push)
接続方向 Controller -> Target (Push)
Target -> Controller (Pull)
Controller -> Target (Push)
Agent 不要 DSC 用の LCM が必要
構成の監視 - Pull モード時はオン
変更トリガー 通常は手動 自動及び手動
16. Pull Services (Pull Server)
• Pull サービス
• Pull モデルにおける管理サーバー的な役割を果たすもの
• Configuration と Resource を配布
• 現在利用可能な Pull サービス
• Azure Automanage Machine Configuration (マシン構成)
• Azure Automation State Configuration
• Windows PowerShell DSC Service on Windows Server
• これが所謂 DSC Pull Server
• Community maintained open source solutions
17. Main Topic
最近の DSC (Desired State Configuration with PS7)
Azure Automanage マシン構成
Azure Arc VM への適用
18. PowerShell 7.2 以降における DSC
• PowerShell 7.2 以降 DSC は PS 本体から分離
• PowerShell 本体のサイズを減らすため
• それ以前も、DSC Resource は PowerShell 本体とは
異なるリリースサイクルだった
• PowerShell 7.2 以降で DSC を利用する場合
• 明示的に PSDesiredStateConfiguration モジュール
のインストールが必要
Install-Module -Name PSDesiredStateConfiguration -Repository PSGallery
19. DSC のバージョン
• Windows PowerShell 5.1 向け
• Desired State Configuration v1.1
• PowerShell 7 (PowerShell Core)向け
• Desired State Configuration v2.0
• Desired State Configuration v3.0 Preview
20. Desired State Configuration v1.1
• Windows PowerShell 5.1 にバンドルされている DSC
• オーサリング、動作には WMF 5.1 が必要
• Windows 用の LCM は Windows PowerShell 5.1 にバンドル
• Windows PowerShell 5.1 がインストールされていれば基本的
に利用可能
• Linux へ構成を適用する場合は OMI と xResource を使用
• Push と Pull の両方が可能
• Windows Server の機能として Pull Service を構成可能
21. Desired State Configuration v2.0
• PowerShell 本体から分離された DSC
• PSDesiredStateConfiguration モジュールとして利用可能
• Azure Automanage マシン構成(Azure Policy)で利用可能
• 基本的には v3.0 を使用
• 基本的に Pull モデルで利用
• Start-DscConfiguration コマンドレット等は削除
• インストール可能な Pull Services の提供は無い
• Azure Automation や Azure Policy 等を使用
• DSC 自体には LCM の機能が含まれていない
• 別のエージェントや VM 拡張機能等を LCM として利用
22. Desired State Configuration v3.0
• Desired State Configuration v2.0 の後継
• 現時点では Preview
• Azure Automanage マシン構成(Azure Policy)で利用可能
• Linux も構成対象として利用可能
• MOF ベースの DSC リソースは廃止
• PowerShell クラスベースの DSC リソースのみ利用可能
23. どの DSC version を使用するか
• Azure Automanage マシン構成で管理したい
• 管理対象は Linux ⇒ DSC v3.0(Preview)
• 管理対象が Windows ⇒ DSC v2.0 以降 ※可能なら DSC v3.0
• Azure Automation で管理したい
• 使いたい DSC Resource が PS Core 対応済 ⇒ DSC v2.0
• 使いたい DSC Resource が Win PS 依存 ⇒ DSC v1.1
• WS DSC Pull Server で管理したい ⇒ DSC v1.1
• Windows ローカルで Push したい ⇒ DSC v1.1
24. 仮想マシンに対する DSC 構成の適用
• Azure 仮想マシンに対して、Azure のサービスや
機能を使用して DSC 構成を管理・適用する方法
は大きく2種類
• Azure Automation State Configuration
• Azure Automanage マシン構成
25. Azure Automation State Configuration
• Azure Automation の機能
• Azure Automation DSC (AADSC)とも表記される
• Azure Automation が Pull Services として動作
• (必要であれば)追加の DSC リソースを登録
• 構成ファイル(スクリプト)を登録
• Azure Automation 側で構成をコンパイル
• ターゲットノードを Azure Automation に登録
• 構成をノードに関連付けて構成、モニタリング
27. Azure Automation State Configuration
• 構成方法の詳細は第19回 SCUGJ 勉強会の資料を
参照(2018年2月)
• https://www.slideshare.net/kazukitakai/dsc-
88799528
28. Azure Automanage マシン構成
• Azure Policy Guest Configuration から名称変更
https://techcommunity.microsoft.com/t5/azure-governance-and-management/coming-soon-guest-configuration-renames-to-machine-configuration/ba-p/3474116
29. Azure Automanage マシン構成
• Azure Automanage Machine Configuration
• Azure 仮想マシンと Azure Arc 対応サーバーに対する
構成管理・構成適用が可能
• Azure Policy 経由での適用が可能
• ターゲットノード単位での適用も可能
• 状態(準拠しているかどうか)の確認が可能
• ターゲットに対して複数の構成を同時に割り当て可能
32. マシン構成の有効化(前提条件)
• Microsoft.GuestConfiguration リソースプロバイダーが有効
• Azure VM の場合
• マシン構成拡張機能が有効
• Azure Automanage Machine Configuration extension for Windows
• Azure Automanage Machine Configuration extension for Linux
• マネージド ID が有効
• Arc 対応サーバーの場合特になし
• Azure Arc-enabled servers agent (Machine Connected Agent)のみ
35. サポートされるターゲット OS
Publisher Name Versions
Amazon Linux 2
Canonical Ubuntu Server 14.04 - 20.x
Credativ Debian 8 - 10.x
Microsoft Windows Server 2012 - 2022
Microsoft Windows Client Windows 10
Oracle Oracle-Linux 7.x-8.x
OpenLogic CentOS 7.3 -8.x
Red Hat Red Hat Enterprise Linux* 7.4 - 8.x
SUSE SLES 12 SP3-SP5, 15.x
36. ネットワーク要件
• Azure サービスエンドポイントへの Outbound
443/tcp の通信が許可されていること
• 具体的な通信先は以下を参照
• https://learn.microsoft.com/ja-
jp/azure/governance/machine-configuration/overview
37. マシン構成の作成・テスト環境の準備
• 作成環境
• Windows (推奨)(Linux だとハマるかも)
• PowerShell 7.3 をインストール
• Install-Module -Name GuestConfiguration
• Install-Module -Name PSDesiredStateConfiguration -AllowPrerelease
• テスト環境
• Windows or Ubuntu18 (最終的に構成適用する OS 種別に合せる)
• PowerShell 7.3 をインストール
• Install-Module -Name GuestConfiguration
38. DSC リソースの準備
• マシン構成ではクラスベースの DSC リソースのみ利用可能
• (現時点では)既存リソースの多くが対応できていない
• 必要があれば DSC リソース(モジュール)を記述
• リソースクラスを持つ
• Get, Set, Test メソッドを持つ
• Reason クラスを持つ
39. クラスベースの DSC リソース
• Modules フォルダー内にモジュール名のフォルダーを作成
• リソースクラスを記述したコードと定義を配置
• 作成したリソースは、構成内で Import-DscResource を使
用して読み込み
40. 構成(Configuration)の記述
• Configuration キーワードを用いて構成を作成
• 記述方法は今までの DSC と同様
Configuration SCUGJWindowsBaseConfiguration {
Import-DscResource -ModuleName Scugj34SampleDscResource -Name SCUGJFile
Node SCUGJ34WindowsBaseConfig {
SCUGJFile WelcomeFile {
path = "C:¥SCUGJ34-Demo.txt"
ensure = "Present"
content = "Welcome to SCUGJ34 !!`nCustom DSC Resource: SCUGJFile"
}
}
}
47. まとめ
• Azure Automanage マシン構成を使用して Azure
Arc 対応サーバーも構成の適用・管理が可能
• Preview なのでリソースが整備されていないが、
動作の確認は可能
• 使ってみて、何かあればフィードバックを
48. 参考資料
• PowerShell Desired State Configurationの概要
• Azure Automanage マシン構成のドキュメント
• Azure Automanage のマシン構成機能の概要
• マシン構成の作成環境の設定方法
• カスタム マシン構成パッケージの成果物の作成方法
• マシン構成パッケージの成果物をテストする方法
• カスタム マシン構成パッケージの成果物の公開方法
• Writing DSC Resources for Azure Policy Guest Configuration - For Linux! by
Gael Colas