Par défaut, le fichier généré par RavadaVDI n’embarque pas le mot de passe généré aléatoirement pour l’ouverture d’une session SPICE. De plus, la longueur du mot de passe (4 caractères) est beaucoup trop courte.
Le script suivant (ravada-patch.sh) permet de corriger ces deux problèmes sur RavadaVDI (version 1.8.0): il n’est plus nécessaire de saisir le mot de passe, sa longueur est portée à 16 caractères.
#!/bin/bash
dpkg -l patch >/dev/null 2>/dev/null || apt -y install patch
systemctl stop rvd_front.service
systemctl stop rvd_back.service
# Set spice passwords to 16 chars
files=$(grep -r "password = Ravada::Utils::random_name(4)" /usr/share/perl5/Ravada/* |grep password |awk '{print $1}' |cut -d: -f1)
for file in ${files} ; do
sed -i 's/password = Ravada::Utils::random_name(4)/password = Ravada::Utils::random_name(16)/g' ${file}
done
# Put spice passwords in ".vv" files, do no start viewer in fullscreen
[ -f Domain.pm.orig ] || cp /usr/share/perl5/Ravada/Domain.pm Domain.pm.orig
patch /usr/share/perl5/Ravada/Domain.pm Domain.pm.patch || cp Domain.pm.orig /usr/share/perl5/Ravada/Domain.pm
systemctl start rvd_back.service
systemctl start rvd_front.service
Le patch (Domain.pm.patch):
1861a1862,1863
> # Keep password for ".vv" file
> our $ppass="";
1864c1866,1868
< return $self->_data('spice_password');
---
> #return $self->_data('spice_password');
> our $ppass = $self->_data('spice_password');
> return $ppass;
1940c1944,1946
< $ret .="password=%s\n" if $self->spice_password();
---
> # Put password in ".vv" file
> #$ret .="password=%s\n" if $self->spice_password();
> $ret .="password=$ppass\n" if $self->spice_password();
1941a1948
> # Do not start in fullscreen
1943c1950
< "fullscreen=1\n"
---
> "fullscreen=0\n"