Date post: | 25-Dec-2014 |
Category: |
Technology |
Upload: | puppet-labs |
View: | 406 times |
Download: | 1 times |
2014
Presented by
Packaging Software, Puppet Labs Edition Melissa Stone Release Engineer | Puppet Labs
Presented by
tar -xzvf ${project}.tgz && cd ${project} && ./configure && make && make install
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.
Presented by
why?!!?? • Clean production system • Project versioning • Uninstalling • Pre/post install/uninstall actions • Dependency resolution • User confidence
Presented by
Downloads per week over six monthsapt.puppetlabs.com yum.puppetlabs.com downloads.puppetlabs.com
Presented by
Downloads per week over six monthstarballs from downloads.puppetlabs.com
Presented by
Alright, alright, I’m convinced !
!
How do I immerse myself in this insanity??!?!??!?!!1
Presented by
case $::osfamily { ‘Redhat’: { class { ‘rpmbuilder’: vendor => ‘Puppet Labs', use_extra_packages => true, } } ‘Debian’: { class { ‘debbuilder’: use_cows => true, }
Builders!
Presented by
Automation! Let’s take a look at how we can use github.com/puppetlabs/packaging to build a project!
Presented by
Presented by
Presented by
Presented by
Presented by
Presented by
Presented by
for rpm files => http://fedoraproject.org/wiki/Packaging:Guidelines !
for deb files => https://www.debian.org/doc/manuals/maint-guide
Platform Files?
Presented by
Set up SPECS/SOURCES layout
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
Process templates
ssh rpm-builder
git clone ${project}
cd ${project}
rake package:bootstrap
rake pl:mock
Manual Automated
Presented by
Tar the project contents
Create ${project}.orig.tar.gz from tar ball
Set up the debian directory
Process templates
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
AutomatedManual
Presented by
rake pl:jenkins:uber_build
Presented by
Now What?
Presented by
Signing!
rake pl:sign_deb_changes
rake pl:sign_rpms
Presented by
Shipping!
rake pl:ship_debs
rake pl:ship_rpms
Presented by
apt.puppetlabs.com => sudo freight-add ${repo-source}/* ${repo} sudo -E freight-cache ${repo} !
yum.puppetlabs.com => cd ${repo} ; createrepo --checksum=sha --database --update .
Repos!
Presented by
for pkg in ruby hiera facter puppet ; do
tar -xzvf ${pkg}.tar.gz && cd ${pkg} && \
./configure && make && make install ;
done
Presented by
yum install puppet
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
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