vSphere 5.1のAPIにhttpでもアクセスできるようにする方法
vSphere APIは、「https://hostname/sdk」というhttpsでのアクセスが許可されています。
しかし、開発段階などhttpsである必要がない場合などもあります。
そこで、httpでもAPIアクセスができるよう設定してみます。
vSphere5.1よりも過去のバージョンでのやり方は公式のDeveloper's Setup Guideにも方法が書かれていますが、
ESXiサーバの/etc/vmware/hostd/proxy.xmlの中身を書き換えて、
service mgmt-vmware restart
と再起動すればよかったらしいです。
しかし、同様の手順でESXi 5.1でもできるのかと思ったら、ファイルが存在しませんでした。
5.1からファイルの構成が変更になっているようで、次のようにすることで対応が可能となりました。
参考URL:Proxy.xml which we use to modify to enable HTTP... |VMware Communities
次の2つのファイルがWebアクセスに関する設定になっています。
config.xmlの中身はこのような感じです。
5.0.0.0
/var/log/vmware/
/etc/vmware/
/var/log/vmware/
rhttpproxy
false
false
524288
8
verbose
true
Rhttpproxy
local4
/var/run/vmware/rhttpproxyLogHeader.txt
/etc/vmware/rhttpproxy/endpoints.conf
80
443
/etc/vmware/ssl/rui.key
/etc/vmware/ssl/rui.crt /lib/
2 44 2 18
8 600 256 rhttpproxy false false true /lib/ 120000
false
false
62914560
524288
1000
128
vSphere Web Serviceの稼働ポートを変更したい場合には、
endpoints.confの中身はこのような感じです。
/ local 8309 redirect allow /sdk local 8307 redirect allow /client/clients.xml local 8309 allow allow /ui local 8308 redirect allow /vpxa local 8089 reject allow /mob namedpipe /var/run/vmware/proxy-mob redirect allow /wsman local 8889 redirect allow /sdkTunnel namedpipetunnel /var/run/vmware/proxy-sdk-tunnel allow reject /ha-nfc local 12001 allow allow /nfc local 12000 allow allow
各行の左端列がURLを示しており、左から4番目の列が処理をどうするかについて記載されているようです。
/sdkの行を見ていくと、4番目の列がredirectになっており、httpアクセス時にhttpsにリダイレクトされる設定になっています。
ここをallowにすることでhttpでのアクセスもhttpsにリダイレクトされることなく実施可能になりました。
設定を変更後、rhttpproxyを再起動します。
# /etc/init.d/rhttpproxy restart
テスト環境や開発環境など、httpsにする必要がない場面などはhttpでアクセスできるようにしておくといいかもしれません。