我有以下剧本尝试打印感叹号。.但是test.txt文件始终只有一行“ -e!\”。
您不能一次添加SAME行是lineinfile的行为吗?我可以禁用此行为吗?还是有任何解决方法?
- hosts: localhost
vars:
items_list:
- '!'
- '!'
- '!'
tasks:
- name: "append all items"
lineinfile:
dest: "test.txt"
line: '-e {{ item }} \'
with_items: "{{ items_list }}"
- name: "append all items"
lineinfile:
dest: "test.txt"
line: '-e {{ item }} \'
with_items: "{{ items_list }}"
devops@devops:~/ANSIBLE$ more test.txt
-e ! \
答案 0 :(得分:1)
添加多行不是lineinfile
模块的目的。
description present on the documentation非常清楚:
- 此模块确保文件中包含特定行,或使用向后引用的正则表达式替换现有行。
- 当您只想更改文件中的一行时,这主要有用。如果要更改多个,请参见替换模块, 类似的行或如果要插入/更新/删除,请检查blockinfile 文件中的一行行。对于其他情况,请参见副本或模板 模块。
所以不,你不能。要实现所需的行为,请使用上面建议的模块之一。