У меня есть доступная задача для создания пользователя, и вместо того, чтобы указывать класс 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