vCenterをPowerShellで操作できるツールであるPowerCLIをDockerで動かす。
さらにGottyを使って複数の人が気軽にPowerCLIを使えるようにする。
TL;DR
- PowerShellがLinuxで動くようになったのでPowerCLIもLinuxで動かせるようになった
- Dockerで動かせるPowerCLIのイメージがvmwareから公開されている
- GottyでWebから使えるようにすることで誰でも気軽に使えるようにした
- PowerCLIの具体的な使い方は公式ドキュメントを参照
DockerでPowerCLI
PowerCLI公式イメージをdocker run
するだけで簡単にPowerCLIを使うことができる。オプションは適当に適宜付ける。
docker run -i --rm vmware/powerclicore:latest
起動したあとはConnect-VIServer
でvCenterに接続すればGet-VM
などでvCenterの情報を取得できる。
接続に使うアカウントの権限によって実行できるコマンドや範囲に制限がかかる。
PowerCLIコンテナでGotty
コンテナ内にGotty本体とコンフィグファイルを配置し、最後にGottyを起動することで外部からブラウザでPowerCLIコンテナに接続できるようにする。
コンフィグファイルは必須では無いが、使った方がいろいろとカスタマイズできて便利
Dockerfile
FROM vmware/powerclicore:latest
RUN yum install -y gzip wget tar \
&& wget https://github.com/yudai/gotty/releases/download/v1.0.1/gotty_linux_amd64.tar.gz \
&& tar xzf gotty_linux_amd64.tar.gz \
&& yum remove -y gzip wget tar \
&& rm -f gotty_linux_amd64.tar.gz
RUN mv gotty /usr/local/bin/
COPY gotty_config /root/.gotty
CMD gotty -w pwsh
コンフィグ記載例
詳細はこちらを参照
gotty_config
preferences {
font_size = 12
copy_on_select = true
clear_selection_after_copy = true
enable_clipboard_notice = true
ctrl_c_copy = true
ctrl_v_paste = true
enable_bold = true
}
docker-composeで起動する
ディレクトリ構成
.
├── Dockerfile
├── gotty_config
└── docker-compose.yaml
docker-compose.yaml
version: '3'
services:
powercli:
build: .
ports:
- "8080:8080"
あとはdocker-compose up -d
を実行するとビルドが終わった後にPowerCLIとGottyが起動するので、ブラウザでhttp://<サーバIP>:8080
にアクセスするとPowerCLIの画面が表示される。
vCenterを一人で使うことはあまりしないと思うので、このような方法で共用環境を作っておくと一人一人の手間が減って役立つと思う。