From 93c6897b346ddf7fc435a4f7a4c7e881099d8be7 Mon Sep 17 00:00:00 2001 From: Paolo Asperti Date: Mon, 27 Apr 2020 15:53:26 +0200 Subject: [PATCH] support for nethserver users and groups in playbooks --- root/etc/ansible/library/nethserver-accounts | 26 ++++++++++++++++++++ 1 file changed, 26 insertions(+) create mode 100644 root/etc/ansible/library/nethserver-accounts diff --git a/root/etc/ansible/library/nethserver-accounts b/root/etc/ansible/library/nethserver-accounts new file mode 100644 index 0000000..9b29106 --- /dev/null +++ b/root/etc/ansible/library/nethserver-accounts @@ -0,0 +1,26 @@ +#!/usr/bin/env python3 + +# consider refactoring this script in perl: maybe we can improve the speed +# by not calling nethserver scripts (which BTW are wrappers for LDAP queries) + +import os +import json + +# users list +cmd = os.popen('/usr/libexec/nethserver/list-users -s -A') +userslist = json.loads(cmd.read()) + +for u in userslist: + cmd = os.popen('/usr/libexec/nethserver/list-user-membership -s -A "' + u + '"') + userslist[u]['groups'] = json.loads(cmd.read()) + +# groups list +cmd = os.popen('/usr/libexec/nethserver/list-groups -s') +groupslist = json.loads(cmd.read()) + +for g in groupslist: + cmd = os.popen('/usr/libexec/nethserver/list-group-members -s "' + g + '"') + groupslist[g]['members'] = json.loads(cmd.read()) + +# data return +print(json.dumps({"groups":groupslist,"users":userslist}))