oracle.oci.oci_compute_image (5.0.0) — module

Manage an Image 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 an Image resource in Oracle Cloud Infrastructure

For I(state=present), creates a boot disk image for the specified instance or imports an exported image from the Oracle Cloud Infrastructure Object Storage service.

When creating a new image, you must provide the OCID of the instance you want to use as the basis for the image, and the OCID of the compartment containing that instance. For more information about images, see L(Managing Custom Images,https://docs.cloud.oracle.com/iaas/Content/Compute/Tasks/managingcustomimages.htm).

When importing an exported image from Object Storage, you specify the source information in L(ImageSourceDetails,https://docs.cloud.oracle.com/en-us/iaas/api/#/en/iaas/latest/requests/ImageSourceDetails).

When importing an image based on the namespace, bucket name, and object name, use L(ImageSourceViaObjectStorageTupleDetails,https://docs.cloud.oracle.com/en- us/iaas/api/#/en/iaas/latest/requests/ImageSourceViaObjectStorageTupleDetails).

When importing an image based on the Object Storage URL, use L(ImageSourceViaObjectStorageUriDetails,https://docs.cloud.oracle.com/en-us/iaas/api/#/en/iaas/latest/requests/ImageSourceViaObjectStorageUriDetails). See L(Object Storage URLs,https://docs.cloud.oracle.com/iaas/Content/Compute/Tasks/imageimportexport.htm#URLs) and L(Using Pre-Authenticated Requests,https://docs.cloud.oracle.com/iaas/Content/Object/Tasks/usingpreauthenticatedrequests.htm) for constructing URLs for image import/export.

For more information about importing exported images, see L(Image Import/Export,https://docs.cloud.oracle.com/iaas/Content/Compute/Tasks/imageimportexport.htm).

You may optionally specify a *display name* for the image, which is simply a friendly name or description. It does not have to be unique, and you can change it. See L(UpdateImage,https://docs.cloud.oracle.com/en-us/iaas/api/#/en/iaas/latest/Image/UpdateImage). Avoid entering confidential information.

This resource has the following action operations in the M(oracle.oci.oci_compute_image_actions) module: change_compartment, export.


Requirements

Usage examples

  • Success
    Steampunk Spotter scan finished with no errors, warnings or hints.
- name: Create image
  oci_compute_image:
    # required
    compartment_id: "ocid1.compartment.oc1..xxxxxxEXAMPLExxxxxx"

    # optional
    image_source_details:
      # required
      bucket_name: bucket_name_example
      namespace_name: namespace_name_example
      object_name: object_name_example
      source_type: objectStorageTuple

      # optional
      operating_system: operating_system_example
      operating_system_version: operating_system_version_example
      source_image_type: QCOW2
    instance_id: "ocid1.instance.oc1..xxxxxxEXAMPLExxxxxx"
    launch_mode: NATIVE
    defined_tags: {'Operations': {'CostCenter': 'US'}}
    display_name: display_name_example
    freeform_tags: {'Department': 'Finance'}
  • Success
    Steampunk Spotter scan finished with no errors, warnings or hints.
- name: Update image
  oci_compute_image:
    # required
    image_id: "ocid1.image.oc1..xxxxxxEXAMPLExxxxxx"

    # optional
    defined_tags: {'Operations': {'CostCenter': 'US'}}
    display_name: display_name_example
    freeform_tags: {'Department': 'Finance'}
    operating_system: operating_system_example
    operating_system_version: operating_system_version_example
  • Success
    Steampunk Spotter scan finished with no errors, warnings or hints.
- name: Update image using name (when environment variable OCI_USE_NAME_AS_IDENTIFIER is set)
  oci_compute_image:
    # required
    compartment_id: "ocid1.compartment.oc1..xxxxxxEXAMPLExxxxxx"
    display_name: display_name_example

    # optional
    defined_tags: {'Operations': {'CostCenter': 'US'}}
    freeform_tags: {'Department': 'Finance'}
    operating_system: operating_system_example
    operating_system_version: operating_system_version_example
  • Success
    Steampunk Spotter scan finished with no errors, warnings or hints.
- name: Delete image
  oci_compute_image:
    # required
    image_id: "ocid1.image.oc1..xxxxxxEXAMPLExxxxxx"
    state: absent
  • Success
    Steampunk Spotter scan finished with no errors, warnings or hints.
- name: Delete image using name (when environment variable OCI_USE_NAME_AS_IDENTIFIER is set)
  oci_compute_image:
    # required
    compartment_id: "ocid1.compartment.oc1..xxxxxxEXAMPLExxxxxx"
    display_name: display_name_example
    state: absent

Inputs

    
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 Image.
    - Use I(state=present) to create or update an Image.
    - Use I(state=absent) to delete an Image.
    required: false
    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

image_id:
    aliases:
    - id
    description:
    - The L(OCID,https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm)
      of the image.
    - 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

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

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 you want to use as the basis for the image.
    type: str

launch_mode:
    choices:
    - NATIVE
    - EMULATED
    - PARAVIRTUALIZED
    - CUSTOM
    description:
    - 'Specifies the configuration mode for launching virtual machine (VM) instances.
      The configuration modes are: * `NATIVE` - VM instances launch with paravirtualized
      boot and VFIO devices. The default value for platform images. * `EMULATED` - VM
      instances launch with emulated devices, such as the E1000 network driver and emulated
      SCSI disk controller. * `PARAVIRTUALIZED` - VM instances launch with paravirtualized
      devices using VirtIO drivers. * `CUSTOM` - VM instances launch with custom configuration
      settings specified in the `LaunchOptions` parameter.'
    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

defined_tags:
    description:
    - Defined tags for this resource. Each key is predefined and scoped to a namespace.
      For more information, see L(Resource Tags,https://docs.cloud.oracle.com/iaas/Content/General/Concepts/resourcetags.htm).
    - 'Example: `{"Operations": {"CostCenter": "42"}}`'
    - This parameter is updatable.
    type: dict

display_name:
    aliases:
    - name
    description:
    - A user-friendly name for the image. It does not have to be unique, and it's changeable.
      Avoid entering confidential information.
    - You cannot use a platform image name as a custom image name.
    - 'Example: `My Oracle Linux image`'
    - Required for create, update, delete when environment variable C(OCI_USE_NAME_AS_IDENTIFIER)
      is set.
    - This parameter is updatable when C(OCI_USE_NAME_AS_IDENTIFIER) is not 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

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

freeform_tags:
    description:
    - Free-form tags for this resource. Each tag is a simple key-value pair with no predefined
      name, type, or namespace. For more information, see L(Resource Tags,https://docs.cloud.oracle.com/iaas/Content/General/Concepts/resourcetags.htm).
    - 'Example: `{"Department": "Finance"}`'
    - This parameter is updatable.
    type: dict

compartment_id:
    description:
    - The OCID of the compartment you want the image to be created in.
    - 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

operating_system:
    description:
    - Operating system
    - 'Example: `Oracle Linux`'
    - This parameter is updatable.
    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

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

image_source_details:
    description:
    - ''
    suboptions:
      bucket_name:
        description:
        - The Object Storage bucket for the image.
        - Required when source_type is 'objectStorageTuple'
        type: str
      namespace_name:
        description:
        - The Object Storage namespace for the image.
        - Required when source_type is 'objectStorageTuple'
        type: str
      object_name:
        description:
        - The Object Storage name for the image.
        - Required when source_type is 'objectStorageTuple'
        type: str
      operating_system:
        description:
        - ''
        type: str
      operating_system_version:
        description:
        - ''
        type: str
      source_image_type:
        choices:
        - QCOW2
        - VMDK
        description:
        - The format of the image to be imported. Only monolithic images are supported.
          This attribute is not used for exported Oracle images with the OCI image format.
        type: str
      source_type:
        choices:
        - objectStorageTuple
        - objectStorageUri
        description:
        - The source type for the image. Use `objectStorageTuple` when specifying the
          namespace, bucket name, and object name. Use `objectStorageUri` when specifying
          the Object Storage URL.
        required: true
        type: str
      source_uri:
        description:
        - The Object Storage URL for the image.
        - Required when source_type is 'objectStorageUri'
        type: str
    type: dict

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

operating_system_version:
    description:
    - Operating system version
    - 'Example: `7.4`'
    - This parameter is updatable.
    type: str

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

image:
  contains:
    agent_features:
      contains:
        is_management_supported:
          description:
          - This attribute is not used.
          returned: on success
          sample: true
          type: bool
        is_monitoring_supported:
          description:
          - This attribute is not used.
          returned: on success
          sample: true
          type: bool
      description:
      - ''
      returned: on success
      type: complex
    base_image_id:
      description:
      - The OCID of the image originally used to launch the instance.
      returned: on success
      sample: ocid1.baseimage.oc1..xxxxxxEXAMPLExxxxxx
      type: str
    billable_size_in_gbs:
      description:
      - The size of the internal storage for this image that is subject to billing
        (1 GB = 1,073,741,824 bytes).
      - 'Example: `100`'
      returned: on success
      sample: 56
      type: int
    compartment_id:
      description:
      - The OCID of the compartment containing the instance you want to use as the
        basis for the image.
      returned: on success
      sample: ocid1.compartment.oc1..xxxxxxEXAMPLExxxxxx
      type: str
    create_image_allowed:
      description:
      - Whether instances launched with this image can be used to create new images.
        For example, you cannot create an image of an Oracle Database instance.
      - 'Example: `true`'
      returned: on success
      sample: true
      type: bool
    defined_tags:
      description:
      - Defined tags for this resource. Each key is predefined and scoped to a namespace.
        For more information, see L(Resource Tags,https://docs.cloud.oracle.com/iaas/Content/General/Concepts/resourcetags.htm).
      - 'Example: `{"Operations": {"CostCenter": "42"}}`'
      returned: on success
      sample:
        Operations:
          CostCenter: US
      type: dict
    display_name:
      description:
      - A user-friendly name for the image. It does not have to be unique, and it's
        changeable. Avoid entering confidential information.
      - You cannot use a platform image name as a custom image name.
      - 'Example: `My custom Oracle Linux image`'
      returned: on success
      sample: display_name_example
      type: str
    freeform_tags:
      description:
      - Free-form tags for this resource. Each tag is a simple key-value pair with
        no predefined name, type, or namespace. For more information, see L(Resource
        Tags,https://docs.cloud.oracle.com/iaas/Content/General/Concepts/resourcetags.htm).
      - 'Example: `{"Department": "Finance"}`'
      returned: on success
      sample:
        Department: Finance
      type: dict
    id:
      description:
      - The OCID of the image.
      returned: on success
      sample: ocid1.resource.oc1..xxxxxxEXAMPLExxxxxx
      type: str
    launch_mode:
      description:
      - 'Specifies the configuration mode for launching virtual machine (VM) instances.
        The configuration modes are: * `NATIVE` - VM instances launch with iSCSI boot
        and VFIO devices. The default value for platform images. * `EMULATED` - VM
        instances launch with emulated devices, such as the E1000 network driver and
        emulated SCSI disk controller. * `PARAVIRTUALIZED` - VM instances launch with
        paravirtualized devices using VirtIO drivers. * `CUSTOM` - VM instances launch
        with custom configuration settings specified in the `LaunchOptions` parameter.'
      returned: on success
      sample: NATIVE
      type: str
    launch_options:
      contains:
        boot_volume_type:
          description:
          - Emulation type for the boot volume. * `ISCSI` - ISCSI attached block storage
            device. * `SCSI` - Emulated SCSI disk. * `IDE` - Emulated IDE disk. *
            `VFIO` - Direct attached Virtual Function storage. This is the default
            option for local data volumes on platform images. * `PARAVIRTUALIZED`
            - Paravirtualized disk. This is the default for boot volumes and remote
            block storage volumes on platform images.
          returned: on success
          sample: ISCSI
          type: str
        firmware:
          description:
          - Firmware used to boot VM. Select the option that matches your operating
            system. * `BIOS` - Boot VM using BIOS style firmware. This is compatible
            with both 32 bit and 64 bit operating systems that boot using MBR style
            bootloaders. * `UEFI_64` - Boot VM using UEFI style firmware compatible
            with 64 bit operating systems. This is the default for platform images.
          returned: on success
          sample: BIOS
          type: str
        is_consistent_volume_naming_enabled:
          description:
          - Whether to enable consistent volume naming feature. Defaults to false.
          returned: on success
          sample: true
          type: bool
        is_pv_encryption_in_transit_enabled:
          description:
          - Deprecated. Instead use `isPvEncryptionInTransitEnabled` in L(LaunchInstanceDetails,https://docs.cloud.oracle.com/en-us/iaas/api/#/en/iaas/latest/datatypes/LaunchInstanceDetails).
          returned: on success
          sample: true
          type: bool
        network_type:
          description:
          - Emulation type for the physical network interface card (NIC). * `E1000`
            - Emulated Gigabit ethernet controller. Compatible with Linux e1000 network
            driver. * `VFIO` - Direct attached Virtual Function network controller.
            This is the networking type when you launch an instance using hardware-assisted
            (SR-IOV) networking. * `PARAVIRTUALIZED` - VM instances launch with paravirtualized
            devices using VirtIO drivers.
          returned: on success
          sample: E1000
          type: str
        remote_data_volume_type:
          description:
          - Emulation type for volume. * `ISCSI` - ISCSI attached block storage device.
            * `SCSI` - Emulated SCSI disk. * `IDE` - Emulated IDE disk. * `VFIO` -
            Direct attached Virtual Function storage. This is the default option for
            local data volumes on platform images. * `PARAVIRTUALIZED` - Paravirtualized
            disk. This is the default for boot volumes and remote block storage volumes
            on platform images.
          returned: on success
          sample: ISCSI
          type: str
      description:
      - ''
      returned: on success
      type: complex
    lifecycle_state:
      description:
      - ''
      returned: on success
      sample: PROVISIONING
      type: str
    listing_type:
      description:
      - The listing type of the image. The default value is "NONE".
      returned: on success
      sample: COMMUNITY
      type: str
    operating_system:
      description:
      - The image's operating system.
      - 'Example: `Oracle Linux`'
      returned: on success
      sample: operating_system_example
      type: str
    operating_system_version:
      description:
      - The image's operating system version.
      - 'Example: `7.2`'
      returned: on success
      sample: operating_system_version_example
      type: str
    size_in_mbs:
      description:
      - The boot volume size for an instance launched from this image (1 MB = 1,048,576
        bytes). Note this is not the same as the size of the image when it was exported
        or the actual size of the image.
      - 'Example: `47694`'
      returned: on success
      sample: 56
      type: int
    time_created:
      description:
      - The date and time the image 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
  description:
  - Details of the Image resource acted upon by the current operation
  returned: on success
  sample:
    agent_features:
      is_management_supported: true
      is_monitoring_supported: true
    base_image_id: ocid1.baseimage.oc1..xxxxxxEXAMPLExxxxxx
    billable_size_in_gbs: 56
    compartment_id: ocid1.compartment.oc1..xxxxxxEXAMPLExxxxxx
    create_image_allowed: true
    defined_tags:
      Operations:
        CostCenter: US
    display_name: display_name_example
    freeform_tags:
      Department: Finance
    id: ocid1.resource.oc1..xxxxxxEXAMPLExxxxxx
    launch_mode: NATIVE
    launch_options:
      boot_volume_type: ISCSI
      firmware: BIOS
      is_consistent_volume_naming_enabled: true
      is_pv_encryption_in_transit_enabled: true
      network_type: E1000
      remote_data_volume_type: ISCSI
    lifecycle_state: PROVISIONING
    listing_type: COMMUNITY
    operating_system: operating_system_example
    operating_system_version: operating_system_version_example
    size_in_mbs: 56
    time_created: '2013-10-20T19:20:30+01:00'
  type: complex