代码之家  ›  专栏  ›  技术社区  ›  ryekayo

Ansible检查UID

  •  0
  • ryekayo  · 技术社区  · 7 年前

    我有一个脚本,我想使用它来检查/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
    

    1 回复  |  直到 7 年前
        1
  •  1
  •   kfreezy    7 年前

    http://docs.ansible.com/ansible/latest/common_return_values.html#stdout-lines

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

    - 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的文档了解更多信息。

    http://docs.ansible.com/ansible/latest/playbooks_templating.html http://jinja.pocoo.org/docs/2.9/templates/