Commit Graph

877 Commits

Author SHA1 Message Date
Joey Hess 8c1006c654
propellor spin 2015-01-04 13:56:55 -04:00
Joey Hess ce7f14b9b3
propellor spin 2015-01-04 13:52:59 -04:00
Joey Hess baf1dcc822 accidentially merged 2015-01-04 13:47:03 -04:00
Joey Hess bf34d6f423 propellor spin 2015-01-04 13:42:01 -04:00
Joey Hess e67901a77b use separate directory for dnssec files 2015-01-04 13:22:23 -04:00
Joey Hess d6c8ddb955 resign zone if keys change 2015-01-04 13:13:06 -04:00
Joey Hess 01d8ab0cfd Fix build with process 1.2.1.0. 2015-01-04 13:08:19 -04:00
Joey Hess 8172f243d7 DNS WIP 2015-01-04 12:44:05 -04:00
Joey Hess a1f61e09b8 stub signedPrimary 2015-01-03 19:10:28 -04:00
Joey Hess 4dd6596919 add DnsSec module 2015-01-03 19:10:17 -04:00
Joey Hess 05004730c7 add DnsSec privdata types 2015-01-03 19:08:32 -04:00
Joey Hess 932cb7c5d6 add hasPrivContentFrom 2015-01-03 19:07:59 -04:00
Joey Hess 7cbd367e1c Update intermediary propellor in --spin --via 2015-01-01 17:13:03 -04:00
Joey Hess 31739ac1a6
propellor spin 2015-01-01 16:19:32 -04:00
Joey Hess f89aeaa0e8
propellor spin 2015-01-01 16:18:36 -04:00
Joey Hess d5cfadd899 Detect #774376 and refuse to use docker if the system is so broken that docker exec doesn't enter a chroot. 2015-01-01 15:41:31 -04:00
Joey Hess 858ded043b more cruft from new image 2015-01-01 15:15:44 -04:00
Joey Hess b50f33395e update docs 2015-01-01 13:57:13 -04:00
Joey Hess 6fb45673d0
propellor spin 2015-01-01 13:42:34 -04:00
Joey Hess f3f60a74c4
propellor spin 2015-01-01 13:36:51 -04:00
Joey Hess b059ae4c77
propellor spin 2015-01-01 13:34:02 -04:00
Joey Hess 72b7b06525
propellor spin 2015-01-01 13:31:30 -04:00
Joey Hess 0b4a95f6c2 --spin checks if the DNS matches any configured IP address property of the host, and if not, sshes to the host by IP address. 2015-01-01 13:28:17 -04:00
Joey Hess a9163ba3ab Merge branch 'joeyconfig' 2014-12-26 15:32:00 -04:00
Joey Hess c7aac0b35e remove screen workaround
Turns out elephant's oldusenet shellbox docker instance somehow had a
non-setguid screen binary. Dunno how; reinstall fixed it.
2014-12-23 15:45:35 -04:00
Joey Hess 35ccb0fac6
fix screen dir mode 2014-12-23 15:29:23 -04:00
Joey Hess a48f5916e1
propellor spin 2014-12-23 14:22:50 -04:00
Joey Hess b8be8c244e
propellor spin 2014-12-22 17:16:52 -04:00
Joey Hess 26a4c164e4 gitriddance 2014-12-22 15:05:05 -04:00
Joey Hess 6d56dbd35a Merge branch 'joeyconfig' 2014-12-21 21:40:26 -04:00
Joey Hess dc36a98fc1 Revert ensureProperty warning message, too many false positives in places where Info is correctly propigated. Better approach needed. 2014-12-21 21:33:03 -04:00
Joey Hess d194765e10
propellor spin 2014-12-21 21:14:11 -04:00
Joey Hess 8cc691dc86 Merge branch 'joeyconfig'
Conflicts:
	privdata.joey/privdata.gpg
2014-12-17 16:31:09 -04:00
Joey Hess 23399416f1 broke up big function to describe PrivDataField 2014-12-14 16:14:05 -04:00
Joey Hess fbf9cc6f2b Merge branch 'joeyconfig' 2014-12-14 15:24:21 -04:00
Joey Hess 71723ca09f support for crypted passwords in privdata
* Added CryptPassword to PrivDataField, for password hashes as produced
  by crypt(3).
* User.hasPassword and User.hasSomePassword will now use either
  a CryptPassword or a Password from privdata, depending on which is set.
