Назад | Перейти на главную страницу

как назначить UID из заданного диапазона в недоступной задаче

У меня есть доступная задача для создания пользователя, и вместо того, чтобы указывать класс UID, как показано ниже, он должен выбирать из свободного диапазона между (1000-1099) и должен назначать следующий доступный UID в последовательном порядке, как это сделать этот ?

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

При отсутствии какого-либо каталога пользователей отсутствует центральная власть над именами и идентификаторами пользователей. (Возможно, в какой-то момент рассмотрите возможность реализации аутентификации каталога.)

Поддерживайте список пользователей с их 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 var для групп с конфликтующими GID или UID.

with_sequences то, что вы ищете:

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