我正在尝试为所有现有用户创建本地路径,该用户在该路径/home/{username}/.local
下有本地子目录/home/{username}
系统中的每个群集。
例如
/home/user1/.local
/home/user2/.local
.
.
.
/home/usern/.local
并且没有一个集群具有相同数量的用户,某些用户可能不存在于特定集群中。
有可能这样做吗?
从我的角度来看,我会
我应该从什么开始?还是这里有更好的主意?
提前谢谢
答案 0 :(得分:1)
可以找到 / home中的所有目录并创建目录
- hosts: all
become: yes
tasks:
- find:
paths: /home
file_type: directory
register: result
- file:
state: directory
path: "{{ item.path }}/.local"
loop: "{{ result.files }}"
除此之外,还可以读取 passwd 并将循环限制为仅系统用户
- hosts: all
become: yes
tasks:
- getent:
database: passwd
- find:
paths: /home
file_type: directory
register: result
- file:
state: directory
path: "{{ item.path }}/.local"
loop: "{{ result.files }}"
when: item.path|basename in getent_passwd.keys()
答案 1 :(得分:0)
使用find模块查找/home
中存在的所有目录,然后根据该条件在其中创建目录。
这是一种肮脏的方式:
---
- hosts: some_hosts
tasks:
- name: hacky way to do create directories in /home/*/
shell: "for dir in /home/* ; do mkdir $dir/.local ; done"