Skip to content

Configuration Reference

Complete reference for every key in ranger-config.yml.

Looking for a full example to copy? See Example ranger.yml — the complete annotated config with minimal, scheduled, and cloud-publishing variants.

For the practical how-to, see Configuration. For the formal schema spec, see Configuration Model.


environment

KeyTypeRequiredDefaultDescription
environment.namestringYesShort label used in output folder names and report filenames. Alphanumeric and hyphens recommended.
environment.clusterNamestringNoSame as nameDisplay name shown in report headers and diagrams.
environment.descriptionstringNoFree-text description included in report metadata.
yaml
environment:
  name: tplabs-prod-01
  clusterName: tplabs-prod-01
  description: "4-node Dell AX-760 production cluster"

targets.cluster

KeyTypeRequiredDefaultDescription
targets.cluster.fqdnstringOne of fqdn / nodesCluster FQDN or NetBIOS name. Resolved at runtime for WinRM connections.
targets.cluster.nodesstring[]One of fqdn / nodesResolved from ArcList of individual node FQDNs. Used when the cluster name does not resolve or when direct node addressing is preferred.
yaml
targets:
  cluster:
    fqdn: tplabs-clus01.contoso.com
    nodes:
      - tplabs-01-n01.contoso.com
      - tplabs-01-n02.contoso.com

If both are omitted, Ranger attempts to resolve nodes from Azure Arc resource properties. This requires an active Az context and valid Azure target metadata.


targets.azure

KeyTypeRequiredDefaultDescription
targets.azure.subscriptionIdstring (GUID)NoAzure subscription containing the cluster's Arc and resource group. Required for Azure-side collectors.
targets.azure.tenantIdstring (GUID)NoAzure AD tenant. Required when the subscription is in a different tenant than the default Az context.
targets.azure.resourceGroupstringNoResource group name containing the Arc cluster and related resources.
yaml
targets:
  azure:
    subscriptionId: 00000000-0000-0000-0000-000000000000
    tenantId: 11111111-1111-1111-1111-111111111111
    resourceGroup: rg-azlocal-prod-01

Omitting the entire targets.azure section skips all Azure-side collectors gracefully.


targets.bmc

KeyTypeRequiredDefaultDescription
targets.bmc.endpointsobject[]No[]List of BMC/Redfish endpoint objects. Required for hardware domain discovery.
targets.bmc.endpoints[].hoststringYes (per entry)BMC hostname or IP address (e.g., idrac-node-01.contoso.com).
yaml
targets:
  bmc:
    endpoints:
      - host: idrac-node-01.contoso.com
      - host: idrac-node-02.contoso.com
      - host: idrac-node-03.contoso.com
      - host: idrac-node-04.contoso.com

Omitting targets.bmc or providing an empty endpoints list means hardware discovery runs without Redfish data. The hardware collector will still collect what it can over WinRM.


credentials

credentials.azure

KeyTypeRequiredDefaultDescription
credentials.azure.methodstringNoexisting-contextHow Ranger authenticates to Azure. See values below.

Valid values for method:

ValueBehaviour
existing-contextUses the current Get-AzContext session. Requires Connect-AzAccount before running.
managed-identityUses the managed identity of the execution host. For Azure-hosted runners.
device-codePrompts for device-code interactive authentication.
service-principalUses credentials.azure.clientId + credentials.azure.clientSecretRef.
azure-cliFalls back to Azure CLI (az login) context.

For service principal:

yaml
credentials:
  azure:
    method: service-principal
    clientId: 22222222-2222-2222-2222-222222222222
    clientSecretRef: keyvault://kv-ranger/sp-secret
    tenantId: 11111111-1111-1111-1111-111111111111

NOTE

