Help us understand the problem. What is going on with this article?

DockerでPowerCLIとGotty動かしてブラウザからCLIでvCenter操作する

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の画面が表示される。

image.png

vCenterを一人で使うことはあまりしないと思うので、このような方法で共用環境を作っておくと一人一人の手間が減って役立つと思う。

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away