2014-12-14 15:24:10 -04:00
Joey Hess 9d06d2f835 Merge branch 'joeyconfig' 2014-12-09 14:22:42 -04:00
Joey Hess 2e2438ae66 improve haddock formating of filenames 2014-12-09 14:22:37 -04:00
Joey Hess 4f309c5cd6 Merge branch 'joeyconfig' 2014-12-09 00:34:57 -04:00
Joey Hess b22201e36b Fix Apache.siteEnabled to update the config file and reload apache when configuration has changed. 2014-12-09 00:34:24 -04:00
Joey Hess f8943c2036 fix a case where fileProperty reported a change despite not making one
The problem occurred because two lists of lines of the file can be
different, while representing the same file content. For example:
["foo", "bar"]
["foo\nbar"]
2014-12-09 00:30:04 -04:00
Joey Hess 5752080929 Merge branch 'joeyconfig' 2014-12-09 00:05:34 -04:00
Joey Hess 834a05e25a refactor 2014-12-08 01:22:29 -04:00
Joey Hess 06975ec5e1 another place to use toResult 2014-12-08 01:12:55 -04:00
Joey Hess 9841594c85 Merge branch 'joeyconfig' 2014-12-08 01:07:44 -04:00
Joey Hess 3c7219874b finished accidentially committed bit 2014-12-08 01:07:31 -04:00
Joey Hess 4e9b01a8a7 propellor spin
(cherry picked from commit 1d02d589c7)
2014-12-08 01:07:25 -04:00
Joey Hess 1d02d589c7 propellor spin 2014-12-08 01:06:19 -04:00
Joey Hess 21d87341ca Merge branch 'joeyconfig' 2014-12-07 18:49:43 -04:00
Joey Hess 42a0c83248 Display a warning when ensureProperty is used on a property which has Info and is so prevented from propigating it.
Would much rather a type-based fixed, but this is all I have for now.
2014-12-07 17:09:55 -04:00
Joey Hess 5a932c382d docuemnt info propigtion problem 2014-12-07 16:37:02 -04:00
Joey Hess abee353d9d Merge branch 'joeyconfig' 2014-12-07 15:24:21 -04:00
Joey Hess 2fe0b28982 more uses for hostContext 2014-12-07 15:21:55 -04:00
Joey Hess 089b7131a6 caution 2014-12-07 15:13:28 -04:00
Joey Hess faf4c21ca1 Merge branch 'joeyconfig' 2014-12-07 15:07:03 -04:00
Joey Hess 9ca332e481 Fixed privdata introspection for User.hasPassword and User.hasSomePassword
This is not a complete fix for the problem that Info doen't propigate
from the called property when code does something like:

	do
		hostname <- asks hostName
		ensureProperty $ foo hostname

Instead, I just eliminated the need to implement hasPassword that way,
by making the PrivData Info use a HostContext which automatically
gets the right hostname passed to it.

All other uses of withPrivData don't have the problem. It's still possible
for the user to run into the problem if they write something like the
above, where foo is a property that uses privdata. However, all properties
that take a Context now also accept a HostContext, so it's at least less
likely the user needs to write that.
2014-12-07 15:03:06 -04:00
Joey Hess 8c12047b6b simplify using makeChange 2014-12-07 14:49:12 -04:00
Joey Hess 6a906c8a4c typo 2014-12-07 12:50:40 -04:00
Joey Hess 322ae878bb Merge branch 'joeyconfig'
Conflicts:
	privdata.joey/privdata.gpg
2014-12-07 12:04:58 -04:00
Joey Hess 52a83a8911 enable shadow passwords
I have seen weird almost boot failures when they're disabled, including a
segfault.
2014-12-06 15:39:02 -04:00
Joey Hess 7983046cd5 update 2014-12-06 15:28:30 -04:00
Joey Hess bdbf787e2c keep and use Reboot.now 2014-12-06 13:32:53 -04:00
Joey Hess 29442f222e Reboot.atEnd 2014-12-06 13:21:19 -04:00
Joey Hess 62697c7b7f reboot at end of propellor run when clean os has been installed 2014-12-06 06:41:21 -04:00
Joey Hess fcff7762e3 endAction can be used to register an action to run once propellor has successfully run on a host. 2014-12-06 06:34:32 -04:00
Joey Hess c97dd0d708 spelling typo 2014-12-05 19:33:34 -04:00
Joey Hess a6e756791e Merge branch 'joeyconfig' 2014-12-05 17:54:45 -04:00
Joey Hess a7e71faaaa
forgot to add new Mount lib 2014-12-05 17:54:29 -04:00
Joey Hess 9805f132ac Merge branch 'joeyconfig' 2014-12-05 17:44:14 -04:00
Joey Hess 5ae6a302df some comments 2014-12-05 17:44:09 -04:00
Joey Hess 00ab240164 fix install of debootstrap from source 2014-12-05 16:48:52 -04:00
Joey Hess 527975dffe hasSomePassword and hasPassword now check to make sure shadow passwords are enabled. 2014-12-05 16:33:23 -04:00
Joey Hess dbc76b1e52 Merge branch 'joeyconfig' 2014-12-05 16:23:07 -04:00
Joey Hess bf9284d05c I have now successfully used propellor to convert a Fedora system into a bootable and fully working Debian system 2014-12-05 16:22:11 -04:00
Joey Hess 97e9433f1b rollback if renameing fails
This avoids leaving the system in a broken state where some directories
have been renamed away any others not.

Future work: If the rename list contains (foo, bar) and (newfoo,foo),
reorder the list to gather those two actions together to minimize
the amount of time that foo is missing. In case of power loss or something.
2014-12-05 12:50:01 -04:00
Joey Hess 4be893f0bf more improvements to takeover 2014-12-04 17:34:47 -04:00
Joey Hess f1fd75c9ec more work on OS takeover 2014-12-04 17:11:15 -04:00
Joey Hess f78c2f16d1
update name of libgnutls dev package 2014-12-03 19:05:36 -04:00
Joey Hess a380ea8390 Merge branch 'joeyconfig' 2014-12-03 19:05:25 -04:00
Joey Hess 16cd9d8235 update name of libgnutls dev package 2014-12-03 19:05:18 -04:00
Joey Hess 8b70031a78 Merge branch 'joeyconfig' 2014-12-01 11:59:38 -04:00
Joey Hess c9d09afafa
Run apt-cache policy with LANG=C. 2014-12-01 11:59:27 -04:00
Joey Hess d84e7a2848 Merge branch 'joeyconfig' 2014-12-01 11:53:54 -04:00
Joey Hess 4c2eac2d3c
remove -i, seems not needed and may be causing problem 2014-11-27 19:10:39 -04:00
Joey Hess 9500e9bb81
added more debugging 2014-11-27 17:55:56 -04:00
Joey Hess 7ddb862176
propellor spin 2014-11-27 17:51:41 -04:00
Joey Hess 3d42f1fa19 Merge branch 'joeyconfig' 2014-11-26 10:51:41 -04:00
Joey Hess 5a104675e4
avoid crash on no propellor.debug setting 2014-11-26 10:51:29 -04:00
Joey Hess e07dc9b1d3
propellor.debug can be set in the git config to enable more persistent debugging output. 2014-11-25 18:55:12 -04:00
Joey Hess 1d8e08f2ac Merge branch 'joeyconfig' 2014-11-25 15:40:00 -04:00
Félix Sipma 7d0f79a0c7 Group: preferred style
Signed-off-by: Félix Sipma <felix.sipma@no-log.org>
2014-11-25 13:12:56 -04:00
Joey Hess 1f40af51e1 Merge branch 'joeyconfig' 2014-11-25 11:46:36 -04:00
Joey Hess 40374c10de
cron.runPropellor now runs propellor, rather than using its Makefile. This is more robust.
Particularly, the Makefile would try to build propellor if there were
updates, but if this build failed because a bad commit was pushed, it would
abort w/o pulling any new fixed commits.

