Настройка сервера
Обновление системы
Обновим систему по статье: https://wiki.astralinux.ru/x/e410Ag
Проверим:
Command | ||
---|---|---|
| ||
Update 1 Bulletin 20181229SE16 |
Включение удаленного доступа
Разрешим удаленный вход в систему:
Панель управления → Система → Вход в систему → Дополнительно - Разрешить удаленный вход в систему (Не забываем перезапустить fly-dm)
Настройка сети
Сеть настраиваем любым предпочтительным способом. Например, с помощью Network Manager. Первый интерфейс eth0 смотрит в интернет, настройки получает автоматически. Второму, eth1, прописываем статический адрес 192.168.56.100 с маской 24.
eth0 - DHCP
eth1 - static
ip: 192.168.56.100
mask: 255.255.255.0
Установка ПО
Для сервера терминалов необходимы следующие пакеты:
- isc-dhcp-server - DHCP сервер.
- tftpd-hpa - сервер tftpd.
- ltsp-server - скрипты для создания сервера терминалов
Command |
---|
sudo apt install isc-dhcp-server ltsp-server tftpd-hpa |
На ошибки, выводимые при установке dhcp сервера, не обращаем внимание, мы займемся настройкой dhcp в следующем шаге.
Настройка DHCP сервера
В файле /etc/default/isc-dhcp-server в строке INTERFACECv4=""
указать интерфейс: eth1
Блок кода | ||
---|---|---|
| ||
INTERFACECv4="eth1" |
Создадим конфигурацию для DHCP сервера:
Command | ||
---|---|---|
| ||
sudo ltsp-config --overwrite isc-dhcp-server |
Command | ||
---|---|---|
| ||
sudo mv /etc/dhcp/dhcpd.conf /etc/dhcp/dhcpd.bak |
Command | ||
---|---|---|
| ||
sudo cp /etc/ltsp/dhcpd.conf /etc/dhcp/dhcpd.conf |
Заменим адреса в dhcpd.conf на нужные:
Блок кода | ||
---|---|---|
| ||
# # Default LTSP dhcpd.conf config file. # authoritative; subnet 192.168.56.0 netmask 255.255.255.0 { range 192.168.56.20 192.168.56.250; option domain-name "example.com"; option broadcast-address 192.168.56.255; option routers 192.168.56.100; next-server 192.168.56.100; # get-lease-hostnames true; option subnet-mask 255.255.255.0; option root-path "/opt/ltsp/amd64"; if substring( option vendor-class-identifier, 0, 9 ) = "PXEClient" { filename "/ltsp/amd64/pxelinux.0"; } else { filename "/ltsp/amd64/nbi.img"; } } |
Перезапустим dhcp:
Command | ||
---|---|---|
| ||
sudo systemctl restart isc-dhcp-server |
Настройка tftpd сервера
В файле /etc/default/tftpd-hpa изменим путь к корню тфтп сервера:
Блок кода | ||
---|---|---|
| ||
TFTP_DIRECTORY="/var/lib/tftpboot" |
Перезапустим:
Command |
---|
sudo systemctl restart tftpd-hpa |
Настройка LTSP
Скопируем конфигурацию Debian (т.к. для орла конфигурацию еще не придумали)
Command |
---|
sudo cp -r /usr/share/ltsp/plugins/ltsp-build-client/Debian /usr/share/ltsp/plugins/ltsp-build-client/AstraLinuxSE |
Директория должна называться именно AstraLinuxSE
Поправим файл:
/usr/share/ltsp/plugins/ltsp-build-client/AstraLinuxSE/010-debootstrap
Строку
Блок кода |
---|
LC_ALL=C ${DEBOOTSTRAP:-"debootstrap"} $DEBOOTSTRAPOPTS --arch $ARCH $DIST $ROOT $MIRROR |
меняем на
Блок кода |
---|
LC_ALL=C ${DEBOOTSTRAP:-"debootstrap"} --components "main, contrib, non-free" $DEBOOTSTRAPOPTS --arch $ARCH $DIST $ROOT $MIRROR |
Настройка LTSP образа
Монтирование установочного диска
Для создания образа необходимо примонтировать установочный диск (или образ диска) Astra Linux Special Edition релиз "Смоленск" версии 1.6.
Например мы имеем установочный образ smolensk-1.6-20.06.2018_15.56.iso
Монтируем:
Command |
---|
sudo mount -o loop smolensk-1.6-20.06.2018_15.56.iso /media/cdrom |
Сборка образа LTSP
Соберем образ командой:
Command |
---|
sudo ltsp-build-client --dist smolensk --purge-chroot --security-mirror none --updates-mirror none --mirror "file:///media/cdrom" --components "contrib, main, non-free" --kernel-packages linux-image-generic --early-packages vim |
Разберем опции:
--dist smolensk - собрать образ с системой "Смоленск"
--purge-chroot - очищать директорию с файлами образа
--security-mirror none и --updates-mirror none - говорим сборщику не использовать зеркала с обновлениями (если нужно, обновим систему после сборки образа)
--mirror "file:///media/cdrom" - указываем репозиторий, откуда ставить систему. В нашем случае это директория с примонтированным установочным диском.
--components "contrib, main, non-free" - используем все компоненты
--kernel-packages linux-image-generic - установить ядро generic по-умолчанию
--early-packages vim - установить редактор vim на стадии сборки
Все опции обязательны, иначе при сборки возникнут ошибки (хотя можно поправить сборочные скрипты, но это долго)
Образ системы появится в /opt/ltsp/images
Распакованная система в /opt/ltsp/amd64 - она то нам и нужна. Займемся ее настройкой.
Настройка образа системы
Для работы с образом будущей системы будем использовать команду ltsp-chroot.
Зададим пароль root:
Command |
---|
sudo ltsp-chroot passwd root |
Примонтируем репозитории:
Command |
---|
sudo mkdir /opt/ltsp/amd64/opt/{main,devel} sudo mount -o loop smolensk-1.6-20.06.2018_15.56.iso /opt/ltsp/amd64/opt/main sudo mount -o loop devel-smolensk-1.6-20.06.2018_15.56.iso /opt/ltsp/amd64/opt/devel |
в /opt/ltsp/amd64/etc/apt/sources.list пропишем путь к репам:
Блок кода | ||
---|---|---|
| ||
deb file:///opt/main smolensk main contrib non-free deb file:///opt/devel smolensk main contrib non-free |
Выполним
Command |
---|
sudo ltsp-chroot apt update |
Установим нужное:
Command |
---|
sudo ltsp-chroot apt install ltsp-client-core parsec linux-astra-modules-generic xorg-all-main fly-dm freerdp2-x11 zenity |
Command |
---|
sudo ltsp-chroot apt install -f |
В /opt/ltsp/amd64/etc/ltsp/update-kernels.conf укажем тип загружаемого образа: NBD
Блок кода | ||
---|---|---|
| ||
# Supported booth methods BOOT_METHODS="NBD" |
Выполним:
Command |
---|
sudo ltsp-chroot bash /usr/share/ltsp/update-kernels |
Для подключения по протоколу XDMCP поправим /opt/ltsp/amd64/usr/share/ltsp/screen.d/xdmcp
Строку
Блок кода |
---|
X_ARGS="$X_ARGS -query ${XDM_SERVER}" |
изменим на
Блок кода |
---|
X_ARGS="$X_ARGS -query ${XDM_SERVER} -displayID 0:63:0x0:0x0" |
Для rdp подключений:в файле /opt/ltsp/amd64/usr/share/ltsp/screen.d/xfreerdp приводим последнюю строку к виду
Блок кода | ||
---|---|---|
| ||
exec xinit /usr/share/ltsp/xinitrc /usr/local/bin/rdp.sh -- "$DISPLAY" "vt${TTY}" -nolisten tcp $X_ARGS >/dev/null |
Редактируем файл /opt/ltsp/amd64/usr/local/bin/rdp.sh
Блок кода | ||
---|---|---|
| ||
#!/bin/bash userdata=$(zenity --forms --title="Вход на сервер" --text="Форма авторизации" —add--add- entry="Логин:" --add-password="Пароль:"); userlogin="`echo $userdata|cut -d '|' -f 1`"; userpassword="`echo $userdata|cut -d '|' -f 2`"; xfreerdp /v:192.168.56.1 /cert-ignore +sec-nla /d:example.local /u:$userlogin /p: $userpassword /f /drive:usb,/media /network:lan /printer |
Сделаем его исполняемым:
Command |
---|
chmod +x /opt/ltsp/amd64/usr/local/bin/rdp.sh |
Выполним:
Command |
---|
sudo ltsp-chroot systemctl disable fly-dm sudo ltsp-chroot update-initramfs -uk all |
Далее правим /var/lib/tftpboot/ltsp/amd64/lts.conf:
Блок кода | ||
---|---|---|
| ||
[default] LTSP_CONFIG=True #SOUND=False XSERVER=vesa LOCALDEV=True HOTPLUG=True DNS_SERVER=192.168.56.100 SOUND=True MIC_VOLUME=0 CAPTURE_VOLUME=100 CAPTURE_SWITCH=toggle TIMEZONE=Europe/Moscow TIMESERVER=192.168.56.100 SYSLOG_HOST=192.168.56.100 NBD_SWAP=False #NBD_SWAP_SERVER=192.168.56.100 #CONFIGURE_X=False SCREEN_07=xfreerdp PRINTER_O_DEVICE=/dev/usb/lp0 PRINTER_0_TYPE=U |
Автомонтирование usb
Создадим /opt/ltsp/amd64/etc/udev/rules.d/udev.rules:
Блок кода | ||
---|---|---|
| ||
ACTION=="add", KERNEL=="sd[a-z][0-9]", TAG+="systemd", ENV{SYSTEMD_WANTS}="usbstick-handler@%k" |
Далее создадим unit для запуска:
Блок кода | ||
---|---|---|
| ||
[Unit] Description=Mount USB BindsTo=dev-%i.device After=dev-%i.device [Service] Type=oneshot RemainAfterExit=yes ExecStart=/usr/local/bin/automount %I ExecStop=/usr/bin/pumount /dev/%I |
И скрипт для монтирования:
Блок кода | ||
---|---|---|
| ||
#!/bin/bash PART=$1 FS_LABEL=`lsblk -o name,label | grep ${PART} | awk '{print $2}'` if [ -z ${FS_LABEL} ] then /usr/bin/mount -t auto /dev/${PART} /media/${PART} else /usr/bin/mount -t auto /dev/${PART} /media/$ {FS_LABEL}_${PART} fi |
Command |
---|
chmod +x /opt/ltsp/amd64/usr/local/bin/automount |
Пересоберем образ:
Command |
---|
sudo ltsp-update-kernels && sudo ltsp-update-image |
Загрузка образа
Включаем тонкий клиент и выбираем загрузку по сети