如何在ansible上以新行将变量值存储到文件中

如何在ansible上以新行将变量值存储到文件中

我想将变量值以新行格式存储到文件中。

- set_fact:
    linked_dirs:   "{{ linked_dirs.stdout_lines | select('search',nfs_server) | list }}"

- debug:  var=linked_dirs

- shell:  echo -e "{{ linked_dirs }}\n" >> /tmp/test
  delegate_to:  localhost

猫/tmp/测试

[u'/net/rchserver01/data/share2 linked with /var/tmp/test2', u'/net/rchserver01/data/share2 linked with /var/tmp/share2', u'/net/rchserver01/data/share1 linked with /var/share1']

所需结果:cat /tmp/test

/net/rchserver01/data/share2 linked with /var/tmp/test2
/net/rchserver01/data/share2 linked with /var/tmp/share2
/net/rchserver01/data/share1 linked with /var/share1

答案1

首先,如果你有一个清单,你必须将join()这些项目放在一起。

其次,要写入文件,请使用复制模块

将最后一个任务替换为如下内容:

- name: Write linked_dirs file
  copy:
    content: "{{ linked_dirs | join('\n') }}"
    dest: /tmp/test
  delegate_to: localhost

答案2

您将得到一个带有 echo 的 python 样式列表。如果您只需要值,请使用with_items和迭代元素echo

相关内容