我如何 运行 机器上每个用户的剧本

How can I run a playbook for each user on the machine

在我们的 Linux 工作站上,我们有一个 AD 用户设置,因此当用户访问一台机器时,它将生成一个 /home/{username} 文件夹,其中包含我们 skel 中定义的所有项目。所以我们池中的每台机器都有不同的多个用户文件夹。

我需要修改位于每个用户文件夹中的一些文件。我怎样才能对 /home/* 文件夹中的每个文件夹进行 ansible 循环,以便将剧本应用于所有用户?

应该注意的是,剧本是 运行 root,所以我不需要 运行 剧本本身作为用户。

恕我直言,这是处理此问题的错误方法 - 希望贵公司记录了谁应该 有权访问每个系统,并规定自动设置这些帐户在每个系统上。鉴于此,这是一个很好的例子,说明“我们今天需要在获得更好的解决方案设置的同时解决这个问题。”

@mdaniel 提供的示例应该有效。您可以在这样的剧本中实现:

---
- hosts: all
  gather_facts: false

  tasks:
  - name: "Get home directories"
    shell: /bin/ls -d /home/*
    register: home_dirs

  - name: "Touch files"
    debug:
      msg: "Working on {{ item }}"
    loop: "{{ home_dirs.stdout_lines }}"

当然,用您要自动化的任务替换“调试:”模块。