Anyway, it's better to move away from using the makefile when possible as
it's just for bootstrapping, and also I would like to make "make" not
default to running propellor as that can be confusing behavior.

(I can't change that yet; needed for upgrades. Should be fine to change
after several more releases, or maybe a year..)
2014-11-25 11:33:45 -04:00
Joey Hess 934171e2ea rename 2014-11-24 00:52:46 -04:00
Joey Hess 24bce96210 Merge branch 'joeyconfig' 2014-11-24 00:52:46 -04:00
Joey Hess 8d1814a884 move property to ssh module 2014-11-24 00:51:36 -04:00
Joey Hess 9ac4e94625 oops 2014-11-24 00:50:48 -04:00
Joey Hess ccdbf0026d more work; builds now 2014-11-24 00:40:53 -04:00
Joey Hess f85026da7f better property names 2014-11-23 19:49:53 -04:00
Joey Hess bfc24ce1d7 Merge branch 'joeyconfig' 2014-11-23 18:51:36 -04:00
Joey Hess 3ef6e352c3 one more merge test
--allow-empty added to commit, because the spins could all be empty
2014-11-23 18:51:07 -04:00
Joey Hess f14749c1cc Merge branch 'joeyconfig' 2014-11-23 18:49:33 -04:00
Joey Hess 9d975e9ee4 add --merge 2014-11-23 18:48:52 -04:00
Joey Hess 95296a961c Merge branch 'joeyconfig' 2014-11-23 17:13:02 -04:00
Joey Hess baba668033 hasSomePassword and hasPassword now default to using the name of the host as the Context for the password. To specify a different context, use hasSomePassword' and hasPassword' (API change) 2014-11-23 16:40:21 -04:00
Joey Hess d8624e2e5d WIP 2014-11-23 16:12:39 -04:00
Joey Hess 45d943023d Merge branch 'joeyconfig' 2014-11-23 15:23:54 -04:00
Joey Hess 0ea0f7f4de --spin can be passed multiple hosts, and it will provision each host in turn.
Note that if it fails to spin a host, it will stop. I think this is better
than continuing to the next, because there might be a reason to spin hosts
in some specific order (ie, update dns first and then use it).
2014-11-23 15:17:57 -04:00
Joey Hess ac41f8b07b Merge branch 'joeyconfig' 2014-11-23 14:41:09 -04:00
Joey Hess 3c952a0de9 comment 2014-11-23 14:40:28 -04:00
Félix Sipma 226981cda4 Git: bareRepo
Signed-off-by: Félix Sipma <felix.sipma@no-log.org>
2014-11-23 14:39:01 -04:00
Félix Sipma 6aa21366d5 Group properties
Signed-off-by: Félix Sipma <felix.sipma@no-log.org>
2014-11-23 14:37:49 -04:00
Joey Hess 69eace8e9a preferred style 2014-11-23 14:37:37 -04:00
Félix Sipma f4e06ae778 User: hasGroup
Signed-off-by: Félix Sipma <felix.sipma@no-log.org>
2014-11-23 14:37:10 -04:00
Joey Hess 5fefb161c3
propellor spin 2014-11-22 22:37:25 -04:00
Joey Hess ca09087caf
propellor spin 2014-11-22 22:24:09 -04:00
Joey Hess 81e52f1e14 update 2014-11-22 22:13:00 -04:00
Joey Hess 96ecbaad25 pute full path to bin/propellor inside shim 2014-11-22 22:10:53 -04:00
Joey Hess 7c5188b202
propellor spin 2014-11-22 22:01:19 -04:00
Joey Hess 5360e466d3 reorg 2014-11-22 21:50:49 -04:00
Joey Hess cc8babccc8
propellor spin 2014-11-22 21:37:39 -04:00
Joey Hess 1d5d911aa0
propellor spin 2014-11-22 21:30:50 -04:00
Joey Hess 50b6e37790
propellor spin 2014-11-22 21:10:35 -04:00
Joey Hess 1338f4effd don't remove old localdir before tarball unpack
it may get messy if old stuff is left, but there is state in there
2014-11-22 20:42:31 -04:00
Joey Hess 58b5de7802 Revert "avoid removing whole localdir every time the precompiled tarball is uploaded"
This reverts commit 40bec41f56.
2014-11-22 20:42:20 -04:00
Joey Hess 40bec41f56 avoid removing whole localdir every time the precompiled tarball is uploaded
There's some state in there..

