Vdiclient

Материал из wiki.nntc.nnov.ru
Версия от 14:01, 20 февраля 2023; Vovan (обсуждение | вклад) (Скелетон пользователя)
Перейти к навигации Перейти к поиску

На базе Alt Straterkit MATE

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

Модификация пакетной базы

apt-get update -y


Установка доп пакетов

apt-get install python3-module-pip python3-modules-tkinter virt-viewer git -y

Удаление лишних пакетов

Установка VDICLIENT

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

 
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

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

cp /usr/share/applications/mate-display-properties.desktop /home/altlinux/Desktop/
cp /usr/share/applications/vdiclient.desktop /home/altlinux/Desktop/

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

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