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 構成を適用する方法について紹介します。

Avatar for Kazuki Takai

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