cloudera.cluster.host module – Manage Cloudera Manager hosts

Note

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

It is not included in ansible-core. To check whether it is installed, run ansible-galaxy collection list.

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.host.

New in cloudera.cluster 4.4.0

Synopsis

  • Allows for the management of Cloudera Manager hosts.

  • Functionality includes creation and deletion of hosts; host cluster assignment, host template, role config group assignment, and host and role instance configuration.

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

The name of the associated (attached) cluster.

To remove from a cluster, omit and set purge=True.

config

aliases: params, parameters

dictionary

The host configuration overrides to set.

To unset a parameter, use None as the value.

debug

aliases: debug_endpoints

boolean

Capture the HTTP interaction logs with the CM API endpoint.

Choices:

  • false ← (default)

  • true

delay

aliases: polling_interval

integer

Delay (interval), in seconds, between each attempt.

Default: 15

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.

host_id

string

The unique identifier of the host. Read-only.

One of name or host_id is required.

host_template

aliases: template

string

The host template (and associated role instances) to apply to the host.

ip_address

aliases: host_ip

string

The IP address of the host.

maintenance

aliases: maintenance_mode

boolean

Flag for whether the host should be in maintenance mode.

Choices:

  • false

  • true

message

aliases: msg

string

Message to log for any changes to the entity.

Default: "Managed by Ansible"

name

aliases: cluster_hostname

string

The name of the host.

One of name or host_id is required.

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.

purge

boolean

Flag for whether the declared role configuration overrides, tags, and associated role instance (via host_template or role_config_groups) should append to existing entries or overwrite, i.e. reset, to only the declared entries.

To clear all configuration and assignments, set empty dictionaries, e.g. config={}, or omit the parameter, e.g. role_config_groups, and set purge=True.

Choices:

  • false ← (default)

  • true

rack_id

string

The rack ID for this host.

role_config_groups

list / elements=dictionary

Role config groups (and associated role instances) to apply to the host.

name

string

The name of the role config group (and associated role instance) on the host.

One of role_config_groups[].type or role_config_groups[].name is required.

service

aliases: service_name

string / required

The service of the role config group (and associated role instance) on the host.

type

aliases: role_type

string

The base role type of the role config group (and associated role instance) on the host.

One of role_config_groups[].type or role_config_groups[].name is required.

roles

list / elements=dictionary

Role configuration overrides for the host.

config

aliases: params, parameters

dictionary

The host configuration overrides to set.

To unset a parameter, use None as the value.

service

aliases: service_name

string / required

The service of the role instance on the host.

type

aliases: role_type

string / required

The role type of the role instance on the host.

skip_redacted

aliases: redacted

boolean

Flag indicating if the declared role configurations overrides and tags should skipped REDACTED parameters during reconciliation.

If set, the module will not attempt to update any existing parameter with a REDACTED value.

Otherwise, the parameter value will be overridden.

Choices:

  • false ← (default)

  • true

ssl_ca_cert

aliases: tls_cert, ssl_cert

path

Path to SSL CA certificate to use for validation.

state

string

State of the host.

The states started, stopped, and restarted refer the state of the host’s role instances.

Choices:

  • "present" ← (default)

  • "absent"

  • "started"

  • "stopped"

  • "restarted"

tags

dictionary

A set of tags applied to the host.

To unset a tag, use None as its value.

timeout

aliases: polling_timeout

integer

Timeout, in seconds, before failing when joining a cluster.

Default: 300

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, if not supported the action will be skipped.

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

See Also

See also

cloudera.cluster.host_info

Gather information about Cloudera Manager hosts.

Examples

- name: Create a host
  cloudera.cluster.host:
    host: "example.cloudera.host"
    username: "will_jordan"
    password: "S&peR4Ec*re"
    rack_id: "/default"
    cluster_hostname: "Ecs_node_01"
    host_ip: "10.9.8.7"
    state: "present"

- name: Attach a host to the Cluster
  cloudera.cluster.host:
    host: "example.cloudera.host"
    username: "will_jordan"
    name: "Base_Edge2AI_Node"
    password: "S&peR4Ec*re"
    cluster_hostname: "Ecs_node_01"
    state: "attached"

- name: Detach a host to the Cluster
  cloudera.cluster.host:
    host: "example.cloudera.host"
    username: "will_jordan"
    name: "Base_Edge2AI_Node"
    password: "S&peR4Ec*re"
    cluster_hostname: "Ecs_node_01"
    state: "detached"

- name: Remove a host
  cloudera.cluster.host:
    host: "example.cloudera.host"
    username: "will_jordan"
    password: "S&peR4Ec*re"
    cluster_hostname: "Ecs_node_01"
    state: "absent"

Return Values

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

Key

Description

host

dictionary

Details about the host

Returned: success

cluster_name

string

The associated cluster for the host.

Returned: when supported

commission_state

string

Commission state of the host.

Returned: always

config

dictionary

Set of host configurations.

Returned: when supported

distribution

dictionary

OS distribution details.

Returned: when supported

health_checks

list / elements=dictionary

Lists all available health checks for the host.

Returned: when supported

explanation

string

The explanation of this health check.

Returned: when supported

name

string

Unique name of this health check.

Returned: always

summary

string

The high-level health status of the health check.

Returned: always

Sample: "['DISABLED', 'HISTORY_NOT_AVAILABLE', 'NOT_AVAILABLE', 'GOOD', 'CONCERNING', 'BAD']"

suppressed

boolean

Whether this health check is suppressed.

A suppressed health check is not considered when computing the host’s overall health.

Returned: when supported

health_summary

string

The high-level health status of the host.

Returned: always

Sample: "['DISABLED', 'HISTORY_NOT_AVAILABLE', 'NOT_AVAILABLE', 'GOOD', 'CONCERNING', 'BAD']"

host_id

string

The unique ID of the host.

This is not the same as the hostname (FQDN); host_id is a distinct value that remains static across hostname changes.

Returned: always

hostname

string

The hostname of the host.

Returned: when supported

ip_address

string

The IP address of the host.

Returned: always

last_heartbeat

string

Time when the host agent sent the last heartbeat.

Returned: when supported

maintenance_mode

boolean

Whether the host is in maintenance mode.

Returned: when supported

maintenance_owners

list / elements=string

The list of objects that trigger this host to be in maintenance mode.

Returned: when supported

Sample: ["CLUSTER", "SERVICE", "ROLE", "HOST", "CONTROL_PLANE"]

num_cores

integer

The number of logical CPU cores on this host.

Returned: when supported

numPhysicalCores

integer

The number of physical CPU cores on this host.

Returned: when supported

rack_id

string

The rack ID for this host.

Returned: when supported

roles

list / elements=string

The list of role instances, i.e. role identifiers, assigned to this host.

Returned: when supported

tags

dictionary

The dictionary of tags for the host.

Returned: when supported

total_phys_mem_bytes

string

he amount of physical RAM on this host, in bytes.

Returned: when supported

Authors

  • Ronald Suplina (@rsuplina)

  • Webster Mudge (@wmudge)