comparison users.py @ 289:65e28d2e0cd8

move static templates to files/ ; use inventory tags for selecting hosts+features ; other refactors
author drewp@bigasterisk.com
date Sun, 21 Apr 2024 17:07:23 -0700
parents 3af02e24eaf9
children b3acb9fff274
comparison
equal deleted inserted replaced
288:3af02e24eaf9 289:65e28d2e0cd8
1 from pyinfra import host 1 from pyinfra import host
2 from pyinfra.operations import server 2 from pyinfra.operations import server
3 from pyinfra.facts.server import LinuxDistribution 3 from pyinfra.facts.server import LinuxDistribution
4 4
5 is_pi = host.get_fact(LinuxDistribution)['name'] in ['Debian', 'Raspbian GNU/Linux']
6 5
7 # raspbian took 1000 for 'pi' group, but drewp is rarely used on pi 6 # 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 7 # setups so hopefully it won't matter much that drew group has a
9 # different id. 8 # different id.
10 drewp_uid, drewp_gid = 501, 1000 9 drewp_uid, drewp_gid = host.data.drewp_uid, host.data.drewp_gid
11 if host.name in ['pillow', ]:
12 drewp_uid, drewp_gid = 1000, 1000
13 if host.name in ['pipe', 'garage', 'ws-printer', 'gn-music', 'li-drums']:
14 drewp_uid, drewp_gid = 1001, 501
15 drewp_groups = [ 10 drewp_groups = [
16 'lp', 'adm', 'dialout', 'cdrom', 'sudo', 'audio', 'video', 'plugdev', 11 'lp', 'adm', 'dialout', 'cdrom', 'sudo', 'audio', 'video', 'plugdev',
17 'games', 'users', 'netdev', 'i2c', 'input', 'spi', 'gpio', 'fuse', 12 'games', 'users', 'netdev', 'i2c', 'input', 'spi', 'gpio', 'fuse',
18 'docker', 'render', 'mongodb', 'lpadmin' 13 'docker', 'render', 'mongodb', 'lpadmin'
19 ] 14 ]
44 server.group(group='drewp', gid=drewp_gid) 39 server.group(group='drewp', gid=drewp_gid)
45 # this won't change existing drewp uid; I've been doing that myself. 40 # this won't change existing drewp uid; I've been doing that myself.
46 server.user(user='drewp', uid=drewp_uid, group='drewp', groups=drewp_groups) 41 server.user(user='drewp', uid=drewp_uid, group='drewp', groups=drewp_groups)
47 42
48 43
49 44 if 'pi' not in host.groups:
50 if not is_pi:
51 server.group(group='adm', gid=4) 45 server.group(group='adm', gid=4)
52 server.group(group='cdrom', gid=24) 46 server.group(group='cdrom', gid=24)
53 server.group(group='dialout', gid=20) 47 server.group(group='dialout', gid=20)
54 server.group(group='dip', gid=30) 48 server.group(group='dip', gid=30)
55 server.group(group='lp', gid=7) 49 server.group(group='lp', gid=7)
87 server.user(user='elastic', uid=3018, group='elastic') 81 server.user(user='elastic', uid=3018, group='elastic')
88 82
89 server.group(group='kelsi', gid=1008) 83 server.group(group='kelsi', gid=1008)
90 server.user(user='kelsi', uid=1008, group='elastic') 84 server.user(user='kelsi', uid=1008, group='elastic')
91 85
92 if host.name != 'pipe': # https://github.com/Fizzadar/pyinfra/issues/835 86 server.group(group='drewnote', gid=1009)
93 server.group(group='drewnote', gid=1009) 87 server.user(user='drewnote', uid=1009)
94 server.user(user='drewnote', uid=1009)
95 88
96 server.group(group='prometheus', gid=1010) 89 server.group(group='prometheus', gid=1010)
97 server.user(user='prometheus', uid=1010) 90 server.user(user='prometheus', uid=1010)
98 91
99 # delete when garage is diskless 92 # delete when garage is diskless
100 if host.name == 'garage': 93 if host.name == 'garage':
101 server.group(group='fuse') 94 server.group(group='fuse')
102 server.user(user='pi', 95 server.user(user='pi',