Moved it to a shim subdir, which can be deleted and the tarball unpacked to
recreate it.
2014-11-22 20:35:46 -04:00
Joey Hess 868d7cdcb5 avoid loop after uploading precompiled tarball
The localdir still has no .git repo, so it looped.
2014-11-22 20:29:27 -04:00
Joey Hess 239581c759 reorg 2014-11-22 20:17:46 -04:00
Joey Hess eb946f109b look for /usr/local/propellor/.git to know if it's fully deployed
When propellor is deployed by uploading the binary, there's no git repo, so
each spin needs to re-upload it to get any config changes. This should be
rare since this is only intended to be used when taking over a host and
getting it properly set up from source, but it still needs to be supported.
2014-11-22 20:02:44 -04:00
Joey Hess 9a8fcf80bb Hostname parameters not containing dots are looked up in the DNS to find the full hostname. 2014-11-22 19:58:35 -04:00
Joey Hess 95f78a0586
propellor spin 2014-11-22 17:22:11 -04:00
Joey Hess aa986724a2
propellor spin 2014-11-22 17:16:25 -04:00
Joey Hess a4edc404f0
propellor spin 2014-11-22 16:20:02 -04:00
Joey Hess 02e0fac683
propellor spin 2014-11-22 16:17:39 -04:00
Joey Hess cb94e7484e
propellor spin 2014-11-22 16:14:20 -04:00
Joey Hess 7ed9f70504
propellor spin 2014-11-22 16:12:53 -04:00
Joey Hess 6be56755ee
propellor spin 2014-11-22 16:10:46 -04:00
Joey Hess 392a0d3c1c
propellor spin 2014-11-22 16:06:44 -04:00
Joey Hess 6d13790afa
propellor spin 2014-11-22 15:58:09 -04:00
Joey Hess 40339a7fd8
propellor spin 2014-11-22 15:54:31 -04:00
Joey Hess 97931fe670
propellor spin 2014-11-22 15:50:14 -04:00
Joey Hess 395f311e1e
propellor spin 2014-11-22 15:48:17 -04:00
Joey Hess 615799dbcc
propellor spin 2014-11-22 15:19:20 -04:00
Joey Hess ef883cbbe8 still do peer-to-peer git push when there are no git remotes 2014-11-22 15:18:30 -04:00
Joey Hess 151aadd4e2
propellor spin 2014-11-22 15:11:24 -04:00
Joey Hess 0b9164e286
propellor spin 2014-11-22 15:01:08 -04:00
Joey Hess fdde4d91c7
propellor spin 2014-11-22 13:48:16 -04:00
Joey Hess 8e5551c925 avoid unncessary apt-get upgrade 2014-11-22 13:44:25 -04:00
Joey Hess fd3335e40e --via implemented 2014-11-22 12:57:07 -04:00
Joey Hess 7cbf4841de Merge branch 'joeyconfig' 2014-11-22 12:13:41 -04:00
Joey Hess e0c2d6a73a comment 2014-11-22 02:04:01 -04:00
Joey Hess 128e16472a compress tarball
11 mb -> 4 mb
2014-11-22 01:13:53 -04:00
Joey Hess c0662e6258 comment 2014-11-22 00:52:59 -04:00
Joey Hess cd6ca049b8 cleanup 2014-11-22 00:50:56 -04:00
Joey Hess ea058a5f9f remove test hack 2014-11-22 00:47:26 -04:00
Joey Hess 5d6e1a27a5
propellor spin 2014-11-22 00:46:07 -04:00
Joey Hess 0d65fdeb1d
propellor spin 2014-11-22 00:44:13 -04:00
Joey Hess 083b82d810
propellor spin 2014-11-22 00:36:16 -04:00
Joey Hess 1af398d33e
propellor spin 2014-11-22 00:35:14 -04:00
Joey Hess f1fdd6f678
propellor spin 2014-11-22 00:34:34 -04:00
Joey Hess e5135c1948
propellor spin 2014-11-22 00:32:04 -04:00
Joey Hess 99e0a5fea7
propellor spin 2014-11-22 00:27:35 -04:00
Joey Hess 7fd338f96f
propellor spin 2014-11-22 00:25:00 -04:00
Joey Hess f62d2fb183 propellor --spin can now deploy propellor to hosts that do not have git, ghc, or apt-get. This is accomplished by uploading a fairly portable precompiled tarball of propellor. 2014-11-22 00:22:19 -04:00
Joey Hess 6eb64d56e3 avoid setting title when not at console 2014-11-21 23:33:39 -04:00
Joey Hess 0a415a7b41
show last line if it cannot be parsed as a serialized Result 2014-11-21 23:30:40 -04:00
Joey Hess 403a82b8b7 email update 2014-11-21 22:26:39 -04:00
Joey Hess 91d58380b4 Merge branch 'joeyconfig' 2014-11-21 20:57:53 -04:00
Joey Hess 6cdd37d9ff
propellor spin 2014-11-21 20:53:38 -04:00
Joey Hess b373ffb761 allow disabling nspawn params, and default to bind mounting /etc/resolv.conf 2014-11-21 20:32:32 -04:00
Joey Hess 96c4890d89
propellor spin 2014-11-21 20:19:20 -04:00
Joey Hess 6be49197f6 allow configuring systemd-nspawn parameters 2014-11-21 20:09:33 -04:00
Joey Hess 6c92f1034f split out info types 2014-11-21 18:55:33 -04:00
Joey Hess e60b261dae Merge branch 'joeyconfig' 2014-11-21 17:29:47 -04:00
Joey Hess 6e8b28cd3c
propellor spin 2014-11-21 17:11:26 -04:00
Joey Hess 33e9b10c19 typo 2014-11-21 16:02:10 -04:00
Joey Hess f6afeb889f lock down chroot perm 2014-11-21 16:01:51 -04:00
Joey Hess 9e611d87cd add debootstrap parameters 2014-11-21 15:55:27 -04:00
Joey Hess fbce215f33 implement teardown 2014-11-21 14:37:19 -04:00
Joey Hess 36e89cd148 os info propigation
Also, lost the systemd-nspawn parameters; I'll do that some other way.
2014-11-21 14:31:13 -04:00
Joey Hess 7d4d3e4451 fix info propigation
Need to propigate the full container info, not the subset used in chroot
deployment.
2014-11-21 14:11:02 -04:00
Joey Hess 5e1a47552a
propellor spin 2014-11-21 13:57:58 -04:00
Joey Hess 09e79e6263
propellor spin 2014-11-21 13:55:42 -04:00
Joey Hess 3ba82a1c9c
propellor spin 2014-11-21 13:49:17 -04:00
Joey Hess ae6a5e815c
propellor spin 2014-11-21 12:35:07 -04:00
Joey Hess 976afedea3
propellor spin 2014-11-21 12:18:03 -04:00
Joey Hess 6a5a1bc761 systemd container may be mostly done (untested) 2014-11-21 12:17:03 -04:00
Joey Hess 45349c210d add missing support for reverting chroot
wow, that was suprisingly trivial!
2014-11-21 01:09:15 -04:00
Joey Hess a904476333 avoid console output when chaining into chroot and not at console 2014-11-21 01:05:51 -04:00
Joey Hess 1eaeddc2eb Merge branch 'joeyconfig' 2014-11-20 19:21:22 -04:00
Joey Hess f9cc7c149e incomplete systemd container support 2014-11-20 17:18:26 -04:00
Joey Hess 3669bd61d0
propellor spin 2014-11-20 16:07:57 -04:00
Joey Hess 2293b46bf7 fix chroot info propigation 2014-11-20 16:04:48 -04:00
Joey Hess a4f04fcb02
propellor spin 2014-11-20 15:15:28 -04:00
Joey Hess def4431132 remove unused Eq instance for Info
Its implementation was .. shady at best, as Host has no Eq
2014-11-20 14:16:26 -04:00
Joey Hess b8b746a7f1 starting work on a Chroot module
factored out info up-propigation code rom Docker
2014-11-20 14:15:26 -04:00
Joey Hess 02b8b2dec7 Merge branch 'joeyconfig' 2014-11-20 00:58:51 -04:00
Joey Hess 0d4dd37ee7 git commit may or may not be signed 2014-11-20 00:55:28 -04:00
Joey Hess 5e4c57652c fix docker container provisioning
Since the containers are no longer on the host list, they were not found
while provisioning, oops.

