mnecas.ovirt.ovirt_vmpool (1.5.5) — module

Module to manage VM pools in oVirt/RHV

| "added in version" 1.0.0 of mnecas.ovirt"

Authors: Ondra Machacek (@machacekondra), Martin Necas (@mnecas)

Install collection

Install with ansible-galaxy collection install mnecas.ovirt:==1.5.5


Add to requirements.yml

  collections:
    - name: mnecas.ovirt
      version: 1.5.5

Description

Module to manage VM pools in oVirt/RHV.


Requirements

Usage examples

  • Success
    Steampunk Spotter scan finished with no errors, warnings or hints.
# Examples don't contain auth parameter for simplicity,
# look at ovirt_auth module to see how to reuse authentication:

- name: Create VM pool from template
  mnecas.ovirt.ovirt_vmpool:
    cluster: mycluster
    name: myvmpool
    template: rhel7
    vm_count: 2
    prestarted: 2
    vm_per_user: 1
  • Success
    Steampunk Spotter scan finished with no errors, warnings or hints.
- name: Remove vmpool, note that all VMs in pool will be stopped and removed
  mnecas.ovirt.ovirt_vmpool:
    state: absent
    name: myvmpool
  • Success
    Steampunk Spotter scan finished with no errors, warnings or hints.
- name: Change Pool Name
  mnecas.ovirt.ovirt_vmpool:
    id: 00000000-0000-0000-0000-000000000000
    name: "new_pool_name"
  • Success
    Steampunk Spotter scan finished with no errors, warnings or hints.
- name: Create vm pool and override the pool values
  mnecas.ovirt.ovirt_vmpool:
    cluster: mycluster
    name: vmpool
    template: blank
    vm_count: 2
    prestarted: 1
    vm_per_user: 1
    vm:
      memory: 4GiB
      memory_guaranteed: 4GiB
      memory_max: 10GiB
      comment: vncomment
      cloud_init:
        nic_boot_protocol: static
        nic_ip_address: 10.34.60.86
        nic_netmask: 255.255.252.0
        nic_gateway: 10.34.63.254
        nic_name: eth1
        host_name: example.com
        custom_script: |
          write_files:
           - content: |
               Hello, world!
             path: /tmp/greeting.txt
             permissions: '0644'
        user_name: root
        root_password: super_password
      nics:
        - name: nicname
          interface: virtio
          profile_name: network

Inputs

    
id:
    description:
    - ID of the vmpool to manage.
    type: str

vm:
    description:
    - For creating vm pool without editing template.
    - 'Note: You can use C(vm) only for creating vm pool.'
    suboptions:
      cloud_init:
        description:
        - Dictionary with values for Unix-like Virtual Machine initialization using cloud
          init.
        - C(host_name) - Hostname to be set to Virtual Machine when deployed.
        - C(timezone) - Timezone to be set to Virtual Machine when deployed.
        - C(user_name) - Username to be used to set password to Virtual Machine when deployed.
        - C(root_password) - Password to be set for user specified by C(user_name) parameter.
        - C(authorized_ssh_keys) - Use this SSH keys to login to Virtual Machine.
        - C(regenerate_ssh_keys) - If I(True) SSH keys will be regenerated on Virtual
          Machine.
        - C(custom_script) - Cloud-init script which will be executed on Virtual Machine
          when deployed.  This is appended to the end of the cloud-init script generated
          by any other options. For further information, refer to cloud-init User-Data
          documentation.
        - C(dns_servers) - DNS servers to be configured on Virtual Machine, maximum of
          two, space-separated.
        - C(dns_search) - DNS search domains to be configured on Virtual Machine.
        - C(nic_boot_protocol) - Set boot protocol of the network interface of Virtual
          Machine. Can be one of C(none), C(dhcp) or C(static).
        - C(nic_ip_address) - If boot protocol is static, set this IP address to network
          interface of Virtual Machine.
        - C(nic_netmask) - If boot protocol is static, set this netmask to network interface
          of Virtual Machine.
        - C(nic_gateway) - If boot protocol is static, set this gateway to network interface
          of Virtual Machine.
        - C(nic_name) - Set name to network interface of Virtual Machine.
      comment:
        description:
        - Comment of the Virtual Machine.
      memory:
        description:
        - Amount of memory of the Virtual Machine. Prefix uses IEC 60027-2 standard (for
          example 1GiB, 1024MiB).
        - Default value is set by engine.
      memory_guaranteed:
        description:
        - Amount of minimal guaranteed memory of the Virtual Machine. Prefix uses IEC
          60027-2 standard (for example 1GiB, 1024MiB).
        - C(memory_guaranteed) parameter can't be lower than C(memory) parameter.
        - Default value is set by engine.
      memory_max:
        description:
        - Upper bound of virtual machine memory up to which memory hot-plug can be performed.
          Prefix uses IEC 60027-2 standard (for example 1GiB, 1024MiB).
        - Default value is set by engine.
      nics:
        description:
        - List of NICs, which should be attached to Virtual Machine. NIC is described
          by following dictionary.
        - C(name) - Name of the NIC.
        - C(profile_name) - Profile name where NIC should be attached.
        - C(interface) -  Type of the network interface. One of following I(virtio), I(e1000),
          I(rtl8139), default is I(virtio).
        - C(mac_address) - Custom MAC address of the network interface, by default it's
          obtained from MAC pool.
        - NOTE - This parameter is used only when C(state) is I(running) or I(present)
          and is able to only create NICs.
        - To manage NICs of the VM in more depth please use M(mnecas.ovirt.ovirt_nics)
          module instead.
      smartcard_enabled:
        description:
        - If I(true), use smart card authentication.
        type: bool
      sso:
        description:
        - I(True) enable Single Sign On by Guest Agent, I(False) to disable it. By default
          is chosen by oVirt/RHV engine.
        type: bool
      timezone:
        description:
        - Sets time zone offset of the guest hardware clock.
        - For example C(Etc/GMT)
    type: dict

