何ができるわけでもない。ESXiホスト関連のオブジェクトを表示できるが、変更はできない。自分で必要な権限ロールを新しく作ることもできます。応用コマンドライン上で完結できると何がシアワセかと言いますと、何台ものホストサーバに対して同じ操作をする手間を軽減できるのです。esxi-test-server-01〜20までの20台のサーバに同じユーザを作り、公開鍵までまとめて配置したいときは以下のようにします。ssh-keygenで作っておいてくださいね。このまま使うと全環境で同じパスワードが割り当てられていますから、ユーザ作成後に適宜変えてください。パスワードの暗号化を施すのがモアベターです。Tweet2018年12月12日ESXiサーバ上で動作しているゲストサーバの詳細情報一覧を取得したいESXiShellインフラピクトリンク事業部開発部インフラ課の「メガネとマスクを同時着用すると耳が痛くなる系エンジニア」の橋本です。この上さらにヘッドホンとか装備しようものなら、耳が爆発します。前回の記事で、ESXiサーバにパスワードなしで簡単にSSH接続できる環境を整えました。今回はそれを活かしつつ、ESXi仮想環境をより便利にしていきます。やりかたいい感じに必要情報を取得するスクリプトを作成するSSH越しにスクリプトを実行するいい感じに必要情報を取得するスクリプトを作成するESXiホストサーバでは、「そのホスト上で動作しているゲストサーバの概要を取得するコマンド」が用意されています。イメージのバージョン情報くらいのもの。個人的見解ですが、少なくともホストサーバの稼働状態(起動中・サスペンド中・停止中)は知りたい。できれば、いつから稼働しているかとかの情報もわかると嬉しい。いう詳細情報まで取得したい場合、ESXiに用意されているget.summaryコマンドを使います。対象となるVMのIDこれを叩くと、ずらずらっとjsonモドキの形式で情報が取れます。出力結果は長いので省略しますが、割り当ててあるCPUのコア数であるとか、いろいろな情報が出ます。ここで問題となるのが「対象となるVMのID」を指定しなければならない、というところ。ホストの情報は1ホスト分ずつしか取得できず、しかもそのためにはVMのIDが必要なのです。(VMID自体は上記のgetallvmsで取得できる情報です)なので、これらをいい感じに組み合わせるスクリプトを用意しました。bashとは一部記法が違ったり、たとえば配列みたいな構造体が使えなかったりします。./get_vm_summaries.sh実行権限付与をお忘れなきよう。実行してみると、こんな感じの結果が帰ってきます。\|guestFullName\|powerState\|bootTime\|vmPathName\|ipAddress\)"といった具合に、取得したい項目を追加してやれば良い感じになります。SSH越しにスクリプトを実行するこんな感じに複数のESXiサーバから単一のストレージサーバ(仮にhoge_fuga_maxheartとします)をマウントし、そこにスクリプトを置いてやれば、どのサーバからも先ほどのスクリプトが叩けるようになります。/vmfs/volumes/hoge_fuga_maxheart/get_vm_summaries.shssh越しに複数サーバのスクリプトを叩くには、接続用の鍵ファイルを置いてある環境で下記のようにします。/vmfs/volumes/hoge_fuga_maxheart/get_vm_summaries.shdone前回の記事でパスワードなしにSSH接続する環境が整っていれば、一発で全てのホストサーバの状態を取得できます。情報を取ってくるだけなら、このコマンドを都度叩くだけで解決です。あとはイイカンジのGUIのガワを作って、URLにアクセスがあるたびに情報を取ってきてやれば、見た目にも優しい状態確認画面の完成です。Tweet2018年12月4日ESXiサーバにパスワードなしでSSH接続したいESXiShellインフラピクトリンク事業部開発部インフラ課の「部署名が変わったのに未だ慣れず、前世の記憶に苛まれている系エンジニア」の橋本です。今年がもう終わるとか信じたくないです。