From 1fc18673628348b868a8f4e274da370ce784fb93 Mon Sep 17 00:00:00 2001 From: Franziska Kunsmann Date: Sun, 27 Dec 2020 18:15:14 +0100 Subject: [PATCH] demo --- bundles/users/items.py | 19 +++++++++++++++++++ bundles/users/metadata.py | 12 ++++++++++++ groups.py | 18 ++++++++++++++++++ nodes.py | 13 +++++++++++++ requirements.txt | 1 + 5 files changed, 63 insertions(+) create mode 100644 bundles/users/items.py create mode 100644 bundles/users/metadata.py create mode 100644 groups.py create mode 100644 nodes.py create mode 100644 requirements.txt diff --git a/bundles/users/items.py b/bundles/users/items.py new file mode 100644 index 0000000..9e47555 --- /dev/null +++ b/bundles/users/items.py @@ -0,0 +1,19 @@ +users = { + 'root': { + 'password': repo.vault.password_for(f'{node.name} root password'), + }, +} + +for user, config in node.metadata['users'].items(): + directories[f'/home/{user}'] = { + 'owner': user, + 'mode': '0700', + } + + users[user] = { + 'password': config['password'], + 'groups': { + 'sudo', + }, + 'shell': '/bin/bash', + } diff --git a/bundles/users/metadata.py b/bundles/users/metadata.py new file mode 100644 index 0000000..9a959d8 --- /dev/null +++ b/bundles/users/metadata.py @@ -0,0 +1,12 @@ +@metadata_reactor +def generate_password_for_every_user(metadata): + users = {} + + for user in metadata.get('users', {}).keys(): + users[user] = { + 'password': repo.vault.human_password_for(f'{node.name} user {user}'), + } + + return { + 'users': users, + } diff --git a/groups.py b/groups.py new file mode 100644 index 0000000..6dc8562 --- /dev/null +++ b/groups.py @@ -0,0 +1,18 @@ +groups = { + #'group-1': { + # 'bundles': ( + # 'bundle-1', + # ), + # 'members': ( + # 'node-1', + # ), + # 'subgroups': ( + # 'group-2', + # ), + #}, + 'all': { + 'member_patterns': ( + r".*", + ), + }, +} diff --git a/nodes.py b/nodes.py new file mode 100644 index 0000000..d2adb78 --- /dev/null +++ b/nodes.py @@ -0,0 +1,13 @@ +nodes = { + 'node-1': { + 'hostname': "172.19.138.9", + 'bundles': { + 'users', + }, + 'metadata': { + 'users': { + 'kunsi': {}, + }, + }, + }, +} diff --git a/requirements.txt b/requirements.txt new file mode 100644 index 0000000..8b89509 --- /dev/null +++ b/requirements.txt @@ -0,0 +1 @@ +bundlewrap>=4.2.2