hetzner: Remove/readd hostkey on deployment.

This removes the SSH host key after we're done bootstrapping and
disables the question whether to add a new host key when the system is
in UP state.

Signed-off-by: aszlig <aszlig@redmoonstudios.org>
hetzner: Implement start and stop methods.

We don't shut down the servers with poweroff here (just halt), so the
servers are still running. This is because not all servers at Hetzner
support Wake on LAN.

Signed-off-by: aszlig <aszlig@redmoonstudios.org>
hetzner: Only set self.partitions after nixpart.

We shouldn't allow to change self.partitions, so we only copy it over
from the definition just after the partitioning has been completed.

The primary reason for this is because we don't have a way to change
partitioning layout yet.

Signed-off-by: aszlig <aszlig@redmoonstudios.org>
MachineState: Use systemctl reboot for rebooting.

This shouldn't require the sleep in order to prevent hanging SSH
sessions, so let's use it here with one exception: If the machine is in
RESCUE state, use the "(sleep 2; reboot) &" method as we don't know if
the rescue system has systemd (enabled).

Signed-off-by: aszlig <aszlig@redmoonstudios.org>
hetzner: Allow env vars for robot credentials.

This adds support for fetching robot user and password using the
environment variables HETZNER_ROBOT_USER and HETZNER_ROBOT_PASS.

Signed-off-by: aszlig <aszlig@redmoonstudios.org>
hetzner: Fix generating physical spec.

If self.net_info and self.fs_info were unset, generating the physical
spec obivously will fail. This is the case if you want to deploy to only
a subset of the network specification.

Signed-off-by: aszlig <aszlig@redmoonstudios.org>