A maioria das configurações suporta variáveis inline do ambiente. A configuração do Vault suporta variáveis de ambiente? Algo como:
ui = true
listener "tcp" {
tls_disable = 1
address = "[::]:8200"
cluster_address = "[::]:8201"
}
storage "postgresql" {
connection_url = $PG_URL // where PG_URL is an environment variable
}
No momento não é diretamente possível. Verifique este problema do GH . Mas você pode usar
envsubst
.Embora não seja possível, lembre-se de que o Vault lerá a variável de ambiente para muitos itens de configuração se estiverem faltando no arquivo.
Por exemplo, se você não souber o endereço da API que os clientes devem usar de antemão, remova-o do arquivo de configuração e deixe o Vault descobri-lo por meio da
VAULT_API_ADDR
variável .Caso contrário, execute seu arquivo "não resolvido"
envsubst
como sugerido por Alex assim:Embora não suporte diretamente variáveis além das variáveis de ambiente internas, você pode usar um HEREDOC para preencher dinamicamente o arquivo de configuração antes da execução. Isso geralmente é necessário mesmo com o Terraform (outro produto da Hashicorp) que possui amplo suporte para variáveis, com exceção dos detalhes de configuração de back-end.