Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

DSC 再入門

187 views

Published on

2018.02.24 System Center User Group Japan 第19回 勉強会の資料です。

Published in: Technology
  • Be the first to comment

  • Be the first to like this

DSC 再入門

  1. 1. DSC 再入門 System Center User Group Japan 第19回 勉強会 (2018.02.24) Kazuki Takai
  2. 2. 自己紹介  高井 一輝 (Takai Kazuki)  某ISP勤務  クラウドサービスの開発、設計、設備維持  Windows Server / System Center / Linux / etc…  Microsoft MVP - Cloud and Datacenter Management  System Center User Group Japan (SCUGJ)  Twitter : @zhuky7 / Facebook : kazuki.takai  Blog : http://operationslab.wordpress.com/
  3. 3. 内容とセッションのゴール  DSC を使ってみようと思えるくらいに理解する  AADSCを使ってみようと思えるくらいに理解する
  4. 4. Agenda  Desired State Confiduration おさらい  Pull Server を使用した管理  Azure VM DSC Extension と Azure Automation DSC  DSC の今後
  5. 5. はじめる前に  本資料の内容は個人的な検証結果に基づきます  所属する会社や組織、マイクロソフト社の公式な見解を記載するものではありま せん  表記や内容に誤りがあるなど、お気づきの点があれば、facebook 等でご連絡 いただけると幸いです  今後のリリースで機能や動作が変更、削除される可能性があります
  6. 6. Review DSC Desired State Confiduration おさらい
  7. 7. DSC とは?  PowerShell で使える  サーバーの設定ができる  Chef とか Puppet みたいなやつ
  8. 8. DSC とは  Desired State Configuration  構成(Configuration)を特定の状態に保ち続けるための仕組み  あるべき状態を定義  定義に基づいて設定を変更  定期的に設定をチェックし正しい状態を維持  Configuration as Code を実現するもの  コード化することで、管理・自動化が容易  ソフトウェア開発のナレッジを適用可能  PowerShell / WMF 4.0 以降で利用可能
  9. 9. Infrastructure as Code  Infrastructure as Code (広義の): インフラのコード化は主に2種類  Infrastructure as Code (狭義の)  インフラ(ファブリック)の定義をコード化して、管理・自動構成する  Azure Resource Manager, Chef Provision, etc…  Configuration as Code  ファブリック上で動作する環境(OS/OSE、ミドルウェア、アプリケーションなど) の構成、設定をコード化して、管理・自動構成する  PowerShell DSC, Azure Automation DSC, Chef, Puppet, etc…
  10. 10. DSC のメリット  構成が管理されている  あるべき状態が定義されている  定義が表現されている(頭の中ではなくコードとして)  構成を担保できる  あるべき状態に保つ(保ち続ける)  必ず「定義された状態」になる(オペミスしない)  構成状態をレポートできる
  11. 11. DSC でできること  サーバーの役割と機能の有効化または無効化  レジストリ設定の管理  ファイルとディレクトリの管理  プロセスとサービスの開始、停止、および管理  グループおよびユーザー アカウントの管理  新しいソフトウェアの展開  環境変数の管理  Windows PowerShell スクリプトの実行  望ましい状態からずれた構成の修正  特定のノードでの実際の構成状態の検出 DSC Resource を追加、作成することで 構成範囲を拡大可能
  12. 12. DSC の構成要素 DSC Configuration MOF ZIPDSC Resource dll / ps1 / etc… DSC Pull Server WMF / PowerShell Internet Information Services DSC Service + Report Data DSC Target Node
  13. 13. DSC の構成要素  Configuration :「あるべき姿」を定義したもの  Configuration キーワードによって定義が記述された PowerShell スクリプト  Configuration をコンパイルした MOF ファイルをノードへ適用  Resource :構成(操作)対象を実際に操作するために必要なもの  Configuration に書かれた定義を、実際の操作(手続き)へ橋渡しする  Local Configuration Manager (LCM; ローカル構成マネージャー)  MOF と Resource を使用して実際に構成(設定変更)を実施  DSC Pull サーバー  ターゲットノードの LCM からの要求を受け付け、MOF およびリソースを応答  LCM からのレポートを受信(レポートサーバー)
  14. 14. ローカル構成マネージャー  LCM : Local Configuration Manager  ノード構成ファイル(MOF)を解釈して構成を変更する DSC のエンジン  更新モデルや構成モード、Pull サーバーのアドレスなどを設定  構成モード  ApplyOnly : 新しい構成は一度のみ適用し、構成の変更を追跡しない  ApplyAndMonitor : 構成を適用後、変更を追跡する(自動修正はしない)(既定)  ApplyAndAutoCorrect : 構成を適用後変更を追跡し、ずれが生じた場合は自動修正する
  15. 15. Push と Pull  Push モデル  DSC ターゲットノードへ構成ファイルを送信(Push)して構成を実施  Push されたタイミングで 1 回のみ実行  ローカルに Push する場合も、PSRemoting の有効化が必要  Pull モデル  DSC ターゲットノードが Pull サーバーから構成ファイルを取得(Pull)して構成を実施  DSC ターゲットノード上の LCM が、定期的に Pull サーバーをポーリング  DSC Pull サーバー側へ状態レポートを送信(オプション)
  16. 16. Demo LCM Push Configuration
  17. 17. Using Pull Server Pull Server を使用した管理
  18. 18. DSC Pull Service  Pull Service  Pull モデルにおける管理サーバー的な役割を果たすもの  Configuration と Resource を配布  現在利用可能な Pull Service  Azure Automation Desired State Configuration (AA DSC)  Windows PowerShell Desired State Configuration Service on Windows Server  これが所謂 DSC Pull Server  Community maintained open source solutions  tug など  SMB Share 推奨
  19. 19. DSC Service on Windows Server  これ  ----------------------------------------->  xPSDesiredStateConfiguration を 使用して、DSC で構成すると楽
  20. 20. Demo Configure Pull Server
  21. 21. DSC Extension & AADSC Azure VM DSC Extension と Azure Automation DSC
  22. 22. DSC Extension とは  Azure VM PowerShell Desired State Configuration Extension  Azure VM の拡張機能  仮想マシンの外から、DSC Configuration を実行させることが可能  DSC Extension のみを使用する場合は、基本的に Push 型  AADSC と組み合わせて使用する場合は、Pull 型での利用となる
  23. 23. Demo Azure VM DSC Extension
  24. 24. DSC Extension 構成手順  Portal  .ps1 ファイルを zip アーカイブ  VM の拡張機能から、DSC Extension を追加  PowerShell  Publish-AzureRmVMDscConfiguration  .ps1 をアーカイブして、ストレージアカウントへ保存  Set-AzureRmVmDscExtension  Set するときの Version パラメーターは、DSC Extension のバージョンを指定
  25. 25. DSC Extension の注意点  Configuration Modules or Script  .ps1 ファイルは受け付けてもらえない  .ps1 ファイル単体のみで構成可能な場合も、zip アーカイブが必要 ドキュメント上は問題なさそうですが…
  26. 26. Azure Automation DSC とは  Azure Automation サービスの機能の一つ  PowerShell DSC の Pull サーバー(のようなもの)としてふるまう  DSC Pull サーバーを手元に用意しなくてもよい  Azure VM との連携が容易  OS 上で LCM を設定しなくても、ポータルからの操作のみで連携が可能
  27. 27. Azure Automation DSC の構成 DSC Configuration MOF ZIPDSC Resource dll / ps1 / etc… Azure Automation DSC Target Node
  28. 28. Demo Azure Automation DSC
  29. 29. Azure Automation DSC 構成手順  オートメーションアカウントを作成  DSC 構成をアップロード  DSC 構成をコンパイル  対象ノードを Azure Automation DSC へオンボード(Azure VM 以外)  対象ノードに DSC 構成を紐づけ
  30. 30. Azure Automation DSC の注意点  DSC 構成の追加  構成ファイル名(.ps1 ファイル名)は、.ps1 内の Configuration クラス名と同一であ る必要がある  構成ファイル名は、ハイフンを含めず、数字で始まらないようにする必要がある  「名前」も Configuration クラス名と同一である必要がある ドキュメントには書いてないですが、エラーになります
  31. 31. Future of DSC DSC の今後
  32. 32. DSC の今後  LCM が大きく変化する予定  (Windows 版は)WMF にバンドルされていたものが、WMF から切り離された個別 のコンポーネントに  LCM そのものは、C++ ベースで再実装  クロスプラとフォーム(Windows、Linux、MacOS?)  .NET、.NET Core、Windows PowerShell、PowerShell Core などには非依存に  オープンソース化  Provider としては、PowerShell、C++、Python をサポート
  33. 33. まとめ  DSC を使うことで、構成をコードで管理できる  Pull Service を使用することで、一元的な管理が可能  Azure Automation DSC はとても便利
  34. 34. 参考資料  PowerShell Team Blog  https://blogs.msdn.microsoft.com/powershell/  Windows PowerShell Desired State Configuration Overview  https://docs.microsoft.com/en-us/powershell/dsc/overview  tug  https://github.com/PowerShellOrg/tug

×