Quantcast
Channel: にほんごVMware
Viewing all 495 articles
Browse latest View live

Python で vSphere を操作できるようにする。(pyvmomi)

$
0
0

Oracle Linux 7 から、Python で vSphere を操作できるようにしてみようと思います。

※いわゆる Red Hat 系ディストリビューションなので RHEL 7.x や CentOS 7.x なども同様です。

 

pyvmomi という Python のライブラリを使用します。

これは、VMware の GitHub サイトにあります。


vmware/pyvmomi

https://github.com/vmware/pyvmomi

 

PyPI にも登録されているので、今回は pip コマンドでインストールします。

 

PyPI - the Python Package Index

pyvmomi

https://pypi.python.org/pypi/pyvmomi/6.0.0.2016.4

 

今回の環境。

 

Oracle Linux 7.2 にインストールします。

[root@vm01 ~]# cat /etc/oracle-release

Oracle Linux Server release 7.2

 

Python のバージョンはこれです。

[root@vm01 ~]# python -V

Python 2.7.5

 

接続先は、vCenter Server Applicance 6.0 u1 です。

 

pyvmomi のインストール。

 

Oracle Linux 7.x は、デフォルトではパッケージがほとんどインストールされていないので、

今回は開発ツール(Development Tools)をグループインストールしてしまいます。

[root@vm01 ~]# yum groupinstall -y "Development Tools"

 

easy_install が含まれる python-setuptools をインストールします。

[root@vm01 ~]# yum install -y python-setuptools

 

pip をインストールします。

[root@vm01 ~]# easy_install pip

 

pip で、pyvmomi をインストールします。

[root@vm01 ~]# pip install pyvmomi

 

pyvmomi がインストールされました。

[root@vm01 ~]# pip freeze

backports.ssl-match-hostname==3.4.0.2

configobj==4.7.2

decorator==3.4.0

ethtool==0.8

iniparse==0.4

M2Crypto==0.21.1

pciutils==1.7.3

perf==0.1

pycurl==7.19.0

pygobject==3.14.0

pygpgme==0.3

pyliblzma==0.5.3

pyOpenSSL==0.13.1

python-dmidecode==3.10.13

pyudev==0.15

pyvmomi==6.0.0.2016.4

pyxattr==0.5.1

requests==2.10.0

rhnlib==2.5.65

six==1.10.0

slip==0.4.0

slip.dbus==0.4.0

urlgrabber==3.10

yum-metadata-parser==1.1.4

 

サンプルスクリプトのインストール。

 

サンプルスクリプトも VMware の GitHub サイトにあるので、git clone します。

[root@vm01 ~]# git clone https://github.com/vmware/pyvmomi-community-samples

 

下記のようなサンプルファイルが配置されます。

[root@vm01 ~]# cd pyvmomi-community-samples/samples/

[root@vm01 samples]# ls -1

README.md

__init__.py

add_disk_to_vm.py

add_vm_extra_config_tags.py

change_disk_mode.py

change_vm_cd_backend.py

change_vm_nic_state.py

change_vm_vif.py

clone_vm.py

create_folder_in_datacenter.py

create_random_marvel_vms.py

create_snapshot.py

delete_disk_from_vm.py

deploy_ovf.py

destroy_vm.py

esxi_perf_sample.py

execute_program_in_vm.py

export_vm.py

find_by_uuid.py

generate_html5_console.py

getallvms.py

getorphanedvms.py

getvnicinfo.py

hello_world_vcenter.py

hello_world_vcenter_with_yaml_recorder.py

list_datastore_cluster.py

list_datastore_info.py

list_dc_datastore_info.py

list_host_alarms.py

list_vmwaretools_status.py

make_dc_and_cluster.py

pyvmomi-to-suds.py

reboot_vm.py

reconfigure_host_for_ha.py

renamer.py

sessions_list.py

set_note.py

set_vcenter_motd.py

soft_reboot.py

suds-to-pyvmomi.py

tests

tools

upload_file_to_datastore.py

upload_file_to_vm.py

vSphereAutoRestartManager.py

vcenter_details.py

virtual_machine_device_info.py

virtual_machine_power_cycle_and_question.py

vminfo_quick.py

waitforupdates.py

 

動作確認。

 

ためしにサンプルスクリプト「hello_world_vcenter.py」で、vCenter(192.168.5.75)に接続してみます。

 

このスクリプトの使用方法です。

[root@vm01 samples]# python hello_world_vcenter.py --help

usage: hello_world_vcenter.py [-h] -s HOST [-o PORT] -u USER [-p PASSWORD]

 

 

Standard Arguments for talking to vCenter

 

 

optional arguments:

  -h, --help            show this help message and exit

  -s HOST, --host HOST  vSphere service to connect to

  -o PORT, --port PORT  Port to connect on

  -u USER, --user USER  User name to use when connecting to host

  -p PASSWORD, --password PASSWORD

                        Password to use when connecting to host

 

接続できました。

[root@vm01 samples]# python hello_world_vcenter.py -s 192.168.5.75 -u administrator@vsphere.local -p 'パスワード'

 

Hello World!

 

If you got here, you authenticted into vCenter.

The server is 192.168.5.75!

current session id: 52fa04cc-85ad-e576-3925-6d7f11776e22

Well done!

 

 

Download, learn and contribute back:

https://github.com/vmware/pyvmomi-community-samples

 

 

 

[root@vm01 samples]#

 

ためしに、対話モードの Python で ESXi (HostSystem)の情報を取得してみました。

[root@vm01 samples]# python

Python 2.7.5 (default, Nov 21 2015, 00:39:04)

[GCC 4.8.5 20150623 (Red Hat 4.8.5-4)] on linux2

Type "help", "copyright", "credits" or "license" for more information.

>>> from pyVim import connect

>>> from pyVmomi import vim

>>> si = connect.SmartConnect(host='192.168.5.75',user='administrator@vsphere.local',pwd='パスワード')

>>> content = si.RetrieveContent()

>>> host_view = content.viewManager.CreateContainerView(content.rootFolder,[vim.HostSystem],True)

>>> for h in host_view.view:

...   print 'HostName:', h.name

...   print 'Hardware:', h.hardware.systemInfo.vendor, h.hardware.systemInfo.model

...   print 'Version: ', h.summary.config.product.version, h.summary.config.product.build

...   print '---'

...

HostName: hv-h01.godc.lab

Hardware: HP ProLiant Micro Server

Version : 6.0.0 3029758

---

HostName: hv-d02.godc.lab

Hardware: Dell Inc. OptiPlex 9010

Version : 6.0.0 3073146

---

HostName: hv-d01.godc.lab

Hardware: Dell Inc. OptiPlex 780

Version : 6.0.0 3073146

---

HostName: hv-i01.godc.lab

Hardware: To Be Filled By O.E.M.

Version : 6.0.0 3247720

---

>>> quit()

[root@vm01 samples]#

 

このように Python から vSphere にアクセスすることができます。

 

ちなみに、VMOMI は VMware Managed Object Management Interface の略のようなので、

pyvmomi は Python の VMOMI ということなのでしょう。

 

VMware API Related Acronyms

http://www.virtuallyghetto.com/2010/08/vmware-api-related-acronyms.html

 

以上、pyvmomi で vCenter に接続してみる話でした。


NSX Edge LB の API 操作を体験してみる。Part 1(はじめに)

$
0
0

NSX Edge ロードバランサ(LB)を NSX API で設定変更してみます。

設定については、HOL-SDC-1603 VMware NSX Introduction の Module 4 のシナリオを参考にしました。

 

VMware Hands-on Labs(HoL)

http://labs.hol.vmware.com/HOL/catalogs/

 

NSX API については、API Guide が参考になります。

 

NSX vSphere API Guide NSX 6.2 for vSphere

http://pubs.vmware.com/NSX-62/topic/com.vmware.ICbase/PDF/nsx_62_api.pdf

 

HoL では、下記のように NSX API をためすことができます。

NSX-v の API を HoL で実行してみる。

 

今回も、ラボの vCenter Server Appliance(vcsa-01a)から curl コマンドで、

NSX Manager(192.168.110.15)にアクセスしています。

NSX での 論理 LB の機能は、NSX Edge(Edge Service Gataway)が受け持ちます。

NSX API で NSX Manager に設定変更をリクエストすることで、NSX Edge の設定が変更されます。

 

今回の流れ。

 

長くなってしまうので、今回も含めて 5回に分けて投稿します。

  1. はじめに ※この投稿。
  2. NSX Edge LB の API 操作を体験してみる。Part 2(NSX Edge のデプロイ)
  3. NSX Edge LB の API 操作を体験してみる。Part 3(One-Arm LB の設定)
  4. NSX Edge LB の API 操作を体験してみる。Part 4(LB メンバのステータス確認)
  5. NSX Edge LB の API 操作を体験してみる。Part 5(SSL オフロード)

 

手順は、だいたい下記のような感じになります。

 

まず、One Arm トポロジの NSX Edge LB を構成します。

ここでは、新規で NSX Edge(OneArm-LoadBalancer)を追加してから設定します。

 

NSX Edge をデプロイします。 ★Part 2

  1. API で指定するオブジェクト ID の確認
  2. NSX Edge のデプロイ

 

そして、One Arm の LB を構成します。 ★Part 3

  1. LB の有効化
  2. アプリケーション プロファイルの作成
  3. LB モニタの設定変更
  4. バックエンド プールの作成とメンバの追加
  5. 仮想サーバの作成

 

その後、LB メンバのステータス確認も API で実施してみます。★Part 4

 

最後に、SSL オフロードを構成します。 ★Part 5

In Line トポロジで配置されている既存の NSX Edge LB を、SSL 終端となるように設定変更します。

この構成では、Web サーバでされていた HTTPS の SSL(TLS)終端の処理が NSX Edge にオフロードされます。

ここまでとは異なり、既存の NSX Edge(Perimeter-Gateway)の設定変更です。

  1. SSL証明書の生成
    1. CSR 作成
    2. 自己署名による証明書の作成
  2. アプリケーションプロファイルの作成
  3. バックエンド プールの作成とメンバの追加
  4. 仮想サーバの設定変更

 

次回は、One Arm LB として設定する NSX Edge のデプロイです。

つづく。

NSX Edge LB の API 操作を体験してみる。Part 2(NSX Edge のデプロイ)

NSX Edge LB の API 操作を体験してみる。Part 2(NSX Edge のデプロイ)

$
0
0

NSX Edge ロードバランサ(LB)を NSX API で設定変更してみます。


前回の投稿は、こちらをどうぞ。

NSX Edge LB の API 操作を体験してみる。Part 1(はじめに)


手順について。


今回は、NSX API で One-Arm LB として使用する NSX Edge をデプロイします。

  1. API で指定するオブジェクト ID の確認
  2. NSX Edge のデプロイ

 

初期状態では、NSX Edge が2台だけデプロイされていて、

今回は 3台目の NSX Edge をデプロイします。

nsxapi-lb-p1-00.png

 

1. API で指定するオブジェクト ID の確認

 

NSX Edge を API でデプロイするときに、Web Client では 名前で指定していた vCenter インベントリのオブジェクトを、

ID で指定する必要があります。

色々な確認方法がありますが、今回は PowerCLI で簡易的に確認します。

 

まず、PowerCLI を起動して、vCenter に接続します。

PowerCLI> Connect-VIServer -Server vcsa-01a -User CORP\Administrator -Password VMware1!

 

それぞれ、ID を確認しておきます。

 

データセンター: Datacenter Site A

PowerCLI> Get-Datacenter "Datacenter Site A" | ft -AutoSize Name,Id

nsxapi-lb-p1-01.png

 

リソースプール(クラスタ): Management & Edge Cluster

PowerCLI> Get-Cluster "Management & Edge Cluster" | ft -AutoSize Name,Id

nsxapi-lb-p1-02.png

 

ホスト: esx-04a.corp.local

PowerCLI> Get-VMHost "esx-04a.corp.local"  | ft -AutoSize Name,Id

nsxapi-lb-p1-03.png

 

データストア: ds-site-a-nfs01

PowerCLI> Get-Datastore "ds-site-a-nfs01"  | ft -AutoSize Name,Id

nsxapi-lb-p1-04.png

 

フォルダ: Edges

PowerCLI> Get-Folder "Edges" | ft -AutoSize Name,Id

nsxapi-lb-p1-05.png

 

論理スイッチの ID は、NSX API で確認します。

 

論理スイッチ: Web_Tier_01

curl -k -s -u admin:VMware1! -X GET https://192.168.110.15/api/2.0/vdn/virtualwires | xmllint --xpath '//virtualWire[name="Web_Tier_01"]/objectId' - | more

nsxapi-lb-p1-06.png

 

2. NSX Edge のデプロイ

 

「OneArm-LoadBalancer」 という名前で、Edge Service Gataway をデプロイします。

 

NSX Edge の設定

  • 名前: OneArm-LoadBalancer
  • HA: 設定なし
  • データセンター: Datacenter Site A → datacenter-21
  • Edge の制御レベルログ(ログレベル): 緊急

 

Appliance 配置パラメータ

  • Appliance のサイズ: コンパクト
  • リソースプール: Management & Edge Cluster → datacenter-21
  • ホスト: esx-04a.corp.local → host-46
  • データストア: ds-site-a-nfs01 → datastore-29
  • フォルダ: Edges → group-v261

 

CLI の設定

  • ユーザ名: admin
  • パスワード: VMware1!VMware1!
  • SSH アクセス(remoteAccess): 無効

 

インターフェースの設定

  • vNIC 番号: 0
  • 名前: WebNetwork
  • タイプ: 内部
  • 接続先: 論理スイッチ「Web_Tier_01」 → virtualwire-2
  • IP アドレス: 172.16.10.10
  • サブネットの接頭辞の長さ: 24
  • 接続ステータス: 接続中

 

ルーティングの設定

  • デフォルトゲートウェイ IP の構成: 172.16.10.1

 

これらの設定を指定した XML ファイル(edge-onearm-lb-deploy.txt)を作成します。

cat <<EOF > edge-onearm-lb-deploy.txt

