poudriere

ansible-role-poudriere

Setup poudriere, a package builder for FreeBSD

Requirements

None

Role Variables

Variable Description Default
poudriere_package package name of poudriere ports-mgmt/poudriere
poudriere_conf path to poudriere.conf /usr/local/etc/poudriere.conf
poudriere_conf_d path to poudriere.d directory /usr/local/etc/poudriere.d
poudriere_config_default defaults for poudriere_config see below
poudriere_config dict of config that overrides poudriere_config_default {}
poudriere_ports see below {}
poudriere_jails see below {}
poudriere_hooks see below {}
poudriere_make_conf_files see below []
poudriere_pkg_repo_signing_key content of key with which poudriere sign packages ""

poudriere_config_default

BASEFS and DISTFILES_CACHE are mandatory. See poudriere.conf.sample for details.

poudriere_config_default:
  FREEBSD_HOST: http://ftp.freebsd.org
  SVN_HOST: svn.FreeBSD.org
  BASEFS: /usr/local/poudriere
  RESOLV_CONF: /etc/resolv.conf
  USE_TMPFS: "yes"
  DISTFILES_CACHE: /usr/ports/distfiles

poudriere_ports

Key Description Mandatory?
method method to use to create the ports tree no
branch branch to checkout no
extra_flags additional flags to poudriere(8) when creating ports tree no
path path to the ports tree no
state state of the ports, either present or absent yes

poudriere_jails

Key Description Mandatory?
method method to use to create the jail yes
version version of FreeBSD to use in the jail yes
extra_flags additional flags to poudriere(8) when creating the jail no
state state of the jail, either present or absent yes

poudriere_hooks

Key Description
hook name the value is the content of the hook script. see hook for possible hook names

poudriere_pkg_repo_signing_key

When poudriere_pkg_repo_signing_key is defined, poudriere_config['PKG_REPO_SIGNING_KEY'] must be set to path to the key file.

poudriere_make_conf_files

This variable is a list of dict. Keys in items are described below.

Key Description Mandatory?
name file name of the make.conf(5) yes
state create the file if present, remove it if absent yes
content the content of the make.conf(5) yes if state is present

Dependencies

None

Example Playbook

