Skip to main content

Documentation Index

Fetch the complete documentation index at: https://mintlify.com/fboender/ansible-cmdb/llms.txt

Use this file to discover all available pages before exploring further.

Some templates support parameters that influence their output. Parameters customize template behavior without requiring custom template files.

Specifying Parameters

Use the -p or --params option with comma-separated key=value pairs:
ansible-cmdb -t html_fancy -p local_js=1,collapsed=1 out/ > overview.html
Parameters must not contain spaces. Use commas to separate multiple parameters.

Examples

ansible-cmdb -p local_js=1 out/ > overview.html

html_fancy Parameters

The default html_fancy template supports these parameters:

local_js

Values: 0 (default) or 1 Load JavaScript libraries from local disk instead of CDN:
ansible-cmdb -p local_js=1 out/ > overview.html
When to use:
  • Offline environments without internet access
  • Security policies prohibit external resources
  • Faster loading in air-gapped networks
Requirements: Local copies of required libraries must be present in the same directory as the generated HTML.

collapsed

Values: 0 (default) or 1 Collapse all host details by default:
ansible-cmdb -p collapsed=1 out/ > overview.html
When to use:
  • Large numbers of hosts (>100)
  • Overview table is more important than details
  • Faster initial page load
Users can still expand individual hosts by clicking.

host_details

Values: 1 (default) or 0 Control whether host details are rendered at all:
ansible-cmdb -p host_details=0 out/ > overview.html
When to use:
  • Only need the overview table
  • Significantly reduce file size
  • Faster rendering for large environments (>500 hosts)
With host_details=0, clicking host names in the table has no effect.

skip_empty

Values: 0 (default) or 1 Skip hosts for which no facts were gathered:
ansible-cmdb -p skip_empty=1 out/ > overview.html
When to use:
  • Filter out unreachable hosts
  • Only show hosts with complete information
  • Clean up output after failed fact gathering
What gets skipped:
  • Hosts without ansible_facts key
  • Hosts with gathering errors
  • Manually added hosts without facts

html_fancy_split Parameters

The html_fancy_split template accepts the same parameters as html_fancy:
ansible-cmdb -t html_fancy_split -p local_js=1,collapsed=1 -i hosts out/
Note: This template generates a cmdb/ directory instead of a single file.

Common Parameter Combinations

Offline Environment

ansible-cmdb -p local_js=1 out/ > overview.html
Use local resources for air-gapped environments.

Large Environment Optimization

ansible-cmdb -p collapsed=1,skip_empty=1 out/ > overview.html
Collapse details and skip unreachable hosts for faster loading.

Overview Only

ansible-cmdb -p host_details=0,skip_empty=1 out/ > overview.html
Generate only the table without detailed host information.

Production Report

ansible-cmdb -t html_fancy \
  -p local_js=1,skip_empty=1 \
  -i hosts \
  --limit production \
  out/ > prod-report.html
Combine parameters with other options for comprehensive filtering.

Using Parameters in Custom Templates

Access parameters in custom templates via the params dictionary:
<%! from ansiblecmdb.util import to_bool %>

<%
  # Get parameter with default value
  local_js = to_bool(params.get('local_js', False))
  collapsed = to_bool(params.get('collapsed', False))
  skip_empty = to_bool(params.get('skip_empty', False))
%>

% if local_js:
  <script src="local/jquery.min.js"></script>
% else:
  <script src="https://code.jquery.com/jquery-3.6.0.min.js"></script>
% endif

% if collapsed:
  <% collapsed_class = "collapsed" %>
% else:
  <% collapsed_class = "" %>
% endif

Boolean Parameters

Use the to_bool() utility to convert parameter strings:
<%! from ansiblecmdb.util import to_bool %>

<%
  my_param = to_bool(params.get('my_param', False))
%>

% if my_param:
  <p>Parameter is enabled</p>
% endif
Accepted boolean values:
  • True: 1, true, True, yes, Yes
  • False: 0, false, False, no, No

String Parameters

<%
  title = params.get('title', 'Ansible CMDB')
  theme = params.get('theme', 'default')
%>

<title>${title}</title>
<body class="theme-${theme}">
Use with:
ansible-cmdb -p title="Production Hosts",theme=dark -t ./my_template.tpl out/

Numeric Parameters

<%
  max_hosts = int(params.get('max_hosts', 100))
  port = int(params.get('port', 8080))
%>

Parameter Validation

Validate parameters in your templates:
<%
  theme = params.get('theme', 'light')
  valid_themes = ['light', 'dark', 'blue']
  
  if theme not in valid_themes:
    theme = 'light'
%>

Built-in Template Parameters Reference

html_fancy & html_fancy_split

ParameterTypeDefaultDescription
local_jsBoolean0Load resources from local disk
collapsedBoolean0Collapse host details by default
host_detailsBoolean1Render host details sections
skip_emptyBoolean0Skip hosts without facts

Other Templates

Most other templates (txt_table, csv, json, markdown, sql) do not currently support parameters. They generate output in a fixed format.

Combining with Other Options

Parameters work with all other ansible-cmdb options:
# Parameters + inventory + columns + limit
ansible-cmdb \
  -t html_fancy \
  -p local_js=1,collapsed=1 \
  -i hosts \
  --columns name,fqdn,os,ip,vcpus,ram \
  --limit webservers \
  out/ > webservers.html
# Parameters + custom columns + fact cache
ansible-cmdb \
  -p skip_empty=1 \
  -C custom_cols.conf \
  -f /var/cache/ansible/facts \
  > cmdb.html

See Also

Build docs developers (and LLMs) love