annotate apt.py @ 178:6ec7cd3615f0

another try at apt.key, but it doesn't completely work because prime would never upgrade nodejs. I didn't try deleting the host key dirs and building from scratch yet.
author drewp@bigasterisk.com
date Sat, 25 Mar 2023 18:43:42 -0700
parents 522f26c8f691
children 466108f0a509
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
155
522f26c8f691 split apt.py from system.py
drewp@bigasterisk.com
parents:
diff changeset
1 from pyinfra import host
522f26c8f691 split apt.py from system.py
drewp@bigasterisk.com
parents:
diff changeset
2 from pyinfra.facts.files import FindFiles
522f26c8f691 split apt.py from system.py
drewp@bigasterisk.com
parents:
diff changeset
3 from pyinfra.facts.server import Arch, LinuxDistribution
522f26c8f691 split apt.py from system.py
drewp@bigasterisk.com
parents:
diff changeset
4 from pyinfra.operations import apt, files, server
522f26c8f691 split apt.py from system.py
drewp@bigasterisk.com
parents:
diff changeset
5
522f26c8f691 split apt.py from system.py
drewp@bigasterisk.com
parents:
diff changeset
6 TZ = 'America/Los_Angeles'
522f26c8f691 split apt.py from system.py
drewp@bigasterisk.com
parents:
diff changeset
7
178
6ec7cd3615f0 another try at apt.key, but it doesn't completely work because prime
drewp@bigasterisk.com
parents: 155
diff changeset
8
155
522f26c8f691 split apt.py from system.py
drewp@bigasterisk.com
parents:
diff changeset
9 def pkg_keys():
522f26c8f691 split apt.py from system.py
drewp@bigasterisk.com
parents:
diff changeset
10 # apt.key(keyserver='keyserver.ubuntu.com', keyid='04EE7237B7D453EC')
522f26c8f691 split apt.py from system.py
drewp@bigasterisk.com
parents:
diff changeset
11 # apt.key(keyserver='keyserver.ubuntu.com', keyid='648ACFD622F3D138')
522f26c8f691 split apt.py from system.py
drewp@bigasterisk.com
parents:
diff changeset
12 # apt.key(keyserver='keyserver.ubuntu.com', keyid='8B48AD6246925553')
522f26c8f691 split apt.py from system.py
drewp@bigasterisk.com
parents:
diff changeset
13 # apt.key(keyserver='keyserver.ubuntu.com', keyid='F24AEA9FB05498B7')
178
6ec7cd3615f0 another try at apt.key, but it doesn't completely work because prime
drewp@bigasterisk.com
parents: 155
diff changeset
14 # if host.name != 'prime':
6ec7cd3615f0 another try at apt.key, but it doesn't completely work because prime
drewp@bigasterisk.com
parents: 155
diff changeset
15 # apt.key(keyserver='keyserver.ubuntu.com', keyid='D0392EC59F9583BA')
6ec7cd3615f0 another try at apt.key, but it doesn't completely work because prime
drewp@bigasterisk.com
parents: 155
diff changeset
16 # apt.key(src='https://dl.google.com/linux/linux_signing_key.pub')
6ec7cd3615f0 another try at apt.key, but it doesn't completely work because prime
drewp@bigasterisk.com
parents: 155
diff changeset
17 # apt.key(src='https://ftp-master.debian.org/keys/archive-key-8-security.asc')
6ec7cd3615f0 another try at apt.key, but it doesn't completely work because prime
drewp@bigasterisk.com
parents: 155
diff changeset
18 # apt.key(src='https://ftp-master.debian.org/keys/archive-key-8.asc')
6ec7cd3615f0 another try at apt.key, but it doesn't completely work because prime
drewp@bigasterisk.com
parents: 155
diff changeset
19 # apt.key(src='https://ftp-master.debian.org/keys/archive-key-9-security.asc')
6ec7cd3615f0 another try at apt.key, but it doesn't completely work because prime
drewp@bigasterisk.com
parents: 155
diff changeset
20 # apt.key(src='https://packages.microsoft.com/keys/microsoft.asc')
6ec7cd3615f0 another try at apt.key, but it doesn't completely work because prime
drewp@bigasterisk.com
parents: 155
diff changeset
21 # apt.key(src='https://deb.nodesource.com/gpgkey/nodesource.gpg.key')
6ec7cd3615f0 another try at apt.key, but it doesn't completely work because prime
drewp@bigasterisk.com
parents: 155
diff changeset
22
6ec7cd3615f0 another try at apt.key, but it doesn't completely work because prime
drewp@bigasterisk.com
parents: 155
diff changeset
23 apt.key(keyserver='keyserver.ubuntu.com', keyid='1655A0AB68576280')
6ec7cd3615f0 another try at apt.key, but it doesn't completely work because prime
drewp@bigasterisk.com
parents: 155
diff changeset
24
6ec7cd3615f0 another try at apt.key, but it doesn't completely work because prime
drewp@bigasterisk.com
parents: 155
diff changeset
25 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
26 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
27 ('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
28 ('https://deb.nodesource.com/node_18.x/dists/kinetic/Release.gpg', 'nodesource-kinetic.gpg'),
6ec7cd3615f0 another try at apt.key, but it doesn't completely work because prime
drewp@bigasterisk.com
parents: 155
diff changeset
29 ('http://packages.microsoft.com/ubuntu/22.10/prod/dists/kinetic/Release.gpg', 'ms.gpg'),
6ec7cd3615f0 another try at apt.key, but it doesn't completely work because prime
drewp@bigasterisk.com
parents: 155
diff changeset
30 ('https://download.opensuse.org/repositories/devel:kubic:libcontainers:unstable/Debian_Unstable/Release.key',
6ec7cd3615f0 another try at apt.key, but it doesn't completely work because prime
drewp@bigasterisk.com
parents: 155
diff changeset
31 'podman.gpg'),
6ec7cd3615f0 another try at apt.key, but it doesn't completely work because prime
drewp@bigasterisk.com
parents: 155
diff changeset
32 ('https://dl.google.com/linux/linux_signing_key.pub', 'chrome.gpg'),
6ec7cd3615f0 another try at apt.key, but it doesn't completely work because prime
drewp@bigasterisk.com
parents: 155
diff changeset
33 ('https://deb.nodesource.com/gpgkey/nodesource.gpg.key', 'nodesource.gpg'),
6ec7cd3615f0 another try at apt.key, but it doesn't completely work because prime
drewp@bigasterisk.com
parents: 155
diff changeset
34 ]:
6ec7cd3615f0 another try at apt.key, but it doesn't completely work because prime
drewp@bigasterisk.com
parents: 155
diff changeset
35 files.download(src=url, dest=f'/etc/apt/keyrings/{name}')
6ec7cd3615f0 another try at apt.key, but it doesn't completely work because prime
drewp@bigasterisk.com
parents: 155
diff changeset
36 # server.shell(commands=[
6ec7cd3615f0 another try at apt.key, but it doesn't completely work because prime
drewp@bigasterisk.com
parents: 155
diff changeset
37 # f"curl -fsSL {url} | gpg --dearmor > /etc/apt/keyrings/{name}" 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
38 # # ('https://deb.nodesource.com/node_18.x/dists/kinetic/Release.gpg', 'nodesource-kinetic.gpg'),
6ec7cd3615f0 another try at apt.key, but it doesn't completely work because prime
drewp@bigasterisk.com
parents: 155
diff changeset
39 # # ('http://packages.microsoft.com/ubuntu/22.10/prod/dists/kinetic/Release.gpg', 'ms.gpg'),
6ec7cd3615f0 another try at apt.key, but it doesn't completely work because prime
drewp@bigasterisk.com
parents: 155
diff changeset
40 # ]
6ec7cd3615f0 another try at apt.key, but it doesn't completely work because prime
drewp@bigasterisk.com
parents: 155
diff changeset
41 # ])
155
522f26c8f691 split apt.py from system.py
drewp@bigasterisk.com
parents:
diff changeset
42
522f26c8f691 split apt.py from system.py
drewp@bigasterisk.com
parents:
diff changeset
43
522f26c8f691 split apt.py from system.py
drewp@bigasterisk.com
parents:
diff changeset
44 def apt_sources():
522f26c8f691 split apt.py from system.py
drewp@bigasterisk.com
parents:
diff changeset
45 if host.get_fact(Arch) == 'x86_64':
522f26c8f691 split apt.py from system.py
drewp@bigasterisk.com
parents:
diff changeset
46 server.shell(commands=['dpkg --add-architecture i386'])
522f26c8f691 split apt.py from system.py
drewp@bigasterisk.com
parents:
diff changeset
47
522f26c8f691 split apt.py from system.py
drewp@bigasterisk.com
parents:
diff changeset
48 files.template(src='templates/sources.list.j2', dest='/etc/apt/sources.list')
522f26c8f691 split apt.py from system.py
drewp@bigasterisk.com
parents:
diff changeset
49 if host.get_fact(FindFiles, '/etc/apt/sources.list.d/', quote_path=True):
522f26c8f691 split apt.py from system.py
drewp@bigasterisk.com
parents:
diff changeset
50 raise SystemExit(f"new files in {host.name} /etc/apt/sources.list.d/ - please remove")
522f26c8f691 split apt.py from system.py
drewp@bigasterisk.com
parents:
diff changeset
51 apt.packages(update=True,
522f26c8f691 split apt.py from system.py
drewp@bigasterisk.com
parents:
diff changeset
52 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
53 packages=['tzdata'],
6ec7cd3615f0 another try at apt.key, but it doesn't completely work because prime
drewp@bigasterisk.com
parents: 155
diff changeset
54 force=True,
6ec7cd3615f0 another try at apt.key, but it doesn't completely work because prime
drewp@bigasterisk.com
parents: 155
diff changeset
55 _env={
6ec7cd3615f0 another try at apt.key, but it doesn't completely work because prime
drewp@bigasterisk.com
parents: 155
diff changeset
56 'TZ': TZ,
6ec7cd3615f0 another try at apt.key, but it doesn't completely work because prime
drewp@bigasterisk.com
parents: 155
diff changeset
57 '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
58 'DEBIAN_FRONTEND': 'noninteractive'
6ec7cd3615f0 another try at apt.key, but it doesn't completely work because prime
drewp@bigasterisk.com
parents: 155
diff changeset
59 })
6ec7cd3615f0 another try at apt.key, but it doesn't completely work because prime
drewp@bigasterisk.com
parents: 155
diff changeset
60
6ec7cd3615f0 another try at apt.key, but it doesn't completely work because prime
drewp@bigasterisk.com
parents: 155
diff changeset
61
155
522f26c8f691 split apt.py from system.py
drewp@bigasterisk.com
parents:
diff changeset
62 pkg_keys()
522f26c8f691 split apt.py from system.py
drewp@bigasterisk.com
parents:
diff changeset
63 apt_sources()