SCVMM が新しくなる前に (その17) ~PowerShell による仮想環境の自動管理~

今回は、「すべての管理をスクリプト化(自動化)するための、PowerShell 管理機能」について書いてみます。

PowerShell

正式には Windows PowerShell

イベントやセミナーでエバンジェリストの田辺がセッションをしたり、雑誌などに記事を書いたりしているのをご存じの方も多いと思いますが、マイクロソフトが提供する新しいコマンド ライン シェルであり、システム管理に役立つように設計されたスクリプト言語です。

https://www.microsoft.com/japan/technet/scriptcenter/hubs/msh.mspx

PowerShell そのものについては上記 TechNetサイトや田辺のBlogを見ていただければよいと思いますが、今回はマイクロソフトのロードマップとしての PowerShell と SCVMMとの関係について書いておきます。

*****
まず、わかりやすい GUI は、今までのマイクロソフトの売りの1つでした。

「わからない奴が触るな」

というご意見もあるのは知っていますがその議論は今回は置いといて、多くのエンジニアさんに直感的に理解してもらう・操作してもらうためには非常に重要な機能です。

ただ、実際に運用が始まった時、同じ作業を繰り返したり、タスクをある時間に自動実行させたりする場合にはコマンドやスクリプトという話しがでてきます。そして・・・

「なんでMS製品はコマンドで操作ができないんだ」

と。

マイクロソフトはそれらの声に応えるため、OSが新しくなるたびにコマンドやスクリプトの環境を整えてきたわけですが、GUI と コマンドを別々に作っていては抜本的な改善にはなりません。そこで、PowerShell の出番というわけです。

PowerShell 自体は無償で提供されているので、ダウンロードして利用できますし、Windows Server 2008 には標準で入っています。
専用のシェルを使って対話型の処理をすることもできますし、.NET Framework がベースになっていて、テキストではなくオブジェクトを扱った高度な処理を行うこともできます。

SCVMM の運用管理環境は、まず PowerShell ベースで作られ、そのコマンドを呼び出すツールとしてGUIが作られています。

「その16」の最後に書いた、コマンドではできてGUIでできないことがあるというのはこのためです。

※ 今までのマイクロソフトの運用管理環境ではありえなかった世界ですが、Exchange Server・System Center Operations Manager・System Center Data Protection Manager など複数の製品で同様の管理環境が整っています。

この仕組みによって、SCVMM が実現できる仮想環境の操作は、完全にスクリプト化・コマンド化が可能になりました!!

スクリプト化・コマンド化は、今後の運用に必要な「自動化の促進」にもつながりますので、ただ仮想化すればよいという話ではなく自動化も一緒に進めているというマイクロソフトの方向性をご理解いただければ幸いです。

******
面白いですよね!?

でも、今回はもう1つ追加でお知らせしておきたいことがあります。

それは SCVMM の管理ツールでウィザードを実行する際、ウィザードの最後にスクリプトを出力するためのボタンが付いているということです。

私のように GUI での操作中心で、必要な時だけサンプルのスクリプトを探して修正を加えて利用していたようなエンジニアにとっては、いきなり資料を見ながらコマンドでやりなさいという要求はつらいものがあります。(できる・できないという話しだけでなく、向き・不向きもある気がしています)

オプションにどのような文字を設定すればよいか?といった疑問や、ちょっとしたスペルミスなのでエラーが、、、といったこともあるでしょう。

もし私と同じような思いをされている方や初めてSCVMMを触る方は、まず最初に SCVMM の管理コンソールのウィザードを使って実行してみてください。

そして、最後にPowerShell のスクリプトを出力しておけば、それがサンプルとなるので、ちょっと修正するだけでスクリプト化や自動化へのつなげていくことができます。

それからSCVMM を極めたい方は是非、PowerShell のコマンドにもご注目をしてください。

なぜかというと、PowerShell コマンドの スイッチ を見ることで、どのようなオプションがあるのかがわかるからです。GUI だと選択しない限り見ることもない設定が、PowerShell のコマンドのスイッチを調べることで認識できるというのは面白いことだと思います。ということで、実際にPowerShellで自動化するかしないかにかかわらず、一度アクセスしてみてもらえるとありがたいです。

まずはじめに何をするかですが・・・

スタートメニューの下の SCVMM 用のシェルを起動して、Get-Command とたたいてみてください。

New-VM や Get-VM のほか、利用できるコマンドの一覧が出てきます。あとは、SCVMM の動きを理解しながら PowerShell の利用法を学んでもらえると、晴れてPowerShellマスターですね。(ちょっと大げさですが、いいでしょう(笑)

マイクロソフト 高添