ansible template jinja2获取磁盘挂载点

需求:

用ansible管理hadoop 配置文件,经常会碰见多目录配置。切机器的磁盘多少不同,需要通过setup目录自动获取,并排除。

获取所有磁盘挂载点,并过滤掉挂载点不是/hdd 的目录。并形成/hdd1/data,/hdd2/data 最后一个目录最后结尾没有逗号 “,”

拿yarn的目录配置举例:

{% set disk_list = [] %}    #设置一个列表

{% for disk in ansible_mounts %}   #循环ansible_mounts 列表

{% if disk.mount | regex_search('(hdd)') %}  判断是否disk.mount 值是否匹配hdd

{{ disk_list.append(disk.mount) }}   如果匹配就最佳到disk_list 这个列表里

{% endif %}

{% endfor %}

{% for i in disk_list %}     #循环disk_list 列表

{% if loop.last %}           #判断是不是循环的最后一个值

{{ i }}/hadoop/yarn/data     #如果是最后一个值,就不加逗号

{% else %}

{{ i }}/hadoop/yarn/data,   #不是最后一个值 ,就加上逗号

{% endif %}

{% endfor %}

你可能感兴趣的:(ansible template jinja2获取磁盘挂载点)