annotate apt.py @ 247:ff36727f3a10

pkg and host updates
author drewp@bigasterisk.com
date Thu, 28 Dec 2023 16:38:05 -0800
parents b58f05be720a
children 5c10b1e8d0e1
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
195
ee6374edfc06 pkgs and signatures
drewp@bigasterisk.com
parents: 188
diff changeset
1 from pathlib import Path
155
522f26c8f691 split apt.py from system.py
drewp@bigasterisk.com
parents:
diff changeset
2 from pyinfra import host
522f26c8f691 split apt.py from system.py
drewp@bigasterisk.com
parents:
diff changeset
3 from pyinfra.facts.files import FindFiles
522f26c8f691 split apt.py from system.py
drewp@bigasterisk.com
parents:
diff changeset
4 from pyinfra.facts.server import Arch, LinuxDistribution
522f26c8f691 split apt.py from system.py
drewp@bigasterisk.com
parents:
diff changeset
5 from pyinfra.operations import apt, files, server
522f26c8f691 split apt.py from system.py
drewp@bigasterisk.com
parents:
diff changeset
6
522f26c8f691 split apt.py from system.py
drewp@bigasterisk.com
parents:
diff changeset
7 TZ = 'America/Los_Angeles'
522f26c8f691 split apt.py from system.py
drewp@bigasterisk.com
parents:
diff changeset
8
178
6ec7cd3615f0 another try at apt.key, but it doesn't completely work because prime
drewp@bigasterisk.com
parents: 155
diff changeset
9
155
522f26c8f691 split apt.py from system.py
drewp@bigasterisk.com
parents:
diff changeset
10 def pkg_keys():
178
6ec7cd3615f0 another try at apt.key, but it doesn't completely work because prime
drewp@bigasterisk.com
parents: 155
diff changeset
11 files.directory(path='/etc/apt/keyrings/') # for raspi
6ec7cd3615f0 another try at apt.key, but it doesn't completely work because prime
drewp@bigasterisk.com
parents: 155
diff changeset
12 for url, name in [
6ec7cd3615f0 another try at apt.key, but it doesn't completely work because prime
drewp@bigasterisk.com
parents: 155
diff changeset
13 ('https://repo.steampowered.com/steam/archive/stable/steam.gpg', 'steam.gpg'),
6ec7cd3615f0 another try at apt.key, but it doesn't completely work because prime
drewp@bigasterisk.com
parents: 155
diff changeset
14 ]:
247
ff36727f3a10 pkg and host updates
drewp@bigasterisk.com
parents: 240
diff changeset
15 files.download(src=url, dest=f'/usr/share/keyrings/{name}')
203
3fd439ae1380 minor & some upgrades
drewp@bigasterisk.com
parents: 195
diff changeset
16
3fd439ae1380 minor & some upgrades
drewp@bigasterisk.com
parents: 195
diff changeset
17 # vscode keeps making this, but I fetch my own
235
19a7f714273c pkg updates, take out nvidia drv for now
drewp@bigasterisk.com
parents: 230
diff changeset
18 files.file(path='/etc/apt/trusted.gpg.d/microsoft.gpg', present=False)
203
3fd439ae1380 minor & some upgrades
drewp@bigasterisk.com
parents: 195
diff changeset
19
230
8ef74d3a11ac rm redundant file that makes errors
drewp@bigasterisk.com
parents: 211
diff changeset
20 # and it makes this, which is redundant with my sources.list template line
8ef74d3a11ac rm redundant file that makes errors
drewp@bigasterisk.com
parents: 211
diff changeset
21 files.file(path='/etc/apt/sources.list.d/vscode.list', present=False)
8ef74d3a11ac rm redundant file that makes errors
drewp@bigasterisk.com
parents: 211
diff changeset
22
240
b58f05be720a updates for new ubuntu 23.10 install
drewp@bigasterisk.com
parents: 235
diff changeset
23 apt.packages(packages=['curl'])
187
466108f0a509 redo pkg keys and future podman 4.3.1 version
drewp@bigasterisk.com
parents: 178
diff changeset
24 server.shell(commands=[
466108f0a509 redo pkg keys and future podman 4.3.1 version
drewp@bigasterisk.com
parents: 178
diff changeset
25 f"curl -fsSL {url} | gpg --dearmor > /etc/apt/keyrings/{name}" for (url, name) in [
466108f0a509 redo pkg keys and future podman 4.3.1 version
drewp@bigasterisk.com
parents: 178
diff changeset
26 ('https://packages.microsoft.com/keys/microsoft.asc', 'ms.gpg'),
247
ff36727f3a10 pkg and host updates
drewp@bigasterisk.com
parents: 240
diff changeset
27 ('https://deb.nodesource.com/gpgkey/nodesource.gpg.key', 'nodesource-older.gpg'), # rm after everything's on 23.10
240
b58f05be720a updates for new ubuntu 23.10 install
drewp@bigasterisk.com
parents: 235
diff changeset
28 ('https://deb.nodesource.com/gpgkey/nodesource-repo.gpg.key', 'nodesource.gpg'),
187
466108f0a509 redo pkg keys and future podman 4.3.1 version
drewp@bigasterisk.com
parents: 178
diff changeset
29 ('https://dl.google.com/linux/linux_signing_key.pub', 'chrome.gpg'),
195
ee6374edfc06 pkgs and signatures
drewp@bigasterisk.com
parents: 188
diff changeset
30 ('https://ftp-master.debian.org/keys/archive-key-11.asc', 'bullseye.gpg'),
ee6374edfc06 pkgs and signatures
drewp@bigasterisk.com
parents: 188
diff changeset
31 ('https://ftp-master.debian.org/keys/archive-key-11-security.asc', 'bullseye-security.gpg'),
209
5b7cd39e6504 add coral driver
drewp@bigasterisk.com
parents: 203
diff changeset
32 ('https://packages.cloud.google.com/apt/doc/apt-key.gpg', 'coral.gpg'),
187
466108f0a509 redo pkg keys and future podman 4.3.1 version
drewp@bigasterisk.com
parents: 178
diff changeset
33 ]
466108f0a509 redo pkg keys and future podman 4.3.1 version
drewp@bigasterisk.com
parents: 178
diff changeset
34 ])
195
ee6374edfc06 pkgs and signatures
drewp@bigasterisk.com
parents: 188
diff changeset
35 if host.get_fact(Arch) == 'armv7l' or host.name == 'bang': # I mean raspbian/debian
ee6374edfc06 pkgs and signatures
drewp@bigasterisk.com
parents: 188
diff changeset
36 # this contaminates the apt-update
ee6374edfc06 pkgs and signatures
drewp@bigasterisk.com
parents: 188
diff changeset
37 files.file(path="/etc/apt/trusted.gpg.d/podman.asc", present=False)
ee6374edfc06 pkgs and signatures
drewp@bigasterisk.com
parents: 188
diff changeset
38
211
drewp@bigasterisk.com
parents: 209
diff changeset
39 # also these
drewp@bigasterisk.com
parents: 209
diff changeset
40 #-rw-r--r-- 1 root root 2794 Mar 26 2021 /etc/apt/trusted.gpg.d/ubuntu-keyring-2012-cdimage.gpg
drewp@bigasterisk.com
parents: 209
diff changeset
41 #-rw-r--r-- 1 root root 1733 Mar 26 2021 /etc/apt/trusted.gpg.d/ubuntu-keyring-2018-archive.gpg
195
ee6374edfc06 pkgs and signatures
drewp@bigasterisk.com
parents: 188
diff changeset
42
ee6374edfc06 pkgs and signatures
drewp@bigasterisk.com
parents: 188
diff changeset
43 dir = Path('/etc/apt/sources.list.d')
ee6374edfc06 pkgs and signatures
drewp@bigasterisk.com
parents: 188
diff changeset
44
ee6374edfc06 pkgs and signatures
drewp@bigasterisk.com
parents: 188
diff changeset
45
240
b58f05be720a updates for new ubuntu 23.10 install
drewp@bigasterisk.com
parents: 235
diff changeset
46 def clear_known_sources_files(known=[
b58f05be720a updates for new ubuntu 23.10 install
drewp@bigasterisk.com
parents: 235
diff changeset
47 dir / 'vscode.list',
b58f05be720a updates for new ubuntu 23.10 install
drewp@bigasterisk.com
parents: 235
diff changeset
48 dir / 'google-chrome.list',
b58f05be720a updates for new ubuntu 23.10 install
drewp@bigasterisk.com
parents: 235
diff changeset
49 dir / 'steam-beta.list',
b58f05be720a updates for new ubuntu 23.10 install
drewp@bigasterisk.com
parents: 235
diff changeset
50 dir / 'google-chrome-unstable.list',
b58f05be720a updates for new ubuntu 23.10 install
drewp@bigasterisk.com
parents: 235
diff changeset
51 dir / 'steam-stable.list',
b58f05be720a updates for new ubuntu 23.10 install
drewp@bigasterisk.com
parents: 235
diff changeset
52 ]):
195
ee6374edfc06 pkgs and signatures
drewp@bigasterisk.com
parents: 188
diff changeset
53 found = map(Path, host.get_fact(FindFiles, dir, quote_path=True))
ee6374edfc06 pkgs and signatures
drewp@bigasterisk.com
parents: 188
diff changeset
54 if set(found) - set(known):
ee6374edfc06 pkgs and signatures
drewp@bigasterisk.com
parents: 188
diff changeset
55 raise SystemExit(f"new files in {host.name} /etc/apt/sources.list.d/ - please remove")
ee6374edfc06 pkgs and signatures
drewp@bigasterisk.com
parents: 188
diff changeset
56 for f in known:
ee6374edfc06 pkgs and signatures
drewp@bigasterisk.com
parents: 188
diff changeset
57 files.file(path=f, present=False)
155
522f26c8f691 split apt.py from system.py
drewp@bigasterisk.com
parents:
diff changeset
58
522f26c8f691 split apt.py from system.py
drewp@bigasterisk.com
parents:
diff changeset
59
522f26c8f691 split apt.py from system.py
drewp@bigasterisk.com
parents:
diff changeset
60 def apt_sources():
522f26c8f691 split apt.py from system.py
drewp@bigasterisk.com
parents:
diff changeset
61 if host.get_fact(Arch) == 'x86_64':
522f26c8f691 split apt.py from system.py
drewp@bigasterisk.com
parents:
diff changeset
62 server.shell(commands=['dpkg --add-architecture i386'])
522f26c8f691 split apt.py from system.py
drewp@bigasterisk.com
parents:
diff changeset
63
522f26c8f691 split apt.py from system.py
drewp@bigasterisk.com
parents:
diff changeset
64 files.template(src='templates/sources.list.j2', dest='/etc/apt/sources.list')
195
ee6374edfc06 pkgs and signatures
drewp@bigasterisk.com
parents: 188
diff changeset
65
ee6374edfc06 pkgs and signatures
drewp@bigasterisk.com
parents: 188
diff changeset
66 clear_known_sources_files()
155
522f26c8f691 split apt.py from system.py
drewp@bigasterisk.com
parents:
diff changeset
67 apt.packages(update=True,
187
466108f0a509 redo pkg keys and future podman 4.3.1 version
drewp@bigasterisk.com
parents: 178
diff changeset
68 cache_time=86400,
178
6ec7cd3615f0 another try at apt.key, but it doesn't completely work because prime
drewp@bigasterisk.com
parents: 155
diff changeset
69 packages=['tzdata'],
6ec7cd3615f0 another try at apt.key, but it doesn't completely work because prime
drewp@bigasterisk.com
parents: 155
diff changeset
70 force=True,
6ec7cd3615f0 another try at apt.key, but it doesn't completely work because prime
drewp@bigasterisk.com
parents: 155
diff changeset
71 _env={
6ec7cd3615f0 another try at apt.key, but it doesn't completely work because prime
drewp@bigasterisk.com
parents: 155
diff changeset
72 'TZ': TZ,
6ec7cd3615f0 another try at apt.key, but it doesn't completely work because prime
drewp@bigasterisk.com
parents: 155
diff changeset
73 'LANG': 'en_US.UTF-8',
6ec7cd3615f0 another try at apt.key, but it doesn't completely work because prime
drewp@bigasterisk.com
parents: 155
diff changeset
74 'DEBIAN_FRONTEND': 'noninteractive'
6ec7cd3615f0 another try at apt.key, but it doesn't completely work because prime
drewp@bigasterisk.com
parents: 155
diff changeset
75 })
6ec7cd3615f0 another try at apt.key, but it doesn't completely work because prime
drewp@bigasterisk.com
parents: 155
diff changeset
76
188
087b84e68765 comment
drewp@bigasterisk.com
parents: 187
diff changeset
77 # squib 1st setup seemed to need more updates for node(nodesource)
087b84e68765 comment
drewp@bigasterisk.com
parents: 187
diff changeset
78 # and steam-launcher
178
6ec7cd3615f0 another try at apt.key, but it doesn't completely work because prime
drewp@bigasterisk.com
parents: 155
diff changeset
79
195
ee6374edfc06 pkgs and signatures
drewp@bigasterisk.com
parents: 188
diff changeset
80
155
522f26c8f691 split apt.py from system.py
drewp@bigasterisk.com
parents:
diff changeset
81 pkg_keys()
187
466108f0a509 redo pkg keys and future podman 4.3.1 version
drewp@bigasterisk.com
parents: 178
diff changeset
82 apt_sources()