propellor spin
This commit is contained in:
parent
863cdf470b
commit
5590c1c75a
|
@ -63,7 +63,6 @@ hosts = -- (o) `
|
||||||
[ "Main git-annex build box." ]
|
[ "Main git-annex build box." ]
|
||||||
& ipv4 "138.38.108.179"
|
& ipv4 "138.38.108.179"
|
||||||
|
|
||||||
& Hostname.sane
|
|
||||||
& Apt.unattendedUpgrades
|
& Apt.unattendedUpgrades
|
||||||
& Postfix.satellite
|
& Postfix.satellite
|
||||||
& Docker.configured
|
& Docker.configured
|
||||||
|
@ -85,7 +84,6 @@ hosts = -- (o) `
|
||||||
|
|
||||||
& Apt.installed ["linux-image-amd64"]
|
& Apt.installed ["linux-image-amd64"]
|
||||||
& Linode.chainPVGrub 5
|
& Linode.chainPVGrub 5
|
||||||
& Hostname.sane
|
|
||||||
& Apt.unattendedUpgrades
|
& Apt.unattendedUpgrades
|
||||||
& Apt.installed ["systemd"]
|
& Apt.installed ["systemd"]
|
||||||
& Ssh.hostKeys (Context "kitenet.net")
|
& Ssh.hostKeys (Context "kitenet.net")
|
||||||
|
@ -110,7 +108,6 @@ hosts = -- (o) `
|
||||||
& ipv4 "107.170.31.195"
|
& ipv4 "107.170.31.195"
|
||||||
|
|
||||||
& DigitalOcean.distroKernel
|
& DigitalOcean.distroKernel
|
||||||
& Hostname.sane
|
|
||||||
& Ssh.hostKeys (Context "diatom.kitenet.net")
|
& Ssh.hostKeys (Context "diatom.kitenet.net")
|
||||||
& Apt.unattendedUpgrades
|
& Apt.unattendedUpgrades
|
||||||
& Apt.serviceInstalledRunning "ntp"
|
& Apt.serviceInstalledRunning "ntp"
|
||||||
|
@ -174,7 +171,6 @@ hosts = -- (o) `
|
||||||
& ipv4 "193.234.225.114"
|
& ipv4 "193.234.225.114"
|
||||||
|
|
||||||
& Grub.chainPVGrub "hd0,0" "xen/xvda1" 30
|
& Grub.chainPVGrub "hd0,0" "xen/xvda1" 30
|
||||||
& Hostname.sane
|
|
||||||
& Postfix.satellite
|
& Postfix.satellite
|
||||||
& Apt.unattendedUpgrades
|
& Apt.unattendedUpgrades
|
||||||
& Ssh.hostKeys ctx
|
& Ssh.hostKeys ctx
|
||||||
|
@ -286,6 +282,8 @@ type Motd = [String]
|
||||||
standardSystem :: HostName -> DebianSuite -> Architecture -> Motd -> Host
|
standardSystem :: HostName -> DebianSuite -> Architecture -> Motd -> Host
|
||||||
standardSystem hn suite arch motd = host hn
|
standardSystem hn suite arch motd = host hn
|
||||||
& os (System (Debian suite) arch)
|
& os (System (Debian suite) arch)
|
||||||
|
& Hostname.sane
|
||||||
|
& Hostname.searchDomain
|
||||||
& File.hasContent "/etc/motd" ("":motd++[""])
|
& File.hasContent "/etc/motd" ("":motd++[""])
|
||||||
& Apt.stdSourcesList `onChange` Apt.upgrade
|
& Apt.stdSourcesList `onChange` Apt.upgrade
|
||||||
& Apt.cacheCleaned
|
& Apt.cacheCleaned
|
||||||
|
|
|
@ -3,6 +3,8 @@ module Propellor.Property.Hostname where
|
||||||
import Propellor
|
import Propellor
|
||||||
import qualified Propellor.Property.File as File
|
import qualified Propellor.Property.File as File
|
||||||
|
|
||||||
|
import Data.List
|
||||||
|
|
||||||
-- | Ensures that the hostname is set using best practices.
|
-- | Ensures that the hostname is set using best practices.
|
||||||
--
|
--
|
||||||
-- Configures /etc/hostname and the current hostname.
|
-- Configures /etc/hostname and the current hostname.
|
||||||
|
@ -37,3 +39,21 @@ setTo hn = combineProperties desc go
|
||||||
addhostsline ip names ls =
|
addhostsline ip names ls =
|
||||||
(ip ++ "\t" ++ (unwords names)) : filter (not . hasip ip) ls
|
(ip ++ "\t" ++ (unwords names)) : filter (not . hasip ip) ls
|
||||||
hasip ip l = headMaybe (words l) == Just ip
|
hasip ip l = headMaybe (words l) == Just ip
|
||||||
|
|
||||||
|
-- | Makes /etc/resolv.conf contain search and domain lines for
|
||||||
|
-- the domain that the hostname is in.
|
||||||
|
searchDomain :: Property
|
||||||
|
searchDomain = property desc (ensureProperty . go =<< asks hostName)
|
||||||
|
where
|
||||||
|
desc = "resolv.conf search and domain configured"
|
||||||
|
go hn =
|
||||||
|
let (_basehost, domain) = separate (== '.') hn
|
||||||
|
in File.fileProperty desc (use domain) "/etc/resolv.conf"
|
||||||
|
use domain ls = filter wanted $ nub (ls ++ cfgs)
|
||||||
|
where
|
||||||
|
cfgs = ["domain " ++ domain, "search " ++ domain]
|
||||||
|
wanted l
|
||||||
|
| l `elem` cfgs = True
|
||||||
|
| "domain " `isPrefixOf` l = False
|
||||||
|
| "search " `isPrefixOf` l = False
|
||||||
|
| otherwise = True
|
||||||
|
|
Loading…
Reference in New Issue