1月 282013
 

VMware ESXi に対するアクセスは Windows アプリで、 VMware vSphere Client は ESXi のバージョンに引っ張られてそのバージョンに対応したものをインストールしなければならない。と、いうのは以前に書いた通りです。

そもそも、普段から Windows OS を常用しとない人にとって VMware vSphere Client を利用するは非常に億劫です。どーせなら VMware ESXi に ssh ログインしてそこから色々やりたいですね。せっかくだからそーしてしまいましょう。

と、いうことで

1. VMware ESXi に ssh ログイン
VMware vSphere Client からサーバの設定で ssh を有効にします。「構成」タブの左側のメニューの「ソフトウェア」の中の [セキュリティプロファイル] を指定すると右側に表示されるのでプロパティから SSHを 指定し「実行中」にします。
すると root で VMware ESXi に ssh できるようになります。せっかくなのでユーザ登録時に一般ユーザアカウントも作成してしまいましょう。「ローカルユーザ及びグループ」でとりあえずアカウントを作成します。でもってすかさず ssh っ!!

ssh ログインできるようになりましたか?

せっかくなのでホームディレクトリを作成してしまえっ!! ってんで /etc/passwd にホームディレクトリを書き込んであげると次回以降、自分のホームディレクトリにログインできるようになります。ただ、ディレクトリ内の権限は root 権限で作成されるのでイマイチ意味が無いような気がしますが。けど、そこに色々なファイルが置けるのでそれはそれで良いかー;-)。

/etc/group の root グループに一般ユーザのユーザ名を登録してもユーザ権限で動作してくれないようですね。ま。いっか。でもせっかくなので公開鍵/秘密鍵のペアでログインできるようにしましょう。 sshd の設定ファイルは /etc/ssh/sshd_config なのでそのファイルを見ると以下の行が見えます。

AuthorizedKeysFile /etc/ssh/keys-%u/authorized_keys

 
なるほどね。公開鍵は /etc/ssh/keys-takachan/authorized_keys として置けば良いわけね。これでパスフレーズで ssh ログインできるようになります。

2. syslog の転送
VMware ESXi が出力する syslog って美しくないんだけど、まぁ syslog サーバに転送する分には特に問題ないので転送してしまいましょう。

まず、 syslog を受信するのは FreeBSD と想定した場合に /etc/rc.conf の設定は以下のようにして syslogd を再起動します。

syslogd_enable="YES"
#syslogd_flags="-a 192.168.1.0/24:*"
syslogd_flags="-a *:*"

 
コメントアウトしている行は 192.168.1.0/24 のホストからのみ syslog を受信する。って設定です。 *:* ってのは全てからの syslog を受信する。って設定です。こーすると IPv4/IPv6 の syslog が受信できるようになります。 IPv4 と IPv6 のネットワークを同時に指定する方法が解らなかったので・・。

Linux(CentOS) の syslog の受信は /etc/sysconfig/syslog の SYSLOGD_OPTIONS に -r を付けて再起動。ってのは皆さん知ってますよね? 😉

で、続いて VMware ESXi の syslog の転送方法ですが、 /etc/vmsyslog.conf をごっそりと手で直してましいましょう;-)。

[DEFAULT]
size = 1024
logdir_unique = false
loghost = udp://192.168.1.128
rotate = 8
logdir = 
[vmsyslog] loghost = udp://192.168.1.128 rotate = 8 size = 1024

 
[DEFAULT] と [vmsyslog] に loghost = udp://192.168.1.128 を追加します。で、再起動します。簡単ですねぇ。って・・。こんなことばっかり書いていると怒られそうなのでちゃんとコマンド打ってみましょうかf(^^;;。

VMware ESXi 5.1 では esxcli というコマンドを利用します。

# esxcli system syslog config get
Local Log Output: 
Local Logging Default Rotation Size: 1024
Local Logging Default Rotations: 8
Log To Unique Subdirectory: false
#
# esxcli system syslog config set --loghost="udp://192.168.1.128"
#
# esxcli system syslog reload
#

 
config get オプションで表示。 config set オプションに付属のパラメータで追加です。まぁ、設定ファイルを手で直してしまったほうが早いかf(^^;;。リブートしても良いですが、 syslog reload オプションで syslogd を再起動します。

で、VMware ESXi のファイアーウォールを確認し syslog が false であれば true にしてあげます。

# esxcli network firewall ruleset list | grep syslog
syslog                 false
#
# esxcli network firewall ruleset set --ruleset-id=syslog --enabled=true
# esxcli network firewall ruleset list | grep syslog
syslog                 true
#

 
あとは logger test とか打って、syslog サーバに転送されたか確認します。

3. 仮想マシンのコントロール
これは説明なしです。以下のコマンドで色々できます。一覧表です。

1). 仮想マシンの一覧表示

# vim-cmd vmsvc/getallvms

 
一覧を表示しますが、一番左に表示されている数値が VMID になります。以降のコマンド投入時には VMID を利用します。

2). 仮想マシンの起動

# vim-cmd vmsvc/power.on VMID

 
3). 仮想マシンの停止

# vim-cmd vmsvc/power.off VMID

 
「仮想マシンの停止」は多分、 shutdown 打ってくれないです。バチっと電源断だと思います。なので起動時には多分 fsck が走ると思います。けどもまぁ、しょーがないよねぇ・・。

4). 仮想マシンの再起動

# vim-cmd vmsvc/power.reboot VMID

 
こっちは ACPI シャットダウンが走るのかなぁ? だとすると FreeBSD の場合は ACPI S5 ステートが走るので shutdown はしてくれると思いますが、確認はしていません。

5).仮想マシンのサスペンド

# vim-cmd vmsvc/power.suspend VMID

 

4.CIM のことほんの少し
まぁ、こんな感じで。と、いうことで今回もこってり? と VMware ESXi を書いてみました。
snmpd は前回書いたし、あとは CIM かなぁ。 ports の net-mgmt/sblim-wbemcli をインストールして以下のコマンド叩けば良いです。

$ wbemcli ecn -nl -noverify 'https://root@192.168.1.250:5989/root/cimv2'

 
ドドドと一覧表示してくれるのであとは個別の値を取得すればより詳細情報が取得できます。

ここでパスワード入力が回避できるように ssh のパスフレーズ化を試みたのだけど、考えてみたら ssh ではなく https でのアクセスだったので全く意味無かった。と、いうか・・f(^^;;。

と、いうことでいい加減次回は ゲスト OS としての FreeBSD のことについて書いて行きましょう;-)。