✅ Post-baseline actions
This document lists the tasks to complete after a server reaches the Ansible baseline: installing approved applications, validating connectivity (for validators), handling signing servers (special process), and adding the server to monitoring dashboards.
1 — Install Attestant-approved applications
When a host is added to inventories/<pod>/hosts it is typically assigned roles and associated applications. Deploy them with the site playbook:
dev/prd-ansible-playbook -i inventories/<pod>/hosts site.yml --limit <host>.attestant.io
When clients are fully synced and services are healthy, proceed to final checks.
2 — Validating servers: open Dirk access on signers
If the new validating server needs to communicate with signers (Dirk), update Dirk on each signer in the pod so it allows the validator's IP/host through the signer firewall and configuration.
Run the playbook (example):
# Run from ops repo; replace wrapper if required
ansible-playbook -i inventories/<pod>/hosts dirk.yml --limit <signer>.attestant.io
After updating Dirk on each signer, validate connectivity from the validating server:
# From the validating server
nc -vz <signer-host> <dirk-port>
# or use the vouch endpoint test (replace with your service endpoints):
curl -fS http://localhost:port/healthz
Add any successful checks to the ticket and mark the validator for "Final Checks" once sync and connectivity are green.
3 — Signing servers (special process)
⚠️ Signing servers are highly sensitive. Only senior operators with explicit permission should perform replacements or key operations.
All signing-server operations (creating keys, wallets, restoring, rotation) live in the separate Signing Servers document:
- Signing Servers - Creating Keys & Wallets: https://docs.google.com/document/d/1WPAP6zahegCen7U0HqqJjYFsS7KIEK3GJEpvQbpArXc/edit
If you are not the designated signing-server owner, escalate to the owner and follow the separate runbook.
4 — Add server to Grafana / Prometheus
To ensure observability, update Prometheus scrape configs and dashboards:
- Update Prometheus job config or service discovery to include the new host.
- Reload Prometheus or push the updated configuration via your automation.
- Confirm metrics are present in Grafana and add the host to relevant dashboards.
Reference: Update Prometheus configuration in ops-tools (internal doc): https://docs.google.com/document/d/1eMChMtfbXatSPtIrmF4BwMZTL7UV0-lN6IMATVzsqtc/edit#heading=h.6b7ijhhlcbsw
Example (validate Prometheus target up):
curl -s http://prometheus:9090/api/v1/targets | jq '.data.activeTargets[] | select(.discoveredLabels.instance|contains("<host>"))'
5 — Final checks & mark complete
Checklist before marking server as fully deployed:
-
All assigned applications deployed via
site.ymland services are running - Consensus & execution clients fully synced (for validators)
- Dirk connectivity validated for signer<->validator flows (if applicable)
- Monitoring metrics present and dashboard updated
- Backups/rotate keys and any post-deploy automated tasks scheduled
When done, mark the server as Final Checks or Ready in the Server Info spreadsheet and add links to logs/PRs/tickets in the change record.
Resources
- Signing servers runbook (sensitive): https://docs.google.com/document/d/1WPAP6zahegCen7U0HqqJjYFsS7KIEK3GJEpvQbpArXc/edit
- Prometheus/Grafana update doc: https://docs.google.com/document/d/1eMChMtfbXatSPtIrmF4BwMZTL7UV0-lN6IMATVzsqtc/edit