All Projects → voxpupuli → puppet-poudriere

voxpupuli / puppet-poudriere

Licence: other
A Puppet module for managing Poudriere, the PkgNG build system.

Programming Languages

Puppet
460 projects
ruby
36898 projects - #4 most used programming language
Dockerfile
14818 projects
shell
77523 projects

Projects that are alternatives of or similar to puppet-poudriere

puppet-pkgng
A Puppet package provider for FreeBSD's PkgNG package manager.
Stars: ✭ 39 (+200%)
Mutual labels:  puppet, bsd-puppet-module, freebsd-puppet-module
puppet-postfix
Puppet postfix module
Stars: ✭ 72 (+453.85%)
Mutual labels:  puppet, bsd-puppet-module, freebsd-puppet-module
puppet-openldap
Manage OpenLDAP with Puppet
Stars: ✭ 35 (+169.23%)
Mutual labels:  puppet, bsd-puppet-module, freebsd-puppet-module
puppet-snmp
Puppet module to manage Net-SNMP.
Stars: ✭ 33 (+153.85%)
Mutual labels:  puppet, bsd-puppet-module
sonar-puppet
SonarQube plugin for Puppet code.
Stars: ✭ 27 (+107.69%)
Mutual labels:  puppet
puppet-install-shell
A shell script to install puppet on multiple distros
Stars: ✭ 33 (+153.85%)
Mutual labels:  puppet
vagrant-magento
**DEPRECATED**
Stars: ✭ 12 (-7.69%)
Mutual labels:  puppet
puppet-ssh keygen
Generation of ssh keys with ssh-keygen
Stars: ✭ 17 (+30.77%)
Mutual labels:  puppet
puppet-icinga2
Puppet module to manage Icinga 2
Stars: ✭ 61 (+369.23%)
Mutual labels:  puppet
puppet-nfs
Installs and configures NFS server and clients
Stars: ✭ 14 (+7.69%)
Mutual labels:  puppet
puppet-logstash
Puppet module to manage Logstash
Stars: ✭ 193 (+1384.62%)
Mutual labels:  puppet
masterclass-codeexamples
Code examples used in Get into DevOps: The Masterclass
Stars: ✭ 35 (+169.23%)
Mutual labels:  puppet
biemond-oradb
Puppet Oracle Database Module
Stars: ✭ 59 (+353.85%)
Mutual labels:  puppet
puppet-confluent
Puppet Module for installing and configuring the Confluent Platform
Stars: ✭ 14 (+7.69%)
Mutual labels:  puppet
puppet-st2
Puppet Module to install and configure StackStorm, IFTTT for Ops
Stars: ✭ 20 (+53.85%)
Mutual labels:  puppet
puppet-vault
Puppet module to manage Vault (https://vaultproject.io)
Stars: ✭ 41 (+215.38%)
Mutual labels:  puppet
puppet-archlinux-macbookretina
UNSUPPORTED - Puppet module and accompanying documentation to install/setup Arch linux on a MacBook Pro Retina 11,4
Stars: ✭ 64 (+392.31%)
Mutual labels:  puppet
jcliff
Manage JBossAS 7/EAP6/Wildfly with modular configuration files from command line, puppet, ansible, chef, etc.
Stars: ✭ 42 (+223.08%)
Mutual labels:  puppet
puppet-stash
A puppet module to install atlassian stash
Stars: ✭ 19 (+46.15%)
Mutual labels:  puppet
aco-oracle java
Puppet module to install Oracle Java on Linux systems
Stars: ✭ 13 (+0%)
Mutual labels:  puppet

Puppet-poudriere

Build Status Code Coverage Puppet Forge Puppet Forge - downloads Puppet Forge - endorsement Puppet Forge - scores License

Manage the FreeBSD PkgNG build system with Puppet.

Simple Implementation

poudriere::env { "90amd64":
  makeopts => [
    "WITH_PKGNG=yes",
    "OPTIONS_SET+= SASL",
    "OPTIONS_SET+= TLS",
    "WITH_IPV6=TRUE",
    "WITH_SSL=YES",
  ]
}

nginx::vhost { "build.${domain}":
  port      => 80,
  vhostroot => '/usr/local/poudriere/data/packages',
  autoindex => true,
}

@@pkgng::repo { "${::fqdn}-90amd64":
  release     => '9.0-RELEASE',
  mirror_type => 'http',
  repopath    => '/90amd64-default/Latest/',
}

Changing default settings

The poudriere class has some default parameters for global settings, such as the ZFS pool, root filesystem, and the FreeBSD mirror site to use (see init.pp for details). To change these defaults, declare the poudriere class with your own parameters.

If you do not want to use ZFS, you can use:

class { 'poudriere':
  zpool => false,
}

Using port-specific make options

You can pass port-specific make options as a hash in pkg_makeopts. For instance, if you want to build Apache 2.4 with the PHP 5.5 module, you can do the following:

poudriere::env { "90amd64":
  makeopts => [
    'WITH_PKGNG=yes',
    'APACHE_VERSION=24',
    'APACHE_PORT=www/apache24',
  ],
  pkgs => [
    'www/apache24',
    'lang/php55',
  ],
  pkg_makeopts => {
    'lang/php55' => ['OPTIONS_SET+=APACHE'],
  },
}

Alternatively, a file containing make options for both global and port-specific use could be defined by setting makefile.

Using port-specific build options

Ports often allow for enabling or disabling support for certain features. Such options can be manually set by issueing poudriere options cat/port but can also be defined in puppet by setting pkg_optsdir. This should point to a directory with files such as could be found in /usr/local/etc/poudriere.d/${jail}-options/:

poudriere::env { "90amd64":
  pkg_optsdir => 'puppet:///path/to/dir/',
}

Managing seperate portstrees

The default portstreee is no longer configuered by this module. You should create this yourself like so:

  poudriere::portstree { 'default': }
poudriere::portstrees:
  default:

By default environments use a portstree named default, which you should create as per the instructions above; however each build environment can be told which portstree to use:

poudriere::portstree { "custom-ports":
  cron_enable  => false,
  fetch_method => 'portsnap',
}

poudriere::env { "custom-build":
  portstree => 'custom-ports',
}
poudriere::portstrees:
  default:
  custom-ports:
    cron_enabled: false
    fetch_method: portsnap
poudriere::environments:
  custom-build:
    portstree: custom-ports
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].