mirror of
https://github.com/XRPLF/rippled.git
synced 2026-08-19 13:20:54 +00:00
A node's service_instance_id should say which box the data came from, so a dashboard can tell two otherwise-identical instances apart. A machine name is also exactly what this public repository should not carry, and the value cannot come from the environment: it is read only from the [telemetry] section, and the config parser has no include directive. So the tracked configs keep a generic identity and name no host, and the installer renders each into a .host.cfg beside it with the id substituted from .env.devbox. The units run the rendered copies, which are gitignored. The tracked configs are never edited on the host, so an update cannot conflict and a rebuild loses nothing. The identity is substituted in two places from one value -- the setting and the log directory name -- because they have to agree: the collector derives identity for the logs pipeline from the log path, so a mismatch costs that node's logs their service_instance_id label while its metrics keep theirs, which reads as "no logs" rather than as a misconfiguration. The installer counts the occurrences it expects to replace and verifies the result, so a config reshuffle fails loudly instead of yielding a copy that quietly kept the generic identity; on the dashboards that would look like the node had disappeared. It also rejects an id that is not a safe directory name, and rejects two nodes sharing one id. Also record what the last deployment needed and the runbook did not say: the session-bus variable a rootless container runtime needs before its user units will install, the link from the unit's expected binary path to the preset's build directory, and that a config merge which redeclares service.extensions drops the cloud authenticator and stops the collector exporting anything at all. These files also had not been through the formatting hooks, which want 4-space indentation and reflowed tables; that is fixed here too.
29 lines
1.2 KiB
Plaintext
29 lines
1.2 KiB
Plaintext
# Host-specific values for the two-node deployment. Copy to .env.devbox on the
|
|
# host and fill in; .env.* is gitignored, so the real file is never committed.
|
|
#
|
|
# Keeping these out of the templates is deliberate: this repository is public,
|
|
# and an earlier commit already removed a personal home directory from shipped
|
|
# config. Nothing host-identifying should return to git.
|
|
|
|
# Account xrpld runs as.
|
|
RUN_USER=
|
|
|
|
# Absolute path of the repository checkout on this host.
|
|
REPO_DIR=
|
|
|
|
# Mount holding the node data directories. The units require it, so a missing
|
|
# disk fails the unit instead of silently filling the root filesystem.
|
|
DATA_MOUNT=
|
|
|
|
# Telemetry identity of each node, reported as the service_instance_id label on
|
|
# every metric, span and log line, and used as the log directory name.
|
|
#
|
|
# Name them after the machine, so a dashboard shows which box the data came
|
|
# from -- a host running two nodes needs two distinct values. Changing them
|
|
# breaks continuity with data already stored under the old names, so reuse the
|
|
# host's established names rather than inventing new ones.
|
|
#
|
|
# Allowed characters: letters, digits, dot, underscore, hyphen.
|
|
NODE1_INSTANCE_ID=
|
|
NODE2_INSTANCE_ID=
|