2021年4月20日火曜日

vCenter Server ApplianceをCLIベースのvcsa-deployを使って自動インストールする

vCenter Server Appliance (vCSA) は、通常はGUIを使って対話式にインストールを行うが、あらかじめ設定を記載したファイルを読み込ませることによって自動的にインストールを行うCLIベースのインストーラ「vcsa-deploy」が用意されている。

本記事では、実際にvCSAをvcsa-deployを使ってインストールしてみたので、その手順を記載する。なおvcsa-deployは、Windows版とLinuxの両方が用意されているが、今回はWindows版のvcsa-deploy.exeを利用したインストール手順を説明する。

環境

今回の環境では、まず「組み込みPSCのvCSA」を1台構築する。その後、2台目のvCSAも「組み込みPSCのvCSA」で構築するが、拡張リンクモードによる構成とし、1台目のvCSA構築時に作成したvCenter Single Sign-Onドメインに所属させる構成とする。

ESXi及びvCSAのバージョンは以下となる。

  • ESXi : 6.7 Update 3
  • vCSA : 6.7 Update 3b

1台目のvCSAを構築する手順

1. vCSAのサイズを確認

vCSAは管理対象のESXiサーバや仮想マシンの台数に応じて、仮想マシンのサイズを変更することができる。選択可能なサイズは、--supported-deployment-sizesオプションを付けてvcsa-deploy.exeを実行することで確認することができる。

PS C:\> cd E:\vcsa-cli-installer\win32
PS E:\vcsa-cli-installer\win32> .\vcsa-deploy.exe --supported-deployment-sizes
Information about deployment sizes:
Options                     vCPUs Memory(GB) Storage(GB) Hosts(up to) VMs(up to)
--------------------------------------------------------------------------------
tiny                        2     10         300         10           100
tiny-lstorage               2     10         825         10           100
tiny-xlstorage              2     10         1700        10           100
small                       4     16         340         100          1000
small-lstorage              4     16         870         100          1000
small-xlstorage             4     16         1750        100          1000
medium                      8     24         525         400          4000
medium-lstorage             8     24         1025        400          4000
medium-xlstorage            8     24         1905        400          4000
large                       16    32         740         1000         10000
large-lstorage              16    32         1090        1000         10000
large-xlstorage             16    32         1970        1000         10000
xlarge                      24    48         1180        2000         35000
xlarge-lstorage             24    48         1230        2000         35000
xlarge-xlstorage            24    48         2110        2000         35000
management-tiny             2     10         300         10           100
management-tiny-lstorage    2     10         825         10           100
management-tiny-xlstorage   2     10         1700        10           100
management-small            4     16         340         100          1000
management-small-lstorage   4     16         870         100          1000
management-small-xlstorage  4     16         1750        100          1000
management-medium           8     24         525         400          4000
management-medium-lstorage  8     24         1025        400          4000
management-medium-xlstorage 8     24         1905        400          4000
management-large            16    32         740         1000         10000
management-large-lstorage   16    32         1090        1000         10000
management-large-xlstorage  16    32         1970        1000         10000
management-xlarge           24    48         1180        2000         35000
management-xlarge-lstorage  24    48         1230        2000         35000
management-xlarge-xlstorage 24    48         2110        2000         35000
infrastructure              2     4          60          None         None

今回は検証目的となるため、最小サイズとなるtinyを選択する。

2. 設定情報を記述したjsonファイルを作成

vcsa-deploy.exeに読み込ませるファイルは、json形式で記述する。一から作るとなると骨が折れるが、ありがたいことにテンプレートが用意されているので、これを利用するとそこまで苦労せずに作成をすることができる。

テンプレートはドライブ名:\vcsa-cli-installer\templates\installに存在する。

テンプレートの種類は以下となる。

