VMware ESXi上のCentOS6にopen-vm-toolsをインストール

#open-vm-toolsとは
open-vm-toolsを聞いたことがない方もいらっしゃるかもしれませんが、簡単に言えば、**Linux用VMware Toolsのオープンソース版**です。
**VMwareはこのopen-vm-toolsを公式にサポート**しており、VMware Toolsは引き続き、利用可能なものの、open-vm-toolsを使用可能な場合は、**open-vm-toolsを使うことを推奨**しています。
>VMware Tools will continue to be available under a commercial license. It is **recommended** that open-vm-tools be used for the Linux distributions where open-vm-tools is available. 
<a href="https://github.com/vmware/open-vm-tools/" >vmware/open-vm-tools: Official repository of VMware open-vm-tools project</a>


Linuxの場合、VMwareToolsのインストールでは、mountやらperlやらが必要で、シンプルなインストールとは言いがたい部分があります。
それに対して、**open-vm-toolsはyumでインストール可能**です。

>All leading Linux vendors support open-vm-tools and bundle it with their products.

とあるように、これからLinuxのインストール時にopen-vm-toolsもインストールされるようになるようです。（最新のCentOS 7 デスクトップ版では標準でopen-vm-toolsが搭載されています。）
SoftLayerで構築する場合も、**VMware ESXi上のLinuxではなるべくopen-vm-toolsを使いましょう**。

#そもそも何をやってくれるものだったかを復習
これを見ると、実は色々とやってくれていたのだと関心します。

- ゲストOSの機能で電源操作
- 電源操作時にスクリプトを実行
- ゲストOS内でのコマンド実行自動化
- ゲストOS操作の認証
- 定期的なネットワーク、ディスク、メモリ使用量の収集
- vSphere HAの確認に使う、ゲストOSからホストへのハードビート生成
- ゲストとホストの間の時刻同期
- ファイルシステムの静止（スナップショット取得のため）
- ファイルシステムの静止操作時にスクリプトを実行
- ゲスト起動後に即座にOSカスタマイズ
- VMware Workstation and VMware Fusionにおけるゲストとホストの間の共有フォルダの有効化
- ゲストとホストの間のコピーアンドペースト

#試した環境の前提
- CentOS 6.8 64bitで試しています
- vSphere ESXi 6 上の仮想マシンです
- インターネットと通信を許可しています

#SoftLayer内部のレポジトリにはない...Orz
インターネットと通信を許可する前に、SoftLayer内部のレポジトリで試したところ、残念ながら、open-vm-toolsはありませんでした。（レポジトリ情報をSoftLayer内部向けに書き換えても利用できないようです。。）

```sh:Get-open-vm-tools
[root@test4vmware ~]$ sudo yum install open-vm-tools -y
読み込んだプラグイン:fastestmirror
インストール処理の設定をしています
base                                                                                                           | 3.7 kB     00:00     
base/primary_db                                                                                                | 4.7 MB     00:00     
extras                                                                                                         | 3.4 kB     00:00     
extras/primary_db                                                                                              |  37 kB     00:00     
updates                                                                                                        | 3.4 kB     00:00     
updates/primary_db                                                                                             | 2.6 MB     00:00     
パッケージ open-vm-tools は利用できません。 #レポジトリ情報をSoftLayer内部向けに書き換えても利用できないようです。
エラー: 何もしません
```

#epelレポジトリの追加
CentOSのインストール直後に設定されているレポジトリに加え、epelレポジトリを追加します。（インターネットと通信を許可した後）

```sh:Add-EpelRepo
[root@test4vmware ~]$ rpm -ivh http://ftp.riken.jp/Linux/fedora/epel/6/x86_64/epel-release-6-8.noarch.rpm
http://ftp.riken.jp/Linux/fedora/epel/6/x86_64/epel-release-6-8.noarch.rpm を取得中
警告: /var/tmp/rpm-tmp.nKKn7m: ヘッダ V3 RSA/SHA256 Signature, key ID 0608b895: NOKEY
準備中...                ########################################### [100%]
   1:epel-release           ########################################### [100%]
```

その他のCentOSについては、以下を参照ください。

```
[root@test4vmware ~]$ rpm -ivh http://ftp.riken.jp/Linux/fedora/epel/7/x86_64/e/epel-release-7-8.noarch.rpm
※CentOS7の場合

[root@test4vmware ~]$ rpm -ivh http://ftp.riken.jp/Linux/fedora/epel/6/i386/epel-release-6-8.noarch.rpm
※CentOS6(32bit)の場合

[root@test4vmware ~]$ rpm -ivh http://ftp.riken.jp/Linux/fedora/epel/6/x86_64/epel-release-6-8.noarch.rpm
※CentOS6(64bit)の場合

[root@test4vmware ~]$ rpm -ivh http://ftp.riken.jp/Linux/fedora/epel/5/i386/epel-release-5-4.noarch.rpm
※CentOS5(32bit)の場合

[root@test4vmware ~]$ rpm -ivh http://ftp.riken.jp/Linux/fedora/epel/5/x86_64/epel-release-5-4.noarch.rpm
※CentOS5(64bit)の場合
```

#open-vm-toolsのインストール
yumのコマンドを打つだけですね。

```sh:Get-open-vm-tools
[root@test4vmware ~]$ sudo yum install open-vm-tools -y
読み込んだプラグイン:fastestmirror
インストール処理の設定をしています
Loading mirror speeds from cached hostfile
epel/metalink                                                                                                  |  13 kB     00:00     
 * base: mirror.steadfast.net
 * epel: mirrors.kernel.org
 * extras: bay.uchicago.edu
 * updates: repo1.sea.innoscale.net
epel                                                                                                           | 4.3 kB     00:00     
epel/primary_db                                                                                                | 5.9 MB     00:01     
依存性の解決をしています
--> トランザクションの確認を実行しています。
---> Package open-vm-tools.x86_64 0:9.10.2-3.el6 will be インストール
--> 依存性の処理をしています: libmspack.so.0()(64bit) のパッケージ: open-vm-tools-9.10.2-3.el6.x86_64
--> 依存性の処理をしています: libicuuc.so.42()(64bit) のパッケージ: open-vm-tools-9.10.2-3.el6.x86_64
--> 依存性の処理をしています: libicui18n.so.42()(64bit) のパッケージ: open-vm-tools-9.10.2-3.el6.x86_64
--> 依存性の処理をしています: libicudata.so.42()(64bit) のパッケージ: open-vm-tools-9.10.2-3.el6.x86_64
--> 依存性の処理をしています: libdnet.so.1()(64bit) のパッケージ: open-vm-tools-9.10.2-3.el6.x86_64
--> トランザクションの確認を実行しています。
---> Package libdnet.x86_64 0:1.12-6.el6 will be インストール
---> Package libicu.x86_64 0:4.2.1-14.el6 will be インストール
---> Package libmspack.x86_64 0:0.5-0.1.alpha.el6 will be インストール
--> 依存性解決を終了しました。

依存性を解決しました

======================================================================================================================================
 パッケージ                        アーキテクチャ             バージョン                               リポジトリー              容量
======================================================================================================================================
インストールしています:
 open-vm-tools                     x86_64                     9.10.2-3.el6                             epel                     445 k
依存性関連でのインストールをします。:
 libdnet                           x86_64                     1.12-6.el6                               epel                      28 k
 libicu                            x86_64                     4.2.1-14.el6                             base                     4.9 M
 libmspack                         x86_64                     0.5-0.1.alpha.el6                        epel                      61 k

トランザクションの要約
======================================================================================================================================
インストール         4 パッケージ

総ダウンロード容量: 5.4 M
インストール済み容量: 20 M
パッケージをダウンロードしています:
(1/4): libdnet-1.12-6.el6.x86_64.rpm                                                                           |  28 kB     00:00     
(2/4): libicu-4.2.1-14.el6.x86_64.rpm                                                                          | 4.9 MB     00:01     
(3/4): libmspack-0.5-0.1.alpha.el6.x86_64.rpm                                                                  |  61 kB     00:00     
(4/4): open-vm-tools-9.10.2-3.el6.x86_64.rpm                                                                   | 445 kB     00:00     
--------------------------------------------------------------------------------------------------------------------------------------
合計                                                                                                  1.9 MB/s | 5.4 MB     00:02     
警告: rpmts_HdrFromFdno: ヘッダ V3 RSA/SHA256 Signature, key ID 0608b895: NOKEY
Retrieving key from file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-6
Importing GPG key 0x0608B895:
 Userid : EPEL (6) <epel@fedoraproject.org>
 Package: epel-release-6-8.noarch (installed)
 From   : /etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-6
rpm_check_debug を実行しています
トランザクションのテストを実行しています
トランザクションのテストを成功しました
トランザクションを実行しています
警告: RPMDB は yum 以外で変更されました。
  インストールしています  : libicu-4.2.1-14.el6.x86_64                                                                            1/4 
  インストールしています  : libmspack-0.5-0.1.alpha.el6.x86_64                                                                    2/4 
  インストールしています  : libdnet-1.12-6.el6.x86_64                                                                             3/4 
  インストールしています  : open-vm-tools-9.10.2-3.el6.x86_64                                                                     4/4 
  Verifying               : open-vm-tools-9.10.2-3.el6.x86_64                                                                     1/4 
  Verifying               : libdnet-1.12-6.el6.x86_64                                                                             2/4 
  Verifying               : libmspack-0.5-0.1.alpha.el6.x86_64                                                                    3/4 
  Verifying               : libicu-4.2.1-14.el6.x86_64                                                                            4/4 

インストール:
  open-vm-tools.x86_64 0:9.10.2-3.el6                                                                                                 

依存性関連をインストールしました:
  libdnet.x86_64 0:1.12-6.el6              libicu.x86_64 0:4.2.1-14.el6              libmspack.x86_64 0:0.5-0.1.alpha.el6             

完了しました!
```

#vmtoolsの稼働確認
インストールは完了しましたが、認識はされていないようです。
![open-vm-tools-install_01.png](https://qiita-image-store.s3.amazonaws.com/0/101361/bdd28280-84a5-be8d-37a1-a882ced7df8a.png)

ステータスを確認します。

```sh:
[root@test4vmware ~]$ service vmtoolsd status
vmtoolsd は停止しています
```

vmtoolsdを起動させます。

```sh:
[root@test4vmware ~]$ service vmtoolsd start
vmtoolsd を起動中:                                         [  OK  ]
```

すると認識されました！
![open-vm-tools-install_02.png](https://qiita-image-store.s3.amazonaws.com/0/101361/52c97e01-9975-0115-3a61-5fe6dda15dbc.png)

#参考
- <a href="https://www.riscascape.net/archives/4415" >ESXiのCentOS6仮想マシンにopen-vm-toolsを導入する | riscascape.net</a>
- <a href="https://www.climb.co.jp/blog_vmware/vmware-6346" >Linux仮想マシンでVMware Toolsではなくopen-vm-toolsを使う | 仮想（VMware & Hyper-V）/クラウド・エンジニア技術ブログ</a>