cPoudan käyttö etätyöpöytään
Tässä artikkelissa käydään läpi, miten etätyöpöytä otetaan käyttöön noVNC:n ja SSH-tunnelin avulla c- ja ePoudassa ei-GPU-flavorilla. Käytämme noVNC:tä, koska sen avulla voimme käyttää työpöytää selaimella eli paikallisia asennuksia ei tarvita. Jos haluat ohjeet GPU-instanssin käyttämiseen renderöintiin, katso täältä: cPouta GPU:n käyttö renderöintiin
Ensin näytämme, miten tarvittavat ohjelmistot asennetaan käsin. Tämän artikkelin lopussa näytämme, miten tämä tehdään automaattisesti instanssia luotaessa (post install -skriptit). Jos haluat siirtyä suoraan post install -skriptiin, napsauta tästä
Valmistelut
Hyödynnämme seuraavia teknologioita etätyöpöydän asentamiseen:
- standard-flavor, esimerkiksi standard.medium
- Almalinux-9-image (Poudassa epel-repositorio on jo asennettu valmiiksi)
- noVNC, koska sen avulla voimme käyttää selainta perinteisen VNC-asiakasohjelman sijaan työpöydän katseluun
- tigervnc-server VNC-palvelimena
- Xfce työpöytäympäristönä
- SSH-tunneli, jotta VNC-palvelin ei ole avoinna internetiin. Tämä on erittäin tärkeää.
Luo ja käytä instanssiasi etätyöpöytää varten
Warning
Älä käytä standard.tiny-flavoria. Koska tässä flavorissa on vain 1 Go RAM-muistia, noVNC:tä ei voi asentaa
- Käynnistä standard-flavor-instanssi Alamlinux-9-imagella.
- Liitä instanssiin floating IP.
- Salli suojaussäännöissä saapuva SSH-liikenne (portti 22).
- Otamme SSH-yhteyden instanssiin tällä komennolla ja luomme SSH-tunnelin.
Tämä toimii ainakin myös Windows PowerShellissä. Jos sinulla ei ole ssh-agentia käynnissä, sinun täytyy määrittää myös SSH-avaimesi:
Huomaa, että portti 2001 on se, jota käytät myöhemmin selaimessa.
-L2001:localhost:6081 tarkoittaa, että voimme käyttää palvelimen porttia 6081
tietokoneemme paikallisen portin 2001 kautta. Pidä pääteikkuna auki. SSH-komento on ainoa vaihe,
joka tarvitaan paikallisella tietokoneella.
Asenna tarvittavat ohjelmistot virtuaalikoneelle
Tässä esimerkissä käytämme Xfce:tä työpöytäympäristönä. Jos haluat käyttää
jotakin muuta työpöytäympäristöä, sinun täytyy todennäköisesti muokata
vncserver-config-defaults-asetustiedostoa.
sudo dnf update
sudo dnf install -y epel-release
sudo dnf groupinstall -y "Xfce" "base-x"
sudo systemctl set-default graphical
sudo reboot
Asenna noVNC ja tigervnc vncserveriä varten
Määritä ohjelmistot
Luo esimerkiksi uusi käyttäjä nimeltä vncuser.
Luo käyttäjälle vncuser perusasetukset, jotta etätyöpöytää voidaan käyttää.
Poistu vncuser-kuoresta
Määritä haluamasi resoluutio. 1440x900 on yleinen resoluutio, mutta tämän on testattu toimivan jopa resoluutiolla 3840x2160. Tämä voidaan määrittää globaalisti kaikille käyttäjille.
sudo sed -i -e 's/=gnome/=xfce/g' /etc/tigervnc/vncserver-config-defaults
sudo sh -c "cat >> /etc/tigervnc/vncserver-config-defaults" <<EOF
## CONFIGURATION FOR ALL USERS ##
geometry=1440x900
depth=24
localhost=no
EOF
Tai jokaisella käyttäjällä voi olla oma asetuksensa. Tässä esimerkissä käyttäjällä vncuser
sudo su - vncuser
cat >> ~/.config/tigervnc/config <<EOF
geometry=1440x900
depth=24
session=xfce
localhost=no
EOF
Etätyöpöydän käynnistäminen
Huomaa, että tällä ohjeella NoVNC-istunto toimii vain näytöllä :1.
Hyvä käytäntö on käyttää systemd-palvelua vncserverin käynnistämiseen. Hakemistossa
/lib/systemd/system on mallipohja nimeltä vncserver@.service. Kopioi se tiedostoon /etc/systemd/system/vncserver@:1.service
Määritä vncuser näytölle :1
Ota vncserver-palvelu käyttöön ja käynnistä se
Voit tarkistaa palvelun tilan
Ja se kuuntelee portissa 5901 osoitteessa 0.0.0.0 (ei vain localhostissa 127.0.0.1)
Voit käynnistää noVNC-asiakasohjelman suorittamalla
Sovelluksen sijainti voi vaihdella käyttämäsi Linux-jakelun mukaan.
--listen 6081 tarkoittaa, missä portissa palvelu on käytettävissä.
--vnc localhost:5901 tarkoittaa, mistä portista se odottaa vncserverin olevan
käytettävissä. Voit poistua noVNC-istunnosta painamalla ctrl+c.
Sinun pitäisi nyt pystyä käyttämään noVNC-istuntoa avaamalla selaimessa
linkki http://127.0.0.1:2001/vnc.html . Huomaa, että porttinumero on
sama kuin SSH-komennossa käyttämäsi.
Tärkeää tietoa, jos et halua käyttää SSH-tunnelia
On toki myös mahdollista käyttää noVNC:tä tai VNC:tä suoraan internetin yli, mutta emme suosittele tätä vahvasti. VNC on yksi helpoimmin internetissä hyväksikäytettävistä palveluista; kyse ei ole siitä, hakkeroidaanko palvelimesi, vaan milloin. Jos aiot silti sivuuttaa suosituksemme, varmista ainakin, että lisäät palvelimellesi hyvän suojaussäännön niin, että voit käyttää palvelinta vain omasta IP-osoitteestasi.
Guacamolen käyttöönotto
Guacamole on asiakasohjelmaton etätyöpöytäyhdyskäytävä. Se tukee standardiprotokollia, kuten VNC:tä, RDP:tä ja SSH:ta. Lisätietoja on virallisella verkkosivustolla
Voit ottaa Guacamolen helposti käyttöön tällä Ansible-skriptillä
Aiemmin otimme käyttöön uuden graafisen palvelimen. Tiedostossa templates/user-mapping.xml.j2
sinun täytyy määrittää nimi, palvelimen paikallinen osoite ja portti.
Käyttöönoton jälkeen Guacamole on käytettävissä osoitteessa https://<YOUR_FLOATING_IP>:8080/guacamole
Sen avulla voit käyttää eri koneita, joissa on vncserver, yhdestä paikasta.
Jos haluat käyttää Ubuntua
Tätä kirjoitettaessa ubuntu-desktop ja tigervnc-server toimivat Ubuntu-22:ssa.
Jos haluat käyttää Ubuntu-24:ää, käytä Xfce:tä graafisena ympäristönä.
Tässä ovat vaiheet tigervnc-serverin asentamiseen Ubuntu-22:ssa.
Vaiheet ovat melko samanlaiset kuin aiemmin nähty Almalinux-9:ssä, mutta muutamien pakettien nimet ovat erilaisia.
- Käynnistä standard-flavor-instanssi Ubuntu-22.04-imagella.
- Liitä instanssiin floating IP.
- Salli suojaussäännöissä saapuva SSH-liikenne (portti 22).
- Otamme SSH-yhteyden instanssiin tällä komennolla ja luomme SSH-tunnelin.
Tämä toimii ainakin myös Windows PowerShellissä. Jos sinulla ei ole ssh-agentia käynnissä, sinun täytyy määrittää myös SSH-avaimesi:
Huomaa, että portti 2001 on se, jota käytät myöhemmin selaimessa.
-L2001:localhost:6081 tarkoittaa, että voimme käyttää palvelimen porttia 6081
tietokoneemme paikallisen portin 2001 kautta. Pidä pääteikkuna auki. SSH-komento on ainoa vaihe,
joka tarvitaan paikallisella tietokoneella.
Tässä esimerkissä käytämme Ubuntu-desktopia työpöytäympäristönä. Jos haluat käyttää
jotakin muuta työpöytäympäristöä, sinun täytyy todennäköisesti muokata
vncserver-config-defaults-asetustiedostoa.
sudo apt update && sudo apt upgrade
sudo apt install ubuntu-desktop -y
sudo systemctl set-default graphical
sudo reboot
Asenna noVNC ja tigervnc vncserveriä varten
Määritä ohjelmistot
Luo esimerkiksi uusi käyttäjä nimeltä vncuser.
Luo käyttäjälle vncuser perusasetukset, jotta etätyöpöytää voidaan käyttää.
Poistu vncuser-kuoresta
Määritä haluamasi resoluutio. 1440x900 on yleinen resoluutio, mutta tämän on testattu toimivan jopa resoluutiolla 3840x2160. Tämä voidaan määrittää globaalisti kaikille käyttäjille.
sudo sh -c "cat >> /etc/tigervnc/vncserver-config-defaults" <<EOF
## CONFIGURATION FOR ALL USERS ##
\$geometry = "1440x900";
\$depth = "24";
\$session = "ubuntu";
\$localhost = "no";
EOF
Tai jokaisella käyttäjällä voi olla oma asetuksensa. Tässä esimerkissä käyttäjällä vncuser
sudo su - vncuser
cat >> ~/.vnc/config <<EOF
\$geometry = "1440x900";
\$depth = "24";
\$session = "ubuntu";
\$localhost = "no";
EOF
Etätyöpöydän käynnistäminen
Huomaa, että tällä ohjeella NoVNC-istunto toimii vain näytöllä :1.
Hyvä käytäntö on käyttää systemd-palvelua vncserverin käynnistämiseen. Hakemistossa
/lib/systemd/system on mallipohja nimeltä tigervncserver@.service. Kopioi se tiedostoon /etc/systemd/system/tigervncserver@:1.service
Määritä vncuser näytölle :1
Ota vncserver-palvelu käyttöön ja käynnistä se
Voit tarkistaa palvelun tilan
Ja se kuuntelee portissa 5901 osoitteessa 0.0.0.0 (ei vain localhostissa 127.0.0.1)
Voit käynnistää noVNC-asiakasohjelman suorittamalla
Sovelluksen sijainti voi vaihdella käyttämäsi Linux-jakelun mukaan.
--listen 6081 tarkoittaa, missä portissa palvelu on käytettävissä.
--vnc localhost:5901 tarkoittaa, mistä portista se odottaa vncserverin olevan
käytettävissä. Voit poistua noVNC-istunnosta painamalla ctrl+c.
Sinun pitäisi nyt pystyä käyttämään noVNC-istuntoa avaamalla selaimessa
linkki http://127.0.0.1:2001/vnc.html . Huomaa, että porttinumero on
sama kuin SSH-komennossa käyttämäsi.
Post install -skriptit
Kun luot instanssin cPoudassa, on mahdollista lisätä Post-Creation-vaihe.
Sen avulla voit suorittaa automaattisia tehtäviä ohjelmistojen asentamiseksi ja/tai päivitysten ajamiseksi.

