This is an old revision of the document!
Table of Contents
Naptastic Network Playbook
Pre-install
Partitioning: The most recent rebuild was shark, for which I took Debian's default EFI setup for the 2TB OS drive. I only changed / to BTRFS instead of ext4. Debian installs itself to a subvolume named @root and makes that subvolume the default, so it's ready for snapshotting backups.
Preseed could not do everything I needed, and stopped working, so I am no longer pursuing it as a technology. I just use the network installer and build from there.
All systems
- network interface names. Can I automate this? (Of course I can.)
- Profile stuff: Bash, Vim, ? Can I automate this? (Of course I can.)
- Network stuff. Too much goddamn customization.
- disable journald; configure logging for everything.
- Make a list of things that need to log
- How exactly do I want logging set up?
All systems with Mellanox adapters
- mst* installer
- copy production opensm configuration in case you have take over as SM
- (what needs to change here for VMs using virtual functions?)
If your host is going to do audio stuff, follow the LAD playbook. Which also badly need an update.
If your host is going to host web stuff, follow the LAMP playbook but keep in mind it's badly out-of-date. Be prepared to search, read docs, look for a better way.
Getting Started
Perform a network install of Debian.
run the naptastic installer if it didn't run as part of the installer:
curl https://naptastic.com/initial.sh | /bin/bash
# This is not necessary unless the installer failed to do it. mkdir /root/.ssh chmod 700 /root/.ssh curl https://keys.naptastic.com/david/naptastic.pub >> /root/.ssh/authorized_keys
Configure ssh for a high-numbered port, and not to allow password-based logins. Restart sshd. Verify that 'ssh root@localhost' fails. (You didn't forward your agent, did you?).
Check out /etc
(You forwarded your agent, right?)
git clone git@github.com:naptastic/etc cp -a etc/* /etc/ # does this actually copy .git? Check to make sure, alright? cd /etc git status
and see where you stand.
Remember: We play with live ammo. Don't `git rm` something unless you're on a host-specific branch.
Networking
ln -s /dev/null /etc/systemd/network/99-default.link # the installer does this
check /etc/network/interfaces because the device name is probably wrong there. TODO Fix that on fresh installs kthx
The answer, somehow, is Netplan; I just don't like that answer much. The answer should be to remove layers of complexity, not add them. Just name my devices eth0 and eth1, dammit, or give me control over the naming.
Some of my systems are using ifupdown, and some I'm not sure how they work, and some don't work right. Linux networking is fucking terrible.
Disable TTY screen blanking (Only necessary on Debian Jessie and older)
Add this to /etc/rc.local
above the exit 0
line:
sh -c 'setterm -blank 0 -powersave off -powerdown 0 < /dev/console > /dev/console 2>&1'
Options
maybe you feel like it, maybe you don't. idk. This will be replaced with customized preseed files.
For all systems
apt -y remove update-notifier pulseaudio-module-bluetooth bluez blueman bluez-cups bluez-obexd modemmanager rtkit
For hardware boxes
apt -y install smartmontools qemu-kvm gparted
If you are using a graphical desktop environment
(this needs an update: not sure about fonts packages. Also some network-manager-*-gnome packages might be useful depending on what kind of networking you're doing.)
apt -y install hexchat synaptic terminator fonts-lohit-knda fonts-knda keepassx evolution virt-manager network-manager-gnome
If you plan to do audio work
apt -y install qjackctl alsa-tools-gui eq10q jalv jamin lilv-utils cat >> /etc/pulse/daemon.conf default-sample-format = s24le default-sample-rate = 96000 ^D
If you plan to compile your own kernel
apt -y install bison flex libssl-dev ncurses-dev libelf-dev