<edge>

  <datacenterMoid>datacenter-21</datacenterMoid>

  <name>OneArm-LoadBalancer</name>

  <vseLogLevel>emergency</vseLogLevel>

  <appliances>

    <applianceSize>compact</applianceSize>

    <appliance>

      <resourcePoolId>domain-c41</resourcePoolId>

      <datastoreId>datastore-29</datastoreId>

      <hostId>host-46</hostId>

      <vmFolderId>group-v261</vmFolderId>

    </appliance>

  </appliances>

  <vnics>

    <vnic>

      <index>0</index>

      <name>WebNetwork</name>

      <type>internal</type>

      <portgroupId>virtualwire-2</portgroupId>

      <addressGroups>

        <addressGroup>

          <primaryAddress>172.16.10.10</primaryAddress>

          <subnetMask>255.255.255.0</subnetMask>

        </addressGroup>

      </addressGroups>

      <mtu>1500</mtu>

      <enableProxyArp>false</enableProxyArp>

      <enableSendRedirects>false</enableSendRedirects>

      <isConnected>true</isConnected>

    </vnic>

  </vnics>

  <cliSettings>

    <userName>admin</userName>

    <password>VMware1!VMware1!</password>

    <remoteAccess>false</remoteAccess>

  </cliSettings>

  <features>

    <routing>

      <staticRouting>

        <defaultRoute>

            <vnic>0</vnic>

            <mtu>1500</mtu>

            <gatewayAddress>172.16.10.1</gatewayAddress>

            <adminDistance>0</adminDistance>

        </defaultRoute>

      </staticRouting>

    </routing>

  </features>

</edge>

EOF

 

XML ファイルを読み込んで、API で NSX Edge をデプロイします。

cat edge-onearm-lb-deploy.txt | curl -k -s -u admin:VMware1! -X POST -H 'Content-type: text/xml' -d @- https://192.168.110.15/api/4.0/edges

 

NSX Edge 「OneArm-LoadBalancer」が、今回は edge-5 としてデプロイされました。

nsxapi-lb-p1-07.png

 

デプロイ直後は NSX Edge ファイアウォールの設定が Deny になっています。

nsxapi-lb-p1-08.png

 

ラボのシナリオとは異なるので、デフォルトのファイアウォールルールの設定を変更します。

  • デフォルト トラフィックポリシー: 承諾(Accept)
  • ログ:無効化

 

XML ファイル(edgefw-default.txt)を作成します。

cat <<EOF > edgefw-default.txt

<firewallDefaultPolicy>

  <action>accept</action>

  <loggingEnabled>false</loggingEnabled>

</firewallDefaultPolicy>

EOF

 

XML ファイルを読み込んで、API で設定変更します。

cat edgefw-default.txt | curl -k -s -u admin:VMware1! -X PUT -H 'Content-type: text/xml' -d @- https://192.168.110.15/api/4.0/edges/edge-5/firewall/config/defaultpolicy

 

設定変更されました。

nsxapi-lb-p1-09.png

 

つづく。

NSX Edge LB の API 操作を体験してみる。Part 3(One-Arm LB の設定)

NSX Edge LB の API 操作を体験してみる。Part 3(One-Arm LB の設定)

$
0
0

NSX Edge ロードバランサ(LB)を NSX API で設定変更してみます。


概要については、こちらをどうぞ。

NSX Edge LB の API 操作を体験してみる。Part 1(はじめに)


前回の投稿はこちらです。

NSX Edge LB の API 操作を体験してみる。Part 2(NSX Edge のデプロイ)


手順について。


今回は、前回デプロイした NSX Edge LB の設定をします。

  1. LB の有効化
  2. アプリケーション プロファイルの作成
  3. LB モニタの設定変更
  4. バックエンド プールの作成とメンバの追加
  5. 仮想サーバの作成

 

1. LB の有効化


前回デプロイした NSX Edge(ID は edge-5)で LB を有効化します。

 

この時点では、まだ LB が無効な状態です。

nsxapi-lb-p3-01.png

 

XML ファイル(edge-onearm-lb-enable.txt)を作成します。

LB 有効化のため、loadBalancer 直下の enable 要素を true にします。

Edge Service Gateway としてデプロイされた NSX Edge にデフォルトで作成されている

LB モニタ(monitor-1 ~ monitor-3)は、XML ではデフォルトの値を指定しておきます。

cat <<EOF > edge-onearm-lb-enable.txt

<loadBalancer>

  <enabled>true</enabled>

  <monitor>

    <monitorId>monitor-1</monitorId>

    <type>tcp</type>

    <interval>5</interval>

    <timeout>15</timeout>

    <maxRetries>3</maxRetries>

    <name>default_tcp_monitor</name>

  </monitor>

  <monitor>

    <monitorId>monitor-2</monitorId>

    <type>http</type>

    <interval>5</interval>

    <timeout>15</timeout>

    <maxRetries>3</maxRetries>

    <method>GET</method>

    <url>/</url>

    <name>default_http_monitor</name>

  </monitor>

  <monitor>

    <monitorId>monitor-3</monitorId>

    <type>https</type>

    <interval>5</interval>

    <timeout>15</timeout>

    <maxRetries>3</maxRetries>

    <method>GET</method>

    <url>/</url>

    <name>default_https_monitor</name>

  </monitor>

</loadBalancer>

EOF

 

XML ファイルを読み込んで、NSX Edge 「edge-5」の LB 設定を有効にします。

cat edge-onearm-lb-enable.txt | curl -k -s -u admin:VMware1! -X PUT -H 'Content-type: text/xml' -d @- https://192.168.110.15/api/4.0/edges/edge-5/loadbalancer/config

 

Web Client での確認でも、LB が有効な状態になりました。

nsxapi-lb-p3-02.png


2. アプリケーション プロファイルの作成

 

アプリケーション プロファイルを作成します。

  • 名前: OneArmWeb-01
  • タイプ: HTTPS
  • SSL パススルーの有効化

 

XML ファイル(app-prof.txt)を作成します。

cat <<EOF > app-prof.txt

  <applicationProfile>

  <name>OneArmWeb-01</name>

  <insertXForwardedFor>false</insertXForwardedFor>

  <sslPassthrough>true</sslPassthrough>

  <template>HTTPS</template>

  <serverSslEnabled>false</serverSslEnabled>

</applicationProfile>

EOF

 

XML ファイルを読み込んで、API でアプリケーション プロファイルを作成します。

cat app-prof.txt | curl -k -s -u admin:VMware1! -X POST -H 'Content-type: text/xml' -d @- https://192.168.110.15/api/4.0/edges/edge-5/loadbalancer/config/applicationprofiles

 

アプリケーション プロファイルが applicationProfile-1 として作成されました。

nsxapi-lb-p3-03.png

 

API でも、アプリケーション プロファイルを確認できます。

curl -k -s -u admin:VMware1! -X GET https://192.168.110.15/api/4.0/edges/edge-5/loadbalancer/config/applicationprofiles | xmllint --format -

 

3. LB モニタの設定変更

 

ラボの環境にあわせて、サービス監視をする LB モニタの設定を変更します。


HTTPS モニタは default_https_monitor で、ID は monitor-3 です。

この時点では、モニタ対象の URL が「/」になっているので、ラボの環境に合わせて/cgi-bin/hol.cgi」に変更します。

nsxapi-lb-p3-04.png

 

XML ファイル(mon-https.txt)を作成します。

cat <<EOF > mon-https.txt

<monitor>

  <monitorId>monitor-3</monitorId>

  <type>https</type>

  <interval>5</interval>

  <timeout>15</timeout>

  <maxRetries>3</maxRetries>

  <method>GET</method>

  <url>/cgi-bin/hol.cgi</url>

  <name>default_https_monitor</name>

</monitor>

EOF

 

モニタを設定変更します。

cat mon-https.txt | curl -k -s -u admin:VMware1! -X PUT -H 'Content-type: text/xml' -d @- https://192.168.110.15/api/4.0/edges/edge-5/loadbalancer/config/monitors/monitor-3

 

設定変更されました。

nsxapi-lb-p3-05.png

 

API でも確認できます。

curl -k -s -u admin:VMware1! -X GET https://192.168.110.15/api/4.0/edges/edge-5/loadbalancer/config/monitors/monitor-3 | xmllint --format -

 

 

4. バックエンド プールの作成とメンバの追加

 

LB による振り分け先となるサーバ(メンバ)をまとめるプールを作成します。

ここでは、プールのメンバ(Web サーバ 2台)も同時に指定します。

 

プール

  • 名前: Web-Tier-Pool-01
  • モニタ: default_https_monitor → monitor-3

 

メンバ1

  • 名前: web-01a
  • IP 172.16.10.11
  • ポート: 443
  • モニタ ポート: 443

 

メンバ2

  • 名前: web-02a
  • IP 172.16.10.12
  • ポート: 443
  • モニタ ポート: 443

 

上記の内容で XML ファイル(pool-web-tier.txt)を作成します。

cat <<EOF > pool-web-tier.txt

<pool>

  <name>Web-Tier-Pool-01</name>

  <description></description>

  <transparent>false</transparent>

  <algorithm>round-robin</algorithm>

  <monitorId>monitor-3</monitorId>

  <member>

    <ipAddress>172.16.10.11</ipAddress>

    <weight>1</weight>

    <port>443</port>

    <name>web-01a</name>

    <monitorPort>443</monitorPort>

  </member>

  <member>

    <ipAddress>172.16.10.12</ipAddress>

    <weight>1</weight>

    <port>443</port>

    <name>web-02a</name>

    <monitorPort>443</monitorPort>

  </member>

</pool>

EOF

 

プールを作成します。

cat pool-web-tier.txt | curl -k -s -u admin:VMware1! -X POST -H 'Content-type: text/xml' -d @- https://192.168.110.15/api/4.0/edges/edge-5/loadbalancer/config/pools

 

プールが作成されました。今回作成されたプールの ID は、pool-1 です。

nsxapi-lb-p3-06.png

 

作成したプールは、API でも確認できます。

curl -k -s -u admin:VMware1! -X GET https://192.168.110.15/api/4.0/edges/edge-5/loadbalancer/config/pools | xmllint --format -

 

5. 仮想サーバの作成

 

LB の仮想サーバを作成します。

ここでの「仮想サーバ」は VM のことではなく、VIP やプロトコル、ポート番号などを指定した LB の設定のことです。

  • 名前: Web-Tier-VIP-01
  • アプリケーション プロファイル: OneArmWeb-01 → applicationProfile-1
  • IP アドレス: 172.16.10.10
  • プロトコル: HTTPS
  • ポート: 443
  • デフォルト プール: Web-Tier-Pool-01 → pool-1


XML ファイル(vs-web-tier.txt)を作成します。

cat <<EOF > vs-web-tier.txt

<virtualServer>

  <name>Web-Tier-VIP-01</name>

  <enabled>true</enabled>

  <ipAddress>172.16.10.10</ipAddress>

  <protocol>https</protocol>

  <port>443</port>

  <connectionLimit>0</connectionLimit>

  <connectionRateLimit>0</connectionRateLimit>

  <applicationProfileId>applicationProfile-1</applicationProfileId>

  <defaultPoolId>pool-1</defaultPoolId>

  <enableServiceInsertion>false</enableServiceInsertion>

  <accelerationEnabled>false</accelerationEnabled>

</virtualServer>

EOF


仮想サーバを作成します。

cat vs-web-tier.txt | curl -k -s -u admin:VMware1! -X POST -H 'Content-type: text/xml' -d @- https://192.168.110.15/api/4.0/edges/edge-5/loadbalancer/config/virtualservers


仮想サーバが作成されました。

nsxapi-lb-p3-07.png


下記の API でも、仮想サーバの確認ができます。

curl -k -s -u admin:VMware1! -X GET https://192.168.110.15/api/4.0/edges/edge-5/loadbalancer/config/virtualservers | xmllint --format -

 

これで、「One-Arm Load Bala...」のテストページが表示できるようになります。

nsxapi-lb-p3-08.png


つづく。

NSX Edge LB の API 操作を体験してみる。Part 4(LB メンバのステータス確認)


NSX Edge LB の API 操作を体験してみる。Part 4(LB メンバのステータス確認)

$
0
0

NSX Edge ロードバランサ(LB)を NSX API で設定変更してみます。


概要については、こちらをどうぞ。

NSX Edge LB の API 操作を体験してみる。Part 1(はじめに)


前回の投稿はこちらです。

NSX Edge LB の API 操作を体験してみる。Part 3(One-Arm LB の設定)


手順について。


今回は NSX API で、ここまでで構成した LB の、プールメンバのステータスを確認してみます。

  1. 正常な状態
  2. Web サービスの障害(HTTPD サービスの停止)
  3. Web サーバの障害(VM 停止)

 

1. 正常な状態


まず、LB のメンバの状態を NSX Edge のコンソールから確認してみます。

前回デプロイした OneArm-LoadBalancer という NSX Edge に、VM コンソールからアクセスしてみます。


admin ユーザでログインして、プールのステータスを確認します。

show service loadbalancer pool


プールのメンバが、それぞれ UP になっていることがわかります。

nsxapi-lb-p4-00.png

 

API で確認する場合は、LB の統計情報(statistics)を取得するとプール メンバの状態がわかります。

curl -k -s -u admin:VMware1! -X GET https://192.168.110.15/api/4.0/edges/edge-5/loadbalancer/statistics | xmllint --format -


コンソールでの確認と同様に、メンバがそれぞれ UP になっています。

nsxapi-lb-p4-01.png


情報量が多いので、API での情報取得結果からメンバの status だけ表示してみます。

 

web-01a

curl -k -s -u admin:VMware1! -X GET https://192.168.110.15/api/4.0/edges/edge-5/loadbalancer/statistics | xmllint --xpath '//pool[name="Web-Tier-Pool-01"]/member[name="web-01a"]/status' - | more

 

web-02a

curl -k -s -u admin:VMware1! -X GET https://192.168.110.15/api/4.0/edges/edge-5/loadbalancer/statistics | xmllint --xpath '//pool[name="Web-Tier-Pool-01"]/member[name="web-02a"]/status' - | more

 

このような感じになります。

nsxapi-lb-p4-02.png

 

2. Web サービスの障害

 

Web サーバ(web-01a)の Web サービス(httpd)を停止して、NSX API でステータスを見てみます。

今回は、web-01a にログインして「service httpd stop」コマンドで Web サービスを停止しました。

nsxapi-lb-p4-03.png

 

NSX Edge のコンソールで STATUS が DOWN になりました。

nsxapi-lb-p4-04.png

 

NSX API でも、同様に DOWN が検知されます。

障害検知の内容も、NSX Edge と同様に確認することができます。

nsxapi-lb-p4-05.png

 

3. Web サーバの障害

 

Web サーバ(web-01a)を、ゲスト OS ごとシャットダウンして、NSX API でステータスを見てみます。

