[CLUSTERPRO]CLUSTERPRO Dのインストールを自動化してみた。
こんにちは、毎年ちゃんと夏バテをする城内です。
今回は、AWSから少し離れて、NECさんのCLUSTERPROを取り上げてみたいと思います。
当ブログでは、以前にも以下のような記事を書いていましたが、CLUSTERPROもXからDに進化しましたので、これからCLUSTERPRO Dの方を触っていこうかと思います。
はじめに
ということで、さっそく製品のインストールからいきたいと思います。
インストーラは以下のサイトからダウンロードできます。
また、マニュアルもダウンロードページから取得できますので、一緒にダウンロードし、参照しながら作業を進めましょう。
やってみた
インストール
と、今回はWindows Serverへのインストールを実際にやってみたのですが、さすがクラプロですね!あまりにサクッとできすぎて、記事1本分にも至りませんでした(笑)
インストーラをダブルクリックし、以下のウィザードに従って進んでいけば、すぐにインストールできます。
(インストール後にサーバ再起動が必要になります)
自動化
ということで、それだけでは記事として物足りないので、今回はインストール作業を自動化してみました!
手動でやっても大した作業ではないですが、昨今の自動化の波(?)を踏まえれば、コード化しておいて損はないでしょう。(たぶん
PowerShellを使って(初めて)書いてみましたが、以下の感じでインストールが実施できます。
一応、コピペで使えると思います。
# 変数定義 $int_returncode = 0 $str_current_dir = (Convert-Path .) $str_current_script = $MyInvocation.MyCommand.Path $str_clp_dl_url = "https://www.support.nec.co.jp/DownLoad.aspx?file=d10w_x64.zip&id=3140103047" $str_clp_installer_zip_filename = "clusterpro_installer.zip" $str_clp_installer_zip = (Join-Path $str_current_dir $str_clp_installer_zip_filename) $str_clp_exe_prefix = "clznode-" # 関数定義 function Fc-Logger($str_message) { $Now = Get-Date $str_output = "{0:0000}-{1:00}-{2:00} " -f $Now.Year, $Now.Month, $Now.Day $str_output += "{0:00}:{1:00}:{2:00}.{3:000} " -f $Now.Hour, $Now.Minute, $Now.Second, $Now.Millisecond $str_output += "$str_message" $str_logfile = $str_current_script.Replace(".ps1", "") $str_logfile += "_{0:0000}-{1:00}-{2:00}.log" -f $Now.Year, $Now.Month, $Now.Day Write-Output "$str_output" | Out-File -FilePath "$str_logfile" -Encoding Default -append Return "$str_output" } # メイン処理 # インストーラをダウンロードする Invoke-WebRequest -Uri "$str_clp_dl_url" -OutFile "$str_clp_installer_zip" if ( (Test-Path -Path "$str_clp_installer_zip") ) { Fc-Logger "[INFO] Downloading an installer was completed." } else { Fc-Logger "[ERROR] Falied to download an installer file." $int_returncode = 1 exit $int_returncode } $obj_explorer = New-Object -ComObject Shell.Application $obj_zip_file = $obj_explorer.NameSpace($str_clp_installer_zip) $obj_exp_dir = $obj_explorer.NameSpace($str_current_dir) # ZIPファイルを解凍する(エクスプローラ操作で中身を外にコピー) $obj_zip_file.Items() | ForEach-Object { $str_unzip_dir = $_.Path.Replace("$str_clp_installer_zip_filename\", "") $obj_exp_dir.CopyHere($_.Path, 0x0010) } $obj_unzip_dir = $obj_explorer.NameSpace($str_unzip_dir) # 実行ファイルのパスを取得 $obj_unzip_dir.Items() | ForEach-Object { if ( $_.Path.Contains("$str_clp_exe_prefix") ) { $str_exe_file = $_.Path } } # インストーラをサイレントインストールモードで実行(自動再起動は抑止し、後続処理で実行) Start-Process -FilePath "$str_exe_file" -ArgumentList "/S /v/norestart /v/qn" -Wait $str_result = (Get-WmiObject -Class Win32_Product -Filter "Name = 'CLUSTERPRO D'") if ( "$str_result" -eq "" ) { Fc-Logger "[ERROR] Installation failed." $int_returncode = 1 } else { Fc-Logger "[INFO] Installation was successful. $str_result" Fc-Logger "[INFO] Server restart..." Restart-Computer -Force } exit $int_returncode
さいごに
こんな感じで、これからCLUSTERPRO Dを触っていきますので、ドシドシ記事にしてきたいと思います。
次は、セットアップの辺りで何か書きたいですね。
ではまたー。
参考情報
以下、コードを参考にさせてもらいましたm(_ _)m