Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/redis/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
是否可以使用Ansible LINEINFLE模块添加同一行?_Ansible - Fatal编程技术网

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

是否可以使用Ansible LINEINFLE模块添加同一行?,ansible,Ansible,我有下面的剧本试图打印感叹号。但是test.txt文件总是有一行“-e!\” lineinfile的行为是不能多次添加同一行吗?我可以禁用此行为吗?或者这有什么解决办法吗 - hosts: localhost vars: items_list: - '!' - '!' - '!' tasks: - name: "append all items" lineinfile: d

我有下面的剧本试图打印感叹号。但是test.txt文件总是有一行“-e!\”

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 ! \

添加多行不是
lineinfle
模块的目的

问题很清楚:

  • 此模块确保文件中存在特定行,或使用反向引用的正则表达式替换现有行
  • 当您只想更改文件中的一行时,这主要非常有用。如果要更改多个,请参阅“替换”模块, 如果要插入/更新/删除,请选择类似的行或选中blockinfile 文件中的行块。有关其他情况,请参见副本或模板 模块

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

否,您不能使用
lineinfle:
将同一行添加到多行,因为它已完成您的要求并将该行添加到文件中。您的目标是将这三行放在文件中,还是存在一些复杂的情况?不,您不能,您可以使用
blockinfle
将几行放在一个文件中file@MatthewL Daniel…我想生成Cisco配置。使用“!”分隔不同部分的文件。。。