From 2c58f2a7df719b1443467aa4c22d12de564c6920 Mon Sep 17 00:00:00 2001 From: Joey Hess Date: Fri, 21 Oct 2016 14:13:51 -0400 Subject: propellor spin --- debian/changelog | 1 + joeyconfig.hs | 2 ++ src/Propellor/Property/HostingProvider/Linode.hs | 19 ++++++++++++++++--- 3 files changed, 19 insertions(+), 3 deletions(-) diff --git a/debian/changelog b/debian/changelog index 7baa9d79..8d9b6d33 100644 --- a/debian/changelog +++ b/debian/changelog @@ -3,6 +3,7 @@ propellor (3.2.1) unstable; urgency=medium * Simplify Debootstrap.sourceInstall since #770217 was fixed. * Debootstap.installed: Fix inverted logic that made this never install debootstrap. Thanks, mithrandi. + * Added Linode.serialGrub property. -- Joey Hess Mon, 03 Oct 2016 18:06:31 -0400 diff --git a/joeyconfig.hs b/joeyconfig.hs index a8996be9..4a353819 100644 --- a/joeyconfig.hs +++ b/joeyconfig.hs @@ -260,6 +260,7 @@ kite = host "kite.kitenet.net" $ props & Network.static "eth0" `requires` Network.cleanInterfacesFile & Apt.installed ["linux-image-amd64"] + & Linode.serialGrub & Linode.mlocateEnabled & Apt.unattendedUpgrades & Systemd.installed @@ -456,6 +457,7 @@ pell = host "pell.branchable.com" $ props & Apt.installed ["linux-image-amd64"] & Apt.unattendedUpgrades & Branchable.server hosts + & Linode.serialGrub -- See https://joeyh.name/code/keysafe/servers/ for requirements. keysafe :: Host diff --git a/src/Propellor/Property/HostingProvider/Linode.hs b/src/Propellor/Property/HostingProvider/Linode.hs index 71719d87..fca3df63 100644 --- a/src/Propellor/Property/HostingProvider/Linode.hs +++ b/src/Propellor/Property/HostingProvider/Linode.hs @@ -5,9 +5,22 @@ import qualified Propellor.Property.Grub as Grub import qualified Propellor.Property.File as File import Utility.FileMode --- | Linode's pv-grub-x86_64 does not currently support booting recent --- Debian kernels compressed with xz. This sets up pv-grub chaining to enable --- it. +-- | Configures grub to use the serial console as set up by Linode. +-- Useful when running a distribution supplied kernel. +-- +serialGrub :: Property DebianLike +serialGrub = "/etc/default/grub" `File.containsLines` + [ "GRUB_CMDLINE_LINUX=\"console=ttyS0,19200n8\"" + , "GRUB_DISABLE_LINUX_UUID=true" + , "GRUB_SERIAL_COMMAND=\"serial --speed=19200 --unit=0 --word=8 --parity=no --stop=1\"" + , "GRUB_TERMINAL=serial" + ] + `onChange` Grub.mkConfig + `requires` Grub.installed Grub.PC + +-- | Linode's pv-grub-x86_64 (only used for its older XEN instances) +-- does not support booting recent Debian kernels compressed +-- with xz. This sets up pv-grub chaining to enable it. chainPVGrub :: Grub.TimeoutSecs -> Property DebianLike chainPVGrub = Grub.chainPVGrub "hd0" "xen/xvda" -- cgit v1.2.3