Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Packaging Software, Puppet Labs Style - PuppetConf 2014

1,303 views

Published on

Packaging Software, Puppet Labs Style - Melissa Stone, Puppet Labs

Published in: Technology
  • Be the first to comment

Packaging Software, Puppet Labs Style - PuppetConf 2014

  1. 1. 2014 Presented by Packaging Software, Puppet Labs Edition Melissa Stone Release Engineer | Puppet Labs
  2. 2. Presented by tar -xzvf ${project}.tgz && cd ${project} && ./configure && make && make install
  3. 3. Presented by but but… • People can just build from source! • Too much learning… • No one really cares about packages… • Too much maintenance! • Meh, someone’s already doing that for me.
  4. 4. Presented by why?!!?? • Clean production system • Project versioning • Uninstalling • Pre/post install/uninstall actions • Dependency resolution • User confidence
  5. 5. Downloads per week over six months apt.puppetlabs.com yum.puppetlabs.com downloads.puppetlabs.com Presented by
  6. 6. Downloads per week over six months Presented by tarballs from downloads.puppetlabs.com
  7. 7. Alright, alright, I’m convinced Presented by ! ! How do I immerse myself in this insanity??!?!??!?!!1
  8. 8. Presented by Builders! case $::osfamily { ‘Redhat’: { class { ‘rpmbuilder’: vendor => ‘Puppet Labs', use_extra_packages => true, } } ‘Debian’: { class { ‘debbuilder’: use_cows => true, }
  9. 9. Presented by Automation! Let’s take a look at how we can use github.com/puppetlabs/packaging to build a project!
  10. 10. Presented by
  11. 11. Presented by
  12. 12. Presented by
  13. 13. Presented by
  14. 14. Presented by
  15. 15. Presented by
  16. 16. Presented by Platform Files? for rpm files => http://fedoraproject.org/wiki/Packaging:Guidelines ! for deb files => https://www.debian.org/doc/manuals/maint-guide
  17. 17. Manual Automated Process templates Set up SPECS/SOURCES layout Presented by Move spec file and sources into place Pass spec file and sources to mock to build srpm Pass srpm to mock to build rpm Move packages to pkg/ directory Clean up ssh rpm-builder git clone ${project} cd ${project} rake package:bootstrap rake pl:mock
  18. 18. Manual Automated Process templates Tar the project contents Create ${project}.orig.tar.gz Presented by from tar ball Set up the debian directory Move packages to pkg/ directory Clean up ssh deb-builder git clone ${project} cd ${project} rake package:bootstrap rake pl:deb Move all files into correct location Build packages with pdebuild in specified COW
  19. 19. Presented by rake pl:jenkins:uber_build
  20. 20. Now What? Presented by
  21. 21. Presented by Signing! rake pl:sign_deb_changes rake pl:sign_rpms
  22. 22. Presented by Shipping! rake pl:ship_debs rake pl:ship_rpms
  23. 23. Presented by Repos! apt.puppetlabs.com => sudo freight-add ${repo-source}/* ${repo} sudo -E freight-cache ${repo} ! yum.puppetlabs.com => cd ${repo} ; createrepo --checksum=sha --database --update .
  24. 24. Presented by for pkg in ruby hiera facter puppet ; do tar -xzvf ${pkg}.tar.gz && cd ${pkg} && ./configure && make && make install ; done
  25. 25. Presented by yum install puppet
  26. 26. Presented by You can help us if you like! We are always looking for help improving our tools and processes. Open a ticket at tickets.puppetlabs.com/ browse/CPR, or open a pull request at github.com/ puppetlabs/packaging
  27. 27. Presented by Useful Links debian.org/doc/manuals/maint-guide fedoraproject.org/wiki/Packaging:Guidelines github.com/rcrowley/freight fedoraproject.org/wiki/Extras/CreateRepo github.com/puppetlabs/packaging github.com/puppetlabs/puppetlabs-rpmbuilder github.com/puppetlabs/puppetlabs-debbuilder

×