1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

LTSPを授業で使うことを試してみた(その1:イメージ作成まわり)

Last updated at Posted at 2017-10-18

はじめに

この文書は、授業環境での均一な授業環境提供のため、LTSP1の力を借りてみることを検討し、実装を試みている最中のものです。
案外LTSPの日本語資料が少ない気がする(あっても古い)ので、現状というものを知るいい機会になると思います。

VagrantとVirtualBoxによる手元練習環境の構築

実際に動かしている環境は別にありますが、まずはミニマム環境でどの程度できるかを確認してみることにしましょう。使っているものは以下のものです。

  • MacBook Pro(2012mid, macOS High Sierra)
  • Vagrant 2.0
  • VirtualBox 5.1.30

もちろん適当なターミナルなどは必要なので用意しておきましょう。標準でもいいですが、私はiTerm2を使ってます。また、実際の運用環境もそうですが、サーバもクライアントもamd64です。

$ mkdir -pv ~/tmp/ltsp
$ cd ~/tmp/ltsp
$ vagrant init ubuntu/xenial64
$ vi Vagrantfile

で、パラメータの書き換えと仕込みを行います。

--- Vagrantfile.dist	2017-10-19 03:31:04.000000000 +0900
+++ Vagrantfile	2017-10-19 03:38:24.000000000 +0900
@@ -32,7 +32,7 @@

   # Create a private network, which allows host-only access to the machine
   # using a specific IP.
-  # config.vm.network "private_network", ip: "192.168.33.10"
+  config.vm.network "private_network", ip: "192.168.33.10"

   # Create a public network, which generally matched to bridged network.
   # Bridged networks make the machine appear as another physical device on
@@ -67,4 +67,11 @@
   #   apt-get update
   #   apt-get install -y apache2
   # SHELL
+  config.vm.provision :shell, inline: <<-SHELL
+      locale-gen ja_JP.UTF-8 UTF-8
+      timedatectl set-timezone Asia/Tokyo
+      cp -vf /vagrant/sources.list /etc/apt/
+      cp -vf /vagrant/99proxy /etc/apt/apt.conf.d/
+      apt-get update
+  SHELL
 end

ネットワークに関しては、プライベートネットワーク(VirtualBox的には「ホストオンリーアダプター」)を準備するようにしてます、IPは適当というかデフォルトをとりあえずそのまま使ってます。

また、ロケールの生成とタイムゾーンの設定を行っていますが、これは後ほど行うLTSPクライアントイメージ作成の中でタイムゾーン設定ファイルの配置に起因するエラーを回避するためのものです。というかこうしないと時計が9時間ぐらい狂うことになるので結局やらざるを得ませんが。

sources.listは国内ミラーを使うための差し替え、99proxyはプロキシサーバーをaptで使うための設定で、とりあえず以下のコードになっています。

sources.list
deb http://jp.archive.ubuntu.com/ubuntu xenial main restricted
deb-src http://jp.archive.ubuntu.com/ubuntu xenial main restricted

deb http://jp.archive.ubuntu.com/ubuntu xenial-updates main restricted
deb-src http://jp.archive.ubuntu.com/ubuntu xenial-updates main restricted

deb http://jp.archive.ubuntu.com/ubuntu xenial universe
deb-src http://jp.archive.ubuntu.com/ubuntu xenial universe
deb http://jp.archive.ubuntu.com/ubuntu xenial-updates universe
deb-src http://jp.archive.ubuntu.com/ubuntu xenial-updates universe

deb http://jp.archive.ubuntu.com/ubuntu xenial multiverse
deb-src http://jp.archive.ubuntu.com/ubuntu xenial multiverse
deb http://jp.archive.ubuntu.com/ubuntu xenial-updates multiverse
deb-src http://jp.archive.ubuntu.com/ubuntu xenial-updates multiverse

deb http://jp.archive.ubuntu.com/ubuntu xenial-backports main restricted universe multiverse
deb-src http://jp.archive.ubuntu.com/ubuntu xenial-backports main restricted universe multiverse

