GithubHelp home page GithubHelp logo

dhutty / ansible-dk Goto Github PK

View Code? Open in Web Editor NEW

This project forked from omniti-labs/ansible-dk

0.0 2.0 0.0 2.44 MB

An omnibus-based toolkit for working on Ansible-based infrastructure code.

License: BSD 3-Clause "New" or "Revised" License

Shell 9.53% Ruby 85.60% HTML 4.87%

ansible-dk's Introduction

ansible-dk

An omnibus-based toolkit for working on Ansible-based infrastructure code.

That means, this project is a set of scripts to build OS packages that bundle together a bunch of tools to make developing with Ansible more robust, reliable, fast, and fun - in other words, a SLDC for ansible. Unless you are contributing to this project, you almost certainly don't need this source code; you're instead looking for the binary OS packages.

Using the Binaries

Downloading the OS Packages

Packages for Ubuntu 14.04 (.deb) and Mac OS X (.dmg) are available at https://bintray.com/omniti-labs/ansible-dk/ansible-dk/view .

Using the binaries

Installation should be straightforward using your OS's normal package manager. We install to /opt/ansible-dk, and are careful to not interfere with any existing system Python or Ruby installations. Uninstalls and upgrades should be clean.

Once you have your package installed, to use the tools, run this magic command in your Bash shell:

eval "$(ansible-dk shell-init bash)"

This will alter various environment variables so that the Ansible DK's tools appear first in your path, along with all the Python and Ruby libraries they need.

(Currently only bash is supported; patches welcome.)

Tools Contained in the Kit

A Ruby 2.1.x Runtime

This allows us to manage our own gem universe without the user having to know about things like Bundler, rvm, or rbenv.

A Python 2.7.x Runtime

This allows us to manage our own module universe without the user having to know about things like virtualenv.

ansible-dk CLI tool

This gets symlinked into /usr/bin or /usr/local/bin, depending on your OS, and is the only change outside of /opt/ansible-dk.

ansible 1.9.4

The ansible tool itself.

ansible-lint

A linter for ansible.

ansible-toolkit

A bundle of tracing, vault management, and other tools.

test-kitchen, kitchen-vagrant, and kitchen-ansible

Test Kitchen is a very popular infrastructure testing harness.

AWS Support: kitchen-ec2, AWS cli, boto library, and jq

Everything you need to have test machines in AWS, plus have dynamic inventory. jq is included for inventory diagnostics.

Project Roadmap

Tools we plan to include

The workflow that the authors use includes using test-kitchen to create and destroy test VMs, with serverspec being used to author the tests. That's not prescriptive, though - you can do whatever you like. Our goal is for the Ansible DK to provide enough variety of tools for you to implement a workflow that you prefer.

In the near-term, we aim to include:

  • ansible 2 (as ansible2)

Longer-term, we're open to contributions from the community - such as BATS support, or digitalocean support, for example. But those are not the current needs of OmniTI, so we will not be focusing on them at the moment.

Platforms we plan to target

Based on OmniTI's (perhaps idiosyncratic) needs, we initially plan to build packages for:

  • OS X Yosemite
  • OS X El Capitan (commiting to latest Mac OS, plus previous version)
  • Ubuntu 14.04 (commiting to LTS support on ubuntu)

We do not currently have a need for Debian, CentOS, RHEL, or FreeBSD packaging, but such contributions would be very welcome from the community.

At some point in the future, we will likely add OmniOS LTS packaging, which we would aim to also cover SmartOS and Oracle Solaris.

We will probably never have need for a Windows package, but if there are community members willing to implement, test, and maintain it, we'll accept it.

Bug and Limitations

Probably a great many! If you find one, open an issue at https://github.com/omniti-labs/ansible-dk/issues .

Feature Requests and Contributing

If you have something you wish to see added, but have no idea how to do that in Omnibus, please open an issue at https://github.com/omniti-labs/ansible-dk/issues .

If you have some experience doing Omnibus packaging, which is perhaps not for the faint of heart, or are simply exceptionally intrepid, have a read over the Omnibus instructions at https://github.com/chef/omnibus , then do the usual fork-PR workflow on this repo.

Acknowledgements

Contributors

This is a project sponsored by OmniTI Labs, the FOSS initiative of OmniTI COmputer Consulting (www.omniti.com). Community contributors are welcome, and maintainers may join after a vetting period.

  • Clinton Wolfe, DevOps Practice Lead at OmniTI
  • Rick Pufky, DevOps Generalist at OmniTI
  • Lyn Muldrow, Frontend Developer at OmniTI - Logo design
  • Your Name Could Be Here

Special Thanks

  • Robert Treat, CEO of OmnITI

He said, "You should totally do that." So, we did.

  • devops-toolchain Google Group

For the enthusiastic response

  • Bill Nottingham of Ansible / RedHat

For basically saying, sure, why not

  • Joseph Holsten

For giving us a clue for how to build and package python modules under omnibus

  • Chef, Inc.

For Omnibus, and the many build definitions we are using.

ansible-dk's People

Contributors

clintoncwolfe avatar josephholsten avatar michaelbaydoun avatar rpufky avatar

Watchers

 avatar  avatar

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.