dellemc.openmanage.idrac_lifecycle_controller_logs module – Export Lifecycle Controller logs to a network share or local path with advanced features.

Note

This module is part of the dellemc.openmanage collection (version 11.0.0).

You might already have this collection installed if you are using the ansible package. 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 dellemc.openmanage. You need further requirements to be able to use this module, see Requirements for details.

To use it in a playbook, specify: dellemc.openmanage.idrac_lifecycle_controller_logs.

New in dellemc.openmanage 2.1.0

Synopsis

  • Export Lifecycle Controller logs to a given network share or local path.

  • Support for filtering by date range, severity, category, and message content.

  • Support for multi-format export (JSON, CSV, text) with metadata envelope.

  • Support for compliance export verification, filter optimization, storage monitoring, and comment insertion.

Requirements

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

  • python >= 3.9.6

Parameters

Parameter

Comments

ca_path

path

added in dellemc.openmanage 5.0.0

The Privacy Enhanced Mail (PEM) file that contains a CA certificate to be used for the validation.

category

list / elements=string

List of Dell OEM categories to filter log entries.

Uses server-side OData $filter for efficient querying.

Common categories include Audit, Configuration, Updates, SystemHealth, Storage, and WorkNotes.

cert_fingerprint

string

SHA-256 fingerprint of the expected TLS certificate (hex digest, with or without colons).

When supplied together with validate_certs=false, the module verifies the remote certificate’s fingerprint instead of performing full CA validation.

date_end

string

End date for filtering log entries (ISO 8601 format).

Only entries created on or before this date are included.

Uses server-side OData $filter for efficient querying.

Must not be earlier than date_start.

Example format - 2026-08-31T23:59:59Z or 2026-08-31.

date_start

string

Start date for filtering log entries (ISO 8601 format).

Only entries created on or after this date are included.

Uses server-side OData $filter for efficient querying.

Example format - 2026-08-01T00:00:00Z or 2026-08-01.

enforce_validate_certs

boolean

If true and validate_certs is false, the module will fail with an error instead of just emitting a warning.

Choices:

  • false ← (default)

  • true

export_format

string

Format for exporting log entries to local file.

json exports with metadata envelope including server info and filters applied.

csv exports as comma-delimited file with header row.

text exports one entry per line in human-readable format.

Only applicable when exporting to local path.

Choices:

  • "json" ← (default)

  • "csv"

  • "text"

fetch_metadata_only

boolean

Fetch only log service metadata without retrieving log entries.

Returns statistics like total entries, oldest/newest timestamps, severity breakdown.

Only applicable when using local file path.

Choices:

  • false ← (default)

  • true

filter_optimization

string

Filter optimization mode for combined filter operations.

single_query uses server-side filtering with OData query parameters.

sequential applies filters sequentially on client side.

auto automatically selects the best mode based on filter complexity.

Choices:

  • "single_query"

  • "sequential"

  • "auto" ← (default)

idrac_ip

string / required

iDRAC IP Address.

idrac_password

aliases: idrac_pwd

string / required

iDRAC user password.

If the password is not provided, then the environment variable IDRAC_PASSWORD is used.

Example: export IDRAC_PASSWORD=password

idrac_port

integer

iDRAC port.

Default: 443

idrac_user

string / required

iDRAC username.

If the username is not provided, then the environment variable IDRAC_USERNAME is used.

Example: export IDRAC_USERNAME=username

insert_comment

string

Insert a custom comment into the LC logs during automation workflows.

Maximum length is 256 characters.

Requires ConfigureManager or Login+TestAlerts privilege.

Returns inserted_entry_id and inserted_entry_timestamp on success.

job_wait

boolean

Whether to wait for the running job completion or not.

Choices:

  • false

  • true ← (default)

message_contains

string

Substring to search for in log messages (case-insensitive).

Applied client-side after server-side filters.

Use for searching specific keywords in log messages.

severity

list / elements=string

List of severity levels to filter log entries.

Uses server-side OData $filter for efficient querying.

Valid values are Critical, Warning, and OK.

Choices:

  • "Critical"

  • "Warning"

  • "OK"

share_name

string / required

Network share or local path.

CIFS, NFS network share types are supported.

share_password

aliases: share_pwd

string

Network share user password. This option is mandatory for CIFS Network Share.

share_user

string

Network share user in the format ‘user@domain’ or ‘domain\user’ if user is part of a domain else ‘user’. This option is mandatory for CIFS Network Share.

storage_threshold_pct

integer

Storage overflow monitoring threshold percentage.

When storage utilization exceeds this threshold, a warning is returned.

Set to 0 to disable storage monitoring.

Default is 80 percent.

Default: 80

timeout

integer

added in dellemc.openmanage 5.0.0

The socket level timeout in seconds.

