oracle.oci.oci_dns_zone (5.0.0) — module

Manage a Zone 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 Zone resource in Oracle Cloud Infrastructure

For I(state=present), creates a new zone in the specified compartment.

Private zones must have a zone type of `PRIMARY`. Creating a private zone at or under `oraclevcn.com` within the default protected view of a VCN-dedicated resolver is not permitted.

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


Requirements

Usage examples

  • Success
    Steampunk Spotter scan finished with no errors, warnings or hints.
- name: Create zone with migration_source = NONE
  oci_dns_zone:
    # required
    name: name_example
    compartment_id: "ocid1.compartment.oc1..xxxxxxEXAMPLExxxxxx"

    # optional
    zone_type: PRIMARY
    migration_source: NONE
    freeform_tags: {'Department': 'Finance'}
    defined_tags: {'Operations': {'CostCenter': 'US'}}
    external_masters:
    - # required
      address: address_example

      # optional
      port: 56
      tsig_key_id: "ocid1.tsigkey.oc1..xxxxxxEXAMPLExxxxxx"
    external_downstreams:
    - # required
      address: address_example

      # optional
      port: 56
      tsig_key_id: "ocid1.tsigkey.oc1..xxxxxxEXAMPLExxxxxx"
    scope: GLOBAL
    view_id: "ocid1.view.oc1..xxxxxxEXAMPLExxxxxx"
  • Success
    Steampunk Spotter scan finished with no errors, warnings or hints.
- name: Create zone with migration_source = DYNECT
  oci_dns_zone:
    # required
    migration_source: DYNECT
    name: name_example
    compartment_id: "ocid1.compartment.oc1..xxxxxxEXAMPLExxxxxx"

    # optional
    dynect_migration_details:
      # required
      customer_name: customer_name_example
      username: username_example
      password: example-password

      # optional
      http_redirect_replacements: null
    freeform_tags: {'Department': 'Finance'}
    defined_tags: {'Operations': {'CostCenter': 'US'}}
  • Success
    Steampunk Spotter scan finished with no errors, warnings or hints.
- name: Update zone
  oci_dns_zone:
    # required
    zone_name_or_id: "ocid1.zonenameor.oc1..xxxxxxEXAMPLExxxxxx"

    # optional
    freeform_tags: {'Department': 'Finance'}
    defined_tags: {'Operations': {'CostCenter': 'US'}}
    external_masters:
    - # required
      address: address_example

      # optional
      port: 56
      tsig_key_id: "ocid1.tsigkey.oc1..xxxxxxEXAMPLExxxxxx"
    external_downstreams:
    - # required
      address: address_example

      # optional
      port: 56
      tsig_key_id: "ocid1.tsigkey.oc1..xxxxxxEXAMPLExxxxxx"
    if_unmodified_since: if_unmodified_since_example
    scope: GLOBAL
    view_id: "ocid1.view.oc1..xxxxxxEXAMPLExxxxxx"
    compartment_id: "ocid1.compartment.oc1..xxxxxxEXAMPLExxxxxx"
  • Success
    Steampunk Spotter scan finished with no errors, warnings or hints.
- name: Update zone using name (when environment variable OCI_USE_NAME_AS_IDENTIFIER is set)
  oci_dns_zone:
    # required
    name: name_example
    compartment_id: "ocid1.compartment.oc1..xxxxxxEXAMPLExxxxxx"

    # optional
    freeform_tags: {'Department': 'Finance'}
    defined_tags: {'Operations': {'CostCenter': 'US'}}
    external_masters:
    - # required
      address: address_example

      # optional
      port: 56
      tsig_key_id: "ocid1.tsigkey.oc1..xxxxxxEXAMPLExxxxxx"
    external_downstreams:
    - # required
      address: address_example

      # optional
      port: 56
      tsig_key_id: "ocid1.tsigkey.oc1..xxxxxxEXAMPLExxxxxx"
    if_unmodified_since: if_unmodified_since_example
    scope: GLOBAL
    view_id: "ocid1.view.oc1..xxxxxxEXAMPLExxxxxx"
  • Success
    Steampunk Spotter scan finished with no errors, warnings or hints.
