vCenter Server Appliance 安装(CLI)
2 简介
- vCenter Server Appliance 是基于 Linux 的预配置虚拟机,针对运行 vCenter Server 及关联服务进行了优化。
- vCenter Server Appliance 缩短了
vCenter Server及关联服务的部署时间,并提供了一种低成本方案用于替代基于 Windows 的 vCenter Server 安装。 - vCenter Server Appliance 软件包包含以下软件:
- Project Photon OS® 1.0
- Platform Services Controller 基础架构服务组
- vCenter Server 服务组
- PostgreSQL
- VMware vSphere Update Manager 扩展
- vCenter Server Appliance 版本 6.5 上部署了虚拟硬件版本 10,此虚拟硬件版本在 ESXi 中支持每个虚拟机具有 64 个虚拟 CPU。
- vCenter Server Appliance 使用 嵌入式 PostgreSQL 数据库,该数据库最多可扩展至 2,000 个主机和 35,000 个虚拟机。在部署期间,可以选择适合 vSphere 环境大小的 vCenter Server Appliance 大小以及满足数据库要求的存储大小。
- 从 vSphere 6.5 开始,vCenter Server 将使用 VMware vSphere Update Manager 扩展服务。
- vSphere 集中式自动修补程序和版本管理不再需要
Windows 上的外部 VMware Update Manager 实例。 - 有关 vCenter Server 和 Platform Services Controller 服务的信息,请参见vCenter Server 组件和服务。
- 从 vSphere 6.5 开始,vCenter Server Appliance 支持高可用性。有关在 vCenter High Availability 群集中配置 vCenter Server Appliance 的信息,请参见vSphere 可用性。
- 从 vSphere 6.5 开始,vCenter Server Appliance 和 Platform Services Controller 设备支持基于文件的备份和还原。
- 有关备份和还原的信息,请参见vCenter Server Appliance 的基于文件的备份和还原。
- 有关 vCenter Server Appliance 最高配置的信息,请参见《最高配置》文档。
2.1 vCenter Server 和 Platform Services Controller 部署类型
部署类型 | 描述 |
---|---|
具有嵌入式 Platform Services Controller 部署的 vCenter Server | 与 Platform Services Controller 捆绑在一起的所有服务与 vCenter Server 服务一起部署在同一虚拟机或物理服务器上。 |
Platform Services Controller | 只有与 Platform Services Controller 捆绑在一起的服务会部署在虚拟机或物理服务器上。 |
具有外部 Platform Services Controller 的 vCenter Server(需要外部 Platform Services Controller) |
只有 vCenter Server 服务会部署在虚拟机或物理服务器上。 必须向之前部署或安装的 Platform Services Controller 实例注册此类 vCenter Server 实例。 |
!vCenter Server Appliance 安装程序包含 GUI 和 CLI 部署的可执行文件,您可以交替地使用这些文件。
- GUI 部署过程分为两个阶段。
- 段是部署向导,该向导将在目标 ESXi 主机或 vCenter Server 实例上部署该设备的 OVA 文件。
- OVA 部署完成后,您应继续执行该过程的第二阶段,以设置并启动新部署设备的服务。
2.2 部署 vCSA 和 PSC
- vCSA 是 vCenter Server Appliance 的缩写;PSC 是 Platform Services Controller 的缩写
- 可以使用 GUI 安装程序以交互方式部署具有嵌入式 Platform Services Controller 部署的 vCenter Server Appliance。必须从位于要部署设备的网络中的 Windows、Linux 或 Mac 计算机执行 GUI 部署。
- 也可以使用 CLI 安装程序以静默方式在 ESXi 主机或 vCenter Server 实例上部署 vCenter Server Appliance 或 Platform Services Controller 设备
! 对于具有外部 Platform Services Controller 实例的拓扑,必须按顺序部署复制的 Platform Services Controller 实例。成功部署域中的所有 Platform Services Controller 实例后,您可以针对指向共同的外部 Platform Services Controller 实例的多个 vCenter Server Appliance 执行并行部署。
2.3 将 OVA 文件部署为具有嵌入式 PSC 部署的 vCSA
- 在部署过程的第 1 阶段,在 vCenter Server Appliance 安装程序中的 OVF 文件部署为具有嵌入式 Platform Services Controller 部署的 vCenter Server Appliance
2.3.1 为 CLI 部署准备 JSON 配置文件
- 运行 CLI 安装程序部署 vCenter Server Appliance 或 Platform Services Controller 设备之前,必须提供包含部署规范的配置参数及其值的 JSON 文件。
- vCenter Server Appliance 安装映像,包含所有部署类型的 JSON 模板
2.4 vCenter Server Appliance 和 Platform Services Controller 设备的 CLI 部署的 JSON 模板
- vCenter Server Appliance 安装程序包含 JSON 模板,这些模板位于 vcsa-cli-installer/templates 目录中。
- 在 install 子文件夹中,可以找到八个 JSON 模板,这些模板包含所有部署类型的最少配置参数。
2.4.1 JSON 部署配置参数
- 为 CLI 部署准备 JSON 配置文件时,必须设置参数和值,提供部署,下面仅对本次用户的参数做说明,具体详细配置参数,请参见 部署配置参数
配置域 | 配置参数 | 可接受的参数值 | 说明 |
---|---|---|---|
esxi | 连接配置 | ||
hostname | IP/FQDN | 用户登入 ESXi 主机的IP地址或者FQDN | |
username | root | 用于登入 ESXi 主机的用户名,此用户必须具有 root 权限 | |
password | 密码 | 用于登入 ESXi 主机的 root 用户密码 | |
deployment_network | ESXi 网络端口组 | 用于将 vCSA 设备部署在目标 ESXi 主机上的网络端口组中 | |
datastore | ESXi 主机的存储 | 用户将 vCSA 设备部署在目标 ESXi 主机上指定的存储设备中 | |
appliance | 配置 vCSA 设备 | ||
thin_disk_mode | true | false | 精简模式 : 指定是否将 vCSA 设备部署成磁盘精简模式 | |
deployment_option | tiny | small | medium | large | 部署大小:tiny small medium large,分别为 微、小、中、大 | |
name | vCSA 设备名称 | 用于为 vCenter Server Appliance 设备命名 | |
network | 配置 vCSA 网络 | ||
ip_family | IPv4 | IPv6 | 指为 vCSA 配置的IP地址类型,可以是IPv4或者IPv6 | |
mode | static | dhcp | 指为 vCSA 配置的IP地址模式,可以静态地址,或者动态DHCP | |
ip | IP Address | 指为 vCSA 配置的静态IP地址 | |
dns_servers | IP Address | 指为 vCSA 配置的 DNS 服务器地址 | |
prefix | 255.255.255.0 | 24 | 32 | 128 | 指为 vCSA 配置的 子网掩码 | |
gateway | IP Address | 指为 vCSA 配置的 网关地址 | |
system_name | System Name | FQDN | 指为 vCSA 配置的主机名称,在没有DNS服务器时可以使用IP地址,否则建议使用 FQDN | |
os | 设置 vCSA 用户名和密码 | ||
password | 密码 | 指为 vCSA root 用户设定登入密码 | |
ntp_servers | IP Address | FQDN | 指为 vCSA 设置 NTP 时钟同步 | |
ssh_enable | true | false | 指为 vCSA 配置是否启用 SSH 登入,建议在生产环境中禁用 SSH 登入,需要登入SSH才零时开启 | |
sso vCSA | 的配置单点登入域 | ||
password | 密码 | 配置 vCenter 的单点登入域 Single sign-on domain | |
domain_name | Domain | 配置 vCenter 的单点登入域 ,需要说明的是用一个网络中,不能存有相同的 域名名称 | |
ceip | 客户体检计划 | ||
ceip_enable | true | false | 是否启用 VMware 的客户体验计划 |
2.5 vCenter Server Appliance 安装程序中包含的部署 JSON 模板
位置 | 模板名称 | 描述 |
---|---|---|
vcsa-cli-installer/templates/install | embedded_vCSA_on_ESXi.json | 在 ESXi 主机上部署嵌入式 Platform Services Controller 的和 vCenter Server Appliance |
embedded_vCSA_on_VC.json | 在 vCenter Server 实例上部署嵌入式 Platform Services Controller 的和 vCenter Server Appliance | |
embedded_vCSA_replication_on_ESXi.json | 在 ESXi 主机上部署具有嵌入式的 Platform Services Controller 作为另一个嵌入式 vCenter Server Appliance 复制合作伙伴的 vCenter Server Appliance |
|
embedded_vCSA_replication_on_VC.json | 在 vCenter Server 实例上部署具有嵌入式的 Platform Services Controller 作为另一个嵌入式 vCenter Server Appliance 复制合作伙伴的 vCenter Server Appliance |
|
PSC_first_instance_on_ESXi.json | 在 ESXi 主机上将 Platform Services Controller 设备部署为新的 vCenter Single Sign-On 域中的第一个实例 |
|
PSC_first_instance_on_VC.json | 在 vCenter Server 实例上将 Platform Services Controller 设备部署为新的 vCenter Single Sign-On 域中的第一个实例 |
|
PSC_replication_on_ESXi.json | 在 ESXi 主机上部署将加入现有 vCenter Single Sign-On 域的 Platform Services Controller 设备所需的最少配置参数 | |
PSC_replication_on_VC.json | 在 vCenter Server 实例上部署将加入现有 vCenter Single Sign-On 域的 Platform Services Controller 设备所需的最少配置参数。 | |
vCSA_on_ESXi.json | 在 ESXi 主机上部署具有外部 Platform Services Controller 的 vCenter Server Appliance | |
vCSA_on_VC.json | 在 vCenter Server 实例上部署具有外部 Platform Services Controller 的 vCenter Server Appliance |
2.3 同步 vSphere 时钟
- 验证 vSphere 网络上所有组件的时钟是否均已同步。如果 vSphere 网络中的计算机上的时钟不同步,则可能无法在网络计算机之间的通信中将对时间敏感的 SSL 证书 识别为有效。
- 未同步的时钟可能会导致身份验证问题,从而使安装失败或使 vCenter Server Appliance vpxd 服务无法启动。
- 验证运行 vCenter Server 的任何 Windows 主机是否与网络时间协议 (Network Time Protocol, NTP) 服务器同步。请参见 知识库文章。
3 实例部署
3.1 部署 NTP 服务器
-
NTP 是网络时间协议 (Network Time Protocol),用于同步网络中所有计算设备的时间的协议。
在企业中,NTP 服务器充当着尤为重要的角色,一个合格的 IT 架构,NTP服务器是不可或缺的。服务器需要不断的与 NTP服务器 时间的同步,从而保证服务器时间不会出现错误,或者时间不一致的情况出现。
在 IT 架构中,如果 服务器或者NTP 时间的错误,将会导致各个服务器与服务器之间时间不同步,常见的就是导致服务器事件、日志、之间的时间点错误。而对于 数据库,或者密集型应用,又或是负载均衡,乃至群集 都需要使用 NTP 服务器来同步各个服务器之间的时钟,因为时钟一旦错误又或者不一致,将导致系统业务错误,甚至严重时将导致 业务系统 宕掉,乃至数据错乱,甚至损坏。由此可见 NTP 在企业,或者数据中心中的重要性。
VMware 的产品同样而言严重依赖 NTP,如果各个 ESXi 主机间的时间不一致,将会导致 vSphere 的 HA 出现警告,然后事件、任务的时间点错误。甚至 HA 无法正常工作
!一些程序会对系统时间突然的巨大变化做出较差的反应。因此,仅按照以下所述(一些 ntpd 的首选)更新和重新启动 ntpd 将会使系统时钟更新缓慢。
3.1.1
部署 NTP 时间服务器,先决条件配置
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
setenforce 0 sed -i -e 's@^SELINUX=enforcing@SELINUX=disabled@' /etc/selinux/config # 禁用 SELinux timedatectl set-time 2019-02-25 timedatectl set-time 12:39:00 # 设置本地时间 timedatectl set-ntp true # 启用 NTP 同步 timedatectl set-local-rtc true # 设置 本地时间 同步到 硬件时钟 # 或者 date -s 2019-02-25 date -s 12:39:00 clock --systohc hwclock --systohc # 将当前 NTP 服务器的系统时间,同步到硬件的时间 hwclock # 显示当前硬件时钟 timedatectl # 显示系统所有时钟 |
3.1.2
安装并设置 NTPD
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
yum install ntp -y # 安装 ntp 服务 cp /etc/ntp.conf /etc/ntp.conf.bak.`date +%Y%m%d` # 使用以下命令创建 /etc/ntp.conf 的备份副本 nmcli connection delete virbr0 # 删除虚拟网卡链接 # 插入指定IP地址,NTP权限设置,不能修改服务端时间,不提供trap这个远程事件 IP=`routel |grep host |grep -v '127.0.0' | awk 'NR==1{ print }' | awk '{ print $1 }'` sed -i -e '/^# the administrative functions./a\restrict '$IP' nomodify notrap' /etc/ntp.conf # 删除匹配行和之后三行 sed -i '/^server 0/,+3d' /etc/ntp.conf # 设置NTP服务器使用 127.127.1.0 主板BIOS上的时钟为时间源,并且使用 prefer(优先)权限 sed -i -e '/^# Please consider joining the pool/a\fudge 127.127.1.0 stratum 10' /etc/ntp.conf sed -i -e '/^# Please consider joining the pool/a\server 127.127.1.0 iburst prefer' /etc/ntp.conf systemctl enable ntpd && systemctl restart ntpd # 开启 NTPD 服务 firewall-cmd --add-service=ntp --permanent && firewall-cmd --add-service=ntp # 开放防火墙的 NTP |
3.2 部署 DNS 服务器
3.2.1
安装和配置 Unbound DNS 服务器配置。 本次部署采用全 Linux 平台,因此 DNS 服务器使用了 Linux 上一个微型的 DNS 软件 Unbound
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
# 插入指定IP地址,NTP权限设置,不能修改服务端时间,不提供trap这个远程事件 IP=`routel |grep host |grep -v '127.0.0' | awk 'NR==1{ print }' | awk '{ print $1 }'` sed -i -e '/^# the administrative functions./a\restrict '$IP' nomodify notrap' /etc/ntp.conf yum install unbound # 安装 unbound # 直接使用 sed 配置 unbound 的配置文件 # 指定监听的接口地址 sed -i '42a\ interface: 127.0.0.1' /etc/unbound/unbound.conf sed -i '43a\ interface: '$IP'' /etc/unbound/unbound.conf # 指定监听的 端口 条目 sed -i -e '/^[ \t]# port: 53/a\ \tport: 53' /etc/unbound/unbound.conf # 指定允许访问此 DNS 的子网 sed -i -e '186a\ access-control: 0.0.0.0/0 allow' /etc/unbound/unbound.conf # 指定运行此 unbound 服务的用户,清空账户,使用系统默认的账户 sed -i -e '/^[ \t]username: "unbound"/s#.*$# \tusername: ""#' /etc/unbound/unbound.conf |
3.2.2
验证 ‘unbound.conf‘ 配置文件
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 |
# 使用 sed 配置的文件应该与如下所示相同 server: verbosity: 1 interface: 127.0.0.1 interface: 172.16.18.250 port: 53 access-control: 0.0.0.0/0 allow chroot: "" username: "" directory: "/etc/unbound" pidfile: "/var/run/unbound/unbound.pid" trusted-keys-file: /etc/unbound/keys.d/*.key auto-trust-anchor-file: "/var/lib/unbound/root.key" include: /etc/unbound/local.d/*.conf ipsecmod-hook: "/usr/libexec/ipsec/_unbound-hook" python: remote-control: control-enable: yes server-key-file: "/etc/unbound/unbound_server.key" server-cert-file: "/etc/unbound/unbound_server.pem" control-key-file: "/etc/unbound/unbound_control.key" control-cert-file: "/etc/unbound/unbound_control.pem" include: /etc/unbound/conf.d/*.conf |
3.2.3
创建自定义的 DNS A 记录解析文件
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 |
# 'block-em.com.conf' 创建自定义解析文件 cat > /etc/unbound/local.d/block-em.com.conf <<EOF # 本地域配置如下 /etc/unbound/local.d/block-em.com.conf # entries in this file override toe global DNS # # Example blocking email going out to example.com # # local-data: "example.com. 3600 IN MX 5 127.0.0.1" # local-data: "example.com. 3600 IN A 127.0.0.1" local-zone: "em.local." static local-data: "em.local. MX 5 mail.local.com." local-data: "em.local. NS dns.local.com." local-data: "em.local. IN SOA dns.em.local roo.em.local. 1000 1000 500 4000 86400" local-data: "em.local. A $IP" local-data: "$HOSTNAME. A $IP" local-data: "$HOSTNAME.em.local. A $IP" local-data: "ESXi-01. A 172.16.18.11" local-data: "ESXi-02. A 172.16.18.12" local-data: "ESXi-03. A 172.16.18.13" local-data: "ESXi-04. A 172.16.18.14" local-data: "vCSA. A 172.16.18.20" local-data: "ESXi-01.em.local. A 172.16.18.11" local-data: "ESXi-02.em.local. A 172.16.18.12" local-data: "ESXi-03.em.local. A 172.16.18.13" local-data: "ESXi-04.em.local. A 172.16.18.14" local-data: "vCSA.em.local. A 172.16.18.20" EOF |
3.2.4
启动 unbound 服务,以及 开放防火墙
1 2 3 4 5 6 7 8 |
unbound-checkconf # 检测 unbound 配置是否出错 systemctl enable unbound && systemctl restart unbound # 将 unbound 服务做开启启动,并启动服务 firewall-cmd --add-service=dns && firewall-cmd --add-service=dns --permanent # 开放 DNS 服务 firewall-cmd --add-port=53/{tcp,udp} && firewall-cmd --permanent --add-port=53/{tcp,udp} # 开放 53 的{tcp,udp}端口协议 |
3.3 部署具有嵌入式的 vCenter Server Appliance 和 Platform Services Controller
3.3.1
挂载 vCSA 安装映像
1 2 3 4 5 6 7 |
# 挂载 VMware-VCSA 映像 mount /dev/sr0 /mnt/ # 将模板文件复制到当前用户的家目录下 cp /mnt/vcsa-cli-installer/templates/install/embedded_vCSA_on_ESXi.json ~ |
3.3.2
编辑 vCenter Server Appliance(vCSA) 的部署模板文件
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 |
# 备注此模板为 js 格式的 JSON 文件,符号 (__comments 代表注释) cat > ~/embedded_vCSA_on_ESXi.json <<EOF { "__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-01.em.local", "__comments01": "# 指定将 vCSA 部署在目标 ESXi 主机的 FQDN 或者 IP地址", "username": "root", "__comments02": "# 指定目标 ESXi 主机的用户", "password": "VMware1!", "__comments03": "# 指定目标 ESXi 主机的密码", "deployment_network": "VM Network", "__comments04": "# 指定将 vCSA 部署在目标 ESXi 主机上的网络交换机,默认: VM Network", "datastore": "datastore1" }, "__comments05": "# 指定将 vCSA 部署在目标 ESXi 主机存储上,默认为:datastore1", "appliance": { "thin_disk_mode": true, "__comments06": "# 指定在部署 vCSA 时是否使用磁盘精简模式", "deployment_option": "Medium", "__comments07": "# 指定部署 vCSA 所使用的预定义配置硬件级别", "name": "vCSA" }, "__comments08": "# 指定 vCSA 的主机名称", "network": { "ip_family": "ipv4", "__comments09": "# 指定 vCSA 所使用的IP地址家族", "mode": "static", "__comments10": "# 指定 vCSA 静态地址", "ip": "172.16.18.20", "__comments11": "# 指定 vCSA 的IP地址", "dns_servers": [ "172.16.18.250" ], "__comments12": "# 指定 vCSA 的DNS", "prefix": "24", "__comments13": "# 指定 vCSA 的子网掩码地址", "gateway": "172.16.18.254", "__comments14": "# 指定 vCSA 的网关地址", "system_name": "vCSA.em.local" }, "__comments15": "# 指定 vCSA 的 FQDN", "os": { "password": "Admin@123", "__comments16": "# 指定 vCSA 主机的密码", "ntp_servers": "time.nist.gov", "__comments17": "# 指定 vCSA 的NTP服务器地址", "ssh_enable": true }, "__comments18": "# 指定是否启用 vCSA 的SSH服务", "sso": { "password": "Admin@123", "__comments19": "# 单点登入域(Single Sign On)的密码", "domain_name": "vsphere.local" } }, "__comments20": "# 单点登入域(Single Sign On)域名", "ceip": { "description": { }, "settings": { "ceip_enabled": false } } } EOF |
3.3.3
开始使用配置好的模板文件安装
1 2 3 4 5 6 7 8 9 10 11 12 |
# 开始安装 vCenter Server Appliance /mnt/vcsa-cli-installer/lin64/vcsa-deploy install -v --accept-eula --no-ssl-certificate-verification ./embedded_vCSA_on_ESXi.json # 配置参数解析说明 # install 安装 # -v 安装时显示详细的安装过程 # --accept-eula 安装时接受最终用户许可协议 # --no-ssl-certificate-verification 跳过 ESXi 连接的 SSL 验证 # 有关 CLI 部署命令的语法 请参阅 # https://docs.vmware.com/cn/VMware-vSphere/6.7/com.vmware.vcenter.install.doc/GUID-15F4F48B-44D9-4E3C-B9CF-5FFC71515F71.html |
3.3.4
配置 VMware vCenter Server Appliance 的 NTP
3.3.4.1 通过 GUI 配置
-
配置 vCSA 的时区,将时区改为 Asia/ShangHai
- 打开 https://vCSA(FQDN):5480 → 输入vCSA的管理账户 root → 输入 vCSA 的登入密码
- → Time → EDIT → Time Zone → 选择指定的时区: Asia/Shanghai → SAVE
-
配置 vCSA 的 NTP 同步
- → Time → Time synchronization → EDIT → 在Mode选项中:选择 → NTP
- → 在Time servers输入框中,输入指定的 NTP 服务器地址 → SAVE
3.3.4.2 通过 CLI 配置
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
# -----A 改变 vCSA 的默认时区 # 1. 进入 shell 模式 shell # 2. 改变 vCSA 的默认时区 timedatectl set-timezone Asia/Shanghai # 或者使用老旧方法 ls -al /etc/localtime # 可以看到 vCSA 的默认时区软连接到 UTC lrwxrwxrwx 1 root root 23 Feb 26 01:46 /etc/localtime -> /usr/share/zoneinfo/UTC rm -f /etc/localtime # 删除软链接的默认时区 ln -s /usr/share/zoneinfo/Asia/Shanghai /etc/localtime # 将 Asia/Shanghai 的时区软链接 # -----B 将 vCSA 的时间同步模式,改为 NTP 模式 # 退出 shell 模式,进入 vCSA 的管理模式 exit timesync.set --mode 'NTP' # -----C 设置 NTP 服务器的地址,或者 FQDN ntp.set --servers 172.16.18.251 |