To fix, had to add to a host's info a map of the containers docked to it.

Unfortunately, that required Propellor.Types.Info be glommed into
Propellor.Types, since it needed to refer to Host.
2014-11-20 00:21:40 -04:00
Joey Hess d49d251897 separate docker container type
Docker containers are now a separate data type, cannot be included in the
main host list, and are instead passed to Docker.docked. (API change)
2014-11-19 23:11:34 -04:00
Joey Hess b7d78e679a sigel didn't work out
Unicode output failed in docker, due to no locales, and would be generally
shakey from haskell in all the environments propellor needs to run in.
2014-11-19 21:51:52 -04:00
Joey Hess 7c11d68018
propellor spin 2014-11-19 21:50:49 -04:00
Joey Hess d130e7e628
propellor spin 2014-11-19 21:48:48 -04:00
Joey Hess 3343b220a8
propellor spin 2014-11-19 21:21:20 -04:00
Joey Hess b136609cb5 unicode ahoy 2014-11-19 21:20:19 -04:00
Joey Hess 205d192559 fix param order 2014-11-19 21:16:18 -04:00
Joey Hess 4de7d4295c
propellor spin 2014-11-19 21:03:06 -04:00
Joey Hess 025c7c4b8e avoid double-build in --spin
It was fetching from the central repo, then building that, and then running
the client-to-client git update, and the building after that.

Remove the first build, as all that linking does take time.
2014-11-19 21:00:14 -04:00
Joey Hess 36d4938a19 remove excess verbosity from message 2014-11-19 20:48:36 -04:00
Joey Hess c186f9f4a8
propellor spin 2014-11-19 20:41:35 -04:00
Joey Hess caeed5492f allow debootstrapped to be reverted 2014-11-19 20:35:33 -04:00
Joey Hess 4a9bbd1391 Added support for using debootstrap from propellor.
Most of the hard part was making it be able to install debootstrap from
source, for use on non-debian-derived systems.
2014-11-19 19:30:56 -04:00
Joey Hess 08242e29f6 add fallback combinator 2014-11-19 18:57:58 -04:00
Joey Hess 803e1407a0 improve display 2014-11-19 01:40:56 -04:00
Joey Hess 1872ee1ffc
propellor spin 2014-11-19 01:32:09 -04:00
Joey Hess 4dddbb725d prevent multiple concurrent provisioning inside docker container
Lock a lock file while provisioning inside, otherwise propellor could be
running to init the container when the system has just booted, or the
container was just started from being stopped, and at the same time,
propellor run outside the container chains into it to provision.