- name: Delete zone
  oci_dns_zone:
    # required
    zone_name_or_id: "ocid1.zonenameor.oc1..xxxxxxEXAMPLExxxxxx"
    state: absent

    # optional
    if_unmodified_since: if_unmodified_since_example
    scope: GLOBAL
    view_id: "ocid1.view.oc1..xxxxxxEXAMPLExxxxxx"
    compartment_id: "ocid1.compartment.oc1..xxxxxxEXAMPLExxxxxx"
  • Success
    Steampunk Spotter scan finished with no errors, warnings or hints.
- name: Delete zone using name (when environment variable OCI_USE_NAME_AS_IDENTIFIER is set)
  oci_dns_zone:
    # required
    name: name_example
    compartment_id: "ocid1.compartment.oc1..xxxxxxEXAMPLExxxxxx"
    state: absent

Inputs

    
name:
    aliases:
    - zone_name
    description:
    - The name of the zone.
    - Required for create using I(state=present).
    - Required for update, delete when environment variable C(OCI_USE_NAME_AS_IDENTIFIER)
      is set.
    type: str

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

scope:
    choices:
    - GLOBAL
    - PRIVATE
    description:
    - The scope of the zone.
    - This parameter is updatable.
    - Applicable when migration_source is 'NONE'
    type: str

state:
    choices:
    - present
    - absent
    default: present
    description:
    - The state of the Zone.
    - Use I(state=present) to create or update a Zone.
    - Use I(state=absent) to delete a Zone.
    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

view_id:
    description:
    - This value will be null for zones in the global DNS.
    - This parameter is updatable.
    - Applicable when migration_source is 'NONE'
    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

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

zone_type:
    choices:
    - PRIMARY
    - SECONDARY
    description:
    - The type of the zone. Must be either `PRIMARY` or `SECONDARY`. `SECONDARY` is only
      supported for GLOBAL zones.
    - Applicable when migration_source is 'NONE'
    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

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/Content/General/Concepts/resourcetags.htm).
    - '**Example:** `{"Operations": {"CostCenter": "42"}}`'
    - This parameter is updatable.
    type: dict

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/Content/General/Concepts/resourcetags.htm).
    - '**Example:** `{"Department": "Finance"}`'
    - This parameter is updatable.
    type: dict

compartment_id:
    description:
    - The OCID of the compartment containing the zone.
    - 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.
    - This parameter is updatable.
    type: str

zone_name_or_id:
    aliases:
    - zone_id
    - id
    description:
    - The name or OCID of the target zone.
    - 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

external_masters:
    description:
    - External master servers for the zone. `externalMasters` becomes a required parameter
      when the `zoneType` value is `SECONDARY`.
    - This parameter is updatable.
    - Applicable when migration_source is 'NONE'
    elements: dict
    suboptions:
      address:
        description:
        - The server's IP address (IPv4 or IPv6).
        - Required when migration_source is 'NONE'
        required: true
        type: str
      port:
        description:
        - The server's port. Port value must be a value of 53, otherwise omit the port
          value.
        - Applicable when migration_source is 'NONE'
        type: int
      tsig_key_id:
        description:
        - The OCID of the TSIG key.
        - Applicable when migration_source is 'NONE'
        type: str
    type: list

migration_source:
    choices:
    - NONE
    - DYNECT
    default: NONE
    description:
    - Discriminator that is used to determine whether to create a new zone (NONE) or to
      migrate an existing DynECT zone (DYNECT).
    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

if_unmodified_since:
    description:
    - The `If-Unmodified-Since` header field makes the request method conditional on the
      selected representation's last modification date being earlier than or equal to
      the date provided in the field-value.  This field accomplishes the same purpose
      as If-Match for cases where the user agent does not have an entity-tag for the representation.
    - This parameter is updatable.
    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

