Vdiclient

Материал из wiki.nntc.nnov.ru
Перейти к навигации Перейти к поиску

На базе Alt Straterkit MATE

wget http://nightly.altlinux.org/stable/x86_64/release/alt-p10-mate-20221209-x86_64.iso

Установка VDICLIENT

https://github.com/joshpatten/PVE-VDIClient

apt-get update -y
apt-get install python3-module-pip python3-modules-tkinter virt-viewer git -y
 
cd /opt/
git clone https://github.com/joshpatten/PVE-VDIClient.git
cd ./PVE-VDIClient/
chmod +x requirements.sh
./requirements.sh
cp vdiclient.py /usr/local/bin
chmod +x /usr/local/bin/vdiclient.py
mkdir /etc/vdiclient
cat << 'EOF' > /etc/vdiclient/vdiclient.ini
[General]
# This is the title that is diplayed to the user
title = VDI Login
# This is the PySimpleGui Theme that is used. Run vdiclient.py with flag `--list_themes` for a list of themes
theme = LightBlue
# Program Icon
icon = vdiicon.ico
# Logo displayed on all windows
logo = vdiclient.png
# Enable Kiosk mode, which does not allow the user to close anything
kiosk = False
# Enable/Disable Fullscreen mode (not applicable in Kiosk mode)
fullscreen = True
# Enable displaying SPICE ini file before opening virt-viewer
inidebug = False
# Select which guest types to display. Acceptable values: both, lxc, qemu
guest_type = both

[Authentication]
# This is the authentication backend that will be used to authenticate
auth_backend = pve
# If enabled, 2FA TOTP entry dialog will show
auth_totp = false
# If disabled, TLS certificate will not be checked
tls_verify = false
# User name (if using token)
#user = user
# API Token Name
#token_name = dvi
# API Token Value
#token_value = xxx-x-x-x-xxx

[Hosts]
# Hosts are entered as `IP/FQDN = Port`
#10.10.10.100 = 8006
#pve1.example.com = 8006

cluster-node1 = 8006

[SpiceProxyRedirect]
# The Spice Proxy provided by the Proxmox API may need to have its host/port rewritten
# These rewrite rules are written `IP:port = IP:port`
# 1. Use the inidebug and read the current proxy=pve1.example.com:3128
# 2. Add your proxmox ip to the right side e.g. 123.123.123.123:6000
#pve1.example.com:3128 = 123.123.123.123:6000

[AdditionalParameters]
# If you wish to define additional parameters to pass to virt-viewer you may define them here
# More parameter definitions here: https://www.mankier.com/1/remote-viewer
# Some Examples:
# Enable USB passthrough
enable-usbredir = true
# Enable auto USB device sharing
enable-usb-autoshare = true

EOF


cat << 'EOF' > /etc/hosts
127.0.0.1 localhost.localdomain localhost

10.207.151.243 cluster-node1
10.207.151.242 cluster-node2
10.207.151.241 cluster-node3
10.207.151.240 cluster-node4
10.207.151.239 cluster-node5
10.207.151.238 cluster-node6
10.207.151.237 cluster-node7
10.207.151.236 cluster-node8
10.207.151.235 cluster-node9
10.207.151.234 cluster-node10
EOF


cat << 'EOF' > /usr/share/applications/vdiclient.desktop
[Desktop Entry]
Exec=vdiclient.py
Icon=/usr/share/icons/Adwaita/32x32/devices/computer.png
Type=Application
Name=PVE-VDIClient
Categories=Network;
EOF

chmod +x /usr/share/applications/vdiclient.desktop

Ярлыки на рабочий стол

cp /usr/share/applications/mate-display-properties.desktop /etc/skel/Desktop/
cp /usr/share/applications/vdiclient.desktop /etc/skel/Desktop/
chmod +x /etc/skel/Desktop/*.desktop

Скелетон пользователя

Отключены панели mate. Оставлены две кнопки на рабочем столе. В base64 tgz архив с каталогом .config для скелетона

cd /opt
cat << 'EOF' > skel.tgz.base64.txt
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
EOF

cat skel.tgz.base64.txt | base64 -d > skel.tgz
cd /etc/skel
tar -xzpf /opt/skel.tgz