テンプレート名 デプロイ先 vCenter Single Sign-Onドメイン 用途
embedded_vCSA_on_ESXi.json ESXi 新規 組み込みPSCのvCneter Serverをインストール
embedded_vCSA_on_VC.json ESXi(vCenter管理) 新規 組み込みPSCのvCneter Serverをインストール
embedded_vCSA_replication_on_ESXi.json ESXi 既存のドメインに接続 組み込みPSCのvCneter Serverをインストール
embedded_vCSA_replication_on_VC.json ESXi(vCenter管理) 既存のドメインに接続 組み込みPSCのvCneter Serverをインストール
PSC_first_instance_on_ESXi.json ESXi 新規 PSCのみインストール
PSC_first_instance_on_VC.json ESXi(vCenter管理) 新規 PSCのみインストール
PSC_replication_on_ESXi.json ESXi 既存のドメインに接続 PSCのみインストール
PSC_replication_on_VC.json ESXi(vCenter管理) 既存のドメインに接続 PSCのみインストール
vCSA_on_ESXi.json ESXi 既存のドメインに接続 vCenter Serverのみインストール
vCSA_on_VC.json ESXi(vCenter管理) 既存のドメインに接続 vCenter Serverのみインストール

新規の「組み込みPSCのvCSA」を構築する場合は、embedded_vCSA_on_ESXi.jsonを利用する。主な設定内容は以下の通りとなる。

設定項目 設定内容
deployment_network vCSAが接続する標準仮想スイッチのポートグループ名を指定する。
datastore vCSAの仮想マシンを保存するデータストア名を指定する。
deployment_option vCSAのサイズを指定する。
ssh_enable vCSAのSSH接続可否を設定する。デフォルトfalseだが調査等で必要となることが多いのでtrueに変更する。
ceip_enabled CEIPを有効にする特別な必要がなければfalseに変更する。

実際の記載内容は以下の通り。

{
    "__version": "2.13.0",
    "__comments": "Sample template to deploy a vCenter Server Appliance with an embedded Platform Services Controller on an ESXi host.",
    "new_vcsa": {
        "esxi": {
            "hostname": "<デプロイ先のESXiのIPアドレス>",
            "username": "root",
            "password": "<rootのパスワード>",
            "deployment_network": "VM Network",
            "datastore": "datastore1"
        },
        "appliance": {
            "__comments": [
                "You must provide the 'deployment_option' key with a value, which will affect the VCSA's configuration parameters, such as the VCSA's number of vCPUs, the memory size, the storage size, and the maximum numbers of ESXi hosts and VMs which can be managed. For a list of acceptable values, run the supported deployment sizes help, i.e. vcsa-deploy --supported-deployment-sizes"
            ],
            "thin_disk_mode": true,
            "deployment_option": "tiny",
            "name": "t1160vcsa"
        },
        "network": {
            "ip_family": "ipv4",
            "mode": "static",
            "ip": "<vCSAのIPアドレス>",
            "dns_servers": [
                "<DNS#1のIPアドレス>", "<DNS#2のIPアドレス>"
            ],
            "prefix": "<vCSAのIPアドレスのプレフィックス長>",
            "gateway": "<vCSAのデフォルトゲートウェイ>",
            "system_name": "<vCSAのFQDN>"
        },
        "os": {
            "password": "<vCSAのrootのパスワード>",
            "ntp_servers": "<NTPサーバのIPアドレス>",
            "ssh_enable": true
        },
        "sso": {
            "password": "<Administrator@vsphere.localのパスワード>",
            "domain_name": "vsphere.local"
        }
    },
    "ceip": {
        "description": {
            "__comments": [
                "++++VMware Customer Experience Improvement Program (CEIP)++++",
                "VMware's Customer Experience Improvement Program (CEIP) ",
                "provides VMware with information that enables VMware to ",
                "improve its products and services, to fix problems, ",
                "and to advise you on how best to deploy and use our ",
                "products. As part of CEIP, VMware collects technical ",
                "information about your organization's use of VMware ",
                "products and services on a regular basis in association ",
                "with your organization's VMware license key(s). This ",
                "information does not personally identify any individual. ",
                "",
                "Additional information regarding the data collected ",
                "through CEIP and the purposes for which it is used by ",
                "VMware is set forth in the Trust & Assurance Center at ",
                "http://www.vmware.com/trustvmware/ceip.html . If you ",
                "prefer not to participate in VMware's CEIP for this ",
                "product, you should disable CEIP by setting ",
                "'ceip_enabled': false. You may join or leave VMware's ",
                "CEIP for this product at any time. Please confirm your ",
                "acknowledgement by passing in the parameter ",
                "--acknowledge-ceip in the command line.",
                "++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++"
            ]
        },
        "settings": {
            "ceip_enabled": false
        }
    }
}

