I wish I had an AnsibleDK, like ChefDK

154 views
Skip to first unread message

Clinton Wolfe

unread,
Oct 29, 2015, 8:50:56 AM10/29/15
to devops-t...@googlegroups.com
With ChefDK, you get a kit of development tools - code generators, linters, test frameworks, etc - all neatly bundled up in a managed OS package that includes a private Ruby runtime - thus avoiding most of the issues with gem management.

I want something similar for Ansible; I want my developers to be able to install an OS package, and get a kit that includes (at least):
  • ansible itself
  • ansible-lint
  • boto
  • test-kitchen
  • kitchen-ansible
  • serverspec
  • BATS
  • private language runtimes as needed (python 2.7 and ruby, at least)
Does anyone know of a similar existing project I could contribute to?  Or, is anyone interested in starting such a project?  Or has someone solved this using a fundamentally different approach?

-- Thanks, 
Clinton Wolfe

Bill Nottingham

unread,
Oct 29, 2015, 10:36:19 AM10/29/15
to devops-t...@googlegroups.com
It's something we've thought about, but haven't started fleshing out as we'd likely want to be a bit more prescriptive about testing than our currently "test with whatever you like" approach.

Bill


--
You received this message because you are subscribed to the Google Groups "devops-toolchain" group.
To unsubscribe from this group and stop receiving emails from it, send an email to devops-toolcha...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.



--
Bill Nottingham
Director of Product, Ansible
ansible.com

Ananth R

unread,
Oct 29, 2015, 10:42:52 AM10/29/15
to devops-t...@googlegroups.com
Firstly, seeing "Bill Clinton" message on this thread threw me off... :)

Inline image 1

@Bill : Please do let us know if you folks put together a suite similar to what Clinton is suggesting. 

Thanks,
AP

Joseph Holsten

unread,
Oct 29, 2015, 12:28:41 PM10/29/15
to devops-t...@googlegroups.com
I know my team would be very interested in contributing to this.

For my personal use, I've worked a bit to ensure my laptop bootstrap config runs correctly using a relocatable virtualenv so I can run it without having to install xcode or other build tools. It would be lovely to have a self-contained ansible system package, but I honestly know very little about how to start doing that with python.

Most of my maintainer time is taken up working on chefbrigade, but it's helped me realize I don't like projects that have a single (point-of-failure) maintainer. Is there a maintainer community like chefbrigade we can make this part of? If we just get it up somewhere, I'm happy to start getting a proof-of-concept together.
--
~j

Tom

unread,
Oct 29, 2015, 12:35:15 PM10/29/15
to devops-t...@googlegroups.com
So this is pretty easy - you just need to tie down what you want.

The omnibus build project from chef is open-source and means you can use the way they build chefdk et al to build your own embedded environment.

I do exactly that for where I work and produce a set of debs/rpms that have an embedded python environment

https://github.com/chef/omnibus-software  Chef have made available a set of software definitions, and all you need do is piece together a project of your own that contains the software you want in an embedded environment with your embedded gems/pips/your choice

It's such a good process I just finished a raspberry pi build today cross-compiled with qemu for armhf :)

Tom



--

Ranjib Dey

unread,
Oct 29, 2015, 12:49:48 PM10/29/15
to devops-t...@googlegroups.com
yeah, sensu and datadog agents (dd is python based) is also distributed like that iirc

Joseph Holsten

unread,
Oct 29, 2015, 1:12:11 PM10/29/15
to devops-t...@googlegroups.com
Okay, so where should this thing live? I'm guessing no one wants this at github.com/chef-brigade/ansibledk.
--
~j

Clinton Wolfe

unread,
Oct 29, 2015, 1:56:06 PM10/29/15
to devops-t...@googlegroups.com
Agreed, I think omnibus is the way to go; I used it for a bit making an opencv package.  

I made https://github.com/clintoncwolfe/ansible-dk - anyone who is passionate, ping me, and you can have commit.

Joaquin Menchaca

unread,
Nov 10, 2015, 3:11:07 PM11/10/15
to devops-toolchain
I am not sure how this would be done in Python land, as Ruby land has a lot of rich tooling for library locking (pinning) and doing embedded environments.   ChefDK locks its environment down and then bootstraps itself, so it doesn't matter if you are using Chef's embedded Ruby or an external ruby (like rvm ruby).  

I never saw the need for it personally, as the pip install ansible always did the trick for me, at least on OS X with Homebrew.  The tooling for checking/verifying the environment and giving errors/warnings/suggestions would be nice.  Maybe something could be done with virtualenv and requirements.txt, with some wrapper scripts that replace ansible tools, as is done with chefdk.  

Clinton Wolfe

unread,
Nov 11, 2015, 8:16:36 PM11/11/15
to devops-t...@googlegroups.com

​So, we've been hard at work on this, and we're pleased to announce that Ansible-DK 0.1.0 is now released!

You can grab OS packages for Ubuntu and Mac OS at https://bintray.com/omniti-labs/ansible-dk/ansible-dk/view


Version 0.1.0 includes:

* ansible 1.9.4
* ansible-lint
* ansible-toolkit
* test-kitchen
* kitchen-vagrant, kitchen-ec2, and kitchen-ansible
* awscli, boto, and jq
* serverspec
* "captive" runtimes for Ruby and Python, with a simple tool that sets your various paths so you get modules/gems from the captive runtimes

It's probably a bit rough, as any first release is, but I am using it in my daily work.  If you encounter any issues, please report them at https://github.com/omniti-labs/ansible-dk/issues .  Contributions are welcome!

May all your convergences be idempotent,
Clinton Wolfe



On Tue, Nov 10, 2015 at 2:54 PM, Joaquin Menchaca <joaqu...@gmail.com> wrote:
I am not sure how this would be done in Python land, as Ruby land has a lot of rich tooling for library locking (pinning) and doing embedded environments.   ChefDK locks its environment down and then bootstraps itself, so it doesn't matter if you are using Chef's embedded Ruby or an external ruby (like rvm ruby).  

I never saw the need for it personally, as the pip install ansible always did the trick for me, at least on OS X with Homebrew.  The tooling for checking/verifying the environment and giving errors/warnings/suggestions would be nice.  Maybe something could be done with virtualenv and requirements.txt, with some wrapper scripts that replace ansible tools, as is done with chefdk.  

--

Sean OMeara

unread,
Nov 12, 2015, 12:27:27 AM11/12/15
to devops-t...@googlegroups.com
I love this so much

Reply all
Reply to author
Forward
0 new messages