0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Ubuntu 26.04 LTS上でのLTSPサーバ構築 : fat / thin clientの管理

0
Posted at

概要

更新履歴

モチベーション

研究室に10人~20人の学生さんがいるとする.
学生さんなので毎年人が入れ替わる.
そんな状況下で,各PCにubuntuをインストールし必要なソフトウエアをインストールし実験などが恙なく行われるようにメンテナンスし続けることは煩雑すぎて嫌である.

LTSPはサーバ側でOSイメージを持ちネットワーク経由で各PCにOSイメージを配布し起動するものとなる.
システムの一括管理が出来て楽そう,ということで導入している.

前ver.からのモチベーション

Ubuntu24.04から少しシステムが変わったらしい.そのため,2026/06/29時点では公式ページに書いてある通りにやっても動かない.
また公式PPAページもまだなく,Ubuntuのリポジトリ経由でのインストールのみになっている.

特にUbuntu26.04から起動時の初期RAMファイルシステムイメージの作成方法が変わった(?)ようで,

  • 24.04まで: initramfs-tools使用
  • 26.04から: dracut使用

となっている(dracutは上位ツールっぽい?)
dracutが関わってくると初期イメージでの起動時に変なことになる.
よってとりあえずの工夫として,dracutを使わずinitramfs-toolsを使う,ということをした.

あとepoptesがまだ使えないとか,ldap関係をsssdでやろうとすると上手く行かないのでnscdでやろうとかも出てくる(ldap関係は違う話なのでここではしていない).

本ページは2026/06/29時点で動かすための手順で将来的にはいらなくなる情報かも.

LTSPにまつわる情報

clientも十分な能力もっているので基本clientで作業した方がいいよね,となっている(参考).
そのため,以下の使用方法が基本らしい.

  • fat client
  • chrootless
    • chroot, VM wareのイメージも利用できるが,chrootlessが推奨.

前提

当研究室のシステム構成はこのようなものを使っている.
ここで関係のある部分は以下のとおり.

  • LTSPサーバ
    • Ubuntu Desktop 26.04
    • chrootless
    • NICは1枚
  • 各PC
    • PXE boot可(でないとLTSPのクライアントになれない.biosで設定)
  • dns, dhcpサーバ
    • 既にあるdns, dhcpサーバを利用.
  • ユーザ認証
    • 既にあるldapサーバを利用
      • sssdだと上手く行かない?
      • nscdなど利用

dns, dhcpサーバを外部に持つことが一番通常と違うと思われる.たぶん普通はLTSPサーバインストール時に用意・設定されるdns, dhcpを使用することになる(dnsmasq, systemd-resolv?).

また本ページで記載しているIPは全部適当(頭脳乱数により生成)

  • dnsとかdhcp
    • 192.168.0.5
  • LTSPサーバ
    • 192.168.0.10

dns, dhcpサーバおよびユーザ認証について

既に設定されているサーバを使用するため,ここでは各サーバの構築方法などは説明しない.

準備

LTSPサーバの準備

Ubuntu Desktopをインストール.ユーザが使用するであろう通常のDesktopとして設定.

  • 利用ソフトウエアのインストール
    • nfsなどシステム利用のためのものからchromeやvimなどのアプリケーションまで
  • homeディレクトリをNFSで外部からマウントしたい場合,LTSPサーバではマウントしないよう設定
    • fatクライアントではlts.confの中のfstabに関する項目でマウントするので大丈夫
  • 認証の設定
    • ldap認証できるようにしておく
  • その他
    • ntp,システムアップデート,etc.

dhcpサーバでの追加設定

現在利用しているdhcpサーバの設定ファイルを編集.
クライアントにipが割り振られる時,PXEブートするのか,PXEブートするならOSファイルを配布するLTSPサーバのIPは何かを設定する.

  • 対象コンピュータ
    • DHCPサーバ
  • 対象ファイル
    • /etc/dhcp/dhcpd.conf
  • 例は関係する一部を抜粋
    • 前後の一般的な設定は'....'で表現
dhcpd.conf
....
option space ipxe;
option ipxe-encap-opts code 175 = encapsulate ipxe;
option ipxe.menu code 39 = unsigned integer 8;
option ipxe.no-pxedhcp code 176 = unsigned integer 8;
option arch code 93 = unsigned integer 16;

subnet .... {
        option ipxe.no-pxedhcp 1;
        next-server 192.168.0.10; # LTSPサーバ(tftpサーバ)のIPを記載
        if exists ipxe.menu {
                filename "ltsp/ltsp.ipxe";
        } elsif option arch = 00:00 {
                filename "ltsp/undionly.kpxe";
        } elsif option arch = 00:07 {
                filename "ltsp/snponly.efi";
        } elsif option arch = 00:09 {
                filename "ltsp/snponly.efi";
        } else {
                filename "ltsp/unmatched-client";
        }
....
}

