我有一个txt文件,例如:
test1:group1:real name1
test2:group1:real name2
test3:group2:real name3
test4:group2:real name4
,我想将其用作外壳的Ansible变量。
- shell: test.sh -u {{ username }} -g {{ group }} -r {{ real_name }}
通过查找,我能够从诸如test1:group1:real name1
之类的文件中获得一行,但是,我不确定如何分隔名称或组。
file_lines: "{{ lookup('file', './files/user.txt').splitlines() }}"
有办法使它工作吗?
答案 0 :(得分:1)
您可以使用split将字符串分成一个列表:
- shell: test.sh -u {{ username }} -g {{ group }} -r {{ real_name }}
loop: "{{ lookup('file', './files/user.txt').splitlines() }}"
vars:
params: "{{ item.split(':') }}"
username: "{{ params[0] }}"
group: "{{ params[1] }}"
real_name: "{{ params[2] }}"
当然,您可以将其编写为一行,具体取决于您希望代码的可读性。