web-01a にログインして「shutdown -h now」コマンドで Linux を停止しました。

nsxapi-lb-p4-06.png


NSX API でステータスを確認すると、ちゃんと状態の変化が反映されました。

nsxapi-lb-p4-07.png

 

Web サーバの状態を復旧すれば、すぐにステータスが UP に戻ります。

NSX Edge や Web Client から確認できる LB メンバのステータス情報も、このように NSX API から確認できます。

 

つづく。

NSX Edge LB の API 操作を体験してみる。Part 5(SSL オフロード)

NSX Edge LB の API 操作を体験してみる。Part 5(SSL オフロード)

$
0
0

NSX Edge ロードバランサ(LB)を NSX API で設定変更してみます。

 

概要については、こちらをどうぞ。

NSX Edge LB の API 操作を体験してみる。Part 1(はじめに)

 

前回の投稿はこちらです。

NSX Edge LB の API 操作を体験してみる。Part 4(LB メンバのステータス確認)

 

手順について。

 

今回は、既存の NSX Edge に、NSX API で SSL 証明書作成~仮想サーバ設定をします。

既存の NSX Edge(Perimeter-Gateway)の設定変更をします。

  1. SSL証明書の生成
    1. CSR 作成
    2. 自己署名による証明書の作成
  2. アプリケーションプロファイルの作成
  3. バックエンド プールの作成とメンバの追加
  4. 仮想サーバの設定変更

 

設定対象になる NSX Edge の ID は edge-2 です。

nsxapi-lb-p5-01.png

 

1-1. SSL証明書の生成: CSR 作成

 

今回の SSL 設定では、NSX Edge で 自己署名の証明書を作成して使用します。

 

まず CSR (証明書の署名要求)を、下記の情報で作成します。

  • 共通名: web-app.corp.local
  • 組織名: web-app.corp.local
  • 組織単位: VMWorld
  • 地域: San Francisco
  • 状態(というか州): CA
  • 国: US


XML ファイル(csr-web-app.txt)を作成します。

cat <<EOF > csr-web-app.txt

<csr>

  <subject>

    <attribute>

      <key>CN</key>

      <value>web-app.corp.local</value>

    </attribute>

    <attribute>

      <key>O</key>

      <value>web-app.corp.local</value>

    </attribute>

    <attribute>

      <key>OU</key>

      <value>VMworld</value>

    </attribute>

    <attribute>

      <key>L</key>

      <value>San Francisco</value>

    </attribute>

    <attribute>

      <key>ST</key>

      <value>CA</value>

    </attribute>

    <attribute>

      <key>C</key>

      <value>US</value>

    </attribute>

  </subject>

  <algorithm>RSA</algorithm>

  <keySize>2048</keySize>

</csr>

EOF

 

XML ファイルを読み込んで、CSR を作成します。

cat csr-web-app.txt | curl -k -s -u admin:VMware1! -X POST -H 'Content-type: text/xml' -d @- https://192.168.110.15/api/2.0/services/truststore/csr/edge-2

 

SSL 証明書の署名で指定するため、今回作成した CSR の ID を特定しておきます。

curl -k -s -u admin:VMware1! -X GET https://192.168.110.15/api/2.0/services/truststore/csr/scope/edge-2 | xmllint --xpath '//csr[cn="web-app.corp.local"]/objectId' - | more

 

CSR の ID は、csr-5 でした。

nsxapi-lb-p5-02.png

 

ちなみに、この CSR の情報は、下記で表示することができます。

curl -k -s -u admin:VMware1! -X GET https://192.168.110.15/api/2.0/services/truststore/csr/csr-5 | xmllint --format -

 

1-2. SSL証明書の生成: 自己署名による証明書の作成

 

自己署名付き証明書を作成します。

先ほど作成した csr-5 を、有効期限 365日で署名します。

curl -k -s -u admin:VMware1! -X PUT https://192.168.110.15/api/2.0/services/truststore/csr/csr-5?noOfDays=365

 

証明書の情報は、下記のように確認することができます。

curl -k -s -u admin:VMware1! -X GET https://192.168.110.15/api/2.0/services/truststore/certificate/scope/edge-2 | xmllint --format -

 

後の手順で指定するため、作成した証明書の ID を確認しておきます。

curl -k -s -u admin:VMware1! -X GET https://192.168.110.15/api/2.0/services/truststore/certificate/scope/edge-2 | xmllint --xpath '//certificate[name="web-app.corp.local"]/objectId' - | more

 

certificate-11 として作成されたことがわかります。

nsxapi-lb-p5-03.png

 

Web Client でも、今回作成した CSR と SSL 証明書が表示されます。

nsxapi-lb-p5-04.png

 

2. アプリケーションプロファイルの作成

 

SSL 終端のためのアプリケーション プロファイルを作成します。

  • 名前: Web-SSL-Term-Profile-01
  • タイプ: HTTPS
  • サービス証明書: 証明書「web-app.corp.local」 → certificate-11

 

XML ファイル(app-prof-sslterm.txt)を作成します。

cat <<EOF > app-prof-sslterm.txt

<applicationProfile>

  <name>Web-SSL-Term-Profile-01</name>

  <insertXForwardedFor>false</insertXForwardedFor>

  <sslPassthrough>false</sslPassthrough>

  <template>HTTPS</template>

  <serverSslEnabled>false</serverSslEnabled>

  <clientSsl>

    <clientAuth>ignore</clientAuth>

    <serviceCertificate>certificate-11</serviceCertificate>

  </clientSsl>

</applicationProfile>

EOF

 

アプリケーション プロファイルを作成します。

cat app-prof-sslterm.txt | curl -k -s -u admin:VMware1! -X POST -H 'Content-type: text/xml' -d @- https://192.168.110.15/api/4.0/edges/edge-2/loadbalancer/config/applicationprofiles

 

applicationProfile-2 として作成されました。

nsxapi-lb-p5-05.png

 

作成されたアプリケーション プロファイルの ID は、API でも確認できます。

curl -k -s -u admin:VMware1! -X GET https://192.168.110.15/api/4.0/edges/edge-2/loadbalancer/config/applicationprofiles | xmllint --xpath '//applicationProfile[name="Web-SSL-Term-Profile-01"]/applicationProfileId' - | more

nsxapi-lb-p5-05a.png

 

3. バックエンド プールの作成とメンバの追加

 

プールへのメンバーの追加前回と異なり、Edge から Web サーバへは 80番ポートを指定。

 

今回のプール設定です。

  • 名前: Web-Tier-Pool-02
  • モニタ: NONE のまま

 

メンバ1

  • 名前: web-01a
  • IP 172.16.10.11
  • ポート: 80
  • モニタ ポート: 80

 

メンバ2

  • 名前: web-02a
  • IP 172.16.10.12
  • ポート: 80
  • モニタ ポート: 80

 

XML ファイル(pool-web-tier-2.txt)を作成します。

cat <<EOF > pool-web-tier-2.txt

<pool>

  <name>Web-Tier-Pool-02</name>

  <description></description>

  <transparent>false</transparent>

  <algorithm>round-robin</algorithm>

  <member>

    <ipAddress>172.16.10.11</ipAddress>

    <weight>1</weight>

    <port>80</port>

    <name>web-01a</name>

    <monitorPort>80</monitorPort>

  </member>

  <member>

    <ipAddress>172.16.10.12</ipAddress>

    <weight>1</weight>

    <port>80</port>

    <name>web-02a</name>

    <monitorPort>80</monitorPort>

  </member>

</pool>

EOF

 

プールを作成します。

cat pool-web-tier-2.txt | curl -k -s -u admin:VMware1! -X POST -H 'Content-type: text/xml' -d @- https://192.168.110.15/api/4.0/edges/edge-2/loadbalancer/config/pools

 

pool-2 としてプールが作成されました。Web Client ではこう見えます。

nsxapi-lb-p5-06.png

 

作成されたプールの ID は、API でも確認できます。

curl -k -s -u admin:VMware1! -X GET https://192.168.110.15/api/4.0/edges/edge-2/loadbalancer/config/pools | xmllint --xpath '//pool[name="Web-Tier-Pool-02"]/poolId' - | more

nsxapi-lb-p5-07.png

 

4. 仮想サーバの設定変更

 

今回は、既存の仮想サーバの設定を変更します。

 

仮想サーバ「Web-Tier-SSL-01」の ID を確認しておきます。

curl -k -s -u admin:VMware1! -X GET https://192.168.110.15/api/4.0/edges/edge-2/loadbalancer/config/virtualservers | xmllint --xpath '//virtualServer[name="Web-Tier-SSL-01"]/virtualServerId' - | more

 

設定対象の仮想サーバの ID は、virtualServer-1 です。

nsxapi-lb-p5-08.png

 

変更しない設定値は、もともとの値を指定しておきます。

  • 名前: Web-Tier-SSL-01 → virtualServer-1
  • IP アドレス: 192.168.100.4
  • プロトコル: HTTPS
  • ポート: 443
  • アプリケーション プロファイル: Web-SSL-Term-Profile-01 → applicationProfile-2★変更
  • デフォルト プール: Web-Tier-Pool-02 → pool-2★変更

 

XML ファイル(vs-web-tier-2.txt)を作成します。

cat <<EOF > vs-web-tier-2.txt

<virtualServer>

  <virtualServerId>virtualServer-1</virtualServerId>

  <name>Web-Tier-SSL-01</name>

  <enabled>true</enabled>

  <ipAddress>192.168.100.4</ipAddress>

  <protocol>https</protocol>

  <port>443</port>

  <connectionLimit>0</connectionLimit>

  <connectionRateLimit>0</connectionRateLimit>

  <applicationProfileId>applicationProfile-2</applicationProfileId>

  <defaultPoolId>pool-2</defaultPoolId>

  <enableServiceInsertion>false</enableServiceInsertion>

  <accelerationEnabled>false</accelerationEnabled>

</virtualServer>

EOF

 

XML ファイルを読み込んで、設定変更します。

cat vs-web-tier-2.txt | curl -k -s -u admin:VMware1! -X PUT -H 'Content-type: text/xml' -d @- https://192.168.110.15/api/4.0/edges/edge-2/loadbalancer/config/virtualservers/virtualServer-1

 

設定変更が反映されました。

nsxapi-lb-p5-09.png

 

これで、テストページ「SSL-Offload-Web-A...」の表示ができるようになります。

nsxapi-lb-p5-10.png

 

HoL のシナリオをもとにした単純な設定ですが、

このように NSX Edge のロードバランサを NSX API で設定するととができます。

 

以上、NSX API で NSX Edge LB を設定してみる話でした。

NSX の分散ロードバランシング(DLB)を体験してみる。Part 1(準備編)

$
0
0

NSX の Distributed Load Balancing (DLB)を試してみます。

まだ Preview の機能なので商用環境(いわゆる本番環境)への適用はできませんが、

既に NSX-v 6.2 には機能が含まれていて使用することが可能です。

 

VMTN に公開されている Getting Started Guide を参考にしました。

NSX Distributed Load Balancing  - Getting Started Guide

 

今回も、VMware のハンズオンラボ 「HOL-SDC-1603 VMware NSX Introduction」 を使用しています。

 

VMware Hands-on Labs(HoL)

http://labs.hol.vmware.com/HOL/catalogs/

 

今回の構成について。


DLB により、Windows 8 の VM から Web サーバへのアクセスを分散してみます。

ちなみに、NSX の DLB では分散元となる VM の vNIC に設定したフィルタで分散しているようです。

 

今回は、下記のような構成にしています。

  • 分散元/先は、別のネットワークセグメントにしています。
  • 分散ルーティングは使用していません。

nsx-dlb-img-01.png


ESXi と VM は、下記を使用します。

  • DLB の分散元: win8-01a
  • DLB の分散先: web-01a、web-02a(2 VM)
  • DLB を有効にするクラスタ: Compute Cluster A
    • esx-01a、esx-02a が含まれる。
    • NSX はすべての ESXi で構成済み。※ラボのデフォルトの状態。

 

手順の流れ。

 

今回の手順の流れです。長くなるので、5回に分けて投稿します。

  1. HoL での準備 ★この投稿。
    1. VM の停止、移動
    2. セキュリティ グループの作成
  2. DLB 有効化 ★Part 2
    1. Service Definition の作成。
    2. Service Instance へのクラスタ追加。
    3. Service Profile の作成。
  3. VIP の構成(NSX FW のルール作成) ★Part 3
    1. Service Instance への Service Profile 適用。
    2. NSX Firewall での Balance ルール設定。
  4. DLB クライアントになる VM からアクセス確認。 ★Part 4
  5. DLB 元の ESXi の様子を見てみる。 ★Part 5

 

下記のようなイメージになると思います。今回固有の設定(名前など)は赤字にしています。

オレンジ色のセキュリティグループ(DLB-Client-SG)は同一のものです。

nsx-dlb-img-02.png

 

1-1. VM の停止、移動

 

まず、ラボの VM 配置を調整します。

DLB を1つのクラスタ内で検証したいため、Compute Cluster A に関係する VM を移動します。

  • web-03a は使用しないので、シャットダウンします。
  • web-02a と win8-01a を、vMotion で esx-02a に移動します。
  • app-01a と db-01a は、テストページの表示で必要なので起動したままにしておきます。

 

VM 配置は、下記のようになります。

 

ESXi: esx-01a

nsx-dlb-p1-01.png

 

ESXi: esx-02a

nsx-dlb-p1-02.png

 

 

1-2. セキュリティ グループの作成

 

今回の DLB 設定では、仮想サーバの VIP を設定する際にセキュリティ グループを使用します。

そこで、あらかじめ下記のセキュリティ グループ作成しておきます。

  • DLB 分散元: DLB-Client-SG
  • DLB 分散先: Web-SG

 

Web Client の Network & Security →

Service Composer → Security Groups を開いて、「New Security Group」 ボタンをクリックします。

nsx-dlb-p1-07.png

 

名前は、「DLB-Client-SG」 としておきます。

nsx-dlb-p1-08.png

 

「Select objects to include」 を開いて、Object Type で Virtual Machine を選択します。

web8-01a を選択して「Finish」 をクリックします。

nsx-dlb-p1-09.png

 

同様に、「Web-SG」というセキュリティ グループを作成します。

nsx-dlb-p1-10.png

 

このグループには、web-01a と web-02a を含めます。

nsx-dlb-p1-11.png

 

セキュリティ グループ「DLB-Client-SG」と「Web-SG」が作成されました。

