feat: add samba and proxmox modules, update config with node secrets
This commit is contained in:
parent
a80be5d8aa
commit
9c8c771cb1
7 changed files with 203 additions and 6 deletions
|
|
@ -3,6 +3,8 @@ from .config import Config
|
|||
from .dns import DNSManager
|
||||
from .ingress import IngressManager
|
||||
from .router import RouterManager
|
||||
from .proxmox import ProxmoxManager
|
||||
from .samba import SambaManager
|
||||
import sys
|
||||
|
||||
@click.group()
|
||||
|
|
@ -16,6 +18,61 @@ def cli(ctx, config):
|
|||
click.echo(f"Error: {e}", err=True)
|
||||
sys.exit(1)
|
||||
|
||||
@cli.group()
|
||||
def proxmox():
|
||||
"""Manage Proxmox VMs and Containers"""
|
||||
pass
|
||||
|
||||
@proxmox.command(name='list-lxcs')
|
||||
@click.option('--node', help='Proxmox node name')
|
||||
@click.pass_obj
|
||||
def proxmox_list_lxcs(config, node):
|
||||
mgr = ProxmoxManager(config, node)
|
||||
click.echo(mgr.list_lxcs())
|
||||
|
||||
@proxmox.command(name='create-lxc')
|
||||
@click.argument('vmid')
|
||||
@click.argument('template')
|
||||
@click.argument('hostname')
|
||||
@click.argument('ip')
|
||||
@click.argument('gateway')
|
||||
@click.option('--node', help='Proxmox node name')
|
||||
@click.option('--password', help='Root password for LXC')
|
||||
@click.pass_obj
|
||||
def proxmox_create_lxc(config, vmid, template, hostname, ip, gateway, node, password):
|
||||
mgr = ProxmoxManager(config, node)
|
||||
mgr.create_lxc(vmid, template, hostname, ip, gateway, password=password)
|
||||
click.echo(f"LXC {vmid} ({hostname}) created on {mgr.node_name or 'default node'}")
|
||||
|
||||
@cli.group()
|
||||
def samba():
|
||||
"""Manage Samba AD Identity"""
|
||||
pass
|
||||
|
||||
@samba.command(name='list-users')
|
||||
@click.pass_obj
|
||||
def samba_list_users(config):
|
||||
mgr = SambaManager(config)
|
||||
click.echo(mgr.list_users())
|
||||
|
||||
@samba.command(name='add-user')
|
||||
@click.argument('username')
|
||||
@click.argument('password')
|
||||
@click.pass_obj
|
||||
def samba_add_user(config, username, password):
|
||||
mgr = SambaManager(config)
|
||||
mgr.add_user(username, password)
|
||||
click.echo(f"User {username} created")
|
||||
|
||||
@samba.command(name='add-to-group')
|
||||
@click.argument('group')
|
||||
@click.argument('username')
|
||||
@click.pass_obj
|
||||
def samba_add_to_group(config, group, username):
|
||||
mgr = SambaManager(config)
|
||||
mgr.add_to_group(group, username)
|
||||
click.echo(f"User {username} added to group {group}")
|
||||
|
||||
@cli.group()
|
||||
def dns():
|
||||
"""Manage DNS and DHCP"""
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue