Commit Graph

381 Commits

Author SHA1 Message Date
Joey Hess f35ef9d697 API change: Added User and Group newtypes, and Properties that used to use the type UserName = String were changed to use them.
Note that UserName is kept and PrivData still uses it in its sum type.
This is to avoid breaking PrivData serialization.
2015-04-22 13:04:39 -04:00
Joey Hess 0fc926934a Merge branch 'joeyconfig' 2015-04-21 12:52:22 -04:00
Joey Hess 07be883258 debCdn changed to new httpredir.debian.org official replacement for http.debian.net. 2015-04-19 21:36:07 -04:00
Joey Hess 96631ad0cb Merge branch 'joeyconfig' 2015-04-19 21:02:00 -04:00
Joey Hess 3d735c52f4 Added hasLoginShell and shellEnabled.
My code with some improvements from weinzwang.
2015-04-19 21:00:21 -04:00
Joey Hess 006b1c3585 Merge branch 'joeyconfig' 2015-04-02 10:26:51 -04:00
Joey Hess 86783dc52d Make propellor resistent to changes to shared libraries, such as libffi
* Make propellor resistent to changes to shared libraries, such as libffi,
  which might render the propellor binary unable to run. This is dealt with
  by checking the binary both when running propellor on a remote host,
  and by Cron.runPropellor. If the binary doesn't work, it will be rebuilt.
* Note that since a new switch had to be added to allow testing the binary,
  upgrading to this version will cause a rebuild from scratch of propellor.
2015-04-02 10:20:44 -04:00
Joey Hess 93fe81bae9 Merge branch 'joeyconfig' 2015-03-14 16:00:04 -04:00
Joey Hess b31ad1d2ce remove announcedir target 2015-03-14 15:59:59 -04:00
Joey Hess bc60edb50a Merge branch 'joeyconfig'
Conflicts:
	privdata.joey/privdata.gpg
2015-03-12 20:09:31 -04:00
Joey Hess 9292cee1aa prep 2015-03-12 20:09:02 -04:00
Joey Hess 370aad7825
propellor spin 2015-03-12 19:53:40 -04:00
Joey Hess b508bb52fd
propellor spin 2015-03-11 22:31:45 -04:00
Joey Hess 4c94fd4703 Merge branch 'joeyconfig' 2015-03-09 12:03:09 -04:00
Joey Hess 51dd9a9c63 prep release 2015-03-09 12:02:48 -04:00
Joey Hess 970ffbd0d6 Merge branch 'joeyconfig' 2015-02-28 13:08:05 -04:00
Joey Hess e26c232d15 avoid using the makefile when bootstrapping with --spin 2015-02-28 12:51:16 -04:00
Joey Hess dc03e317b4 Propellor now builds itself without needing the Makefile. 2015-02-28 12:27:07 -04:00
Joey Hess e8b0e7c6ca
propellor spin 2015-02-27 18:55:51 -04:00
Joey Hess fa7656f743 Add shebang to cron.daily etc files. 2015-02-25 14:58:40 -04:00
Joey Hess be1a3a7c89 When running shimmed (eg in a docker container), improve process name visible in ps. 2015-02-16 19:01:32 -04:00
Joey Hess f765a05f88 Merge branch 'joeyconfig' 2015-02-12 12:38:05 -04:00
Joey Hess cc62505a61 prep release 2015-02-12 12:36:36 -04:00
Joey Hess cb67eb1d08 Merge branch 'joeyconfig'
Conflicts:
	privdata.joey/privdata.gpg
2015-02-12 12:35:26 -04:00
Joey Hess da77276378 ssh user perm fixes
* Ssh.authorizedKey: Make the authorized_keys file and .ssh directory
  be owned by the user, not root.
