No description
Find a file
2015-12-25 17:58:26 -08:00
group_vars move zip and unrar into role 2015-12-25 17:55:26 -08:00
library use ansible-aur module for AUR packages 2015-12-12 13:12:19 -08:00
roles whitespace 2015-12-25 17:58:26 -08:00
.gitmodules add aur module 2015-12-12 12:16:34 -08:00
INSTALL.md allow discards for SSD 2015-09-06 16:04:04 -07:00
localhost initial commit 2015-09-06 15:51:37 -07:00
playbook.yml use ansible-aur module for AUR packages 2015-12-12 13:12:19 -08:00
README.md forward system mail to user 2015-12-22 18:27:42 -08:00

Spark

Spark is an Ansible playbook meant to provision a personal machine running Arch Linux. It is intended to run locally on a fresh Arch install (ie, taking the place of any post-installation), but due to Ansible's idempotent nature it may also be run on top of an already configured machine.

Spark assumes it will be run on a laptop -- specifically, a ThinkPad -- and performs some configuration based on this assumption. This behaviour may be changed by removing the laptop and/or thinkpad role from the playbook, as appropriate.

Running

First, sync mirrors and install Ansible.

$ pacman -Syy python2-passlib ansible

Run the playbook as root.

# ansible-playbook -i localhost playbook.yml

When run, Ansible will prompt for the user password. This only needs to be provided on the first run when the user is being created. On later runs, providing any password -- whether the current user password or a new one -- will have no effect.

SSH

By default, Ansible will attempt to install the private SSH key for the user. The key should be available at the path specified in the ssh.user_key variable. Removing this variable will cause the key installation task to be skipped.

SSHD

If ssh.enable_sshd is set to True the systemd socket service will be enabled. By default, sshd is configured but not enabled.

Dotfiles

Ansible expects that the user wishes to clone dotfiles via the git repository specified via the dotfiles.url variable and install them with rcm. If this is not the case, removing the dotfiles variable will cause the relevant tasks to be skipped.

Tagging

All tasks are tagged with their role, allowing them to be skipped by tag in addition to modifying playbook.yml. For instance, a system could be built excluding the entire media role and the slim section of the x role.

# ansible-playbook -i localhost playbook.yml --skip-tags "media,slim"

AUR

All tasks involving the AUR are tagged aur. To provision an AUR-free system, pass this tag to ansible's --skip-tag.

AUR packages are installed via the ansible-aur module. Note that while aura, an AUR helper, is installed by default, it will not be used during any of the provisioning.

System Mail

If the email.user variable is defined, the system will be configured to forward mail for the user and root to this address. Removing this variable will cause no mail aliases to be put in place.

Known Issues

  • tpfanco, normally installed as part of the thinkpad role is currently unavailable in the AUR. No ThinkPad fan control software is currently installed.