目次

Centos 7 にPowerCLI Core をインストールして、仮想マシンを自動デプロイする


Microsoft がPowershellをオープンソース化して約半年。MacやLinuxでPowershellが利用できるようになり、既存のPowershellスクリプトをOSによって、javascriptだとか、ansibleだとかにコンバートする必要なくWindowsの構成管理ができるようになった。

そんな中、Vmware Flingsにて、オープンソース版のPowerCLIがリリースされていたため、手元のCentos に入れて仮想マシンの自動デプロイを試してみる。

デプロイに利用するスクリプトは、以前に作成したPowerCLIで仮想マシンを作成するためのスクリプトを利用する。

PowerShellのCentosへのインストール

オープンソース版のPowershelglはGithubにて公開されている。

1
2
3
4
# Githubからダウンロード
wget https://github.com/PowerShell/PowerShell/releases/download/v6.0.0-alpha.13/powershell-6.0.0_alpha.13-1.el7.centos.x86_64.rpm
# ローカルの レポジトリからPowershellをインストールする
sudo yum localinstall ./powershell-6.0.0_alpha.13-1.el7.centos.x86_64.rpm

Centos用に、追加のライブラリをインストールする

[Powershellのチケット 2511によるとカスタムSSLを利用することにCentOSは問題があるということなので、追加のライブラリをインストールする。
vSphereなどへの接続は内部的にSSLを利用しているため、後々エラーが生じる。
インストールするのはlibcurl-opensslのrpmパッケージ

1
2
3
# 2016-02-18版が現在最新
wget https://ftp.riken.jp/Linux/cern/centos/7/cern/x86_64/Packages/libcurl-openssl-7.51.0-2.1.el7.cern.x86_64.rpm
sudo yum local install libcurl-openssl-7.51.0-2.1.el7.cern.x86_64.rpm

PowerShell起動用スクリプトを用意する

1
2
3
4
5
6
touch powershell.sh

#!/bin/bash
export LD_LIBRARY_PATH=/opt/shibboleth/lib64/:$LD_LIBRARY_PATH
powershell
chmod +x ./powershell.sh

PowerCLI CoreのCentosへのインストール

Powershellは、Moduleのインストール場所がユーザによって異なる。rootユーザの場合は * /root/.local/share/powershell/Modules * を参照するが、一般ユーザの場合は * /opt/microsoft/powershell/6.0.0-alpha.13/Modules * を参照する。

今回は一般ユーザで進める。事前にFlingsサイトからダウンロードしておき、ファイルを解凍する

1
2
3
4
5
6
mv PowerCLI_Core.zip  /opt/microsoft/powershell/6.0.0-alpha.13/Modules/
cd /opt/microsoft/powershell/6.0.0-alpha.13/Modules
## PowerCLIを解凍
unzip -d PowerCLI_Core PowerCLI_Core.zip
unzip -d PowerCLI.Vds.zip
unzip -d PowerCLI.ViCore

PowerCLIの起動とモジュールのインポート

1
2
3
4
5
#powershellをスクリプトから起動
./powershell.sh# モジュールの手動読み込み
> Get-Module -ListAvailable PowerCLI* | Import-Module
> Set-PowerCLIConfiguration -InvalidCertificateAction Ignore
-Confirm:$False# 接続確認> Connect-VIServer -Server ***** -User ***** -Password ****

とりあえず接続確認ができてため今回はここまで。