3. jsonファイルの検証

jsonファイルを作成したら、いよいよvcsa-deploy.exeを使ってデプロイを開始するのだが、事前にjsonファイルが問題なく使用できることの検証を行うため、--verify-template-onlyオプションを付けて実行する。

以下は特に問題ないパターンとなり、この場合はエラーメッセージ等が表示されない。

PS E:\vcsa-cli-installer\win32> .\vcsa-deploy.exe install --verify-template-only C:\work\embedded_vCSA_on_ESXi.json
Run the installer with "-v" or "--verbose" to log detailed information
Updating log file location, copying 'C:\Users\admin\AppData\Local\Temp\2\vcsaCliInstaller-2021-04-17-06-42-9_zd5v3_\vcsa-cli-installer.log' to desired location as a backup: 'C:\Users\admin\AppData\Local\Temp\2\vcsaCliInstaller-2021-04-17-06-42-9_zd5v3_\workflow_1618641760183\vcsa-cli-installer.log.bak'
Workflow log-dir
C:\Users\admin\AppData\Local\Temp\2\vcsaCliInstaller-2021-04-17-06-42-9_zd5v3_\workflow_1618641760183
====== [START] Start executing Task: To validate CLI options at 06:42:40 ======
Command line arguments verfied.

~(中略)~

Template verification completed.
=================================== 06:42:41 ===================================
Result and Log File Information...
WorkFlow log directory:
C:\Users\admin\AppData\Local\Temp\2\vcsaCliInstaller-2021-04-17-06-42-9_zd5v3_\workflow_1618641760183

以下は問題があるパターンとなり、[FAILED]というエラーメッセージが表示されることが確認できる。この場合は、メッセージを確認し、jsonファイルを修正する。
※今回の場合は、IPアドレス表記が192.168.11.170aとなっていることが問題となるので、正しいIPアドレス表記に修正すればよい。

PS E:\vcsa-cli-installer\win32> .\vcsa-deploy.exe install --verify-template-only C:\work\embedded_vCSA_replication_on_ESXi.json
Run the installer with "-v" or "--verbose" to log detailed information

~(中略)~

The value '192.168.11.170a' of the key 'ip' in section 'new_vcsa', subsection
'network' is invalid. Correct the value and rerun the script.
================ [FAILED] Task: StructureValidationTask: Executing Template
Structure Validation task execution failed at 01:43:52 ================
================================================================================
Error message: Template structure validation failed for template
C:\work\embedded_vCSA_replication_on_ESXi.json.
=================================== 01:43:52 ===================================
Result and Log File Information...
WorkFlow log directory:
C:\Users\admin\AppData\Local\Temp\2\vcsaCliInstaller-2021-04-18-01-43-p6b7cz36\workflow_1618710232162

4. vCSAの自動デプロイ

検証が終わったらvcsa-deploy.exeを実行する。この際に、以下のようにライセンス規約への合意を行う--accept-eulaオプションと、ESXiなどのSSL証明書の検証をスキップする--no-ssl-certificate-verificationを付与する。

.\vcsa-deploy.exe install --accept-eula --no-ssl-certificate-verification [jsonファイルのフルパス]

以下が実際の実行結果となる。処理内容が分かりやすくなるよう、▼箇所でコメントを記載した。

PS E:\vcsa-cli-installer\win32> .\vcsa-deploy.exe install --accept-eula --no-ssl-certificate-verification C:\work\embedded_vCSA_on_ESXi.json
Run the installer with "-v" or "--verbose" to log detailed information
~(中略)~

▼jsonファイルの検証
====== [START] Start executing Task: To validate CLI options at 06:46:18 ======
Command line arguments verfied.
~(中略)~

▼デプロイ前のチェック (ESXiの確認やvCSAに割り当てるIPアドレス・FQDNのPingによる未使用確認等)
====== [START] Start executing Task: Perform precheck tasks. at 06:46:20 ======

