Device Profiles
Device profiles are one of the most important abstractions in rauto. They determine how prompts, modes, and command execution behave for a target platform.
What a device profile does
A device profile tells the execution engine how to work with a target type.
It affects things such as:
- prompt recognition
- mode transitions
- execution state handling
- Linux shell exit-code capture behavior
- compatibility between raw command execution and higher-level workflows
This is why the same CLI can drive both:
- network devices such as Cisco, Huawei, Juniper, or Fortinet
- Linux servers and jump hosts
Built-in profiles
Current built-in profiles come from rneter.
The README and current source-backed catalog include:
autodetectcisco_ioscisco_xehuaweih3c_comwarehp_comwarehillstone_stoneosjuniper_junosarrayarista_eosaruba_aoscxcisco_asacisco_nxosdell_os10fortinetpaloalto_panostopsecvenustechdptechchaitinqianxinmaipuruijie_oszte_zxroscheckpoint_gaialinux
List them with:
Default profile behavior
rauto now defaults to autodetect.
This is helpful when:
- the same workflow may touch different network platforms
- you want
show, TextFSM parsing, and mode validation to use the resolved profile - you are onboarding saved connections before standardizing explicit profiles
Autodetect resolves the actual built-in profile before execution. It does not infer command mode from the command text, so use --mode when a command must run in a specific state such as Enable, Config, or Shell.
Successful autodetect results are cached locally by host:port in the runtime database. Later connections to the same target can reuse the detected profile instead of probing again.
Force a fresh probe when the target changed or the cache looks wrong:
Use an explicit profile when you want deterministic behavior or know the platform:
Inspecting a profile
Use these commands to inspect or clone profiles:
From the CLI source, profile management currently exposes:
listshowdelete-customcopy-builtindiagnose
Diagnosing profile quality
The current CLI supports:
This is especially useful when:
- prompt transitions are unstable
- a custom profile fails in one mode but not another
- you need a structured output for profile review or troubleshooting
The Web console also exposes prompt/profile diagnostics visually.
Profile Management workspace
The latest Web console presents built-in and custom Profiles in one searchable, collapsible catalog. Select a Profile to inspect its identity, command execution policy, autodetect rules, prompt patterns, interactions, transitions, and lifecycle Hooks without leaving the workspace.
Built-in Profiles remain read-only. Use Copy To Custom Form when you need to adapt one, then edit and save the copied state machine. Diagnostics are attached to the selected Profile and check for unreachable states, transition gaps, duplicate prompt patterns, and potentially ambiguous prompts before rollout.
Lifecycle Hook authoring supports:
after_connect,before_disconnect,after_enter_state, andbefore_exit_statetriggers- a single command or an ordered command flow
- per-command mode and timeout settings
- stop-on-error and maximum-step controls for command flows
- interactive prompt match patterns, predefined responses, and optional matched-input recording
This makes connection initialization and state transitions reusable Profile behavior rather than logic duplicated across individual tasks.
Custom profile lifecycle
Custom profiles are no longer loose files in a template folder. They are stored in SQLite and shared by CLI and Web.
Recommended lifecycle:
- inspect a built-in profile
- copy it to a custom profile
- adjust behavior for your platform or prompt variant
- validate with diagnostics and connection tests
- standardize the custom profile name across saved connections
Example:
Linux shell flavor
The Linux profile adds another important dimension: shell exit-code parsing strategy.
Current options from source:
posixfish
The README also notes that posix accepts the bash alias.
Use --linux-shell-flavor when Linux targets do not behave as expected under the default parsing strategy.
Profile influence on execution modes
Profile selection matters to commands such as:
exectemplateflowtxtx-workfloworchestrateshow
Why:
exec --modedepends on named profile modes such asEnableorConfigflowfalls back to the first mode defined by the selected profile when a step omitsmodeshowmaps profile/platform objects to device commands and TextFSM platforms- transaction and workflow steps need predictable mode behavior to keep rollback and compensation logic safe
Enterprise guidance
Standardize profile names
In larger environments, do not let each operator invent profile naming independently.
Good pattern:
- use built-in profiles whenever possible
- create a small set of approved custom profiles
- bind those profile names into saved connections and import templates
Diagnose before rollout
Before using a new profile in:
- transaction blocks
- workflows
- orchestration
validate it with:
rauto connection testrauto profile autodetect -vrauto profile diagnose- one or two
execcommands in the expected modes - one or two
showobjects that should parse cleanly
Treat Linux separately from network OSes
Even though rauto can handle both, they should usually be documented with different operational guardrails.
- Linux targets focus more on shell semantics, file transfer, and restart workflows
- network targets focus more on prompt states, config mode, and rollback confidence