インフラストラクチャ・テストとは?

インフラストラクチャ・テストとは?

投稿者: Adam Bertram
投稿日: 2018年10月24 0 Comments

IT部門では、できるだけ多くの処理を自動化して効率化しようとしますが、ときにはその取り組みが行き過ぎて新たな問題が発生する場合があります。あまりに多くのスクリプトとプロセスが実行されているため、何をもって「完了した」と見做せばいいか、確信がもてなくなってしまいます。

AD(Active Directory)ユーザー、Exchangeメールボックス、ホームフォルダなどを作成するユーザープロビジョニング・スクリプトを実行しているとして、スクリプトがするべきすべてのことを実行していると確言できますか?

実証することはできません。エラーがなかったことは確認でき、後でスポットチェックすることもできます。しかし、スクリプトが1,000人のユーザーをカバーしているとしたら、すべてをチェックするのは実現可能ではないでしょう。つまり、テストの自動化も必要になってくるということです。

インフラストラクチャ・テストとは、何をするのか?

まだ確定した呼称にはなっていませんが、インフラストラクチャ・テストと呼ばれるものがテストの自動化手法として考えられています。インフラストラクチャ・テストでは、IT環境内のさまざまなものから設定値を読み取り、それらを期待値と比較することを行います。「ADユーザーは適切な属性で作成されたか」、「ポート80はWebサーバーで応答しているか」、「DHCPサービスは実行中か」などがテストできます。

インフラストラクチャ・テストの議論は、小さなブログではカバーできないほど広範にわたりますので、考えるきっかけになるようなポイントを紹介します。このようなテストを書き始めると、あるパターンがあることがわかってきます。異なるものに適用するのに、類似したコードを何度も繰り返し書いていることに気が付くと思います。ということは、毎回コピーして貼り付けるのではなく、PowerShell のスクリプトや関数の形でコードを共有できるということです。インフラストラクチャが適切に設定されていることを確認するのに役立つスクリプトを例示しましょう。

ネットワークポートのテスト

インフラストラクチャ・テストの典型的なものとして、ネットワークポートのテストがあります。ネットワークのサービスは特定のポートを経由して提供されるので、サービスが「アップ」かどうかのテストは、特定のポートがリモートコンピュータで利用可能なことを確認することで行います。このテストを構築するには、TCP/UDPスタックと .NETに関するかなりの知識が必要ですが、コミュニティにある Test-NetworkPort.ps1 というスクリプトを使うことができます。このスクリプトは PowerShell Gallery からダウンロードできます。

Install-Script -Name Test-NetworkPort

ダウンロードしたらすぐ Test-NetworkPort.ps1 を使用できます。ポートが稼働中かどうかによって、True か False が返ってきます。ここではコンピュータ名とポート番号のパラメータを指定していますが、他のパラメータは、このスクリプトのヘルプでチェックできます。

PS > Test-NetworkPort.ps1 -ComputerName DC -Port 389
True

DNS名前解決のテスト

ここで紹介するのにふさわしい、もう1つのテストがあります。新しいマシンを起動するときには、ダイナミックDNSを利用して名前を登録するか明示的にDNSレコードを作成するかして、名前解決を行う必要がありますが、PowerShell には、名前解決を試みて解決できるかどうかを True または False で返すスクリプトがあります。

ポートテストの例と同じく、このスクリプトも、PowerShell Gallery からダウンロードできます。

Install-Script -Name Test-DnsNameResolution

ダウンロードが完了したら、照会する名前とDNSサーバーを指定して Test-DnsNameResolution.ps1 を呼び出します。

PS> Test-DnsNameResolution.ps1 -Name DC.mylab.local -Server DC
True

以上は、共通コードをスクリプトにまとめる2つの例です。これらのスクリプトを関数に変換して PowerShell モジュールに組み込むこともできますが、それについては別の機会に譲ります。

Adam Bertram

Adam Bertram is a 20-year veteran of IT. He’s currently an automation engineer, blogger, independent consultant, freelance writer, author, and trainer. Adam focuses on DevOps, system management, and automation technologies as well as various cloud platforms. He is a Microsoft Cloud and Datacenter Management MVP and efficiency nerd that enjoys teaching others a better way to leverage automation.

コメント

Comments are disabled in preview mode.
トピック

Sitefinityトレーニングと認定を開始

クラス最高のSitefinityの機能を使って、魅力的なデジタル体験を提供する方法をエキスパートがお教えします。

さらに詳しく

より優れた業務アプリケーションやウェブサイトの開発に役立つ、ニュース、情報、チュートリアルをご案内します。