X2go: Difference between revisions

From ICO wiki
Jump to navigationJump to search
Mlehari (talk | contribs)
Mernits (talk | contribs)
No edit summary
 
(26 intermediate revisions by 2 users not shown)
Line 1: Line 1:
[[Category:IT infrastruktuuri teenused]]
'''See teema vajab kaasajastamist'''
= X2Go =
= X2Go =
== Autorid ==
Martin Lehari, Riho Hiiepuu, Kaarel Kont-Kontson
== Versioonide ajalugu ==
Versioon 1.0 - 15.12.2010
Versioon 1.1 - 16.12.2010


Autorid: Martin Lehari, Riho Hiiepuu, Kaarel Kont-Kontson
= Mis on x2go? =


== Mis on x2go? ==
x2go on vabavaraline terminal serveri projekt. x2go klientprogrammi on võimalik kasutada erinevatel operatsioonisüsteemidel (Windows, Linux, MacOS).


x2go on vabavaraline terminal serveri projekt. x2go võimaldab ka jooksutada erinevaid operatsiooni süsteeme virtuaal masinatena.
x2go võimaldab kasutada ka nö. "õhukesi" kliente (''thin client''). Nõutav on PXE tugi.
Näiteks: windows, linuxi erinevad distrod, MacOS.


x2go võimaldab ka luua õhukesi kliente väike seadete jaoks nagu pihuarvutid ja mobiil telefonid (millel on vastav tugi olemas).
= Mida kasutasime =


Käesoleva töö raames sai kasutatud op. süsteemina Debian GNU/Linux 5.0.7 (Lenny) 32bit versiooni. Katsetatud sai ka Ubuntu serveri ja desktopi väljalaskeid. Kuna X2Go tarkvara on mõeldud toimima ainult puhta Debiani peal, siis osade pakettide paigaldamine ebaõnnestus.
Käesoleva töö raames sai kasutatud operatsioonisüsteemina Debian GNU/Linux 5.0.7 (Lenny) 32bit versiooni. Katsetatud sai ka Ubuntu serveri ja desktopi väljalaskeid. Kuna X2Go tarkvara on mõeldud toimima ainult puhta Debiani peal, siis osade pakettide paigaldamine ebaõnnestus.


= Installeerimine =
= Installeerimine =
== Eeldused ==
== Eeldused ==
Toimiv võrguühendus, staatiline IP! Osata kasutadada linuxi käsurida.
Toimiv võrguühendus, staatiline IP! Osata kasutadada linuxi käsurida.
Kõik käsud sisestatakse '''root''' õigustes.


== x2go Server ==
== x2go Server ==
Line 27: Line 38:


Kõige lõpuks uuendame pakkide nimistu
Kõige lõpuks uuendame pakkide nimistu
<pre>aptitude update</pre>
<pre>apt-get update</pre>


Nüüd kus serveri paigalduseks on kõik eeldused loodud, võime vajalike pakkide paigaldusega jätkata. Esimese hooga paigaldatakse x2go serveri pakid koos SSH failisüsteemi ja PostgreSQL serveriga.
Nüüd kus serveri paigalduseks on kõik eeldused loodud, võime vajalike pakkide paigaldusega jätkata. Esimese hooga paigaldatakse x2go serveri pakid koos SSH failisüsteemi ja PostgreSQL serveriga.
<pre>aptitude install x2goserver x2gosessionadministration x2gokdebindings sshfs postgresql</pre>
<pre>apt-get install x2goserver x2gosessionadministration x2gokdebindings sshfs postgresql</pre>
Kui serverisse on paigaldatud ainult baasüsteem, siis lisanduvad paigaldatavate pakettide nimistusse veel mitmed sõltuvused (sh. xorg).
Kui serverisse on paigaldatud ainult baasüsteem, siis lisanduvad paigaldatavate pakettide nimistusse veel mitmed sõltuvused (sh. xorg).


