1. 2014
Presented by
Packaging Software,
Puppet Labs Edition
Melissa Stone
Release Engineer | Puppet Labs
2. Presented by
tar -xzvf ${project}.tgz && cd ${project} &&
./configure && make && make install
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. Presented by
why?!!??
• Clean production system
• Project versioning
• Uninstalling
• Pre/post install/uninstall actions
• Dependency resolution
• User confidence
5. Downloads per week over six months
apt.puppetlabs.com yum.puppetlabs.com downloads.puppetlabs.com
Presented by
6. Downloads per week over six months
Presented by
tarballs from downloads.puppetlabs.com
7. Alright, alright, I’m convinced
Presented by
!
!
How do I immerse myself in this insanity??!?!??!?!!1
8. Presented by
Builders!
case $::osfamily {
‘Redhat’: {
class { ‘rpmbuilder’:
vendor => ‘Puppet Labs',
use_extra_packages => true,
}
}
‘Debian’: {
class { ‘debbuilder’:
use_cows => true,
}
9. Presented by
Automation!
Let’s take a look at how we can use
github.com/puppetlabs/packaging to
build a project!
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. 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. 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
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