-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathservers.example.toml
More file actions
70 lines (57 loc) · 2.63 KB
/
servers.example.toml
File metadata and controls
70 lines (57 loc) · 2.63 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
# SSH MCP Server Inventory Example
#
# Connection details (host, port, user, key) are sourced from ~/.ssh/config automatically.
# Server names below MUST match SSH config Host entries.
[settings]
# Path to SSH config file (supports ~ expansion). Host aliases, port, user,
# identity file, and ProxyJump chains are read from here.
ssh_config_path = "~/.ssh/config"
# Default command execution timeout in SECONDS. Range 1..3600. Individual
# servers may override via `timeout = N` in their [servers.*] block.
command_timeout = 30
# Maximum bytes to capture from stdout/stderr per command. Longer output is
# truncated with a `[... output truncated]` marker. Minimum 1024.
max_output_bytes = 51200
# Seconds an SSH connection may be idle before the background eviction loop
# closes it to free resources. Minimum 10. Eviction scan interval is 60s.
connection_idle_timeout = 300
# Verify server identity against known_hosts (recommended: true).
# Set to false ONLY for ephemeral/dynamic hosts where host keys change
# frequently. Disabling this removes MITM protection.
known_hosts = true
# Maximum concurrent SSH connections during `execute_on_group` calls.
# Range 1..100. Higher values speed up large-fleet rollouts but may
# exhaust file descriptors or trigger fleet-wide load spikes.
max_parallel_hosts = 10
# =============================================================================
# GROUP DEFINITIONS
# =============================================================================
[groups]
production = { description = "Production servers" }
staging = { description = "Staging servers" }
web = { description = "Web application servers" }
database = { description = "Database servers" }
monitoring = { description = "Monitoring and observability" }
# =============================================================================
# SERVER DEFINITIONS
# =============================================================================
# Basic server (no jump host, no custom user)
[servers.web-prod-01]
description = "Production web server: nginx, php-fpm (Ubuntu 22.04)"
groups = ["production", "web"]
# Server with custom SSH user
[servers.db-prod-01]
description = "Production database: PostgreSQL 15 (Ubuntu 22.04)"
groups = ["production", "database"]
user = "dbadmin"
# Server accessed via jump host (bastion)
[servers.web-staging-01]
description = "Staging web server: nginx, node.js (Ubuntu 22.04)"
groups = ["staging", "web"]
jump_host = "bastion"
# Server with multiple groups and custom user
[servers.monitor-01]
description = "Monitoring: Prometheus, Grafana, Alertmanager (Ubuntu 22.04)"
groups = ["production", "monitoring"]
user = "monitor"
jump_host = "bastion"