Default: 30

validate_certs

boolean

added in dellemc.openmanage 5.0.0

If false, the SSL certificates will not be validated.

Configure false only on personally controlled sites where self-signed certificates are used.

Prior to collection version 5.0.0, the validate_certs is false by default.

Choices:

  • false

  • true ← (default)

verify_export

boolean

Enable compliance export verification with entry count comparison.

When enabled, compares expected vs actual entry count after export.

Returns export_verification field with verification results.

Choices:

  • false ← (default)

  • true

Notes

Note

  • This module requires ‘Administrator’ privilege for idrac_user.

  • Exporting data to a local share is supported only on iDRAC9-based PowerEdge Servers and later.

  • Run this module from a system that has direct access to Dell iDRAC.

  • This module supports both IPv4 and IPv6 address for idrac_ip.

  • This module does not support check_mode.

  • No job will be created when exporting data to a local share in iDRAC9 and iDRAC 10.

  • The insert_comment parameter requires ConfigureManager or Login+TestAlerts privilege.

  • Server-side OData $filter is used for date_start, date_end, severity, and category filters.

  • The message_contains filter is applied client-side after server-side filtering.

Examples

---
- name: Export lifecycle controller logs to NFS share.
  dellemc.openmanage.idrac_lifecycle_controller_logs:
    idrac_ip: "190.168.0.1"
    idrac_user: "user_name"
    idrac_password: "user_password"
    ca_path: "/path/to/ca_cert.pem"
    share_name: "192.168.0.0:/nfsfileshare"

- name: Export lifecycle controller logs to CIFS share.
  dellemc.openmanage.idrac_lifecycle_controller_logs:
    idrac_ip: "190.168.0.1"
    idrac_user: "user_name"
    idrac_password: "user_password"
    ca_path: "/path/to/ca_cert.pem"
    share_name: "\\\\192.168.0.2\\share"
    share_user: "share_user_name"
    share_password: "share_user_pwd"

- name: Export lifecycle controller logs to LOCAL path.
  dellemc.openmanage.idrac_lifecycle_controller_logs:
    idrac_ip: "190.168.0.1"
    idrac_user: "user_name"
    idrac_password: "user_password"
    ca_path: "/path/to/ca_cert.pem"
    share_name: "/example/export_lc"

- name: Filter logs by date range (AC-001).
  dellemc.openmanage.idrac_lifecycle_controller_logs:
    idrac_ip: "190.168.0.1"
    idrac_user: "user_name"
    idrac_password: "user_password"
    ca_path: "/path/to/ca_cert.pem"
    share_name: "/example/export_lc"
    date_start: "2026-08-01T00:00:00Z"
    date_end: "2026-08-31T23:59:59Z"

- name: Filter logs by severity (AC-002).
  dellemc.openmanage.idrac_lifecycle_controller_logs:
    idrac_ip: "190.168.0.1"
    idrac_user: "user_name"
    idrac_password: "user_password"
    ca_path: "/path/to/ca_cert.pem"
    share_name: "/example/export_lc"
    severity:
      - Critical
      - Warning

- name: Export logs in CSV format (AC-003).
  dellemc.openmanage.idrac_lifecycle_controller_logs:
    idrac_ip: "190.168.0.1"
    idrac_user: "user_name"
    idrac_password: "user_password"
    ca_path: "/path/to/ca_cert.pem"
    share_name: "/example/export_lc/logs.csv"
    export_format: "csv"

- name: Export logs in JSON format with metadata envelope (AC-005).
  dellemc.openmanage.idrac_lifecycle_controller_logs:
    idrac_ip: "190.168.0.1"
    idrac_user: "user_name"
    idrac_password: "user_password"
    ca_path: "/path/to/ca_cert.pem"
    share_name: "/example/export_lc/logs.json"
    export_format: "json"
    date_start: "2026-08-01"
    severity:
      - Critical

- name: Filter logs by category and message content.
  dellemc.openmanage.idrac_lifecycle_controller_logs:
    idrac_ip: "190.168.0.1"
    idrac_user: "user_name"
    idrac_password: "user_password"
    ca_path: "/path/to/ca_cert.pem"
    share_name: "/example/export_lc"
    category:
      - Audit
      - Configuration
    message_contains: "firmware"

- name: Fetch LC log metadata only.
  dellemc.openmanage.idrac_lifecycle_controller_logs:
    idrac_ip: "190.168.0.1"
    idrac_user: "user_name"
    idrac_password: "user_password"
    ca_path: "/path/to/ca_cert.pem"
    share_name: "/tmp"
    fetch_metadata_only: true

