Hyppää sisältöön

Docs CSC now features an automatic Finnish translation. Click here for more information.

Warning!

Puhti and Mahti will be decommissioned after Roihu becomes available. Users should clean up unnecessary files and move any required data by the end of August 2026. See the Roihu data preparation instructions for details.

Puhti scratch is very full: keep only active data there and move or delete everything else. No new Puhti scratch quota will be granted.

Etätyöpöydän käyttö cPoudassa

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 työpöytää voidaan käyttää 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 -skripteihin, napsauta tästä

Valmistelut

Hyödynnämme seuraavia teknologioita etätyöpöydän asentamiseen:

  • standard-flavor, esimerkiksi standard.medium
  • Almalinux-9 -levykuva (Poudassa epel-repositorio on jo asennettu)
  • 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 voida asentaa

  1. Käynnistä standard-flavor-instanssi Almalinux-9-levykuvalla.
  2. Liitä instanssiin kelluva IP-osoite.
  3. Salli suojaussäännöissä saapuva SSH-liikenne (portti 22).
  4. Otamme SSH-yhteyden instanssiin tällä komennolla ja luomme SSH-tunnelin.
ssh -L2001:localhost:6081 almalinux@YOUR-FLOATING-IP

Tämä toimii myös ainakin Windows PowerShellissä. Jos sinulla ei ole ssh-agentia käynnissä, sinun täytyy määrittää myös SSH-avaimesi:

ssh -i C:\users\localusername\.ssh\yourkey.pem -L2001:localhost:6081 almalinux@YOUR-FLOATING-IP

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

sudo dnf install -y novnc tigervnc-server

Määritä ohjelmistot

Luo esimerkiksi uusi käyttäjä nimeltä vncuser.

sudo useradd vncuser
sudo passwd vncuser
sudo su - vncuser

Luo perusasetukset käyttäjälle vncuser, jotta etätyöpöytää voidaan käyttää.

vncpasswd

Password:
Verify:
Would you like to enter a view-only password (y/n)? n

Poistu vncuser-kuoresta

exit

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

sudo cp /lib/systemd/system/vncserver@.service /etc/systemd/system/vncserver@:1.service

Määritä vncuser näytölle :1

sudo sh -c "cat >> /etc/tigervnc/vncserver.users" <<EOF
:1=vncuser
EOF

Ota vncserver-palvelu käyttöön ja käynnistä se

sudo systemctl enable vncserver@:1.service && sudo systemctl start vncserver@:1.service

Voit tarkistaa palvelun tilan

sudo systemctl status vncserver@:1.service

Ja se kuuntelee portissa 5901 osoitteessa 0.0.0.0 (ei vain localhostissa 127.0.0.1)

ss -tulpn | egrep -i 'vnc|590'

Voit käynnistää noVNC-asiakkaan suorittamalla

novnc_server --listen 6081 --vnc localhost:5901

Sovelluksen sijainti voi vaihdella käyttämäsi Linux-jakelun mukaan. --listen 6081 tarkoittaa, missä portissa palvelua käytetään. --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 suosittelemme vahvasti olemaan tekemättä niin. VNC on yksi helpoimmin hyväksikäytettävistä palveluista internetissä; kyse ei ole siitä, hakkeroidaanko palvelimesi, vaan siitä milloin. Jos silti päätät sivuuttaa suosituksemme, varmista ainakin, että lisäät palvelimellesi hyvän suojaussäännön, jotta 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ähdyssä Almalinux-9:ssä, mutta muutamien pakettien nimet ovat erilaisia.

  1. Käynnistä standard-flavor-instanssi Ubuntu-22.04-levykuvalla.
  2. Liitä instanssiin kelluva IP-osoite.
  3. Salli suojaussäännöissä saapuva SSH-liikenne (portti 22).
  4. Otamme SSH-yhteyden instanssiin tällä komennolla ja luomme SSH-tunnelin.
ssh -L2001:localhost:6081 ubuntu@YOUR-FLOATING-IP

Tämä toimii myös ainakin Windows PowerShellissä. Jos sinulla ei ole ssh-agentia käynnissä, sinun täytyy määrittää myös SSH-avaimesi:

ssh -i C:\users\localusername\.ssh\yourkey.pem -L2001:localhost:6081 ubuntu@YOUR-FLOATING-IP

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

sudo snap install novnc
sudo apt install -y tigervnc-standalone-server

Määritä ohjelmistot

Luo esimerkiksi uusi käyttäjä nimeltä vncuser.

sudo useradd vncuser
sudo su - vncuser

Luo perusasetukset käyttäjälle vncuser, jotta etätyöpöytää voidaan käyttää.

vncpasswd

Password:
Verify:
Would you like to enter a view-only password (y/n)? n

Poistu vncuser-kuoresta

exit

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

sudo cp /lib/systemd/system/tigervncserver@.service /etc/systemd/system/tigervncserver@:1.service

Määritä vncuser näytölle :1

sudo sh -c "cat >> /etc/tigervnc/vncserver.users" <<EOF
:1=vncuser
EOF

Ota vncserver-palvelu käyttöön ja käynnistä se

sudo systemctl enable tigervncserver@:1.service && sudo systemctl start tigervncserver@:1.service

Voit tarkistaa palvelun tilan

sudo systemctl status tigervncserver@:1.service

Ja se kuuntelee portissa 5901 osoitteessa 0.0.0.0 (ei vain localhostissa 127.0.0.1)

ss -tulpn | egrep -i 'vnc|590'

Voit käynnistää noVNC-asiakkaan suorittamalla

novnc --listen 6081 --vnc localhost:5901

Sovelluksen sijainti voi vaihdella käyttämäsi Linux-jakelun mukaan. --listen 6081 tarkoittaa, missä portissa palvelua käytetään. --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.

machine post creation

Voit valita joko Direct Inputin, mikä tarkoittaa että sinun täytyy kirjoittaa komennot itse, tai Filen, mikä tarkoittaa että voit ladata bash-skriptin tai cloud-init -skriptin.

Täältä löydät kaksi cloud-initiä käyttävää skriptiä. Toinen AlmaLinuxille ja toinen 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.

Koneen 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:

novnc_server --listen 6081 --vnc localhost:5901

Ubuntu:

novnc --listen 6081 --vnc localhost:5901

ja käyttää noVNC-istuntoa osoitteessa http://127.0.0.1:2001/vnc.html aiemmin asettamallasi vncpasswd:llä.

Suomenkielinen tekoälykäännös

Sisällössä voi esiintyä virheellistä tietoa tekoälykäännöksestä johtuen.

Klikkaa tästä antaaksesi palautetta