Giter VIP home page Giter VIP logo

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.

dispansible's Projects

dispansible icon dispansible

Setup all the things on your workstation with Ansible

rvm1-ansible-role icon rvm1-ansible-role

Fork of the official ansible rvm role, adapted to meet dispansible requirements

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.