1
0

Compare commits

..

3 Commits

Author SHA1 Message Date
Philipp Klüter
2b4c99d1fc Minor fixes 2020-05-22 17:04:37 +02:00
Philipp Klüter
1e51967f95 Added script to list sshkeys 2020-05-22 17:04:25 +02:00
Philipp Klüter
d07d4be932 Added ssh_key option 2020-05-22 17:04:07 +02:00
4 changed files with 39 additions and 7 deletions

View File

@@ -10,6 +10,7 @@ parser.add_argument("serverName")
parser.add_argument("serverType") parser.add_argument("serverType")
parser.add_argument("serverImage") parser.add_argument("serverImage")
parser.add_argument('-ci', '--cloudInit', dest='ciFile', metavar='cloud-init filepath') parser.add_argument('-ci', '--cloudInit', dest='ciFile', metavar='cloud-init filepath')
parser.add_argument('-s', '--sshKeys', dest='sshKeys', metavar='ssh keys (comma separated)')
parser.add_argument("apiKey") parser.add_argument("apiKey")
@@ -20,19 +21,30 @@ serverType = args.serverType
serverImage = args.serverImage serverImage = args.serverImage
apiKey = args.apiKey apiKey = args.apiKey
ciFile = args.ciFile ciFile = args.ciFile
sshKeys = args.sshKeys
ssh_keys = [];
try: try:
client = Client(token=apiKey)
if ciFile: if ciFile:
with open(ciFile, 'r') as file: with open(ciFile, 'r') as file:
cloud_init = file.read() cloud_init = file.read()
else: else:
cloud_init='' cloud_init=''
client = Client(token=apiKey) if sshKeys:
for sshKey in sshKeys.split(','):
ssh_keys.append(client.ssh_keys.get_by_name(sshKey))
else:
ssh_keys=''
response = client.servers.create(name=serverName, server_type=ServerType( response = client.servers.create(name=serverName, server_type=ServerType(
name=serverType), image=Image(name=serverImage), user_data=cloud_init) name=serverType), image=Image(name=serverImage), user_data=cloud_init, ssh_keys=ssh_keys)
server = response.server server = response.server
print(server)
if response.root_password:
print("Root Password: " + response.root_password) print("Root Password: " + response.root_password)
print("IP: " + response.server.public_net.ipv4.ip) print("IP: " + response.server.public_net.ipv4.ip)

View File

@@ -20,4 +20,4 @@ try:
print("Type: ", server.server_type.name) print("Type: ", server.server_type.name)
except APIException as e: except APIException as e:
print("API Error ", e) print("API Error ", e)

View File

@@ -14,8 +14,7 @@ try:
servers = client.servers.get_all() servers = client.servers.get_all()
for server in servers: for server in servers:
print("Servername:", server.name) print("Servername: %s\t\tStatus: %s" %(server.name ,server.status))
print("Servername:", server.status)
except APIException as e: except APIException as e:
print("API Error ", e) print("API Error ", e)

21
sshkeys.py Executable file
View File

@@ -0,0 +1,21 @@
#!/usr/bin/env python3
from hcloud import Client, APIException
import argparse
# Get Servername
parser = argparse.ArgumentParser()
parser.add_argument("apiKey")
args = parser.parse_args()
apiKey = args.apiKey
try:
client = Client(token=apiKey)
ssh_keys = client.ssh_keys.get_all()
for ssh_key in ssh_keys:
print("Key Name:", ssh_key.name)
except APIException as e:
print("API Error ", e)