Setup all the things on your workstation with Ansible.
Warning: this project is currently in alpha state.
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)
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
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.
- 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 LinuxMintcommand
to be able to add an idempotence condition for Vagrant plugins setup
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?
- dispensible: obsolete adjective, alternative form of dispensable
- dispensable:
- Able to be done without; able to be expended; easily replaced.
- Capable of being dispensed; distributable.
- ...
- disposable:
- Designed to be disposed of after use
- Free for use; available
dispansible
approach follows the design principles of ansible (software):
- Minimal in nature. Manage your software installations should not impose additional dependencies on the environment. See the Dependencies Section above.
- Highly reliable. The ansible idempotent resource model is applied to prevent side-effects from re-running scripts.
- 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).
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 thescripts
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 modifyansible/playbook.yml
as well.settings.yml
to customize your software configuration and optionally unselect applications (using theskipped_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)
Install everything that is enabled in settings.yml
:
./dispansible all
or
./dispansible
Install specific software:
./dispansible vagrant,virtualbox
upcoming... (including a possible name change)
- 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.