docs: document multi-host config and per-call host selection
Add a 'Managing Multiple ESXi Hosts' section to the environment reference and CLAUDE.md: numbered ESXI_HOST[_N] families, credential inheritance for suffixed hosts, lazy connections, and the per-call host argument. Update the source layout with servers.py, connection_manager.py, and mixins/_base.py.
This commit is contained in:
parent
9c02d7238c
commit
13e4734ef1
@ -24,6 +24,48 @@ These are required to connect to your VMware infrastructure.
|
|||||||
Only set `VCENTER_INSECURE=true` in development environments. Production deployments should use valid SSL certificates.
|
Only set `VCENTER_INSECURE=true` in development environments. Production deployments should use valid SSL certificates.
|
||||||
</Aside>
|
</Aside>
|
||||||
|
|
||||||
|
## Managing Multiple ESXi Hosts
|
||||||
|
|
||||||
|
mcvsphere can manage a list of ESXi hosts and route each tool call to whichever one you choose. Define the list with numbered `ESXI_*` variables:
|
||||||
|
|
||||||
|
| Variable | Description |
|
||||||
|
|----------|-------------|
|
||||||
|
| `ESXI_HOST` | First host — the **default** used when a call omits `host` |
|
||||||
|
| `ESXI_USER` / `ESXI_PASS` | Credentials for the default host |
|
||||||
|
| `ESXI_INSECURE` / `ESXI_NETWORK` | SSL skip / default network for the default host |
|
||||||
|
| `ESXI_HOST_1`, `ESXI_HOST_2`, … | Additional hosts |
|
||||||
|
| `ESXI_USER_1` / `ESXI_PASS_1` / … | Per-host credentials (optional) |
|
||||||
|
| `ESXI_INSECURE_1` / `ESXI_NETWORK_1` / … | Per-host SSL / network (optional) |
|
||||||
|
|
||||||
|
A suffixed host that omits its own `USER`/`PASS`/`INSECURE`/`NETWORK` inherits the unsuffixed value, so hosts that share credentials only need a `HOST` line:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
ESXI_HOST=10.0.0.10
|
||||||
|
ESXI_USER=root
|
||||||
|
ESXI_PASS=secret
|
||||||
|
ESXI_NETWORK=VM Network
|
||||||
|
|
||||||
|
ESXI_HOST_1=10.0.0.11 # reuses root / secret / VM Network
|
||||||
|
ESXI_HOST_2=10.0.0.12 # reuses root / secret / VM Network
|
||||||
|
```
|
||||||
|
|
||||||
|
Hosts are identified by their `host` value. Connections are established **lazily** on first use, so an unreachable host never blocks startup or the other hosts.
|
||||||
|
|
||||||
|
### Selecting a host per call
|
||||||
|
|
||||||
|
Every tool except `list_servers` accepts an optional `host` argument:
|
||||||
|
|
||||||
|
```text
|
||||||
|
list_servers() → list managed hosts + connection status
|
||||||
|
list_vms(host="10.0.0.11") → VMs on that specific host
|
||||||
|
get_host_info() → omit host → the default host
|
||||||
|
create_vm(name="web", host="10.0.0.12")
|
||||||
|
```
|
||||||
|
|
||||||
|
:::note
|
||||||
|
The host list is produced by a single pluggable function, `load_servers()`. The `ESXI_*` env-var families are the current source; a future HTTP deployment can back it with an API with no tool changes — the per-call `host` selector is stateless by design.
|
||||||
|
:::
|
||||||
|
|
||||||
## MCP Transport
|
## MCP Transport
|
||||||
|
|
||||||
Control how mcvsphere communicates with MCP clients.
|
Control how mcvsphere communicates with MCP clients.
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user