Mercurial > code > home > repos > infra
comparison system.py @ 126:fe3ae7c95e65
collect all apt/sources.list into a central template
author | drewp@bigasterisk.com |
---|---|
date | Wed, 21 Dec 2022 12:36:06 -0800 |
parents | 69058ad170be |
children | 168bc1c44e6f |
comparison
equal
deleted
inserted
replaced
125:faccf5f8c808 | 126:fe3ae7c95e65 |
---|---|
1 import os | 1 import os |
2 | 2 |
3 from pyinfra import host | 3 from pyinfra import host |
4 from pyinfra.facts.server import LinuxDistribution | 4 from pyinfra.facts.server import LinuxDistribution |
5 from pyinfra.facts.files import FindFiles | |
5 from pyinfra.operations import apt, files, server, systemd | 6 from pyinfra.operations import apt, files, server, systemd |
6 | 7 |
7 is_pi = host.get_fact(LinuxDistribution)['name'] in ['Debian', 'Raspbian GNU/Linux'] | 8 is_pi = host.get_fact(LinuxDistribution)['name'] in ['Debian', 'Raspbian GNU/Linux'] |
8 | 9 |
9 TZ = 'America/Los_Angeles' | 10 TZ = 'America/Los_Angeles' |
11 server.hostname(hostname=host.name) | 12 server.hostname(hostname=host.name) |
12 | 13 |
13 def timezone(): | 14 def timezone(): |
14 files.link(path='/etc/localtime', target=f'/usr/share/zoneinfo/{TZ}') | 15 files.link(path='/etc/localtime', target=f'/usr/share/zoneinfo/{TZ}') |
15 files.replace(path='/etc/timezone', text='.*', replace=TZ) | 16 files.replace(path='/etc/timezone', text='.*', replace=TZ) |
17 | |
18 def apt_sources(): | |
19 server.shell(commands=['dpkg --add-architecture i386']) | |
20 | |
21 files.template(src='templates/sources.list.j2', dest='/etc/apt/sources.list.j2') | |
22 if host.get_fact(FindFiles, '/etc/apt/sources.list.d/', quote_path=True): | |
23 raise SystemExit(f"new files in {host.name} /etc/apt/sources.list.d/ - please remove") | |
16 apt.packages(update=True, | 24 apt.packages(update=True, |
17 cache_time=86400, | 25 cache_time=86400, |
18 packages=['tzdata'], | 26 packages=['tzdata'], |
19 force=True, | 27 force=True, |
20 _env={ | 28 _env={ |
69 files.put(src='files/zfs_metrics/zfs_space_metrics.service', | 77 files.put(src='files/zfs_metrics/zfs_space_metrics.service', |
70 dest=f'/etc/systemd/system/zfs_space_metrics.service') | 78 dest=f'/etc/systemd/system/zfs_space_metrics.service') |
71 systemd.service(service=f'zfs_space_metrics', enabled=True, restarted=True, daemon_reload=True) | 79 systemd.service(service=f'zfs_space_metrics', enabled=True, restarted=True, daemon_reload=True) |
72 | 80 |
73 timezone() | 81 timezone() |
82 apt_sources() | |
74 fstab() | 83 fstab() |
75 | 84 |
76 if not is_pi: | 85 if not is_pi: |
77 files.line(path='/etc/update-manager/release-upgrades', line="^Prompt=", replace="Prompt=normal") | 86 files.line(path='/etc/update-manager/release-upgrades', line="^Prompt=", replace="Prompt=normal") |
78 | 87 |