summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--config-simple.hs2
l---------config.hs2
-rwxr-xr-xdebian/rules2
-rw-r--r--doc/README.mdwn12
-rw-r--r--doc/comments.mdwn9
-rw-r--r--doc/forum/Key_sign_problem.mdwn42
-rw-r--r--doc/forum/Key_sign_problem/comment_1_52d33e2d0b4a1018b25a07f54b60c35a._comment8
-rw-r--r--doc/forum/cabal_install_problem.mdwn5
-rw-r--r--doc/forum/cabal_install_problem/comment_1_2201805f80683575c4675e3268dfabc0._comment8
-rw-r--r--doc/forum/remote.origin_not_copied_to_managed_host__63__.mdwn95
-rw-r--r--doc/forum/remote.origin_not_copied_to_managed_host__63__/comment_1_e9e7e5e728ec23fd6025203a1aa0596b._comment25
-rw-r--r--doc/haskell_newbie.mdwn2
-rw-r--r--doc/news/version_0.6.0.mdwn11
-rw-r--r--doc/news/version_0.7.0.mdwn9
-rw-r--r--doc/news/version_0.8.0.mdwn20
-rw-r--r--doc/news/version_0.8.1.mdwn7
-rw-r--r--doc/news/version_0.8.2.mdwn10
-rw-r--r--doc/todo/docker_todo_list/comment_1_3801d48190c029a8591ab188427b31b6._comment10
-rw-r--r--doc/todo/docker_todo_list/comment_2_441591f9aa106e8d6d1fa7fd6be0fc6f._comment10
-rw-r--r--doc/todo/ssh__95__user_+_sudo.mdwn1
-rw-r--r--doc/todo/ssh__95__user_+_sudo/comment_1_3bc008e42587a3313f81ee740d7d80f0._comment10
-rw-r--r--doc/todo/ssh__95__user_+_sudo/comment_2_35722c7d6f6c3e2315fbf72878066c01._comment8
-rw-r--r--doc/todo/ssh__95__user_+_sudo/comment_3_d1e4040677b39342be00359210c02156._comment10
-rw-r--r--privdata/keyring.gpgbin113014 -> 0 bytes
-rw-r--r--privdata/privdata.gpg749
25 files changed, 308 insertions, 759 deletions
diff --git a/config-simple.hs b/config-simple.hs
index 94562eeb..35eae40c 100644
--- a/config-simple.hs
+++ b/config-simple.hs
@@ -29,7 +29,7 @@ hosts =
& Apt.unattendedUpgrades
& Apt.installed ["etckeeper"]
& Apt.installed ["ssh"]
- & User.hasSomePassword "root"
+ & User.hasSomePassword "root" (Context "mybox.example.com")
& Network.ipv6to4
& File.dirExists "/var/www"
& Docker.docked hosts "webserver"
diff --git a/config.hs b/config.hs
index 07959a0a..ec313725 120000
--- a/config.hs
+++ b/config.hs
@@ -1 +1 @@
-config-joey.hs \ No newline at end of file
+config-simple.hs \ No newline at end of file
diff --git a/debian/rules b/debian/rules
index 14e639ca..f5025b3f 100755
--- a/debian/rules
+++ b/debian/rules
@@ -1,4 +1,4 @@
-#!/bin/false
+#!/usr/bin/make -f
# Avoid using cabal, as it writes to $HOME
export CABAL=./Setup
diff --git a/doc/README.mdwn b/doc/README.mdwn
index 51b1e4dc..71b265f5 100644
--- a/doc/README.mdwn
+++ b/doc/README.mdwn
@@ -13,17 +13,17 @@ Properties are defined using Haskell. Edit `~/.propellor/config.hs`
to get started. There is fairly complete
[API documentation](http://hackage.haskell.org/package/propellor/),
which includes many built-in Properties for dealing with
-[Apt](http://hackage.haskell.org/package/propellor-0.4.0/docs/Propellor-Property-Apt.html)
+[Apt](http://hackage.haskell.org/package/propellor/docs/Propellor-Property-Apt.html)
and
-[Apache](http://hackage.haskell.org/package/propellor-0.4.0/docs/Propellor-Property-Apache.html)
+[Apache](http://hackage.haskell.org/package/propellor/docs/Propellor-Property-Apache.html)
,
-[Cron](http://hackage.haskell.org/package/propellor-0.4.0/docs/Propellor-Property-Cron.html)
+[Cron](http://hackage.haskell.org/package/propellor/docs/Propellor-Property-Cron.html)
and
-[Commands](http://hackage.haskell.org/package/propellor-0.4.0/docs/Propellor-Property-Cmd.html)
+[Commands](http://hackage.haskell.org/package/propellor/docs/Propellor-Property-Cmd.html)
,
-[Dns](http://hackage.haskell.org/package/propellor-0.4.0/docs/Propellor-Property-Dns.html)
+[Dns](http://hackage.haskell.org/package/propellor/docs/Propellor-Property-Dns.html)
and
-[Docker](http://hackage.haskell.org/package/propellor-0.4.0/docs/Propellor-Property-Docker.html), etc.
+[Docker](http://hackage.haskell.org/package/propellor/docs/Propellor-Property-Docker.html), etc.
There is no special language as used in puppet, chef, ansible, etc.. just
the full power of Haskell. Hopefully that power can be put to good use in
diff --git a/doc/comments.mdwn b/doc/comments.mdwn
new file mode 100644
index 00000000..e19962b9
--- /dev/null
+++ b/doc/comments.mdwn
@@ -0,0 +1,9 @@
+[[!sidebar content="""
+[[!inline pages="comment_pending(*)" feedfile=pendingmoderation
+description="comments pending moderation" show=-1]]
+Comments in the [[!commentmoderation desc="moderation queue"]]:
+[[!pagecount pages="comment_pending(*)"]]
+"""]]
+
+Recent comments posted to this site:
+[[!inline pages="comment(*)" template="comment"]]
diff --git a/doc/forum/Key_sign_problem.mdwn b/doc/forum/Key_sign_problem.mdwn
new file mode 100644
index 00000000..18502a9b
--- /dev/null
+++ b/doc/forum/Key_sign_problem.mdwn
@@ -0,0 +1,42 @@
+I am starting to use propellor and ran into a couple of issues that seems related to GPG keys handling.
+I followed install procedure, added a GPG key, and signed commits. Here is the output from a propellor execution:
+
+ if ! cabal build; then cabal configure; cabal build; fi
+ Building propellor-0.8.1...
+ Preprocessing library propellor-0.8.1...
+ In-place registering propellor-0.8.1...
+ Preprocessing executable 'propellor' for propellor-0.8.1...
+ Preprocessing executable 'propellor-config' for propellor-0.8.1...
+ [46 of 46] Compiling Main ( src/config.hs, dist/build/propellor-config/propellor-config-tmp/Main.o )
+ Linking dist/build/propellor-config/propellor-config ...
+ ln -sf dist/build/propellor-config/propellor-config propellor
+
+
+ if ! cabal build; then cabal configure; cabal build; fi
+ Building propellor-0.8.1...
+ Preprocessing library propellor-0.8.1...
+ In-place registering propellor-0.8.1...
+ Preprocessing executable 'propellor' for propellor-0.8.1...
+ Preprocessing executable 'propellor-config' for propellor-0.8.1...
+ ln -sf dist/build/propellor-config/propellor-config propellor
+ Propellor build ... done
+ gpg: skipped "Arnaud Bailly <abailly@foldlabs.com>": No secret key
+ gpg: signing failed: No secret key
+ error: gpg failed to sign the data
+ fatal: failed to write commit object
+ Everything up-to-date
+ From https://github.com/joeyh/propellor
+ 9a31b95..8aabde7 joeyconfig -> origin/joeyconfig
+ Git fetch ... done
+ ** warning: git branch origin/master is not signed with a trusted gpg key; refusing to deploy it! (Running with previous configuration instead.)
+ propellor: Cannot continue!
+ ** error: Propellor does not know about host: 188.226.133.217
+ (Perhaps you should specify the real hostname on the command line?)
+ (Or, edit propellor's config.hs to configure this host)
+ Known hosts: mybox.example.com webserver.docker
+
+ ** error: protocol error (perhaps the remote propellor failed to run?)
+ propellor: user error (ssh ["-o","ControlPath=/Users/arnaud/.ssh/propellor/188.226.133.217.sock","-o","ControlMaster=auto","-o","ControlPersist=yes","root@188.226.133.217","sh -c 'if [ ! -d /usr/local/propellor ] ; then apt-get update && apt-get --no-install-recommends --no-upgrade -y install git make && echo STATUSNeedGitClone ; else cd /usr/local/propellor && if ! test -x ./propellor; then make deps build; fi && ./propellor --boot 188.226.133.217 ; fi'"] exited 1)
+
+
+I am puzzled...
diff --git a/doc/forum/Key_sign_problem/comment_1_52d33e2d0b4a1018b25a07f54b60c35a._comment b/doc/forum/Key_sign_problem/comment_1_52d33e2d0b4a1018b25a07f54b60c35a._comment
new file mode 100644
index 00000000..7971c725
--- /dev/null
+++ b/doc/forum/Key_sign_problem/comment_1_52d33e2d0b4a1018b25a07f54b60c35a._comment
@@ -0,0 +1,8 @@
+[[!comment format=mdwn
+ username="http://joeyh.name/"
+ ip="209.250.56.244"
+ subject="comment 1"
+ date="2014-08-17T23:43:03Z"
+ content="""
+Looks like the gpg key you configured it to use does not have its secret key available on the computer where you're editing/signing the repository. `git commit` would then fail the same way.
+"""]]
diff --git a/doc/forum/cabal_install_problem.mdwn b/doc/forum/cabal_install_problem.mdwn
new file mode 100644
index 00000000..50525e03
--- /dev/null
+++ b/doc/forum/cabal_install_problem.mdwn
@@ -0,0 +1,5 @@
+I just did a cabal install of propellor
+
+The binaries it installs are called wrapper and config, although the makefile/documentation say that at least one of them should be called propellor.
+
+Is this correct?
diff --git a/doc/forum/cabal_install_problem/comment_1_2201805f80683575c4675e3268dfabc0._comment b/doc/forum/cabal_install_problem/comment_1_2201805f80683575c4675e3268dfabc0._comment
new file mode 100644
index 00000000..4cd56232
--- /dev/null
+++ b/doc/forum/cabal_install_problem/comment_1_2201805f80683575c4675e3268dfabc0._comment
@@ -0,0 +1,8 @@
+[[!comment format=mdwn
+ username="http://joeyh.name/"
+ ip="2001:4830:1600:187::2"
+ subject="comment 1"
+ date="2014-06-09T16:34:29Z"
+ content="""
+wrapper should be named propellor. This is fixed in git.
+"""]]
diff --git a/doc/forum/remote.origin_not_copied_to_managed_host__63__.mdwn b/doc/forum/remote.origin_not_copied_to_managed_host__63__.mdwn
new file mode 100644
index 00000000..6efdbae8
--- /dev/null
+++ b/doc/forum/remote.origin_not_copied_to_managed_host__63__.mdwn
@@ -0,0 +1,95 @@
+The only remote which seems to be copied to /root/.propellor/.git/config is upstream... My /home/user/.propellor/.git/config contains a "origin" remote, but this part (as well as the master branch part) of my git config is not copied to the /root/.propellor/.git/config of a host I'm trying to manage...
+
+propellor fails with the following message:
+
+ user@laptop:~$ PROPELLOR_DEBUG=1 propellor --spin laptop.localdomain
+ if ! cabal build; then cabal configure; cabal build; fi
+ Building propellor-0.5.0...
+ Preprocessing library propellor-0.5.0...
+ In-place registering propellor-0.5.0...
+ Preprocessing executable 'propellor' for propellor-0.5.0...
+ Preprocessing executable 'config' for propellor-0.5.0...
+ ln -sf dist/build/config/config propellor
+
+
+ [2014-04-21 18:07:45 CEST] command line: Spin "laptop.localdomain"
+ [2014-04-21 18:07:45 CEST] call: make ["build"]
+ if ! cabal build; then cabal configure; cabal build; fi
+ Building propellor-0.5.0...
+ Preprocessing library propellor-0.5.0...
+ In-place registering propellor-0.5.0...
+ Preprocessing executable 'propellor' for propellor-0.5.0...
+ Preprocessing executable 'config' for propellor-0.5.0...
+ ln -sf dist/build/config/config propellor
+ Propellor build ... done
+ [2014-04-21 18:07:48 CEST] read: git ["config","remote.deploy.url"]
+ [2014-04-21 18:07:48 CEST] read: git ["config","remote.origin.url"]
+ [2014-04-21 18:07:48 CEST] call: git ["commit","--gpg-sign","--allow-empty","-a","-m","propellor spin"]
+
+ You need a passphrase to unlock the secret key for
+ ...
+
+ [master ee393d6] propellor spin
+ [2014-04-21 18:07:48 CEST] call: git ["push"]
+ Counting objects: 1, done.
+ Writing objects: 100% (1/1), 852 bytes | 0 bytes/s, done.
+ Total 1 (delta 0), reused 0 (delta 0)
+ To git@remote-origin:propellor.git
+ 16a1f8b..ee393d6 master -> master
+ [2014-04-21 18:08:21 CEST] chat: ssh ["-o","ControlPath=/home/user/.ssh/propellor/laptop.localdomain.sock","-o","ControlMaster=auto","-o","ControlPersist=yes","root@laptop.localdomain","sh -c 'if [ ! -d /usr/local/propellor ] ; then apt-get --no-install-recommends --no-upgrade -y install git make && echo STATUSNeedGitClone ; else cd /usr/local/propellor && if ! test -x ./propellor; then make deps build; fi && ./propellor --boot laptop.localdomain ; fi'"]
+ Initialized empty Git repository in /root/.propellor/.git/
+ warning: no common commits
+ From https://github.com/joeyh/propellor
+ * [new branch] joeyconfig -> upstream/joeyconfig
+ * [new branch] master -> upstream/master
+ * [new branch] setup -> upstream/setup
+ * [new tag] 0.1 -> 0.1
+ * [new tag] 0.1.1 -> 0.1.1
+ * [new tag] 0.1.2 -> 0.1.2
+ * [new tag] 0.2.0 -> 0.2.0
+ * [new tag] 0.2.1 -> 0.2.1
+ * [new tag] 0.2.2 -> 0.2.2
+ * [new tag] 0.2.3 -> 0.2.3
+ * [new tag] 0.3.0 -> 0.3.0
+ * [new tag] 0.3.1 -> 0.3.1
+ * [new tag] 0.4.0 -> 0.4.0
+ * [new tag] 0.5.0 -> 0.5.0
+ * [new tag] debian/0.3.1 -> debian/0.3.1
+ * [new tag] debian/0.4.0 -> debian/0.4.0
+ * [new tag] debian/0.5.0 -> debian/0.5.0
+ Merge made by the 'ours' strategy.
+ if [ "cabal" = ./Setup ]; then ghc --make Setup; fi
+ cabal configure
+ Warning: The package list for 'hackage.haskell.org' does not exist. Run 'cabal
+ update' to download it.
+ Resolving dependencies...
+ Configuring propellor-0.5.0...
+ if ! cabal build; then cabal configure; cabal build; fi
+ Building propellor-0.5.0...
+ Preprocessing executable 'propellor' for propellor-0.5.0...
+ [ 1 of 14] Compiling Utility.Env ( Utility/Env.hs, dist/build/propellor/propellor-tmp/Utility/Env.o )
+ ...
+ [14 of 14] Compiling Main ( propellor.hs, dist/build/propellor/propellor-tmp/Main.o )
+ Linking dist/build/propellor/propellor ...
+ Preprocessing library propellor-0.5.0...
+ [ 1 of 58] Compiling Utility.QuickCheck ( Utility/QuickCheck.hs, dist/build/Utility/QuickCheck.o )
+ ...
+ [58 of 58] Compiling Propellor.CmdLine ( Propellor/CmdLine.hs, dist/build/Propellor/CmdLine.o )
+ In-place registering propellor-0.5.0...
+ Preprocessing executable 'config' for propellor-0.5.0...
+ [ 1 of 44] Compiling Utility.QuickCheck ( Utility/QuickCheck.hs, dist/build/config/config-tmp/Utility/QuickCheck.o )
+ ...
+ [44 of 44] Compiling Main ( config.hs, dist/build/config/config-tmp/Main.o )
+ Linking dist/build/config/config ...
+ ln -sf dist/build/config/config propellor
+ fatal: No remote repository specified. Please, specify either a URL or a
+ remote name from which new revisions should be fetched.
+ Git fetch ... failed
+ merge: origin/master - not something we can merge
+ propellor: /usr/local/propellor/.lock: openFd: does not exist (No such file or directory)
+ Setting up your propellor repo in /root/.propellor
+
+
+
+ ** error: protocol error (perhaps the remote propellor failed to run?)
+ propellor: user error (ssh ["-o","ControlPath=/home/user/.ssh/propellor/laptop.localdomain.sock","-o","ControlMaster=auto","-o","ControlPersist=yes","root@laptop.localdomain","sh -c 'if [ ! -d /usr/local/propellor ] ; then apt-get --no-install-recommends --no-upgrade -y install git make && echo STATUSNeedGitClone ; else cd /usr/local/propellor && if ! test -x ./propellor; then make deps build; fi && ./propellor --boot laptop.localdomain ; fi'"] exited 1)
diff --git a/doc/forum/remote.origin_not_copied_to_managed_host__63__/comment_1_e9e7e5e728ec23fd6025203a1aa0596b._comment b/doc/forum/remote.origin_not_copied_to_managed_host__63__/comment_1_e9e7e5e728ec23fd6025203a1aa0596b._comment
new file mode 100644
index 00000000..df403694
--- /dev/null
+++ b/doc/forum/remote.origin_not_copied_to_managed_host__63__/comment_1_e9e7e5e728ec23fd6025203a1aa0596b._comment
@@ -0,0 +1,25 @@
+[[!comment format=mdwn
+ username="http://joeyh.name/"
+ ip="209.250.56.114"
+ subject="comment 1"
+ date="2014-04-24T17:47:41Z"
+ content="""
+I tried using propellor from scratch on a fresh system, and I cannot reproduce this problem.
+
+/root/.propellor should only be created if /usr/bin/propellor is run as root. A normal use of propellor does not run /usr/bin/propellor as root (and your commands don't show you doing that).
+
+This is the instant where something unexplained happens:
+
+<pre>
+[2014-04-21 18:08:21 CEST] chat: ssh [\"-o\",\"ControlPath=/home/user/.ssh/propellor/laptop.localdomain.sock\",\"-o\",\"ControlMaster=auto\",\"-o\",\"ControlPersist=yes\",\"root@laptop.localdomain\",\"sh -c 'if [ ! -d /usr/local/propellor ] ; then apt-get --no-install-recommends --no-upgrade -y install git make && echo STATUSNeedGitClone ; else cd /usr/local/propellor && if ! test -x ./propellor; then make deps build; fi && ./propellor --boot laptop.localdomain ; fi'\"]
+Initialized empty Git repository in /root/.propellor/.git/
+</pre>
+
+It ssh's in, and it apparently runs propellor. But apparently without running \"make deps build\" first, which is weird. (And as we see later, without /usr/local/propellor existing at all, which is weirder!)
+The ./propellor (in /usr/local/propellor) that it's supposed to run should be a symlink to dist/build/config/config, which is the program built from config.hs. It's not the same program as /usr/bin/propellor, which is a wrapper build from propellor.hs. However, it appears that in your case, when it sshed in, it ran /usr/bin/propellor, or something that behaves a lot like it..
+
+My guesses:
+
+1. Perhaps you modified the source tree in some strange way. (Doubtful)
+2. Perhaps you have some other configuration, eg a ssh authorized keys file for root with a forced command that runs /usr/bin/propellor. This will defeat propellor's own bootstrap code, and would exactly explain what you pasted.
+"""]]
diff --git a/doc/haskell_newbie.mdwn b/doc/haskell_newbie.mdwn
index bda317aa..f1a81e40 100644
--- a/doc/haskell_newbie.mdwn
+++ b/doc/haskell_newbie.mdwn
@@ -23,7 +23,7 @@ import qualified Propellor.Property.User as User
import qualified Propellor.Property.Cron as Cron
"""]]
-This loads up Propellor's modules. You'll almost certianly want these;
+This loads up Propellor's modules. You'll almost certainly want these;
many more can be found in the [API documentation](http://hackage.haskell.org/package/propellor).
[[!format haskell """
diff --git a/doc/news/version_0.6.0.mdwn b/doc/news/version_0.6.0.mdwn
new file mode 100644
index 00000000..5179f1cb
--- /dev/null
+++ b/doc/news/version_0.6.0.mdwn
@@ -0,0 +1,11 @@
+propellor 0.6.0 released with [[!toggle text="these changes"]]
+[[!toggleable text="""
+ * Docker containers now propagate DNS attributes out to the host they're
+ docked in. So if a docker container sets a DNS alias, every container
+ it's docked in will automatically be added to a DNS round-robin,
+ when propellor is used to manage DNS for the domain.
+ * Apt.stdSourcesList no longer needs a suite to be specified.
+ * Added --dump to dump out a field of a host's privdata. Useful for editing
+ it.
+ * Propellor's output now includes the hostname being provisioned, or
+ when provisioning a docker container, the container name."""]] \ No newline at end of file
diff --git a/doc/news/version_0.7.0.mdwn b/doc/news/version_0.7.0.mdwn
new file mode 100644
index 00000000..6ce0b517
--- /dev/null
+++ b/doc/news/version_0.7.0.mdwn
@@ -0,0 +1,9 @@
+propellor 0.7.0 released with [[!toggle text="these changes"]]
+[[!toggleable text="""
+ * combineProperties no longer stops when a property fails; now it continues
+ trying to satisfy all properties on the list before propigating the
+ failure.
+ * Attr is renamed to Info.
+ * Renamed wrapper to propellor to make cabal installation of propellor work.
+ * When git gpg signature of a fetched git branch cannot be verified,
+ propellor will now continue running, but without merging in that branch."""]] \ No newline at end of file
diff --git a/doc/news/version_0.8.0.mdwn b/doc/news/version_0.8.0.mdwn
new file mode 100644
index 00000000..69dbb927
--- /dev/null
+++ b/doc/news/version_0.8.0.mdwn
@@ -0,0 +1,20 @@
+propellor 0.8.0 released with [[!toggle text="these changes"]]
+[[!toggleable text="""
+ * Completely reworked privdata storage. There is now a single file,
+ and each host is sent only the privdata that its Properties actually use.
+ To transition existing privdata, run propellor against a host and
+ watch out for the red failure messages, and run the suggested commands
+ to store the privdata using the new storage scheme. You may find
+ it useful to run the old version of propellor to extract data from the old
+ privdata files during this migration.
+ Several properties that use privdata now require a context to be
+ specified. If in doubt, you can use anyContext, or
+ Context "hostname.example.com"
+ * Add --edit to edit a privdata value in $EDITOR.
+ * Add --list-fields to list all currently set privdata fields, along with
+ the hosts that use them.
+ * Fix randomHostKeys property to run openssh-server's postinst in a
+ non-failing way.
+ * Hostname.sane now cleans up the 127.0.0.1 localhost line in /etc/hosts,
+ to avoid eg, apache complaining "Could not reliably determine the
+ server's fully qualified domain name"."""]] \ No newline at end of file
diff --git a/doc/news/version_0.8.1.mdwn b/doc/news/version_0.8.1.mdwn
new file mode 100644
index 00000000..963b4a80
--- /dev/null
+++ b/doc/news/version_0.8.1.mdwn
@@ -0,0 +1,7 @@
+propellor 0.8.1 released with [[!toggle text="these changes"]]
+[[!toggleable text="""
+ * Run apt-get update in initial bootstrap.
+ * --list-fields now includes a table of fields that are not currently set,
+ but would be used if they got set.
+ * Remove .gitignore from cabal file list, to avoid build failure on Debian.
+ Closes: #[754334](http://bugs.debian.org/754334)"""]] \ No newline at end of file
diff --git a/doc/news/version_0.8.2.mdwn b/doc/news/version_0.8.2.mdwn
new file mode 100644
index 00000000..d1e9da18
--- /dev/null
+++ b/doc/news/version_0.8.2.mdwn
@@ -0,0 +1,10 @@
+propellor 0.8.2 released with [[!toggle text="these changes"]]
+[[!toggleable text="""
+ * Fix bug in File.containsLines that caused lines that were already in the
+ file to sometimes be appended to the end.
+ * Hostname.sane also configures /etc/mailname.
+ * Fixed Postfix.satellite to really configure relayhost = smtp.domain.
+ * Avoid reconfiguring postfix unncessarily when it already has a relayhost.
+ * Deal with apache 2.4's change in the name of site-available config files.
+ * Hostname aliases can now be used in several places, including --spin
+ and Ssh.knownHost."""]] \ No newline at end of file
diff --git a/doc/todo/docker_todo_list/comment_1_3801d48190c029a8591ab188427b31b6._comment b/doc/todo/docker_todo_list/comment_1_3801d48190c029a8591ab188427b31b6._comment
new file mode 100644
index 00000000..ff217423
--- /dev/null
+++ b/doc/todo/docker_todo_list/comment_1_3801d48190c029a8591ab188427b31b6._comment
@@ -0,0 +1,10 @@
+[[!comment format=mdwn
+ username="gueux"
+ ip="109.190.19.251"
+ subject="CMD"
+ date="2014-04-21T13:49:08Z"
+ content="""
+It would be great to be able to set the CMD of a docker container.
+
+http://docs.docker.io/reference/builder/#cmd
+"""]]
diff --git a/doc/todo/docker_todo_list/comment_2_441591f9aa106e8d6d1fa7fd6be0fc6f._comment b/doc/todo/docker_todo_list/comment_2_441591f9aa106e8d6d1fa7fd6be0fc6f._comment
new file mode 100644
index 00000000..24ec5da3
--- /dev/null
+++ b/doc/todo/docker_todo_list/comment_2_441591f9aa106e8d6d1fa7fd6be0fc6f._comment
@@ -0,0 +1,10 @@
+[[!comment format=mdwn
+ username="http://joeyh.name/"
+ ip="209.250.56.114"
+ subject="comment 2"
+ date="2014-04-24T23:31:09Z"
+ content="""
+propellor does not build docker containers, I think that's the point where a CMD is set.
+
+It would probably make sense to have a mode where docker run is not passed any explicit command to run, which would let the predefined CMD be used. Although this would not let propellor run inside the container, so it could not perform any provisioning of it. In this mode, propellor would only be able to ensure that a container was installed and start it running with its default configuration.
+"""]]
diff --git a/doc/todo/ssh__95__user_+_sudo.mdwn b/doc/todo/ssh__95__user_+_sudo.mdwn
new file mode 100644
index 00000000..2269cecd
--- /dev/null
+++ b/doc/todo/ssh__95__user_+_sudo.mdwn
@@ -0,0 +1 @@
+It would be great to be able to ssh to a user different from root, and then to use sudo to run commands.
diff --git a/doc/todo/ssh__95__user_+_sudo/comment_1_3bc008e42587a3313f81ee740d7d80f0._comment b/doc/todo/ssh__95__user_+_sudo/comment_1_3bc008e42587a3313f81ee740d7d80f0._comment
new file mode 100644
index 00000000..e0dc1d7f
--- /dev/null
+++ b/doc/todo/ssh__95__user_+_sudo/comment_1_3bc008e42587a3313f81ee740d7d80f0._comment
@@ -0,0 +1,10 @@
+[[!comment format=mdwn
+ username="http://joeyh.name/"
+ ip="209.250.56.214"
+ subject="comment 1"
+ date="2014-04-21T13:31:13Z"
+ content="""
+Running propellor that way would probably need ssh to allocate a tty in order for sudo's password prompt to work. And it adds complexity. Does it add security? I don't think so, PermitRootLogin=without-password or PasswordAuthentication=no is not going to let anyone brute force the root account.
+
+PermitRootLogin=forced-commands-only might be worth making easy to set up, so the only command that can be run with some special propellor-specific ssh key is propellor.
+"""]]
diff --git a/doc/todo/ssh__95__user_+_sudo/comment_2_35722c7d6f6c3e2315fbf72878066c01._comment b/doc/todo/ssh__95__user_+_sudo/comment_2_35722c7d6f6c3e2315fbf72878066c01._comment
new file mode 100644
index 00000000..8dc6299b
--- /dev/null
+++ b/doc/todo/ssh__95__user_+_sudo/comment_2_35722c7d6f6c3e2315fbf72878066c01._comment
@@ -0,0 +1,8 @@
+[[!comment format=mdwn
+ username="gueux"
+ ip="109.190.19.251"
+ subject="comment 2"
+ date="2014-04-21T13:54:39Z"
+ content="""
+I didn't knew \"PermitRootLogin=forced-commands-only\", it seems great!
+"""]]
diff --git a/doc/todo/ssh__95__user_+_sudo/comment_3_d1e4040677b39342be00359210c02156._comment b/doc/todo/ssh__95__user_+_sudo/comment_3_d1e4040677b39342be00359210c02156._comment
new file mode 100644
index 00000000..506b543a
--- /dev/null
+++ b/doc/todo/ssh__95__user_+_sudo/comment_3_d1e4040677b39342be00359210c02156._comment
@@ -0,0 +1,10 @@
+[[!comment format=mdwn
+ username="http://joeyh.name/"
+ ip="209.250.56.114"
+ subject="comment 3"
+ date="2014-04-24T22:17:31Z"
+ content="""
+Except that it led you to run into the failure mode described at [[forum/remote.origin_not_copied_to_managed_host?]]
+
+So now we have a concrete change to make: Make /usr/bin/propellor work if it's forced as the only command that can be run. Including making propellor's host bootstrapping work via it.
+"""]]
diff --git a/privdata/keyring.gpg b/privdata/keyring.gpg
deleted file mode 100644
index 01dd24e7..00000000
--- a/privdata/keyring.gpg
+++ /dev/null
Binary files differ
diff --git a/privdata/privdata.gpg b/privdata/privdata.gpg
deleted file mode 100644
index f8c08d86..00000000
--- a/privdata/privdata.gpg
+++ /dev/null
@@ -1,749 +0,0 @@
------BEGIN PGP MESSAGE-----
-Version: GnuPG v1
-
-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
-o6jRkc4=
-=fEUC
------END PGP MESSAGE-----