Previously, simplesh prevented this in a different way.
2014-11-19 01:28:38 -04:00
Joey Hess c3962dcf7d
propellor spin 2014-11-19 01:04:11 -04:00
Joey Hess f0675727c2
propellor spin 2014-11-19 01:02:54 -04:00
Joey Hess 05086b3abe
propellor spin 2014-11-19 01:02:13 -04:00
Joey Hess 9a779939c4 merge from git-annex 2014-11-19 00:55:07 -04:00
Joey Hess f8b71c0ab4
propellor spin 2014-11-19 00:38:11 -04:00
Joey Hess 325fe4037b
propellor spin 2014-11-19 00:30:06 -04:00
Joey Hess 111e08e156 typo 2014-11-18 23:54:49 -04:00
Joey Hess 6dc7176e7a fix haddock filename display 2014-11-18 23:51:37 -04:00
Joey Hess 745f9e2685 clean up Propellr.CmdLine exports 2014-11-18 23:50:38 -04:00
Joey Hess dac6a87419 broke out Server module 2014-11-18 22:13:13 -04:00
Joey Hess aa3f31940b Merge branch 'joeyconfig' 2014-11-18 21:18:26 -04:00
Joey Hess b964b48363 tense 2014-11-18 20:41:41 -04:00
Joey Hess 6e327fa1a3
propellor spin 2014-11-18 20:38:11 -04:00
Joey Hess f9f60822ff
propellor spin 2014-11-18 20:33:25 -04:00
Joey Hess cdad4fbe15
propellor spin 2014-11-18 20:29:31 -04:00
Joey Hess 2ad3334b26
propellor spin 2014-11-18 20:28:16 -04:00
Joey Hess be1287d5f9 refactor 2014-11-18 20:19:50 -04:00
Joey Hess d4a4f0193e refactor 2014-11-18 20:19:10 -04:00
Joey Hess a0d5f41a6c reorger to match usage 2014-11-18 19:49:34 -04:00
Joey Hess ce859eaa9a fix long line 2014-11-18 19:48:02 -04:00
Joey Hess 8b6531ea43 reorg 2014-11-18 19:43:53 -04:00
Joey Hess c9fed0fdaa add --update, which will one day replace --boot
But no time soon, since that would break --spin to old versions of
propellor

Maybe after 1 year?
2014-11-18 19:36:30 -04:00
Joey Hess 65d3f085dc remove what should be dead code
While old propellor's can emit Ready, they won't if they've managed to
updateFirst. If updateFirst fails due to eg, inaccessiable central repo,
those old propellor's are not able to receive inline git pushes anyway,
so are not going to update no matter what, so no point in making --spin
work in that case.
2014-11-18 19:33:11 -04:00
Joey Hess 2bbb2aa6e2 remove --docker; use Continue
And --chain was already not used.
2014-11-18 18:52:00 -04:00
Joey Hess 34cbe738b7 don't need to parse --gitpush; just use a Continue 2014-11-18 18:47:44 -04:00
Joey Hess 80a20d6df3 cleanup 2014-11-18 18:46:10 -04:00
Joey Hess 66466a953d reorg 2014-11-18 18:44:24 -04:00
Joey Hess 47bcd4e130 factor out ssh module 2014-11-18 18:42:36 -04:00
Joey Hess 45592b442b factor out git repo module 2014-11-18 18:39:10 -04:00
Joey Hess b7bbde3d72 avoid extra git pull when --spin calles first --boot and then --run 2014-11-18 18:26:15 -04:00
Joey Hess 8f5166748a
propellor spin 2014-11-18 18:15:04 -04:00
Joey Hess 18903ad30c display improvements 2014-11-18 18:13:42 -04:00
Joey Hess e262a49a80 enable terminal for --boot 2014-11-18 18:11:04 -04:00
Joey Hess 557458d03c wording 2014-11-18 17:59:26 -04:00
Joey Hess 75a824c788 fix display of progress etc lines before protocol line 2014-11-18 17:57:04 -04:00
Joey Hess 4a0cac113c fix color display when running propellor inside docker 2014-11-18 17:53:42 -04:00
Joey Hess 6df64ff653 Merge branch 'joeyconfig' 2014-11-18 17:33:21 -04:00
Joey Hess 74e067fa76
propellor spin 2014-11-18 17:26:02 -04:00
Joey Hess 7fd8150b1f
propellor spin 2014-11-18 17:12:17 -04:00
Joey Hess 4f352327be
propellor spin 2014-11-18 17:10:10 -04:00
Joey Hess ec9cdf5d73
propellor spin 2014-11-18 17:06:39 -04:00
Joey Hess efa3283975 reformat 2014-11-18 17:05:25 -04:00
Joey Hess fc657d62cb action message 2014-11-18 16:55:20 -04:00
Joey Hess 511a728b38 finally cracked it!
A newline was slipping in and messing up the git protocol.
2014-11-18 16:52:20 -04:00
Joey Hess 83431b7b58
propellor spin 2014-11-18 16:49:37 -04:00
Joey Hess bdbb1686df
propellor spin 2014-11-18 16:47:41 -04:00
Joey Hess 12aa7f4948 set handles to binary mode 2014-11-18 16:45:31 -04:00
Joey Hess c008813bec close handles 2014-11-18 16:36:43 -04:00
Joey Hess 257f9f6bb2 debug 2014-11-18 16:28:27 -04:00
Joey Hess 935e1d11fe
propellor spin 2014-11-18 16:24:45 -04:00
Joey Hess 06add92bce tweak 2014-11-18 16:12:27 -04:00
Joey Hess c1a6f81c7e better IO loop, with debugging 2014-11-18 16:10:13 -04:00
Joey Hess 6f93f8496f use lazy bytestrings so it streams 2014-11-18 16:03:19 -04:00
Joey Hess 7956fda7d5 get handles right way roung 2014-11-18 15:53:15 -04:00
Joey Hess 18ac1234ac fix command again 2014-11-18 15:49:23 -04:00
Joey Hess 75591eb2e8 avoid pulling when there is no origin 2014-11-18 15:43:30 -04:00
Joey Hess 32dbfd62fb disable always debug 2014-11-18 15:38:18 -04:00
Joey Hess b120262482 fix proto 2014-11-18 15:37:22 -04:00
Joey Hess 1a910f2516 typo 2014-11-18 15:35:42 -04:00
Joey Hess d07edfdbeb temporarily always debug 2014-11-18 15:34:58 -04:00
Joey Hess 2ca292a2b4 hook up handles 2014-11-18 15:32:53 -04:00
Joey Hess e96a66709a run upload-pack, not send-pack
we're doing a reverse pull from the client
2014-11-18 15:25:55 -04:00
Joey Hess 6cb060b653 problem running propellor --gitpush 2014-11-18 15:23:39 -04:00
Joey Hess 72e8086d7e updte 2014-11-18 15:20:28 -04:00
Joey Hess 02fc9fcca9
propellor spin 2014-11-18 15:18:26 -04:00
Joey Hess 573c6ab4b8
propellor spin 2014-11-18 15:17:12 -04:00
Joey Hess 9dfae00bd3
propellor spin 2014-11-18 15:15:56 -04:00
Joey Hess 781e35a333 protocol is one line response, not multiline
The privdata is shown, so contains no literal newlines, so that's ok.
2014-11-18 15:14:36 -04:00
Joey Hess dccdf0c0f0
propellor spin 2014-11-18 15:09:35 -04:00
Joey Hess d5091b6082
propellor spin 2014-11-18 15:09:13 -04:00
Joey Hess bad6a8c3e6
propellor spin 2014-11-18 15:05:15 -04:00
Joey Hess 473ce8b757 Nothing means end of protocol, not protocol error 2014-11-18 14:13:52 -04:00
Joey Hess aa9aa832d2 refactor 2014-11-18 14:12:07 -04:00
Joey Hess 45f8ebf0ef
propellor spin 2014-11-18 13:59:50 -04:00
Joey Hess 9463963d85 reorg 2014-11-18 13:32:33 -04:00
Joey Hess 46076e9a37 reorg and clean up bootstrap protocol 2014-11-18 13:29:50 -04:00
Joey Hess e4e2f44392
propellor spin 2014-11-18 01:25:54 -04:00
Joey Hess a30b5a6bfd
propellor spin 2014-11-18 01:17:22 -04:00
Joey Hess bc6b199d53
propellor spin 2014-11-18 01:15:34 -04:00
Joey Hess 8d995b1574 need to chain, not spin 2014-11-18 01:11:32 -04:00
Joey Hess 8ea43c6302 avoid renaming --boot to --sync
That broke updating existing systems, since --boot is what makes the remote
propellor update itself.