▼OVF ToolにてvCSAのデプロイ
 [START] Start executing Task: Invoke OVF Tool to deploy VCSA for installation,
upgrade, and migration at 06:46:36
OVF Tool: Opening OVA source:
E:\vcsa-cli-installer\win32\..\..\vcsa\VMware-vCenter-Server-Appliance-6.7.0.42000-15132721_OVF10.ova
OVF Tool:  The manifest does not validate
OVF Tool:  Opening VI target: vi://root@192.168.11.161:443/
OVF Tool:  Deploying to VI: vi://root@192.168.11.161:443/
OVF Tool: Disk progress: 99%
OVF Tool: Transfer Completed

▼デプロイ後のvCSAのパワーオン
OVF Tool:  Powering on VM: t1160vcsa
OVF Tool: Task progress: 0%
OVF Tool: Task Completed
OVF Tool:  Waiting for IP address...
OVF Tool: Received IP address: 192.168.11.160
OVF Tool:  Completed successfully
~(中略)~

▼vCSAデプロイ後のRPMインストール
==========VCSA Deployment Progress Report==========         Task: Install
required RPMs for the appliance.(SUCCEEDED 100/100)       - Task has completed
successfully.         Task: Run firstboot scripts.(RUNNING 0/100)     -
VCSA Deployment is still running
~(中略)~

▼デプロイ完了
Start Time:
2021-04-17T06:48:17.405Z VCSA Deployment End Time: 2021-04-17T06:55:56.287Z
 [SUCCEEDED] Successfully executed Task 'MonitorDeploymentTask: Monitoring
Deployment' in TaskFlow 'embedded_vCSA_on_ESXi' at 06:56:07
Monitoring VCSA Deploy task completed
 [START] Start executing Task: Provide the login information about new
appliance. at 06:56:08
    Appliance Name: t1160vcsa
    System Name: t1160vcsa.intrat.local
    System IP: 192.168.11.160
    Log in as: Administrator@vsphere.local
 [SUCCEEDED] Successfully executed Task 'ApplianceLoginSummaryTask: Provide
appliance login information.' in TaskFlow 'embedded_vCSA_on_ESXi' at 06:56:08
=================================== 06:56:08 ===================================
Result and Log File Information...
WorkFlow log directory:
C:\Users\admin\AppData\Local\Temp\2\vcsaCliInstaller-2021-04-17-06-46-vypjg9ix\workflow_1618641978161

5. vCSAへのログイン確認

最後にデプロイ後のvCSAにログインできることを確認する。以下の通り問題なくログインすることが確認できた。

2台目のvCSAを拡張リンクモードで構築する手順

1. vCSAのサイズを確認

1台目と同様にvCSAのサイズを確認する。今回は検証用となるため、tinyとする。

2. 設定情報を記述したjsonファイルを作成

「組み込みPSCのvCSA」を拡張リンクモードで構築する場合は、C:\work\embedded_vCSA_replication_on_ESXi.jsonを利用する。主な設定内容は以下の通りとなる。★箇所だけがvCSA新規構築時との差異となる。

設定項目 設定内容
deployment_network vCSAが接続する標準仮想スイッチのポートグループ名を指定する。
datastore vCSAの仮想マシンを保存するデータストア名を指定する。
deployment_option vCSAのサイズを指定する。
ssh_enable vCSAのSSH接続可否を設定する。デフォルトfalseだが調査等で必要となることが多いのでtrueに変更する。
first_instance 拡張リンクモードとして既存ドメインに参加する場合は、falseで設定する。
replication_partner_hostname 参加対象のドメインを持つPSC (1台目に構築したvCSA) のFQDNを指定する。
sso_port 通常は443を指定する。
ceip_enabled CEIPを有効にする特別な必要がなければfalseに変更する。

実際の記載内容は以下の通り。

