Тонкий клиент или создаем PXE Boot из LTSP

Материал из support.qbpro.ru

ПОЭТАПНОЕ РУКОВОДСТВО ПО УСТАНОВКЕ И НАСТРОЙКЕ ТОНКОГО КЛИЕНТА НА ПЛАТФОРМЕ Linux Debian Squeeze

  • И так, собрав в кучу все имеющееся руководство по настройке "тонкого" клиента и перебрав всевозможные

варианты и решения, рассмотрим задачу по созданию универсального образа или точнее платформы, на которой можно создавать те или иные решения, с применением безопасных технологий.

  • Применительно к ситуации, создадим "тонкого" клиента, с возможностью обслуживания разделов жесткого диска,

в частности с возможностью сохранения или восстановления образов партиций NTFS по сети.

  • Далее по порядку:

1. Устанавливаем необходимые пакеты:

apt-get install isc-dhcp-server tftpd-hpa ltsp-server nfs-common nfs-kernel-server
  • рекомендуется после установки запустить программу aptitude и до установить требуемые пакеты, если есть такой запрос...
  • при установке сервера tftpd-hpa он будет просить вас указать каталог где будет "платформа", согласитесь по умолчанию /srv/tftp или /opt/ltsp, все равно потом это будем менять..

2. Теперь настраиваем сервер DHCP:

  • предположим что наша сеть такая:
root@debvbox:~#cat /etc/network/interfaces
# The loopback network interface
auto lo
iface lo inet loopback

# The primary network interface
auto eth0
iface eth0 inet static
        address 10.10.5.1
        netmask 255.255.255.0
        network 10.10.5.0
        broadcast 10.10.5.255
        gateway 10.10.5.1
        dns-nameservers 10.10.5.1
  • Исходя из этих данных настраиваем наш dhcp сервер:
root@debvbox:~# cat /etc/dhcp/dhcpd.conf 
ddns-update-style none;

default-lease-time 259200;
max-lease-time 518400;

authoritative;

log-facility local7;
 #параметры настроек сети которые будет получать клиент..
