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)