Ansible 易变校验UID

Ansible 易变校验UID,ansible,jinja2,Ansible,Jinja2,我有一个脚本,我想使用它来检查/etc/passwd和greps中的UID是否有特定的UID,并将其结果报告到一个文件中,然后发送回我的电脑。工作正常,但我正在尝试对其进行微调。以下是我到目前为止的情况: - name: Checking to Make Sure the UIDS are safe for foo Users shell: cat /etc/passwd | awk -F ':' '{print $3}' | grep 150[0-1] regi

我有一个脚本,我想使用它来检查/etc/passwd和greps中的UID是否有特定的UID,并将其结果报告到一个文件中,然后发送回我的电脑。工作正常,但我正在尝试对其进行微调。以下是我到目前为止的情况:

    - name: Checking to Make Sure the UIDS are safe for foo Users
      shell: cat /etc/passwd | awk -F ':' '{print $3}' | grep 150[0-1]
      register: foo

   - local_action: copy content={{ ansible_hostname.split('\n') }};{{ foo.stdout }} dest=/Users/blah/playbooks/roles/check_user_uids/files/foo_stdout.log
以下是我在日志文件中看到的内容:

[u'server-one'];1500
1501
我真正想做的是:

[u'server-one'] 1500
[u'server-one'] 1501
有人能给我举一个例子,说明我如何使用JinJa模板实现这一点,或者建议是否可以使用本地动作模块实现这一点吗?

如果调试变量
foo
,您将看到返回值
foo.stdout\u行
,其中包含输出列表。您可以在当前任务中对其进行迭代

- local_action: copy content={{ ansible_hostname.split('\n') }};{{ item }} dest=/Users/blah/playbooks/roles/check_user_uids/files/foo_stdout.log
  with_items: "{{ foo.stdout_lines }}"
或者,您可以将该返回值与模板模块一起使用,以实现相同的功能。查看Ansible和Jinja的文档了解更多信息


这非常接近我想要的位置,并且对我来说足够可读。谢谢:-)