simplygeekuk.vmware_deploy_vcsa

vmware_deploy_vcsa

从 OVA 部署 VMware vCenter Server Appliance。

可以实现以下配置:

  • 更新 root 账户的有效期或设置为永不过期。
  • 配置 Syslog。
  • 将设备加入 AD 域并配置身份源。
  • 导入 CA 签名证书。
  • 配置 vCenter 一般和统计设置。
  • 启动和停止服务。
  • 分配全局权限。
  • 指定 vCenter 管理员和只读用户。
  • 指定 vCenter 许可证。
  • 创建数据中心。
  • 创建集群并配置 HA、DRS 和 vSAN。
  • 分配 vSAN 许可证(实验性)。
  • 添加 ESXi 主机。
  • 分配 ESXi 许可证。

支持的 VMware vCenter Server

  • VMware vCenter Server Appliance (VCSA) 6.5
  • VMware vCenter Server Appliance (VCSA) 6.7

要求

  • python >= 2.6
  • PyVmomi

角色变量

以下强制参数需在 host_vars 中定义:

网络配置

设置 appliance 的网络配置。

network_ip_address: "x.x.x.x"
network_label: "VM Network"
network_prefix: "xx"
network_gateway: "x.x.x.x"

凭证和访问

设置 appliance 的 SSH 管理员用户名和密码。

vcsa_admin_username: "root"
vcsa_admin_password: "VMwar3!!"

设置 appliance 的 SSO 管理员用户名和密码。

vcsa_sso_username: "[email protected]"
vcsa_sso_password: "VMwar3!!"

设置 Ansible 连接变量(请严格按照示例格式)。

ansible_user: "{{ vcsa_admin_username }}"
ansible_password: "{{ vcsa_admin_password }}"
ansible_host: "{{ network_ip_address }}"

以下强制参数需作为额外变量或在 group_vars 或 host_vars 中定义:

OVA 部署变量

设置 OVA 部署变量。

ova_deployment_hostname: "vcenter/esxi hostname"
ova_deployment_username: "vcenter/esxi username"
ova_deployment_password: "vcenter/esxi password"

设置目标数据存储。数据存储集群不被模块支持。

ova_deployment_datastore: "datastore"

以下参数仅在部署到 vCenter Server 时需要。如果未定义文件夹,appliance 将部署到默认文件夹。

ova_deployment_datacenter: "vcenter datacenter"
ova_deployment_cluster: "vcenter cluster"
ova_deployment_folder: "vcenter folder"

OVA 配置

设置 OVA 文件名。

ova_file: "ova_file.ova"

设置 OVA 文件的本地路径(不要使用前导 /)。

ova_path: "/path/to/ova_file"

DNS 配置

设置应使用的 DNS 域。

dns_domain: "example.com"

提供可用 DNS 服务器的列表。

dns_servers:
  - "x.x.x.x"
  - "x.x.x.x"

以下可选参数可作为额外变量或在 group_vars 或 host_vars 中定义:

OVA 下载配置

如果设置 'ova_source' 为 'http',则设置 OVA 文件的 URL(不要使用前导 /)。'ova_source' 变量默认为 'local',可以被覆盖。

ova_url: "http[s]://example.com/ova"

Root 账户策略

设置 root 账户政策。设置以下变量以覆盖默认值。

vcsa_root_expiration_disable: no
vcsa_root_expiration_days: 90

导入 CA 签名证书

如果希望导入 CA 签名证书,请将 'vcsa_use_signed_certificate' 设置为 'yes'。默认设置为 'no'。

vcsa_use_signed_certificate: no

如果启用这一设置,以下证书是必需的,并应放置在角色的 'files/certs' 文件夹中。

  • 主机证书,文件名为 'hostname.pem'(主机名必须与在清单中设置的相匹配)。PEM 文件必须包含主机证书和 CA 链。
  • 主机证书密钥,文件名为 'hostname.key'(主机名必须与在清单中设置的相匹配)。如果已加密,则必须是未加密文件。
  • CA 根证书,文件名为 'ca.crt'。

Active Directory 域成员资格

设置 appliance 是否应加入 Active Directory 域。默认值为 'no',但可以通过将以下变量设置为 'yes' 来覆盖。

vcsa_join_to_domain: no

当 'vcsa_join_to_domain' 设置为 'yes' 时,设置 Active Directory 成员资格设置。

vcsa_ad_dom_join_domain: "ad.domain.local"
vcsa_ad_dom_join_username: "[email protected]"
vcsa_ad_dom_join_password: "VMwar3!!"

还可以指定创建 AD 计算机对象的 OU。如果希望使用默认容器,则不要设置此参数。

vcsa_ad_dom_join_ou: "CN=Computers,DC=AD,DC=DOMAIN,DC=LOCAL"

应用 vCenter 许可证密钥

设置应应用于 vCenter Server 的 vCenter 许可证密钥。

vcsa_license_key: XXXXX-XXXXX-XXXXX-XXXXX-XXXXX

vCenter 服务

应该启动的服务列表

设置以下变量以列出应启动并设置为自动启动类型的服务。提供的列表仅为示例。

vcsa_services_to_start:
  - updatemgr
  - vsphere-ui
  - content-library
  - vapi-endpoint
应该停止的服务列表

设置以下变量以列出应停止并设置为手动启动类型的服务。提供的列表仅为示例。

vcsa_services_to_stop:
  - rbd
  - imagebuilder

vCenter 权限

定义全局管理员

设置以下变量为应授予 '全局管理员' 权限的组列表。appliance 需要加入 Active Directory 域才能应用这些权限。组将从 appliance 加入的 Active Directory 域中发现。

