2017年12月7日木曜日

Oracle VM から贈るメッセージ。

JPOUG Advent Calendar 2017 の 7日目の投稿です。
6日目は Satoshi Nagayasu さんの Oracle対応アプリケーションのDockernize事始め でした。

Oracle VM Server では、Oracle VM Guest Additions という機能で
Oracle VM Server / Oracle VM Manager と
VM にインストールされたゲスト Linux OS との間でメッセージをやり取りできます。
今回は、そのメッセージ送信の様子を紹介してみようと思います。
ここでいうメッセージとは key / value のペアで、送信したメッセージは
Oracle VM Guest Additions に含まれる ovmd で内容を確認することができます。

Oracle VMリリース 3.4 の管理者ガイド
7.1 Oracle VM Guest Additionsの機能
https://docs.oracle.com/cd/E90714_01/e88293/vmadm-guestadd-features.html

0. 今回の環境。

自宅ラボの Oracle VM Server(OVMS)と Oracle VM Manager(OVMM)を利用して、
実際にメッセージを送信してみます。
  • Oracle VM Manager 3.4.4 / Oracle VM Server 3.4.4
  • メッセージ送信先のゲスト OS は、Oracle Linux 7.4

1. 準備。

メッセージを送信するゲスト OS に、ovmd などをインストールしておきます。
Oracle VM Manager から VNIC の IP アドレスを認識する。(ovmd)

2. メッセージを送信。

OVMM で VM を選択して、「Send VM Message...」をクリック。



Create Message ボタンをクリックして、メッセージを作成します。



メッセージが作成されました。



送信する VM を選択して「OK」で送信します。



送信が成功しました。



さきほどメッセージを送信したゲスト OS には、ovmd をインストールしてあります。
[root@vm05-1 ~]# cat /etc/oracle-release
Oracle Linux Server release 7.4
[root@vm05-1 ~]# rpm -q ovmd
ovmd-3.7-3.el7.x86_64
[root@vm05-1 ~]# ovmd -v
3.7

メッセージ送信した Key : Value のペアが見られます。
[root@vm05-1 ~]# ovmd -l
{"test":"meri kuri."}
[root@vm05-1 ~]# ovmd -g test
meri kuri.

ついでにもう一度、同じ Key でメッセージ送信してみます。
OVMM では、メッセージ送信すると Key / Value(Message) は消えるので、
おなじメッセージを送信する場合でも再入力します。



Send VM Message をクリックするまえに Shift キーで複数の VM を選択しておくと、
複数 VM に対してメッセージ送信することもできます。



同じ Key を送信すると、上書きされます。
「test」Key が、後から送信した Message に変わりました。
[root@vm05-1 ~]# ovmd -g test
kodoku wo kodou.

3. メッセージの削除。

ゲスト OS でメッセージを削除するときも、ovmd を実行します。

Key を指定した削除。(ovmd -r で Key を指定)
[root@vm05-2 ~]# ovmd -g test
kodoku wo kodou.
[root@vm05-2 ~]# ovmd -r test
[root@vm05-2 ~]# ovmd -g test
[root@vm05-2 ~]#

まとめて削除。(ovmd -x)
[root@vm05-3 ~]# ovmd -l
{"test":"kodoku wo kodou."}
[root@vm05-3 ~]# ovmd -x
[root@vm05-3 ~]# ovmd -l
[root@vm05-3 ~]#

4. クリスマスなので。

本来であればテンプレート展開時の設定変更や、ハイパーバイザとゲスト OS との
性能情報をやりとりしたりするための機能ですが、
季節のメッセージを贈ることもできます。

ゲスト OS での仕込み。
[root@vm05-1 ~]# echo 'ovmd -g jp.gowatana.ovm.login-msg' >> /root/.bash_profile
[root@vm05-1 ~]# tail -n 1 /root/.bash_profile
ovmd -g jp.gowatana.ovm.login-msg

メッセージを送信します。



サーバ管理者がログインすると・・・
[root@vm05-1 ~]# su -
最終ログイン: 2017/12/07 (木) 04:17:40 JST 192.168.1.197から開始日時 pts/4
======================================

          mousugu X-mas.

======================================
[root@vm05-1 ~]#

こんな Value が入ったりします。
[root@vm05-1 ~]# ovmd -l
{"jp.gowatana.ovm.login-msg":"======================================\n\n          mousugu X-mas.\n\n======================================"}
[root@vm05-1 ~]# ovmd -g jp.gowatana.ovm.login-msg
======================================

          mousugu X-mas.

======================================
[root@vm05-1 ~]#

ただ、実際こんな使い方をする場合は、ovmd -g / -l に管理者権限がいるようなので
定期的にメッセージ取得したりする仕込みがいるかなと思います。
また、メッセージ内容を含めいろいろ危険なので本当にやらないようにご注意ください。
ちなみに日本語メッセージを送信しようとしたら、さすがにエラーになりました。

以上、Oracle VM Server の VM へのメッセージ送信でした。

備忘: Doc ID 2171741.1 ?

0 件のコメント:

コメントを投稿