#!/usr/bin/env python3 from hcloud import Client, APIException from hcloud.server_types.domain import ServerType from hcloud.images.domain import Image import argparse # Get Servername parser = argparse.ArgumentParser() parser.add_argument("serverName") parser.add_argument("serverType") parser.add_argument("serverImage") parser.add_argument('-ci', '--cloudInit', dest='ciFile', metavar='cloud-init filepath') parser.add_argument("apiKey") args = parser.parse_args() serverName = args.serverName serverType = args.serverType serverImage = args.serverImage apiKey = args.apiKey ciFile = args.ciFile try: if ciFile: with open(ciFile, 'r') as file: cloud_init = file.read() else: cloud_init='' client = Client(token=apiKey) response = client.servers.create(name=serverName, server_type=ServerType( name=serverType), image=Image(name=serverImage), user_data=cloud_init) server = response.server print(server) print("Root Password: " + response.root_password) print("IP: " + response.server.public_net.ipv4.ip) except APIException as e: print("API Error ", e)