nsx-dlb-p1-12.png

 

つづく。

NSX の分散ロードバランシング(DLB)を体験してみる。Part 2(DLB 有効化)

NSX の分散ロードバランシング(DLB)を体験してみる。Part 2(DLB 有効化)

$
0
0

NSX の Distributed Load Balancing(DLB)を試してみます。

 

前回の投稿はこちらです。

NSX の分散ロードバランシング(DLB)を体験してみる。Part 1(準備編)

 

手順について。

 

今回は、NSX で DLB を有効化します。

  1. Service Definition の作成。
  2. Service Instance へのクラスタ追加。
  3. Service Profile の作成。

 

1. Service Definition の作成。

 

Service Definition「NSX-DLB」 を作成します。

この流れで、Service Manager、Service Instance というものも作成されます。

 

Web Client の Network & Security →

Service Definitions → Services を開いて、「+」 ボタンをクリックします。

nsx-dlb-p2-01.png

 

下記を指定して「Next」をクリックします。

  • Name: NSX-DLB
  • Service Manager: Create New Service Manager ※デフォルト
  • Deployment Mechanism: Host based vNIC

nsx-dlb-p2-02.png


Service Categories では Load Balancer を選択して、「Next」 をクリックします。

nsx-dlb-p2-03.png

 

Service Manager は、名前だけ入力して「Next」 をクリックします。

  • Name: DLB-Service-Manager

nsx-dlb-p2-04.png

 

のこりは、流れに従ってデフォルトのまま「Next」 をクリックします。

下記のようになるので、「Finish」 をクリックします。

nsx-dlb-p2-05.png

 

2. Service Instance へのクラスタ追加。

 

DLB を有効化するクラスタを指定します。

作成された「NSX-DLB」 をダブルクリックして開きます。

nsx-dlb-p2-06.png

 

Service Instances → NSX-DLB-GlobalInstance → Manage → Deployment を開いて、

「+」 ボタンをクリックします。

nsx-dlb-p2-07.png

 

DLB を有効化するクラスタ 「Compute Cluster A」 を選択して「OK」 をクリックします。

※現時点では、ここで選択できるのは 1クラスタだけのようです。

nsx-dlb-p2-08.png

 

クラスタが追加されました。

nsx-dlb-p2-09.png

 

3. Service Profile の作成。

 

Service Instance で、Service Profile を作成します。

Related Objects を開いて、「+」ボタンをクリックします。

nsx-dlb-p2-10.png

 

Service Profile の名前を入力して、「OK」 をクリックします。

  • Profile Name: DLB-Service

nsx-dlb-p2-11.png

 

つづく。

NSX の分散ロードバランシング(DLB)を体験してみる。Part 3(VIP 構成)


NSX の分散ロードバランシング(DLB)を体験してみる。Part 3(VIP 構成)

$
0
0

NSX の Distributed Load Balancing(DLB)を試してみます。

 

概要は Part 1 をどうぞ。

NSX の分散ロードバランシング(DLB)を体験してみる。Part 1(準備編)

 

前回の投稿はこちらです。

NSX の分散ロードバランシング(DLB)を体験してみる。Part 2(DLB 有効化)

 

手順について。

 

今回は、DLB で使用する VIP を構成します。

DLB の VIP は、NSX Firewall のルールとして設定することになります。

  1. Service Instance への Service Profile 適用。
  2. NSX Firewall での Balance ルール設定。

 

今回の構成では、このような感じになります。

※Part 1 と同じ絵です。

nsx-dlb-img-02.png

 

1. Service Instance への Service Profile 適用。

 

Web Client の Network & Security →

Service Definitions → Services → NSX-DLB をダブルクリックで開きます。

nsx-dlb-p3-01.png

 

Service Instances → NSX-DLB-GlobalInstance → Related Objects を開きます。

Service Profile「DLB-Service」が選択された状態で、「Apply to Objects」ボタンをクリックします。

nsx-dlb-p3-02.png

 

Object Type で「Security Group」 を選択したあと、DLB-Client-SG を選択して「OK」 をクリックします。

※ちなみに、「Object Type」は下記から選択できます。

  • Distributed Port Group
  • Security Group
  • Logical Switch

nsx-dlb-p3-03.png

 

Service Instance「NSX-DLB-GlobalInstance」 の画面のまま、

Manage → Setting を開いて「Publish」をクリックします。

nsx-dlb-p3-04.png

 

2. NSX Firewall での Balance ルール設定。


NSX Firewall で、VIP を設定するためのルールを追加します。

Partner security services の Default セクションに、下記の Blanace ルールを追加します。

  • Name: VIP-Web
  • Source: DLB-Client-SG
  • Destination: Web-SG
  • Service: HTTP
  • Action: balance + DLB-Service

 

Web Client の Network & Security →

Firewall → Configuration → Partner security services を開きます。

※画面を広く使うため、左側の画面のピンを外しておきます。

nsx-dlb-p3-05.png

 

Default Section で、「+」ボタンをクリックします。

nsx-dlb-p3-06.png

 

FW ルールの各項目の編集ボタンをクリックして、設定していきます。

 

Name

  • Rule Name: VIP-Web

nsx-dlb-p3-07.png

 

Source

  • Security Group の DLB-Client-SG を選択。

nsx-dlb-p3-08.png

 

Destination

  • Security Group の Web-SGを選択。

nsx-dlb-p3-09.png


Service

  • Object Type で、Service を選択して、HTTP を選択。

nsx-dlb-p3-10.png

 

Action には、下記を設定します。

VIP(Virtual Server IP)は、Web サーバの IP レンジから使用されていないものを適当に選定しました。

  • Action: Blanace
  • RedirectTo: DLB-Service
  • Direction: Out
  • Log: Do not log
  • Virtual Server IP: 172.16.10.9

nsx-dlb-p3-11.png


ルール追加したら、「Publish Changes」で設定反映します。

nsx-dlb-p3-12.png

 

ルールが登録されて、Rule ID が採番されました。

nsx-dlb-p3-13.png

 

これで DLB が動作するようになりました。

 

つづく。

NSX の分散ロードバランシング(DLB)を体験してみる。Part 4(動作確認)

NSX の分散ロードバランシング(DLB)を体験してみる。Part 4(動作確認)

$
0
0

NSX の Distributed Load Balancing(DLB)を試してみます。


概要は Part 1 をどうぞ。

NSX の分散ロードバランシング(DLB)を体験してみる。Part 3(VIP 構成)

 

DLB クライアントになる VM からアクセス確認。


今回は、DLB クライアントとなる VM 「win8-01a」 の Webブラウザから、DLB の VIP にアクセスしてみます。

 

win8-01a に Remote Desktop Connection で接続します。

nsx-dlb-p4-01.png

 

CORP\Administrator ユーザで、HoL 共通のパスワードでログインできます。

nsx-dlb-p4-02.png

 

win8-01a の IE を開いて、リアル IP でそれぞれの Web サーバのページが表示されることを確認しておきます。

 

web-01a の 172.16.10.11 のページが表示できます。

nsx-dlb-p4-03.png

 

web-02a の 172.16.10.12 のページが表示できます。

nsx-dlb-p4-04.png

 

つづいて、DLB で設定した VIP である、172.16.10.9 にアクセスしてみます。

 

ちゃんと web-01a のページが表示されます。

nsx-dlb-p4-05.png

 

Roud-Robin で振り分けているので、

Web ページを開きなおすと、web-02a のページも表示されます。

※更新ボタンより、 IE を開きなおしたほうがよいかもしれません。

nsx-dlb-p4-06.png

 

East-West 通信(たとえば Web ~ App サーバ間など)むけの機能のようですが、

North-South 通信っぽい今回の構成(分散ルーティングもされていない)でも、いちおう動作しました。


まだつづく。

NSX の分散ロードバランシング(DLB)を体験してみる。Part 5(ESXi から見た DLB Filter)

NSX の分散ロードバランシング(DLB)を体験してみる。Part 5(ESXi から見た DLB Filter)

$
0
0

NSX の Distributed Load Balancing(DLB)を試してみます。


概要は Part 1 をどうぞ。

NSX の分散ロードバランシング(DLB)を体験してみる。Part 1(準備編)


前回の投稿はこちらです。

NSX の分散ロードバランシング(DLB)を体験してみる。Part 4(動作確認)

 

今回は、設定した DLB の vNIC でのフィルタを、ESXi に SSH ログインして見てみます。

win8-01a と web-02a が配置されている、ESXi「esx-02a」 に SSH ログインしています。

 

DVFilter の情報を表示できる summarize-dvfilterコマンドを、FW ルール適用の前後で実行してみました。

VIP 構成(FW ルール適用)前の状態。summarize-dvfilter コマンドの抜粋です。

web-02a と win8-01a の情報が表示されています。

nsx-dlb-p5-01.png

 

そして、VIP 構成(FW ルール適用)後の状態です。

DLR クライアントになる win8-01a に、フィルタが追加されています。

nsx-dlb-p5-02.png

 

vsipioctl コマンドで、追加されたフィルタのルール設定を確認してみます。

DNAT rulees に、 下記の設定のルールが追加されています。

  • out protocol: tcp(HTTP Service)
  • from addrset: ip-securitygroup-10
  • to ip: 172.16.10.9
  • port: 80(HTTP Service)
  • dnat addrset: ip-securitygroup-11
  • round-robin

nsx-dlb-p5-03.png

 

よい確認方法がまだ見つけられませんが、

このフィルタで指定されているオブジェクトの ID をもとに、NSX API でオブジェクト名を見てみました。

(当然ですが)NSX Firewall で指定したものと一致するようです。

※ラボの vCenter(vcsa-01a)から、NSX Manager(192.168.110.15) にアクセスして情報取得しています。


securitygroup-10 の name

curl -k -s -u 'admin:VMware1!' https://192.168.110.15/api/2.0/services/securitygroup/scope/globalroot-0 | xmllint --xpath '//securitygroup[objectId="securitygroup-10"]/name' - | more

 

securitygroup-11 の name

curl -k -s -u 'admin:VMware1!' https://192.168.110.15/api/2.0/services/securitygroup/scope/globalroot-0 | xmllint --xpath '//securitygroup[objectId="securitygroup-11"]/name' - | more

 

ip-securitygroup-~ というオブジェクトは、NSX Firewall で指定したセキュリティ グ ループと対応しているようです。

nsx-dlb-p5-04.png

 

serviceprofile-1 は、名前だけに絞らず見てみました。

curl -k -s -u 'admin:VMware1!' https://192.168.110.15/api/4.0/firewall/globalroot-0/config | xmllint --xpath '//*[objectId="serviceprofile-1"]' - | xmllint --format -

 

「serviceprofile-1」は、NSX Firewall で指定した Service Profile 「DLB-Service」です。

nsx-dlb-p5-05.png

 

NSX の DLB を設定してみたところ、既存のものを例に出すと

なんとなく vNIC レイヤで設定できる iptables DNAT ルールのような印象を受けました。

現状の DLB では SSL オフロードや URL Rewrite などができないそうですが、

DC 内の East-West 通信での利用を想定している機能のようなので、

シンプルなルール設定で利用するとよさそうに思いました。


以上、NSX の DLB を試してみる話でした。

vCenter Object ID の探索。(VMID 編)

$
0
0

最近 NSX API と対話していて、そこで指定するために vCenter Object ID を探しています。

NSX API では、vCenter インベントリのオブジェクト(VM や、ポートグループなど)を

ID で指定しなくてはいけないことがあります。

 

NSX vSphere API Guide

NSX 6.2 for vSphere

http://pubs.vmware.com/NSX-62/topic/com.vmware.ICbase/PDF/nsx_62_api.pdf

 

たとえば VM の名前ではなく、VMID を指定するのですが、

これは NSX API ではわからず、ID を探すのは結構大変なように感じています。

そこで、VMID の探し方をいくつか模索してみました。

 

1. Managed Object Browser から探す。

 

まずは、API ガイドにも説明がある Managed Object Browser(MOB)から VMID を探してみます。

MOB は、Web ブラウザで下記の URL にアクセスして vCenter 同様のユーザでログインすると見ることができます。

 

https: //<vCenterのアドレス>/mob

 

GUI から探す場合は、この方法が一番メジャーなのではないかと思います。

NSX API とは関係ないですが、KB でも MOB を使ってオブジェクトを見る方法が案内されていたりします。

 

vCenter Server での管理対象オブジェクト参照 (MoRef) の検索 (2095221) | VMware KB

 

MOB では、たとえば下記のように VMID を探すことができます。

今回は、vm01 と、vm02 という VM の ID を探してみます。

vmid-01.png

 

Web ブラウザから MOB にログインしました。「content」 リンクから、階層を降りていきます。

vmid-02.png

 

rootFolder に入ります。

vmid-03.png

 

データセンタ名(今回は dc01)のリンクがあります。

ここから、vCenter のインベントリ ツリーと同様の階層をたどっていきます。

vmid-04.png

 

リンクをたどっていくと、最初のスクリーンショットにあるように「test01」 フォルダ配下に

vm01、vm02 を見つけることができます。VMID は、それぞれ vm-1666 と vm-1667 でした。

vmid-5.png

 

2. PowerCLI から見る。

 

PowerCLI から、VMID を探してみます。

今のところ私としては、vCenter のオブジェクト ID を探す場合はこれが最も簡単な方法だと思っています。

取得した VMID をもとに、PowerShell の Invoke-WebRequest コマンドレットで

NSX API のリクエストを発行すると便利なのではないかと思います。

 

下記のような感じで、コマンドライン1行で簡単に ID を見つけることができます。

「ft -AutoSize」は表示結果の整形のためだけにつけています。

ただ、実際に欲しいのは、赤字の部分だけだったりします。

PowerCLI> Get-VM vm0? | sort Name | select Name,Id | ft -AutoSize

 

Name Id

---- --

vm01 VirtualMachine-vm-1666

vm02 VirtualMachine-vm-1667

 

少し長くなりますが、下記のように MoID の部分だけ取得することもできます。

PowerCLI> Get-VM vm0? | Get-View | sort Name | select Name,@{N="MOID";E={$_.MoRef.Value}} | ft -AutoSize

 

Name MOID

---- ----

vm01 vm-1666

vm02 vm-1667

 

3. Python で見てみる。

 

最近 Linux から NSX API を実行したいことがあり

PowerCLI 以外のスクリプト言語から VMID を取得しようとしています。

