#+TITLE: ansible config #+AUTHOR: kyle * wntrmute ansible This is my ansible configuration for setting up various machines. ** Assumptions The systems that I use with Ansible are virtually all Ubuntu, or at least Debian-ish systems. I do have some NixOS machines, but these use deep NixOS magic and their configuration is stored in the Elder Scrolls that would drive mortals mad to read. This is also for interactive systems, e.g. ones that I log into and do things. It expects that I will spend time in the shell doing shell things. ** Bootstrapping Run `./bootstrap.sh`. ** Makefile The Makefile has a few targets worth knowing about: + check: syntax checking + all (default target): Picard this thing (make it so). ** Roles *** base base is the stuff I don't really want to have to live without no matter what machine I'm on. It shouldn't expect graphical stuff. *** desktop desktop installs the heavier and GUI things that I'd want on a desktop (or realistically, a laptop). *** development This installs a baseline of development tools; it also has variables to control what else gets installed: + dev_full installs everything + dev_virt installs virtualisation stuff, including docker + dev_embedded installs various embedded toolchains. *** dotfiles Ye olde dotfiles, managed in Ansible. Was this a mistake? Nothing I do is a mistake. *** heavy This is where stuff that takes a while to install goes. It's all desktop stuff, so it really only makes sense with the ~desktop~ role. *** tailscale Almost everything is going to get this; it installs tailscale.