Commit Graph

276 Commits

Author SHA1 Message Date
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 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 527975dffe hasSomePassword and hasPassword now check to make sure shadow passwords are enabled. 2014-12-05 16:33:23 -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 573b8b7df8 changelog 2014-12-04 17:40:26 -04:00
Joey Hess c9d09afafa
Run apt-cache policy with LANG=C. 2014-12-01 11:59:27 -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 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 9d975e9ee4 add --merge 2014-11-23 18:48:52 -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 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 dea5c2068e changelog 2014-11-23 14:39:19 -04:00
Joey Hess e8a07b1840 changelog 2014-11-23 14:38:31 -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 d413818647 clarify 2014-11-22 16:26:03 -04:00
Joey Hess fd3335e40e --via implemented 2014-11-22 12:57:07 -04:00
Joey Hess 57ec60d6f3 mdwn man page and more complete docs 2014-11-22 12:13:38 -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 1b56e73c07 copyright update 2014-11-21 22:27:13 -04:00
Joey Hess b4e1bb84d5 hmm 2014-11-21 21:10:01 -04:00
Joey Hess a0c7cddd1d maintainer 2014-11-21 21:08:30 -04:00
Joey Hess 886bd3715b prep release 2014-11-21 20:58:09 -04:00
Joey Hess 1af298dc10 trim 2014-11-21 01:14:19 -04:00
Joey Hess f9cc7c149e incomplete systemd container support 2014-11-20 17:18:26 -04:00
Joey Hess 2293b46bf7 fix chroot info propigation 2014-11-20 16:04:48 -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 41b10a956a correct version 2014-11-19 21:25:55 -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 5c34a575c8 flag API changes 2014-11-19 02:02:29 -04:00
Joey Hess dd635e9fcd update 2014-11-19 01:59:09 -04:00
Joey Hess 409e20a69e big 1.0 2014-11-19 01:41:50 -04:00
Joey Hess c3962dcf7d
propellor spin 2014-11-19 01:04:11 -04:00
Joey Hess e273946c22 reword 2014-11-18 21:20:56 -04:00
Joey Hess 74e067fa76
propellor spin 2014-11-18 17:26:02 -04:00
Joey Hess a0ea904ecb changelog for last commit's changes 2014-11-18 14:01:13 -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 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 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 7902f705b0 update email 2014-11-15 15:03:54 -04:00
Joey Hess be27ae1503 changelog 2014-11-11 13:00:33 -04:00
Joey Hess 929d26d556 changelog 2014-11-10 16:22:44 -04:00
Joey Hess 9608a390d2 Added prosody module, contributed by Félix Sipma. 2014-11-10 11:15:41 -04:00
Joey Hess f3a31c9192 prep release 2014-11-08 15:57:46 -04:00
Joey Hess 1187cd4901 Orphaned the Debian package, as I am retiring from Debian. 2014-11-08 15:57:33 -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
Joey Hess ca06c64bae changelog 2014-10-31 10:21:27 -04:00
Joey Hess 01509b040e changelog 2014-10-30 16:36:37 -04:00
Joey Hess bbf258a075 update home page 2014-10-24 10:01:55 -04:00
Joey Hess b5ab8a7f9f prep release 2014-10-24 09:57:52 -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 bdf3e37066 Revert "propellor spin"
This reverts commit 80f5b53f1b.
2014-10-23 11:33:00 -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
Joey Hess 856a4c673c
propellor spin 2014-10-23 03:27:40 -04:00
Joey Hess 93099b8627 bugfix 2014-10-23 03:18:52 -04:00
Joey Hess df0c0e56cb Docker: Avoid committing container every time it's started up.
This was using a lot of disk space. Instead, start the container, and then
use the running container to check if docker is running it with the right
params. In the unlikely case that the params have changed, we still need to
commit the container and restart it. The common case of eg a reboot no
longer commits though.
2014-10-10 13:47:41 -04:00
Joey Hess e7d8cbac1b finalize release 2014-10-10 11:37:50 -04:00
Joey Hess 7f17765de3 debCdn switched from cdn.debian.net to http.debian.net, which seems to be better managed now.
Conflicts:
	debian/changelog
