Commit Graph

120 Commits

Author SHA1 Message Date
Joey Hess 9d975e9ee4 add --merge 2014-11-23 18:48:52 -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 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 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 151aadd4e2
propellor spin 2014-11-22 15:11:24 -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 ea058a5f9f remove test hack 2014-11-22 00:47:26 -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 6e8b28cd3c
propellor spin 2014-11-21 17:11:26 -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 a4f04fcb02
propellor spin 2014-11-20 15:15:28 -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 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 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 325fe4037b
propellor spin 2014-11-19 00:30:06 -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 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