- hosts: localhost
  roles:
    - name: reallyenglish.git
    - ansible-role-poudriere
  vars:
    poudriere_package: ports-mgmt/poudriere-devel
    poudriere_make_conf_files:
      - name: make.conf
        state: present
        content: |
          LICENSES_ACCEPTED=MSPAT OSI
          MAKE_JOB_NUMBERS=3
    poudriere_config:
      FREEBSD_HOST: http://ftp.freebsd.org
      NO_ZFS: "yes"
      GIT_URL: "https://github.com/reallyenglish/freebsd-ports-mini.git"
      CHECK_CHANGED_OPTIONS: verbose
      NOLINUX: "yes"
      PKG_REPO_SIGNING_KEY: /usr/local/etc/poudriere/keys/my.key
      CCACHE_DIR: /var/cache/ccache
    # openssl genrsa -out my.key 2048
    # openssl rsa -in my.key -out my.pub -pubout
    poudriere_pkg_repo_signing_key: |
      -----BEGIN RSA PRIVATE KEY-----
      MIIEogIBAAKCAQEAwoMg0XK2SdEaz8b8O6rYf+lzDx+ElBXr2ARmFCG+SzKmHf8+
      zL4+gKMLFv3DytKE2WiZs+WNCKCGYPmH6Sg5DOJxpO/NhpqiHSngigB7B2XzZeSC
      erTiqn4Qw17/ydd1tRFzVS/BPPYyoUnFdZ4+xgItaPfa6Ns32mwqUb9mE2EEx66u
      yU1GAiI7yO1VRYzrHQwyVB74c72mlC/kJaUaBLoE9dWfyegRRycRK3sSxMYX0eYE
      5/EzlmRK3BBLchH57B0u2WWR75MWUfkTWh1pAKB/Dxl74fmQT+yvNKk9/U8mo9zV
      oVw0H7dphgglS2fXXvyFIn9TIVGS5zbe2C4scQIDAQABAoIBAEu5lQs1Z3YxbAi7
      5PKtvn99uQeIM6sbJagBfmQUButrmnRPLHm1DswxrV2UCadqccHaEQySL2fOZsJW
      Iu1IdX1ooumdWhwvEzHbXckcCsmEjU97uLhgt2W8knYdA+Pmd7K4Sng9kTNUfb2A
      5Ni3dKTNsDQPWjAROBtWxNrycqDUFIFiN/VYFsPb4cQHxJLx62l8xZklC1jk9rmE
      G8CacImUMmorTD5QUbhVeWDvb0Szpn73kDQmYkKQ8Eq4zOlrWXoTYAPxHrbX85pT
      GqkzzcuYiq7ByP3LWP3GvZKCjgONwBVTEsXjPtbrOTDr7JshMjrJSl40DCYUGOvh
      a26DXwkCgYEA6eUyKmGHW0BM320cT5bHSkwsg0uoidSs1IcqR+lFyL5/3Wauxfo1
      wxiKJNYzXC84UahCzPP3cS+Bpy1hfDqvDIRxLuTNGBxvDMFmiQHWnXsXdJmEInIB
      rBnN3nGiZFUrKmCuaBVo/tweft4Fe9JulB/efDXcHOcg7mvCL4u1LjMCgYEA1OUb
      o2n1wbMjOeI7kvhf0pbL/Jgt0sIj8tYRqHhFihrk7aQVv87O0iOLOgKN2McXTdow
      qXouO0dJhDMydJHT4Lpmueguu+1cuSwB7Lt3ETOjBn41KzTOYlgJeGR3w6ltYCWw
      0zLUmRPlfiZ77yLThbXCvJKr0TTo6VqU+unVTssCgYAVasBCMzYCvAuN9d6+xu6u
      tfTpfNcM7+V3fHz5ormaHR92NX3RcQzVNX0IzHhde5FroL2lKL3Cpnf3x+cCShlX
      SxVWFutUxt3ATEFIUFvHhcrrCVeZE9llWeOI99zH1Sijs8CklTlNBPjh4xCbevRX
      KefkdcYW+27/hex9EAziEwKBgCICG0EmewifOiBUAFpA7OWyCxHlqWRCeQWgpp93
      3vvpweooTQUf3y/4V5RDti8L1rAsC5v3FY2InLjOiN/QL711aVWHPnfsueQmoIQV
      ijaoPgGahZnKTLGvCIw/2FXcKcmzG6UROJ7fa8iUEzYnJQz19Q60i1fXEOG+A5B1
      bAqzAoGAdMTTrDnSXZyPvnLE+RVImOBReFf5yjyh0zQ5mPGQe2qZcY2c+oKS/m3B
      OmgYmcPHy86OchpI+cYTUsCr+sMwpKwdnb49VuoDFYOuVsE4vFT/jJs3Bil3bsnc
      uMObnA6Is7MX1EItBTCug8192gu8Mcc6zOVo0TkzbQdEdmms3Gk=
      -----END RSA PRIVATE KEY-----
    poudriere_ports:
      mini:
        method: git
        branch: 20170222
        state: present
      vagrant:
        state: present
        extra_flags: -f none -F
        path: /home/vagrant/freebsd-ports
    poudriere_jails:
      "10_3":
        method: http
        version: 10.3-RELEASE
        state: present
    poudriere_hooks:
      jail: |
        #!/bin/sh
        echo "args=$*"
      builder: |
        #!/bin/sh
        echo "args=$*"

License

Copyright (c) 2016 Tomoyuki Sakurai <[email protected]>

Permission to use, copy, modify, and distribute this software for any
purpose with or without fee is hereby granted, provided that the above
copyright notice and this permission notice appear in all copies.

THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.

Author Information

Tomoyuki Sakurai tomoyukis@reallyenglish.com

About

Configures poudriere

Install
ansible-galaxy install reallyenglish/ansible-role-poudriere
GitHub repository
License
isc
Downloads
223
Owner