confd与etcd的使用
Add keys
This guide assumes you have a working etcd, or consul server up and running and the ability to add new keys.
/tmp/test-etcd/etcdctl set /myapp/database/url db.example.com
/tmp/test-etcd/
etcdctl set /myapp/database/user rob
Create the confdir
The confdir is where template resource configs and source templates are stored.
sudo mkdir -p /etc/confd/{conf.d,templates}
Create a template resource config
Template resources are defined in TOML config files under the confdir
.
/etc/confd/conf.d/myconfig.toml
[template]
src = "myconfig.conf.tmpl"
dest = "/tmp/myconfig.conf"
keys = [
"/myapp/database/url",
"/myapp/database/user",
]
Create the source template
Source templates are Golang text templates.
/etc/confd/templates/myconfig.conf.tmpl
[myconfig]
database_url = {{getv "/myapp/database/url"}}
database_user = {{getv "/myapp/database/user"}}
Process the template
confd supports two modes of operation daemon and onetime. In daemon mode confd polls a backend for changes and updates destination configuration files if necessary.
etcd
confd -onetime -backend etcd -node http://127.0.0.1:2379