Skip to content

Latest commit

 

History

History
121 lines (86 loc) · 3.21 KB

README.md

File metadata and controls

121 lines (86 loc) · 3.21 KB

This project is deprecated and unmaintained. Proceed with caution!

Phoenix

A set of Ansible playbooks for configuring a development PC

Prerequisites

Works on Mac OS X and Debian and kind of on RedHat. On a Debian machine it doesn't expect much outside of the base config and a working SSH connection. On a Mac it needs Homebrew (brew.sh) and maybe some other stuff like Xcode CLI tools. I don't have a fresh installation to test with so you're kind of on your own for that one.

Running

# to install locally
make local
# to install just a specific tag (see site.yml) locally
TAGS=dotfiles make local-tags

# to install on all machines in etc/hosts
make install
# to install just a specific tag (see site.yml) on all machines in etc/hosts
TAGS=dotfiles make install-tags

See the Makefile for other targets and stuff. I'm not very good at writing Makefiles tbh.

What does it do?

  • Bootstraps a machine (SSH keys, sudoers file, etc.)

  • Installs dotfiles (see the dotfile / shell roles and the dotfiles folder)

  • Installs a full version of Vim (compiling it from scratch pretty much all the time)

  • Installs VirtualBox, packer, and vagrant

  • Sets up a working Ruby environment complete with rbenv and 3 or so Rubies

  • Sets up a working Go environment (from source) and installs some basic bins

  • Installs Java (openjdk on Debian)

  • Sets up a working Clojure environment with lein

  • Sets up a working Scala environment + sbt

  • Sets up a working PHP environment with 5.3 through 5.5, phpdbg, and composer

  • Installs some essential apps in Debian (Chromium, Spotify, etc.)

  • Replicates these scripts (repo included) to the target machine, installs the latest version of Ansible

Wishlist

Languages / Platforms

  • Docker
  • Node
  • .NET / C#
  • Haskell
  • Erlang
  • Elixir

Meta helpers

  • Quicker git repo checks; making an HTTP request takes too long
  • Maybe mirror some of the aptitude packages?

System services / setup

  • Tarsnap
  • Figure out a way of handling private-key transfers

User services / setup

  • AwesomeWM
  • Conky
  • Synchronized desktop background
  • Airplay or similar? Maybe using Raspberry Pi
  • Switch to luakit browser, customize it
  • Bitlbee
  • Figure out how to handle irssi auth
  • Better password security (convert 1password to password-store?)
  • Either setup mutt or find a cross platform email solution
  • Change shell prompt to show hostname

Complaints about current Linux distros I've developed along the way

See the COMPLAINTS file.

Credits

The ruby, rbenv, and ruby-multi playbooks were originally taken almost word-for-word from ansible-rbenv-playbook. They've been modified a little, but not much.

The scala playbook was stolen from AnsibleShipyard/ansible-scala and modified to use more core Ansible modules instead of shell-ing out so much.

License

It's MIT licensed. See the LICENSE file for more information.