在我的剧本中,我安装了 amavis 包。在稍后的任务中,我使用 mount 模块来设置一个 ramdisk (tmpfs)。
为了让 tmpfs-ramdisk 由 amavis 软件包安装期间创建的 uid 和 gid 拥有(amavis-user 和 amavis-group,在 /etc/fstab 中,然后使用 options 参数)我如何找出哪个 uid 和 gid 是创建?
目标(类似):
/dev/shm /var/lib/amavis/tmp tmpfs defaults,noexec,nosuid,nodev,noatime,size=500m,mode=770,uid=112,gid=116 0 0
Run Code Online (Sandbox Code Playgroud)
或者我应该在安装包之前创建用户以通过 Ansible 显式设置 uid 和 gid 吗?
小智 5
虽然 Bruce P 的答案在某些情况下通常是一个很好的解决方案,但无法仅提供名称。下面是一些代码,遵循 Satish Koppisetty 的方法:
- name: get myuser uid
getent:
database: passwd
key: myuser
- name: get mygroup gid
getent:
database: group
key: mygroup
Run Code Online (Sandbox Code Playgroud)
您现在有两个字典(getent_passwd和getent_group),您可以从中检索数据。以下代码仅输出 id:
- debug:
msg:
- "user id {{ getent_passwd.myuser[1] }}"
- "group id {{ getent_group.mygroup[1] }}"
Run Code Online (Sandbox Code Playgroud)
一点背景知识:情况就是这样,因为getent返回的字典看起来像这样:
{
"mygroup": [
"x",
"1004",
"some_group_member"
]
}
Run Code Online (Sandbox Code Playgroud)