From 94e8e77a6c2053b5c9a54359eccd4fcb6e8c064a Mon Sep 17 00:00:00 2001 From: Joey Hess Date: Wed, 17 Apr 2019 16:19:00 -0400 Subject: propellor spin --- src/Propellor/Property/SiteSpecific/JoeySites.hs | 35 ++++++++++++------------ 1 file changed, 18 insertions(+), 17 deletions(-) (limited to 'src/Propellor/Property/SiteSpecific/JoeySites.hs') diff --git a/src/Propellor/Property/SiteSpecific/JoeySites.hs b/src/Propellor/Property/SiteSpecific/JoeySites.hs index 43c321da..dc81ee3e 100644 --- a/src/Propellor/Property/SiteSpecific/JoeySites.hs +++ b/src/Propellor/Property/SiteSpecific/JoeySites.hs @@ -899,11 +899,10 @@ alarmClock oncalendar (User user) command = combineProperties "goodmorning timer & "/etc/systemd/logind.conf" `ConfFile.containsIniSetting` ("Login", "LidSwitchIgnoreInhibited", "no") -homePower :: IsContext c => User -> [Host] -> c -> (SshKeyType, Ssh.PubKeyText) -> Property (HasInfo + DebianLike) -homePower user hosts ctx sshkey = propertyList "home power" $ props +house :: IsContext c => User -> [Host] -> c -> (SshKeyType, Ssh.PubKeyText) -> Property (HasInfo + DebianLike) +house user hosts ctx sshkey = propertyList "home automation" $ props & Apache.installed & Apt.installed ["python", "python-pymodbus", "rrdtool", "rsync"] - & File.ownerGroup "/var/www/html" user (userGroup user) & Git.cloned user "https://git.joeyh.name/git/joey/house.git" d Nothing & Git.cloned user "https://git.joeyh.name/git/reactive-banana-automation.git" (d "reactive-banana-automation") Nothing & build @@ -924,8 +923,8 @@ homePower user hosts ctx sshkey = propertyList "home power" $ props & User.hasGroup user (Group "gpio") & Apt.installed ["i2c-tools"] & User.hasGroup user (Group "i2c") - & "/etc/modules-load.d/homepower.conf" `File.hasContent` ["i2c-dev"] - & Cron.niceJob "homepower upload" + & "/etc/modules-load.d/house.conf" `File.hasContent` ["i2c-dev"] + & Cron.niceJob "house upload" (Cron.Times "1 * * * *") user d rsynccommand `requires` Ssh.userKeyAt (Just sshkeyfile) user ctx sshkey `requires` File.ownerGroup (takeDirectory sshkeyfile) @@ -934,7 +933,7 @@ homePower user hosts ctx sshkey = propertyList "home power" $ props `requires` Ssh.knownHost hosts "kitenet.net" user & File.hasPrivContentExposed "/etc/darksky-forecast-url" anyContext where - d = "/var/www/html/homepower" + d = "/home/joey/house" sshkeyfile = d ".ssh/key" build = check (not <$> doesFileExist (d "controller")) $ userScriptProperty (User "joey") @@ -955,11 +954,11 @@ homePower user hosts ctx sshkey = propertyList "home power" $ props , "libghc-reactive-banana-dev" , "libghc-hinotify-dev" ] - pollerservicename = "homepower" + pollerservicename = "house-poller" pollerservicefile = "/etc/systemd/system/" ++ pollerservicename ++ ".service" pollerserviceinstalled = pollerservicefile `File.hasContent` [ "[Unit]" - , "Description=home power poller" + , "Description=house poller" , "" , "[Service]" , "ExecStart=" ++ d ++ "/poller" @@ -970,13 +969,13 @@ homePower user hosts ctx sshkey = propertyList "home power" $ props , "" , "[Install]" , "WantedBy=multi-user.target" - , "WantedBy=homepower-controller.target" + , "WantedBy=house-controller.target" ] - controllerservicename = "homepower-controller" + controllerservicename = "house-controller" controllerservicefile = "/etc/systemd/system/" ++ controllerservicename ++ ".service" controllerserviceinstalled = controllerservicefile `File.hasContent` [ "[Unit]" - , "Description=home power controller" + , "Description=house controller" , "" , "[Service]" , "ExecStart=" ++ d ++ "/controller" @@ -988,11 +987,11 @@ homePower user hosts ctx sshkey = propertyList "home power" $ props , "[Install]" , "WantedBy=multi-user.target" ] - watchdogservicename = "homepower-watchdog" + watchdogservicename = "house-watchdog" watchdogservicefile = "/etc/systemd/system/" ++ watchdogservicename ++ ".service" watchdogserviceinstalled = watchdogservicefile `File.hasContent` [ "[Unit]" - , "Description=home power watchdog" + , "Description=house watchdog" , "" , "[Service]" , "ExecStart=" ++ d ++ "/watchdog" @@ -1004,11 +1003,11 @@ homePower user hosts ctx sshkey = propertyList "home power" $ props , "[Install]" , "WantedBy=multi-user.target" ] - setupservicename = "homepower-setup" + setupservicename = "house-setup" setupservicefile = "/etc/systemd/system/" ++ setupservicename ++ ".service" setupserviceinstalled = setupservicefile `File.hasContent` [ "[Unit]" - , "Description=home power monitor setup" + , "Description=house setup" , "" , "[Service]" , "ExecStart=" ++ d ++ "/setup" @@ -1019,7 +1018,9 @@ homePower user hosts ctx sshkey = propertyList "home power" $ props , "" , "[Install]" , "WantedBy=multi-user.target" - , "WantedBy=homepower.target" + , "WantedBy=house-poller.target" + , "WantedBy=house-controller.target" + , "WantedBy=house-watchdog.target" ] -- Any changes to the rsync command will need my .authorized_keys -- rsync server command to be updated too. @@ -1063,7 +1064,7 @@ homeRouter = propertyList "home router" $ props , "interface=" ++ homerouterWifiInterface , "interface=eth0" , "domain=kitenet.net" - -- lease time is short because the homepower + -- lease time is short because the house -- controller wants to know when clients disconnect , "dhcp-range=10.1.1.100,10.1.1.150,10m" , "no-hosts" -- cgit v1.2.3