Line 47: Line 58:
== LDAP server ==
== LDAP server ==
Järgmisena paigaldame lokaalse LDAP serveri (vajalik kasutajate autentimiseks).
Järgmisena paigaldame lokaalse LDAP serveri (vajalik kasutajate autentimiseks).
<pre>aptitude install x2goldaptools x2gouseradministration
<pre>apt-get install x2goldaptools x2gouseradministration x2gohostadministration x2gosystemadministration x2gogroupadministration x2gomail</pre>
x2gohostadministration x2gosystemadministration x2gogroupadministration x2gomail</pre>
LDAP'i paigaldusskriptid hakkavad küsima küsimusi. Vastamiseks võid kasutada vaikeväärtuseid, kuna hilisemad x2go paigaldusskriptid teevad vajalikud seadistused ise ära.
LDAP'i paigaldusskriptid hakkavad küsima küsimusi. Vastamiseks võid kasutada vaikeväärtuseid, kuna hilisemad x2go paigaldusskriptid teevad vajalikud seadistused ise ära.


Line 117: Line 127:
Tekitame uued kirjed kliendi hostname ja hosts faili.
Tekitame uued kirjed kliendi hostname ja hosts faili.


<pre>echo x2gothinclient >> /opt/x2gothinclient/etc/hostname
<pre>echo "x2gothinclient" >> /opt/x2gothinclient/etc/hostname
 
echo "127.0.0.1 localhost" >> /opt/x2gothinclient/etc/hosts</pre>
echo "127.0.0.1 localhost" >> /opt/x2gothinclient/etc/hosts</pre>


Line 131: Line 140:
<pre>chroot /opt/x2gothinclient /bin/bash</pre>
<pre>chroot /opt/x2gothinclient /bin/bash</pre>


Järgmiseks käsk
Järgmiseks käsk (ei ole kohustuslik, aga aitab jälgida, kummas keskkonnas parasjagu viibid)


<pre>PS1='(chroot) '$PS1</pre>
<pre>PS1='(chroot) '$PS1</pre>


Nüüd tuleb mountida faili süsteemid
Nüüd tuleb mountida failisüsteemid


<pre>mount -t proc none /proc
<pre>mount -t proc none /proc
mount -t devpts none /dev/pts/ </pre>
mount -t devpts none /dev/pts/ </pre>


Impordime x2go repositooriumi.
Lisame x2go repositooriumi
 
<pre>echo "deb http://x2go.obviously-nice.de/deb/ lenny main" >>/opt/x2gothinclient/etc/apt/sources.list</pre>
<pre>aptitude update
aptitude install syslinux locales linux-image-486</pre>
 
kui tuleb küsimus: Create a symbolic link to current kernel image '''Yes'''


kui tuleb küsimus: Do you want to abort now '''No'''
Uuendame pakkide nimistut ja paigaldame '''syslinux''', '''locales''' ja '''linux-image-486''' pakid
<pre>apt-get update
apt-get install syslinux locales linux-image-486</pre>
Kui tuleb küsimus: Create a symbolic link to current kernel image '''Yes'''


järgnevalt teeme reconfigure localses
Kui tuleb küsimus: Do you want to abort now '''No'''


Järgnevalt vaatame üle lokaliseerimise seaded.
<pre>dpkg-reconfigure locales</pre>
<pre>dpkg-reconfigure locales</pre>


Järgnevas failis (/etc/initramfs-tools/initramfs.conf) peame ära muutma ühe kirje (BOOT=nfs)
/etc/initramfs-tools/initramfs.conf failis peame ära muutma BOOT parameetri väärtuse:
<pre>BOOT=nfs</pre>
Muutmiseks võid kasutada jällegi meelepärast tekstredaktorit (vi, vim, nano, vms...)


<pre>nano /etc/initramfs-tools/initramfs.conf
BOOT=nfs</pre>


Järgnevalt
Järgnevalt
<pre>update-initramfs -u -v</pre>
<pre>update-initramfs -u -v</pre>


Installeerime x2gocleintsystem-i
Installeerime x2goclientsystem'i


<pre>aptitude install x2gothinclientsystem</pre>
<pre>apt-get install x2gothinclientsystem</pre>


'''Järgnevat käsku ei tohi väljaspool charoot kasutada'''
'''Järgnevat käsku ei tohi väljaspool chroot keskkonda kasutada'''


<pre>./x2gothinclient_install.sh</pre>
<pre>./x2gothinclient_install.sh</pre>
Line 177: Line 185:
<pre>exit</pre>
<pre>exit</pre>


Järgmisesk modida faili /etc/default/atftpd
Järgmisesk muuta faili '''/etc/default/atftpd''' sisu.


<pre>USE_INETD=false
<pre>USE_INETD=false
Line 208: Line 216:
<pre>label linux
<pre>label linux
kernel vmlinuz
kernel vmlinuz
append root=/dev/nfs nfsroot=192.168.0.250:/opt/x2gothinclient ro initrd=initrd.img ip=dhcp</pre>
append root=/dev/nfs nfsroot=<x2go_serveri_ip>:/opt/x2gothinclient ro initrd=initrd.img ip=dhcp</pre>


Kopeeri järgnev fail /tftpboot/ kausta
Kopeeri järgnev fail /tftpboot/ kausta
Line 218: Line 226:
<pre>nano  /etc/dhcp3/dhcpd.conf</pre>
<pre>nano  /etc/dhcp3/dhcpd.conf</pre>


<pre>option domain-name "<sinu domeeni nimi.local>";
<pre>option domain-name "<serveri_hostname>.local";


option domain-name-servers 192.168.0.250;
option domain-name-servers <x2go_serveri_ip>;


# x2go thin client range/group
# x2go thin client range/group


subnet 192.168.0.0 netmask 255.255.255.0 {
subnet <x2go_serveri_subnet> netmask <x2go_serveri_netmask> {
range 192.168.0.100 192.168.0.199;
range <aadresside_algus> <aadresside_lõpp>;
filename "/pxelinux.0";
filename "/pxelinux.0";
next-server 192.168.0.250;
next-server <x2go_serveri_ip>;
}</pre>
}</pre>


Line 238: Line 246:
<pre>nano /etc/exports</pre>
<pre>nano /etc/exports</pre>


<pre>/opt/x2gothinclient 192.168.0.0/24(ro,async,no_root_squash)</pre>
<pre>/opt/x2gothinclient <serveri_subnet>/24(ro,async,no_root_squash)</pre>


ja lõpuks muudame x2go thin clienti seadeid
ja lõpuks muudame x2go thin clienti seadeid
Line 244: Line 252:
<pre>nano /opt/x2gothinclient/etc/default/x2gothinclient</pre>
<pre>nano /opt/x2gothinclient/etc/default/x2gothinclient</pre>


<pre>x2goclient --pgp-card --ldap="192.168.0.250:389:o=<sinu domeeni nimi>,c=local" --external-login=/ramdrive/logins --no-menu --maximize --link=lan --kbd-layout=de --kbd-type=pc105/de --set-kbd=1 --geometry=fullscreen --add-to-known-hosts --read-exports-from=/ramdrive/export --add-to-known-hosts</pre>
<pre>x2goclient --pgp-card --ldap="<serveri_ip_aadress>:389:o=<sinu domeeni nimi>,c=local" \
--external-login=/ramdrive/logins --no-menu --maximize --link=lan --kbd-layout=de \
--kbd-type=pc105/de --set-kbd=1 --geometry=fullscreen --add-to-known-hosts \
--read-exports-from=/ramdrive/export --add-to-known-hosts</pre>


Ja teeme nfs-kernelile restardi.
Ja teeme nfs-kernelile restardi.
Line 250: Line 261:
<pre>/etc/init.d/nfs-kernel-server restart</pre>
<pre>/etc/init.d/nfs-kernel-server restart</pre>


Peale seda saab thin clientit avada Applications>Internet>x2go client (gtk)
= Varundamine =
 
