thulium_drake.vmware

VMWare 的 Ansible 工具包

此角色提供多个用于 VMWare 集群的操作,目前具备以下功能:

  • powerstate : 管理虚拟机电源状态
  • provision_guest : 创建/编辑虚拟机和模板(可能有一些限制!)
  • snap : 管理虚拟机快照

此角色可以将所有所需的操作委托给不同的机器,每个目标虚拟机甚至可以使用不同的机器。该机器在此角色中称为“API 主机”。

对于需要在您的环境中查找虚拟机的任务,提供了一个额外的变量,包含有关目标虚拟机的所有信息。这可以让您在快照名称等地方使用 VMWare 属性。该信息可以在“vm_info”变量中找到。

使用方法

此模块需要使用 PyVmomi 和 VMWare SDK,该角色将自行检测并尝试安装所有所需的依赖项。

有关如何手动安装这些依赖项的详细说明,请查看示例设置。

关于在 RHEL 8 上使用的说明

该角色在 RHEL8 上完美运行,但由于 vSphere SDK 所需的 Python 版本,您需要根据 vSphere 的主要版本更改 ansible_python_interpreter。有关检测方法,请参见示例剧本。

  • vSphere 7 SDK 需要 Python 3.3 及以上
  • vSphere 8 SDK 需要 Python 3.8 及以上,这在 RHEL8 上需要自定义的 ansible_python_interpreter

该角色已经为 vSphere 7 准备了支持,但尚未经过测试。

多个 vSphere 集群?没问题!

该剧本配置为使用目标虚拟机的 hostvars 中的 vSphere 凭据和信息。因此,为多个 VMWare 集群配置仅需为特定主机/组定义这些凭据,就像任何其他变量一样。

当 Ansible 运行剧本时,它将查找有关特定目标虚拟机的所有所需信息。需要在 'group_vars' 中定义的每个主机的信息包括:

  • vsphere_api_host
  • vsphere_datacenter
  • vsphere_host
  • vsphere_password
  • vsphere_username

电源状态

支持的状态包括:

  • 使用 VMWare 工具或虚拟电源按钮开启虚拟机
  • 使用 VMWare 工具或虚拟电源按钮关闭虚拟机
  • 使用 VMWare 工具或虚拟电源按钮重新启动/重置虚拟机

该角色不会提示所需的信息,只能通过调用它的剧本提供:

 - hosts: all
   gather_facts: no
   tasks:
   - import_role:
       name: vmware
     vars:
       target_action: "powerstate"
       target_state: "powered-on"
     run_once: yes

必需变量:

  • target_action: 该角色提供的剧本之一
  • target_state: 支持状态列表中的一种状态

快照

支持的操作包括:

  • 创建快照(自动带有日期戳,或使用提供的名称)
  • 删除指定或所有快照
  • 恢复到指定快照,此脚本不会提供选择列表。

该角色不会提示所需的信息,只能通过调用它的剧本提供:

 - hosts: all
   gather_facts: no
   tasks:
   - import_role:
       name: vmware
     vars:
       target_action: "snap"
       target_state: "present"
       target_snapshot_name: ansible_snap_stuff
     run_once: yes

必需变量:

  • target_action: 该角色提供的剧本之一
  • target_state: 支持状态列表中的一种操作

可选变量:

  • target_snapshot_name:
    • 创建快照时:覆盖快照名称
    • 恢复/删除快照时:目标快照以供删除

配置客户机

支持的操作包括:

  • 基于模板或其他虚拟机创建新虚拟机
  • 删除虚拟机
  • 基于虚拟机创建新模板

该角色不会提示所需的任何信息,只能通过调用它的剧本提供。默认的硬件配置文件可在默认目录中找到。

要创建新虚拟机,请按照以下步骤操作:

  • 创建一个变量文件,包含以下信息(有关详细信息,请查看 vmware_guest 模块的文档以及下文):
    • 数据存储
    • 虚拟机文件夹
    • 模板(确保已存在)
    • 硬盘设置和硬盘控制器类型
    • 网络设置
    • RAM 和 CPU 设置
    • 虚拟机硬件版本和 BIOS 类型
  • 在清单中添加新条目
  • 运行剧本,例如:
---
- hosts: new-host.example.com
  gather_facts: no
  tasks:
    - import_role:
        name: vmware
      vars:
        target_action: provision_guest
        target_state: present
        target_esxi_hostname: esxi.example.com
      run_once: yes

必需变量(大部分都有默认值):

  • target_action: 该角色提供的剧本之一
  • target_state: 支持状态列表中的一种操作。
  • target_esxi_hostname / target_esxi_cluster : 虚拟机应运行的主机/集群名称。
  • target_folder : 虚拟机应放置的文件夹
  • target_networks : 带有网络设置的字典。请查看 vmware_guest 文档。
  • target_disks : 带有磁盘布局的字典。请查看 vmware_guest 文档。
  • target_ram : 带有内存设置的字典。请查看 defaults 文件的示例。
  • target_cpu : 带有 CPU 设置的字典。请查看 defaults 文件的示例。
  • target_template: 创建虚拟机的模板,可以是其他虚拟机或模板。

可选变量:

  • target_force : 忽略任何警告或错误。
  • target_scsi : 要使用的磁盘控制器类型。
  • target_boot_firmware: 虚拟机的 BIOS 类型。
  • target_vm_version : 要使用的 VMWare 硬件版本。
  • target_customization : 创建后的虚拟机运行的任何 VMWare 自定义配置。请查看 vmware_guest 文档以获取更多信息。
安装
ansible-galaxy install thulium_drake.vmware
许可证
gpl-3.0
下载
2.2k
拥有者