annotate packages.py @ 203:3fd439ae1380

minor & some upgrades
author drewp@bigasterisk.com
date Fri, 30 Jun 2023 22:39:13 -0700
parents c409ea5a1d5c
children 826db3c40fa7
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
12
15c5ce7c74b5 refactor, cleanup, split large deploys
drewp@bigasterisk.com
parents:
diff changeset
1 from pyinfra import host
15c5ce7c74b5 refactor, cleanup, split large deploys
drewp@bigasterisk.com
parents:
diff changeset
2 from pyinfra.facts.server import LinuxDistribution
186
db4b3a07a3dc run pigpiod
drewp@bigasterisk.com
parents: 174
diff changeset
3 from pyinfra.operations import apt, files, server, systemd
114
7e280bf26dba package lists big update, pulling from /var/log/apt on a few hosts
drewp@bigasterisk.com
parents: 108
diff changeset
4 import package_lists
12
15c5ce7c74b5 refactor, cleanup, split large deploys
drewp@bigasterisk.com
parents:
diff changeset
5
15c5ce7c74b5 refactor, cleanup, split large deploys
drewp@bigasterisk.com
parents:
diff changeset
6 is_pi = host.get_fact(LinuxDistribution)['name'] in ['Debian', 'Raspbian GNU/Linux']
103
8b8ef9d8f0fd dead code and templates, reformat, maybe a little refactor
drewp@bigasterisk.com
parents: 93
diff changeset
7
12
15c5ce7c74b5 refactor, cleanup, split large deploys
drewp@bigasterisk.com
parents:
diff changeset
8
103
8b8ef9d8f0fd dead code and templates, reformat, maybe a little refactor
drewp@bigasterisk.com
parents: 93
diff changeset
9 def kitty():
150
1f845cf1cc94 upgrade kitty, skaffold
drewp@bigasterisk.com
parents: 147
diff changeset
10 vers = '0.27.1' # see https://github.com/kovidgoyal/kitty/releases
103
8b8ef9d8f0fd dead code and templates, reformat, maybe a little refactor
drewp@bigasterisk.com
parents: 93
diff changeset
11 home = '/home/drewp'
8b8ef9d8f0fd dead code and templates, reformat, maybe a little refactor
drewp@bigasterisk.com
parents: 93
diff changeset
12 local = f"{home}/.local/kitty"
8b8ef9d8f0fd dead code and templates, reformat, maybe a little refactor
drewp@bigasterisk.com
parents: 93
diff changeset
13 dl = f'/tmp/kitty-{vers}-x86_64.txz'
8b8ef9d8f0fd dead code and templates, reformat, maybe a little refactor
drewp@bigasterisk.com
parents: 93
diff changeset
14 files.download(src=f"https://github.com/kovidgoyal/kitty/releases/download/v{vers}/kitty-{vers}-x86_64.txz", dest=dl)
8b8ef9d8f0fd dead code and templates, reformat, maybe a little refactor
drewp@bigasterisk.com
parents: 93
diff changeset
15 files.directory(local)
8b8ef9d8f0fd dead code and templates, reformat, maybe a little refactor
drewp@bigasterisk.com
parents: 93
diff changeset
16 server.shell([
8b8ef9d8f0fd dead code and templates, reformat, maybe a little refactor
drewp@bigasterisk.com
parents: 93
diff changeset
17 f"mkdir -p {local}", # https://github.com/Fizzadar/pyinfra/issues/777
8b8ef9d8f0fd dead code and templates, reformat, maybe a little refactor
drewp@bigasterisk.com
parents: 93
diff changeset
18 f"aunpack --extract-to={local} {dl}",
8b8ef9d8f0fd dead code and templates, reformat, maybe a little refactor
drewp@bigasterisk.com
parents: 93
diff changeset
19 ])
8b8ef9d8f0fd dead code and templates, reformat, maybe a little refactor
drewp@bigasterisk.com
parents: 93
diff changeset
20 files.link(target="{local}/bin/kitty", path="{home}/bin/kitty")
8b8ef9d8f0fd dead code and templates, reformat, maybe a little refactor
drewp@bigasterisk.com
parents: 93
diff changeset
21
12
15c5ce7c74b5 refactor, cleanup, split large deploys
drewp@bigasterisk.com
parents:
diff changeset
22
174
b6b11048d0fb collect nodejs pkg install stuff together
drewp@bigasterisk.com
parents: 169
diff changeset
23 def nodejs():
b6b11048d0fb collect nodejs pkg install stuff together
drewp@bigasterisk.com
parents: 169
diff changeset
24 apt.packages(packages=['libnode72'], present=False, force=True)
b6b11048d0fb collect nodejs pkg install stuff together
drewp@bigasterisk.com
parents: 169
diff changeset
25 apt.packages(packages=['nodejs'], latest=True)
103
8b8ef9d8f0fd dead code and templates, reformat, maybe a little refactor
drewp@bigasterisk.com
parents: 93
diff changeset
26 server.shell([
169
5a8c25d62578 pnpm upgrade
drewp@bigasterisk.com
parents: 150
diff changeset
27 "rm -f /usr/local/bin/pnp{m,x}",
5a8c25d62578 pnpm upgrade
drewp@bigasterisk.com
parents: 150
diff changeset
28 "corepack enable",
103
8b8ef9d8f0fd dead code and templates, reformat, maybe a little refactor
drewp@bigasterisk.com
parents: 93
diff changeset
29 # https://github.com/pnpm/pnpm/releases
8b8ef9d8f0fd dead code and templates, reformat, maybe a little refactor
drewp@bigasterisk.com
parents: 93
diff changeset
30 # but also https://pnpm.io/installation#compatibility
203
3fd439ae1380 minor & some upgrades
drewp@bigasterisk.com
parents: 196
diff changeset
31 "corepack prepare 'pnpm@8.6.3' --activate",
103
8b8ef9d8f0fd dead code and templates, reformat, maybe a little refactor
drewp@bigasterisk.com
parents: 93
diff changeset
32 ])
8b8ef9d8f0fd dead code and templates, reformat, maybe a little refactor
drewp@bigasterisk.com
parents: 93
diff changeset
33
203
3fd439ae1380 minor & some upgrades
drewp@bigasterisk.com
parents: 196
diff changeset
34 def pdm():
3fd439ae1380 minor & some upgrades
drewp@bigasterisk.com
parents: 196
diff changeset
35 server.shell(["pip install 'pdm==2.7.4'"])
69
659e4b228909 new host 'pipe'
drewp@bigasterisk.com
parents: 62
diff changeset
36
103
8b8ef9d8f0fd dead code and templates, reformat, maybe a little refactor
drewp@bigasterisk.com
parents: 93
diff changeset
37 def proper_locate():
8b8ef9d8f0fd dead code and templates, reformat, maybe a little refactor
drewp@bigasterisk.com
parents: 93
diff changeset
38 apt.packages(packages='mlocate', present=False)
8b8ef9d8f0fd dead code and templates, reformat, maybe a little refactor
drewp@bigasterisk.com
parents: 93
diff changeset
39 if not is_pi and host.name not in ['prime', 'pipe']:
8b8ef9d8f0fd dead code and templates, reformat, maybe a little refactor
drewp@bigasterisk.com
parents: 93
diff changeset
40 apt.packages(packages='plocate')
8b8ef9d8f0fd dead code and templates, reformat, maybe a little refactor
drewp@bigasterisk.com
parents: 93
diff changeset
41
8b8ef9d8f0fd dead code and templates, reformat, maybe a little refactor
drewp@bigasterisk.com
parents: 93
diff changeset
42
131
7a94db404be4 packages refactor and some updates
drewp@bigasterisk.com
parents: 126
diff changeset
43 def proper_man():
7a94db404be4 packages refactor and some updates
drewp@bigasterisk.com
parents: 126
diff changeset
44 if host.name in ['pipe', 'prime'] or is_pi:
7a94db404be4 packages refactor and some updates
drewp@bigasterisk.com
parents: 126
diff changeset
45 apt.packages(packages=['mandb'], present=False)
12
15c5ce7c74b5 refactor, cleanup, split large deploys
drewp@bigasterisk.com
parents:
diff changeset
46
196
c409ea5a1d5c don't tie up 80/443 with an unwanted nginx instance
drewp@bigasterisk.com
parents: 192
diff changeset
47 def no_unwanted_services():
c409ea5a1d5c don't tie up 80/443 with an unwanted nginx instance
drewp@bigasterisk.com
parents: 192
diff changeset
48 systemd.service(service='nginx', enabled=False, running=False)
c409ea5a1d5c don't tie up 80/443 with an unwanted nginx instance
drewp@bigasterisk.com
parents: 192
diff changeset
49
c409ea5a1d5c don't tie up 80/443 with an unwanted nginx instance
drewp@bigasterisk.com
parents: 192
diff changeset
50
143
6b4226845254 actually update packages, and add google chrome to the sources
drewp@bigasterisk.com
parents: 138
diff changeset
51 kw = dict(latest=True)
12
15c5ce7c74b5 refactor, cleanup, split large deploys
drewp@bigasterisk.com
parents:
diff changeset
52
15c5ce7c74b5 refactor, cleanup, split large deploys
drewp@bigasterisk.com
parents:
diff changeset
53
143
6b4226845254 actually update packages, and add google chrome to the sources
drewp@bigasterisk.com
parents: 138
diff changeset
54 apt.packages(packages=package_lists.setup, **kw)
131
7a94db404be4 packages refactor and some updates
drewp@bigasterisk.com
parents: 126
diff changeset
55
12
15c5ce7c74b5 refactor, cleanup, split large deploys
drewp@bigasterisk.com
parents:
diff changeset
56 if not is_pi:
83
9e66c3f17351 add reptyr
drewp@bigasterisk.com
parents: 77
diff changeset
57 if host.name != 'pipe':
131
7a94db404be4 packages refactor and some updates
drewp@bigasterisk.com
parents: 126
diff changeset
58 apt.packages(packages=['reptyr'])
103
8b8ef9d8f0fd dead code and templates, reformat, maybe a little refactor
drewp@bigasterisk.com
parents: 93
diff changeset
59 kitty()
131
7a94db404be4 packages refactor and some updates
drewp@bigasterisk.com
parents: 126
diff changeset
60 else:
7a94db404be4 packages refactor and some updates
drewp@bigasterisk.com
parents: 126
diff changeset
61 apt.packages(packages=package_lists.pi_setup)
12
15c5ce7c74b5 refactor, cleanup, split large deploys
drewp@bigasterisk.com
parents:
diff changeset
62
114
7e280bf26dba package lists big update, pulling from /var/log/apt on a few hosts
drewp@bigasterisk.com
parents: 108
diff changeset
63 proper_locate()
131
7a94db404be4 packages refactor and some updates
drewp@bigasterisk.com
parents: 126
diff changeset
64 proper_man()
7a94db404be4 packages refactor and some updates
drewp@bigasterisk.com
parents: 126
diff changeset
65
143
6b4226845254 actually update packages, and add google chrome to the sources
drewp@bigasterisk.com
parents: 138
diff changeset
66
6b4226845254 actually update packages, and add google chrome to the sources
drewp@bigasterisk.com
parents: 138
diff changeset
67 apt.packages(packages=package_lists.general, **kw)
6b4226845254 actually update packages, and add google chrome to the sources
drewp@bigasterisk.com
parents: 138
diff changeset
68 apt.packages(packages=package_lists.debug, **kw)
56
4c15fc1e879d bump some tool versions
drewp@bigasterisk.com
parents: 49
diff changeset
69
146
2065998876e4 add host 'ditto'
drewp@bigasterisk.com
parents: 143
diff changeset
70 if host.name in ["bang" ,'ditto']:
2065998876e4 add host 'ditto'
drewp@bigasterisk.com
parents: 143
diff changeset
71 apt.packages(packages=package_lists.for_bang_ditto, **kw)
114
7e280bf26dba package lists big update, pulling from /var/log/apt on a few hosts
drewp@bigasterisk.com
parents: 108
diff changeset
72
7e280bf26dba package lists big update, pulling from /var/log/apt on a few hosts
drewp@bigasterisk.com
parents: 108
diff changeset
73 if host.name == "pipe":
143
6b4226845254 actually update packages, and add google chrome to the sources
drewp@bigasterisk.com
parents: 138
diff changeset
74 apt.packages(packages=package_lists.for_pipe, **kw)
37
fbd0849dfdbd redo networking to be much simpler. Uses systemd-networkd
drewp@bigasterisk.com
parents: 34
diff changeset
75
131
7a94db404be4 packages refactor and some updates
drewp@bigasterisk.com
parents: 126
diff changeset
76 if host.name == "prime":
143
6b4226845254 actually update packages, and add google chrome to the sources
drewp@bigasterisk.com
parents: 138
diff changeset
77 apt.packages(packages=package_lists.for_prime, **kw)
131
7a94db404be4 packages refactor and some updates
drewp@bigasterisk.com
parents: 126
diff changeset
78
37
fbd0849dfdbd redo networking to be much simpler. Uses systemd-networkd
drewp@bigasterisk.com
parents: 34
diff changeset
79 if host.name == 'plus':
143
6b4226845254 actually update packages, and add google chrome to the sources
drewp@bigasterisk.com
parents: 138
diff changeset
80 apt.packages(packages=package_lists.laptop, **kw)
114
7e280bf26dba package lists big update, pulling from /var/log/apt on a few hosts
drewp@bigasterisk.com
parents: 108
diff changeset
81
189
ef443257ae9c new host 'squib'
drewp@bigasterisk.com
parents: 187
diff changeset
82 desktop_env = host.name in ['dash', 'slash', 'plus', 'squib']
114
7e280bf26dba package lists big update, pulling from /var/log/apt on a few hosts
drewp@bigasterisk.com
parents: 108
diff changeset
83 if desktop_env:
192
drewp@bigasterisk.com
parents: 189
diff changeset
84 apt.packages(packages=package_lists.xorg + package_lists.desktop, **kw)
187
466108f0a509 redo pkg keys and future podman 4.3.1 version
drewp@bigasterisk.com
parents: 186
diff changeset
85 apt.deb(src="http://mirrors.kernel.org/ubuntu/pool/universe/libp/libpod/podman_4.3.1+ds1-5ubuntu1_amd64.deb")
466108f0a509 redo pkg keys and future podman 4.3.1 version
drewp@bigasterisk.com
parents: 186
diff changeset
86 apt.deb(src="http://mirrors.kernel.org/ubuntu/pool/universe/libp/libpod/podman-docker_4.3.1+ds1-5ubuntu1_amd64.deb")
203
3fd439ae1380 minor & some upgrades
drewp@bigasterisk.com
parents: 196
diff changeset
87 pdm()
131
7a94db404be4 packages refactor and some updates
drewp@bigasterisk.com
parents: 126
diff changeset
88
7a94db404be4 packages refactor and some updates
drewp@bigasterisk.com
parents: 126
diff changeset
89 if not is_pi:
143
6b4226845254 actually update packages, and add google chrome to the sources
drewp@bigasterisk.com
parents: 138
diff changeset
90 apt.packages(packages=package_lists.non_pi, **kw)
174
b6b11048d0fb collect nodejs pkg install stuff together
drewp@bigasterisk.com
parents: 169
diff changeset
91 if host.name != 'prime': # couldn't get prime to install a newer version than 18.7.0
186
db4b3a07a3dc run pigpiod
drewp@bigasterisk.com
parents: 174
diff changeset
92 nodejs()
db4b3a07a3dc run pigpiod
drewp@bigasterisk.com
parents: 174
diff changeset
93 else:
db4b3a07a3dc run pigpiod
drewp@bigasterisk.com
parents: 174
diff changeset
94 # move to another file?
db4b3a07a3dc run pigpiod
drewp@bigasterisk.com
parents: 174
diff changeset
95 files.template(src="templates/pigpiod.service.j2", dest=f"/etc/systemd/system/pigpiod.service")
db4b3a07a3dc run pigpiod
drewp@bigasterisk.com
parents: 174
diff changeset
96 systemd.service(service='pigpiod', daemon_reload=True, enabled=True)
196
c409ea5a1d5c don't tie up 80/443 with an unwanted nginx instance
drewp@bigasterisk.com
parents: 192
diff changeset
97
c409ea5a1d5c don't tie up 80/443 with an unwanted nginx instance
drewp@bigasterisk.com
parents: 192
diff changeset
98 no_unwanted_services()