Skip to content

Instantly share code, notes, and snippets.

@ferki
Last active April 22, 2021 09:08
Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save ferki/be63ad18b6b93352f2829cf691335938 to your computer and use it in GitHub Desktop.
Save ferki/be63ad18b6b93352f2829cf691335938 to your computer and use it in GitHub Desktop.
rex reboot
use Rex -feature => [qw(1.4 exec_autodie)];
use Rex::Commands::SimpleCheck;
sayformat "[%h]>\t%s";
task 'reboot', sub {
my $server = connection->server;
my $port = Rex::Config->get_port( server => $server ) || 22;
Rex::Logger::info('uptime before');
say run 'uptime';
run 'reboot';
Rex::Logger::info('Waiting for shutdown...');
while ( is_port_open $server, $port ) {
sleep 1;
}
Rex::Logger::info('Waiting for SSH to come back...');
while ( !is_port_open $server, $port ) {
sleep 1;
}
Rex::get_current_connection_object->reconnect;
Rex::Logger::info('uptime after');
say run 'uptime';
};
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment