2015/06/14
わんくま同盟大阪勉強会#63「PowerShell DSCリソースを書いてみよう」資料公開
わんくま同盟大阪勉強会#63でのセッション資料を公開します。
デモで使用したサンプルスクリプトも併せてご利用ください。
わんくま同盟の勉強会は今回の大阪#63で10年目に入ったのですが、実は私も9年前の大阪#4で勉強会セッションデビューをしていたりします。
さて、今回はPowerShell DSCリソースを作成するというテーマで話しました。DSCでは管理対象ごとにロジック(リソース)と設定(Configuration)を分離でき、一貫性を持ったインフラ構成の自動化が可能になる素敵な機能です。が、いかんせん、ビルトインリソース(OS標準で含まれるリソース)の種類が少ないので、実際の業務で使うにはカスタムリソースを作成する必要が出てくると思います。
今回のデモでは、テキストファイルの中身を自動構成するという、ごく単純なサンプルを作成して実演してみましたが、考え方や実装方法の基本はこれでカバーできるのではないかと思います。
より詳しくは、ぎたぱそ氏の記事を読んでいただければ良いかと思います。本番で使えるPowerShell DSCリソース作成入門 - Build Insider
サンプルスクリプトの説明
-
事前準備
今回のデモはWin10 Insider Preview(PowerShell 5.0)上で行いましたが、PowerShell 4.0環境でもおそらく動作すると思います。なお、今回のConfigurationはローカルコンピュータに対しPush適用(Start-DscConfigurationコマンドレットによる手動適用)することを想定しています。あらかじめ、DSCが実行可能な環境(スクリプト実行ポリシー、PSリモーティング、Local Configuration Managerの設定等)を整えておいてください。また、スクリプトはすべて管理者権限で実行してください。
-
xDSCResourceDesignerのインストール
DSCリソースのひな形を作成するためのxDSCResourceDesignerをインストールします。v5環境であればPowerShellGetを用い、Install-Module xDSCResourceDesigner で入ります。v4環境の場合はTechnetからDSC Resource KitをDLしてください。
-
xDSCResourceDesignerの使用方法の確認
xDSCResourceDesignerの使用方法を確認します。make_Foo_resource_template.ps1を実行すると、xDSCResourceDesignerを用いてDSCリソースFooのひな形が$env:ProgramFiles\WindowsPowerShell\Modules\TestResourceに作成されます。ひな形がどのように作成されるかを確認してください。また、Get-DscResource -Name Fooとして、DSCリソースがきちんと認識されているか、確認してください。
-
TextFileLineリソースの作成
今回のデモで作成したTextFileLineリソースは、make_TextFileLine_resource_template.ps1を実行してまずひな形を作成しました。作成されたひな形を用いて、TextFileLine.psm1に実際のロジックを記述し、DSCリソースを完成させました。zipに含まれるTestResourceフォルダの中身が、今回作成したDSCリソースモジュールになりますので、まずは内容を確認してみてください。特に、Set-TargetResource関数はどのように実装すると冪等性を保持して作成できるのかを念頭に置いてみてください。
-
TextFileLineリソースの展開
zipに含まれるTestResourceフォルダを$env:ProgramFiles\WindowsPowerShell\Modules\の下にコピーしてください。
Get-DscResource -Name TextFileLineとしてDSCリソースが認識されていることを確認してください。
-
TextFileLineリソースを用いたConfigurationの作成
start_dsc_configuration.ps1に含まれる、TextFileLineTestが、今回適用してみるConfigurationになります。
start_dsc_configuration.ps1を実行すると、ドキュメントフォルダにmofファイルを生成し、Start-DscConfigurationコマンドレットにより設定を反映させます。
正しくConfigurationが適用されれば、ドキュメントフォルダにlist.txtというファイルが生成し、中にプログラム言語のリストが記入されているはずです。
-
Configurationが反映されたことを確認
Test-DscConfigurationコマンドレットを実行すると、現在の状態とConfigurationに書かれた状態が一致していればTrueと表示されます。今はConfigurationを適用した直後なのでTrueになるはずです。
またGet-DscConfigurationコマンドレットを実行すると、現在の各プロパティの状態を表示してくれます。
list.txtに含まれる行をテキストエディタで編集して上書きしたりすると、Test-DscConfigurationの結果はFalseになるはずです。
list.txtを手動で変更した状態で、再度start_dsc_configuration.ps1を実行すると、再びConfiguration通りの状態に戻ると思います。その際、変更のなかったプロパティに関しては、処理がスキップされていることをログをみて確認してください。
-
その他
Configurationを色々書き換えて試してください。例えばEnsure="Absent"にすると対象項目が存在しない状態になります。
2010/06/25
PowerShell 2.0、Windows Updateで提供開始
今月のWindows UpdateでVista/XP/Server 2003/Server 2008用のWindows PowerShell 2.0が提供開始になりました。Windows Server 2008の場合では次のような表示になります。
Windows Server 2008 用の Windows PowerShell 2.0 および WinRM 2.0 (KB968930)
ダウンロード サイズ: 32.4 MB
この更新プログラムを有効にするには、コンピューターを再起動する必要があります。
更新プログラムの種類: オプション
Windows 管理フレームワーク コア パッケージには、Windows PowerShell 2.0 および Windows リモート管理 (WinRM) 2.0 が含まれています。Windows 管理フレームワークの詳細については、http://support.microsoft.com/kb/968929 を参照してください。
公式ブログの記事:Windows PowerShell 2.0 on Windows Update - Windows PowerShell Blog - Site Home - MSDN Blogs
このアップデートは強制ではなくオプションです。このアップデートを適用すると、Windows 管理フレームワーク (Windows PowerShell 2. 0、WinRM 2. 0、および BITS 4. 0) をインストーラーを使用して適用するのと同様にPowerShell 2.0を導入することができます。なお、このインストーラーではPowerShell 1.0があらかじめシステムにインストールされている場合は前もってアンインストールする必要がありましたが、Windows Updateの場合はアンインストールの必要はなく、自動的に1.0が上書きされ2.0になります。なお.NET Framework 2.0 sp1以上がインストールされていない場合、または、正式版でないPowerShellがシステムにインストールされている場合、このアップデートは候補に現れません。
このアップデートはアンインストールすることができます。その場合はコントロールパネルの「プログラムと機能」などで「更新プログラム」を表示し、「Windows Management Framework Core」を選択します。なおこのアップデートをする前にv1.0をインストールしていた場合は、当該アップデートをアンインストールすることでPowerShellのバージョンがv2.0からv1.0に戻ります。
元記事:http://blogs.wankuma.com/mutaguchi/archive/2010/06/25/190599.aspx2008/05/14
ReadOnlyな配列を作るにはどうすればいいんだろう
PS D:\script> $a=1,2,3,4,5 PS D:\script> $a 1 2 3 4 5 PS D:\script> $a[1]=100 PS D:\script> $a 1 100 3 4 5 PS D:\script> Set-Variable a -Option ReadOnly PS D:\script> $a=100,99,98,97 変数 a は読み取り専用または定数であるため、上書きできません。 ←これはいいんだけど 発生場所 行:1 文字:3 + $a= <<<< 100,99,98,97 PS D:\script> $a[1]=150 ←要素書き換えできるじゃん! PS D:\script> $a 1 150 3 4 5 PS D:\script>
というわけで困ります。
元記事:http://blogs.wankuma.com/mutaguchi/archive/2008/05/14/137561.aspx2008/02/19
ミク&サクラ勉強会ありがとうございました
先日エルおおさかで行われたわんくま勉強会におこし頂きありがとうございました。
ご報告が遅れましたがレポートです。
ふたコマいただいたんですが、ひとコマ目は音楽とDTM(MIDI)の基礎のお話をやりました。ドレミとは、音符とは、音階とは、和音とは、とかごく基礎のところを触れただけなので初心者の方には喜んでいただけたようですが、上級者の方には物足りなかったようで少し工夫をすべきでしたね。
後半はテキスト音楽「サクラ」を用いて実際に曲を作るところを3分間クッキング形式でどんどん作っていきました(実際はデータ作成に7,8時間かかっています)。なにより、ずったずったでドラムを打ち込めるところがウケてましたねwミク講演といっておきながらよく考えるとオケを作る方が時間かかるので実質サクラ講演に近くなってしまいました。でもミクの歌唱力に驚いた方もいらっしゃったようでよかったかなと。ミクの濃い話は私はちょっと無理なのでできればどなたかやっていただけると嬉しいなぁ、と思ったり。ミク単体で歌わせるのもいいですが、オケをつけるとぐっと「それっぽく」なることが示せたかな、と思います。
Audacityのファイルが壊れていた原因はよくわからないのですが、制作環境とデモ環境が違うといろいろ問題のようですね。どこかのファイルが絶対パスでデータを持ってたのが原因みたいです。一回デモ機でやったときはうまくいったんですけどねー?古いファイルを上書きしたのかも?
でもミク&サクラでこれだけのことができるということが示せてよかったように思います。アンケートもおおむね高評価をいただきました。ありがとうございます。これを機にDTMやってみよう、あるいは再開してみよう、サクラを触ってみようという方が結構おられたのがうれしかったです。あとミクのかわいい絵をアンケートに描いてくれた方どうもありがとうございますv
DTMと化学とスクリプトの関係は何かあるのかと聞かれたんですがとくにないですw
春編夏編とか、応用編とか、DTM本執筆とかわんくまテーマソング作曲とかいろいろ振られたんですけどごめんなさい、当分実現しそうにないですw
あと私の講演がやまにょんの濃いー講演にうまくつながったようでよかったです。私だけの話だと物足りなかった方もいたようですし。やまにょん遠いところからありがとー
講演資料、データ(完成版、作りかけのも含む)は一足先に自宅サーバーで公開しておきます。
mutaの作った音楽
http://winscript.jp/music/ (下の方)
ソフトのDL・紹介サイト
テキスト音楽「サクラ」 http://oto.chu.jp/
VOCALOID2 初音ミクhttp://www.crypton.co.jp/mp/pages/prod/vocaloid/cv01.jsp
Audacity http://audacity.sourceforge.net/
追伸。
この講演はまぁ、ちゃっぴさんが私をそそのかしたことがきっかけで実現したんですが、実はちゃっぴさんから贈り物が届いていました。最後にちょっとだけみなさんにお見せしたんですけど家で写真撮りました。
こんなメッセージが入っていました。これ会場で読むべきだったんですがてんぱってて読めませんでした、ごめんなさい
えーと。これ、「式場 エルおおさか」 で届いたんですけど・・・wwwww
というか、これはあれですね、結婚したいしたいと某所でわめいていた私に、じゃあミクと結婚しちゃえばというちゃっぴ先生のきっついシャレですなw
というわけで、みなさんどうもありがとうございました。
次回は3/29 PowerShellの話をやりますのでよろしくお願いします。
元記事:http://blogs.wankuma.com/mutaguchi/archive/2008/02/19/123810.aspx
Copyright © 2005-2018 Daisuke Mutaguchi All rights reserved
mailto: mutaguchi at roy.hi-ho.ne.jp
プライバシーポリシー