Deploying fedora infrastructure (koji) across clouds
skvidal at fedoraproject.org
Wed Oct 31 17:07:49 UTC 2012
> // small wrapper script around deltacloud:
> $ wget https://raw.github.com/movitto/mycloud/master/mycloud.rb
> $ chmod +x mycloud.rb
> // template describing kojihub cloud deployment
> $ wget
> // template describing kojibuild cloud deployment
> $ wget
> // edit kojihub deployment to contain openstack credentials
> $ vim koji_f17.xml
> // startup an instance on openstack w/ kojihub setup togo
> $ ./mycloud.rb koji_f17.xml
> // grab public address from output, grab kojibuild ssl credentials from
> new instance
> $ scp -i ~/os.key ec2-user at kojihub:/etc/pki/koji/kojiadmin.pem .
> $ scp -i ~/os.key ec2-user at kojihub:/etc/pki/koji/koji_ca_cert.crt .
> // edit kojibuild deployment to deploy to ec2 w/ correct koji
> credentials & hub address
> $ vim koji_builder_f17.xml
> // startup an instance on ec2 w/ kojibuild communicating w/ the hub
> $ ./mycloud.rb koji_builder_f17.xml
> // open up a webbrowser, navigating to http://kojihub/koji to use your
> Koji instance!
You can orchestrate all of these steps across/between multiple systems
using ansible: http://ansible.cc - I've been documenting spinning up and
provisioning instances on my blog in the last week or so. You might take a
look - it should solve the problem of the above needing to be so manual
of a process and it requires nothing other than ssh be installed on the
machine you're trying to configure/control.
The problems we have encountered in the fedora infrastructure with koji
1. having to bring them up and down while waiting for them to complete
build process (koji enable-host/disable host)
2. them having no way to recover a build w/o manual intervention if a
builder were to crash or go dead during a build
3. the way the builders connect to the hub to get jobs rather than pushing
out from the hub to the builders. Mainly this makes it a pain to deal with
1 and 2 above.
4. For completely arbitrary repositories the tagging process for koji
seems pretty cumbersome, especially for transient scratch/chain builds.
I've talked about some of these on the buildsys list
(buildsys at lists.fedoraproject.org)
If you're interested in discussing this further drop by there.
More information about the devel