ansible从文件中的行读取(多个)值

时间:2017-09-11 08:54:32

标签: ansible lookup

我正在尝试将文件中的变量读入某个数组中,但不会读入预先定义的变量。

目标是一个剧本,用item.0和NOT item.1搜索行并删除它们,稍后playbook确保有一个item.0 item.1的行,这就是为什么我需要这个分裂。

例如,我有一个包含这样的行的文件:

Parameter Value
Parameter Value
Parameter Value

在循环中使用它直到EOF。

剧本中的示例部分:

- name: lineinfile loop
  lineinfile:
    path: /myfile
    regexp '^{{somethinglike item.0}}.(?!{{something like item.1}})'
    state absent
    ...

有人知道查找和循环的解决方案吗?

祝你好运

2 个答案:

答案 0 :(得分:0)

这应该对你有帮助。

输入文件

cat filein 
Parameter1,Value1
Parameter2,Value2
Parameter3,Value3

剧本:

---
- hosts: test

  tasks:


  - name: reg
    shell: cat filein
    register: myitems


  - name: deb
    debug: var=myitems.stdout_lines


  - name: echo to file
    shell: "echo {{ item.split(',')[1] }} - {{ item.split(',')[0] }}  >> fileout"
    with_items: "{{ myitems.stdout_lines }}"

输出文件:

cat fileout 
Value1 - Parameter1
Value2 - Parameter2
Value3 - Parameter3

这不是最先进的,但应该有效。

答案 1 :(得分:0)

解决方案:

在ansible galaxy中有一个可靠的角色,它提供了我所需要的:

https://github.com/mkouhei/ansible-role-includecsv