deb http://security.ubuntu.com/ubuntu xenial-security main restricted
deb-src http://security.ubuntu.com/ubuntu xenial-security main restricted
deb http://security.ubuntu.com/ubuntu xenial-security universe
deb-src http://security.ubuntu.com/ubuntu xenial-security universe
deb http://security.ubuntu.com/ubuntu xenial-security multiverse

sedでs;//archive;//jp.archive;しただけです。コメントは削除してますので、プロビジョニングのシェルコードでもいじれる簡単なお仕事。

99proxy
Acquire::http::proxy "http://192.168.1.249:3128/";

プロキシがあるなら使おうというところですので、適当なアドレス、ポートに差し替えてください。無いなら該当コードをコメントアウトしておけばいいでしょう。

Vagrant VMの起動

これでマシンを作れますので、起動しておきます。

LTSPサーバもどきの起動
$ vagrant up && vagrant status
...
Current machine states:

default                   running (virtualbox)

The VM is running. To stop this VM, you can run `vagrant halt` to
shut it down forcefully, or you can run `vagrant suspend` to simply
suspend the virtual machine. In either case, to restart it again,
simply run `vagrant up`.

まずは無事に動きました。ではログインしてからLTSPの構築を行います。

LTSPのツール類をインストール
# Vagrantfileにてリポジトリキャッシュを更新してるのでいきなり入れてます
$ sudo apt install -y ltsp-server-standalone

LTSP用 クライアントイメージの構築

LTSPのツールとしてインストールされるltsp-build-clientを使ってイメージの構築を行います。

イメージ作成
$ sudo ltsp-build-client --mirror=http://jp.archive.ubuntu.com/ubuntu/ \
                         --http-proxy=http://192.168.1.249:3128/
                         --locale=ja_JP.UTF-8

この作業は少し時間がかかるので、その間にネットワーク周りの下調べをしておきます。

VirtualBoxの内部ネットワークについて

Vagrantにてプライベートネットワーク(private_network)を有効にしていますが、これはVirtualBoxにおいてはホストオンリーアダプターというインターフェースのもとで成立しています。これはVirtualBox側で覗き込むとわかります。

スクリーンショット 2017-10-19 4.02.16.png

この場合はvboxnet0というアダプターが選択されているのがわかりますね。
同じネットワーク上にVMを用意すれば、LTSPの提供するDHCPサーバーでアドレスの割当やらをしてくれることになります。今のうちに作っておきましょうか。

低スペックでも動くか確認したいので、とりあえずメモリ1GBのLTSP Clientを作成します。仮想ハードディスクは本来のLTSPであれば不要のはずですが、予定としてホームを各自のPCで保有するというのを想定しているので作ってます、4GBで設定してますがお好みで。

スクリーンショット 2017-10-19 4.04.25.png スクリーンショット 2017-10-19 4.04.38.png

VM作成後、設定を開き、ネットワークアダプタの設定をLTSP用Vagrant VMと同じものにしておきましょう(ホストオンリーのvboxnet0)。

スクリーンショット 2017-10-19 4.09.25.png

LTSPクライアントを起動してみると…

さて、とりあえずイメージ生成ができたでしょうか?できてるなら、初期設定のままだと、パス /opt/ltsp/images/amd64.imgでできています。

ためしに動かしてみましょう。VirtualBoxのマネージャー画面から、作成しておいたLTSP Client VMを起動します。

初回起動の際はインストール用のディスクは?と聞かれますが、不要なのでキャンセルして進めます。
スクリーンショット 2017-10-19 4.40.54.png
BIOS画面になりますが、ここですからずF12キーを押します。MacであればFn+F12の場合もあるので要注意。
スクリーンショット 2017-10-19 4.41.12.png
これで起動方法が選べますので、LANブートのためにlを押します。これでDHCPでアドレスを取得して…

スクリーンショット 2017-10-19 4.51.34.png

くれねー という具合になってしまいます。

この理由は次のお話にて。

  1. Linux Terminal Server Project

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

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?