Mercurial > code > home > repos > infra
diff packages.py @ 12:15c5ce7c74b5
refactor, cleanup, split large deploys
author | drewp@bigasterisk.com |
---|---|
date | Thu, 11 Nov 2021 23:31:21 -0800 |
parents | |
children | d0ca4e569009 |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/packages.py Thu Nov 11 23:31:21 2021 -0800 @@ -0,0 +1,70 @@ +from pyinfra import host +from pyinfra.facts.server import LinuxDistribution +from pyinfra.operations import apt, files, ssh + +bang_is_old = True # remove after upgrade +is_pi = host.get_fact(LinuxDistribution)['name'] in ['Debian', 'Raspbian GNU/Linux'] +is_wifi_pi = host.name in ['frontdoor', 'living'] + +if not is_pi: + apt.key(keyserver='keyserver.ubuntu.com', keyid='8B48AD6246925553') + +if is_pi: + apt.packages(packages=['mandb', 'apt-listchanges'], present=False) + files.template(src='templates/pi_sources.list.j2', dest='/etc/apt/sources.list', rel='bullseye') + # 'apt upgrade'? + apt.packages(update=True, packages=['dirmngr', 'gnupg2', 'apt-utils']) + + apt.key(src='https://ftp-master.debian.org/keys/archive-key-8.asc') + apt.key(src='https://ftp-master.debian.org/keys/archive-key-8-security.asc') + apt.key(src='https://ftp-master.debian.org/keys/archive-key-9-security.asc') + + files.file(path='/etc/apt/sources.list.d/raspi.list', present=False) + + if is_wifi_pi: + files.put(dest="/etc/network/interfaces.d/wlan0", src="files/pi_wlan0_powersave") + ssh.command(host.name, "iw wlan0 set power_save off") + + files.template(src='templates/boot_config.txt.j2', dest='/boot/config.txt') + +if not is_pi and host.name != 'prime': + apt.key(src='https://dl.google.com/linux/linux_signing_key.pub') + apt.repo(src='deb [arch=amd64] http://dl.google.com/linux/chrome/deb/ stable main') + + apt.key(src='https://packages.microsoft.com/keys/microsoft.asc') + apt.repo(src="deb [arch=amd64,arm64,armhf] http://packages.microsoft.com/repos/code stable main") + + apt.ppa(src="ppa:savoury1/blender") + + apt.key(keyserver='keyserver.ubuntu.com', keyid='F24AEA9FB05498B7') + apt.repo(src="deb [arch=amd64,i386] https://repo.steampowered.com/steam/ stable steam") + +apt.packages(packages=[ + 'build-essential', + # 'i2c-tools', + 'rsync', + 'dstat', + 'ifstat', +]) + +if not is_pi: + apt.packages(packages=[ + 'keychain', + 'python3-docker', + 'python3-invoke', + 'python3-pip', + 'python3-virtualenv', + 'sysstat', + ]) + +if not is_pi and not bang_is_old: + apt.packages(packages='mlocate', present=False) + apt.packages(packages='plocate') + +if host.name == "bang": + apt.packages(packages=[ + 'libzfs2linux', + 'zfsutils-linux', + 'zfs-zed', + 'zfs-auto-snapshot', + ])