前回もご紹介したのですが、ご縁があって書かせていただいた @IT Windows Server Insider様 の Desired State Configuration (DSC) の超入門記事が完結したので記事にしてみます。
目次
記事の目的、意図したことなどを、ほげもげ。
記事の目的
DSC にまず触ってもらうこと。です。
学習初期の情報が乏しい
自分自身が DSC を導入するにあたって、学習初期にいくつも問題と遭遇しました。
- そもそもなぜ DSCが必要なのかわからない - 何から手を付ければいいのか、初めの一歩がわからない - 初めの一歩やサンプルConfigurationがあっても、構築の流れが網羅されていない - Pushの例は多いけど、Pullをどうやるのかわからない - そもそもLCMってなに
今回の記事は、PowerShell や Chefを使ったりしているけど、DSC使うのわからない方が DSCで Push/Pull構成を作れるまでを理解していただくことを最終的な目的としています。
この記事を見て、手元の環境を作ることで Push / Pull の環境がコードでさくっと作れるはず。です。*1
基礎的な知識の充足
今回の記事では、DSCの構成から、Local Configuration Managerのパラメータまで基本的な知識を抑えてあります。これらの知識は、さらにDSCを使いこなそうとするときに必須となるものです。
記事を通して環境を作ってみたり、パラメータを変えることで、より理解が進むと思います。
さらに DSCを学びたい人へ
PowerShell Team も PowerShell.org も 他のMVPの方々の記事も素晴らしいので、進む際に是非見てみてください。
私も、ブログなどで記事を書いて紹介していこうと思います。
Windows で Infrastructure as Code は一般的なのか
詳細の中編/後編を記事にするまでに、勉強会や de:code でセッションをする機会をいただいたりしました。ありがとうございます。
セッションを通して感じたのは、PowerShell DSC を実際に環境で使うにまでの流れ、Infrastructure as Code が想像以上に Windows な環境では一般的でないのかということです。
もちろんやっている方も大勢なのでしょうが、少なくとも Linux で行われるようなコードベースの展開よりも、「System Center を使ったり、GUIでぽちぽちする」というご意見をよく目にしたように思います。
Infrastructure as code を主眼に
そこで 記事では、意図的に Infrastructure as Code を主体にしました。
Windows は GUIともマッチしているのがいい。というのはメリットの一面ですが、GUIの操作に依らないコードだけの方が、Chef と単純に比べたり理解が進むと考えたためです。
実際にコードを触る方が楽しい人は多いと信じていますが、そうじゃない方にとっては楽しくないかもしれませんね。
それでも、少しでもみなさんの学習の助けになれば幸いです。
DSC クロスプラットフォーム対応なのか
DSC は、CIM / MOF をベースにしているため、 Linux (omiとwsman が有効になっていれば) に対しても Push が可能です。
現在は CTPリリースですが GitHub リポジトリもあるので興味のある方はぜひ。
一言いうなら、Pullはよ。
Windows は DSC でないといけないのか。
いいえ。Chef や Puppet もDSC を呼び出すことができます。Chefの方がクックブックレベルで統合されていますが。
DSCは、PowerShell Team と Chef エンジニア が密接な交流を経て生まれたプラットフォームです。
CMツールではなくプラットフォームなので、Chef のようにすべての面倒を見てくれるわけではありません。その代り、外部サービスが DSCを利用したり、他のCMツールがDSCを利用することが容易になっています。
事実、Chef も dsc cookbook を使うことで、Windows に対しては DSC Resource/Configuration を利用することが可能です。
GitHub リポジトリと スーパーマーケットに cookbook が公開されているのでぜひ遊んでみてください。
DSCにこだわる必要もないのです。Chef でもDSC でも使いやすい方を使えばいいと思います。
DSC がツールじゃないといって、できない。というわけではありません。初めから容易されていない部分を作る必要があるといっても、ちょっとした手助けで済みます。
最後に
これを機に Windows でも Infrastructure as Code をして幸せになれる方が増えることを祈っています。
Infrastructure as Code は、Windowsでも現実のものなのです。テスト周りもいずれ記事にしたいと思います。
余談 : 当初の予定
全2回の予定でした。内容も、もう少し簡素というか絞ってさっくりでした。
第1回を書き終えた後、前回の記事 を読んだ担当編集様から、「文字数気にしないでいいのでもっと書いていいのよ」とやさしいお言葉を頂戴したのがターニングポイントでした。
セッションを通じて、簡素に書いても伝わらないと認識したため、お言葉に甘えて大幅に加筆が始まりました。
第2回を書きおわったら、8000文字予定が 24000文字になっていました。編集様ごめんなさい。
編集様のお心遣いで 第2回を急きょ 中編/後編 に分割、前中後の3部構成にしていただいたという経緯があります。
改めて担当していただいた「U様、ありがとうございました。」
*1:きっと。たぶん。手元で全コード動かして環境作ってます。