В моем playbook я устанавливаю пакет amavis. Позже в задаче я использую модуль монтирования для установки ramdisk (tmpfs).
Чтобы tmpfs-ramdisk принадлежал uid и gid, созданным во время установки пакета amavis (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
Или я должен создать пользователей перед установкой пакета, чтобы явно установить uid и gid через Ansible?
См. Модуль Ansible getent с участием database=passwd
.
Вы должны просто указать uid=amavis-user,gid=amavis-group
в вашем / etc / fstab. Программа монтирования linux будет интерпретировать их правильно.
Хотя ответ Брюса П. часто является хорошим решением в некоторых ситуациях, просто указать имя невозможно. Следуя подходу Сатиша Копписетти, вот код для этого:
- name: get myuser uid
getent:
database: passwd
key: myuser
- name: get mygroup gid
getent:
database: group
key: mygroup
Теперь у вас есть два словаря (getent_passwd
и getent_group
), из которого вы можете получить данные. Следующий код просто выводит идентификаторы:
- debug:
msg:
- "user id {{ getent_passwd.myuser[1] }}"
- "group id {{ getent_group.mygroup[1] }}"
Немного фона: это так, потому что getent
возвращает словарь, который выглядит примерно так:
{
"mygroup": [
"x",
"1004",
"some_group_member"
]
}