external_downstreams:
    description:
    - External secondary servers for the zone. This field is currently not supported when
      `zoneType` is `SECONDARY` or `scope` is `PRIVATE`.
    - This parameter is updatable.
    - Applicable when migration_source is 'NONE'
    elements: dict
    suboptions:
      address:
        description:
        - The server's IP address (IPv4 or IPv6).
        - Required when migration_source is 'NONE'
        required: true
        type: str
      port:
        description:
        - The server's port. Port value must be a value of 53, otherwise omit the port
          value.
        - Applicable when migration_source is 'NONE'
        type: int
      tsig_key_id:
        description:
        - The OCID of the TSIG key. A TSIG key is used to secure DNS messages (in this
          case, zone transfers) between two systems that both have the (shared) secret.
        - Applicable when migration_source is 'NONE'
        type: str
    type: list

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

dynect_migration_details:
    description:
    - ''
    - Applicable when migration_source is 'DYNECT'
    suboptions:
      customer_name:
        description:
        - DynECT customer name the zone belongs to.
        - Required when migration_source is 'DYNECT'
        required: true
        type: str
      http_redirect_replacements:
        description:
        - A map of fully-qualified domain names (FQDNs) to an array of `MigrationReplacement`
          objects.
        - Applicable when migration_source is 'DYNECT'
        type: dict
      password:
        description:
        - DynECT API password for the provided username.
        - Required when migration_source is 'DYNECT'
        required: true
        type: str
      username:
        description:
        - DynECT API username to perform the migration with.
        - Required when migration_source is 'DYNECT'
        required: true
        type: str
    type: dict

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

zone:
  contains:
    compartment_id:
      description:
      - The OCID of the compartment containing the zone.
      returned: on success
      sample: ocid1.compartment.oc1..xxxxxxEXAMPLExxxxxx
      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/Content/General/Concepts/resourcetags.htm).
      - '**Example:** `{"Operations": {"CostCenter": "42"}}`'
      returned: on success
      sample:
        Operations:
          CostCenter: US
      type: dict
    external_downstreams:
      contains:
        address:
          description:
          - The server's IP address (IPv4 or IPv6).
          returned: on success
          sample: address_example
          type: str
        port:
          description:
          - The server's port. Port value must be a value of 53, otherwise omit the
            port value.
          returned: on success
          sample: 56
          type: int
        tsig_key_id:
          description:
          - The OCID of the TSIG key. A TSIG key is used to secure DNS messages (in
            this case, zone transfers) between two systems that both have the (shared)
            secret.
          returned: on success
          sample: ocid1.tsigkey.oc1..xxxxxxEXAMPLExxxxxx
          type: str
      description:
      - External secondary servers for the zone. This field is currently not supported
        when `zoneType` is `SECONDARY` or `scope` is `PRIVATE`.
      returned: on success
      type: complex
    external_masters:
      contains:
        address:
          description:
          - The server's IP address (IPv4 or IPv6).
          returned: on success
          sample: address_example
          type: str
        port:
          description:
          - The server's port. Port value must be a value of 53, otherwise omit the
            port value.
          returned: on success
          sample: 56
          type: int
        tsig_key_id:
          description:
          - The OCID of the TSIG key.
          returned: on success
          sample: ocid1.tsigkey.oc1..xxxxxxEXAMPLExxxxxx
          type: str
      description:
      - External master servers for the zone. `externalMasters` becomes a required
        parameter when the `zoneType` value is `SECONDARY`.
      returned: on success
      type: complex
    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/Content/General/Concepts/resourcetags.htm).
      - '**Example:** `{"Department": "Finance"}`'
      returned: on success
      sample:
        Department: Finance
      type: dict
    id:
      description:
      - The OCID of the zone.
      returned: on success
      sample: ocid1.resource.oc1..xxxxxxEXAMPLExxxxxx
      type: str
    is_protected:
      description:
      - A Boolean flag indicating whether or not parts of the resource are unable
        to be explicitly managed.
      returned: on success
      sample: true
      type: bool
    lifecycle_state:
      description:
      - The current state of the zone resource.
      returned: on success
      sample: ACTIVE
      type: str
    name:
      description:
      - The name of the zone.
      returned: on success
      sample: name_example
      type: str
    nameservers:
      contains:
        hostname:
          description:
          - The hostname of the nameserver.
          returned: on success
          sample: hostname_example
          type: str
      description:
      - The authoritative nameservers for the zone.
      returned: on success
      type: complex
    scope:
      description:
      - The scope of the zone.
      returned: on success
      sample: GLOBAL
      type: str
    self_uri:
      description:
      - The canonical absolute URL of the resource.
      returned: on success
      sample: _self_example
      type: str
    serial:
      description:
      - The current serial of the zone. As seen in the zone's SOA record.
      returned: on success
      sample: 56
      type: int
    time_created:
      description:
      - The date and time the resource was created in "YYYY-MM-ddThh:mm:ssZ" format
        with a Z offset, as defined by RFC 3339.
      - '**Example:** `2016-07-22T17:23:59:60Z`'
      returned: on success
      sample: '2013-10-20T19:20:30+01:00'
      type: str
    version:
      description:
      - Version is the never-repeating, totally-orderable, version of the zone, from
        which the serial field of the zone's SOA record is derived.
      returned: on success
      sample: version_example
      type: str
    view_id:
      description:
      - The OCID of the private view containing the zone. This value will be null
        for zones in the global DNS, which are publicly resolvable and not part of
        a private view.
      returned: on success
      sample: ocid1.view.oc1..xxxxxxEXAMPLExxxxxx
      type: str
    zone_transfer_servers:
      contains:
        address:
          description:
          - The server's IP address (IPv4 or IPv6).
          returned: on success
          sample: address_example
          type: str
        is_transfer_destination:
          description:
          - A Boolean flag indicating whether or not the server is a zone data transfer
            destination.
          returned: on success
          sample: true
          type: bool
        is_transfer_source:
          description:
          - A Boolean flag indicating whether or not the server is a zone data transfer
            source.
          returned: on success
          sample: true
          type: bool
        port:
          description:
          - The server's port.
          returned: on success
          sample: 56
          type: int
      description:
      - The OCI nameservers that transfer the zone data with external nameservers.
      returned: on success
      type: complex
    zone_type:
      description:
      - The type of the zone. Must be either `PRIMARY` or `SECONDARY`. `SECONDARY`
        is only supported for GLOBAL zones.
      returned: on success
      sample: PRIMARY
      type: str
  description:
  - Details of the Zone resource acted upon by the current operation
  returned: on success
  sample:
    compartment_id: ocid1.compartment.oc1..xxxxxxEXAMPLExxxxxx
    defined_tags:
      Operations:
        CostCenter: US
    external_downstreams:
    - address: address_example
      port: 56
      tsig_key_id: ocid1.tsigkey.oc1..xxxxxxEXAMPLExxxxxx
    external_masters:
    - address: address_example
      port: 56
      tsig_key_id: ocid1.tsigkey.oc1..xxxxxxEXAMPLExxxxxx
    freeform_tags:
      Department: Finance
    id: ocid1.resource.oc1..xxxxxxEXAMPLExxxxxx
    is_protected: true
    lifecycle_state: ACTIVE
    name: name_example
    nameservers:
    - hostname: hostname_example
    scope: GLOBAL
    self_uri: _self_example
    serial: 56
    time_created: '2013-10-20T19:20:30+01:00'
    version: version_example
    view_id: ocid1.view.oc1..xxxxxxEXAMPLExxxxxx
    zone_transfer_servers:
    - address: address_example
      is_transfer_destination: true
      is_transfer_source: true
      port: 56
    zone_type: PRIMARY
  type: complex