On 6/15/14 12:06 PM, Monty Taylor wrote:
Hey all,

I spoke to a few people about this on IRC, and I think it's just barely
not crazy enough to commit it to email.

Basically, I've been doing a little bit of hacking on ansible playbooks
for some of the little sysadmin tasks we have which aren't really
puppet-sensible. As part of that, I wrote this:

https://review.openstack.org/#/c/100066/2/modules/openstack_project/files/ansible/run_mirror.yaml

Which looks remarkably like this:

http://git.openstack.org/cgit/openstack-infra/config/tree/modules/openstack_project/files/jenkins_job_builder/config/macros.yaml#n288

It would be even more similar if I redid the body of that playbook as a
"role" - which would remove the hosts and give it a name.

It got me thinking - as we're starting to think about how jjb and
turbo-hipster interact, what if we brainstormed for a bit about whether
or not there are ways to either join forces with the ansible folks, or
at least to steal from them if they don't like us.

At the end of the day, jjb and ansible are both trying to simply
describe sequences of tasks to run in places, and separate out the
definition of the tasks from the definition of the orchestration of
those tasks.

So what if it was possible to take the same chunk of yaml, pass it to
ansible for one-off direct execution against a host or hosts, or pass it
to jjb to get it exploded into jenkins xml? Ansible can also do local
exec of rolls/playbooks, which is a thing we want out of turbo-hipster
(we don't have to use ansible itself for that - but otoh, if there is
already a thing that can read the yaml and execute things locally and
that thing is python - then win!)

Now - on the other hand, they're close, but they're not perfectly
aligned, so we'd have to figure out what we'd want to do about that.

Anyway - not urgent - just food for thought.

Monty

_______________________________________________
OpenStack-Infra mailing list
[email protected]
http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-infra



Hey,

I'm not very familiar with Ansible but I think one of the tricky parts will be expanding the job definitions from the templates, groups and projects like JJB currently does. Perhaps JJB continues to do that expansion but all JJB does is execute Ansible?

This got me to thinking, what if we had agentless job runners. For example, zuul could use the ansible playbooks to run the jobs itself. It would likely do this through zuul-workers so it would scale, but it would remove any complexity for job runners such as Jenkins or Turbo-Hipster.

Further to that, we could also look at merging zuul's layout.yaml and JJB's job definitions into one set of configs. For each job we could define which projects and pipelines it triggers on in the jjb format which zuul then interprets, builds the entire list of jobs and then uses ansible to run the playbooks. This would reduce the extra entry of defining jobs in jjb as well as zuul.

To do this though we would need some kind of integration between jjb and ansible. Then integration of whatever that is with zuul.

I'm just thinking out loud though.

Cheers,
Josh


--
Rackspace Australia

_______________________________________________
OpenStack-Infra mailing list
[email protected]
http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-infra

Reply via email to