Hetnzer CLI

Purpose

Hetzner is a hoster that allows you to get 'real' physical machines instead of all the 'virtualized' cloud stuff. This is especially handy for testing virtualization stuff.

They provide a 'REST' like api that you can use to call separate tasks , like reset a server, install linux etc.. For most of the simple tasks,one could get away with using 'curl', but some tasks (like re-installing a server) require more coordination

  1. purpose #1 : of this is to automate these 'combined' hetnzer tasks via CLI instead of using their webinterface.
  2. purpose #2 : me to learn better their api and potentially put this into fog
  3. purpose #3 : extend mccloud to allow for Hetnzer support

Tasks implemented

Distributions

  Usage:
  hetzner-cli distributions IP --password=PASSWORD --user=USER

  Options:
  --user=USER              # Hetzner Admin Username
  --password=PASSWORD      # Hetzner Admin Password
  [--robot-url=ROBOT_URL]  # URL to connect to hetzner robo service
# Default: https://robot-ws.your-server.de/

  List availble distributions for IP

Kickstart

The tasks of re-installing a server from scratch and putting an initial ssh key on it

  Usage:
  hetzner-cli kickstart IP --dist=DIST --password=PASSWORD --user=USER

  Options:
  [--lang=LANG]            # Architecture to use
# Default: en
[--arch=ARCH]            # Architecture to use (32|64)
# Default: 64
  --user=USER              # Hetzner Admin Username
  --password=PASSWORD      # Hetzner Admin Password
  [--robot-url=ROBOT_URL]  # URL to connect to hetzner robo service
# Default: https://robot-ws.your-server.de/
  [--key-file=KEY_FILE]    # SSH key to install as root user
# Default: /Users/patrick/.ssh/id_dsa.pub
  --dist=DIST              # Distribution to use

Re-install server with IP

Todo

  • obviously make it catch errors more and write tests
  • potentially integrate the functionality into fog with a hetzner provider
  • look into using the hetzner-api plugin to leverage all the API calls