- name: Export with compliance verification (AC-006).
  dellemc.openmanage.idrac_lifecycle_controller_logs:
    idrac_ip: "190.168.0.1"
    idrac_user: "user_name"
    idrac_password: "user_password"
    ca_path: "/path/to/ca_cert.pem"
    share_name: "/example/export_lc"
    verify_export: true

- name: Combined filters with optimization (AC-007).
  dellemc.openmanage.idrac_lifecycle_controller_logs:
    idrac_ip: "190.168.0.1"
    idrac_user: "user_name"
    idrac_password: "user_password"
    ca_path: "/path/to/ca_cert.pem"
    share_name: "/example/export_lc"
    date_start: "2026-08-01"
    severity:
      - Critical
    category:
      - SystemHealth
    filter_optimization: "single_query"

- name: Export with storage overflow monitoring (AC-008).
  dellemc.openmanage.idrac_lifecycle_controller_logs:
    idrac_ip: "190.168.0.1"
    idrac_user: "user_name"
    idrac_password: "user_password"
    ca_path: "/path/to/ca_cert.pem"
    share_name: "/example/export_lc"
    storage_threshold_pct: 75

- name: Insert comment into LC logs (AC-009).
  dellemc.openmanage.idrac_lifecycle_controller_logs:
    idrac_ip: "190.168.0.1"
    idrac_user: "user_name"
    idrac_password: "user_password"
    ca_path: "/path/to/ca_cert.pem"
    share_name: "/tmp"
    insert_comment: "Automation workflow started - backup initiated"

Return Values

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

Key

Description

error_info

dictionary

Details of the HTTP Error.

Returned: on HTTP error

Sample: {"error": {"@Message.ExtendedInfo": [{"Message": "Unable to process the request because an error occurred.", "MessageArgs": [], "MessageId": "GEN1234", "RelatedProperties": [], "Resolution": "Retry the operation. If the issue persists, contact your system administrator.", "Severity": "Critical"}], "code": "Base.1.0.GeneralError", "message": "A general error has occurred. See ExtendedInfo for more information."}}

export_verification

dictionary

Export verification results when verify_export is true.

Returned: when verify_export is true

Sample: {"actual_count": 150, "expected_count": 150, "message": "Export verification successful", "verified": true}

exported_entry_count

integer

Number of log entries exported to file.

Returned: when export_format is specified

Sample: 150

filters_applied

dictionary

Summary of filters that were applied to the query.

Returned: when any filter parameter is specified

Sample: {"category": ["Audit"], "date_end": "2026-08-31T23:59:59Z", "date_start": "2026-08-01T00:00:00Z", "message_contains": "firmware", "severity": ["Critical", "Warning"]}

inserted_entry_id

string

ID of the inserted comment entry.

Returned: when insert_comment is provided

Sample: "LC123456"

inserted_entry_timestamp

string

Timestamp of the inserted comment entry.

Returned: when insert_comment is provided

Sample: "2026-08-18T12:00:00Z"

lc_logs

list / elements=string

List of filtered log entries when filters are applied.

Returned: when filters are applied and export_format is not specified

Sample: [{"Created": "2026-08-17T10:00:00Z", "Id": "1", "Message": "System temperature exceeded threshold", "MessageId": "SYS001", "Severity": "Critical"}]

lc_logs_status

dictionary

Status of the export operation along with job details and file path.

Returned: success

Sample: {"ElapsedTimeSinceCompletion": "0", "InstanceID": "JID_274774785395", "JobStartTime": "NA", "JobStatus": "Completed", "JobUntilTime": "NA", "Message": "LCL Export was successful", "MessageArguments": "NA", "MessageID": "LC022", "Name": "LC Export", "PercentComplete": "100", "Status": "Success", "file": "192.168.0.0:/nfsfileshare/190.168.0.1_20210728_133437_LC_Log.log", "retval": true}

log_metadata

dictionary

Log service metadata when fetch_metadata_only is true.

Returned: when fetch_metadata_only is true

Sample: {"max_records": 200, "newest_timestamp": "2026-08-18T12:00:00Z", "oldest_timestamp": "2026-01-01T00:00:00Z", "overwrite_policy": "WrapsWhenFull", "severity_breakdown": {"Critical": 5, "OK": 100, "Other": 25, "Warning": 20}, "storage_utilization_pct": 75.0, "total_entries": 150}

msg

string

Status of the export lifecycle controller logs job.

Returned: always

Sample: "Successfully exported the lifecycle controller logs."

storage_warning

string

Storage overflow warning when utilization exceeds threshold.

Returned: when storage utilization exceeds storage_threshold_pct

Sample: "LC log storage at 85.5% capacity (threshold 80%). Consider exporting and archiving."

Authors

  • Rajeev Arakkal (@rajeevarakkal)

  • Anooja Vardhineni (@anooja-vardhineni)

  • Sapana Gupta (@sapana05)