目标
使用ansible template模块生成配置文件,分发到集群主机
解决过程
原始配置文件etcd-csr.json,需要写入批量主机IP(可能不是三个)
{
"CN": "etcd",
"hosts": [
"127.0.0.1",
"$NODE1_IP",
"$NODE2_IP",
"$NODE3_IP"
],
"key": {
"algo": "rsa",
"size": 2048
},
"names": [
{
"C": "CN",
"ST": "BeiJing",
"L": "BeiJing",
"O": "k8s",
"OU": "opsnull"
}
]
}
根据jinja2格式改写模板etcd-csr.json.j2如下:
{
"CN": "etcd",
"hosts": [
{% for node_ip in node_ips.stdout.split(' ') %}
"{
{ node_ip }}",
{% endfor %}
"127.0.0.1"
],
"key": {
"algo": "rsa