Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

How does this compare to something like Buildbot (https://buildbot.net/) - I share a lot of your frustrations with Jenkins and this is where we landed.

(BTW thanks for ansible, it's awesome :) )



I don't know, I'm really not trying to make one of those cliched checkbox X vs Y type grids, but when I started building Vespene I was most concerned about being able to make builds more consistent when you had hundreds of microservices developed by a lot of different teams. This is why I did http://docs.vespene.io/variables.html#snippets

I also saw a lot of people trying to do ops style stuff from tools like Jenkins, which is why Ansible has built-in SSH automation so it can hold on to SSH keys and use them in your behalf, and has some really cool built in RBAC so you can decide who can run what and it can be different than who can edit what.

Mostly I just want to build an architecture that can go interesting places - what is here today I think is usuable, but it's just a starting point. My thinking is if you make an architecture that is really pluggable, and the code is easy to read and add to, it can go to some really neat places.

I'd just recommend taking a look at the various chapters of http://docs.vespene.io/ to get a feel for features, and if you like it, spin up a copy using the setup instructions and see what you think.


Snippets of stuff is really missing from a lot of platforms. I use gitlab to store parts of our builds in one location instead of duplicating build code in every repo (and we have lots of them) for stuff like building RPM, where they all use a common model. Making this first-class is a good move.


Hello, Community Advocate from GitLab here. Thanks for sharing your solution with other users, we are happy to hear how you use GitLab to make your work more convenient.


Configuration management is best with operating system packages, so in creating "Ansible", not only did you completely miss the ball, you created a monster. People now hack ad hoc YAML files instead of designing clean OS packages to manipulate the configuration.


It's fine if you don't like it - there are things I don't like about it, but ultimately single packages can't express multi-node configurations very easily. We need something.

While I "grew up" as it were, believing in RPM, we live in a very post-distro, multi-language kind of world, and there's a need for things to glue that together. How many times have I tried to campaign against "wget tarball" as a deployment mechanism, I don't know. It's rough and yes, there's a lack of discipline in ops that needs to improve.

Immutable systems is a VERY interesting way to solve that, but it doesn't work for certain stateful things and you always need something to deploy the undercloud.

I'd encourage you to try to build your own experimental project to try to find different ways to do it, as this is the only real way that technology ever gets ahead.


Funny you should mention RPM's, since that's one of the packaging formats we perform configuration management in.

I have my own configuration management framework which can add and remove configuration from files that each package brings on. It's written in AWK. No knowledge is required to use it - configuration packages deliver just their configuration files' excerpts. In addition to being able to template them with regular shell variables, self-assembly is supported as well.


How is that different than what Puppet, Chef, CFEngine, or any number of other configuration management tools do [and did long before Ansible]? How do you propose to have a package that requires dynamic configuration supplied by the system (something from dhcp, for example). Are you conflating package management and configuration management? I'm genuinely curious.


It's not any different, they all suck. Read my reply above to the author on how it was solved cleanly without needing to hack anything, just deliver a config excerpt via an OS package and it works. It's not open sourced yet, mainly due to lack of spare time to spend on computers and my cronic exhaustion.


You're not the first person to try this, good luck.


The first proof of concept prototype was developed in 2007 based on insights gained with packaging and system engineering at two different companies, one a software one and the other a very large financial institution.

Refined framework (oh how I hate that word now thanks to web developers!) went into production in 2009 on Solaris 10, depending on advanced AT&T SVR4 packaging features. It was then subsequently ported to CentOS / RHEL RPM and went into production around 2011. It's been the corner stone of configuration management for the entire infrastructure, particularly production ever since.


Ugh. Conveying tone on the internet... I mean it sincerely: I do wish you good luck. Please about your project on HN when you release it, I'd love to see it. While I think it's deceptively hard, but config/immutable state are fascinating areas.


What's frustrating about jenkins?


It almost always turns into a snowflake the second you start using it, at least in my experience.


I think we owe Jenkins a TON of credit for being a free solution that has a lot of great traction.

I'm used to seeing pages of checkboxes and can't stand how obscure some of the configuration is, but mostly I wanted to write something that could handle configuration differences between hundreds of projects, so that is why there are things like Snippets in Vespene.

Plus, I wanted to make something that was a little better for ops use cases (so people don't also have to go pick up something like Rundeck), so that's why there are things like the SSH integration and http://docs.vespene.io/launch_questions.html

It's more about capabilities and future capabilities than the frustrations IMHO.

Though I do have a bunch of friends who are frustrated with plugin compatibility, plugin hunting (we're doing more of a "batteries included" approach like I ran with ansible - just with much less modules), and stuff like that.

I was also able to add in some stuff like container build isolation really easily, and that's all included stock.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: