infinidat.infinibox.infini_vol – Create, Delete or Modify volumes on Infinibox

Note

This plugin is part of the infinidat.infinibox collection (version 1.2.4).

To install it use: ansible-galaxy collection install infinidat.infinibox.

To use it in a playbook, specify: infinidat.infinibox.infini_vol.

New in version 2.3: of infinidat.infinibox

Synopsis

  • This module creates, deletes or modifies a volume on Infinibox.

Requirements

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

Parameters

Parameter Choices/Defaults Comments
name
string / required
Volume Name
parent_volume_name
string
Specify a volume name. This is the volume parent for creating a snapshot. Required if volume_type is snapshot.
password
string
Infinibox User password.
pool
string
Pool that master volume will reside within. Required for creating a master volume, but not a snapshot.
size
string
Volume size in MB, GB or TB units. Required for creating a master volume, but not a snapshot
snapshot_lock_expires_at
string
This will cause a snapshot to be locked at the specified date-time. Uses python's datetime format YYYY-mm-dd HH:MM:SS.ffffff, e.g. 2020-02-13 16:21:59.699700
snapshot_lock_only
boolean
    Choices:
  • no ←
  • yes
This will lock an existing snapshot but will suppress refreshing the snapshot.
state
string
    Choices:
  • stat
  • present ←
  • absent
Creates/Modifies master volume or snapshot when present or removes when absent.
system
string / required
Infinibox Hostname or IPv4 Address.
thin_provision
boolean
added in 2.8 of infinidat.infinibox
    Choices:
  • no
  • yes ←
Whether the master volume should be thin provisioned. Required for creating a master volume, but not a snapshot.
user
string
Infinibox User username with sufficient priveledges ( see notes ).
volume_type
string
    Choices:
  • master ←
  • snapshot
Specifies the volume type, regular volume or snapshot.

Notes

Note

  • This module requires infinisdk python library

  • You must set INFINIBOX_USER and INFINIBOX_PASSWORD environment variables if user and password arguments are not passed to the module directly

  • Ansible uses the infinisdk configuration file ~/.infinidat/infinisdk.ini if no credentials are provided. See http://infinisdk.readthedocs.io/en/latest/getting_started.html

  • All Infinidat modules support check mode (–check). However, a dryrun that creates resources may fail if the resource dependencies are not met for a task. For example, consider a task that creates a volume in a pool. If the pool does not exist, the volume creation task will fail. It will fail even if there was a previous task in the playbook that would have created the pool but did not because the pool creation was also part of the dry run.

Examples

- name: Create new volume named foo under pool named bar
  infini_vol:
    name: foo
    # volume_type: master  # Default
    size: 1TB
    thin_provision: yes
    pool: bar
    state: present
    user: admin
    password: secret
    system: ibox001
- name: Create snapshot named foo_snap from volume named foo
  infini_vol:
    name: foo_snap
    volume_type: snapshot
    parent_volume_name: foo
    state: present
    user: admin
    password: secret
    system: ibox001
- name: Stat snapshot, also a volume, named foo_snap
  infini_vol:
    name: foo_snap
    state: present
    user: admin
    password: secret
    system: ibox001
- name: Remove snapshot, also a volume, named foo_snap
  infini_vol:
    name: foo_snap
    state: absent
    user: admin
    password: secret
    system: ibox001

Authors

  • Gregory Shulov (@GR360RY)