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
23399416f1
broke up big function to describe PrivDataField
2014-12-14 16:14:05 -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
2e2438ae66
improve haddock formating of filenames
2014-12-09 14:22:37 -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
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
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
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
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
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
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
a7e71faaaa
forgot to add new Mount lib
2014-12-05 17:54:29 -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
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
c9d09afafa
Run apt-cache policy with LANG=C.
2014-12-01 11:59:27 -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
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
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
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
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
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
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
d8624e2e5d
WIP
2014-11-23 16:12:39 -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
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
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
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
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
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
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