2014-10-10 11:37:22 -04:00
Joey Hess 79ee61d958 stable suite changes
* Avoid encoding the current stable suite in propellor's code,
  since that poses a difficult transition around the release,
  and can easily be wrong if an older version of propellor is used.
  Instead, the os property for a stable system includes the suite name
  to use, eg Stable "wheezy".
* stdSourcesList uses the stable suite name, to avoid unwanted
  immediate upgrades to the next stable release.
2014-10-10 11:27:54 -04:00
Joey Hess 7ff8d0f8a2 prep release 2014-08-22 13:02:18 -04:00
Joey Hess 81544b37a8 fix man page installation 2014-08-19 19:06:21 -04:00
Joey Hess 11c1160655 reorg manpage 2014-08-19 18:06:00 -04:00
Joey Hess 371f6077fd prep release 2014-08-19 17:00:49 -04:00
Joey Hess 3c61c109fb ugly workaround for lack of history in repo distributed with debian package 2014-08-19 16:40:04 -04:00
Joey Hess 1830f501ee debian upgrade handling
The /usr/bin/propellor wrapper will warn when ~/.propellor/ is out of date
and a newer version is available from origin.
2014-08-19 15:22:42 -04:00
Joey Hess 7d59dee469 local repo fully working now 2014-08-19 15:02:12 -04:00
Joey Hess b6c5f54741 The Debian package now includes a single-revision git repository in /usr/src/propellor/, and ~/.propellor/ is set up to use this repository as its "upstream" remote. This avoids relying on the security of the github repository when using the Debian package. 2014-08-19 14:35:38 -04:00
Joey Hess c3c1f921bb upgrade note 2014-08-19 14:17:04 -04:00
Joey Hess 1ed98cc755 Included the config.hs symlink to config-simple.hs in the cabal and Debian packages. 2014-08-19 14:16:53 -04:00
Joey Hess 9d2cc7774b prep release 2014-08-04 01:12:34 -04:00
Joey Hess 02d7e6d5c6 changelog 2014-07-23 12:43:30 -04:00
Joey Hess 98a3114763
propellor spin 2014-07-22 15:25:07 -04:00
Joey Hess 0f3faffd36 changelog 2014-07-18 13:12:28 -04:00
Joey Hess 5c3b069f23 changelog 2014-07-18 12:49:36 -04:00
Joey Hess 55a638ad4c Fix bug in File.containsLines that caused lines that were already in the file to sometimes be appended to the end. 2014-07-17 23:33:10 -04:00
Joey Hess 54d2888a96 Remove .gitignore from cabal file list, to avoid build failure on Debian. Closes: #754334 2014-07-09 22:11:40 -04:00
Joey Hess e53faff843
propellor spin 2014-07-07 03:42:35 -04:00
Joey Hess 8f46b7ab68 Run apt-get update in initial bootstrap.
For eg, Linode, which brings up hosts that have not updated at all so
apt-get install doesn't work.
2014-07-07 02:04:21 -04:00
Joey Hess 5576955ec5 prep release 2014-07-06 18:28:19 -04:00
Joey Hess ab5159626d twea 2014-07-06 18:28:05 -04:00
Joey Hess 3db1ca1194 wording 2014-07-06 18:09:53 -04:00
Joey Hess 2fde19656e wording 2014-07-06 17:25:07 -04:00
Joey Hess 5002b5e391
propellor spin 2014-07-06 16:32:05 -04:00
Joey Hess 58f79c12aa
propellor spin 2014-07-06 15:56:56 -04:00
Joey Hess 26f989b5ab Hostname.sane now cleans up the 127.0.0.1 localhost line in /etc/hosts, to avoid eg, apache complaining that "Could not reliably determine the server's fully qualified domain name". 2014-07-06 12:23:57 -04:00
Joey Hess d062e21a5e
propellor spin 2014-07-05 17:57:19 -04:00
Joey Hess f674c56119 Add --list-fields to list a host's currently set privdata fields. 2014-06-19 14:56:50 -04:00
Joey Hess 42594d6b4c Add --edit to edit a privdata value in $EDITOR 2014-06-19 14:48:15 -04:00
Joey Hess b6fc95602d prep release 2014-06-13 10:06:42 -04:00
Joey Hess dd554e20b9 When git gpg signature of a fetched git branch cannot be verified, propellor will now continue running, but without merging in that branch.
This way, propellor doesn't stop enforcing properties just because its new
configuration isn't ready. It just uses the old configuration.
2014-06-10 15:49:17 -04:00
Joey Hess c8c96a6908 changelog 2014-06-09 12:34:52 -04:00
Joey Hess fc49d75e4f Attr is renamed to Info. 2014-06-09 01:47:11 -04:00
Joey Hess 582be8ebe0 combineProperties no longer stops when a property fails; now it continues trying to satisfy all properties on the list before propigating the failure.
Audited all of my calls to combineProperties and they should be fine with
this behavior.. which suggests it's the right behavior.
2014-06-07 00:14:05 -04:00
Joey Hess 2db48021f0 typo 2014-06-05 17:35:29 -04:00
Joey Hess 0ba3e77f84 finalize release 2014-06-05 17:32:16 -04:00
Joey Hess c2dd54d167 prep release 2014-06-05 17:21:49 -04:00
Joey Hess 4ac314fb48 Apt.stdSourcesList no longer needs a suite to be specified. 2014-06-05 17:01:32 -04:00
Joey Hess 740740d215 Added --dump to dump out a field of a host's privdata. Useful for editing it. 2014-06-01 16:58:05 -04:00
Joey Hess d224463dcd comment 2014-06-01 15:07:17 -04:00
Joey Hess 84eb050085 Propellor's output now includes the hostname being provisioned, or when provisioning a docker container, the container name. 2014-05-31 18:44:49 -04:00
Joey Hess 6383d8c388
propellor spin 2014-05-31 16:48:14 -04:00
Joey Hess 0e8c6e5fee prep release 2014-05-29 14:30:06 -04:00
Joey Hess 0ec565a590
propellor spin 2014-05-23 12:30:25 -04:00
Joey Hess 8ab6799d48 Ensure that kernel hostname is same as /etc/hostname when configuring hostname. 2014-05-19 10:51:28 -04:00
Joey Hess 227effc1ad
Fix unattended-upgrades config for !stable. 2014-05-18 13:44:28 -04:00
Joey Hess c09babd5b7 prep release 2014-05-17 16:43:10 -04:00
Joey Hess 2081a49b65 changelog 2014-05-14 20:36:23 -04:00
Joey Hess 84efb9bdee Licence changed from GPL to BSD. 2014-05-10 11:08:30 -03:00
Joey Hess 72a6b1c759 prep release 2014-04-24 18:10:13 -04:00
Joey Hess e1ce4e2d05
propellor spin 2014-04-23 23:57:36 -04:00
Joey Hess 34c7a14060
propellor spin 2014-04-23 15:04:35 -04:00
Joey Hess 55f16b25a5 Add missing build deps and deps. Closes: #745459 2014-04-22 19:08:14 -04:00
Joey Hess 66e492fa82 prep release 2014-04-19 17:38:15 -04:00
Joey Hess 5fd4e6a5cf change joeyconfig back after merging from master 2014-04-19 16:17:47 -04:00
Joey Hess 2cfb22a59b spit up TODO 2014-04-19 16:14:10 -04:00
Joey Hess 9a070e66ec add news feed 2014-04-19 15:56:19 -04:00
Joey Hess 494f5d3bef Merge branch 'joeyconfig' 2014-04-19 15:51:01 -04:00
Joey Hess 86e7e4e58e When unattendedUpgrades is enabled on an Unstable or Testing system, configure it to allow the upgrades. 2014-04-19 13:17:25 -04:00
Joey Hess 8c12c5b8ec Merge branch 'joeyconfig' 2014-04-19 11:42:31 -04:00
Joey Hess fffa3e003a Dns primary and secondary properties are now revertable. 2014-04-19 11:00:48 -04:00
Joey Hess 2279979d32 Removed root domain records from SOA. Instead, use RootDomain when calling Dns.primary. 2014-04-19 10:47:38 -04:00
Joey Hess 5dd316a0ad Merge branch 'joeyconfig' 2014-04-19 02:10:56 -04:00
Joey Hess 6aeeaaab90 prep release 2014-04-19 02:10:41 -04:00
Joey Hess 9e578aca6b rename aka to alias 2014-04-19 01:28:46 -04:00
Joey Hess d1db64b3bc Propellor can configure primary DNS servers, including generating zone files, which is done by looking at the properties of hosts in a domain. 2014-04-19 01:26:38 -04:00
Joey Hess 7e9853520b The `cname` property was renamed to `aka` as it does not always generate CNAME in the DNS. 2014-04-18 23:41:26 -04:00
Joey Hess 5f6c3ad564 All Property combinators now combine together their Attr settings.
So Attr settings can be made inside a propertyList, for example.
2014-04-18 04:48:49 -04:00
Joey Hess 4e4fb9ab7c get rid of AttrProperty
Now both Property and RevertableProperty can influence Attr on their own.
2014-04-18 03:59:06 -04:00
Joey Hess 27ff3e9f21 Merge branch 'joeyconfig' 2014-04-17 22:28:21 -04:00
Joey Hess 0485387aa0 Run all cron jobs under chronic from moreutils to avoid unnecessary mails. 2014-04-17 21:01:06 -04:00
Joey Hess 3d25c25171 Merge branch 'joeyconfig' 2014-04-17 20:11:23 -04:00
Joey Hess a19293732d prep release 2014-04-17 20:09:14 -04:00
Joey Hess 71b61ff9f3 use config.simple and allow building debian packages
This commit should not be merged into the config-joey branch.
2014-04-17 20:06:04 -04:00
Joey Hess d934c95b96 add back prevention from building debian package from joeyconfig branch 2014-04-17 20:05:21 -04:00
Joey Hess e1b96860bf cron locking 2014-04-17 19:43:12 -04:00
Joey Hess ba058d77a7 Merge branch 'joeyconfig' 2014-04-15 15:08:40 -04:00
Joey Hess baab388a98 update 2014-04-14 15:48:52 -04:00
Joey Hess 18d33cd391 Merge branch 'joeyconfig' 2014-04-14 02:24:55 -04:00
Joey Hess 2c1397c5b0 Standard apt configuration for stable now includes backports. 2014-04-13 15:54:25 -04:00
Joey Hess 95ac5163da Properties can now be satisfied differently on different operating systems. 2014-04-13 15:34:01 -04:00
Joey Hess 1495db6cd1
propellor spin 2014-04-13 14:01:30 -04:00
Joey Hess c7830f4e66
propellor spin 2014-04-12 22:36:36 -04:00
Joey Hess 9e9d0f1d41 Merge branch 'joeyconfig' 2014-04-12 14:14:20 -04:00
Joey Hess 99ec97db85 Merge scheduler bug fix from git-annex. 2014-04-11 15:00:27 -04:00
Joey Hess 61ed9ef26c Merge branch 'joeyconfig' 2014-04-11 01:19:22 -04:00
Joey Hess a342e216bb release 2014-04-11 01:19:15 -04:00
Joey Hess 856ce97995 Merge branch 'joeyconfig' 2014-04-11 01:09:01 -04:00