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(',')
|
||||
]
|
||||
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_SSH_USER = environ.get('PROXSTAR_PROXMOX_SSH_USER', '')
|
||||
PROXMOX_SSH_KEY = environ.get('PROXSTAR_PROXMOX_SSH_KEY', '')
|
||||
PROXMOX_SSH_KEY_PASS = environ.get('PROXSTAR_PROXMOX_SSH_KEY_PASS', '')
|
||||
|
||||
|
|
|
@ -10,6 +10,23 @@ def connect_proxmox():
|
|||
proxmox = ProxmoxAPI(
|
||||
host,
|
||||
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',
|
||||
password=app.config['PROXMOX_SSH_KEY_PASS'],
|
||||
backend='ssh_paramiko')
|
||||
|
|
|
@ -5,7 +5,7 @@ from proxstar import db, starrs
|
|||
from proxstar.db import get_vm_expire
|
||||
from proxstar.util import lazy_property
|
||||
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
|
||||
|
||||
|
||||
|
@ -204,16 +204,16 @@ class VM(object):
|
|||
return get_vm_expire(db, self.id, app.config['VM_EXPIRE_MONTHS'])
|
||||
|
||||
def set_ci_user(self, user):
|
||||
proxmox = connect_proxmox()
|
||||
proxmox = connect_proxmox_ssh()
|
||||
proxmox.nodes(self.node).qemu(self.id).config.put(ciuser=user)
|
||||
|
||||
def set_ci_ssh_key(self, ssh_key):
|
||||
proxmox = connect_proxmox()
|
||||
proxmox = connect_proxmox_ssh()
|
||||
escaped_key = urllib.parse.quote(ssh_key, safe='')
|
||||
proxmox.nodes(self.node).qemu(self.id).config.put(sshkey=escaped_key)
|
||||
|
||||
def set_ci_network(self):
|
||||
proxmox = connect_proxmox()
|
||||
proxmox = connect_proxmox_ssh()
|
||||
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)
|
||||
server = SSHTunnelForwarder(
|
||||
node,
|
||||
ssh_username='root',
|
||||
ssh_username=app.config['PROXMOX_SSH_USER'],
|
||||
ssh_pkey='proxmox_ssh_key',
|
||||
ssh_private_key_password=app.config['PROXMOX_SSH_KEY_PASS'],
|
||||
remote_bind_address=('127.0.0.1', port),
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue