cloudera.cluster.parcel module – Manage the state of parcels on a cluster

Note

This module is part of the cloudera.cluster collection (version 4.4.0).

To install it, use: ansible-galaxy collection install cloudera.cluster. You need further requirements to be able to use this module, see Requirements for details.

To use it in a playbook, specify: cloudera.cluster.parcel.

Synopsis

  • Facilitates the management of parcels of a CDP cluster according to the specified state.

  • States lie on a continuum from absent, i.e. available remotely, downloaded, distributed, and activated/present.

  • The module manages the transitions between these states, e.g. if a parcel is distributed and state=downloaded, the module will deactivate the parcel from the cluster hosts.

Requirements

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

  • cm-client

Parameters

Parameter

Comments

agent_header

aliases: user_agent

string

Set the HTTP user agent header when interacting with the CM API endpoint.

Default: "ClouderaFoundry"

cluster

aliases: cluster_name

string / required

The name of the cluster

debug

aliases: debug_endpoints

boolean

Capture the HTTP interaction logs with the CM API endpoint.

Choices:

  • false ← (default)

  • true

force_tls

boolean

Flag to force TLS during CM API endpoint discovery.

If False, discovery will first try HTTP and follow any redirects.

Choices:

  • false ← (default)

  • true

host

aliases: hostname

string

Hostname of the CM API endpoint.

If set, the host parameter will trigger CM API endpoint discovery, which will follow redirects.

Mutually exclusive with url.

name

aliases: parcel, product

string / required

The name of the product, e.g. CDH, Impala

parcel_version

string / required

The semantic version of the product, e.g. 1.1.0, 2.3.0.

password

string / required

Password for access to the CM API endpoint.

This parameter is set to no_log.

port

integer

Port of the CM API endpoint.

If set, CM API endpoint discovery will connect to the designated port first and will follow redirects.

Default: 7180

proxy_server

aliases: proxy, http_proxy

string

Set the HTTP/S proxy server when interacting with the CM API endpoint.

ssl_ca_cert

aliases: tls_cert, ssl_cert

path

Path to SSL CA certificate to use for validation.

state

string

State of the parcel.

present is mapped to activated.

Choices:

  • "downloaded"

  • "distributed"

  • "activated"

  • "present" ← (default)

  • "absent"

url

aliases: endpoint, cm_endpoint_url

string

The CM API endpoint URL and should include scheme, host, port, and API root path.

Mutually exclusive with host.

username

aliases: user

string / required

Username for access to the CM API endpoint.

verify_tls

boolean

Verify the TLS certificates for the CM API endpoint.

Choices:

  • false

  • true ← (default)

version

aliases: api_version

string

API version of the CM API endpoint.

Default: "True"

Attributes

Attribute

Support

Description

check_mode

Support: full

Can run in check_mode and return changed status prediction without modifying target

diff_mode

Support: full

Will return details on what has changed (or possibly needs changing in check_mode), when in diff mode

platform

Platforms: all

Target OS/families that can be operated against

Examples

- name: Download, distribute and activate a parcel on a cluster
  cloudera.cluster.parcel:
    host: example.cloudera.com
    username: "jane_smith"
    password: "S&peR4Ec*re"
    cluster_name: "Example_Cluster"
    product: "ECS"
    parcel_version: "1.5.1-b626-ecs-1.5.1-b626.p0.42068229"
    state: "activated"

- name: Downloand and distribute a parcel on a cluster
  cloudera.cluster.parcel:
    host: example.cloudera.com
    username: "jane_smith"
    password: "S&peR4Ec*re"
    cluster_name: "Example_Cluster"
    product: "ECS"
    parcel_version: "1.5.1-b626-ecs-1.5.1-b626.p0.42068229"
    state: "distributed"

- name: Remove the parcel on a specified cluster
  cloudera.cluster.parcel:
    host: example.cloudera.com
    username: "jane_smith"
    password: "S&peR4Ec*re"
    cluster_name: "Example_Cluster"
    product: "ECS"
    parcel_version: "1.5.1-b626-ecs-1.5.1-b626.p0.42068229"
    state: "absent"

- name: Undistribute the parcel on a specified cluster (if "distributed" or "activated")
  cloudera.cluster.parcel:
    host: example.cloudera.com
    username: "jane_smith"
    password: "S&peR4Ec*re"
    cluster_name: "Example_Cluster"
    product: "ECS"
    parcel_version: "1.5.1-b626-ecs-1.5.1-b626.p0.42068229"
    state: "downloaded"  # Assuming the current state is "distributed" or "activated"

Return Values

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

Key

Description

parcel

dictionary

Details about the parcel

Returned: success

cluster_name

dictionary

The name of the enclosing cluster.

Returned: always

description

string

Description of the parcel.

Returned: when supported

display_name

string

Display name of the parcel.

Returned: when supported

product

string

The name of the product.

Returned: always

stage

string

Current stage of the parcel.

Returned: always

state

dictionary

The state of the parcel.

This shows the progress of state transitions and if there were any errors.

Returned: when supported

version

string

The version of the product.

Returned: always


Authors

  • Ronald Suplina (@rsuplina)

Collection links