comparison 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
comparison
equal deleted inserted replaced
-1:000000000000 0:1550a6db59b3
1 from pyinfra import host
2 from pyinfra.operations import server
3 from pyinfra.facts.server import LinuxDistribution
4
5 is_pi = host.get_fact(LinuxDistribution)['name'] == 'Debian'
6
7 # raspbian took 1000 for 'pi' group, but drewp is rarely used on pi
8 # setups so hopefully it won't matter much that drew group has a
9 # different id.
10 drewp_gid = 1000 if not is_pi else 501
11 drewp_uid = 501
12 drewp_groups = [
13 'lp', 'adm', 'dialout', 'cdrom', 'sudo', 'audio', 'video', 'plugdev',
14 'games', 'users', 'netdev', 'i2c', 'input', 'spi', 'gpio', 'fuse',
15 'docker', 'render'
16 ]
17
18 for group in [
19 'fuse',
20 'spi',
21 'gpio',
22 'i2c',
23 'input',
24 'netdev',
25 'docker',
26 'render',
27 ]:
28 server.group(group=group)
29
30 server.group(group='drewp', gid=drewp_gid)
31 server.user(user='drewp', group='drewp', groups=drewp_groups)
32
33 if not is_pi:
34 server.group(group='adm', gid=4)
35 server.group(group='cdrom', gid=24)
36 server.group(group='dialout', gid=20)
37 server.group(group='dip', gid=30)
38 server.group(group='lp', gid=7)
39 # prime has something on 109
40 server.group(group='lpadmin', gid=200)
41 server.group(group='plugdev', gid=46)
42 server.group(group='docker', system=True)
43
44 server.group(group='damon', gid=3011)
45 server.group(group='ffg', gid=3008)
46
47 server.group(group='drewnote', gid=1009)
48
49 server.user(user='drewp',
50 uid=drewp_uid,
51 group='drewp',
52 groups=drewp_groups)
53
54 server.group(group='ari', gid=3019)
55 server.user(user='ari',
56 uid=3019,
57 group='ari',
58 groups=['docker', 'sudo', 'audio', 'video', 'lpadmin', 'lp'])
59
60 server.user(user='ffg', uid=3013, group='ffg')
61
62 server.user(user='darcsweb')
63
64 server.user(user='newsbru', uid=1019)
65 server.user(user='dmcc', uid=1013)
66
67 server.group(group='elastic', gid=3018)
68 server.user(user='elastic', uid=3018, group='elastic')
69
70 server.group(group='kelsi', gid=1008)
71 server.user(user='kelsi', uid=1008, group='elastic')
72
73 server.group(group='drewnote', gid=1009)
74 server.user(user='drewnote', uid=1009)
75
76 server.group(group='prometheus', gid=1010)
77 server.user(user='prometheus', uid=1010)
78
79 if is_pi:
80 server.group(group='fuse')
81 server.user(user='pi',
82 uid=1000,
83 group=7,
84 groups=[
85 'lp', 'adm', 'dialout', 'cdrom', 'sudo', 'audio', 'video',
86 'plugdev', 'games', 'users', 'netdev', 'i2c', 'input',
87 'spi', 'gpio', 'fuse', 'docker'
88 ])