This client uses a yml file to config vars and templates.
A sample yml is listed below:
---
vars:
env:
- name: NAME
etcd:
- cluster: "/servers/{{ name }}/cluster"
templates:
- template01:
source: template.txt.j2
dest: /opt/template.txt
vars:
name: name
cluster: cluster
There are two main sections, vars and templates.
Under vars is env and etcd. This describes where the variables will come from.
In this case we are looking for the environment variable NAME and assigning it to
name, we are then using this to populate a template where we want to use the name
in the string. I.e. name being host01 would create /servers/host01/cluster.
We would then contact etcd with this path, and assign the variable to cluster.
Under templates we have a template label in this case template01. Under the template
label, we have a source, which looks in the directory /etc/py-confd/templates for a
templates by the name of template.txt.j2. We want to then place the rendered template
in /opt/template.txt. We are then populating this template with the variables listed in
the vars section. As you can see these names match the names in the above vars section.
A sample template.txt.j2:
{{ cluster }}
{{ name }}
If run from the source project:
NAME=host01 pyconfd --config-file default.yaml --template-dir /etc/py-confd/templates/
Possible options:
--template-dir: Path to the templates directory
--config-file: Path to the templates directory
--etcd-ip: IP address of etcd server default is 127.0.0.1
--etcd-port: Port of etcd server default is 4001
--noop: Run without modifying anything