W3cubDocs

/Ansible

rhevm - RHEV/oVirt automation

New in version 2.2.

Synopsis

Allows you to create/remove/update or powermanage virtual machines on a RHEV/oVirt platform.

Requirements (on host that executes module)

  • ovirtsdk

Options

parameter required default choices comments
boot_order
no [u'network', u'hd']
This option uses complex arguments and is a list of items that specify the bootorder.
cd_drive
no
The CD you wish to have mounted on the VM when state = 'CD'.
cluster
no
The rhev/ovirt cluster in which you want you VM to start.
cpu_share
no 0
This parameter is used to configure the cpu share.
datacenter
no Default
The rhev/ovirt datacenter in which you want you VM to start.
del_prot
no True
This option sets the delete protection checkbox.
disks
no
This option uses complex arguments and is a list of disks with the options name, size and domain.
ifaces
no
This option uses complex arguments and is a list of interfaces with the options name and vlan.
aliases: nics, interfaces
image
no
The template to use for the VM.
insecure_api
no
A boolean switch to make a secure or insecure connection to the server.
mempol
no 1
The minimum amount of memory you wish to reserve for this system.
name
no
The name of the VM.
osver
no rhel_6x64
The operationsystem option in RHEV/oVirt.
port
no 443
The port on which the API is reacheable.
server
no 127.0.0.1
The name/ip of your RHEV-m/oVirt instance.
state
no present
  • ping
  • present
  • absent
  • up
  • down
  • restarted
  • cd
  • info
This serves to create/remove/update or powermanage your VM.
timeout
no
The timeout you wish to define for power actions.
When state = 'up'
When state = 'down'
When state = 'restarted'
type
no server
  • server
  • desktop
  • host
To define if the VM is a server or desktop.
user
no [email protected]
The user to authenticate with.
vm_ha
no True
To make your VM High Available.
vmcpu
no 2
The number of CPUs you want in your VM.
vmhost
no
The host you wish your VM to run on.
vmmem
no 1
The amount of memory you want your VM to use (in GB).

Examples

# basic get info from VM
  action: rhevm
  args:
      name: "demo"
      user: "{{ rhev.admin.name }}"
      password: "{{ rhev.admin.pass }}"
      server: "rhevm01"
      state: "info"

# basic create example from image
  action: rhevm
  args:
      name: "demo"
      user: "{{ rhev.admin.name }}"
      password: "{{ rhev.admin.pass }}"
      server: "rhevm01"
      state: "present"
      image: "centos7_x64"
      cluster: "centos"

# power management
  action: rhevm
  args:
      name: "uptime_server"
      user: "{{ rhev.admin.name }}"
      password: "{{ rhev.admin.pass }}"
      server: "rhevm01"
      cluster: "RH"
      state: "down"
      image: "centos7_x64"
      cluster: "centos

# multi disk, multi nic create example
  action: rhevm
  args:
      name: "server007"
      user: "{{ rhev.admin.name }}"
      password: "{{ rhev.admin.pass }}"
      server: "rhevm01"
      cluster: "RH"
      state: "present"
      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"

# add a CD to the disk cd_drive
  action: rhevm
  args:
    name: 'server007'
    user: "{{ rhev.admin.name }}"
    password: "{{ rhev.admin.pass }}"
    state: 'cd'
    cd_drive: 'rhev-tools-setup.iso'

# new host deployment + host network configuration
  action: rhevm
  args:
    name: "ovirt_node007"
    password: "{{ rhevm.admin.pass }}"
    type: "host"
    state: present
    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'

Return Values

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

name description returned type sample
vm Returns all of the VMs variables and execution. always dict { "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" }

This is an Extras Module

For more information on what this means please read Extras Modules

For help in developing on modules, should you be so inclined, please read Community Information & Contributing, developing_test_pr and Developing Modules.

© 2012–2016 Michael DeHaan
© 2016 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
https://docs.ansible.com/ansible/rhevm_module.html