All Projects → puppetlabs → Puppetlabs Debbuilder

puppetlabs / Puppetlabs Debbuilder

Licence: other
Module to build a debian package builder

Labels

Projects that are alternatives of or similar to Puppetlabs Debbuilder

Puppet Etcd
etcd is a distributed key value store that provides a reliable way to store data across a cluster of machines.
Stars: ✭ 9 (-35.71%)
Mutual labels:  puppet
Puppet Cloudwatchlogs
Puppet module for configuring AWS Cloudwatch Logs on Amazon Linux, Ubuntu, Red Hat & CentOS EC2 instances.
Stars: ✭ 11 (-21.43%)
Mutual labels:  puppet
Puppet Cassandra
Installs Cassandra & DataStax Agent on RHEL/Ubuntu/Debian.
Stars: ✭ 13 (-7.14%)
Mutual labels:  puppet
Puppet Postgres Hardening
Postgres Web Server Hardening with Puppet
Stars: ✭ 9 (-35.71%)
Mutual labels:  puppet
Selenium Puppet
a puppet module for installing the selenium server and selenium-webdriver gem
Stars: ✭ 10 (-28.57%)
Mutual labels:  puppet
Puppet Bro
Puppet module to manage Bro NSM
Stars: ✭ 11 (-21.43%)
Mutual labels:  puppet
Aws Tilemill
Stars: ✭ 8 (-42.86%)
Mutual labels:  puppet
Puppet Autossh
MOVED: now at https://opendev.org/x/puppet-autossh
Stars: ✭ 14 (+0%)
Mutual labels:  puppet
Puppet Rails
A Puppet module for managing rails
Stars: ✭ 10 (-28.57%)
Mutual labels:  puppet
Runyer
Stars: ✭ 12 (-14.29%)
Mutual labels:  puppet
Vagrant Ldap Vm
quick and dirty ldap vm
Stars: ✭ 9 (-35.71%)
Mutual labels:  puppet
Nodejs Vagrantbox
Simple nodejs box vagrant configuration (trusty64, nodejs, git, bower...)
Stars: ✭ 10 (-28.57%)
Mutual labels:  puppet
Puppet Django
a puppet module for deploying django - pythonbrew - supervisor - gunicorn install
Stars: ✭ 11 (-21.43%)
Mutual labels:  puppet
Aco Tomcat
Puppet module for Tomcat
Stars: ✭ 9 (-35.71%)
Mutual labels:  puppet
Puppet Syncthing
Syncthing module for Puppet
Stars: ✭ 13 (-7.14%)
Mutual labels:  puppet
Stingray Puppet
Puppet module to control Riverbed Stingray Traffic Manager
Stars: ✭ 8 (-42.86%)
Mutual labels:  puppet
Puppet Phpbrew
Puppet module for phpbrew.
Stars: ✭ 11 (-21.43%)
Mutual labels:  puppet
Puppet Ansible
Deploy Ansible with puppet
Stars: ✭ 14 (+0%)
Mutual labels:  puppet
Fuel Plugin Detach Rabbitmq
MOVED: now at https://opendev.org/x/fuel-plugin-detach-rabbitmq
Stars: ✭ 14 (+0%)
Mutual labels:  puppet
Monarch
Rule over hierarchical data!
Stars: ✭ 12 (-14.29%)
Mutual labels:  puppet

Puppetlabs-debbuilder Module

This module is designed to stand up a debian builder. It can take care of either adding the packages required to build using debuild or using pbuilder. If desired it can also set up the appropriate cows for a pbuilder/cowbuilder solution. It brings in keyrings for debian and ubuntu and lays down a pbuilderrc in /etc to add the correct repos to a given cow.

After applying the module to a machine, it should be ready to build packages for the desired release.

Cows?

What are cows?

Cow is short for 'copy-on-write'. Cowbuilder makes clean chroots for any ubuntu or debian release that can be used for building packages using pbuilder. From the cowbuilder and pbuilder package descriptions:

"pbuilder is a tool for building and testing Debian package inside a clean chroot, and cowbuilder allows chroot to be recreated using hard-linked copies with copy-on-write, which makes creation and destruction of chroots fast."

Cowbuilder and pbuilder are how Puppet Labs builds debian packages for our apt repository.

Example Usage

    class { 'debbuilder':
      pe        => false,
      use_cows  => true,
      cows      => ['lucid', 'squeeze', 'precise'],
      cow_root  => '/var/cache/debbuilder/pbuilder',
    }

This incantation will create i386 and amd64 cows for lucid, squeeze and precise and install the needed packages on the builder. The cows will be set up with the correct keys for their repos. The cows will be created in the basepath of /var/cache/debbuilder/pbuilder.

The Pieces

The module has four classes and two defined types included. The classes and defined types can be used to create a builder setup as desired, but the base debbuilder class takes four parameters that should be sufficient for most situations.

debbuilder

The main class brings in the three included classes and has four parameters to customize behavior. use_cows can be set to true or false, and if false only the essential packages will be brought in. If true, the extra packages will be brought in as well and cows will be setup using the debbuilder::setup::cow_exec defined type. The cows parameter can be used to customize which cows will be created. If left undefined the cow_exec defined type will create cows for all currently supported debian and ubuntu varieties. The cow_root parameter can be set to override the default basepath of /var/cache/pbuilder for the cows. The 'pe' parameter enables internal Puppet Labs repos for the builder cow configs and also installs an internal builder public keyring.

debbuilder::packages::essential

This class will bring in all of the essential packages for building debian packages using debuild or dpkg-buildpackage.

debbuilder::packages::extra

This class will bring in all of the packages needed for building debian packages using cowbuilder or pdebuild.

debbuilder::setup::cows

This class takes three parameters: cows, cow_root and pe. The class will setup cows for both i386 and amd64 for either the supplied cows, or it defaults to all currently supported debian and ubuntu varieties. The cow_root parameter can be used to customize the base location of the cow. It defaults to /var/cache/pbuilder. The 'pe' class parameter defaults to false and is used to customize the pbuilderrc and also to determine whether or not to lay down the internal build keyring. This class also brings in the puppetlabs keyring for the cows, so they can use the puppetlabs repos to bring in build dependencies. It also lays down a customized pbuilderrc to bootstrap the builder cows.

debbuilder::setup::cow_exec

This defined type adds a cow for both i386 and amd64 arches for a given debian or ubuntu variety. It will only build the amd64 cow if on an amd64 machine, as a 64-bit cow will not function on a 32-bit machine. It also includes nightly cron jobs that keep the cow up to date using the default repos. It takes an optional parameter of cow_root, which defaults to /var/cache/pbuilder to customize the basepath for the created cows.

debbuilder::util::file_on_disk

This defined type lays a file down on disk based on the title of the resource and the optional source, target and mode parameters. It is useful for laying down multiple files in the same path without duplicating code.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].