Runner Types
| Runner | Description | Use Case |
|---|---|---|
host | Local machine execution | Default, fast, no isolation |
docker | Container execution | Isolated, reproducible, tool packaging |
ssh | Remote machine execution | Distributed scanning, remote resources |
Host Runner
Executes commands on the local machine using the shell.Configuration
Characteristics
- Uses
sh -cfor command execution - Inherits environment from Osmedeus process
- No isolation between steps
- Fastest execution
Docker Runner
Executes commands inside Docker containers.Module-Level Configuration
Runner Config Options
| Option | Type | Description |
|---|---|---|
image | string | Docker image (required) |
volumes | []string | Volume mounts (host:container) |
environment | []string | Environment variables |
persistent | bool | Keep container running between steps |
network | string | Docker network name |
extra_args | []string | Additional docker run arguments |
Execution Modes
Ephemeral (default): Each step runsdocker run --rm
docker exec
Per-Step Docker (remote-bash)
Use Docker for specific steps without module-level runner:SSH Runner
Executes commands on remote machines via SSH.Module-Level Configuration
Runner Config Options
| Option | Type | Description |
|---|---|---|
host | string | SSH hostname (required) |
port | int | SSH port (default: 22) |
user | string | SSH username (required) |
key_file | string | Path to private key |
password | string | SSH password (less secure) |
known_hosts | string | Path to known_hosts file |
Per-Step SSH (remote-bash)
Use SSH for specific steps:File Transfer
Copy files from remote to local:Runner Interface
All runners implement this interface:Lifecycle
Choosing a Runner
| Scenario | Recommended Runner |
|---|---|
| Simple local scans | host |
| Tool isolation | docker |
| Reproducible builds | docker |
| Remote server with tools | ssh |
| Distributed scanning | ssh or distributed mode |
| Mixed environments | remote-bash per step |
Best Practices
Docker
-
Use specific image tags
-
Mount only needed volumes
-
Use persistent mode for many steps
SSH
-
Use key authentication
-
Parameterize host details
-
Check remote tool availability
remote-bash
-
Use for hybrid workflows
- Local file preparation
- Remote heavy scanning
- Local result processing
-
Transfer results back
Next Steps
- Step Types - Using remote-bash
- Deployment - Distributed mode
- Extending Runners - Custom runners