NAME

WWW::Hetzner::Robot::API::Boot - Hetzner Robot Boot Configuration API

VERSION

version 0.101

SYNOPSIS

my $robot = WWW::Hetzner::Robot->new(...);

# Status of all boot options
my $boot = $robot->boot->get(123456);

# Rescue system
my $rescue = $robot->boot->rescue(123456);
my $active = $robot->boot->enable_rescue(123456, os => 'linux');
print $active->{password}, "\n";      # generated root password
$robot->boot->disable_rescue(123456);

# Linux installation
$robot->boot->enable_linux(123456, dist => 'Debian 12 minimal', lang => 'en');
$robot->boot->disable_linux(123456);

# VNC installation
$robot->boot->enable_vnc(123456, dist => 'centOS-5.0', lang => 'en_US');
$robot->boot->disable_vnc(123456);

# Windows installation (requires the Windows addon)
$robot->boot->enable_windows(123456, os => 'Windows Server 2022 Standard Edition', lang => 'en');
$robot->boot->disable_windows(123456);

DESCRIPTION

Boot configuration of a dedicated server. This is what turns a bare machine into something reachable: "enable_rescue" followed by a reset boots the rescue system, "enable_linux" arms the unattended Linux installer.

Every activation returns the generated password for the booted system, which is only present in the response of the activating call - a later get shows password as null once the system has been picked up.

The four boot variants are:

  • rescue - Hetzner rescue system (linux, vkvm)

  • linux - unattended Linux installation

  • vnc - VNC based installation

  • windows - Windows installation (needs a purchased Windows addon)

Returns raw hashrefs, like WWW::Hetzner::Robot::API::Reset - boot options are per-server state, not entities with an identity of their own.

get

my $boot = $robot->boot->get($server_number);

Status of all boot options at once, keyed by rescue, linux, vnc and windows.

rescue

my $rescue = $robot->boot->rescue($server_number);

Current rescue system configuration. os lists the available systems while inactive, and holds the booted one while active is true.

enable_rescue

my $rescue = $robot->boot->enable_rescue($server_number,
    os             => 'linux',
    authorized_key => [ 'aa:bb:cc:...' ],   # optional
    keyboard       => 'us',                 # optional, default us
);

Activates the rescue system. The returned hashref carries the generated password - a reset is still needed to actually boot into it.

disable_rescue

$robot->boot->disable_rescue($server_number);

linux

my $linux = $robot->boot->linux($server_number);

Current Linux installation configuration. dist and lang list the available choices while inactive.

enable_linux

my $linux = $robot->boot->enable_linux($server_number,
    dist           => 'Debian 12 minimal',
    lang           => 'en',
    authorized_key => [ 'aa:bb:cc:...' ],   # optional
);

Arms the unattended Linux installation. The returned hashref carries the generated password.

disable_linux

$robot->boot->disable_linux($server_number);

vnc

my $vnc = $robot->boot->vnc($server_number);

Current VNC installation configuration.

enable_vnc

my $vnc = $robot->boot->enable_vnc($server_number,
    dist => 'centOS-5.0',
    lang => 'en_US',
);

disable_vnc

$robot->boot->disable_vnc($server_number);

windows

my $windows = $robot->boot->windows($server_number);

Current Windows installation configuration.

enable_windows

my $windows = $robot->boot->enable_windows($server_number,
    os   => 'Windows Server 2022 Standard Edition',
    lang => 'en',
);

Requires a previously purchased Windows addon for that server.

disable_windows

$robot->boot->disable_windows($server_number);

SEE ALSO

SUPPORT

Issues

Please report bugs and feature requests on GitHub at https://github.com/Getty/p5-www-hetzner/issues.

IRC

Join #kubernetes on irc.perl.org or message Getty directly.

CONTRIBUTING

Contributions are welcome! Please fork the repository and submit a pull request.

AUTHOR

Torsten Raudssus <torsten@raudssus.de>

COPYRIGHT AND LICENSE

This software is copyright (c) 2026 by Torsten Raudssus <torsten@raudssus.de> https://raudssus.de/.

This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.