auth:
    description:
    - 'Dictionary with values needed to create HTTP/HTTPS connection to oVirt:'
    required: true
    suboptions:
      ca_file:
        description:
        - A PEM file containing the trusted CA certificates.
        - The certificate presented by the server will be verified using these CA certificates.
        - If C(ca_file) parameter is not set, system wide CA certificate store is used.
        - Default value is set by C(OVIRT_CAFILE) environment variable.
        type: str
      compress:
        default: true
        description: Flag indicating if compression is used for connection.
        type: bool
      headers:
        description:
        - Dictionary of HTTP headers to be added to each API call.
        type: dict
      hostname:
        description:
        - A string containing the hostname of the server, usually something like `I(server.example.com)`.
        - Default value is set by C(OVIRT_HOSTNAME) environment variable.
        - Either C(url) or C(hostname) is required.
        type: str
      insecure:
        default: false
        description:
        - A boolean flag that indicates if the server TLS certificate and host name should
          be checked.
        type: bool
      kerberos:
        description:
        - A boolean flag indicating if Kerberos authentication should be used instead
          of the default basic authentication.
        type: bool
      password:
        description:
        - The password of the user.
        - Default value is set by C(OVIRT_PASSWORD) environment variable.
        required: true
        type: str
      timeout:
        description: Number of seconds to wait for response.
        type: int
      token:
        description:
        - Token to be used instead of login with username/password.
        - Default value is set by C(OVIRT_TOKEN) environment variable.
        type: str
      url:
        description:
        - A string containing the API URL of the server, usually something like `I(https://server.example.com/ovirt-engine/api)`.
        - Default value is set by C(OVIRT_URL) environment variable.
        - Either C(url) or C(hostname) is required.
        type: str
      username:
        description:
        - The name of the user, something like I(admin@internal).
        - Default value is set by C(OVIRT_USERNAME) environment variable.
        required: true
        type: str
    type: dict

name:
    description:
    - Name of the VM pool to manage.
    required: true
    type: str

type:
    choices:
    - manual
    - automatic
    description:
    - Type of the VM pool. Either manual or automatic.
    - C(manual) - The administrator is responsible for explicitly returning the virtual
      machine to the pool. The virtual machine reverts to the original base image after
      the administrator returns it to the pool.
    - C(Automatic) - When the virtual machine is shut down, it automatically reverts to
      its base image and is returned to the virtual machine pool.
    - Default value is set by engine.
    type: str

wait:
    default: true
    description:
    - C(yes) if the module should wait for the entity to get into desired state.
    type: bool

state:
    choices:
    - present
    - absent
    default: present
    description:
    - Should the VM pool be present/absent.
    - Note that when C(state) is I(absent) all VMs in VM pool are stopped and removed.
    type: str

cluster:
    description:
    - Name of the cluster, where VM pool should be created.
    type: str

comment:
    description:
    - Comment of the Virtual Machine pool.
    type: str

timeout:
    default: 180
    description:
    - The amount of time in seconds the module should wait for the instance to get into
      desired state.
    type: int

template:
    description:
    - Name of the template, which will be used to create VM pool.
    type: str

vm_count:
    description:
    - Number of VMs in the pool.
    - Default value is set by engine.
    type: int

prestarted:
    description:
    - Number of pre-started VMs defines the number of VMs in run state, that are waiting
      to be attached to Users.
    - Default value is set by engine.
    type: int

description:
    description:
    - Description of the VM pool.
    type: str

vm_per_user:
    description:
    - Maximum number of VMs a single user can attach to from this pool.
    - Default value is set by engine.
    type: int

fetch_nested:
    default: false
    description:
    - If I(True) the module will fetch additional data from the API.
    - It will fetch IDs of the VMs disks, snapshots, etc. User can configure to fetch
      other attributes of the nested entities by specifying C(nested_attributes).
    type: bool

poll_interval:
    default: 3
    description:
    - Number of the seconds the module waits until another poll request on entity status
      is sent.
    type: int

nested_attributes:
    description:
    - Specifies list of the attributes which should be fetched from the API.
    - This parameter apply only when C(fetch_nested) is I(true).
    elements: str
    type: list

Outputs

id:
  description: ID of the VM pool which is managed
  returned: On success if VM pool is found.
  sample: 7de90f31-222c-436c-a1ca-7e655bd5b60c
  type: str
vm_pool:
  description: 'Dictionary of all the VM pool attributes. VM pool attributes can be
    found on your oVirt/RHV instance at following url: http://ovirt.github.io/ovirt-engine-api-model/master/#types/vm_pool.'
  returned: On success if VM pool is found.
  type: dict