propellor spin

This commit is contained in:
Joey Hess 2014-03-31 19:06:50 -04:00
parent 178cd65e47
commit 14d56a303c
Failed to extract signature
3 changed files with 12 additions and 2 deletions

View File

@ -186,7 +186,7 @@ spin host = do
sendGitClone :: HostName -> String -> IO ()
sendGitClone host url = void $ actionMessage ("Pushing git repository to " ++ host) $
withTmpFile "gitbundle" $ \tmp _ -> allM id
withTmpFile "propellor.git." $ \tmp _ -> allM id
-- TODO: ssh connection caching, or better push method
-- with less connections.
[ boolSystem "git" [Param "bundle", Param "create", File tmp, Param "HEAD"]

10
README
View File

@ -26,6 +26,14 @@ of which classes and share which configuration. It might be nice to use
reclass[1], but then again a host is configured using simply haskell code,
and so it's easy to factor out things like classes of hosts as desired.
## security
Propellor's security model is that the hosts it's used to deploy are
untrusted, and that the central git repository server is untrusted.
The only trusted machine is the laptop where you run propellor --spin
to connect to a remote host.
## bootstrapping and private data
To bootstrap propellor on a new host, use: propellor --spin $host
@ -47,6 +55,8 @@ in such a file, use: propellor --set $host $field
The field name will be something like 'Password "root"'; see PrivData.hs
for available fields.
## using git://... securely
It's often easiest for a remote host to use a git:// or http://

View File

@ -28,7 +28,7 @@ Executable propellor
GHC-Options: -Wall
Build-Depends: MissingH, directory, filepath, base >= 4.5, base < 5,
IfElse, process, bytestring, hslogger, unix-compat, ansi-terminal,
containers, base64-bytestring
containers
if (! os(windows))
Build-Depends: unix