The hostname is no longer needed by --boot for new propellor's, but is
still passed for old ones.

Note that there will be a double run of propellor when upgrading via
--spin, because it now runs --boot followed by --spin on the remote host,
and the old --boot also satisfied all properties.
2014-11-18 01:04:41 -04:00
Joey Hess 40f6d06f1a Run remote propellor --spin with a controlling terminal.
Avoids need for hack to make ansi colors work, but also things like apt-get
and wget process bars will be displayed.
2014-11-18 01:01:50 -04:00
Joey Hess 1a90604851 ssh won't allocate a tty; work around
stdin is not a terminal, drat ssh

I don't much like this workaround
2014-11-18 00:42:12 -04:00
Joey Hess 194785b556
propellor spin 2014-11-18 00:36:00 -04:00
Joey Hess 340c8d1060
propellor spin 2014-11-18 00:30:19 -04:00
Joey Hess e6ff8bfc47 can't rely on TERM; use hIsTerminalDevice
This calls an ioctl, I don't think it's very expensive.
2014-11-18 00:28:46 -04:00
Joey Hess 7b796bcb9c enable tty over ssh 2014-11-18 00:22:05 -04:00
Joey Hess 82d50a5796 Avoid outputting color setting sequences when not run on a terminal.
Currently TERM is checked for every message. Could be memoized, but it
would add complexity, and typical propellor output is not going to be more
than a few hundred messages, and likely this will be swamped by the actual
work.
2014-11-18 00:19:11 -04:00
Joey Hess 2fab1a08b4 Merge branch 'joeyconfig' 2014-11-17 17:02:47 -04:00
Félix Sipma fbd8ea3b3d Git: rename isRepo to isGitDir
Signed-off-by: Félix Sipma <felix.sipma@no-log.org>
2014-11-17 17:02:31 -04:00
Félix Sipma f3beea212c Git: isRepo
Signed-off-by: Félix Sipma <felix.sipma@no-log.org>
2014-11-17 17:02:31 -04:00
Joey Hess 46cd2ad0e0 DigitalOcean.distroKernel property now reboots into the distribution kernel when necessary.
It might be better to do this check on boot to limit the time running the
DO kernel (which is not well security supported), but that has the
possibility of entering a bad reboot loop. Limiting this check to when
propellor runs avoids that, while still fixing the problem pretty fast.
2014-11-17 16:42:15 -04:00
Joey Hess 8d91b5de6b Convert GpgKeyId to newtype 2014-11-15 17:02:30 -04:00
Joey Hess 90f5cff061 Revert "moving privdata to privdata.joey (for joeyconfig branch only)"
This reverts commit 269996e25d.
2014-11-15 13:47:23 -04:00
Joey Hess 269996e25d moving privdata to privdata.joey (for joeyconfig branch only)
This will be reverted on master. This way, my ongoing development on my
joeyconfig branch, including privdata changes, won't result in changes
being merged into the privdata/ dir on master. Such changes can cause
problems for other propellor users, who can get conflicts in their own
privdata when merging from master.
2014-11-15 13:45:23 -04:00
Joey Hess d65337d3e7
add Obnam backupEncrypted
This after I typoed an obnam setup and accidentially had a repo that was
backing up non-encrypted.
2014-11-15 13:42:04 -04:00
Félix Sipma cd1a911314 Tor: change unlines to unwords in hiddenService
Signed-off-by: Félix Sipma <felix.sipma@no-log.org>
2014-11-13 13:03:30 -04:00
Félix Sipma 3679a49353 Tor: change unlines to unwords in description messages
Signed-off-by: Félix Sipma <felix.sipma@no-log.org>
2014-11-12 18:09:21 -04:00
Félix Sipma e7d2c38a59 Tor: hiddenServiceData
Signed-off-by: Félix Sipma <felix.sipma@no-log.org>
2014-11-11 20:02:23 -04:00
Félix Sipma 9d6a79bc23 Apt: stable-updates suite
Signed-off-by: Félix Sipma <felix.sipma@no-log.org>
2014-11-11 19:57:39 -04:00
Joey Hess e4f9df8404 avoid configuring git signing key when there's no secret key
Also, nice display for --add-key steps
2014-11-11 13:41:25 -04:00
Joey Hess 7ea0f460e6 use --trust-model always to avoid prompt from gpg
gpg prompts when encrypting to an untrusted key, but if propellor has been
told to add a key, we implicitly trust it.
2014-11-11 13:26:31 -04:00
Joey Hess 84304821be
propellor spin 2014-11-11 12:58:53 -04:00
Joey Hess f559ccaf73 reorg 2014-11-11 12:33:04 -04:00
Joey Hess 347c02a38e split out gpg keyring related stuff 2014-11-11 12:32:17 -04:00
Félix Sipma bd856f7a04 Tor: varRun
Signed-off-by: Félix Sipma <felix.sipma@no-log.org>
2014-11-11 11:57:42 -04:00
Félix Sipma 2368b0d5af Tor: rename 'varPath' to 'varLib'
Signed-off-by: Félix Sipma <felix.sipma@no-log.org>
2014-11-11 11:57:39 -04:00
Félix Sipma 1f328755f5 Tor: mainConfig, varPath, hidden service by hostname
Signed-off-by: Félix Sipma <felix.sipma@no-log.org>
2014-11-11 11:57:38 -04:00
Joey Hess d8ca671086 didn't need quite so much indentation 2014-11-10 16:27:36 -04:00
Félix Sipma 053183d44b Tor: hidden service
Signed-off-by: Félix Sipma <felix.sipma@no-log.org>
2014-11-10 16:16:43 -04:00
Félix Sipma 3541260436 basic prosody support
Signed-off-by: Félix Sipma <felix.sipma@no-log.org>
2014-11-10 11:14:48 -04:00
Joey Hess 9755b761bb Docker: Stop using docker.io; that was a compat symlink in the Debian package which has been removed in docker.io 1.3.1~dfsg1-2. 2014-11-08 15:55:58 -04:00
Joey Hess ef9abb9b67 Apache: Fix daemon reload when enabling a new module or site. 2014-10-31 17:47:52 -04:00
Félix Sipma 784210a573 Propellor.Property.Nginx: use System.Posix.Files
Bug: the "onChange reloaded" in siteEnabled does not seem to be fired...
Does it works in Propellor.Property.Apache.siteEnabled?

