Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Azure Arc Automanage Machine Configuration による構...

Azure Arc Automanage Machine Configuration による構成の管理と適用

Manage Arc enabled servers (OS/App) Configuration using Azure Automanage Machine Configuration

Windows Server & Cloud User Group Japan 第34回勉強会の資料です。
Azure Automanage マシン構成を使用して、Azure Arc 対応サーバーに DSC 構成を適用する方法について紹介します。

Kazuki Takai

March 18, 2023
Tweet

More Decks by Kazuki Takai

Other Decks in Technology

Transcript

  1. お話しすること • PowerShell DSC のおさらい • Azure Automation State Configuration

    と Azure Automanage マシン構成の違い • Azure Automanage マシン構成で利用可能な リソースとパッケージの作成方法 • Azure Arc 対応サーバーに対するマシン構成 の適用
  2. 自己紹介 • たかい (Kazuki Takai) • 会社員 (某ISP勤務) • サービス基盤開発、技術開発

    • ライセンス関連 • wSCUGJ (Windows Server & System Center User Group Japan) • 興味分野:統合管理、ID、自動化、セキュリティ、監視・運用 • 趣味:カメラ(風景写真)、ビデオゲーム、旅行(温泉) • Microsoft MVP for Cloud and Datacenter Management
  3. DSC とは • PowerShell で利用できる • サーバーの設定ができる • Chef や

    Ansible みたいなやつ ※細かいところはそれなりに違います
  4. DSC とは • Desired State Configuration • 構成管理プラットフォーム • 構成(Configuration)を特定の状態に保ち続ける

    ための仕組み • あるべき状態を定義 • 定義に基づいて設定を変更 • 定期的に設定をチェックし正しい状態を維持
  5. Infrastructure as Code • Infrastructure as Code (狭義の) • インフラ(ファブリック)の定義をコード化して管理・自動構成

    • Azure Resource Manager, Chef Provision, etc… • Configuration as Code • ファブリック上で動作する環境(OS、ミドルウェア、アプリ ケーションなど)の構成、設定をコード化して、管理・自動構成 • DSC, Ansible, etc…
  6. DSC のメリット • 構成が管理されている • あるべき状態が定義されている • 定義が表現されている • 構成を担保できる

    • あるべき状態に保つ(保ち続ける) • 必ず「定義された状態」になる(オペミスしない) • 構成状態をレポートできる
  7. DSC の構成要素 • Configuration • 「あるべき姿」を定義したもの(PS Script -> MOF) •

    Resource • 構成(操作)対象を実際に操作するために必要なもの • Local Configuration Manager (LCM) • MOF と Resource を使用して構成(変更)を実施 • Pull サーバー (コントローラー、管理マネージャー) • LCM からの要求を受け、MOF およびリソースを応答 • LCM からのレポートを受信(レポートサーバー)
  8. ローカル構成マネージャー • LCM : Local Configuration Manager • ノード構成ファイル(MOF)を解釈して構成を変更 •

    構成モード • ApplyOnly : 構成を一度のみ適用し、後の変更は追跡しない • Audit : 定義された状態になっているか確認、追跡する • ApplyAndMonitor : 構成を適用後、変更を追跡する • ApplyAndAutoCorrect : 構成を適用後変更を追跡し、ずれが生 じた場合は自動修正する
  9. Push と Pull • Push モデル • ターゲットへ構成ファイルを送信して構成を実施 • Push

    されたタイミングで 1 回のみ実行 • Pull モデル • ターゲットノードが Pull サーバーから構成ファイルを 取得して構成を実施 • DSC Pull サーバー側へ状態レポートを送信
  10. 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 モード時はオン 変更トリガー 通常は手動 自動及び手動
  11. 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
  12. Main Topic 最近の DSC (Desired State Configuration with PS7) Azure

    Automanage マシン構成 Azure Arc VM への適用
  13. PowerShell 7.2 以降における DSC • PowerShell 7.2 以降 DSC は

    PS 本体から分離 • PowerShell 本体のサイズを減らすため • それ以前も、DSC Resource は PowerShell 本体とは 異なるリリースサイクルだった • PowerShell 7.2 以降で DSC を利用する場合 • 明示的に PSDesiredStateConfiguration モジュール のインストールが必要 Install-Module -Name PSDesiredStateConfiguration -Repository PSGallery
  14. 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
  15. 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 を構成可能
  16. 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 として利用
  17. Desired State Configuration v3.0 • Desired State Configuration v2.0 の後継

    • 現時点では Preview • Azure Automanage マシン構成(Azure Policy)で利用可能 • Linux も構成対象として利用可能 • MOF ベースの DSC リソースは廃止 • PowerShell クラスベースの DSC リソースのみ利用可能
  18. どの 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
  19. Azure Automation State Configuration • Azure Automation の機能 • Azure

    Automation DSC (AADSC)とも表記される • Azure Automation が Pull Services として動作 • (必要であれば)追加の DSC リソースを登録 • 構成ファイル(スクリプト)を登録 • Azure Automation 側で構成をコンパイル • ターゲットノードを Azure Automation に登録 • 構成をノードに関連付けて構成、モニタリング
  20. Azure Automanage マシン構成 • Azure Automanage Machine Configuration • Azure

    仮想マシンと Azure Arc 対応サーバーに対する 構成管理・構成適用が可能 • Azure Policy 経由での適用が可能 • ターゲットノード単位での適用も可能 • 状態(準拠しているかどうか)の確認が可能 • ターゲットに対して複数の構成を同時に割り当て可能
  21. ゲスト構成パッケージ • Zip 圧縮されたファイル • 内容 • コンパイル済みの MOF •

    構成(Configuration)をコンパイルしたもの • 構成用のメタデータ • 必要となる DSC リソース モジュール ※作成方法は後述
  22. マシン構成の有効化(前提条件) • 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)のみ
  23. サポートされるターゲット 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
  24. マシン構成の作成・テスト環境の準備 • 作成環境 • 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
  25. DSC リソースの準備 • マシン構成ではクラスベースの DSC リソースのみ利用可能 • (現時点では)既存リソースの多くが対応できていない • 必要があれば

    DSC リソース(モジュール)を記述 • リソースクラスを持つ • Get, Set, Test メソッドを持つ • Reason クラスを持つ
  26. 構成(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" } } }
  27. ゲスト構成パッケージの作成 • コマンドを使用してパッケージを作成 • New-GuestConfigurationPackage • Name : 構成パッケージの名前 •

    Configuration : MOF ファイルを指定 • Type : 監査のみか、設定の適用も行うか • Path : 出力先(省略するとカレントディレクトリ) • パッケージサイズの制限 : 100MB 以下
  28. 構成の取得と検証 • マシン構成エージェントによる構成の取得 • 5分ごと • 取得した構成通りの設定となっているかの検証 • 15分ごと •

    複数の構成を割り当てている場合、シリアルに処理 • 構成エージェントが利用可能な CPU リソース • 5% 以下に制限
  29. まとめ • Azure Automanage マシン構成を使用して Azure Arc 対応サーバーも構成の適用・管理が可能 • Preview

    なのでリソースが整備されていないが、 動作の確認は可能 • 使ってみて、何かあればフィードバックを
  30. 参考資料 • PowerShell Desired State Configurationの概要 • Azure Automanage マシン構成のドキュメント

    • Azure Automanage のマシン構成機能の概要 • マシン構成の作成環境の設定方法 • カスタム マシン構成パッケージの成果物の作成方法 • マシン構成パッケージの成果物をテストする方法 • カスタム マシン構成パッケージの成果物の公開方法 • Writing DSC Resources for Azure Policy Guest Configuration - For Linux! by Gael Colas