Here is community submitted code to run DHCP on the proxmox nodes, then the WHMCS machine edits the config file https://modulesfactory.com/forum/index. ... networksh/ and their wiki https://modulesfactory.com/knowledgebas ... r-KVM.html
It would seem if you are granting access to WHMCS to ssh to the proper proxmox node you could extend this as well to add/remove tun/tap, pptp, fuse, gre any number of functions that need to manually preformed
Some scripts I use with SolusVM from before they supported tun/tap from the UI and also provide gre for OpenVZ
- Code: Select all
#!/bin/sh
VPS="$1"
for VPS in $VPS; do
vzctl set $VPS --features "nfs:on" --save
vzctl set $VPS --features ppp:on --save
vzctl set $VPS --features ipgre:on --save
vzctl set $VPS --devices c:10:200:rw --devices c:108:0:rw --device c:10:229:rw --save
vzctl exec $VPS mknod /dev/ppp c 108 0
vzctl exec $VPS chmod 600 /dev/ppp
vzctl exec $VPS mknod /dev/fuse c 10 229
vzctl set $VPS --capability net_admin:on --save
vzctl set $VPS --capability net_raw:on --save
vzctl set $VPS --capability sys_admin:on --save
done;
Modules are needed for the node as well, from a CentOS 6 node
- Code: Select all
# cat /etc/rc.modules
#!/bin/sh
#
# This script will be executed *after* all the other init scripts.
# You can put your own initialization stuff in here if you don't
# want to do the full Sys V style init stuff.
modprobe tun
modprobe fuse
modprobe iptable_nat
modprobe ipt_recent
modprobe ipt_REDIRECT
modprobe xt_connlimit
modprobe ppp_mppe
modprobe ip_gre
modprobe ipt_MASQUERADE
modprobe ipt_MARK
modprobe ipt_mark
modprobe ppp_async
modprobe ppp_deflate
modprobe zlib_deflate
modprobe ppp_generic
modprobe slhc
modprobe crc_ccitt
modprobe xt_state
modprobe ip6_tables
modprobe ip6table_filter
modprobe ip6table_mangle
modprobe nf_conntrack_ipv6
Which can easily be done on a proxmox node
- Code: Select all
# cat /etc/modules
# /etc/modules: kernel modules to load at boot time.
#
# This file contains the names of kernel modules that should be loaded
# at boot time, one per line. Lines beginning with "#" are ignored.
# Parameters can be specified after the module name.
tun
fuse
iptable_nat
ipt_recent
ipt_REDIRECT
xt_connlimit
ppp_mppe
ip_gre
ipt_MASQUERADE
ipt_MARK
ipt_mark
ppp_async
ppp_deflate
zlib_deflate
ppp_generic
slhc
crc_ccitt
xt_state
ip6_tables
ip6table_filter
ip6table_mangle
nf_conntrack_ipv6
I am not good with coding, so why I do not mind paying for someone else to do so, and I am surprised these basic needed functions are not in the Modulesgarden module to extend the functionality and worth of the module.