如何在Ansible中读取文件的特定部分

时间:2019-06-12 12:20:46

标签: ansible ansible-template

我有一个包含以下数据的文件

  

     

分别乘以4和5

     

分别乘以5和6

     

     

将3加到4

     

将8加到4

     

     

6分3分

     

5分9分

     

     

     

div 6除以2

     

div 8乘1

我只想读取文件中的添加命令。

使用查找插件,我能够读取整个文件的数据。

但是我不知道如何只读取文件中的特定添加命令

这是我编写的代码。

---
 - name: Extracting the Add commands from the File
   hosts: 127.0.0.1
   connection: local

   vars:
           contents: "{{lookup('file', 'file1.txt')}}"

   tasks:
           - name: Printing the Add commands of the File
             debug:
                     var: contents

这时我陷入了困境。任何人都可以帮助我解决如何以ansible读取文件的特定部分的情况。

1 个答案:

答案 0 :(得分:1)

使用with_lines。下面的游戏

- hosts: localhost
  vars:
    my_data_file: "{{ playbook_dir }}/data.txt"
    my_commands: []
  tasks:
    - set_fact:
        my_commands: "{{ my_commands + [ item ] }}"
      with_lines: "cat {{ my_data_file }}"
      when: item is search('^add')
    - debug:
        var: my_commands

给予

"my_commands": [
    "add 3 to 4", 
    "add 8 to 4"
]