* Ssh.knownHost: Make the .ssh directory be owned by the user, not root.
2015-02-12 12:35:15 -04:00
Joey Hess e32f157374 Fix Git.daemonRunning to restart inetd after enabling the git server. 2015-02-10 21:04:32 -04:00
Joey Hess 5781da55bc
propellor spin 2015-02-08 15:51:55 -04:00
Joey Hess 8edc7ed3ae
propellor spin 2015-02-01 17:34:04 -04:00
Joey Hess 04611cac47 changelog 2015-01-29 01:41:39 -04:00
Joey Hess f4777fba12 Merge branch 'joeyconfig' 2015-01-25 15:28:00 -04:00
Joey Hess 62c093de30 typo 2015-01-25 15:27:55 -04:00
Joey Hess 527e020c10 Merge branch 'joeyconfig' 2015-01-25 15:24:44 -04:00
Joey Hess 32ca4d3af2 prep release 2015-01-25 15:24:36 -04:00
Joey Hess 54d0d95961 update 2015-01-25 15:22:45 -04:00
Joey Hess 401b857eef Merge branch 'joeyconfig'
Conflicts:
	doc/todo/info_propigation_out_of_nested_properties.mdwn
	privdata.joey/privdata.gpg
2015-01-25 15:16:58 -04:00
Joey Hess 0ee04ecc43 GADT properties seem to work (untested)
* Property has been converted to a GADT, and will be Property NoInfo
  or Property HasInfo.
  This was done to make sure that ensureProperty is only used on
  properties that do not have Info.
  Transition guide:
  - Change all "Property" to "Property NoInfo" or "Property WithInfo"
    (The compiler can tell you if you got it wrong!)
  - To construct a RevertableProperty, it is useful to use the new
    (<!>) operator
  - Constructing a list of properties can be problimatic, since
    Property NoInto and Property WithInfo are different types and cannot
    appear in the same list. To deal with this, "props" has been added,
    and can built up a list of properties of different types,
    using the same (&) and (!) operators that are used to build
    up a host's properties.
2015-01-24 22:38:51 -04:00
Joey Hess 38eec6fc37 OS.preserveNetwork finally written 2015-01-23 01:30:50 -04:00
Joey Hess d156a1e9ba Added more network interface configuration properties. 2015-01-23 01:18:47 -04:00
Joey Hess fa66cb49d6 Added journald configuration properties. 2015-01-21 23:21:24 -04:00
Joey Hess 88082c7293 Added systemd configuration properties. 2015-01-21 22:49:03 -04:00
Joey Hess 04d4d0d6c4 Fix info propigation from fallback combinator's second Property. 2015-01-19 14:43:25 -04:00
Joey Hess 4da4c4a70f use git.joeyh.name in preference to git.kitenet.net 2015-01-19 14:29:09 -04:00
Joey Hess afee550e70 Property tree
Properties now form a tree, instead of the flat list used before.

This simplifies propigation of Info from the Properties used inside a
container to the outer host; the Property that docks the container on the
host can just have as child properties all the inner Properties, and their
Info can then be gathered recursively. (Although in practice it still needs
to be filtered, since not all Info should propigate out of a container.)

Note that there is no change to how Properties are actually satisfied.
Just because a Property lists some child properties, this does not mean
they always have their propertySatisfy actions run. It's still up to the
parent property to run those actions.

That's necessary so that a container's properties can be satisfied inside
it, not outside. It also allows property combinators to
add the combined Properties to their childProperties list, even if,
like onChange, they don't always run the child properties at all.

Testing: I tested that the exact same Info is calculated before and after
this change, for every Host in my config file.
2015-01-18 18:46:38 -04:00
Joey Hess c7609c824b Add descriptions of how to set missing fields to --list-fields output. (Minor API changes) 2015-01-15 20:15:01 -04:00
Joey Hess 47fdb99fbb Merge branch 'joeyconfig'
Conflicts:
	privdata.joey/privdata.gpg
2015-01-15 14:03:50 -04:00
Joey Hess 35cd06e4e6 prep release 2015-01-15 14:03:36 -04:00
Joey Hess a8ed898d72 changelog 2015-01-08 22:52:48 -04:00
Joey Hess 16a5f561f5 Merge Utiity modules from git-annex.
Except for a few that are using the other exception handling library,
that propellor has not switched to yet.
2015-01-06 19:07:40 -04:00
Joey Hess 4c2c2785c8 SSHFP records are also generated for CNAMES of hosts. 2015-01-04 21:31:44 -04:00
Joey Hess 763a0ad303 SSHFP records are also generated for CNAMES of hosts. 2015-01-04 21:26:21 -04:00
Joey Hess e22002a7a9 Merge branch 'joeyconfig'
Conflicts:
	privdata.joey/privdata.gpg