shared-network debvbox {
    option nis-domain                   "debvbox";
    option domain-name                  "debvbox";
    option domain-name-servers          10.10.5.1;
   
    subnet 10.10.5.0 netmask 255.255.255.0 {
    #range 10.10.5.50 10.10.5.60;
    option routers                      10.10.5.1;
    option subnet-mask                  255.255.255.0;
    option broadcast-address            10.10.5.255;
    option time-offset                  -5;     # Eastern Standard Time
    }

########################MAC ADDDRESS ALL#################  
# здесь прописываем нашего будущего клиента, его мак адрес и.т.д.
    host vclient {
    option host-name "vclient";
    hardware ethernet 08:00:27:35:BA:D9;
    fixed-address 10.10.5.65;
# этот параметр говорит какой образ загрузчика брать.. об этом дальше.. 
    filename "pxelinux.0";
    }

  • теперь прописываем какой интерфейс будет слушать сервер dhcp
root@debvbox:~# cat /etc/default/isc-dhcp-server
# Defaults for dhcp initscript
# sourced by /etc/init.d/dhcp
# installed at /etc/default/isc-dhcp-server by the maintainer scripts 

#
# This is a POSIX shell fragment
# 

# On what interfaces should the DHCP server (dhcpd) serve DHCP requests?
#       Separate multiple interfaces with spaces, e.g. "eth0 eth1".
INTERFACES="eth0"

  • в данном случае как видно это интерфейс - eth0
  • теперь перезапускаем сервер dhcp и на этом настройка первого этапа закончена.
root@debvbox:~# /etc/init.d/isc-dhcp-server restart

Stopping ISC DHCP server: dhcpd.
Starting ISC DHCP server: dhcpd.

3. Настройка сервера TFTP - HPA

  • создаем каталог, где будет наша будущая система клиента в окружении chroot
root@debvbox:~#mkdir /ltsp
  • прописываем для сервера tftp-hpa где будет наша "платформа"
root@debvbox:~#cat /etc/default/tftpd-hpa
# /etc/default/tftpd-hpa

TFTP_USERNAME="tftp"
TFTP_DIRECTORY="/ltsp/boot/"
TFTP_ADDRESS="0.0.0.0:69"
TFTP_OPTIONS="--secure"
  • перезапускаем сервер tftp-hpa
root@debvbox:/etc# /etc/init.d/tftpd-hpa restart
Restarting HPA's tftpd: in.tftpd.

Проверяем:

netstat -lnp | grep :69
udp        0      0 0.0.0.0:69              0.0.0.0:*                           16665/in.tftpd


4. Настройка сервера LTSP

  • Корневая файловая система, которую будут использовать клиенты, находится в каталоге /ltsp. Она должна быть доступна через NFS. Настраивается все это через конфиг /etc/exports
  • прописываем настройки для сервера nfs-kernel, nfs-common
root@debvbox:/etc# cat /etc/exports
# /etc/exports: the access control list for filesystems which may be exported
#               to NFS clients.  See exports(5).
#
# Example for NFSv2 and NFSv3:
# /srv/homes       hostname1(rw,sync,no_subtree_check) hostname2(ro,sync,no_subtree_check)
#
# Example for NFSv4:
# /srv/nfs4        gss/krb5i(rw,sync,fsid=0,crossmnt,no_subtree_check)
# /srv/nfs4/homes  gss/krb5i(rw,sync,no_subtree_check)
## первый каталог - это система и он в режиме только чтение... 
/ltsp/                  *(ro,no_root_squash,async,no_subtree_check)
## второй - это домашняя папка пользователя, и он доступен уже на запись...
/ltsp/home/user/        *(rw,no_root_squash,async,no_subtree_check)

Проверяем:

showmount -e

Export list for  nzip:                                                                                                                                        
/home/ltsp/home/user/  *                                                                                                                                      
/home/ltsp/           * 
  • теперь создаем корневую систему для пользователя:
root@debvbox:~# cd /ltsp
root@debvbox:~# ltsp-build-client --arch i386 --dist squeeze --mirror http://ftp.ru.debian.org/debian/ squeeze main
.
.
invoke-rc.d nfs-kernel-server reload
info: LTSP client installation completed successfully
  • заходим в режиме chroot в каталог /ltsp
root@debvbox:~# chroot /ltsp
root@debvbox:~/#
  • сразу добавляем пользователя который будет работать..
root@debvbox:~/# adduser user
.
.
successfully
  • до устанавливаем необходимые пакеты для работы клиентов..
root@debvbox:~/# apt-get install sudo ntfs-3g ntfsprogs
  • выходим из режима chroot
exit
root@debvbox:~#
  • прописываем права пользователя user в sudo и group в каталоге среды /ltsp/etc
  • теперь нам необходимо настроить загрузку нашего тонкого клиента, чтоб он мог по умолчанию через 15 секунд загружать систему с жесткого диска или выбрав нижнее меню, загрузить уже нашу среду и провести восстановление системы у себя с помощью ntfsclon
root@debvbox:/ltsp# cat /ltsp/boot/pxelinux.cfg/default
TIMEOUT 60
PROMPT 0
DEFAULT menu.c32
MENU TITLE BOOT_MENU
MENU COLOR unsel 37;40
MENU COLOR sel 30;47
MENU COLOR border 37;40
MENU COLOR title 37;40
MENU COLOR hotkey 36;40
MENU COLOR tabmsg 36;40
MENU TABMSG Brought to you by Blue Light.
MENU AUTOBOOT
#
#
label WINDOWS 
localboot 0
#
label SYSTEM_RECOVERY
kernel vmlinuz
APPEND ro initrd=initrd.img quiet root=/dev/nfs ip=dhcp boot=nfs nfsroot=10.10.5.1:/ltsp/ ramdisk=8192
  • для корректной работы загрузчика скопируем необходимую библиотеку..
cp /ltsp/usr/lib/syslinux/menu.c32 /ltsp/boot/menu.c32

  • перезапускаем сервер tftp-hpa
root@debvbox:/etc# /etc/init.d/tftpd-hpa restart
Restarting HPA's tftpd: in.tftpd.
  • пробуем загрузится "тонким" клиентом