community.general.rhevm 模块 – RHEV/oVirt 自动化

注意

此模块是 community.general 集合 (版本 10.1.0) 的一部分。

如果您使用的是 ansible 软件包,则您可能已经安装了此集合。它不包含在 ansible-core 中。要检查它是否已安装,请运行 ansible-galaxy collection list

要安装它,请使用: ansible-galaxy collection install community.general。您需要其他要求才能使用此模块,有关详细信息,请参阅 要求

要在剧本中使用它,请指定: community.general.rhevm

概要

  • 此模块仅支持 oVirt/RHEV 版本 3。

  • 较新的模块 ovirt.ovirt.ovirt_vm 支持 oVirt/RHV 版本 4。

  • 允许您在 RHEV/oVirt 平台上创建/删除/更新或电源管理虚拟机。

要求

执行此模块的主机需要以下要求。

  • ovirtsdk

参数

参数

注释

boot_order

列表 / 元素=字符串

此选项使用复杂参数,并且是指定引导顺序的项目列表。

默认值: ["hd", "network"]

cd_drive

字符串

state=cd 时,您希望安装在虚拟机上的 CD。

cluster

字符串

您希望虚拟机在其启动的 RHEV/oVirt 集群。

默认值: ""

cpu_share

整数

此参数用于配置 CPU 份额。

默认值: 0

datacenter

字符串

您希望虚拟机在其启动的 RHEV/oVirt 数据中心。

默认值: "Default"

del_prot

布尔值

此选项设置删除保护复选框。

选项

  • false

  • true ← (默认)

disks

列表 / 元素=字符串

此选项使用复杂参数,并且是具有选项名称、大小和域的磁盘列表。

ifaces

别名:interfaces, nics

列表 / 元素=字符串

此选项使用复杂参数,并且是具有选项名称和 VLAN 的接口列表。

image

字符串

要用于虚拟机的模板。

insecure_api

布尔值

一个布尔开关,用于与服务器建立安全或不安全的连接。

选项

  • false ← (默认)

  • true

mempol

整数

您希望为此系统保留的最小内存量。

默认值: 1

name

字符串

虚拟机的名称。

osver

字符串

RHEV/oVirt 中的操作系统选项。

默认值: "rhel_6x64"

password

字符串 / 必需

用户身份验证的密码。

port

整数

API 可访问的端口。

默认值: 443

server

字符串

您的 RHEV-m/oVirt 实例的名称/IP。

默认值: "127.0.0.1"

state

字符串

这用于创建/删除/更新或电源管理您的虚拟机。

选项

  • "absent"

  • "cd"

  • "down"

  • "info"

  • "ping"

  • "present" ← (默认)

  • "restarted"

  • "up"

timeout

整数

您希望为电源操作定义的超时。

state=up 时。

state=down 时。

state=restarted 时。

类型

字符串

定义虚拟机是服务器还是桌面。

选项

  • “桌面”

  • “主机”

  • "server" ← (默认)

用户

字符串

用于身份验证的用户。

默认: "admin@internal"

vm_ha

布尔值

使您的虚拟机高可用。

选项

  • false

  • true ← (默认)

vmcpu

整数

您希望虚拟机拥有的 CPU 数量。

默认: 2

vmhost

字符串

您希望虚拟机在其上运行的主机。

vmmem

整数

您希望虚拟机使用的内存量(以 GB 为单位)。

默认值: 1

属性

属性

支持

描述

check_mode

支持:不支持

可以在 check_mode 中运行,并在不修改目标的情况下返回更改状态预测。

diff_mode

支持:不支持

在差异模式下,将返回有关已更改内容(或可能需要在 check_mode 中更改的内容)的详细信息。

示例

- name: Basic get info from VM
  community.general.rhevm:
    server: rhevm01
    user: '{{ rhev.admin.name }}'
    password: '{{ rhev.admin.pass }}'
    name: demo
    state: info

- name: Basic create example from image
  community.general.rhevm:
    server: rhevm01
    user: '{{ rhev.admin.name }}'
    password: '{{ rhev.admin.pass }}'
    name: demo
    cluster: centos
    image: centos7_x64
    state: present

- name: Power management
  community.general.rhevm:
    server: rhevm01
    user: '{{ rhev.admin.name }}'
    password: '{{ rhev.admin.pass }}'
    cluster: RH
    name: uptime_server
    image: centos7_x64
    state: down

- name: Multi disk, multi nic create example
  community.general.rhevm:
    server: rhevm01
    user: '{{ rhev.admin.name }}'
    password: '{{ rhev.admin.pass }}'
    cluster: RH
    name: server007
    type: server
    vmcpu: 4
    vmmem: 2
    ifaces:
    - name: eth0
      vlan: vlan2202
    - name: eth1
      vlan: vlan36
    - name: eth2
      vlan: vlan38
    - name: eth3
      vlan: vlan2202
    disks:
    - name: root
      size: 10
      domain: ssd-san
    - name: swap
      size: 10
      domain: 15kiscsi-san
    - name: opt
      size: 10
      domain: 15kiscsi-san
    - name: var
      size: 10
      domain: 10kiscsi-san
    - name: home
      size: 10
      domain: sata-san
    boot_order:
    - network
    - hd
    state: present

- name: Add a CD to the disk cd_drive
  community.general.rhevm:
    user: '{{ rhev.admin.name }}'
    password: '{{ rhev.admin.pass }}'
    name: server007
    cd_drive: rhev-tools-setup.iso
    state: cd

- name: New host deployment + host network configuration
  community.general.rhevm:
    password: '{{ rhevm.admin.pass }}'
    name: ovirt_node007
    type: host
    cluster: rhevm01
    ifaces:
    - name: em1
    - name: em2
    - name: p3p1
      ip: 172.31.224.200
      netmask: 255.255.254.0
    - name: p3p2
      ip: 172.31.225.200
      netmask: 255.255.254.0
    - name: bond0
      bond:
      - em1
      - em2
      network: rhevm
      ip: 172.31.222.200
      netmask: 255.255.255.0
      management: true
    - name: bond0.36
      network: vlan36
      ip: 10.2.36.200
      netmask: 255.255.254.0
      gateway: 10.2.36.254
    - name: bond0.2202
      network: vlan2202
    - name: bond0.38
      network: vlan38
    state: present

返回值

常见的返回值已记录在 此处,以下是此模块独有的字段

描述

vm

字典

返回所有虚拟机的变量和执行情况。

返回:始终

示例: {"boot_order": ["hd", "network"], "changed": true, "changes": ["删除保护"], "cluster": "C1", "cpu_share": "0", "created": false, "datacenter": "Default", "del_prot": true, "disks": [{"domain": "ssd-san", "name": "OS", "size": 40}], "eth0": "00:00:5E:00:53:00", "eth1": "00:00:5E:00:53:01", "eth2": "00:00:5E:00:53:02", "exists": true, "failed": false, "ifaces": [{"name": "eth0", "vlan": "Management"}, {"name": "eth1", "vlan": "Internal"}, {"name": "eth2", "vlan": "External"}], "image": false, "mempol": "0", "msg": ["虚拟机已存在", "cpu_share 已设置为0", "虚拟机高可用性已设置为True", "启动顺序已设置", "虚拟机删除保护已设置为True", "磁盘web2_Disk0_OS已存在", "虚拟机启动主机已设置为host416"], "name": "web2", "type": "server", "uuid": "4ba5a1be-e60b-4368-9533-920f156c817b", "vm_ha": true, "vmcpu": "4", "vmhost": "host416", "vmmem": "16"}

作者

  • Timothy Vandenbrande (@TimothyVandenbrande)