Showing posts with label puppet. Show all posts
Showing posts with label puppet. Show all posts

Monday, February 22, 2010

Bringing Linux 64 up to speed (codesighs and puppet)

In our efforts to get Linux 64 as much as an official platform as our other major platforms we have undertaking for the last few weeks adding unit tests to it.

The first step has been to run codesighs for Linux 64 and this required adding some entries to the graph server DB. This turned the first few builds red but it should be back to normal with the new builds.

The next step will be to add puppet to our current production Linux 64 slaves which we will announce ahead of time.

There are many more things to come but these two are the immediate ones that you should be aware of.

For more details check out this bug:
      "Bug 520722 - run unittests on linux64"




Creative Commons License
This work by Zambrano Gasparnian, Armen is licensed under a Creative Commons Attribution-Noncommercial-Share Alike 3.0 Unported License.

Friday, November 20, 2009

libconic package needed for Maemo builds has been deployed

Thanks to puppet we were once again able to fix this easily.

All that puppet told the slaves to do is to run this command:
 su - cltbld -c '/scratchbox/moz_scratchbox -p apt-get --yes --force-yes install libconic0-dev'
 

What I did to fix this was:
  1. Check that a staging slave does not have that package "pkg-config conic --libs"
  2. Check that the file "targets/CHINOOK-ARMEL-2007/usr/include/conic/conic.h" does not exist
  3. Install it using a similar command that was used in a previous bug
  4. Check that "pkg-config conic --libs" returns what is expected "-lconic -ldbus-1 -lgobject-2.0 -lglib-2.0"
  5. Check that the conic.h exists where expected
  6. At this point we have a clear command to run by puppet and a "creates" argument.
  7. Deploy the patch in the staging-puppet server
  8. Login to another staging slave as root and run "puppetd --test --server staging-puppet.build.mozilla.org"
  9. Do checks 4 and 5 to see that the puppet changes took place
  10. Ask for review
  11. Commit and deploy to production-puppet
  12. Check a production like in step 8 and 9
  13. Check an hour later if a random slave has the change as well
Thanks to mfinkle for having written such a good description of the bug.

If you want to read more details check out "Bug 529462 - Add libconic package to Maemo build slaves"



Creative Commons License
This work by Zambrano Gasparnian, Armen is licensed under a Creative Commons Attribution-Noncommercial-Share Alike 3.0 Unported License.

Friday, October 09, 2009

Puppet - Installing a library for scratchbox

Today I deployed a library that was needed for the mobile team to add a feature to Fennec in all of our Linux slaves.

To do this we use Puppet and I had to modify our puppet-manifests to do so. It was kind of different that the last time Ben Hearsum guided me to deploy the latest binaries for the JS coverage (bug 511911). This time it was about adding a library inside of scratchbox rather than just adding it straight to the slave.

The puppet manifest pretty much work like this:
  • In the site-{staging,production}.pp files we declare the slaves we control and which classes to include for each one of them
  • In the buildslave.pp and staging-buildslave.pp file we include packages
  • Each package contains instructions on what to do. From user management, to file permission verification to file execution if a file is missing. A complete example is devtools.pp but a simple example is the extras.pp I wrote.
In my situation this deployment was a little special because puppet runs as root user but scratchbox does not allow calling it by a privileged user so I had to use "su - cltbld -c ".

For full details you can read the bug I worked on (bug 520562) or read my monologue on the puppet-users mailing list.





Creative Commons License
This work by Zambrano Gasparnian, Armen is licensed under a Creative Commons Attribution-Noncommercial-Share Alike 3.0 Unported License.