2015-01-04 19:52:09 -04:00
Joey Hess 0794dfbd7c prep 2015-01-04 19:51:50 -04:00
Joey Hess 66e42a2a5b prep 2015-01-04 19:51:42 -04:00
Joey Hess 8e442f0656 DNS records for hosts with known ssh public keys now automatically include SSHFP records. 2015-01-04 19:24:18 -04:00
Joey Hess ef2f3d33de Fix bug that prevented deploying ssh host keys when the file for the key didn't already exist.
This is not a new bug.
2015-01-04 18:20:02 -04:00
Joey Hess d0b0531918 Merge branch 'joeyconfig' 2015-01-04 17:17:58 -04:00
Joey Hess e27df9de24 prep release 2015-01-04 17:17:52 -04:00
Joey Hess acdcff5ca4 Merge branch 'joeyconfig'
Conflicts:
	privdata.joey/privdata.gpg
2015-01-04 17:16:55 -04:00
Joey Hess ab8ff9a00e randomHostKeys is removed from CloudAtCost.deCruft. 2015-01-04 17:15:59 -04:00
Joey Hess 0af7629c98
propellor spin 2015-01-04 16:54:43 -04:00
Joey Hess a2bb647827 Ssh.hostKey and Ssh.hostKeys no longer install public keys from the privdata.
Instead, the public keys of a host should be set using Ssh.pubKey.
2015-01-04 16:10:36 -04:00
Joey Hess 84685f24c9 Ssh.hostKeys now also installs any available SshEd25519 keys. 2015-01-04 15:59:54 -04:00
Joey Hess f1a1d0001a sshPubKey is renamed to Ssh.pubKey, and has an added SshKeyType parameter. 2015-01-04 15:57:27 -04:00
Joey Hess 52664e6220 sshPubKey is renamed to Ssh.pubKey 2015-01-04 15:36:53 -04:00
Joey Hess 01d8ab0cfd Fix build with process 1.2.1.0. 2015-01-04 13:08:19 -04:00
Joey Hess a1f61e09b8 stub signedPrimary 2015-01-03 19:10:28 -04:00
Joey Hess 7cbd367e1c Update intermediary propellor in --spin --via 2015-01-01 17:13:03 -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 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 544d365b50 Merge branch 'joeyconfig' 2014-12-21 21:42:15 -04:00
Joey Hess 81db68814c prep release 2014-12-21 21:41:26 -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 ddeee3ceb8 prep release 2014-12-17 16:30:54 -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 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 5752080929 Merge branch 'joeyconfig' 2014-12-09 00:05:34 -04:00
Joey Hess 040a5fe3c7 prep release 2014-12-09 00:05:16 -04:00
Joey Hess 99bff87440 Include Propellor.Property.OS, which was accidentially left out of the cabal file in the last release. 2014-12-09 00:03:14 -04:00
Joey Hess 6b6d5a0881 changelog 2014-12-08 01:08:40 -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 abee353d9d Merge branch 'joeyconfig' 2014-12-07 15:24:21 -04:00
Joey Hess f9958e1611 prep release 2014-12-07 15:24:07 -04:00
Joey Hess 3b0b6f44dd improve 2014-12-07 15:20:50 -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 322ae878bb Merge branch 'joeyconfig'
Conflicts:
	privdata.joey/privdata.gpg
2014-12-07 12:04:58 -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 9805f132ac Merge branch 'joeyconfig' 2014-12-05 17:44:14 -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 573b8b7df8 changelog 2014-12-04 17:40:26 -04:00
Joey Hess 8b70031a78 Merge branch 'joeyconfig' 2014-12-01 11:59:38 -04:00