如何在领事模板配置文件中使用变量?
我有要运行的领事模板,下面是我的领事模板配置:
vault {
address = "http://$VAULT_ADDR:8200"
token = "sometoken"
unwrap_token = false
renew_token = false
}
template {
source = "somepath/agent.crt.tpl"
destination = "somepath/agent.key"
command = "sh -c 'date && systemctl restart consul'"
}
我一整天都在尝试以动态方式放置保险库地址,或者将其作为变量传递,或者从 env 变量或通过 consul-template API 获取,但均未成功。
最后,我最终在我的服务文件中编写了这个巫术:
ExecStart=/bin/sh -c "/usr/local/sbin/consul-template -config /opt/consul/templates/tls-consul.hcl \
-vault-addr http://$(curl -s -XGET $(hostname -I | awk '{ print $1 }'):8500/v1/health/service/vault | jq .[0].Node.Address -r):8200"
有什么方便的方法吗?我可以token
以某种方式使用环境变量,还是被迫对其进行硬编码?