是否可以使用Ansible lineinfile模块添加同一行?

时间:2018-09-02 03:12:32

标签: ansible

我有以下剧本尝试打印感叹号。.但是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 ! \

1 个答案:

答案 0 :(得分:1)

添加多行不是lineinfile模块的目的。

description present on the documentation非常清楚:

  
      
  • 此模块确保文件中包含特定行,或使用向后引用的正则表达式替换现有行。
  •   
  • 当您只想更改文件中的一行时,这主要有用。如果要更改多个,请参见替换模块,   类似的行或如果要插入/更新/删除,请检查blockinfile   文件中的一行行。对于其他情况,请参见副本或模板   模块。
  •   

所以不,你不能。要实现所需的行为,请使用上面建议的模块之一。