Тонкий клиент или создаем 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.
- пробуем загрузится "тонким" клиентом