Perl の方がメジャーvSphere CLI も Perl スクリプトなので・・・な気もしますが、

Python で VMID を探してみました。


今回は、下記のように環境を準備してあります。

Python で vSphere を操作できるようにする。(pyvmomi)

 

対話的に Python を実行する場合、下記のような感じで VMID を取得できます。

 

Python を実行します。

[root@vm01 ~]# python

Python 2.7.5 (default, Nov 21 2015, 00:39:04)

[GCC 4.8.5 20150623 (Red Hat 4.8.5-4)] on linux2

Type "help", "copyright", "credits" or "license" for more information.

>>>

 

vCenter に接続して・・・

>>> from pyVim import connect

>>> from pyVmomi import vim

>>> si = connect.SmartConnect(host='vCenterのアドレス',user='vCenterのユーザ',pwd='パスワード')

>>>

 

VMID を取得してみました。

ルート(先ほどの MOB にもあった rootFolder)配下の、すべての VM の情報を取得しています。

>>> content = si.RetrieveContent()

>>> containerView = content.viewManager.CreateContainerView(content.rootFolder,[vim.VirtualMachine],True)

>>> for vm in containerView.view:

...  print vm._moId, vm.name

...

vm-1667 vm02

vm-1666 vm01

>>>

 

下記のような感じで、VM の名前から ID を探すとこができます。

実際は VM 名がユニークとは限らないので、ちゃんと絞り込まないといけないです。

>>> for vm in containerView.view:

...  if vm.name == 'vm01':

...    print vm._moId

...

vm-1666

>>>

 

そして下記のような感じで簡易的なスクリプトファイルを用意して、VMID 取得しています。

 

connect_info.py

vc_addr = 'vCenterのアドレス'

vc_user = 'vCenterのユーザ'

vc_pwd = 'パスワード'

 

get_vmid.py

import atexit

import sys

from pyVim import connect

from pyVmomi import vim

 

execfile('connect_info.py')

vmname = sys.argv[1]

 

si = connect.SmartConnect(host=vc_addr, user=vc_user, pwd=vc_pwd)

atexit.register(connect.Disconnect, si)

 

content = si.RetrieveContent()

si.content.rootFolder

container = content.rootFolder

 

viewType = [vim.VirtualMachine]

recursive = True

containerView = content.viewManager.CreateContainerView(container, viewType, recursive)

for vm in containerView.view:

  if vm.name == vmname:

    print vm._moId

 

こんな感じでスクリプトを実行して、VM 名から ID を取得しています。

[root@vm01 ~]# python get_vmid.py vm01

vm-1666

[root@vm01 ~]# python get_vmid.py vm02

vm-1667

 

4. とりあえず、Web Client のコンソールから。

 

VM の ID だけであれば、よく見ると vSphere Web Client のコンソールの URL に VMID が含まれています。

vmid-6.png

 

引き続き、悩ましい vCenter Object ID の探し方を模索したいと思います。

 

以上、vCenter Object ID を探してみる話でした。

とうとう VMware Photon OS 1.0 がリリースされました。

$
0
0

とうとう、Photon OS 1.0 がリリースされたようです。

Announcing the Availability of VMware’s Photon OS 1.0 | VMware Radius

 

GitHub はこちら。

GitHub - vmware/photon: Minimal Linux container host

 

photon10-ga-01.png

 

インストーラの ISO イメージや、OVA ファイルが下記からダウンロードできます。

Downloading Photon OS · vmware/photon Wiki · GitHub

 

主な使用方法は、Administration Guide でわかります。

OVA のデフォルトパスワードなども、ここに記載があります。

photon/photon-admin-guide.md at master · vmware/photon · GitHub

 

とりあえず、OVA ファイルを VMware Workstation で起動してみました。

photon10-ga-02.png

 

デフォルトの仮想マシンは、このような構成です。

ネットワークは「ブリッジ」なので、必要に応じて NAT などに変更します。

photon10-ga-04.png

 

パワーオン。

photon10-ga-05.png

 

最初にログインするときに、root パスワード(デフォルトは changeme)を変更します。

パスワードは、ある程度複雑にする必要があります。

photon10-ga-06.png


Photon 1.0 です。

root@photon-u2Ac5nybq [ ~ ]# cat /etc/photon-release

VMware Photon Linux 1.0

PHOTON_BUILD_NUMBER=13c08b6

root@photon-u2Ac5nybq [ ~ ]# uname -a

Linux photon-u2Ac5nybq 4.4.8-esx #1-photon SMP Tue Jun 7 08:04:49 UTC 2016 x86_64 GNU/Linux

 

ネットーワークが DHCP 設定となっていて、

下記のように ipconfig コマンドなので自動設定された IP アドレスがわかります。

デフォルトで、root ユーザで SSH ログインも可能になっています。

root@photon-u2Ac5nybq [ ~ ]# ifconfig eth0

eth0      Link encap:Ethernet  HWaddr 00:0c:29:b7:41:03

          inet addr:192.168.254.130  Bcast:192.168.254.255  Mask:255.255.255.0

          inet6 addr: fe80::20c:29ff:feb7:4103/64 Scope:Link

          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1

          RX packets:417 errors:0 dropped:0 overruns:0 frame:0

          TX packets:343 errors:0 dropped:0 overruns:0 carrier:0

          collisions:0 txqueuelen:1000

          RX bytes:47901 (47.9 KB)  TX bytes:54559 (54.5 KB)

 

とりあえず、docker 起動してみました。

root@photon-u2Ac5nybq [ ~ ]# systemctl enable docker

Created symlink from /etc/systemd/system/multi-user.target.wants/docker.service to /usr/lib/systemd/system/docker.service.

root@photon-u2Ac5nybq [ ~ ]# systemctl start docker

root@photon-u2Ac5nybq [ ~ ]# docker info

Containers: 0

Running: 0

Paused: 0

Stopped: 0

Images: 0

Server Version: 1.11.0

Storage Driver: overlay

Backing Filesystem: extfs

Logging Driver: json-file

Cgroup Driver: cgroupfs

Plugins:

Volume: local

Network: null host bridge

Kernel Version: 4.4.8-esx

Operating System: VMware Photon/Linux

OSType: linux

Architecture: x86_64

CPUs: 1

Total Memory: 1.958 GiB

Name: photon-u2Ac5nybq

ID: ACQG:XELF:KRAJ:WP7F:CI53:XCA3:67E5:KLG6:D66I:DV4K:7QZH:PHDB

Docker Root Dir: /var/lib/docker

Debug mode (client): false

Debug mode (server): false

Registry: https://index.docker.io/v1/

WARNING: No kernel memory limit support

 

そして、hello-world のコンテナを起動・・・

root@photon-u2Ac5nybq [ ~ ]# docker run hello-world

Unable to find image 'hello-world:latest' locally

latest: Pulling from library/hello-world

a9d36faac0fe: Pull complete

Digest: sha256:e52be8ffeeb1f374f440893189cd32f44cb166650e7ab185fa7735b7dc48d619

Status: Downloaded newer image for hello-world:latest

 

Hello from Docker.

This message shows that your installation appears to be working correctly.

 

To generate this message, Docker took the following steps:

1. The Docker client contacted the Docker daemon.

2. The Docker daemon pulled the "hello-world" image from the Docker Hub.

3. The Docker daemon created a new container from that image which runs the

    executable that produces the output you are currently reading.

4. The Docker daemon streamed that output to the Docker client, which sent it

    to your terminal.

 

To try something more ambitious, you can run an Ubuntu container with:

$ docker run -it ubuntu bash

 

Share images, automate workflows, and more with a free Docker Hub account:

https://hub.docker.com

 

For more examples and ideas, visit:

https://docs.docker.com/engine/userguide/

 

root@photon-u2Ac5nybq [ ~ ]#

 

以上、Photon 1.0 がリリースされたのでとりあえず起動してみた話でした。

VCSA 6.0 を CLI Install してみる。(External PSC + vCenter)

$
0
0

vCenter Server Appliance(VCSA) 6.0 の仮想アプライアンスは、

vSphere / Web Clinet からではなく Web ベースのウィザードからデプロイするようになりました。

 

そして CLI ベースのインストーラも提供されているので、

ためしに Windows 10 の PC からデプロイしてみました。

 

Command-Line Deployment and Upgrade of

VMware vCenter Server Appliance 6.0 Update 1

http://www.vmware.com/files/pdf/products/vsphere/VMware-vsphere-601-vcenter-server-appliance-cmdline-deploy-and-upgrade.pdf

 

今回は、VCSA 6.0 Update 2 を使用しました。

下記の ISO ファイルを、デプロイを実行する Windows の D: にマウントしています。

 

VMware-VCSA-all-6.0.0-3634788.iso

 

CLI ベースのインストーラは、ISO ファイル直下の vcsa-cli-installer フォルダにあります。

インストーラは、Windows / MAC / Linux それぞれに用意されています。

PS> dir D:\vcsa-cli-installer\ | select Name

 

Name

----

dbchecker

lin64  ★Linux 用

mac  ★MAC 用

templates

win32★Windows用

 

CLI インストールでは、パラメータを JSON ファイルで指定します。

templates フォルダ配下には、JSON ファイルのサンプルが配置されています。

install / upgrade それぞれに対応したサンプルが用意されています。

PS> dir D:\vcsa-cli-installer\templates\ | select Name

 

Name

----

install

upgrade

 

 

PS> dir D:\vcsa-cli-installer\templates\install\ | select Name

 

Name

----

PSC_on_ESXi.json

PSC_on_VC.json

PSC_replication_on_ESXi.json

PSC_replication_on_VC.json

VC_on_ESXi.json

VC_on_VC.json

embedded_vCSA_on_ESXi.json

embedded_vCSA_on_VC.json

 

今回は、vCenter と Platform Service Controller(PSC) を別の VM としてデプロイします。

※下記 KB で「外部 Platform Services Controller」と呼ばれる構成です。

VMware Platform Services Controller 6.0 に関する FAQ (2117316) | VMware KB

 

JSON ファイルの作成。

サンプル JSON ファイルのうち下記を参考にして、

C:\work\vcsa\ 配下に 2つ JSON ファイルを作成しました。

※VCSA は、VC 経由ではなく直接 ESXi にデプロイ。

  • PSC_on_ESXi.json
  • VC_on_ESXi.json

 

PSC デプロイで使用した JSON

C:\work\vcsa\PSC_on_ESXi-vcpsc01.json

  • 赤字の部分は、今回のデプロイ環境に合わせて指定しています。
  • 外部 PSC は、deployment.option が「infrastructure」となります。
  • vcpsc01.godc.lab(IP アドレスは 192.168.1.81)という PSC をデプロイします。
  • hv-i13.godc.lab というのは、デプロイ先の ESXi です。

{

    "__version": "1.1",

    "__comments": "Sample template to deploy a Platform Services Controller to an ESXi host.",

    "target.vcsa": {

        "appliance": {

            "deployment.network": "VM Network",

            "deployment.option": "infrastructure",

            "name": "vcpsc01",

            "thin.disk.mode": true

        },

        "esx": {

            "hostname": "hv-i13.godc.lab",

            "username": "root",

            "password": "パスワード",

            "datastore": "ds_hv-i13_01"

        },

        "network": {

            "hostname": "vcpsc01.godc.lab",

            "dns.servers": [

                "192.168.1.254",

                "192.168.0.254"

            ],

            "gateway": "192.168.1.252",

            "ip": "192.168.1.81",

            "ip.family": "ipv4",

            "mode": "static",

            "prefix": "24"

        },

        "os": {

            "password": "パスワード",

            "ssh.enable": true

        },

        "sso": {

            "password": "パスワード",

            "domain-name": "vsphere.local",

            "site-name": "Default-First-Site"

        }

    }

}

 

vCenter デプロイで使用した JSON

C:\work\vcsa\VC_on_ESXi-vc01.json

  • 外部 PSC に参加させる vCenter は、deployment.option が「management-<サイズ>」になります。
  • vc01.godc.lab(IP アドレスは 192.168.1.82)という vCenter をデプロイします。
  • platform.service.controllerには、PSC のデプロイで指定した FQDN 「vcpsc01.godc.lab」 を指定します 。

{

    "__version": "1.1",

    "__comments": "Sample template to deploy a vCenter Server to an ESXi host.",

    "target.vcsa": {

        "appliance": {

            "deployment.network": "VM Network",

            "deployment.option": "management-tiny",

            "name": "vc01",

            "thin.disk.mode": true

        },

        "esx": {

            "hostname": "hv-i13.godc.lab",

            "username": "root",

            "password": "パスワード",

            "datastore": "ds_hv-i13_01"

        },

        "network": {

            "hostname": "vc01.godc.lab",

            "dns.servers": [

                "192.168.1.254",

                "192.168.0.254"

            ],

            "gateway": "192.168.1.252",

            "ip": "192.168.1.82",

            "ip.family": "ipv4",

            "mode": "static",

            "prefix": "24"

        },

        "os": {

            "password": "パスワード",

            "platform.service.controller": "vcpsc01.godc.lab",

            "ssh.enable": true

        },

        "sso": {

            "password": "パスワード",

            "domain-name": "vsphere.local",

            "site-name": "Default-First-Site"

        }

    }

}


デプロイの実行。

Windows からデプロイするため、win32 フォルダ配下にある vcsa-deploy.exe でデプロイします。

デプロイ前に、PSC と vCenter の FQDN は DNS に A レコード、PTR レコードを登録して

名前解決できるようにしておきます。

 

最初に PSC をデプロイします。

  • エンドユーザ使用許諾に承諾するため、「--accept-eula」を付けます。
  • SSL 証明書の確認を無視するため、「--no-esx-ssl-verify 」を付けます。
  • 作成した 「C:\work\vcsa\PSC_on_ESXi-vcpsc01.json」 ファイルを指定します。

PS> D:\vcsa-cli-installer\win32\vcsa-deploy.exe --accept-eula --no-esx-ssl-verify C:\work\vcsa\PSC_on_ESXi-vcpsc01.json

Performing basic template verification...

Starting vCenter Server Appliance installer to deploy "vcpsc01"...

This appliance is a Platform Services Controller.

See

c:\users\gowatana\appdata\local\temp\vcsaCliInstaller-2016-07-03-07-21-ga9_gu\vcsa-cli-installer.log

for the installer logs.

Run the installer with "-v" or "--verbose" to log detailed information

Cannot resolve hostname hv-i13.godc.lab: [Errno 11004] host not found

Running OVF Tool to deploy the OVF...

