如何在 ansible 任务中从给定范围分配 UID

如何在 ansible 任务中从给定范围分配 UID

我有一个创建用户的 ansible 任务,它不需要像下面这样指定 UID 类,而是需要从 (1000-1099) 之间的一个可用范围中进行选择,并且必须按顺序分配下一个可用的 UID,该怎么做?

- name: create user and group
    user:
     name: user
     shell: /bin/bash
     uid: 1000
     comment: system Admin

答案1

with_sequences是您正在寻找的:

- name: create user and group
  user:
    name: user
    shell: /bin/bash
    uid: "{{ item }}"
    comment: system Admin
  with_sequence: start=1000 end=1099

答案2

没有任何用户目录,就没有用户名和 ID 的中央权限。(也许可以考虑在某些时候实现目录身份验证。)

在变量中维护用户及其 UID 的列表,必要时在 group_vars 或 host_vars 级别覆盖。对于一个组,可能abc有一个 vars 文件group_vars/abc/users.yml

---
users:
  - uid: 1000
    name: user
    comment: "system Admin"
  - uid: 1001
    name: alice
    comment: "Alice Alvin"
  - uid: 1002
    name: beth
    comment: "Beth Biorn"
  - uid: 1003
    name: Chris
    comment: "Chris Civers"

这个任务看起来是这样的:

---
- name: create users
  loop: "{{ users }}"
  user:
    name: "{{ item.name }}"
    shell: /bin/bash
    uid: "{{ item.uid }}"
    comment: "{{ item.comment }}"

为了使此剧本适合您的目的,还需完成以下几项任务:

  • 列出群组列表并以类似的方式创建它们。
  • users为具有冲突的 GID 或 UID 的组创建 var 覆盖。

相关内容