From 822694e790102efa2a5bb4a0c3d62c6fce1d4e87 Mon Sep 17 00:00:00 2001 From: Evan Cofsky Date: Fri, 26 Feb 2016 10:20:21 -0600 Subject: FreeBSD Support including: - Propellor bootstrapping - Basic pkg - Basic ZFS datasets and properties - Simple Poudriere configuration (regular and ZFS) - Poudriere jail creation FIXME: - Cron.hs: runPropellor needs the System, but hasn't yet gotten it. Reorganizing: - Remove FreeBSD.Process - Move ZFS up to Property - Add Info for Pkg.update/Pkg.upgrade - Move FreeBSD.md to doc so it'll show up automatically. - Merge the FreeBSD config with the other sample config. - Use Info to check Pkg updated/upgraded and Poudriere configured. - Warnings clean-up, move ZFS types to Propellor.Types. - Maintainer and license statements. --- config-simple.hs | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) (limited to 'config-simple.hs') diff --git a/config-simple.hs b/config-simple.hs index 21accd18..ac1b115f 100644 --- a/config-simple.hs +++ b/config-simple.hs @@ -1,6 +1,8 @@ -- This is the main configuration file for Propellor, and is used to build -- the propellor program. +import Data.String (fromString) + import Propellor import qualified Propellor.Property.File as File import qualified Propellor.Property.Apt as Apt @@ -13,6 +15,9 @@ import qualified Propellor.Property.User as User --import qualified Propellor.Property.Hostname as Hostname --import qualified Propellor.Property.Tor as Tor import qualified Propellor.Property.Docker as Docker +import qualified Propellor.Property.FreeBSD.Pkg as Pkg +import qualified Propellor.Property.ZFS as ZFS +import qualified Propellor.Property.FreeBSD.Poudriere as Poudriere main :: IO () main = defaultMain hosts @@ -21,6 +26,7 @@ main = defaultMain hosts hosts :: [Host] hosts = [ mybox + , freebsd ] -- An example host. @@ -46,3 +52,19 @@ webserverContainer = Docker.container "webserver" (Docker.latestImage "debian") & Docker.publish "80:80" & Docker.volume "/var/www:/var/www" & Apt.serviceInstalledRunning "apache2" + +poudriereZFS :: Poudriere.Poudriere +poudriereZFS = Poudriere.defaultConfig { + Poudriere._zfs = Just $ Poudriere.PoudriereZFS + (ZFS.ZFS (fromString "zroot") (fromString "poudriere")) + (ZFS.fromList [ZFS.Mountpoint (fromString "/poudriere"), ZFS.ACLInherit ZFS.AIPassthrough]) + } + +-- An example host. +freebsd :: Host +freebsd = host "192.168.56.10" + & os (System (FreeBSD (FBSDProduction FBSD102)) "amd64") + & Pkg.update + & Pkg.upgrade + & Poudriere.poudriere poudriereZFS + & Poudriere.jail (Poudriere.Jail "formail" (fromString "10.2-RELEASE") (fromString "amd64")) -- cgit v1.2.3