LTSP/BuildYourself
Материал из ALT Linux Wiki
Ilis (обсуждение | вклад) (→Версии) |
м (→Настройка сервера: +ссылка на ltsp.git) |
||
(44 промежуточные версии не показаны) | |||
Строка 1: | Строка 1: | ||
[[Категория:LTSP]] | [[Категория:LTSP]] | ||
- | |||
- | == Самостоятельная установка | + | == Самостоятельная установка ALTSP == |
- | + | Здесь описан процесс превращения в терминальный сервер уже развёрнутой десктопной<ref>Терминальный сервер самому проще сделать из десктопа (которым он функциональности в основном и является), чем из сервера (который сперва всё равно придётся превратить в десктоп).</ref> системы. Обычно это слишком много труда и достаточно взять уже готовый [[LTSP/Download|дистрибутив терминального сервера]]<ref>При сильном желании модифицировать не просто отдельную систему, а сам инсталяционный образ — читайте [[Mkimage/Profiles/Desktop|про сборку дистрибутивов]].</ref>. | |
__TOC__ | __TOC__ | ||
- | |||
=== Версии === | === Версии === | ||
- | + | Для создания терминального сервера {{man|mike}} проверены пакеты из [[Branches|веток]]: | |
+ | * '''4.0''' (выделенная система, 2007-09-11); | ||
+ | * '''p5''' (дистрибутив, 2010-03-15); | ||
+ | * '''5.1''' (контейнер OpenVZ, 2011-04-03); | ||
+ | * '''t6''' (дистрибутив, 2012-03-09); | ||
+ | * '''[[LTSP/BuildYourself/p7|p7]]''' (из стартеркита, [https://lists.altlinux.org/pipermail/ltsp-server/2015-November/002692.html 2015-11-28]) | ||
- | + | Следует использовать пакеты из актуальной копии выбранного бранча либо из дистрибутива терминального сервера. Первые сборки 2006/2007 года имели известные недоработки и нюансы; соответствующие примечания ниже отмечены [OLD]<ref>Совсем старые пакеты назывались {{pkg|ltsp5-*}} и ориентировались на расположение терминального чрута в {{path|/var/lib/ltsp5/}}.</ref> и будут через некоторое время убраны как устаревшая документация. | |
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | * | + | |
- | + | ||
- | + | ||
- | + | Бранч 4.1 не применялся<ref>Переработанный {{pkg|alterator-backend-x11}} в 4.1/branch не работал без HAL; решено в бранчах 5.1/p5 пакетом {{pkg|ltsp-x11-autosetup}}.</ref> для создания дистрибутивов терминального сервера. | |
- | + | Sisyphus по состоянию на весну 2012 года местами пригоден для создания терминального чрута; в {{pkg|kernel-image-ltsp-client-2.6.32-alt1+}} есть поддержка KMS, необходимая для текущего {{pkg|xorg}}. | |
- | + | ||
- | + | ||
=== Настройка сервера === | === Настройка сервера === | ||
- | + | Предварительно необходимо [[apt|подключить]] один из поддерживаемых [[Branches|бранчей]]. | |
- | * Установить пакет | + | * Установить пакет {{pkg|ltsp-server-{basic,enhanced,light,kde}}} (в {{pkg|basic}} и {{pkg|enhanced}} оконным менеджером служит {{pkg|twm}}, в {{pkg|light}} — {{pkg|icewm}}) |
- | * Настроить | + | * Настроить {{pkg|dhcp}}; можно взять [http://git.altlinux.org/gears/l/ltsp.git?p=ltsp.git;a=blob;f=ltsp/server/configs/ALTLinux/dhcpd.conf.in;h=c31ba0a2ee1f2e54e045fa0d312b793cf1dd41c6;hb=HEAD рабочую заготовку] в пакете {{pkg|ltsp-server}}: |
<pre>mv /etc/dhcp/dhcpd.conf /etc/dhcp/dhcpd.conf.BAK | <pre>mv /etc/dhcp/dhcpd.conf /etc/dhcp/dhcpd.conf.BAK | ||
cp -a /etc/ltsp/dhcpd.conf /etc/dhcp/</pre> | cp -a /etc/ltsp/dhcpd.conf /etc/dhcp/</pre> | ||
- | * Настроить | + | * Настроить {{pkg|tftp-server}}: дописать в {{path|/etc/xinetd.d/tftp}} рядом с остальными строчку {{term|only_from {{=}} 192.168.0.0/24}} (или [[LTSP/Network|другую сеть]], на которую настроен DHCP-сервер) и выполнить команды |
<pre>chkconfig tftp on | <pre>chkconfig tftp on | ||
chkconfig xinetd on</pre> | chkconfig xinetd on</pre> | ||
- | * | + | * Разрешить удалённый доступ к {{pkg|portmap}}<ref>Как вариант, '''за'''комментировать {{term|PORTMAP_ARGS{{=}}"-l"}} в {{path|/etc/sysconfig/portmap}}</ref> и обеспечить автозапуск сервиса<ref>В Sisyphus и бранчах старше 5.1/p5 замените {{term|portmap}} на {{term|rpcbind}}.</ref>: |
- | * Настроить | + | control portmap server |
- | + | chkconfig portmap on | |
- | + | * Настроить {{pkg|nfs-server}}<ref>При использовании в контейнере [[OpenVZ]] вместо {{pkg|nfs-server}} придётся взять {{pkg|unfs3}}, это приведёт к удалению метапакета {{pkg|ltsp-server-basic}} — не страшно, его роль только втащить нужные пакеты по зависимостям.</ref>: дописать в {{path|/etc/exports}} строчку | |
- | * | + | /var/lib/ltsp/i586 (ro,no_root_squash,async) |
- | + | и выполнить | |
- | * Настроить | + | chkconfig nfs on |
- | ** выполнить | + | * При [[LTSP/Hardware#Терминалы|объёме памяти бездисковых станций]] менее 64..128Mb рекомендуется организовать [[LTSP/Swap|сетевой своп]]. |
- | ** для | + | * Настроить Display Manager: |
- | ** в случае неиспользования локальной X-сессии на сервере закомментировать в | + | ** выполнить {{cmd|chkconfig dm on}} |
+ | ** для {{pkg|kdm}}: в секции {{term|[Xdmcp]}} файла {{path|/etc/X11/kdm/kdmrc}} обеспечить {{term|Enable{{=}}true}} | ||
+ | ** для {{pkg|gdm}} смотрим файл {{path|/etc/X11/gdm/custom.conf}}: | ||
+ | *** в секции {{term|[Xdmcp]}} требуется {{term|Enable{{=}}true}}, | ||
+ | *** в секции {{term|[daemon]}} — {{term|RemoteGreeter{{=}}/usr/lib/gdm/gdmgreeter}} | ||
+ | ** в случае неиспользования локальной X-сессии на сервере (в т.ч. в контейнере [[OpenVZ]]) закомментировать в {{path|/etc/X11/xdm/Xservers}} строку | ||
<pre>:0 local /etc/X11/xinit/xserverrc</pre> | <pre>:0 local /etc/X11/xinit/xserverrc</pre> | ||
- | * | + | * При необходимости<ref>для {{pkg|ltsp-client >{{=}} 5.0-alt0.49}} {{pkg|xfs}} необязателен.</ref> разрешить удалённый доступ к {{pkg|xfs}} в {{path|/etc/sysconfig/xfs}} должно быть следующее: |
- | + | ARGS="-daemon -user xfs" | |
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | = | + | |
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
=== Сборка LTSP chroot === | === Сборка LTSP chroot === | ||
- | Для сборки чрута из пакетов требуется | + | Для сборки чрута из пакетов требуется<ref>[OLD] В ранних сборках также был необходим пакет {{pkg|hasher}}.</ref>: |
- | + | ||
* отредактировать (при необходимости): | * отредактировать (при необходимости): | ||
- | ** | + | ** {{path|/etc/ltsp/update-kernels.conf}}<ref>[OLD] Для standalone-сервера рациональнее будет <tt>NFSROOT_OPTS=tcp</tt> вместо {{term|udp}} (по умолчанию); с {{term|tcp}} наблюдались проблемы в контейнере OpenVZ.</ref>; |
- | ** | + | ** {{path|/etc/ltsp/ltsp-update-kernels.conf}}; |
- | ** | + | ** '''{{path|/etc/ltsp/ltsp-build-client.conf}}''': |
- | *** | + | *** {{term|ARCH}}, {{term|BASE}}<ref>В {{term|BASE}}, если необходимо, изменить путь к chroot, расположив его на разделе без ''noexec''.</ref>, {{term|MIRROR}}<ref>Если в {{term|MIRROR}} указать полную строчку из {{path|sources.list}}, начинающуюся с {{term|rpm}}, то реконструкция с использованием {{term|ARCH}} и {{term|COMPONENTS}} производиться не будет, а строчка попадёт «как есть».</ref> (настроить на доступный репозиторий) |
- | + | *** {{term|ROOTPASS}} ({{term|prompt}} — спросить при генерации); | |
- | *** | + | *** возможно, {{term|EXTRA_MIRROR}} (например, {{term|EXTRA_MIRROR{{=}}"file:/var/ftp/ltsp5 i586 ltsp5;file:/var/ftp/ltsp5 noarch ltsp5"}}); |
- | *** возможно, | + | *** возможно, {{term|KERNEL}} (по умолчанию — {{term|kernel-image-std-smp}}; достаточно указывать только суффикс {{term|std-smp}}); |
- | *** возможно, | + | *** возможно, {{term|KERNEL_MODULES}} (субпакеты через пробел; по умолчанию — {{term|alsa}}) |
- | *** возможно, | + | *** {{term|CHROOT_IMAGE}}<ref>{{term|CHROOT_IMAGE}} имеет смысл, если используется заранее приготовленный с помощью {{term|spt}} и {{term|spt-profiles-ltsp-root}} (или другим способом) корень.</ref>; |
- | *** < | + | * удостовериться, что репозиторий для архитектуры {{term|$ARCH}} (в том числе и {{term|noarch}}) доступен; |
- | * | + | * '''выполнить команду {{cmd|ltsp-build-client}}'''<ref>Для ранних пакетов {{pkg|ltsp}} также были актуальны следующие замечания:<br /> |
- | * | + | * [OLD] Для успешной сборки могло быть необходимо поправить {{path|/usr/share/ltsp/profile/ltsp-root/packages}} из пакета {{pkg|spt-profiles-ltsp-root}}, добавив туда {{term|which, xinitrc, libhw-tools}}. |
- | + | * [OLD] После сборки следовало проверить права доступа на чтение в {{path|/var/lib/tftpboot/ltsp5}} | |
- | * [OLD] | + | * [OLD] Также доводилось поправить {{path|/etc/exports}} на предмет лишнего пробела, иначе старый {{cmd|unfs3}} не разрешал клиенту подмонтировать корень; в {{pkg|unfs3-0.9.18}} была добавлена опция проверки корректности конфигурации и она теперь используется в инитскрипте, с {{pkg|0.9.17}} и {{pkg|ltsp5-server-5.0-alt0.44}} тоже всё в порядке.</ref>; |
- | * [OLD] | + | * запустить {{cmd|apt-get update}}, поскольку при предыдущем шаге конфигурация {{pkg|apt}} подменялась. |
=== Запуск === | === Запуск === | ||
- | + | {| style="border:1px solid #AAA; background:#F9F9F9; width:200px; margin: 0 0 1em 1em; padding:.2em; text-align:center; float: right;" class=noprint | |
+ | |- | ||
+ | |[[Image:Gnome-dialog-warning.svg]] | ||
+ | |- | ||
+ | | [[LTSP/Network|'''Внимание:''' проверьте, чтобы настроенный DHCPD '''не пересёкся'''<br />с уже используемым в локальной сети]]! | ||
+ | |} | ||
+ | * Запустить необходимые сервисы: | ||
<pre>service dhcpd restart | <pre>service dhcpd restart | ||
Строка 100: | Строка 78: | ||
service portmap restart | service portmap restart | ||
service nfs restart | service nfs restart | ||
- | service ltspswapd restart | + | service ltspswapd restart || service nbd-server restart |
- | service xfs restart | + | service xfs restart # для ltsp-client >= 5.0-alt0.49 xfs необязателен |
service dm restart</pre> | service dm restart</pre> | ||
Строка 122: | Строка 100: | ||
echo fuse >> /etc/modules | echo fuse >> /etc/modules | ||
modprobe fuse | modprobe fuse | ||
- | vzctl set | + | vzctl set ltsp --devnodes fuse:rw --save |
- | # VE, которое --name | + | # VE, которое --name ltsp: |
control fusermount public</pre> | control fusermount public</pre> | ||
+ | |||
+ | == Вариации на тему == | ||
+ | === dnsmasq === | ||
+ | Роль сервера DHCP, TFTP и DNS вместо {{pkg|dhcpd}}, {{pkg|tftp-server}} и {{pkg|bind}} прекрасно исполняет {{pkg|dnsmasq}} со следующим конфигурационным файлом: | ||
+ | |||
+ | <pre> | ||
+ | bind-interfaces | ||
+ | interface=lan | ||
+ | interface=lo | ||
+ | |||
+ | resolv-file=/etc/resolv.conf.dnsmasq | ||
+ | strict-order | ||
+ | |||
+ | expand-hosts | ||
+ | domain=mydomain.com | ||
+ | |||
+ | dhcp-range=192.168.0.100,192.168.0.199 | ||
+ | |||
+ | enable-tftp | ||
+ | |||
+ | tftp-root=/diskless/altsp/boot/i586 | ||
+ | dhcp-boot=pxelinux.0 | ||
+ | </pre> | ||
+ | |||
+ | === ALTSP inside OpenVZ === | ||
+ | Недавно повторено и описано [http://admdev.blogspot.com/2008/11/altsp-inside-openvz-ve.html тут] enp@. | ||
+ | |||
+ | === Загрузка тонких клиентов с локальных HDD === | ||
+ | {{main|LTSP/LocalBoot}} | ||
+ | |||
+ | == Шпаргалка == | ||
+ | Для справки можно подсматривать в [http://git.altlinux.org/people/mike/packages/mkimage-profiles-desktop.git профиль], по которому собирался дистрибутив ALT Linux 4.0 Terminal, и [http://git.altlinux.org/people/mike/packages/installer-feature-ltsp.git фрагмент инсталятора]. Оттуда видно, что, скорее всего, будет достаточно установить в VE по вкусу один из пакетов {{pkg|ltsp-server-{basic,enhanced,light,kde}}} и все, что он вытащит по зависимостям, а также выполнить действия по мотивам написанного в [http://git.altlinux.org/people/mike/packages/installer-feature-ltsp.git?p=installer-feature-ltsp.git;a=blob;f=installer-feature-ltsp/preinstall.d/98-ltsp;hb=HEAD скрипте настройки]. | ||
+ | |||
+ | == Примечания == | ||
+ | <references /> | ||
+ | |||
+ | {{Category navigation|title=LTSP|category=LTSP|sortkey={{SUBPAGENAME}}}} |
Текущая версия на 09:43, 22 июня 2016
Самостоятельная установка ALTSP
Здесь описан процесс превращения в терминальный сервер уже развёрнутой десктопной[1] системы. Обычно это слишком много труда и достаточно взять уже готовый дистрибутив терминального сервера[2].
Содержание |
Версии
Для создания терминального сервера mike@ проверены пакеты из веток:
- 4.0 (выделенная система, 2007-09-11);
- p5 (дистрибутив, 2010-03-15);
- 5.1 (контейнер OpenVZ, 2011-04-03);
- t6 (дистрибутив, 2012-03-09);
- p7 (из стартеркита, 2015-11-28)
Следует использовать пакеты из актуальной копии выбранного бранча либо из дистрибутива терминального сервера. Первые сборки 2006/2007 года имели известные недоработки и нюансы; соответствующие примечания ниже отмечены [OLD][3] и будут через некоторое время убраны как устаревшая документация.
Бранч 4.1 не применялся[4] для создания дистрибутивов терминального сервера.
Sisyphus по состоянию на весну 2012 года местами пригоден для создания терминального чрута; в kernel-image-ltsp-client-2.6.32-alt1+ есть поддержка KMS, необходимая для текущего xorg.
Настройка сервера
Предварительно необходимо подключить один из поддерживаемых бранчей.
- Установить пакет ltsp-server-{basic,enhanced,light,kde} (в basic и enhanced оконным менеджером служит twm, в light — icewm)
- Настроить dhcp; можно взять рабочую заготовку в пакете ltsp-server:
mv /etc/dhcp/dhcpd.conf /etc/dhcp/dhcpd.conf.BAK cp -a /etc/ltsp/dhcpd.conf /etc/dhcp/
- Настроить tftp-server: дописать в /etc/xinetd.d/tftp рядом с остальными строчку only_from = 192.168.0.0/24 (или другую сеть, на которую настроен DHCP-сервер) и выполнить команды
chkconfig tftp on chkconfig xinetd on
control portmap server chkconfig portmap on
- Настроить nfs-server[7]: дописать в /etc/exports строчку
/var/lib/ltsp/i586 (ro,no_root_squash,async)
и выполнить
chkconfig nfs on
- При объёме памяти бездисковых станций менее 64..128Mb рекомендуется организовать сетевой своп.
- Настроить Display Manager:
- выполнить chkconfig dm on
- для kdm: в секции [Xdmcp] файла /etc/X11/kdm/kdmrc обеспечить Enable=true
- для gdm смотрим файл /etc/X11/gdm/custom.conf:
- в секции [Xdmcp] требуется Enable=true,
- в секции [daemon] — RemoteGreeter=/usr/lib/gdm/gdmgreeter
- в случае неиспользования локальной X-сессии на сервере (в т.ч. в контейнере OpenVZ) закомментировать в /etc/X11/xdm/Xservers строку
:0 local /etc/X11/xinit/xserverrc
- При необходимости[8] разрешить удалённый доступ к xfs в /etc/sysconfig/xfs должно быть следующее:
ARGS="-daemon -user xfs"
Сборка LTSP chroot
Для сборки чрута из пакетов требуется[9]:
- отредактировать (при необходимости):
- /etc/ltsp/update-kernels.conf[10];
- /etc/ltsp/ltsp-update-kernels.conf;
- /etc/ltsp/ltsp-build-client.conf:
- ARCH, BASE[11], MIRROR[12] (настроить на доступный репозиторий)
- ROOTPASS (prompt — спросить при генерации);
- возможно, EXTRA_MIRROR (например, EXTRA_MIRROR="file:/var/ftp/ltsp5 i586 ltsp5;file:/var/ftp/ltsp5 noarch ltsp5");
- возможно, KERNEL (по умолчанию — kernel-image-std-smp; достаточно указывать только суффикс std-smp);
- возможно, KERNEL_MODULES (субпакеты через пробел; по умолчанию — alsa)
- CHROOT_IMAGE[13];
- удостовериться, что репозиторий для архитектуры $ARCH (в том числе и noarch) доступен;
- выполнить команду ltsp-build-client[14];
- запустить apt-get update, поскольку при предыдущем шаге конфигурация apt подменялась.
Запуск
- Запустить необходимые сервисы:
service dhcpd restart service xinetd restart service portmap restart service nfs restart service ltspswapd restart || service nbd-server restart service xfs restart # для ltsp-client >= 5.0-alt0.49 xfs необязателен service dm restart
- Требуется также обеспечить обратный резолвинг IP клиентов, чтобы избежать таймаутов при отрабатывании dm («крестик на экране») — либо путём настройки DNS на терминальном сервере с обратной зоной для выдаваемых по DHCP адресов, либо хотя бы выполнить нечто вроде (для локального доменного суффикса ltsp):
grep -q ^192.168.0.1 /etc/hosts || echo "192.168.0.1 server server.ltsp" >> /etc/hosts grep -q ^192.168.0.250 /etc/hosts || { for i in `seq 20 250`; do echo "192.168.0.$i ws$i ws$i.ltsp" >> /etc/hosts done } update_chrooted conf
- При потребности в использовании локальных устройств (CD-ROM, флэшки) выполнить:
# вариант "на железе" echo fuse >> /etc/modules modprobe fuse control fusermount public
# вариант "под OpenVZ" # HN: echo fuse >> /etc/modules modprobe fuse vzctl set ltsp --devnodes fuse:rw --save # VE, которое --name ltsp: control fusermount public
Вариации на тему
dnsmasq
Роль сервера DHCP, TFTP и DNS вместо dhcpd, tftp-server и bind прекрасно исполняет dnsmasq со следующим конфигурационным файлом:
bind-interfaces interface=lan interface=lo resolv-file=/etc/resolv.conf.dnsmasq strict-order expand-hosts domain=mydomain.com dhcp-range=192.168.0.100,192.168.0.199 enable-tftp tftp-root=/diskless/altsp/boot/i586 dhcp-boot=pxelinux.0
ALTSP inside OpenVZ
Недавно повторено и описано тут enp@.
Загрузка тонких клиентов с локальных HDD
Шпаргалка
Для справки можно подсматривать в профиль, по которому собирался дистрибутив ALT Linux 4.0 Terminal, и фрагмент инсталятора. Оттуда видно, что, скорее всего, будет достаточно установить в VE по вкусу один из пакетов ltsp-server-{basic,enhanced,light,kde} и все, что он вытащит по зависимостям, а также выполнить действия по мотивам написанного в скрипте настройки.
Примечания
- ↑ Терминальный сервер самому проще сделать из десктопа (которым он функциональности в основном и является), чем из сервера (который сперва всё равно придётся превратить в десктоп).
- ↑ При сильном желании модифицировать не просто отдельную систему, а сам инсталяционный образ — читайте про сборку дистрибутивов.
- ↑ Совсем старые пакеты назывались ltsp5-* и ориентировались на расположение терминального чрута в /var/lib/ltsp5/.
- ↑ Переработанный alterator-backend-x11 в 4.1/branch не работал без HAL; решено в бранчах 5.1/p5 пакетом ltsp-x11-autosetup.
- ↑ Как вариант, закомментировать PORTMAP_ARGS="-l" в /etc/sysconfig/portmap
- ↑ В Sisyphus и бранчах старше 5.1/p5 замените portmap на rpcbind.
- ↑ При использовании в контейнере OpenVZ вместо nfs-server придётся взять unfs3, это приведёт к удалению метапакета ltsp-server-basic — не страшно, его роль только втащить нужные пакеты по зависимостям.
- ↑ для ltsp-client >= 5.0-alt0.49 xfs необязателен.
- ↑ [OLD] В ранних сборках также был необходим пакет hasher.
- ↑ [OLD] Для standalone-сервера рациональнее будет NFSROOT_OPTS=tcp вместо udp (по умолчанию); с tcp наблюдались проблемы в контейнере OpenVZ.
- ↑ В BASE, если необходимо, изменить путь к chroot, расположив его на разделе без noexec.
- ↑ Если в MIRROR указать полную строчку из sources.list, начинающуюся с rpm, то реконструкция с использованием ARCH и COMPONENTS производиться не будет, а строчка попадёт «как есть».
- ↑ CHROOT_IMAGE имеет смысл, если используется заранее приготовленный с помощью spt и spt-profiles-ltsp-root (или другим способом) корень.
- ↑ Для ранних пакетов ltsp также были актуальны следующие замечания:
- [OLD] Для успешной сборки могло быть необходимо поправить /usr/share/ltsp/profile/ltsp-root/packages из пакета spt-profiles-ltsp-root, добавив туда which, xinitrc, libhw-tools.
- [OLD] После сборки следовало проверить права доступа на чтение в /var/lib/tftpboot/ltsp5
- [OLD] Также доводилось поправить /etc/exports на предмет лишнего пробела, иначе старый unfs3 не разрешал клиенту подмонтировать корень; в unfs3-0.9.18 была добавлена опция проверки корректности конфигурации и она теперь используется в инитскрипте, с 0.9.17 и ltsp5-server-5.0-alt0.44 тоже всё в порядке.