实现将遍历的元素按照规则进行拼接
如果是组内的变量需要通过set获取
如果是全局的变量可以直接通过{{variable}} 引用
如果在for循环中通过{% set dirs = dirs+/home/disk"+n|string+"/kafka"%},变量只在for循环内可见,所以使用append解决此问题;
但是append会产生换行符,所以在配置文件中会有很多空行,有知道解决办法的大佬请不吝赐教
{% set id=hostvars[inventory_hostname].id %} {% set log_dir_num=hostvars[inventory_hostname].log_dir_num %} {% set zookeeper=groups.zookeeper %} {% set dirs=[] %} {% for n in range(1,log_dir_num+1,1) %} {{ dirs.append( "/home/disk"+n|string+"/kafka" ) }} {% endfor %} broker.id={{id}} log.dirs={{ dirs|join(',') }} zookeeper.connect={{zookeeper|join(',')}}/{{cluster_name}}