LDAP'i varundamine
<pre>/usr/sbin/slapcat -v -n 1 -l  /var/backup/ldap.ldif</pre>
''Thin client'''i konfiguratsiooni varundamiseks tuleb varuda kaust /opt/x2gothinclient/.
<pre>tar cfvz /var/backup/thinclient_backup.tar.gz /opt/x2gothinclient/</pre>
 
= Kokkuvõte =
 
Mõned tähelepanekud.
 
Tundub, et tegu on suhteliselt vähetuntud tarkvaraga, kuna probleemide tekkimise korral on abi leidmine küllaltki keeruline.
 
Tarkvara enda manualides ja wikides oli infot vähe, et ise osasid ettetulnud probleeme lahendada. On kirjeldatud kuidas pakette instaleerida aga edaspidine seadistamine on vähesel määral kirjeldatud.
 
Juhendites puudus info selle kohta, kuidas sama süsteemi tööle panna ILMA PostgreSQL'i ja LDAP'ita.
 
Tarkvara versioonide ajalugu on väga raske leida.
 


= Kasutatud materjal =
= Kasutatud materjal =

Latest revision as of 10:21, 10 November 2011


See teema vajab kaasajastamist

X2Go

Autorid

Martin Lehari, Riho Hiiepuu, Kaarel Kont-Kontson

Versioonide ajalugu

Versioon 1.0 - 15.12.2010

Versioon 1.1 - 16.12.2010

Mis on x2go?

x2go on vabavaraline terminal serveri projekt. x2go klientprogrammi on võimalik kasutada erinevatel operatsioonisüsteemidel (Windows, Linux, MacOS).

x2go võimaldab kasutada ka nö. "õhukesi" kliente (thin client). Nõutav on PXE tugi.

Mida kasutasime

Käesoleva töö raames sai kasutatud operatsioonisüsteemina Debian GNU/Linux 5.0.7 (Lenny) 32bit versiooni. Katsetatud sai ka Ubuntu serveri ja desktopi väljalaskeid. Kuna X2Go tarkvara on mõeldud toimima ainult puhta Debiani peal, siis osade pakettide paigaldamine ebaõnnestus.

Installeerimine

Eeldused

Toimiv võrguühendus, staatiline IP! Osata kasutadada linuxi käsurida.

Kõik käsud sisestatakse root õigustes.

x2go Server

Kõigepealt impordime süsteemi x2go repositooriumi GPG võtmed

gpg --keyserver wwwkeys.eu.pgp.net --recv-keys C509840B96F89133
gpg -a --export C509840B96F89133 | apt-key add -

Seejärel lisame x2go repositooriumi aadressi sources.list faili

echo "deb http://x2go.obviously-nice.de/deb/ lenny main" >> /etc/apt/sources.list

PS! Sama asja võib teha ka mõne tekstiredaktoriga, aga sedasi ridade lisamine on lihtsalt kiirem.

Kõige lõpuks uuendame pakkide nimistu

apt-get update

Nüüd kus serveri paigalduseks on kõik eeldused loodud, võime vajalike pakkide paigaldusega jätkata. Esimese hooga paigaldatakse x2go serveri pakid koos SSH failisüsteemi ja PostgreSQL serveriga.

apt-get install x2goserver x2gosessionadministration x2gokdebindings sshfs postgresql

Kui serverisse on paigaldatud ainult baasüsteem, siis lisanduvad paigaldatavate pakettide nimistusse veel mitmed sõltuvused (sh. xorg).

Võimaldame kõigil kasutajatel süsteemi sisse logida

echo "%users ALL=(ALL) NOPASSWD: /usr/bin/x2gopgwrapper " >> /etc/sudoers

Impordime vajaliku andmebaasi

cd /usr/lib/x2go/script/
./x2gocreatebase.sh

Kõige esimene veateade (dropdb: database removal failed: ERROR: database "x2go_sessions" does not exist) on normaalne ja ei tasu lasta ennast sellest heidutada.

Määrame /dev/fuse failile korrektsed õigused

chown root:fuse /dev/fuse
chmod 660 /dev/fuse

LDAP server

Järgmisena paigaldame lokaalse LDAP serveri (vajalik kasutajate autentimiseks).

apt-get install x2goldaptools x2gouseradministration x2gohostadministration x2gosystemadministration x2gogroupadministration x2gomail

LDAP'i paigaldusskriptid hakkavad küsima küsimusi. Vastamiseks võid kasutada vaikeväärtuseid, kuna hilisemad x2go paigaldusskriptid teevad vajalikud seadistused ise ära.

Järgmiseks täiendame hosts faili serveri IP aadressi ja hostname'iga

echo "<serveri_ip> <serveri_hostname>.local <serveri_hostname>" >> /etc/hosts

Genereerime LDAP'i konfiguratsiooni

cd /usr/share/x2goldaptools/config/
./genconf <LDAP URI> <organisatsiooni_nimi> <riigi_kood> <domeeni_nimi> <netbios_nimi>

Antud töö kirjutamiseks kasutatud testsüsteemi parameetrid olid näiteks sellised:

./genconf x2goserver x2goserver.local ee x2gogroup x2goserver

Enne järgmise paigaldussammu juurde asumist tasuks /etc kataloogist varukoopia teha (koopia tekib sinna kataloogi,kust seda käsku parasjagu käivitatakse).

tar cfvz etc_koopia.tar.gz /etc/

Nimetame pam_ldap.conf faili ringi (hiljem tehakse uus)

mv /etc/pam_ldap.conf /etc/pam_ldap.bak

Kopeeri eelnevalt genereeritud konfifailid /etc kataloogi

cp -r /usr/share/x2goldaptools/config/etc/ /

Järgmiseks liigu skriptide kataloogi...

cd /usr/share/x2goldaptools/script/

...ja käivita makeCA ja makenewcert millede abil genereeritakse sertifikaadid

./makeCA
./makenewcert

Mõlema sertifikaadi korral on küsimustele vastamine vabatahtlik (vaikeväärtused on OK). Ainus koht, kuhu tuleb midagi kirjutada, on Common Name väli - kirjuta sinna serveri hostname.

Tee LDAP serverile restart

/etc/init.d/slapd restart

Järgmiseks impordime kõik kasutajad LDAP'i. Veendu, et oled endiselt skriptide kaustas ja käivita initsystem.

./initsystem

Lisa server LDAP'i puusse

ldap.addserver x2goserver <serveri_ip>

Osad graafilised administreerimistööriistad nõuavad root kasutaja õigused. Kui soovid neid kasutada ilma parooli sisestamata, peaksid genereerima ühe SSH võtmete paari

ssh-keygen -t dsa
cd /root/.ssh/
cat id_dsa.pub >>authorized_keys
mv id_dsa x2go_dsa

X2Go Thin Client

Esiteks on meil vaja DHCP serverit, TFTP serverit (atftp), NFS kernel serverit ja debootstrap'i

apt-get install dhcp3-server atftpd nfs-kernel-server debootstrap 

Järgmiseks loome kausta kliendi jaoks

mkdir /opt/x2gothinclient

Kasutame debootstrap-i et laadida alla Debian Lenny süsteem

debootstrap --arch i386 lenny /opt/x2gothinclient/ http://ftp2.de.debian.org/debian

Teha koopia resolv.conf failist kliendi faili süsteemi jaoks.

cp /etc/resolv.conf /opt/x2gothinclient/etc/resolv.conf

Luua uus interfaces fail kliendi op systeemi jaoks. Fail ise asub kaustas /opt/x2gothinclient/etc/network/. Ava see meelepärase tekstiredaktoriga ja sisesta sinna:

auto lo
iface lo inet loopback

Tekitame uued kirjed kliendi hostname ja hosts faili.

echo "x2gothinclient" >> /opt/x2gothinclient/etc/hostname
echo "127.0.0.1 localhost" >> /opt/x2gothinclient/etc/hosts

Määrame ära x2goserveri

echo "<serveri_ip> <serveri_hostname>.local <serveri_hostname>" >> /opt/x2gothinclient/etc/hosts

NB!!!! Järgmine osa toimub CHROOT keskkonnas, ole hästi ettevaatlik!

Siseneme chroot keskkonda

chroot /opt/x2gothinclient /bin/bash

Järgmiseks käsk (ei ole kohustuslik, aga aitab jälgida, kummas keskkonnas parasjagu viibid)

PS1='(chroot) '$PS1

Nüüd tuleb mountida failisüsteemid

mount -t proc none /proc
mount -t devpts none /dev/pts/ 

Lisame x2go repositooriumi

echo "deb http://x2go.obviously-nice.de/deb/ lenny main" >>/opt/x2gothinclient/etc/apt/sources.list

Uuendame pakkide nimistut ja paigaldame syslinux, locales ja linux-image-486 pakid

apt-get update
apt-get install syslinux locales linux-image-486

Kui tuleb küsimus: Create a symbolic link to current kernel image Yes

Kui tuleb küsimus: Do you want to abort now No

Järgnevalt vaatame üle lokaliseerimise seaded.

dpkg-reconfigure locales

/etc/initramfs-tools/initramfs.conf failis peame ära muutma BOOT parameetri väärtuse:

BOOT=nfs

Muutmiseks võid kasutada jällegi meelepärast tekstredaktorit (vi, vim, nano, vms...)


Järgnevalt

update-initramfs -u -v

Installeerime x2goclientsystem'i

apt-get install x2gothinclientsystem

Järgnevat käsku ei tohi väljaspool chroot keskkonda kasutada

./x2gothinclient_install.sh

Lähme chroot keskkonnast välja aga ennem peab maha laadima failisüsteemid mille me peale laadisime.

umount /proc/
umount /dev/pts/
exit

Järgmisesk muuta faili /etc/default/atftpd sisu.

USE_INETD=false
OPTIONS="--daemon --port 69 --tftpd-timeout 300 --retry-timeout 5 --mcast-port 1758 --mcast-addr 239.239.239.0-255 --mcast-ttl 1 --maxthread 100 --verbose=5 /tftpboot"

luua uus kaust ning muuta tema õigusi

mkdir /tftpboot
chmod 775 /tftpboot

/etc/inetd.conf failis keera tftp kinni. (pane trellid tftp ette)

Peale seda teha restart

/etc/init.d/openbsd-inetd restart
/etc/init.d/atftpd restart

Tekitame lingi failide vahel

ln -s /opt/x2gothinclient/vmlinuz /tftpboot/vmlinuz
ln -s /opt/x2gothinclient/initrd.img /tftpboot/initrd.img

loo uus kaust ja lisa sinna fail. faili sisu on kirjeldatud all pool.

mkdir /tftpboot/pxelinux.cfg
touch /tftpboot/pxelinux.cfg/default
nano /tftpboot/pxelinux.cfg/default
label linux
kernel vmlinuz
append root=/dev/nfs nfsroot=<x2go_serveri_ip>:/opt/x2gothinclient ro initrd=initrd.img ip=dhcp

Kopeeri järgnev fail /tftpboot/ kausta

cp /opt/x2gothinclient/usr/lib/syslinux/pxelinux.0 /tftpboot/

Järgnevalt me seadistame dhcpd

nano  /etc/dhcp3/dhcpd.conf
option domain-name "<serveri_hostname>.local";

option domain-name-servers <x2go_serveri_ip>;

# x2go thin client range/group

subnet <x2go_serveri_subnet> netmask <x2go_serveri_netmask> {
range <aadresside_algus> <aadresside_lõpp>;
filename "/pxelinux.0";
next-server <x2go_serveri_ip>;
}

Teeme dhcp-le restardi

/etc/init.d/dhcp3-server restart

Lisa /etc/exports faili uus rida

nano /etc/exports
/opt/x2gothinclient <serveri_subnet>/24(ro,async,no_root_squash)

ja lõpuks muudame x2go thin clienti seadeid

nano /opt/x2gothinclient/etc/default/x2gothinclient
x2goclient --pgp-card --ldap="<serveri_ip_aadress>:389:o=<sinu domeeni nimi>,c=local" \
--external-login=/ramdrive/logins --no-menu --maximize --link=lan --kbd-layout=de \
--kbd-type=pc105/de --set-kbd=1 --geometry=fullscreen --add-to-known-hosts \
--read-exports-from=/ramdrive/export --add-to-known-hosts

Ja teeme nfs-kernelile restardi.

/etc/init.d/nfs-kernel-server restart

Varundamine

LDAP'i varundamine

/usr/sbin/slapcat -v -n 1 -l  /var/backup/ldap.ldif

Thin client'i konfiguratsiooni varundamiseks tuleb varuda kaust /opt/x2gothinclient/.

tar cfvz /var/backup/thinclient_backup.tar.gz /opt/x2gothinclient/

Kokkuvõte

Mõned tähelepanekud.

Tundub, et tegu on suhteliselt vähetuntud tarkvaraga, kuna probleemide tekkimise korral on abi leidmine küllaltki keeruline.

Tarkvara enda manualides ja wikides oli infot vähe, et ise osasid ettetulnud probleeme lahendada. On kirjeldatud kuidas pakette instaleerida aga edaspidine seadistamine on vähesel määral kirjeldatud.

Juhendites puudus info selle kohta, kuidas sama süsteemi tööle panna ILMA PostgreSQL'i ja LDAP'ita.

Tarkvara versioonide ajalugu on väga raske leida.


Kasutatud materjal