oracle.oci.oci_compute_volume_attachment (5.0.0) — module

Manage a VolumeAttachment resource in Oracle Cloud Infrastructure

| "added in version" 2.9.0 of oracle.oci"

Authors: Oracle (@oracle)

preview | supported by community

Install collection

Install with ansible-galaxy collection install oracle.oci:==5.0.0


Add to requirements.yml

  collections:
    - name: oracle.oci
      version: 5.0.0

Description

This module allows the user to create, update and delete a VolumeAttachment resource in Oracle Cloud Infrastructure

For I(state=present), attaches the specified storage volume to the specified instance.


Requirements

Usage examples

  • Success
    Steampunk Spotter scan finished with no errors, warnings or hints.
- name: Create volume_attachment with type = service_determined
  oci_compute_volume_attachment:
    # required
    instance_id: "ocid1.instance.oc1..xxxxxxEXAMPLExxxxxx"
    type: service_determined
    volume_id: "ocid1.volume.oc1..xxxxxxEXAMPLExxxxxx"

    # optional
    device: device_example
    display_name: display_name_example
    is_read_only: true
    is_shareable: true
  • Success
    Steampunk Spotter scan finished with no errors, warnings or hints.
- name: Create volume_attachment with type = emulated
  oci_compute_volume_attachment:
    # required
    instance_id: "ocid1.instance.oc1..xxxxxxEXAMPLExxxxxx"
    type: emulated
    volume_id: "ocid1.volume.oc1..xxxxxxEXAMPLExxxxxx"

    # optional
    device: device_example
    display_name: display_name_example
    is_read_only: true
    is_shareable: true
  • Success
    Steampunk Spotter scan finished with no errors, warnings or hints.
- name: Create volume_attachment with type = iscsi
  oci_compute_volume_attachment:
    # required
    instance_id: "ocid1.instance.oc1..xxxxxxEXAMPLExxxxxx"
    type: iscsi
    volume_id: "ocid1.volume.oc1..xxxxxxEXAMPLExxxxxx"

    # optional
    use_chap: true
    encryption_in_transit_type: NONE
    is_agent_auto_iscsi_login_enabled: true
    device: device_example
    display_name: display_name_example
    is_read_only: true
    is_shareable: true
  • Success
    Steampunk Spotter scan finished with no errors, warnings or hints.
- name: Create volume_attachment with type = paravirtualized
  oci_compute_volume_attachment:
    # required
    instance_id: "ocid1.instance.oc1..xxxxxxEXAMPLExxxxxx"
    type: paravirtualized
    volume_id: "ocid1.volume.oc1..xxxxxxEXAMPLExxxxxx"

    # optional
    device: device_example
    display_name: display_name_example
    is_read_only: true
    is_shareable: true
    is_pv_encryption_in_transit_enabled: true
  • Success
    Steampunk Spotter scan finished with no errors, warnings or hints.
- name: Update volume_attachment
  oci_compute_volume_attachment:
    # required
    volume_attachment_id: "ocid1.volumeattachment.oc1..xxxxxxEXAMPLExxxxxx"

    # optional
    iscsi_login_state: UNKNOWN
  • Success
    Steampunk Spotter scan finished with no errors, warnings or hints.
- name: Update volume_attachment using name (when environment variable OCI_USE_NAME_AS_IDENTIFIER is set)
  oci_compute_volume_attachment:
    # required
    display_name: display_name_example
    compartment_id: "ocid1.compartment.oc1..xxxxxxEXAMPLExxxxxx"

    # optional
    iscsi_login_state: UNKNOWN
  • Success
    Steampunk Spotter scan finished with no errors, warnings or hints.
- name: Delete volume_attachment
  oci_compute_volume_attachment:
    # required
    volume_attachment_id: "ocid1.volumeattachment.oc1..xxxxxxEXAMPLExxxxxx"
    state: absent
  • Success
    Steampunk Spotter scan finished with no errors, warnings or hints.
- name: Delete volume_attachment using name (when environment variable OCI_USE_NAME_AS_IDENTIFIER is set)
  oci_compute_volume_attachment:
    # required
    display_name: display_name_example
    compartment_id: "ocid1.compartment.oc1..xxxxxxEXAMPLExxxxxx"
    state: absent