Voit valita joko Direct Input, mikä tarkoittaa, että sinun täytyy kirjoittaa komennot itse,
tai File, mikä tarkoittaa, että voit lataa palveluun bash-skriptin tai cloud-init
-skriptin.
Täältä löydät kaksi cloud-init-skriptiä. Toisen AlmaLinuxille ja toisen Ubuntulle:
init_vnc_almalinux.yaml:
#cloud-config
#
# Above first line indicates that the file is a Cloud-Init configuration file. Don't remove it
# Update the package list
package_update: true
# Upgrade all installed packages to their latest versions
package_upgrade: true
# List of packages to install
packages:
- epel-release
runcmd:
- dnf install -y tigervnc-server novnc
- dnf groupinstall -y "Xfce" "base-x"
- systemctl set-default graphical
- cp /lib/systemd/system/vncserver@.service /etc/systemd/system/vncserver@:1.service
- systemctl enable vncserver@:1.service
users:
- default
- vncuser
write_files:
- content: |
## CONFIGURATION FOR ALL USERS ##
geometry=1440x900
depth=24
session=xfce
localhost=no
path: /etc/tigervnc/vncserver-config-defaults
append: true
- content: |
:1=vncuser
path: /etc/tigervnc/vncserver.users
append: true
final_message: |
init_vnc_almalinux has finished
version: $version
timestamp: $timestamp
datasource: $datasource
uptime: $uptime
power_state:
mode: reboot
message: rebooting machine
init_vnc_ubuntu.yaml:
#cloud-config
#
# Above first line indicates that the file is a Cloud-Init configuration file. Don't remove it
# Update the package list
package_update: true
# Upgrade all installed packages to their latest versions
package_upgrade: true
# List of packages to install
packages:
- ubuntu-desktop
- tigervnc-standalone-server
- snap:
- novnc
users:
- default
- vncuser
write_files:
- content: |
## CONFIGURATION FOR ALL USERS ##
$geometry = "1440x900";
$depth = "24";
$session = "ubuntu";
$localhost = "no";
path: /etc/tigervnc/vncserver-config-defaults
append: true
- content: |
:1=vncuser
path: /etc/tigervnc/vncserver.users
append: true
runcmd:
- systemctl set-default graphical
- cp /lib/systemd/system/tigervncserver@.service /etc/systemd/system/tigervncserver@:1.service
- systemctl enable tigervncserver@:1.service
final_message: |
init_vnc_ubuntu has finished
version: $version
timestamp: $timestamp
datasource: $datasource
uptime: $uptime
power_state:
mode: reboot
message: rebooting machine
Suosittelemme tallentamaan nämä skriptit yaml-tiedostoon ja käyttämään File-vaihtoehtoa Post-Creation-valikossa.
Koneesi asennuksen jälkeen sinun täytyy vielä luoda VNC-salasana. Yhdistä koneeseesi SSH:n kautta
(ssh -L2001:localhost:6081 {ubuntu | almalinux}@{YOUR-FLOATING-IP}) ja suorita seuraavat komennot:
AlmaLinuxille:
$ sudo su - vncuser
$ vncpasswd
Password:
Verify:
Would you like to enter a view-only password (y/n)? n
$ exit
$ sudo systemctl start vncserver@:1.service
Ubuntulle:
$ sudo su - vncuser
$ vncpasswd
Password:
Verify:
Would you like to enter a view-only password (y/n)? n
$ exit
$ sudo systemctl start tigervncserver@:1.service
Kun palvelu on käynnissä, voit suorittaa novnc:
Almalinux:
Ubuntu:
ja käyttää noVNC-istuntoa osoitteessa http://127.0.0.1:2001/vnc.html aiemmin asettamallasi vncpasswd-salasanalla.