vcsa_global_admin_groups:
  - "vSphere-Gloabl-Admins"
定义 vCenter 管理员

设置以下变量为应授予 vCenter Server '管理员' 角色的组列表。appliance 需要加入 Active Directory 域才能应用这些权限。组将从 appliance 加入的 Active Directory 域中发现。

vcsa_vcenter_admin_groups:
  - "vSphere-Admins"
定义 vCenter 只读用户

设置以下变量为应授予 vCenter Server '只读' 角色的组列表。appliance 需要加入 Active Directory 域才能应用这些权限。组将从 appliance 加入的 Active Directory 域中发现。

vcsa_vcenter_readonly_groups:
  - "vSphere-ReadOnly"

vCenter 设置

以下变量可用于配置 vCenter 设置。所有显示的值为默认设置。

数据库设置

使用以下变量配置 vCenter 数据库设置。

vcsa_database_max_connections: 50
vcsa_task_cleanup: true
vcsa_task_retention: 30
vcsa_event_cleanup: true
vcsa_event_retention: 30
运行时设置

使用以下变量配置 vCenter 运行时设置。

vcsa_unique_id: 1
用户目录设置

使用以下变量配置 vCenter 用户目录设置。

vcsa_user_directory_timeout: 60
vcsa_user_directory_query_limit: true
vcsa_user_directory_query_limit_size: 5000
vcsa_user_directory_validation: true
vcsa_user_directory_validation_period: 1400
邮件服务器设置

使用以下变量配置 vCenter 邮件设置。

vcsa_mail_server: ""
vcsa_mail_sender: ""
SNMP 接收器设置

使用以下变量配置 vCenter SNMP 接收器设置。

vcsa_snmp_receiver_url: "localhost"
vcsa_snmp_receiver_enabled: true
vcsa_snmp_receiver_port: 162
vcsa_snmp_receiver_community: "public"
超时设置

使用以下变量配置 vCenter 超时设置。

vcsa_normal_operations_timeout: 30
vcsa_long_operations_timeout: 120
日志设置

使用以下变量配置 vCenter 日志设置。

vcsa_logging_level: "info"
统计设置

使用以下变量配置 vCenter 统计设置。

vcsa_interval_past_day_level: 1
vcsa_interval_past_week_level: 1
vcsa_interval_past_month_level: 1
vcsa_interval_past_year_level: 1

清单配置

使用以下变量在 vCenter Server 清单中创建对象,如数据中心、集群和 ESXi 主机。

创建数据中心

设置以下变量以列出应创建的数据中心。提供的列表仅为示例。

vcsa_datacenters:
  - DC1
  - DC2
创建集群

设置以下变量以列出应创建的集群。提供的列表为示例。若不提供集群设置,则使用显示的默认值(根据 'Cluster-02' 示例)。若未提供 'vsan_license_key',将使用默认评估许可证。

vcsa_clusters:
  - name: "Cluster-01"
    datacenter: "DC1"
    enable_ha: yes
    ha_vm_monitoring: "vmMonitoringOnly"
    enable_drs: yes
    drs_vm_behavior: "fullyAutomated"
    enable_vsan: no
    vsan_license_key: XXXXX-XXXXX-XXXXX-XXXXX-XXXXX
    vsan_autoclaim_storage: no
  - name: "Cluster-02"
    datacenter: "DC1"
添加 ESXi 主机

设置以下变量以列出应添加的 ESXi 主机。提供的列表仅为示例。若未提供 'license_key',将使用默认评估许可证。

vcsa_esxi_hosts:
  - hostname: "esxi01.domain.local"
    datacenter: "DC1"
    cluster: "Cluster-01"
    license_key: XXXXX-XXXXX-XXXXX-XXXXX-XXXXX
  - hostname: "esxi02.domain.local"
    datacenter: "DC1"
    cluster: "Cluster-01"

每个 ESXi 主机也可以通过以下 host_vars 变量添加到 Ansible 清单中。这样可以为每个主机设置变量。

esxi_admin_username: "root"
esxi_admin_password: "VMwar3!!"
esxi_license_key: XXXXX-XXXXX-XXXXX-XXXXX-XXXXX

如果希望对所有 ESXi 主机使用全局凭证,则在 group_var 中设置以下凭证变量。

default_esxi_admin_username: "root"
default_esxi_admin_password: "VMwar3!!"

注意,'esxi_admin_username' 和 'esxi_admin_password' 将始终覆盖默认值。

其他默认变量

以下额外默认变量已设置,可以通过在 group_var 中设置来覆盖。

将使用的默认 NTP 服务器列表。

ntp_servers:
  - "0.pool.ntp.org"
  - "1.pool.ntp.org"
  - "2.pool.ntp.org"
  - "3.pool.ntp.org"

HTTP REST API 变量

http_content_type: "application/json"
http_accept: "application/json"
http_validate_certs: no
http_body_format: "json"

连接到 VCSA appliance 时启用证书验证的默认设置。

vcsa_validate_certs: no

依赖项

- { role: simplygeekuk.vmware_deploy_ova, tags: [ 'deploy' ] }

示例 Playbook

```
- hosts: vcsa_appliances
  become: no
  gather_facts: False
  roles:
    - simplygeekuk.vmware_deploy_vcsa
```

许可证

MIT

作者信息

Gavin Stephens (https://www.simplygeek.co.uk)

关于项目

Deploy and configure the vCenter Server Appliance

安装
ansible-galaxy install simplygeekuk.vmware_deploy_vcsa
许可证
mit
下载
94
拥有者