Inputs

    
type:
    choices:
    - service_determined
    - emulated
    - iscsi
    - paravirtualized
    description:
    - The type of volume. The only supported values are "iscsi" and "paravirtualized".
    - Required for create using I(state=present).
    type: str

wait:
    default: true
    description: Whether to wait for create or delete operation to complete.
    type: bool

state:
    choices:
    - present
    - absent
    default: present
    description:
    - The state of the VolumeAttachment.
    - Use I(state=present) to create or update a VolumeAttachment.
    - Use I(state=absent) to delete a VolumeAttachment.
    required: false
    type: str

device:
    description:
    - The device name. To retrieve a list of devices for a given instance, see L(ListInstanceDevices,https://docs.cloud.oracle.com/en-
      us/iaas/api/#/en/iaas/latest/Device/ListInstanceDevices).
    type: str

key_by:
    description: The list of attributes of this resource which should be used to uniquely
      identify an instance of the resource. By default, all the attributes of a resource
      are used to uniquely identify a resource.
    elements: str
    type: list

region:
    description:
    - The Oracle Cloud Infrastructure region to use for all OCI API requests. If not set,
      then the value of the OCI_REGION variable, if any, is used. This option is required
      if the region is not specified through a configuration file (See C(config_file_location)).
      Please refer to U(https://docs.us-phoenix-1.oraclecloud.com/Content/General/Concepts/regions.htm)
      for more information on OCI regions.
    type: str

tenancy:
    description:
    - OCID of your tenancy. If not set, then the value of the OCI_TENANCY variable, if
      any, is used. This option is required if the tenancy OCID is not specified through
      a configuration file (See C(config_file_location)). To get the tenancy OCID, please
      refer U(https://docs.us-phoenix-1.oraclecloud.com/Content/API/Concepts/apisigningkey.htm)
    type: str

api_user:
    description:
    - The OCID of the user, on whose behalf, OCI APIs are invoked. If not set, then the
      value of the OCI_USER_ID environment variable, if any, is used. This option is required
      if the user is not specified through a configuration file (See C(config_file_location)).
      To get the user's OCID, please refer U(https://docs.us-phoenix-1.oraclecloud.com/Content/API/Concepts/apisigningkey.htm).
    type: str

use_chap:
    description:
    - Whether to use CHAP authentication for the volume attachment. Defaults to false.
    - Applicable when type is 'iscsi'
    type: bool

auth_type:
    choices:
    - api_key
    - instance_principal
    - instance_obo_user
    - resource_principal
    - security_token
    default: api_key
    description:
    - The type of authentication to use for making API requests. By default C(auth_type="api_key")
      based authentication is performed and the API key (see I(api_user_key_file)) in
      your config file will be used. If this 'auth_type' module option is not specified,
      the value of the OCI_ANSIBLE_AUTH_TYPE, if any, is used. Use C(auth_type="instance_principal")
      to use instance principal based authentication when running ansible playbooks within
      an OCI compute instance.
    type: str

volume_id:
    description:
    - The OCID of the volume.
    - Required for create using I(state=present).
    type: str

cert_bundle:
    description:
    - The full path to a CA certificate bundle to be used for SSL verification. This will
      override the default CA certificate bundle. If not set, then the value of the OCI_ANSIBLE_CERT_BUNDLE
      variable, if any, is used.
    type: str

instance_id:
    description:
    - The OCID of the instance.
    - Required for create using I(state=present).
    type: str

auth_purpose:
    choices:
    - service_principal
    description:
    - The auth purpose which can be used in conjunction with 'auth_type=instance_principal'.
      The default auth_purpose for instance_principal is None.
    type: str

display_name:
    aliases:
    - name
    description:
    - A user-friendly name. Does not have to be unique, and it's changeable. Avoid entering
      confidential information.
    - Required for create, update, delete when environment variable C(OCI_USE_NAME_AS_IDENTIFIER)
      is set.
    type: str

force_create:
    default: false
    description: Whether to attempt non-idempotent creation of a resource. By default,
      create resource is an idempotent operation, and doesn't create the resource if it
      already exists. Setting this option to true, forcefully creates a copy of the resource,
      even if it already exists.This option is mutually exclusive with I(key_by).
    type: bool

is_read_only:
    description:
    - Whether the attachment was created in read-only mode.
    type: bool

is_shareable:
    description:
    - Whether the attachment should be created in shareable mode. If an attachment is
      created in shareable mode, then other instances can attach the same volume, provided
      that they also create their attachments in shareable mode. Only certain volume types
      can be attached in shareable mode. Defaults to false if not specified.
    type: bool

wait_timeout:
    description: Time, in seconds, to wait when I(wait=yes). Defaults to 1200 for most
      of the services but some services might have a longer wait timeout.
    type: int

compartment_id:
    description:
    - The L(OCID,https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm)
      of the compartment.
    - Required for create using I(state=present).
    - Required for update when environment variable C(OCI_USE_NAME_AS_IDENTIFIER) is set.
    - Required for delete when environment variable C(OCI_USE_NAME_AS_IDENTIFIER) is set.
    type: str

api_user_key_file:
    description:
    - Full path and filename of the private key (in PEM format). If not set, then the
      value of the OCI_USER_KEY_FILE variable, if any, is used. This option is required
      if the private key is not specified through a configuration file (See C(config_file_location)).
      If the key is encrypted with a pass-phrase, the C(api_user_key_pass_phrase) option
      must also be provided.
    type: str

iscsi_login_state:
    choices:
    - UNKNOWN
    - LOGGING_IN
    - LOGIN_SUCCEEDED
    - LOGIN_FAILED
    - LOGGING_OUT
    - LOGOUT_SUCCEEDED
    - LOGOUT_FAILED
    description:
    - The iscsi login state of the volume attachment. For a multipath volume attachment,
      all iscsi sessions need to be all logged-in or logged-out to be in logged-in or
      logged-out state.
    - This parameter is updatable.
    type: str

config_profile_name:
    description:
    - The profile to load from the config file referenced by C(config_file_location).
      If not set, then the value of the OCI_CONFIG_PROFILE environment variable, if any,
      is used. Otherwise, defaults to the "DEFAULT" profile in C(config_file_location).
    type: str

api_user_fingerprint:
    description:
    - Fingerprint for the key pair being used. If not set, then the value of the OCI_USER_FINGERPRINT
      environment variable, if any, is used. This option is required if the key fingerprint
      is not specified through a configuration file (See C(config_file_location)). To
      get the key pair's fingerprint value please refer U(https://docs.us-phoenix-1.oraclecloud.com/Content/API/Concepts/apisigningkey.htm).
    type: str

config_file_location:
    description:
    - Path to configuration file. If not set then the value of the OCI_CONFIG_FILE environment
      variable, if any, is used. Otherwise, defaults to ~/.oci/config.
    type: str

volume_attachment_id:
    aliases:
    - id
    description:
    - The OCID of the volume attachment.
    - Required for update using I(state=present) when environment variable C(OCI_USE_NAME_AS_IDENTIFIER)
      is not set.
    - Required for delete using I(state=absent) when environment variable C(OCI_USE_NAME_AS_IDENTIFIER)
      is not set.
    type: str

api_user_key_pass_phrase:
    description:
    - Passphrase used by the key referenced in C(api_user_key_file), if it is encrypted.
      If not set, then the value of the OCI_USER_KEY_PASS_PHRASE variable, if any, is
      used. This option is required if the key passphrase is not specified through a configuration
      file (See C(config_file_location)).
    type: str

encryption_in_transit_type:
    choices:
    - NONE
    - BM_ENCRYPTION_IN_TRANSIT
    description:
    - Refer the top-level definition of encryptionInTransitType. The default value is
      NONE.
    - Applicable when type is 'iscsi'
    type: str

is_agent_auto_iscsi_login_enabled:
    description:
    - Whether to enable Oracle Cloud Agent to perform the iSCSI login and logout commands
      after the volume attach or detach operations for non multipath-enabled iSCSI attachments.
    - Applicable when type is 'iscsi'
    type: bool

is_pv_encryption_in_transit_enabled:
    description:
    - Whether to enable in-transit encryption for the data volume's paravirtualized attachment.
      The default value is false.
    - Applicable when type is 'paravirtualized'
    type: bool

realm_specific_endpoint_template_enabled:
    description:
    - Enable/Disable realm specific endpoint template for service client. By Default,
      realm specific endpoint template is disabled. If not set, then the value of the
      OCI_REALM_SPECIFIC_SERVICE_ENDPOINT_TEMPLATE_ENABLED variable, if any, is used.
    type: bool

Outputs

volume_attachment:
  contains:
    attachment_type:
      description:
      - The type of volume attachment.
      returned: on success
      sample: emulated
      type: str
    availability_domain:
      description:
      - The availability domain of an instance.
      - 'Example: `Uocm:PHX-AD-1`'
      returned: on success
      sample: Uocm:PHX-AD-1
      type: str
    chap_secret:
      description:
      - The Challenge-Handshake-Authentication-Protocol (CHAP) secret valid for the
        associated CHAP user name. (Also called the "CHAP password".)
      returned: on success
      sample: chap_secret_example
      type: str
    chap_username:
      description:
      - The volume's system-generated Challenge-Handshake-Authentication-Protocol
        (CHAP) user name. See L(RFC 1994,https://tools.ietf.org/html/rfc1994) for
        more on CHAP.
      - 'Example: `ocid1.volume.oc1.phx.<unique_ID>`'
      returned: on success
      sample: chap_username_example
      type: str
    compartment_id:
      description:
      - The OCID of the compartment.
      returned: on success
      sample: ocid1.compartment.oc1..xxxxxxEXAMPLExxxxxx
      type: str
    device:
      description:
      - The device name.
      returned: on success
      sample: device_example
      type: str
    display_name:
      description:
      - A user-friendly name. Does not have to be unique, and it's changeable. Avoid
        entering confidential information.
      returned: on success
      sample: display_name_example
      type: str
    encryption_in_transit_type:
      description:
      - Refer the top-level definition of encryptionInTransitType. The default value
        is NONE.
      returned: on success
      sample: NONE
      type: str
    id:
      description:
      - The OCID of the volume attachment.
      returned: on success
      sample: ocid1.resource.oc1..xxxxxxEXAMPLExxxxxx
      type: str
    instance_id:
      description:
      - The OCID of the instance the volume is attached to.
      returned: on success
      sample: ocid1.instance.oc1..xxxxxxEXAMPLExxxxxx
      type: str
    ipv4:
      description:
      - The volume's iSCSI IP address.
      - 'Example: `169.254.0.2`'
      returned: on success
      sample: ipv4_example
      type: str
    iqn:
      description:
      - The target volume's iSCSI Qualified Name in the format defined by L(RFC 3720,https://tools.ietf.org/html/rfc3720#page-32).
      - 'Example: `iqn.2015-12.us.oracle.com:<CHAP_username>`'
      returned: on success
      sample: iqn_example
      type: str
    is_agent_auto_iscsi_login_enabled:
      description:
      - Whether Oracle Cloud Agent is enabled perform the iSCSI login and logout commands
        after the volume attach or detach operations for non multipath-enabled iSCSI
        attachments.
      returned: on success
      sample: true
      type: bool
    is_multipath:
      description:
      - Whether the Iscsi or Paravirtualized attachment is multipath or not, it is
        not applicable to NVMe attachment.
      returned: on success
      sample: true
      type: bool
    is_pv_encryption_in_transit_enabled:
      description:
      - Whether in-transit encryption for the data volume's paravirtualized attachment
        is enabled or not.
      returned: on success
      sample: true
      type: bool
    is_read_only:
      description:
      - Whether the attachment was created in read-only mode.
      returned: on success
      sample: true
      type: bool
    is_shareable:
      description:
      - Whether the attachment should be created in shareable mode. If an attachment
        is created in shareable mode, then other instances can attach the same volume,
        provided that they also create their attachments in shareable mode. Only certain
        volume types can be attached in shareable mode. Defaults to false if not specified.
      returned: on success
      sample: true
      type: bool
    iscsi_attach_commands:
      description:
      - Commands to attach the iSCSI block volume. Empty if attachment_type is not
        iscsi.
      returned: on success
      sample:
      - sudo iscsiadm -m node -o new -T IQN -p IP:PORT
      - sudo iscsiadm -m node -o update ...
      type: list
    iscsi_detach_commands:
      description:
      - Commands to detach the iSCSI block volume. Empty if attachment_type is not
        iscsi.
      returned: on success
      sample:
      - sudo iscsiadm -m node -T IQN -p IP:PORT -u
      - sudo iscsiadm -m node -o delete -T IQN
      type: list
    iscsi_login_state:
      description:
      - The iscsi login state of the volume attachment. For a Iscsi volume attachment,
        all iscsi sessions need to be all logged-in or logged-out to be in logged-in
        or logged-out state.
      returned: on success
      sample: UNKNOWN
      type: str
    lifecycle_state:
      description:
      - The current state of the volume attachment.
      returned: on success
      sample: ATTACHING
      type: str
    multipath_devices:
      contains:
        ipv4:
          description:
          - The volume's iSCSI IP address.
          - 'Example: `169.254.2.2`'
          returned: on success
          sample: ipv4_example
          type: str
        iqn:
          description:
          - The target volume's iSCSI Qualified Name in the format defined by L(RFC
            3720,https://tools.ietf.org/html/rfc3720#page-32).
          - 'Example: `iqn.2015-12.com.oracleiaas:40b7ee03-883f-46c6-a951-63d2841d2195`'
          returned: on success
          sample: iqn_example
          type: str
        port:
          description:
          - The volume's iSCSI port, usually port 860 or 3260.
          - 'Example: `3260`'
          returned: on success
          sample: 56
          type: int
      description:
      - A list of secondary multipath devices
      returned: on success
      type: complex
    port:
      description:
      - The volume's iSCSI port, usually port 860 or 3260.
      - 'Example: `3260`'
      returned: on success
      sample: 56
      type: int
    time_created:
      description:
      - The date and time the volume was created, in the format defined by L(RFC3339,https://tools.ietf.org/html/rfc3339).
      - 'Example: `2016-08-25T21:10:29.600Z`'
      returned: on success
      sample: '2013-10-20T19:20:30+01:00'
      type: str
    volume_id:
      description:
      - The OCID of the volume.
      returned: on success
      sample: ocid1.volume.oc1..xxxxxxEXAMPLExxxxxx
      type: str
  description:
  - Details of the VolumeAttachment resource acted upon by the current operation
  returned: on success
  sample:
    attachment_type: emulated
    availability_domain: Uocm:PHX-AD-1
    chap_secret: chap_secret_example
    chap_username: chap_username_example
    compartment_id: ocid1.compartment.oc1..xxxxxxEXAMPLExxxxxx
    device: device_example
    display_name: display_name_example
    encryption_in_transit_type: NONE
    id: ocid1.resource.oc1..xxxxxxEXAMPLExxxxxx
    instance_id: ocid1.instance.oc1..xxxxxxEXAMPLExxxxxx
    ipv4: ipv4_example
    iqn: iqn_example
    is_agent_auto_iscsi_login_enabled: true
    is_multipath: true
    is_pv_encryption_in_transit_enabled: true
    is_read_only: true
    is_shareable: true
    iscsi_attach_commands:
    - sudo iscsiadm -m node -o new -T IQN -p IP:PORT
    - sudo iscsiadm -m node -o update ...
    iscsi_detach_commands:
    - sudo iscsiadm -m node -T IQN -p IP:PORT -u
    - sudo iscsiadm -m node -o delete -T IQN
    iscsi_login_state: UNKNOWN
    lifecycle_state: ATTACHING
    multipath_devices:
    - ipv4: ipv4_example
      iqn: iqn_example
      port: 56
    port: 56
    time_created: '2013-10-20T19:20:30+01:00'
    volume_id: ocid1.volume.oc1..xxxxxxEXAMPLExxxxxx
  type: complex