diff users.py @ 0:1550a6db59b3

first ported section from ansible. shorter, faster, clearer.
author drewp@bigasterisk.com
date Thu, 04 Nov 2021 00:47:36 -0700
parents
children 61945df2a392
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/users.py	Thu Nov 04 00:47:36 2021 -0700
@@ -0,0 +1,88 @@
+from pyinfra import host
+from pyinfra.operations import server
+from pyinfra.facts.server import LinuxDistribution
+
+is_pi = host.get_fact(LinuxDistribution)['name'] == 'Debian'
+
+# raspbian took 1000 for 'pi' group, but drewp is rarely used on pi
+# setups so hopefully it won't matter much that drew group has a
+# different id.
+drewp_gid = 1000 if not is_pi else 501
+drewp_uid = 501
+drewp_groups = [
+    'lp', 'adm', 'dialout', 'cdrom', 'sudo', 'audio', 'video', 'plugdev',
+    'games', 'users', 'netdev', 'i2c', 'input', 'spi', 'gpio', 'fuse',
+    'docker', 'render'
+]
+
+for group in [
+        'fuse',
+        'spi',
+        'gpio',
+        'i2c',
+        'input',
+        'netdev',
+        'docker',
+        'render',
+]:
+    server.group(group=group)
+
+server.group(group='drewp', gid=drewp_gid)
+server.user(user='drewp', group='drewp', groups=drewp_groups)
+
+if not is_pi:
+    server.group(group='adm', gid=4)
+    server.group(group='cdrom', gid=24)
+    server.group(group='dialout', gid=20)
+    server.group(group='dip', gid=30)
+    server.group(group='lp', gid=7)
+    # prime has something on 109
+    server.group(group='lpadmin', gid=200)
+    server.group(group='plugdev', gid=46)
+    server.group(group='docker', system=True)
+
+    server.group(group='damon', gid=3011)
+    server.group(group='ffg', gid=3008)
+
+    server.group(group='drewnote', gid=1009)
+
+    server.user(user='drewp',
+                uid=drewp_uid,
+                group='drewp',
+                groups=drewp_groups)
+
+    server.group(group='ari', gid=3019)
+    server.user(user='ari',
+                uid=3019,
+                group='ari',
+                groups=['docker', 'sudo', 'audio', 'video', 'lpadmin', 'lp'])
+
+    server.user(user='ffg', uid=3013, group='ffg')
+
+    server.user(user='darcsweb')
+
+    server.user(user='newsbru', uid=1019)
+    server.user(user='dmcc', uid=1013)
+
+    server.group(group='elastic', gid=3018)
+    server.user(user='elastic', uid=3018, group='elastic')
+
+    server.group(group='kelsi', gid=1008)
+    server.user(user='kelsi', uid=1008, group='elastic')
+
+    server.group(group='drewnote', gid=1009)
+    server.user(user='drewnote', uid=1009)
+
+    server.group(group='prometheus', gid=1010)
+    server.user(user='prometheus', uid=1010)
+
+if is_pi:
+    server.group(group='fuse')
+    server.user(user='pi',
+                uid=1000,
+                group=7,
+                groups=[
+                    'lp', 'adm', 'dialout', 'cdrom', 'sudo', 'audio', 'video',
+                    'plugdev', 'games', 'users', 'netdev', 'i2c', 'input',
+                    'spi', 'gpio', 'fuse', 'docker'
+                ])