Signed-off-by: Félix Sipma <gueux@gueux.org>
2014-10-31 17:36:33 -04:00
Joey Hess 2766558d61 remove hardcoded path
propellor runs as root, and /sbin should always be in root's path
2014-10-31 10:20:56 -04:00
Joey Hess 3a1f058c64 changed indentation for consistency with the rest of propellor 2014-10-31 10:20:34 -04:00
Arnaud Bailly 63560cde90 added licensing header 2014-10-31 10:15:18 -04:00
Arnaud Bailly 4ce5e26ec8 missing export 2014-10-31 10:15:14 -04:00
Arnaud Bailly 63c92aa7fb smarter constructor for rule 2014-10-31 10:15:10 -04:00
Arnaud Bailly 90bec1e959 added firewall properties 2014-10-31 10:15:07 -04:00
Félix Sipma a6e712a645 basic nginx support 2014-10-30 16:34:01 -04:00
Joey Hess 2b320d2bd9
propellor spin 2014-10-23 13:26:51 -04:00
Joey Hess f5b5159f76 don't need RestartPolicy data type; simplify 2014-10-23 12:28:33 -04:00
Joey Hess 73a75cbefc Fix loop when a docker host that does not exist was docked.
The problem is it fell back to looking for an alias for the bad hostname,
but to get the aliases, it needs to know which hosts are docked where,
so looped.
2014-10-23 12:11:43 -04:00
Joey Hess e6924a894d Revert "Revert "Revert "propellor spin"""
This reverts commit 26bef2486d.
2014-10-23 11:46:15 -04:00
Joey Hess 26bef2486d Revert "Revert "propellor spin""
This reverts commit 8d353813bf.
2014-10-23 11:42:34 -04:00
Joey Hess 8d353813bf Revert "propellor spin"
This reverts commit ac7b182b5a.
2014-10-23 11:39:29 -04:00
Joey Hess ac7b182b5a
propellor spin 2014-10-23 11:36:06 -04:00
Joey Hess bdf3e37066 Revert "propellor spin"
This reverts commit 80f5b53f1b.
2014-10-23 11:33:00 -04:00
Joey Hess bbec7021f8 Revert "propellor spin"
This reverts commit 45ce3a5e8c.
2014-10-23 11:31:00 -04:00
Joey Hess 45ce3a5e8c
propellor spin 2014-10-23 11:28:10 -04:00
Joey Hess 80f5b53f1b
propellor spin 2014-10-23 11:26:05 -04:00
Joey Hess 5bfeb3f9aa Revert "propellor spin"
This reverts commit 7637ea0af9.
2014-10-23 11:25:07 -04:00
Joey Hess 7637ea0af9
propellor spin 2014-10-23 11:23:25 -04:00