summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorJoey Hess2016-10-21 14:13:51 -0400
committerJoey Hess2016-10-21 14:13:51 -0400
commit2c58f2a7df719b1443467aa4c22d12de564c6920 (patch)
tree22473df2f67bfa95040fea9d615a0639e70d8c22 /src
parent44d851c1cc1f2044d60f2518e3147644f32ff0bd (diff)
propellor spin
Diffstat (limited to 'src')
-rw-r--r--src/Propellor/Property/HostingProvider/Linode.hs19
1 files changed, 16 insertions, 3 deletions
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.
+-- <https://www.linode.com/docs/tools-reference/custom-kernels-distros/run-a-distribution-supplied-kernel-with-kvm>
+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"