ovirt_storage_domains - Module to manage storage domains in oVirt/RHV

New in version 2.3.

Synopsis

  • Module to manage storage domains in oVirt/RHV

Requirements (on host that executes module)

  • python >= 2.7
  • ovirt-engine-sdk-python >= 4.0.0

Options

parameter required default choices comments
auth
yes
Dictionary with values needed to create HTTP/HTTPS connection to oVirt:
username[required] - The name of the user, something like admin@internal. Default value is set by OVIRT_USERNAME environment variable.
password[required] - The password of the user. Default value is set by OVIRT_PASSWORD environment variable.
url[required] - A string containing the base URL of the server, usually something like `https://server.example.com/ovirt-engine/api`. Default value is set by OVIRT_URL environment variable.
token - Token to be used instead of login with username/password. Default value is set by OVIRT_TOKEN environment variable.
insecure - A boolean flag that indicates if the server TLS certificate and host name should be checked.
ca_file - A PEM file containing the trusted CA certificates. The certificate presented by the server will be verified using these CA certificates. If `ca_file` parameter is not set, system wide CA certificate store is used. Default value is set by OVIRT_CAFILE environment variable.
kerberos - A boolean flag indicating if Kerberos authentication should be used instead of the default basic authentication.
headers - Dictionary of HTTP headers to be added to each API call.
comment
no
Comment of the storage domain.
data_center
no
Data center name where storage domain should be attached.
This parameter isn't idempotent, it's not possible to change data center of storage domain.
description
no
Description of the storage domain.
destroy
no
Logical remove of the storage domain. If true retains the storage domain's data for import.
This parameter is relevant only when state is absent.
domain_function
no data
  • data
  • iso
  • export
Function of the storage domain.
This parameter isn't idempotent, it's not possible to change domain function of storage domain.
aliases: type
fcp
no
Dictionary with values for fibre channel storage type:
address - Address of the fibre channel storage server.
port - Port of the fibre channel storage server.
lun_id - LUN id.
Note that these parameters are not idempotent.
fetch_nested
(added in 2.3)
no
If 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 nested_attributes.
format
no
If True storage domain will be formatted after removing it from oVirt/RHV.
This parameter is relevant only when state is absent.
glusterfs
no
Dictionary with values for GlusterFS storage type:
address - Address of the Gluster server. E.g.: myserver.mydomain.com
path - Path of the mount point. E.g.: /path/to/my/data
mount_options - Option which will be passed when mounting storage.
Note that these parameters are not idempotent.
host
no
Host to be used to mount storage.
id
(added in 2.4)
no
Id of the storage domain to be imported.
iscsi
no
Dictionary with values for iSCSI storage type:
address - Address of the iSCSI storage server.
port - Port of the iSCSI storage server.
target - The target IQN for the storage device.
lun_id - LUN id(s).
username - A CHAP user name for logging into a target.
password - A CHAP password for logging into a target.
override_luns - If True ISCSI storage domain luns will be overridden before adding.
Note that these parameters are not idempotent.
localfs
(added in 2.4)
no
Dictionary with values for localfs storage type:
path - Path of the mount point. E.g.: /path/to/my/data
Note that these parameters are not idempotent.
name
no
Name of the storage domain to manage. (Not required when state is imported)
nested_attributes
(added in 2.3)
no
Specifies list of the attributes which should be fetched from the API.
This parameter apply only when fetch_nested is true.
nfs
no
Dictionary with values for NFS storage type:
address - Address of the NFS server. E.g.: myserver.mydomain.com
path - Path of the mount point. E.g.: /path/to/my/data
version - NFS version. One of: auto, v3, v4 or v4_1.
timeout - The time in tenths of a second to wait for a response before retrying NFS requests. Range 0 to 65535.
retrans - The number of times to retry a request before attempting further recovery actions. Range 0 to 65535.
Note that these parameters are not idempotent.
poll_interval
no 3
Number of the seconds the module waits until another poll request on entity status is sent.
posixfs
no
Dictionary with values for PosixFS storage type:
path - Path of the mount point. E.g.: /path/to/my/data
vfs_type - Virtual File System type.
mount_options - Option which will be passed when mounting storage.
Note that these parameters are not idempotent.
state
no present
  • present
  • absent
  • maintenance
  • unattached
Should the storage domain be present/absent/maintenance/unattached/imported
imported is supported since version 2.4.
timeout
no 180
The amount of time in seconds the module should wait for the instance to get into desired state.
wait
no
True if the module should wait for the entity to get into desired state.

Examples

# Examples don't contain auth parameter for simplicity,
# look at ovirt_auth module to see how to reuse authentication:

# Add data NFS storage domain
- ovirt_storage_domains:
    name: data_nfs
    host: myhost
    data_center: mydatacenter
    nfs:
      address: 10.34.63.199
      path: /path/data

# Add data NFS storage domain with id for data center
- ovirt_storage_domains:
    name: data_nfs
    host: myhost
    data_center: 11111
    nfs:
      address: 10.34.63.199
      path: /path/data

# Add data localfs storage domain
- ovirt_storage_domains:
    name: data_localfs
    host: myhost
    data_center: mydatacenter
    localfs:
      path: /path/to/data

# Add data iSCSI storage domain:
- ovirt_storage_domains:
    name: data_iscsi
    host: myhost
    data_center: mydatacenter
    iscsi:
      target: iqn.2016-08-09.domain-01:nickname
      lun_id:
       - 1IET_000d0001
       - 1IET_000d0002
      address: 10.34.63.204

# Add data glusterfs storage domain
-  ovirt_storage_domains:
    name: glusterfs_1
    host: myhost
    data_center: mydatacenter
    glusterfs:
      address: 10.10.10.10
      path: /path/data

# Create export NFS storage domain:
- ovirt_storage_domains:
    name: myexportdomain
    domain_function: export
    host: myhost
    data_center: mydatacenter
    nfs:
      address: 10.34.63.199
      path: /path/export

# Import export NFS storage domain:
- ovirt_storage_domains:
    state: imported
    domain_function: export
    host: myhost
    data_center: mydatacenter
    nfs:
      address: 10.34.63.199
      path: /path/export

# Create ISO NFS storage domain
- ovirt_storage_domains:
    name: myiso
    domain_function: iso
    host: myhost
    data_center: mydatacenter
    nfs:
      address: 10.34.63.199
      path: /path/iso

# Remove storage domain
- ovirt_storage_domains:
    state: absent
    name: mystorage_domain
    format: true

Return Values

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

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

Notes

Note

  • In order to use this module you have to install oVirt Python SDK. To ensure it’s installed with correct version you can create the following task: pip: name=ovirt-engine-sdk-python version=4.0.0

Status

This module is flagged as preview which means that it is not guaranteed to have a backwards compatible interface.

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

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