mirror of
https://github.com/ComputerScienceHouse/proxstar.git
synced 2025-03-09 15:40:09 +00:00
only use proxmox ssh backend for cloud-init
This commit is contained in:
parent
04d588d688
commit
f4a2174f29
4 changed files with 24 additions and 5 deletions
|
@ -30,7 +30,9 @@ PROXMOX_HOSTS = [
|
||||||
for host in environ.get('PROXSTAR_PROXMOX_HOSTS', '').split(',')
|
for host in environ.get('PROXSTAR_PROXMOX_HOSTS', '').split(',')
|
||||||
]
|
]
|
||||||
PROXMOX_USER = environ.get('PROXSTAR_PROXMOX_USER', '')
|
PROXMOX_USER = environ.get('PROXSTAR_PROXMOX_USER', '')
|
||||||
|
PROXMOX_PASS = environ.get('PROXSTAR_PROXMOX_PASS', '')
|
||||||
PROXMOX_ISO_STORAGE = environ.get('PROXSTAR_PROXMOX_ISO_STORAGE', 'nfs-iso')
|
PROXMOX_ISO_STORAGE = environ.get('PROXSTAR_PROXMOX_ISO_STORAGE', 'nfs-iso')
|
||||||
|
PROXMOX_SSH_USER = environ.get('PROXSTAR_PROXMOX_SSH_USER', '')
|
||||||
PROXMOX_SSH_KEY = environ.get('PROXSTAR_PROXMOX_SSH_KEY', '')
|
PROXMOX_SSH_KEY = environ.get('PROXSTAR_PROXMOX_SSH_KEY', '')
|
||||||
PROXMOX_SSH_KEY_PASS = environ.get('PROXSTAR_PROXMOX_SSH_KEY_PASS', '')
|
PROXMOX_SSH_KEY_PASS = environ.get('PROXSTAR_PROXMOX_SSH_KEY_PASS', '')
|
||||||
|
|
||||||
|
|
|
@ -10,6 +10,23 @@ def connect_proxmox():
|
||||||
proxmox = ProxmoxAPI(
|
proxmox = ProxmoxAPI(
|
||||||
host,
|
host,
|
||||||
user=app.config['PROXMOX_USER'],
|
user=app.config['PROXMOX_USER'],
|
||||||
|
password=app.config['PROXMOX_PASS'],
|
||||||
|
verify_ssl=False)
|
||||||
|
version = proxmox.version.get()
|
||||||
|
return proxmox
|
||||||
|
except:
|
||||||
|
if app.config['PROXMOX_HOSTS'].index(host) == (
|
||||||
|
len(app.config['PROXMOX_HOSTS']) - 1):
|
||||||
|
print('Unable to connect to any of the given Proxmox servers!')
|
||||||
|
raise
|
||||||
|
|
||||||
|
|
||||||
|
def connect_proxmox_ssh():
|
||||||
|
for host in app.config['PROXMOX_HOSTS']:
|
||||||
|
try:
|
||||||
|
proxmox = ProxmoxAPI(
|
||||||
|
host,
|
||||||
|
user=app.config['PROXMOX_SSH_USER'],
|
||||||
private_key_file='proxmox_ssh_key',
|
private_key_file='proxmox_ssh_key',
|
||||||
password=app.config['PROXMOX_SSH_KEY_PASS'],
|
password=app.config['PROXMOX_SSH_KEY_PASS'],
|
||||||
backend='ssh_paramiko')
|
backend='ssh_paramiko')
|
||||||
|
|
|
@ -5,7 +5,7 @@ from proxstar import db, starrs
|
||||||
from proxstar.db import get_vm_expire
|
from proxstar.db import get_vm_expire
|
||||||
from proxstar.util import lazy_property
|
from proxstar.util import lazy_property
|
||||||
from proxstar.starrs import get_ip_for_mac
|
from proxstar.starrs import get_ip_for_mac
|
||||||
from proxstar.proxmox import connect_proxmox, get_node_least_mem, get_free_vmid, get_vm_node
|
from proxstar.proxmox import connect_proxmox, connect_proxmox_ssh, get_node_least_mem, get_free_vmid, get_vm_node
|
||||||
from flask import current_app as app
|
from flask import current_app as app
|
||||||
|
|
||||||
|
|
||||||
|
@ -204,16 +204,16 @@ class VM(object):
|
||||||
return get_vm_expire(db, self.id, app.config['VM_EXPIRE_MONTHS'])
|
return get_vm_expire(db, self.id, app.config['VM_EXPIRE_MONTHS'])
|
||||||
|
|
||||||
def set_ci_user(self, user):
|
def set_ci_user(self, user):
|
||||||
proxmox = connect_proxmox()
|
proxmox = connect_proxmox_ssh()
|
||||||
proxmox.nodes(self.node).qemu(self.id).config.put(ciuser=user)
|
proxmox.nodes(self.node).qemu(self.id).config.put(ciuser=user)
|
||||||
|
|
||||||
def set_ci_ssh_key(self, ssh_key):
|
def set_ci_ssh_key(self, ssh_key):
|
||||||
proxmox = connect_proxmox()
|
proxmox = connect_proxmox_ssh()
|
||||||
escaped_key = urllib.parse.quote(ssh_key, safe='')
|
escaped_key = urllib.parse.quote(ssh_key, safe='')
|
||||||
proxmox.nodes(self.node).qemu(self.id).config.put(sshkey=escaped_key)
|
proxmox.nodes(self.node).qemu(self.id).config.put(sshkey=escaped_key)
|
||||||
|
|
||||||
def set_ci_network(self):
|
def set_ci_network(self):
|
||||||
proxmox = connect_proxmox()
|
proxmox = connect_proxmox_ssh()
|
||||||
proxmox.nodes(self.node).qemu(self.id).config.put(ipconfig0='ip=dhcp')
|
proxmox.nodes(self.node).qemu(self.id).config.put(ipconfig0='ip=dhcp')
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -78,7 +78,7 @@ def start_ssh_tunnel(node, port):
|
||||||
port = int(port)
|
port = int(port)
|
||||||
server = SSHTunnelForwarder(
|
server = SSHTunnelForwarder(
|
||||||
node,
|
node,
|
||||||
ssh_username='root',
|
ssh_username=app.config['PROXMOX_SSH_USER'],
|
||||||
ssh_pkey='proxmox_ssh_key',
|
ssh_pkey='proxmox_ssh_key',
|
||||||
ssh_private_key_password=app.config['PROXMOX_SSH_KEY_PASS'],
|
ssh_private_key_password=app.config['PROXMOX_SSH_KEY_PASS'],
|
||||||
remote_bind_address=('127.0.0.1', port),
|
remote_bind_address=('127.0.0.1', port),
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue