LoginSignup
6
7

More than 3 years have passed since last update.

Ubuntu 18.04 LTSによるLTSP5

Last updated at Posted at 2019-03-26

概要

モチベーション

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

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

LTSPにまつわる情報

各PCはクライアント(client)となりますが,その形態はthin clientとfat clientがある.thin clientはOS起動後,ソフトを使ったりする処理をサーバ側で行うものでfat clientは各PC自身で処理を行うものである.

またサーバの実現の仕方(サーブの仕方)?としては,chrootを使ったものとchrootlessなものがある(公式).
以前はchrootが推奨されていたが18.04からchrootlessが推奨になっている.

更にクライアントの管理としては18.04からepoptesが利用できるようになった.
これはクライアントの電源の情報・画面の取得などができるものである.
本ページでは説明省略.

前提

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

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

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

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

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

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

準備

LTSPサーバの準備

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

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

LTSPサーバ構築

インストール

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

terminal
$ sudo add-apt-repository --yes ppa:ts.sch.gr
$ sudo apt update
$ sudo apt install --yes --install-recommends ltsp-server-standalone ltsp-client epoptes
$ sudo gpasswd -a ${SUDO_USER:-$USER} epoptes

初期イメージ作成

terminal
$ sudo ltsp-update-image --cleanup /

作られるディレクトリ・ファイル

  • /opt/ltsp/images/
  • /var/lib/tftpboot/
  • /etc/nbd-server/conf.d/swap.conf
  • /etc/nbd-server/conf.d/ltsp_amd64.conf

設定ファイル作成

terminal
$ sudo ltsp-config dnsmasq --overwrite
$ sudo ltsp-config lts.conf

作られるディレクトリ・ファイル

  • /etc/dnsmasq.d/ltsp-server-dnsmasq.conf
  • /var/lib/tftpboot/ltsp/[arch]/lts.conf
    • 最近のPCだと
      • /var/lib/tftpboot/ltsp/amd64/lts.conf

dnsmasqの設定

  • 対象ファイル
    • /etc/dnsmasq.conf
    • /etc/dnsmasq.d/ltsp-server-dnsmasq.conf
  • 編集アプローチ
    • dns, dhcp機能を全部offに
    • tftp機能のみ有効に

ファイルの編集

  • dnsの無効
    • port=0
  • dhcpサーバ無効
    • dhcp-*** を全部コメントアウト

dhcpサーバの設定

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

  • 対象ファイル
    • /etc/dhcp/dhcpd.conf
  • 対象のsubnetの中に記載
  • 例は関係する一部を抜粋
dhcpd.conf
subnet .... {

  next-server 192.168.0.10; # LTSPサーバ(tftpサーバ)のIPを記載
  if substring( option vendor-class-identifier,0,9 ) = "PXEClient" {
    filename "/ltsp/amd64/pxelinux.0"
  }

}

resolv.conf

  • 対象ファイル
    • /etc/systemd/resolv.conf
resolv.conf
DNS=192.168.0.20 # DNSサーバのIP.例では192.168.0.20
Domain=my.local.ac.jp # 自分のところのドメイン名

lts.conf

クライアントをどのように起動するかの設定.
詳しくはこちら

  • 対象ファイル
    • /var/lib/tftpboot/[arch]/lts.conf
lts.conf
[default]
LTSP_FATCLIENT=True # fat clientで起動
TIMEZONE="Asia/Tokyo"
CUPS_SERVER=192.168.0.30 # cupsを使っているならcupsサーバのIPかFQDN
LDM_PASSWORD_HASH=True # 画面ロックできるようになる
XKBLAYOUT=jp

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

[MACアドレス] # 固有のMACアドレスを書くことで,そのPCのみの設定が可
LTSP_FATCLIENT=false

# その他,[ラベル名]などでグルーピングもできる
# LIKE指定を使う.

[Lab]
X_MODE_0 = 1024x768

[01:23:45:67:89]
LIKE=Lab

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設定するようにする.

クライアントの設定

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

クライアントの起動

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

運用

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

  1. LTSPサーバに変更を適用する
    • アップデート or ソフトウエア追加など
  2. 変更したLTSPサーバをもとにクライアント用OSイメージを作成
$ sudo ltsp-update-image -c /

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

その他

6
7
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
6
7