{
    "__version": "2.13.0",
    "__comments": "Sample template to deploy a vCenter Server Appliance with an embedded Platform Services Controller on an ESXi host.",
    "new_vcsa": {
        "esxi": {
            "hostname": "<デプロイ先のESXiのIPアドレス>",
            "username": "root",
            "password": "<rootのパスワード>",
            "deployment_network": "VM Network",
            "datastore": "datastore1"
        },
        "appliance": {
            "__comments": [
                "You must provide the 'deployment_option' key with a value, which will affect the VCSA's configuration parameters, such as the VCSA's number of vCPUs, the memory size, the storage size, and the maximum numbers of ESXi hosts and VMs which can be managed. For a list of acceptable values, run the supported deployment sizes help, i.e. vcsa-deploy --supported-deployment-sizes"
            ],
            "thin_disk_mode": true,
            "deployment_option": "tiny",
            "name": "t1170vcsa"
        },
        "network": {
            "ip_family": "ipv4",
            "mode": "static",
            "ip": "<vCSAのIPアドレス>",
            "dns_servers": [
                "<DNS#1のIPアドレス>", "<DNS#2のIPアドレス>"
            ],
            "prefix": "<vCSAのIPアドレスのプレフィックス長>",
            "gateway": "<vCSAのデフォルトゲートウェイ>",
            "system_name": "<vCSAのFQDN>"
        },
        "os": {
            "password": "<vCSAのrootのパスワード>",
            "ntp_servers": "<NTPサーバのIPアドレス>",
            "ssh_enable": true
        },
        "sso": {
            "password": "<Administrator@vsphere.localのパスワード>",
            "domain_name": "vsphere.local",
            "first_instance": false,
            "replication_partner_hostname": "t1170vcsa.intrat.local",
            "sso_port": 443
        }
    },
    "ceip": {
        "description": {
            "__comments": [
                "++++VMware Customer Experience Improvement Program (CEIP)++++",
                "VMware's Customer Experience Improvement Program (CEIP) ",
                "provides VMware with information that enables VMware to ",
                "improve its products and services, to fix problems, ",
                "and to advise you on how best to deploy and use our ",
                "products. As part of CEIP, VMware collects technical ",
                "information about your organization's use of VMware ",
                "products and services on a regular basis in association ",
                "with your organization's VMware license key(s). This ",
                "information does not personally identify any individual. ",
                "",
                "Additional information regarding the data collected ",
                "through CEIP and the purposes for which it is used by ",
                "VMware is set forth in the Trust & Assurance Center at ",
                "http://www.vmware.com/trustvmware/ceip.html . If you ",
                "prefer not to participate in VMware's CEIP for this ",
                "product, you should disable CEIP by setting ",
                "'ceip_enabled': false. You may join or leave VMware's ",
                "CEIP for this product at any time. Please confirm your ",
                "acknowledgement by passing in the parameter ",
                "--acknowledge-ceip in the command line.",
                "++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++"
            ]
        },
        "settings": {
            "ceip_enabled": false
        }
    }
}

3. jsonファイルの検証

事前にjsonファイルが問題なく使用できることの検証を行うため、--verify-template-onlyオプションを付けて実行する。

[FAILED]といったエラーメッセージが表示されないことを確認すること。

PS C:\> cd E:\vcsa-cli-installer\win32
PS E:\vcsa-cli-installer\win32> .\vcsa-deploy.exe install --verify-template-only C:\work\embedded_vCSA_replication_on_ESXi.json
Run the installer with "-v" or "--verbose" to log detailed information
Updating log file location, copying 'C:\Users\admin\AppData\Local\Temp\2\vcsaCliInstaller-2021-04-17-21-37-gtde353a\vcsa-cli-installer.log' to desired location as a backup: 'C:\Users\admin\AppData\Local\Temp\2\vcsaCliInstaller-2021-04-17-21-37-gtde353a\workflow_1618695433862\vcsa-cli-installer.log.bak'
Workflow log-dir
C:\Users\admin\AppData\Local\Temp\2\vcsaCliInstaller-2021-04-17-21-37-gtde353a\workflow_1618695433862
====== [START] Start executing Task: To validate CLI options at 21:37:13 ======
Command line arguments verfied.

~(中略)~

Template verification completed.
=================================== 21:37:14 ===================================
Result and Log File Information...
WorkFlow log directory:
C:\Users\admin\AppData\Local\Temp\2\vcsaCliInstaller-2021-04-17-21-37-gtde353a\workflow_1618695433862

