# rhevm – RHEV/oVirt automation

- Synopsis
- Requirements
- Parameters
- Examples
- Return Values
- Status

## Synopsis

- This module only supports oVirt/RHEV version 3.
- A newer module ovirt_vm supports oVirt/RHV version 4.
- Allows you to create/remove/update or powermanage virtual machines on a RHEV/oVirt platform.

## Requirements

The below requirements are needed on the host that executes this module.

- ovirtsdk

## Parameters

Parameter | Choices/Defaults | Comments
--- | --- | ---
boot_order list | Default: ["hd", "network"] | This option uses complex arguments and is a list of items that specify the bootorder.
cd_drive string |  | The CD you wish to have mounted on the VM when state = 'CD'.
cluster string |  | The RHEV/oVirt cluster in which you want you VM to start.
cpu_share integer | Default: 0 | This parameter is used to configure the CPU share.
datacenter string | Default: "Default" | The RHEV/oVirt datacenter in which you want you VM to start.

del_prot
boolean

Choices:
- no
- yes ←

This option sets the delete protection checkbox.

disks list |  | This option uses complex arguments and is a list of disks with the options name, size and domain.
ifaces list |  | This option uses complex arguments and is a list of interfaces with the options name and vlan. aliases: interfaces, nics
image string |  | The template to use for the VM.

insecure_api
boolean

Choices:
- no ←
- yes

A boolean switch to make a secure or insecure connection to the server.

mempol integer | Default: 1 | The minimum amount of memory you wish to reserve for this system.
name string |  | The name of the VM.
osver string | Default: "rhel_6x64" | The operating system option in RHEV/oVirt.
password string |  | The password for user authentication.
port integer | Default: 443 | The port on which the API is reachable.
server string | Default: "127.0.0.1" | The name/IP of your RHEV-m/oVirt instance.

state
string

Choices:
- absent
- cd
- down
- info
- ping
- present ←
- restarted
- up

This serves to create/remove/update or powermanage your VM.

timeout integer |  | The timeout you wish to define for power actions. When state = 'up'. When state = 'down'. When state = 'restarted'.

type
string

Choices:
- desktop
- host
- server ←

To define if the VM is a server or desktop.

user string | Default: "admin@internal" | The user to authenticate with.

vm_ha
boolean

Choices:
- no
- yes ←

To make your VM High Available.

vmcpu integer | Default: 2 | The number of CPUs you want in your VM.
vmhost string |  | The host you wish your VM to run on.
vmmem integer | Default: 1 | The amount of memory you want your VM to use (in GB).

## Examples

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

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

    - name: Power management
      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
      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
      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
      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: yes
        - 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

## Return Values

Common return values are documented here, the following are the fields unique to this module:

Key | Returned | Description
--- | --- | ---

vm
dictionary

always

Returns all of the VMs variables and execution.
Sample:
{ "boot_order": [ "hd", "network" ], "changed": true, "changes": [ "Delete Protection" ], "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": [ "VM exists", "cpu_share was already set to 0", "VM high availability was already set to True", "The boot order has already been set", "VM delete protection has been set to True", "Disk web2_Disk0_OS already exists", "The VM starting host was already set to host416" ], "name": "web2", "type": "server", "uuid": "4ba5a1be-e60b-4368-9533-920f156c817b", "vm_ha": true, "vmcpu": "4", "vmhost": "host416", "vmmem": "16" }

## Status

- This module is not guaranteed to have a backwards compatible interface. [preview]
- This module is maintained by the Ansible Community. [community]

### Authors

- Timothy Vandenbrande (@TimothyVandenbrande)

Hint

If you notice any issues in this documentation, you can edit this document to improve it.