Opening vCenter Server Appliance image: F:\vcsa\vmware-vcsa

Opening VI target: vi://root@hv-i13.godc.lab:443/

Deploying to VI: vi://root@hv-i13.godc.lab:443/

Progress: 99%

Transfer Completed

Powering on VM: vcpsc01

Progress: 98%

Power On completed.

Waiting for IP address...

Received IP address: 192.168.1.5

Installing services...

Retrying file download ...

Retrying file download ...

Retrying file download ...

Retrying file download ...

Retrying file download ...

Retrying file download ...

vCSA firstboot: Progress: 5% Setting up storage

vCSA firstboot: Progress: 50% Installing RPMs

vCSA firstboot: Progress: 53% Installed VMware-OpenSSL-6.0.0-3634794.x86_64.rpm

vCSA firstboot: Progress: 55% Installed VMware-jmemtool-6.0.0-3545910.x86_64.rpm

vCSA firstboot: Progress: 60% Installed vmware-snmp-1.0.1.rpm

vCSA firstboot: Progress: 62% Installed

VMware-unixODBC-2.3.1.vmw.2-6.0.0.x86_64.rpm

vCSA firstboot: Progress: 65% Installed

oracle-instantclient11.2-odbc-11.2.0.2.0.x86_64.rpm

vCSA firstboot: Progress: 70% Installed

VMware-rhttpproxy-6.0.0-3634794.x86_64.rpm

vCSA firstboot: Progress: 74% Installed

vmware-certificate-server-6.0.0.2521-3542384.x86_64.rpm

vCSA firstboot: Progress: 75% Installed

vmware-identity-sts-6.0.0.6698-3544973.noarch.rpm

vCSA firstboot: Progress: 77% Installed vmware-cm-6.0.0-3545910.x86_64.rpm

vCSA firstboot: Progress: 79% Installed

VMware-cis-license-6.0.0-3545910.x86_64.rpm

vCSA firstboot: Progress: 81% Installed psc-client-6.1.0-3565255.x86_64.rpm

vCSA firstboot: Progress: 84% Installed

applmgmt-cloudvm-1.0.0-3507541.x86_64.rpm

vCSA firstboot: Progress: 95% Configuring the machine

Services installations succeeded.

Configuring services for first time use...

vCSA firstboot: Progress: 9% Starting VMware Authentication Framework...

vCSA firstboot: Progress: 27% Starting VMware Identity Management Service...

vCSA firstboot: Progress: 36% Starting VMware Single Sign-On User Creation...

vCSA firstboot: Progress: 45% Starting VMware Component Manager...

vCSA firstboot: Progress: 54% Starting VMware License Service...

vCSA firstboot: Progress: 63% Starting VMware Platform Services Controller

Client...

vCSA firstboot: Progress: 72% Starting VMware Service Control Agent...

vCSA firstboot: Progress: 81% Starting VMware Appliance Management Service...

vCSA firstboot: Progress: 90% Starting VMware Common Logging Service...

First time configuration succeeded.

vCenter Server Appliance installer finished deploying "vcpsc01".

This appliance is a Platform Services Controller.

    System Name: vcpsc01.godc.lab

    SSO Domain: vsphere.local

Finished successfully.

 

次に vCenter をデプロイします。

  • PSC と同様に 「--accept-eula」 と --no-esx-ssl-verify 」を付けます。
  • 作成した 「C:\work\vcsa\VC_on_ESXi-vc01.json」 ファイルを指定します。

デプロイ先 ESXi(hv-i13.godc.lab)が名前解決できていなそうなエラーが出ていますが、

いちおう実際は名前解決できていて、デプロイできました。

PS> D:\vcsa-cli-installer\win32\vcsa-deploy.exe --accept-eula --no-esx-ssl-verify C:\work\vcsa\VC_on_ESXi-vc01.json

Performing basic template verification...

Starting vCenter Server Appliance installer to deploy "vc01"...

This appliance is a vCenter Server instance.

See

c:\users\gowatana\appdata\local\temp\vcsaCliInstaller-2016-07-03-13-03-6mdxk4\vcsa-cli-installer.log

for the installer logs.

Run the installer with "-v" or "--verbose" to log detailed information

Cannot resolve hostname hv-i13.godc.lab: [Errno 11004] host not found

vCenter Single Sign-On credential verification passed.

Running OVF Tool to deploy the OVF...

Opening vCenter Server Appliance image: F:\vcsa\vmware-vcsa

Opening VI target: vi://root@hv-i13.godc.lab:443/

Deploying to VI: vi://root@hv-i13.godc.lab:443/

Progress: 99%

Transfer Completed

Powering on VM: vc01

Progress: 98%

Power On completed.

Waiting for IP address...

Received IP address: 192.168.1.4

Installing services...

vCSA firstboot: Progress: 5% Setting up storage

vCSA firstboot: Progress: 51% Installed VMware-jmemtool-6.0.0-3545910.x86_64.rpm

vCSA firstboot: Progress: 55% Installed

oracle-instantclient11.2-odbc-11.2.0.2.0.x86_64.rpm

vCSA firstboot: Progress: 64% Installed

vmware-certificate-client-6.0.0.2521-3542384.x86_64.rpm

vCSA firstboot: Progress: 68% Installed

vmware-esx-netdumper-6.0.0-0.0.2981910.i386.rpm

vCSA firstboot: Progress: 78% Installed

VMware-Postgres-client-jdbc-9.3.9.0-2921310.noarch.rpm

vCSA firstboot: Progress: 80% Installed VMware-mbcs-6.0.0-3545910.x86_64.rpm

vCSA firstboot: Progress: 80% Installed VMware-vpxd-6.0.0-3634794.x86_64.rpm

vCSA firstboot: Progress: 81% Installed

VMware-vpxd-client-6.0.0-3634794.x86_64.rpm

vCSA firstboot: Progress: 83% Installed

VMware-cloudvm-vimtop-6.0.0-3634794.x86_64.rpm

vCSA firstboot: Progress: 85% Installed ipxe-1.0.0-1.3348017.vmw.i686.rpm

vCSA firstboot: Progress: 86% Installed VMware-sps-6.0.0-3634794.x86_64.rpm

vCSA firstboot: Progress: 87% Installed VMware-vdcs-6.0.0-3496935.x86_64.rpm

vCSA firstboot: Progress: 89% Installed vmware-vsm-6.0.0-3634794.x86_64.rpm

vCSA firstboot: Progress: 91% Installed

VMware-perfcharts-6.0.0-3634794.x86_64.rpm

Services installations succeeded.

Configuring services for first time use...

vCSA firstboot: Progress: 3% Starting VMware Authentication Framework...

vCSA firstboot: Progress: 11% Starting VMware Single Sign-On User Creation...

vCSA firstboot: Progress: 15% Starting VMware Component Manager...

vCSA firstboot: Progress: 19% Starting VMware Service Control Agent...

vCSA firstboot: Progress: 23% Starting VMware vAPI Endpoint...

vCSA firstboot: Progress: 26% Starting VMware System and Hardware Health

Manager...

vCSA firstboot: Progress: 30% Starting VMware Appliance Management Service...

vCSA firstboot: Progress: 38% Starting VMware Common Logging Service...

vCSA firstboot: Progress: 42% Starting VMware Postgres...

vCSA firstboot: Progress: 50% Starting VMware Inventory Service...

vCSA firstboot: Progress: 53% Starting VMware Message Bus Configuration

Service...

vCSA firstboot: Progress: 59% Starting VMware vSphere Web Client...

vCSA firstboot: Progress: 60% Starting VMware vSphere Web Client...

vCSA firstboot: Progress: 61% Starting VMware vSphere Web Client...

vCSA firstboot: Progress: 65% Starting VMware ESX Agent Manager...

vCSA firstboot: Progress: 69% Starting VMware vSphere Auto Deploy Waiter...

vCSA firstboot: Progress: 73% Starting VMware vSphere Profile-Driven Storage

Service...

vCSA firstboot: Progress: 76% Starting VMware Content Library Service...

vCSA firstboot: Progress: 80% Starting VMware vCenter Workflow Manager...

vCSA firstboot: Progress: 84% Starting VMware VSAN Health Service...

vCSA firstboot: Progress: 88% Starting VMware vService Manager...

vCSA firstboot: Progress: 92% Starting VMware Performance Charts...

vCSA firstboot: Progress: 96% Starting VMware Performance Charts...

First time configuration succeeded.

vCenter Server Appliance installer finished deploying "vc01".

This appliance is a vCenter Server instance.

    System Name: vc01.godc.lab

    Log in as: Administrator@vsphere.local

Finished successfully.

 

これで、 vSphere Web Client で vCenter にログインできるようになります。

VCSA のデプロイは色々な要因で失敗することが多いので、十分なリソースがない検証環境などでは

vCenter デプロイ前に PSC の VM でスナップショットを取得して、

リトライしやすいようにしておくとよいかもしれません。

 

以上、VCSA を CLI デプロイしてみる話でした。


さよなら vSphere Client、こんにちは HTML5 Web Client、そして vSphere 6.0 GUI の現状について。

$
0
0

これまで、ESXi や vCenter Server に接続するときに愛用されている