4. vCSAの自動デプロイ

検証が終わったらvcsa-deploy.exeを実行する。この際に、以下のようにライセンス規約への合意を行う--accept-eulaオプションと、ESXiなどのSSL証明書の検証をスキップする--no-ssl-certificate-verificationを付与する。

.\vcsa-deploy.exe install --accept-eula --no-ssl-certificate-verification [jsonファイルのフルパス]

以下が実際の実行結果となる。処理内容が分かりやすくなるよう、▼箇所でコメントを記載した。

PS E:\vcsa-cli-installer\win32> .\vcsa-deploy.exe install --accept-eula --no-ssl-certificate-verification C:\work\embedded_vCSA_replication_on_ESXi.json
Run the installer with "-v" or "--verbose" to log detailed information
~(中略)~

▼jsonファイルの検証
====== [START] Start executing Task: To validate CLI options at 21:38:45 ======
~(中略)~

▼デプロイ前のチェック (ESXiの確認やvCSAに割り当てるIPアドレス・FQDNのPingによる未使用確認等)
====== [START] Start executing Task: Perform precheck tasks. at 21:38:47 ======
~(中略)~

▼OVF ToolにてvCSAのデプロイ
 [START] Start executing Task: Invoke OVF Tool to deploy VCSA for installation,
upgrade, and migration at 21:39:03
OVF Tool: Opening OVA source:
E:\vcsa-cli-installer\win32\..\..\vcsa\VMware-vCenter-Server-Appliance-6.7.0.42000-15132721_OVF10.ova
OVF Tool:  The manifest does not validate
OVF Tool:  Opening VI target: vi://root@192.168.11.171:443/
OVF Tool:  Deploying to VI: vi://root@192.168.11.171:443/
OVF Tool: Disk progress: 99%
OVF Tool: Transfer Completed

▼デプロイ後のvCSAのパワーオン
OVF Tool:  Powering on VM: t1170vcsa
OVF Tool: Task progress: 0%
OVF Tool: Task Completed
OVF Tool:  Waiting for IP address...
OVF Tool: Received IP address: 192.168.11.170
OVF Tool:  Completed successfully
~(中略)~

▼vCSAデプロイ後のRPMインストール
==========VCSA Deployment Progress Report==========         Task: Install
required RPMs for the appliance.(SUCCEEDED 100/100)       - Task has completed
successfully.         Task: Run firstboot scripts.(RUNNING 2/100)     - Starting
VMware Authentication Framework...
VCSA Deployment is still running
~(中略)~

▼デプロイ完了
 Start Time:
2021-04-17T21:41:09.182Z VCSA Deployment End Time: 2021-04-17T21:52:25.400Z
 [SUCCEEDED] Successfully executed Task 'MonitorDeploymentTask: Monitoring
Deployment' in TaskFlow 'embedded_vCSA_replication_on_ESXi' at 21:52:29
Monitoring VCSA Deploy task completed
 [START] Start executing Task: Provide the login information about new
appliance. at 21:52:29
    Appliance Name: t1170vcsa
    System Name: t1170vcsa.intrat.local
    System IP: 192.168.11.170
    Log in as: Administrator@vsphere.local
 [SUCCEEDED] Successfully executed Task 'ApplianceLoginSummaryTask: Provide
appliance login information.' in TaskFlow 'embedded_vCSA_replication_on_ESXi' at
21:52:29
=================================== 21:52:30 ===================================
Result and Log File Information...
WorkFlow log directory:
C:\Users\admin\AppData\Local\Temp\2\vcsaCliInstaller-2021-04-17-21-38-1n2q7uh2\workflow_1618695525214

5. vCSAへのログイン確認

最後にデプロイ後のvCSAにログインできることを確認する。以下の通り問題なくログインすることが確認できた。

また、拡張リンクモードも問題なく構成されていることを確認することができた。

以上でCLIベースによるvCSAのインストールは完了となる。一度jsonファイルを作っておけば、次回vCSAを構築する際にもそのまま流用することができるため、検証目的などでvCSAを何度も構築する用途などにおいては非常に効率的で有用な手順となる。

参考

0 件のコメント:

コメントを投稿

人気の投稿