Skip to content
Setup all the things on your workstation with Ansible
Python Shell
Branch: master
Clone or download
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
ansible + default settings: add more software to be installed Dec 29, 2016
scripts = refactor project structure (large changeset) Jun 26, 2015
settings + default settings: add more software to be installed Dec 29, 2016
templates/rubber Add very basic implementation of rubber helper Jan 2, 2015
tests + default settings: add more software to be installed Dec 29, 2016
.gitignore minor: add /tmp to .gitignore Dec 6, 2015
.travis.yml travis/linux: try the generic lang instead of ruby Jun 14, 2016
CHANGELOG.md Add initial CHANGELOG file Jan 6, 2015
CONTRIBUTING.md Remove last trace of gildegoma/dispansible Jan 10, 2015
LICENSE Initial commit Jan 2, 2015
README.md + vagrant: Add xenial (experimental) machine Dec 29, 2016
Vagrantfile
dispansible + ansible 2+: change how to set the default user Jun 13, 2016
rubber Add very basic implementation of rubber helper Jan 2, 2015

README.md

dispansible Build Status

Setup all the things on your workstation with Ansible.

Warning: this project is currently in alpha state.

"Supported" Platforms

The targeted Operating Systems are currently:

  • Debian / Ubuntu / Linux Mint Linux distributions (mainly based on apt/ppa packaging, but also on Linuxbrew. Currently focused on Ubuntu 14.04 generation.
  • Mac OS X 10.10+ (mainly based on Homebrew and Homebrew Cask packages)

Possible Future Targets

Pending on dispansible community size and interests

  • Arch Linux
  • Korora Linux a nice looking Fedora-based distribution with goals similar to Linux Mint.
  • Redox OS a Unix-like Operating System written in Rust
  • Open/Free/Net BSD

Credits

This project initially began as a fork of https://github.com/spencergibb/ansible-osx, but my approach rapidly diverged from battleschool design. During this alpha/beta development phase, I don't aim at keeping this project merge-compatible with battleschool, but I'm keeping this topic in mind, and would love to discuss it further.

Dependencies

  • Ansible 1.8+
  • The additional module mac_pkg is taken from Spencer Gibb's battleschool
  • Some Ansible core modules are overridden (which implies to use most recent version of Ansible):
    • apt_repository to be able to add PPA repository for LinuxMint
    • command to be able to add an idempotence condition for Vagrant plugins setup

About the name

TL;DR

dispansible aims at brings you more available time for doing amazing things, but of course this tool is not indispensable, as you can always install your software manually. Mmmh, really?

Ethymological Roots

  • dispensible: obsolete adjective, alternative form of dispensable
  • dispensable:
    1. Able to be done without; able to be expended; easily replaced.
    2. Capable of being dispensed; distributable.
    3. ...
  • disposable:
    1. Designed to be disposed of after use
    2. Free for use; available

Design Philosophy

dispansible approach follows the design principles of ansible (software):

  1. Minimal in nature. Manage your software installations should not impose additional dependencies on the environment. See the Dependencies Section above.
  2. Highly reliable. The ansible idempotent resource model is applied to prevent side-effects from re-running scripts.
  3. Low learning curve.

Quoting Mitchell Hashimoto in his Book "Vagrant: Up and Running":

Vagrant lowers development environment setup time, increases development/production parity, and brings the idea of disposable compute resources down to the desktop.

Let's say that dispansible aims at lowers workstation setup time, increases operating systems parity, and brings the idea of disposable computing down to personal computer setup (but please don't get me wrong: don't throw your hardware, too frequently at least).

Setup

WARNING: During alpha phase the configuration file names and locations are unstable and this documentation might not be up to date.

  • Clone via git or Download as tarball this repository (or your own fork)
  • Install Ansible (latest release is usually recommended). You can use one of the bootsrap_<platform> scripts in the scripts directory for that purpose.
  • Optionally update the following configuration files:
    • ansible/galaxy.yml to change the external roles that you are depending on. If you change this file, you most probably will need to modify ansible/playbook.yml as well.
    • settings.yml to customize your software configuration and optionally unselect applications (using the skipped_roles list)
  • Execute ./dispansible all
  • Enjoy a drink (while keeping an eye on your screen, since the sudo password could be prompted during the setup procedure)

Usage

dispansible tool

Install everything that is enabled in settings.yml:

./dispansible all

or

./dispansible

Install specific software:

./dispansible vagrant,virtualbox

rubber tool

upcoming... (including a possible name change)

Similar Projects

  • Boxen (based on Puppet)
  • Kitchenplan (based on Chef)
  • battleschool (also based on Ansible and mainly focused on Mac support)
  • OSXC is a configuration tool for Mac OS X, also based on Ansible
  • The Munki Project is home to several projects that are focused on improving the experience of managing OS X for both the admin and the end user.
You can’t perform that action at this time.