Windows アプリケーションの vSphere Client (C# Client と呼ばれたりすることもある)は、

今後の vSphere では本当に提供されないそうです。

Goodbye vSphere Client for Windows (C#) – Hello HTML5 - VMware vSphere Blog

 

vSphere Client は、現在の最新版 vSphere 6.0 以降はなくなります。

ただ、すでに vSphere 5.1 以降は、vSphere Web Client が推奨となり、

vSphere 5.1 以降の vCenter や ESXi の新機能は、基本的に Web Client からしか使用できません。

 

ここで、日常的に vSphere にアクセスしている人ばかりではないと思うので、

現行の最新バージョン vSphere 6.0 で使用できる GUI をまとめておこうと思います。

現状で vCenter と ESXi の操作で使用される GUI は下記の4つです。

  • vSphere Client
  • vSphere Web Client
  • VMware Host Client (ESXi Embedded Host Client)
  • vSphere HTML5 Web Client ※ただし正式サポートはまだ。

 

それぞれ、下記のような感じでアクセスします。

vsphere60-gui.png

仮想アプライアンスの管理画面、SSH、PowerCLI など CLI からのアクセスは省略しています。

 

 

vSphere Client

 

Windows にインストールして使用する、クライアントアプリケーションです。

ESXi と vCenter どちらにも接続できます。

 

このアイコンから起動するソフトウェアです。

vsphere-client-01.png

 

ログイン画面です。説明では「vSphere 5.5 以降で導入された~」 とありますが、

vSphere 5.1 以降の新機能でも、基本的に vSphere Client では使用できません。

vsphere-client-02.png

 

vSphere Client は、ログインするとこのような画面になります。

vsphere-client-03.png

 

vSphere Web Client

 

vSphere 5.1 から提供されるようになった Web UI です。

vCenter に接続でき、ESXi には接続できません。

この Web Client では、Adobe Flash Player が必要です。


Next Generation Client (NGC) と呼ばれたりもします。

これ以前にも Web UI は提供されていましたが、それとは別物です。

 

vSphere 5.1 以降の新機能は、この Web Client からのみ使用可能です。

※たとえば、Cross Host Storage vMotion、Tag、VSAN、コンテンツライブラリなど。

 

Web ブラウザからアクセスします。

ログイン画面は、vCenter の認証サービス「vCenter Single Sign-On」 にリダイレクトされます。

以前のバージョン(~ vSphere 5.5)では TCP 9443 番ポートが使用されていましたが、

vSphere 6.0 からは一般的な HTTPS の TCP 443 番 ポートでアクセス可能になりました。

web-client-01.png

 

vSphere Web Client はこのような画面です。

web-client-02.png

 

VMware Host Client

 

ESXi 6.0 Update 2 から製品サポートれる、ESXi 内蔵の Web UI です。

ESXi に接続できます。ESXi 自身にインストールされているので、vCenter には接続できません。

この Web Client では、Adobe Flash Player が不要です。

 

正式な製品としてサポートされていて、製品マニュアルも公開されています。

VMware Host Client のドキュメント

 

また、「ESXi Embedded Host Client」 という名前で

以前の ESXi でも使用できる インストールモジュール(VIB ファイル)も提供されています。

ただしこちらは正式な製品サポート対象外です。

ESXi Embedded Host Client

 

以前こんな投稿をしてみました。こちらもどうぞ・・・

ESXi Embedded Host Client が公開されました。

ESXi 6.0 U2 で Host Client がデフォルトで使用可能になりました。

 

ログイン画面は、vSphere Web Client と似た雰囲気です。

host-client-01.png


Host Client はこのような画面です。

host-client-02.png

 

vSphere HTML5 Web Client

 

まだ、製品サポート対象外の Technical Preview として Fling で提供されているものです。

vCenter に接続でき、ESXi には接続できません。

この Web Client では、Adobe Flash Player が不要です。


HTML5 Client は、仮想アプライアンスとして提供されています。

vSphere HTML5 Web Client

 

ログイン画面は、vSphere Web Client と同様に、

vCenter Single Sign-On の画面にリダイレクトされます。

html5-client-01.png


HTML5 Web Client はこのような画面になります。

少し前は「参照専用 Web Client」みたいな感じでしたが、頻繁にアップデートされて

急速に vSphere Web Client に近づいている感じがします。

この環境は vCenter 2台の拡張リンクモードなのですが、両方の vCenter がちゃんと表示されています。


ちなみにこの画面は、バージョン 1.16 (仮想アプライアンスは h5ngcVA-1.16.0-4172537_OVF10.ova)を

デプロイしてみたものです。

html5-client-02.png


今後、HTML5 Web Client が正式サポートされるようになれば、Adobe Flash Player が不要になるので

Linux などからでも vSphere 環境が管理しやすくなると思われます。

 

以上、vSphere Client の終了と、現状の主要 GUI についての話でした。


最近の Linux の VMware Tools 事情について。(open-vm-tools が推奨)

$
0
0

最近の Linux Guest OS では、従来の VMware Tools のかわりに

OS ベンダが提供する open-vm-tools をインストールすることが推奨されています。

VMware による open-vm-tools のサポート (2074713) | VMware KB

 

KB にあるように下記のようなバージョンのもので、

具体的には Ubuntu 16.04 LTS や、RHEL 7.2 などこれ以降のものも該当します。

他にも、VMware Photon OS 1.0 も open-vm-tools が推奨になっています。

  • Fedora 19 以降のリリース
  • Debian 7.x 以降のリリース
  • openSUSE 11.x 以降のリリース
  • 最新の Ubuntu リリース(12.04 LTS、13.10 以降)
  • Red Hat Enterprise Linux 7.0 以降のリリース
  • CentOS 7 以降のリリース
  • Oracle Linux 7 以降のリリース
  • SUSE Linux Enterprise 12 以降のリリース

 

そもそもですが、VMware 製品による仮想化環境では

VMware Tools のインストールが、ほとんど必須です。

VMware Tools の概要 (2051284) | VMware KB

 

各 OS に同梱される open-vm-tools は、VMware Tools としての機能はそのまま提供しますが、

OS が持つパッケージ管理機能(たとえば Red Hat 系 Linux の RPM など) で管理されます。

 

こんなイメージで、従来よりも VMware による仮想化レイヤと、その上のレイヤとで

役割分担が簡潔になったのではないかと思います。

open-vm-tools.png

 

VMware Compatibility Guide での VMware Tools の推奨について。

 

VMware Compatibility Guide で、ゲスト OS ごとの 仮想デバイス サポート可否や推奨構成を

VM の推奨設定を調べることができます。

VMware Compatibility Guide - Guest/Host Search

 

VMware Tools についても記載がありますが、

ここでも 最近の Linux では open-vm-tools が推奨されています。

 

私の自宅では Oracle Linux が多いので、

ESXi 6.0 U2 上での Oracle Linux 7 ゲストについての情報を見てみます。

open-vm-tools-vcg-1.png

 

VMware Tools の項目で

「Supported (Recommended)」 と open-vm-tools が VMware から推奨されています。

open-vm-tools-vcg-2.png

 

OS ベンダ提供の open-vm-tools の例。

 

例として、Oracle Linux 7 の open-vm-tools を見てみます。

※RHEL 7 や CentOS 7 も、ほぼ同様です。

[root@sv01 ~]# cat /etc/oracle-release

Oracle Linux Server release 7.2

 

従来の VMware Tools で提供されていたファイルは、だいたい open-vm-tools の RPM で提供されます。

バージョン確認などで よく利用される vmware-toolbox-cmd も含まれています。

※ただし、ファイルによっては複数の RPM に分割されたりすることもあるようです。

[root@sv01 ~]# vmware-toolbox-cmd -v

9.10.2.48224 (build-2822639)

[root@sv01 ~]# which vmware-toolbox-cmd

/usr/bin/vmware-toolbox-cmd

[root@sv01 ~]# rpm -qf /usr/bin/vmware-toolbox-cmd

open-vm-tools-9.10.2-4.0.1.el7.x86_64

 

今回は Oracle Linux の RPM を見ていますが、

RPM の提供元は「Oracle America」 になっています。

[root@sv01 ~]# rpm -qi open-vm-tools | grep Vendor

Vendor      : Oracle America

 

open-vm-tools の RPM には、下記のようなファイルが含まれています。

[root@sv01 ~]# rpm -ql open-vm-tools

/etc/pam.d/vmtoolsd

/etc/udev/rules.d/99-vmware-scsi-timeout.rules

/etc/vmware-tools

/etc/vmware-tools/guestproxy-ssl.conf

/etc/vmware-tools/poweroff-vm-default

/etc/vmware-tools/poweron-vm-default

/etc/vmware-tools/resume-vm-default

/etc/vmware-tools/scripts

/etc/vmware-tools/scripts/vmware

/etc/vmware-tools/scripts/vmware/network

/etc/vmware-tools/statechange.subr

/etc/vmware-tools/suspend-vm-default

/usr/bin/vm-support

/usr/bin/vmtoolsd

/usr/bin/vmware-checkvm

/usr/bin/vmware-guestproxycerttool

/usr/bin/vmware-hgfsclient

/usr/bin/vmware-rpctool

/usr/bin/vmware-toolbox-cmd

/usr/bin/vmware-xferlogs

/usr/lib/systemd/system/vmtoolsd.service

/usr/lib64/libDeployPkg.so.0

/usr/lib64/libDeployPkg.so.0.0.0

/usr/lib64/libguestlib.so.0

/usr/lib64/libguestlib.so.0.0.0

/usr/lib64/libhgfs.so.0

/usr/lib64/libhgfs.so.0.0.0

/usr/lib64/libvmtools.so.0

/usr/lib64/libvmtools.so.0.0.0

/usr/lib64/open-vm-tools

/usr/lib64/open-vm-tools/plugins

/usr/lib64/open-vm-tools/plugins/common

/usr/lib64/open-vm-tools/plugins/common/libhgfsServer.so

/usr/lib64/open-vm-tools/plugins/common/libvix.so

/usr/lib64/open-vm-tools/plugins/vmsvc

/usr/lib64/open-vm-tools/plugins/vmsvc/libdeployPkgPlugin.so

/usr/lib64/open-vm-tools/plugins/vmsvc/libgrabbitmqProxy.so

/usr/lib64/open-vm-tools/plugins/vmsvc/libguestInfo.so

/usr/lib64/open-vm-tools/plugins/vmsvc/libpowerOps.so

/usr/lib64/open-vm-tools/plugins/vmsvc/libtimeSync.so

/usr/lib64/open-vm-tools/plugins/vmsvc/libvmbackup.so

/usr/share/doc/open-vm-tools-9.10.2

/usr/share/doc/open-vm-tools-9.10.2/AUTHORS

/usr/share/doc/open-vm-tools-9.10.2/COPYING

/usr/share/doc/open-vm-tools-9.10.2/ChangeLog

/usr/share/doc/open-vm-tools-9.10.2/NEWS

/usr/share/doc/open-vm-tools-9.10.2/README

/usr/share/open-vm-tools

/usr/share/open-vm-tools/messages

/usr/share/open-vm-tools/messages/de

/usr/share/open-vm-tools/messages/de/toolboxcmd.vmsg

/usr/share/open-vm-tools/messages/de/vmtoolsd.vmsg

/usr/share/open-vm-tools/messages/ja

/usr/share/open-vm-tools/messages/ja/toolboxcmd.vmsg

/usr/share/open-vm-tools/messages/ja/vmtoolsd.vmsg

/usr/share/open-vm-tools/messages/ko

/usr/share/open-vm-tools/messages/ko/toolboxcmd.vmsg

/usr/share/open-vm-tools/messages/ko/vmtoolsd.vmsg

/usr/share/open-vm-tools/messages/zh_CN

/usr/share/open-vm-tools/messages/zh_CN/toolboxcmd.vmsg

 

そして、この RPM は OS ベンダのリポジトリからアップデートできます。

RPM をダウンロードする Yum リポジトリとして、

Oracle の Public Yum サーバを指定して、アップデートしてみます。

 

Yum リポジトリサーバとして、 「public-yum.oracle.com」 から

RPM をダウンロードするように設定してあります。

[root@sv01 ~]# grep -A2 ol7_latest /etc/yum.repos.d/public-yum-ol7.repo

[ol7_latest]

name=Oracle Linux $releasever Latest ($basearch)

baseurl=http://public-yum.oracle.com/repo/OracleLinux/OL7/latest/$basearch/

[root@sv01 ~]# yum repolist

読み込んだプラグイン:ulninfo

リポジトリー ID   リポジトリー名                                            状態

ol7_UEKR3/x86_64  Latest Unbreakable Enterprise Kernel Release 3 for Oracle    462

ol7_latest/x86_64 Oracle Linux 7Server Latest (x86_64)                      14,949

repolist: 15,411

 

Oracle Linux は Red Hat 互換のディストリビューション なので、

下記のように、他の RPM と方法をあわせて yum upgrade コマンドで

open-vm-tools のアップグレードができます。

[root@sv01 ~]# yum upgrade -y open-vm-tools

読み込んだプラグイン:ulninfo

依存性の解決をしています

--> トランザクションの確認を実行しています。

---> パッケージ open-vm-tools.x86_64 0:9.10.2-4.0.1.el7 を 更新

---> パッケージ open-vm-tools.x86_64 0:9.10.2-5.0.1.el7_2 を ア ップデート

--> 依存性解決を終了しました。

 

依存性を解決しました

 

================================================================

Package        アーキテクチャー

                        バージョン            リポジトリー

                                                           容量

================================================================

更新します:

open-vm-tools  x86_64  9.10.2-5.0.1.el7_2    ol7_latest  472 k

 

トランザクションの要約

================================================================

更新  1 パッケージ

 

総ダウンロード容量: 472 k

Downloading packages:

Delta RPMs disabled because /usr/bin/applydeltarpm not installed.

open-vm-tools-9.10.2-5.0.1.el7_2.x86_64.rp | 472 kB   00:00

Running transaction check

Running transaction test

Transaction test succeeded

Running transaction

  更新します              : open-vm-tools-9.10.2-5.0.1.el   1/2

  整理中                  : open-vm-tools-9.10.2-4.0.1.el   2/2

  検証中                  : open-vm-tools-9.10.2-5.0.1.el   1/2

  検証中                  : open-vm-tools-9.10.2-4.0.1.el   2/2

 

更新:

  open-vm-tools.x86_64 0:9.10.2-5.0.1.el7_2

 

完了しました!

[root@sv01 ~]#

 

たとえば、open-vm-tools に何か修正がある場合には、

各 OS ベンダから修正パッケージが提供されます。

例にした Oracle Linux 7 でも、最近だと下記のような修正(RPM の更新)がありました。

ちなみに上記の yum upgrade は、この Errata による更新の RPM で

アップデート インストールしています。

linux.oracle.com | ELBA-2016-1533 - open-vm-tools bug fix update

 

これまでも Operating System Specific Packages (OSP) と呼ばれる、

VMware が提供するパッケージはあったのですが、最近の OS に対しては提供されなくなっています。

こちらは気にせず、OS ベンダの提供する open-vm-tools を使用するとよいと思います。

Operating System Specific Packages Home Page

 

以上、最近の VMware Tools 事情についてでした。

vExpert NSX 2016 受賞しました。

$
0
0

今年から、vExpert NSX 2016 Award というプログラムが新設されました。

vExpert NSX 2016 Award Announcement - VMTN Blog - VMware Blogs

vExpert-NSX-Badge.png

 

NSX 以外の分野についても、今後に発表されるようで、

いくつかの分野において vExpert の中から 100名くらいずつ受賞できるようです。

 

そして、なんとか vExpert NSX を受賞することができました。

ve-nex-2016-gowatana.png

 

これにより、とうとう自宅ラボでも NSX が使用できるようになったので、

これからも独自路線で NSX にとりくんでいきたいと思います。どこかでお役に立てればうれしいです。

 

以上、vExpert NSX 受賞記念の投稿でした。

VMware Host Client で Chrome から ESXi に SSH 接続可能になりました。

$
0
0

ESXi の vSphere Client のかわりに、Web ブラウザからアクセス可能な「Host Client」が提供されるようになっています。

そして、まだ正式な製品として提供されるまえのバージョンも、VMware Flings のサイトで提供されています。

 

過去に、いくつか投稿してみました・・・

さよなら vSphere Client、こんにちは HTML5 Web Client、そして vSphere 6.0 GUI の現状について。

ESXi 6.0 U2 で Host Client がデフォルトで使用可能になりました。

ESXi Embedded Host Client が公開されました。

 

VMware Flings で提供されている最新版の Host Client 「v1.8.1 Build 4355717」では、
なんと Google Chrome から SSH が可能になっています。

ESXi Embedded Host Client

host-clinet-ssh-00.png

 

試しに ESXi 6.0 U2 でアップデート インストールしてみました。

もともとの Host Client (esx-ui) のバージョンは 1.4 です。

[root@hv-i23:~] vmware -vl

VMware ESXi 6.0.0 build-4192238

VMware ESXi 6.0.0 Update 2

[root@hv-i23:~] esxcli software vib get -n esx-ui

VMware_bootbank_esx-ui_1.4.0-3959074

   Name: esx-ui

   Version: 1.4.0-3959074

   Type: bootbank

   Vendor: VMware

   Acceptance Level: VMwareCertified

   Summary: VMware Host Client

   Description: An embedded web UI for ESXi

   ReferenceURLs:

   Creation Date: 2016-06-02

   Depends: esx-version >= 5.0.0

   Conflicts:

   Replaces:

   Provides:

   Maintenance Mode Required: False

   Hardware Platforms Required:

   Live Install Allowed: True

   Live Remove Allowed: True

   Stateless Ready: True

   Overlay: False

   Tags:

   Payloads: esx-ui

 

ESXi のデータストアに、Flings のサイトからダウンロードした VIB ファイル(esxui-signed-4355717.vib)を配置します。

※ちなみに、ESXi では SSH を有効にしています。

[root@hv-i23:~] esxcli software sources vib get -v /vmfs/volumes/ds_nfs_iso239/sw/esxui-signed-4355717.vib

VMware_bootbank_esx-ui_1.8.1-4355717

   Name: esx-ui

   Version: 1.8.1-4355717

   Type: bootbank

   Vendor: VMware

   Acceptance Level: VMwareCertified

   Summary: VMware Host Client

   Description: An embedded web UI for ESXi

   ReferenceURLs:

   Creation Date: 2016-09-07

   Depends: esx-version >= 5.0.0

   Conflicts:

   Replaces:

   Provides:

   Maintenance Mode Required: False

   Hardware Platforms Required:

   Live Install Allowed: True

   Live Remove Allowed: True

   Stateless Ready: True

   Overlay: False

   Tags:

   Payloads: esx-ui

 

アップデート インストールします。

[root@hv-i23:~] esxcli software vib update -v /vmfs/volumes/ds_nfs_iso239/sw/esxui-signed-4355717.vib

''

[root@hv-i23:~] esxcli software vib get -n esx-ui

VMware_bootbank_esx-ui_1.8.1-4355717

   Name: esx-ui

   Version: 1.8.1-4355717

   Type: bootbank

   Vendor: VMware

   Acceptance Level: VMwareCertified

   Summary: VMware Host Client

   Description: An embedded web UI for ESXi

   ReferenceURLs:

   Creation Date: 2016-09-07

   Depends: esx-version >= 5.0.0

   Conflicts:

   Replaces:

   Provides:

   Maintenance Mode Required: False

   Hardware Platforms Required:

   Live Install Allowed: True

   Live Remove Allowed: True

   Stateless Ready: True

   Overlay: False

   Tags:

   Payloads: esx-ui

 

Chrome で、Host Client (httpsで ESXiのアドレス/ui/ ) にアクセスして、root ユーザでログインします。

ログイン直後に自動アップデートの確認画面が出ますが、今のところ最新なので今回はそのままにしています。

ESXi からインターネット接続可能であれば、そもそも Host Client の UI からのバージョンアップも可能です。

host-clinet-ssh-01.png

 

Host Client のバージョンは 1.8.1 になっています。

host-clinet-ssh-02.png

 

ホストの「アクション」 → 「Chrome の SSH を取得します」 をクリック。

host-clinet-ssh-03.png

 

Chrome ウェブストア の「Secure Shell」のページが開くので、「+ CHROME に追加」 します。

host-clinet-ssh-04.png

 

確認画面で「アプリを追加」 します。

host-clinet-ssh-05.png

 

Host Client の画面に戻ると、

ホストの 「アクション」 → 「SSH コンソール」 メニューが表示されているので、クリックします。

host-clinet-ssh-06.png

 

Chrome で、ESXi の SSH コンソールが開きました。

初回アクセスなので、接続確認で「yes」と入力します。

これで、SSH でアクセスできるようになります。

host-clinet-ssh-07.png

 

便利・・・

 

以上、Host Client で Chrome から SSH してみる話でした。

vRealize Network Insight を HoL で体験してみる。

$
0
0

最近、vRealize Network Insight (通称 vRNI) という製品がリリースされました。

これは元々 Arkin 社の製品で、VMware NSX によるネットワーク仮想化環境を可視化することができます。

 

vRealize Network Insight (製品情報)

Software-Defined Networking 向け vRealize Network Insight: VMware

 

製品マニュアルなど

VMware vRealize Network Insight Documentation

 

2016年10月時点の最新版は 3.1 のようです。

VMware vRealize Network Insight 3.1 Release Notes

 

 

いまのところ評価版は提供されていないようですが、

HoL には、すでににラボが用意されていて、動作を試すことができます。

 

VMware Hands-on Labs

http://labs.hol.vmware.com/HOL/catalogs/catalog/123

HOL-1729-SDC-1 - Introduction to vRealize Network Insight

 

ドキュメントは英語のみですが、vRNI にログインして、実際に Web UI を操作することができます。

vrni-hol-01.png

 

HoL ラボの内容も公開されています。

このラボ マニュアルだけでも、ある程度 vRNI でどのようなことができるかわかります。

VMware Hands-on Labs - HOL-1729-SDC-1

 

 

UI の様子について。


vRNI の UI は、可視化機能は強力なのですが、

なかなかオシャレで慣れるまでは目的の画面にたどり着くまで少し時間がかかかりそうな気がしました。

たとえば、ラボの最初に出てくる「Plan Security」画面(下記)ですが、

vrni-hol-02.png


ホーム画面のアイコンから呼び出せて・・・

vrni-hol-04a.png


上記のナビゲーションバーからでも呼び出せますが・・・

vrni-hol-03.png

 

サーチ バーから直接よびだすこともできます。
ちなみに HoL のラボでは、最初からこの方法で画面を表示していました。

しかも、サーチ バーには文字列を入力すると、自動補完が働いて候補が表示されます。

vrni-hol-04.png

 

vRNI の機能は、意外とサーチ バーから一気に表示することができそうなので、

オペレータの人に定期的に特定の画面を見てもらったりする場合にも、使用手順を簡素化できそうに思えました。

 

 

ネットワーク環境の可視化について。

 

これまで NSX 環境の可視化には、vRealize Operations Manager (vROps) の

NSX むけ Management Pack があり、ダッシュボードで論理ネットワーク構成を表示することができました。

しかし vROps では、ポートグループ同士が接続されているだけで機能していない経路

(ルーティングされていなかったり、実際には接続性がないような接続情報)が表示されてしまったり、

複雑な構成だとうまく認識されなかったりといったことが見受けられました。

 

まず、vROps の例です。

下記の vROps は、両端の VM をつなぐ論理パスが複数表示されていますが、

このうち一番上 の直線以外は、実は機能していないパスだったりします。

※そして実際のネットワーク構成とあってなかったりもします。

※これは、わざと変に構成した NSX 環境なので、実環境の vROps ではここまでにはならないと思います。

vrni-hol-05.png

 

以下は、でも画面などでも登場する vRNI の「VM Path Topology」 画面です。

vRNI だと、下記のように論理ネットワーク構成を見ることができます。

vRNI では、オブジェクト同士の接続だけでなく、VLAN 設定や ルーティングテーブルも含む

ネットワーク構成情報からネットワークを可視化しているようです。

vrni-hol-06a.png

 

図中のオブジェクトをクリックすると、そのオブジェクトの情報が分かります。

VXLAN の論理スイッチを表す棒をクリックすると、その論理スイッチの セグメント ID や ネットワークアドレス、

VXLAN の VTEP アドレスやアンダーレイの VLAN ID までまとめて表示されます。

vrni-hol-06b.png

 

上部の矢印ボア端をクリックすると、即座に逆方向のトポロジが描画されます。

vrni-hol-06c.png

 

このように、vSphere Web Client の NSX 管理画面や vROops では表現できなかったネットワーク可視化ができるツールです。

今回は HoL ですが、ぜひうちにもほしい・・・

 

以上、vRNI を HoL で使用してみた感想でした

Linux で PowerCLI Core をためす。(Photon OS)

$
0
0

VMware Flings で、PowerCLI Core が公開されたので、

さっそく、Linux (Photon OS) で実行してみました。

 

PowerCLI Core は、Linux、Mac などマルチプラットフォームで実行できる PowerCLI です。

 

VMware Flings の PowerCLI Core のページ

PowerCLI Core

 

見た目はこんな感じです・・・

powercli-core.png

 

PowerShell のインストール。

 

今回は、VMware Photon OS 1.0 にインストールします。

root@photon-ALW4IArOR [ ~ ]# cat /etc/photon-release

VMware Photon Linux 1.0

PHOTON_BUILD_NUMBER=13c08b6

root@photon-ALW4IArOR [ ~ ]# uname -r

4.4.8-esx

 

キーマップ(日本語の ja106)、ホスト名(今回は photon-pcli) を設定しておきまます。

root@photon-ALW4IArOR [ ~ ]# localectl set-keymap jp106

root@photon-ALW4IArOR [ ~ ]# hostnamectl set-hostname photon-pcli

 

 

tdnf コマンド(yum のかわり) で、RPM を最新化しておきます。
RPM のアップグレードが終わったら、いったん OS を再起動します。

root@photon-ALW4IArOR [ ~ ]# tdnf upgrade -y

root@photon-ALW4IArOR [ ~ ]# reboot

 

PowerShell の Yum リポジトリの設定ファイル(.repo)を配置します。

下記のようなコマンドラインを投入して、 /etc/yum.repos.d/powershell.repo ファイルを作成します。

cat << EOF > /etc/yum.repos.d/powershell.repo

[powershell]

name=PowerShell (x86_64)

baseurl=https://vmware.bintray.com/powershell

gpgcheck=0

enabled=1

skip_if_unavailable=True

EOF

 

実行すると、このような感じになります。

root@photon-pcli [ ~ ]# cat << EOF > /etc/yum.repos.d/powershell.repo

> [powershell]

> name=PowerShell (x86_64)

> baseurl=https://vmware.bintray.com/powershell

> gpgcheck=0

> enabled=1

> skip_if_unavailable=True

> EOF

root@photon-pcli [ ~ ]#

 

あとでファイルの解凍で使用するので、unzip コマンドをインストールしておきます。

root@photon-pcli [ ~ ]# tdnf install -y unzip

 

PowerShell をインストールします。

root@photon-pcli [ ~ ]# tdnf install -y powershell

 

 

Installing:

libicu                          x86_64      50_rc-1              23.92 M

libunwind                      x86_64      1.2-rc1            145.17 k

powershell                      x86_64      6.0.0_alpha.10-1    120.75 M

 

 

Total installed size: 144.82 M

 

 

Downloading:

powershell                            40423534    100%

libunwind                                69686    100%

libicu                                10093052    100%

Testing transaction

Running transaction

 

 

Complete!

root@photon-pcli [ ~ ]#

 

PowerCLI Core のインストール。

 

今回はこのまま root ユーザで進めてしまいます。

Flings サイトからダウンロードしたファイル「PowerCLI_Core.zip」を /root ディレクトリに配置してあります。

root@photon-pcli [ ~ ]# pwd

/root

root@photon-pcli [ ~ ]# ls -l /root/PowerCLI_Core.zip

-rw-r----- 1 root root 10061206 Oct 18 15:59 /root/PowerCLI_Core.zip

 

/root で、ファイルを解凍します。
このあと、PowerCLI.ViCore.4523941.zip と PowerCLI.Vds.4523941.zip をさらに解凍します。

root@photon-pcli [ ~ ]# unzip -d  PowerCLI_Core PowerCLI_Core.zip

Archive:  PowerCLI_Core.zip

  inflating: PowerCLI_Core/Dockerfile

  creating: PowerCLI_Core/__MACOSX/

  inflating: PowerCLI_Core/__MACOSX/._Dockerfile

  inflating: PowerCLI_Core/PowerCLI.Vds.4523941.zip

  inflating: PowerCLI_Core/__MACOSX/._PowerCLI.Vds.4523941.zip

  inflating: PowerCLI_Core/PowerCLI.ViCore.4523941.zip

  inflating: PowerCLI_Core/__MACOSX/._PowerCLI.ViCore.4523941.zip

  inflating: PowerCLI_Core/README.md

  inflating: PowerCLI_Core/__MACOSX/._README.md

  inflating: PowerCLI_Core/Start-PowerCLI.ps1

  inflating: PowerCLI_Core/__MACOSX/._Start-PowerCLI.ps1

root@photon-pcli [ ~ ]# ls

PowerCLI_Core  PowerCLI_Core.zip

 

モジュールの配置するディレクトリを作成し、そこに解凍します。

root@photon-pcli [ ~ ]# mkdir -p ~/.local/share/powershell/Modules

root@photon-pcli [ ~ ]# unzip -d .local/share/powershell/Modules/ PowerCLI_Core/PowerCLI.ViCore.4523941.zip

root@photon-pcli [ ~ ]# unzip -d .local/share/powershell/Modules/ PowerCLI_Core/PowerCLI.Vds.4523941.zip

 

 

PowerShell の起動。

 

PowerShell を起動してみます。

root@photon-pcli [ ~ ]# powershell

PowerShell

Copyright (C) 2016 Microsoft Corporation. All rights reserved.

 

PS /root>

 

PowerShell のバージョンは 6.0 のようです。

PS /root> Get-Host | fl Version

 

 

Version : 6.0.0

 

 

 

PS /root>

 

PowerCLI の起動。

 

PowerCLI を起動してみます。
最初に zip ファイルを展開したディレクトリに含まれる、Start-PowerCLI.ps1 を実行します。

PS /root> ./PowerCLI_Core/Start-PowerCLI.ps1

          Welcome to VMware vSphere PowerCLI!

 

Log in to a vCenter Server or ESX host:              Connect-VIServer

To find out what commands are available, type:      Get-VICommand

Once you've connected, display all virtual machines: Get-VM

 

      Copyright (C) VMware, Inc. All rights reserved.

 

 

PS /root>

 

PowerCLI のバージョンを表示してみます。

PS /root> Get-PowerCLIVersion

 

PowerCLI Version

----------------

  VMware PowerCLI Core 1.0 build 0

---------------

Component Versions

---------------

  VMware vSphere PowerCLI Component 1.21 build 4523941

  VMware VDS PowerCLI Component 1.21 build 4523941

 

 

PS /root>

 

vCenter への接続と、コマンドレットでの情報取得。

 

今回の環境では vCenter にちゃんとした証明書がインストールされていないので、

とりあえず証明書を無視するようにしてしまいます。

PS /root> Set-PowerCLIConfiguration -InvalidCertificateAction Ignore -Confirm:$false

 

vCenter (今回の環境の vCenter  は vc01.godc.lab) に「Connect-VIServer」 で接続してみます。

「administrator@vsphere.local」 ユーザでログインします。

PS /root> Connect-VIServer vc01.godc.lab                                    

Specify Credential

Please specify server credential

User: administrator@vsphere.local

Password for user administrator@vsphere.local: ************


Name                          Port  User

----                          ----  ----

vc01.godc.lab                  443  VSPHERE.LOCAL\Administrator

 

 

PS /root>

 

クラスタの情報を取得してみます。

PS /root> Get-Cluster

 

Name                           HAEnabled  HAFailover DrsEnabled DrsAutomationLe

                                          Level                 vel

----                           ---------  ---------- ---------- ---------------

cluster-ha01                   True       1          False      FullyAutomated

cluster-ha02                   True       1          False      FullyAutomated

cluster-ivy                    False      1          False      FullyAutomated

cluster-vsan01                 True       1          True       FullyAutomated

 

cluster-vsan01 クラスタに含まれる、 ESXi ホストの情報を取得してみます。

PS /root> Get-Cluster cluster-vsan01 | Get-VMHost

 

Name                 ConnectionState PowerState NumCpu CpuUsageMhz CpuTotalMhz

----                 --------------- ---------- ------ ----------- -----------

hv-i21.godc.lab      Connected       PoweredOn       2         887        4606

hv-i22.godc.lab      Connected       PoweredOn       2        1202        4606

hv-i23.godc.lab      Connected       PoweredOn       2         532        4608

 

VM の情報を取得してみます。(photon0? という名前のもの)

PS /root> Get-VM photon0? | Sort-Object Name

 

Name                 PowerState Num CPUs MemoryGB

----                 ---------- -------- --------

photon01             PoweredOff 1        2.000

photon02             PoweredOff 1        2.000

photon03             PoweredOff 1        2.000

photon04             PoweredOff 1        2.000

 

vDS(分散仮想スイッチ) のモジュールも読み込まれているので、vDS の情報を取得してみます。

PS /root> Get-VDSwitch | ft -AutoSize

 

Name  NumPorts Mtu  Version Vendor

----  -------- ---  ------- ------

vds01 243      1600 6.0.0   VMware, Inc.

 

念願の、Linux での PowerCLI が使用できるようになりました。

ただ、Windows のままは使用できないコマンドレット(というかPowerShell のエイリアス) もあったりするようで、

いろいろ実行して特徴をつかみたいと思います。

 

以上。Linux で PowerCLI Core を使用してみる話でした。

Viewing all 495 articles
Browse latest View live


<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>