Hi,
I’m trying to configure vault HA.
I’ve got two hosts: vault-node-1 and vault-node-2. Both use raft as a storage, with the following config:
vault-node-1:
storage "raft" {
path = "/u01/app/vault/data.raft"
node_id = "vault-node-1"
retry_join {
leader_api_addr = "https://vault-node-2:8200"
leader_ca_cert_file = "/usr/local/certs/rootCA.crt"
leader_client_cert_file = "/u01/app/vault/server.crt"
leader_client_key_file = "/u01/app/vault/server.key"
}
}
cluster_addr="https://vault-node-1:8201"
api_addr="https://vault-node-1:8200"
default_lease_ttl = 7200
max_lease_ttl = 7200
listener "tcp" {
address = "0.0.0.0:8200"
tls_cert_file = "/u01/app/vault/server.crt"
tls_key_file = "/u01/app/vault/server.key"
tls_min_version = "tls12"
}
vault-node-2:
storage "raft" {
path = "/u01/app/vault/data.raft"
node_id = "vault-node-2"
retry_join {
leader_api_addr = "https://vault-node-1:8200"
leader_ca_cert_file = "/usr/local/certs/rootCA.crt"
leader_client_cert_file = "/u01/app/vault/server.crt"
leader_client_key_file = "/u01/app/vault/server.key"
}
}
cluster_addr="https://vault-node-2:8201"
api_addr="https://vault-node-2:8200"
default_lease_ttl = 7200
max_lease_ttl = 7200
listener "tcp" {
address = "0.0.0.0:8200"
tls_cert_file = "/u01/app/vault/server.crt"
tls_key_file = "/u01/app/vault/server.key"
tls_min_version = "tls12"
}
The cluster seems to be running ok:
$ vault operator raft list-peers
Node Address State Voter
---- ------- ----- -----
vault-node-1 vault-node-1:8201 leader true
vault-node-2 vault-node-2:8201 follower true
However, when I stop the leader node (vault-node-1), connect to the standby node (vault-node-2) and try to read a secret, I get the following error:
Get "https://vault-node-1:8200/v1/sys/internal/ui/mounts/secret/kr/test": dial tcp 10.0.1.23:8200: connect: connection refused
It seems that the standby didn’t become a primary.
Is there a way to force the standby to become the primary (and can this be automated)?