LTSPサーバ構築

以下,LTSPサーバ上での作業.

インストール

インストールとepoptesがクライアント管理するための設定

terminal
sudo apt update -y && apt install --install-recommends ltsp ipxe dnsmasq nfs-kernel-server openssh-server squashfs-tools ethtool net-tools -y

dracutのあ割にinitramfs利用.dracutはremoveしようとしても「もうない」と言われるかも.

terminal
sudo apt install initramfs-tools
sudo apt remove dracut

dnsmasqの設定

terminal
$ sudo ltsp dnsmasq --proxy-dhcp=0 --real-dhcp=0
$ sudo systemctl restart dnsmasq

注意: NIC1枚で外部にDHCPサーバを持つ場合のコマンド.

ltsp.confの設定

ファイル準備

terminal
$ sudo install -m 0660 -g sudo /usr/share/ltsp/common/ltsp/ltsp.conf /etc/ltsp/ltsp.conf

設定

  • 対象ファイル
    • /etc/ltsp/ltsp.conf
ltsp.conf
[server]

[common]

[client]
DNS_SERVER=192.168.0.5 # DNSサーバのIPアドレス.これがないとfstabなどで名前解決できない.

# fstabの設定
# 例ではhomeディレクトリをサーブするhome-serverとsamba用(/sambaをサーブ)のsamba-serverがある
# IPで指定でもいいが例では名前で指定.
FSTAB_0="home-server:/home /home nfs4 _netdev,auto 0 0"
FSTAB_1="samba-server:/samba /samba nfs4 _netdev,auto 0 0"

fstabの設定について

LTSPサーバの/etc/fstabでなくlts.confの中で設定する理由

chrootlessによりLTSPサーバの環境 = クライアントの環境として構築できる.そのためLTSPサーバの/etc/fstabに記入することで,クライアントでも同じようにNFSマウントが行われる.しかし敢えてLTSPサーバではfstabを使わない.
理由:
homeディレクトリをhome-serverによりNFSマウントする状況を考える.
home-serverを再起動した時,NFSマウントしているPCがハングアップする可能性がある.

  • もし,LTSPサーバがhomeディレクトリをマウントしていた場合,LTSPサーバもハングアップしてしまう.管理者がいないと復旧できない.
  • もし,LTSPサーバがhomeディレクトリをマウントしていない場合,クライアントのみハングアップするので,クライアントのみ強制再起動すれば直る.管理者がいなくても復旧できる.
    よって,LTSPサーバの/etc/fstabでhomeディレクトリをマウントせず,lts.confの中でfstab設定するようにする.

初期イメージ作成

terminal
sudo ltsp image /,,/boot,subdir=boot,,/opt,subdir=opt;sudo ltsp ipxe;sudo ltsp nfs;sudo ltsp initrd

クライアントの設定

クライアントのBIOSでPXEブート(ネットワークブート)を有効・起動順位を適正に設定.

クライアントの起動

ちゃんとLTSPクライアントとして起動しているか確認

運用

システムアップデート・ソフトウエア追加など変更があった場合

  1. LTSPサーバ自体に変更を適用する
    • アップデート or ソフトウエア追加など
  2. 変更したLTSPサーバをもとにクライアント用OSイメージを作成
terminal
sudo ltsp image /,,/boot,subdir=boot,,/opt,subdir=opt;sudo ltsp ipxe;sudo ltsp nfs;sudo ltsp initrd

クライアントを再起動して新しいOSイメージでブートさせると完了.

ltsp.confを編集

  1. ltsp.confを編集
  2. bootイメージを再作成
terminal
sudo ltsp initrd

その他

SurfaceのLTSPブート

  • 確認対象
    • Surface Go
    • USB Type-C Ethernet/USBアダプター
      • デフォルトでmoduleを読み込んでいないようで起動せず往生した.
      • module名
        • cdc_ether
        • r8152

設定

  1. module 'cdc_ether, r8152'を組み込む.
  2. 組み込んだmoduleを有効にする.
  3. イメージ作成する.
terminal
$ sudo echo 'cdc_ether' >> /etc/initramfs-tools/modules
$ sudo echo 'r8152' >> /etc/initramfs-tools/modules
$ sudo update-initramfs -u
$ sudo ltsp image /;sudo ltsp ipxe;sudo ltsp nfs;sudo ltsp initrd
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?