diff options
| author | Evan Cofsky <evan@theunixman.com> | 2016-02-26 10:20:21 -0600 |
|---|---|---|
| committer | Evan Cofsky <evan@theunixman.com> | 2016-03-07 13:31:51 -0600 |
| commit | 822694e790102efa2a5bb4a0c3d62c6fce1d4e87 (patch) | |
| tree | 833ade451e379c641e9cf5de46cc81d02d8fefbc /config-simple.hs | |
| parent | e8f36722bf23a19dcdd42a1c14ebaa40a2d73293 (diff) | |
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.
Diffstat (limited to 'config-simple.hs')
| -rw-r--r-- | config-simple.hs | 22 |
1 files changed, 22 insertions, 0 deletions
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")) |
