propellor/config-simple.hs

41 lines
1.3 KiB
Haskell

import Propellor
import Propellor.CmdLine
import qualified Propellor.Property.Apt as Apt
import qualified Propellor.Property.Cron as Cron
import qualified Propellor.Property.Docker as Docker
main :: IO ()
main = defaultMain hosts
hosts :: [Host]
hosts =
[ host "hermit"
& os (System (Debian (Stable "jessie")) "amd64")
& Apt.stdSourcesList
& Apt.installed ["ssh", "build-essential"]
& Cron.runPropellor (Cron.Times "30 * * * *")
& Docker.configured
, host "empress"
& os (System (Debian (Stable "jessie")) "amd64")
& Apt.stdSourcesList
& Apt.installed ["ssh", "build-essential"]
& Cron.runPropellor (Cron.Times "30 * * * *")
& Docker.configured
]
standardStableContainer :: Docker.ContainerName -> Docker.Container
standardStableContainer name = standardContainer name (Stable "jessie") "amd64"
standardContainer :: Docker.ContainerName -> DebianSuite -> Architecture -> Docker.Container
standardContainer name suite arch = Docker.container name (dockerImage system)
& os system
& Apt.stdSourcesList `onChange` Apt.upgrade
& Apt.unattendedUpgrades
& Apt.cacheCleaned
& Docker.tweaked
where
system = System (Debian suite) arch
dockerImage :: System -> Docker.Image
dockerImage _ = Docker.latestImage "debian"