June 26, 2012

I’ve been working with ansible and mock to make a simpler tool for building some pkgs on a remote system. I started on ftbfs but I wanted something for a less involved build process. Essentially a ‘build these pkgs over there and fetch back the results as you go’ command. So this is mockremote.

 mockremote will build a set of packages on a remote machine using mockchain. 
If you specify more than one package it will build them one at a time on the remote machine
allowing for each previous result to be used as a buildreq for the one before. Just like
mockchain it will will optionally build them recursively until it can no longer achieve
a successful build.
It retrieves the results from each build via rsync after each pkg completes. This ensures
that in the event of a remote system crash you lose the least number of pkgs.
If you restart the build, pointing to the same destdir it will only build those pkgs which
did not complete before.

 - requires mock, mockchain on remote system
 - requires the user you specify for the remote system be able to run mock/mockchain 
   (defaults to user mockbuilder)
 - requires ansible and rsync locally
 - requires you have ssh keys for the host on which you wish to build

 mockremote -b hostname -u username -r mock_chroot -a url pkg pkg pkg

It’s a pretty straightforward command and works nicely for building 
things in a set when your remote system is in a better place or has 
better bandwidth or just better cpu/ram combos to build a package
you want built.

I know what you’re thinking: “But can’t I do all this with ssh and running mockchain on the remote host by myself?”

and the answer to that is – yes – you can – this command just means you don’t HAVE to, which is nice.


is REALLY not allowed and won’t work anytime soon – despite it being reasonable that it should.

2.  [[ $a == something* ]] – is a nice shorthand in bash for ‘startswith’ for string comparison

3. [[ requires you use && and || instead of -a and -o

4. A way to use the git pre-receive hook to bludgeon certain kinds of checks everytime (zone files anyone?)

5. how much about dnssec seems to be somewhat ‘magical’ and not in a good way.