From dba84b8219d29506886065cc6bcd821d977d2bf8 Mon Sep 17 00:00:00 2001 From: Joey Hess Date: Mon, 7 Jul 2014 03:08:12 -0400 Subject: propellor spin --- config-joey.hs | 3 ++- propellor.cabal | 4 +++- src/Propellor/Property/Grub.hs | 3 ++- src/Propellor/Property/HostingProvider/Linode.hs | 10 ++++++++++ 4 files changed, 17 insertions(+), 3 deletions(-) create mode 100644 src/Propellor/Property/HostingProvider/Linode.hs diff --git a/config-joey.hs b/config-joey.hs index 6dd56c07..09df857f 100644 --- a/config-joey.hs +++ b/config-joey.hs @@ -24,6 +24,7 @@ import qualified Propellor.Property.Service as Service import qualified Propellor.Property.Grub as Grub import qualified Propellor.Property.HostingProvider.DigitalOcean as DigitalOcean import qualified Propellor.Property.HostingProvider.CloudAtCost as CloudAtCost +import qualified Propellor.Property.HostingProvider.Linode as Linode import qualified Propellor.Property.SiteSpecific.GitHome as GitHome import qualified Propellor.Property.SiteSpecific.GitAnnexBuilder as GitAnnexBuilder import qualified Propellor.Property.SiteSpecific.JoeySites as JoeySites @@ -78,7 +79,7 @@ hosts = -- (o) ` & ipv6 "2600:3c03::f03c:91ff:fe73:b0d2" & Apt.installed ["linux-image-amd64"] - & Grub.chainPVGrub "hd0" "xen/xvda" + & Linode.chainPVGrub & Hostname.sane & Apt.unattendedUpgrades & Apt.installed ["systemd"] diff --git a/propellor.cabal b/propellor.cabal index 1c3c8681..e5c8f48a 100644 --- a/propellor.cabal +++ b/propellor.cabal @@ -81,6 +81,7 @@ Library Propellor.Property.File Propellor.Property.Git Propellor.Property.Gpg + Propellor.Property.Grub Propellor.Property.Network Propellor.Property.Obnam Propellor.Property.OpenId @@ -92,8 +93,9 @@ Library Propellor.Property.Sudo Propellor.Property.Tor Propellor.Property.User - Propellor.Property.HostingProvider.DigitalOcean Propellor.Property.HostingProvider.CloudAtCost + Propellor.Property.HostingProvider.DigitalOcean + Propellor.Property.HostingProvider.Linode Propellor.Property.SiteSpecific.GitHome Propellor.Property.SiteSpecific.JoeySites Propellor.Property.SiteSpecific.GitAnnexBuilder diff --git a/src/Propellor/Property/Grub.hs b/src/Propellor/Property/Grub.hs index 7ca6275b..b8e1b662 100644 --- a/src/Propellor/Property/Grub.hs +++ b/src/Propellor/Property/Grub.hs @@ -17,7 +17,8 @@ type GrubDevice = String -- "xen/xvda". chainPVGrub :: GrubDevice -> GrubDevice -> Property chainPVGrub rootdev bootdev = combineProperties desc - [ "/boot/grub/menu.lst" `File.hasContent` + [ File.dirExists "/boot/grub" + , "/boot/grub/menu.lst" `File.hasContent` [ "default 1" , "timeout 30" , "" diff --git a/src/Propellor/Property/HostingProvider/Linode.hs b/src/Propellor/Property/HostingProvider/Linode.hs new file mode 100644 index 00000000..cfabe814 --- /dev/null +++ b/src/Propellor/Property/HostingProvider/Linode.hs @@ -0,0 +1,10 @@ +module Propellor.Property.HostingProvider.Linode where + +import Propellor +import qualified Propellor.Property.Grub as Grub + +-- | Linode's pv-grub-x86_64 does not currently support booting recent +-- Debian kernels compressed with xz. This sets up pv-grub chaing to enable +-- it. +chainPVGrub :: Property +chainPVGrub = Grub.chainPVGrub "hd0" "xen/xvda" -- cgit v1.2.3