我有一个文件,其中包含用户名和其他一些细节(每行以逗号分隔),如下所示。
user1,group1,sudoer-y,<public key>
user2,group1,sudoer-n,<public key>
我需要在我的playbook中循环浏览此文件并更新每行的sudoers文件(取决于标志是y还是n)。
作为第一步,我想分别打印出每一列。这是我正在使用的命令:
- name: add to sudoers
shell: cat /tmp/aws_user_detail.tmp
register: res
- debug: var=res
with_items: [ "{{ res.stdout.split(',')[0] }}" ]
但这确实以yml格式打印出整个文件。有没有更简单的方法呢?
由于 Arani
答案 0 :(得分:2)
迭代行和拆分项目:
- name: get file lines
shell: cat /tmp/aws_user_detail.tmp
register: res
- debug: msg="user={{ item.split(',')[0] }}"
when: item.split(',')[2] == "sudoer-y"
with_items: "{{ res.stdout_lines }}"
或仅grep名称,如果您只需要带有sudoer标志的用户名:
- name: get users with flag
shell: grep 'sudoer-y' /tmp/aws_user_detail.tmp | cut -d',' -f1
register: res
- debug: msg="user={{ item }}"
with_items: "{{ res.stdout_lines }}"