Mercurial > code > home > repos > infra
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 |
rev | line source |
---|---|
12 | 1 from pyinfra import host |
2 from pyinfra.facts.server import LinuxDistribution | |
186 | 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 | 5 |
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 | 8 |
103
8b8ef9d8f0fd
dead code and templates, reformat, maybe a little refactor
drewp@bigasterisk.com
parents:
93
diff
changeset
|
9 def kitty(): |
150 | 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 | 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 | 27 "rm -f /usr/local/bin/pnp{m,x}", |
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 | 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 | 34 def pdm(): |
35 server.shell(["pip install 'pdm==2.7.4'"]) | |
69 | 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 | 43 def proper_man(): |
44 if host.name in ['pipe', 'prime'] or is_pi: | |
45 apt.packages(packages=['mandb'], present=False) | |
12 | 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 | 52 |
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 | 55 |
12 | 56 if not is_pi: |
83 | 57 if host.name != 'pipe': |
131 | 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 | 60 else: |
61 apt.packages(packages=package_lists.pi_setup) | |
12 | 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 | 64 proper_man() |
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 | 69 |
146 | 70 if host.name in ["bang" ,'ditto']: |
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 | 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 | 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 | 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 | 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 | 87 pdm() |
131 | 88 |
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 | 92 nodejs() |
93 else: | |
94 # move to another file? | |
95 files.template(src="templates/pigpiod.service.j2", dest=f"/etc/systemd/system/pigpiod.service") | |
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() |