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

时间:2021-03-18 10:59:41

标签: ansible ansible-2.x

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

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

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

1 个答案:

答案 0 :(得分:1)

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

@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 }}"

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