kv-ranger in these examples is a placeholder vault name, not a vault Ranger creates or requires. Substitute your actual Key Vault. v2.6.3 (#292) removed the fake keyvault://kv-ranger/* placeholders from the default config so a bare invocation no longer dies resolving a vault the operator never configured.

credentials.cluster

KeyTypeRequiredDefaultDescription
credentials.cluster.usernamestringNoWinRM username in DOMAIN\user or user@domain format.
credentials.cluster.passwordstringNoPlaintext password. Not recommended — use passwordRef instead.
credentials.cluster.passwordRefstringNoKey Vault secret URI. See Key Vault References.

credentials.domain

Same keys as credentials.cluster. Used for domain-joined operations when the domain credential differs from the cluster WinRM credential. Omit to use the cluster credential for both.

credentials.bmc

Same keys as credentials.cluster. Used for BMC/Redfish authentication. Required when targets.bmc.endpoints is populated.

yaml
credentials:
  azure:
    method: existing-context
  cluster:
    username: CONTOSO\ranger-read
    passwordRef: keyvault://kv-ranger/cluster-read
  domain:
    username: CONTOSO\ranger-read
    passwordRef: keyvault://kv-ranger/domain-read
  bmc:
    username: root
    passwordRef: keyvault://kv-ranger/idrac-root

domains

KeyTypeRequiredDefaultDescription
domains.includestring[]NoAll domainsCollect only these named domains. Overrides exclude when both are set.
domains.excludestring[]NoNoneSkip these named domains from an otherwise full run.
domains.hintsobjectNoVariant hints passed to collectors. See below.

Valid domain names:

NameAliasesCollects
clustertopologyCluster identity, nodes, quorum, update posture
storage-networkingstorage, networkingS2D pools, CSVs, vSwitches, RDMA, ATC
identity-securityidentity, securityAD/workgroup, BitLocker, WDAC, Defender, RBAC
azure-integrationazureArc, policy, monitoring, backup, ASR, AKS
hardwareoemRedfish, firmware, disks, memory, GPUs, BMC posture
management-performancemanagement, performanceWAC, agents, counters, event digest
waf-assessmentWAF rule scoring, pillar results, roadmap, advisor recommendations

The following domains are computed by v2.5.0 analyzers after collection and do not require separate configuration — they are always included when the underlying collector data is available:

Analyzer domainSource dataOutput
capacityAnalysiscluster + storagePer-node + cluster vCPU/memory/storage/pool headroom with Healthy/Warning/Critical status
vmUtilizationvirtualMachinesIdle/underutilized VM classification with rightsizing proposals and freed-resource savings
storageEfficiencystorage-networkingPer-volume dedup state, dedup ratio, saved GiB, thin-provisioning coverage, waste class tag
licenseInventoryazure-integration + virtualMachinesGuest SQL instances (edition, version, cores, license model, AHB eligibility) and Windows Server instances
yaml
domains:
  include: []    # empty = all
  exclude:
    - hardware   # skip if no BMC access

Variant Hints

yaml
domains:
  hints:
    topology: local-key-vault       # cluster uses local identity with Key Vault
    controlPlaneMode: disconnected  # cluster is in disconnected operations mode

Hints guide collector behaviour and report wording. They do not override observed facts.


output

KeyTypeRequiredDefaultDescription
output.modestringNocurrent-statecurrent-state for operational snapshots; as-built for formal handoff packages.
output.formatsstring[]No[html, markdown, json, svg]Report formats to render.
output.rootPathstringNoC:\AzureLocalRangerRoot directory where Ranger creates the timestamped output folder.
output.showProgressboolNotrueShow a live per-collector progress display. Requires PwshSpectreConsole; falls back to Write-Progress if absent. Suppressed in CI and -Unattended mode.

Valid format values:

ValueOutput
htmlHTML report (all tiers)
markdownMarkdown report
jsonRaw manifest export
json-evidenceRaw resource-only inventory JSON with _metadata envelope; no scoring or run metadata (v2.0.0)
svgSVG diagrams
drawiodraw.io XML diagrams
docxWord document
xlsxExcel workbook (inventory + findings)
pdfPDF (rendered from HTML)
pptxPowerPoint executive presentation built via System.IO.Packaging; no Office dependency (v2.5.0)
powerbiPower BI CSV star-schema exports under a powerbi/ folder (v2.0.0)
yaml
output:
  mode: as-built
  formats: [html, markdown, docx, xlsx, pdf, svg]
  rootPath: C:\AzureLocalRanger
  showProgress: true

behavior

KeyTypeRequiredDefaultDescription
behavior.transportstringNoautoWinRM transport mode. auto tries WinRM first; falls back to Arc Run Command when nodes are unreachable. winrm forces WinRM only. arc forces Arc Run Command only.
behavior.degradationModestringNogracefulHow to handle collectors whose transport is confirmed unreachable. graceful skips with status: skipped. strict fails the entire run.
behavior.promptForMissingCredentialsboolNotruePrompt interactively for unresolved cluster, domain, or BMC credentials. This does not select the Azure authentication method.
behavior.promptForMissingRequiredboolNotrueAfter auto-discovery, prompt interactively for structural values still required by the selected collectors.
behavior.retryCountintNo2Number of WinRM retry attempts per operation before marking a collector as failed.
behavior.timeoutSecondsintNo30WinRM operation timeout in seconds.
behavior.skipUnavailableOptionalDomainsboolNotrueSkip optional collectors silently when their required resources are absent.
yaml
behavior:
  transport: auto
  degradationMode: graceful
  promptForMissingCredentials: true
  promptForMissingRequired: true
  retryCount: 2
  timeoutSeconds: 30

Key Vault References

Any password, clientSecret, or similar credential field can be replaced with a Key Vault reference URI:

text
keyvault://<vault-name>/<secret-name>

Ranger resolves the reference at runtime using the current Azure identity. The vault must be accessible from the execution machine.

yaml
credentials:
  cluster:
    username: CONTOSO\ranger-read
    passwordRef: keyvault://kv-ranger/cluster-read-password

Requirements:

  • An active Az context with Get-AzKeyVaultSecret access to the vault
  • The vault name must match an existing Key Vault in the configured subscription
  • The secret must exist and not be disabled or expired

What Happens When Keys Are Omitted

Omitted keyBehaviour
targets.cluster.fqdn and targets.cluster.nodesRanger attempts subscription-scoped Arc discovery, then local name resolution; local collectors may be skipped or validation may fail if no endpoint can be resolved
targets.azure (entire section)All Azure-side collectors skip gracefully
targets.bmc (entire section)Redfish hardware collection skipped; WinRM-based hardware facts still collected
credentials.clusterRanger uses current Windows identity; prompts if promptForMissingCredentials: true
credentials.azureDefaults to existing-context
domains.include (empty)All domains collected
behavior (entire section)All defaults apply (transport: auto, degradationMode: graceful, etc.)
output.showProgressDefaults to true (progress display on)

Released under the MIT License.