次に、ITインフラストラクチャでかなりの時間とお金を節約する方法について説明します。
エコシステムに大混乱を引き起こすことなく、多数のLinuxワークステーションを集中管理する方法。
では、LTSPとは何ですか?
LTSP-これはLinuxのターミナルソリューションです。
「ターミナル」と言えば、私は主にWindowsのようにリモートデスクトップに接続しないことを意味します。 ソフトウェア、構成、ホームディレクトリ、およびオペレーティングシステム自体をターミナルサーバーからクライアントワークステーションに配信するための、より柔軟で高度なシステムを意味します。
特に、LTSPは事前に設定されたプログラムとスクリプトのセットであり、これにより、新しくインストールしたUbuntuやその他のディストリビューションを、完全に動作可能な端末環境に簡単に変えることができます。 これは、ネットワーク上の任意のコンピューターに読み込まれ、ユーザーに完全なインターフェイスを提供します。
LTSPにはいくつかの動作モードがあります。
初心者にとって違いが何であるかを理解するために、LTSPの仕組みを理解する必要があります。
動作原理
サーバーと多数のコンピューター(ターミナルステーション)があり、それらがユーザーのために機能するようにユーザーに配布するとします。 これらのターミナルステーションは、通常サイズが非常に小さく、動作するためにハードドライブを必要としないことを除いて、通常のコンピューターとほとんど違いはありません。シンクライアントモード)。 ネットワークを介して起動できるコンピューターは、ターミナルステーションとして機能できることに注意してください。
既に述べたように、ターミナルステーションにはハードディスクがない場合があり、オペレーティングシステムがインストールされていない可能性があります。すべてのダウンロードは、LTSPサーバーからネットワーク経由で直接実行されます。
ターミナルサーバーにシステムがインストールされており、すべてのユーザーデータ、構成、およびソフトウェアもそこに格納されています。
ユーザーがコンピューターの電源を入れると、オペレーティングシステムがターミナルサーバーから読み込まれ、入力、作業、切断ができます。 さらに、すべてのデータは常にターミナルサーバーに残ります。
次に動作モードについて:
- シンクライアント -アプリケーションはターミナルサーバー上で実行され、ターミナルクライアント上で単に表示されます。
- シッククライアント -アプリケーションはターミナルクライアントで直接実行され、サーバーはユーザーファイルとプログラムへのアクセスを提供するだけです。
それでは、どのモードを選択する必要がありますか? -それはすべてあなたが何を得たいかに依存します。 シンクライアントモードの強力なサーバーと組み合わせて、クライアントで弱いステーションを使用することにより、少し節約できます。 または、より強力なターミナルステーションを購入して、ターミナルサーバーとローカルネットワークをアンロードし、プログラムの実行に対する責任をクライアントに移し、それらをシッククライアントモードで強制的に動作させます。
さらに、モードを組み合わせて、一部のアプリケーションを他のユーザーとは異なる動作にすることができます。 たとえば、クライアントでローカルにフラッシュを使用して「重い」ブラウザを起動し、サーバー自体でオフィスアプリケーションを実行します。
長所と短所
インフラストラクチャを構築するための標準的な原則と比較して、私たちが持っている利点を見てみましょう。
- 集中管理-1つの場所から1つの構成を管理できます。
- バックアップとバックアップ -所有するすべてのユーザーデータは1つのサーバーに保存されます。それに応じてこのサーバーの予約を設定することにより、ユーザーデータが失われることはありません。
- コンピューターの節約 -ディスクレス端末ステーションは、本格的なコンピューターよりも大幅に安価です。
- 迅速な展開-OSをインストールする必要がなくなりました。 次の端末パックを購入すると、それらを安全にネットワークに挿入できます。端末はすぐにサーバーからOSをプルアップし、作業の準備が完全に整います。 同様に、動作していない端末を別の端末にすばやく交換できます。
- 職場からの独立性 -ユーザーは、ネットワーク上の任意のコンピューターから独立してアカウントで作業できます。ユーザーの個人プロファイルは常に読み込まれます。
- オープンソース -まず、LTSPはオープンで無料のプロジェクトです。 使用するためにライセンスを購入する必要はありません。 さらに、通常のbashスクリプトに基づいたソースを常に表示できます。
短所:
- 継続的なLAN接続が必要です -端末ステーションがロードされ、ネットワーク上で動作するため、ネットワークへの安定した有線接続が必要です。
- サーバーへの依存はもちろん、 サーバーがなければ、すべてのターミナルクライアントが役に立たなくなり、カボチャになります。
装置
最初に知っておくべきことは、サーバーを構成するコンポーネントです。
- DHCPサーバー -クライアントにIPアドレス、tftpサーバーに関する情報、およびpxelinuxブートローダーへのパスを提供するために使用されます。 独自のDHCPサーバーを使用することもできます。
- TFTPサーバー -ブートローダー、カーネル、および
lts.conf
メイン構成をtftpプロトコル経由で送信します。 - NBDサーバー -ネットワーク経由でベースシステムを起動するためにカーネルが使用します。 また、必要に応じて、
NFS
に置き換えることができNFS
- SSHサーバー -ユーザーを認証し、ホームディレクトリをターミナルステーションに転送するために使用されます。
第二に、それがどのように機能するかを理解しましょう:
ltsp-server-standalone
パッケージをインストールすると、完全に構成されたサービスに対して、さらにいくつかのltspスクリプトを受け取ります。
- ltsp-build-client-クライアントマシンに提供するシステムのイメージを収集します。
- ltsp- chroot-追加のパッケージをインストールしたり、構成を変更したりするために、クライアントシステムにchrootします。
- ltsp-config -LTSPのデフォルト構成を生成します。
- ltsp-info-現在のインストールに関する情報を表示します。
- ltsp-update-image-ベースシステムのnbdイメージを更新します。
- ltsp-update-kernels-カーネルとブートローダーをクライアントイメージからtftpサーバーディレクトリにコピーします
- ltsp-update-sshkeys-サーバーのssh公開鍵をknown_hostsクライアントイメージに追加します。
これらを使用して環境をカスタマイズします。
ネットワーク負荷はどのように調整されますか?
ネットワーク上でのダウンロードの配置を理解することも非常に重要です。ダウンロードプロセスは次のようになります。
- ワークステーションがオンになり、さらにロードする方法についてDHCPサーバーをポーリングします。
むしろ、next server
2つのオプションが要求されます。next server
-TFTPサーバーのアドレスとboot file
-ブートローダーへのパス。 - DHCPサーバー。サーバーアドレスとpxelinuxへのパスを含む応答を返します。
- ワークステーションはTFTP経由でpxelinuxブートローダーを起動します
- pxelinuxはカーネルをロードします。
pxelinux構成では、カーネルオプションはNBDからメインシステムをロードする場所を示します - カーネルが起動すると、nbd-imageがサーバーからシステムのルートにマウントされ、initプロセスがロードされます。これにより、通常の方法で他のすべてがロードされます。
- また、この時点で、ltspはサーバーからメインのlts.conf構成を読み取り、LDMを起動します。その後、ユーザーはログインとパスワードを入力するための招待状を確認します。
LDMは、ユーザーの認証と環境の起動を担当するLXDEログオンマネージャーです。
ユーザーがログインすると、次のことが発生します。
- シンクライアントの場合、LDMはユーザー名とパスワードを使用してSSH経由でサーバーにログインし、成功した場合、Xを転送するだけでサーバーから環境をダウンロードします。
- シッククライアントの場合、LDMはユーザー名とパスワードを使用してサーバーに接続しようとし、成功すると、sshfsを使用してサーバーからクライアントにユーザーのホームディレクトリをマウントし、環境を起動します。
ネットワーク経由でLinuxをブートするための詳細な情報が必要な場合は、Roshalskyシリーズの記事を参照することをお勧めします。 最初のリンクはこちらです 。
設置
シッククライアントモードでのLTSPのインストールは、最も複雑で興味深いものとして説明します。
シンクライアントモードでの設定は、chrootではなくメインシステムに必要なソフトウェアをインストールする必要があることを除いて、少し違いはありません。その後、nbd-imageを再構築する必要はありません。
サーバーにとっては、ディストリビューションをより新鮮にした方が良いという小さな警告があります。 LTSPは標準パッケージの1つであり、ディストリビューションで更新されます。 ゲストOSの場合、実証済みのUbuntu 14.04 LTSを使用することをお勧めします。 ディストリビューションをより新しくすると、問題が始まり、パッケージの名前を変更してから他の何かを変更するため、ブートローダーがインストールされません。
UPD:検証済み。最新のUbuntu 16.04 LTSでは、このような問題はありません。
それでは始めましょう。 最初にltsp-server-standalone
インストールしltsp-server-standalone
。
apt-get update && apt-get install ltsp-server-standalone
ltsp-build-client
を使用して、クライアントシステムをインストールします。 LTSPはさまざまなDEをサポートしますが、LXDEの仕組みが気に入っています。 Unityとは異なり、リソースをほとんど消費せず、ベアXで動作するため、環境変数を使用してほぼ完全に構成できます。これは、メインのlts.conf構成で指定できるため、非常に便利です。
ltsp-build-client --dist xenial --arch i386 --fat-client-desktop lubuntu-desktop
これらのオプションはすべて、 /etc/ltsp/ltsp-build-client.conf
configで指定できるため、手動で登録する必要はありません。
# Distribution DIST=xenial # The chroot architecture. ARCH=i386 # ubuntu-desktop and edubuntu-desktop are tested. # If you test with [k|x]ubuntu-desktop, edit this page and mention if it worked OK. # kubuntu lucid (10.10) working okay. FAT_CLIENT_DESKTOPS="lubuntu-desktop" # Space separated list of programs to install. # The java plugin installation contained in ubuntu-restricted-extras # needs some special care, so let's use it as an example. #LATE_PACKAGES=" # ubuntu-restricted-extras # gimp # nfs-client #" # This is needed to answer "yes" to the Java EULA. # We'll create that file in the next step. DEBCONF_SEEDS="/etc/ltsp/debconf.seeds" # This uses the server apt cache to speed up downloading. # This locks the servers dpkg, so you can't use apt on # the server while building the chroot. MOUNT_PACKAGE_DIR="/var/cache/apt/archives/"
オプションが指定されていない場合、サーバーシステムと同じディストリビューションやアーキテクチャが使用されます。
debootstrap
を使用して、コマンドを完全自動モードで実行した後、システムは/opt/ltsp/i386
ディレクトリにdebootstrap
れ/opt/ltsp/i386
。
今後、同じシステムがすべてのLTSPコマンドで使用され、追加のソフトウェアがインストールされ、カーネルを備えたブートローダーとシステムのnbdイメージが生成されます。 原則として、適切なブートローダー設定でnfs
を介して提供することもできます。
インストール後、LTSPは自動的にnbdイメージを生成します。 この画像はお客様がアップロードします。
追加のソフトウェアをインストールするなど、ゲストOSに変更を加えるには、 ltsp-chroot
コマンドを使用します。
ゲストシステムに何かを変更または追加する場合は、 ltsp-choot
を実行すると、その中にいることがわかります。
次に、必要なアクションを実行し、exitコマンドで終了します。
変更を適用するには、 ltsp-update-image
コマンドでnbdイメージを再生成する必要があります
DHCPサーバー:
ltsp-server-standalone
メタltsp-server-standalone
とともに、 isc-dhcp-server
もインストールされました。
原則として、それはすでにあるべき状態ですでに動作していますが、必要に応じて、そのconfig /etc/default/isc-dhcp-server
を修正でき/etc/default/isc-dhcp-server
。
LTSPのセットアップのトピックに関する2010年のOpenNetに関するクールな記事があります。DHCPサーバーのセットアップ手順は、そこに詳しく説明されています。
ただし、DHCPサーバーが既にあると想定しているため、構成することを提案します。
isc-dhcp-server
削除しisc-dhcp-server
。
sudo apt-get remove isc-dhcp-server
次に、dhcpサーバーに2つのオプションを追加する必要があります。
next-server 192.168.1.2; # TFTP- filename "/ltsp/i386/pxelinux.0"; #
これを行う方法については、DHCPサーバーの手順を参照してください。
ここでは、たとえば、Mikrotik機器でこれを行う方法に関する指示があります。
ソフトウェアのインストール
ゲストシステムに入りましょう:
ltsp-chroot
次に、vimをインストールします。
apt-get update && apt-get install vim
ロシア語のサポート:
apt-get update && apt-get install `check-language-support -l ru`
Remminaの最新バージョン:
apt-add-repository ppa:remmina-ppa-team/remmina-next apt-get update apt-get install remmina remmina-plugin-rdp libfreerdp-plugins-standard
Skype:
add-apt-repository -y "deb http://archive.canonical.com/ $(lsb_release -sc) partner" apt-get -y update apt-get -y install skype
PepperFlashプラグインを備えたChromiumブラウザ(Googleからの新しいフラッシュ)
sudo apt-get install chromium-browser sudo apt-get install pepperflashplugin-nonfree sudo update-pepperflashplugin-nonfree --install
ちなみに、PepperFlashはFirefoxでChromiumなしでインストールして実行できます。
add-apt-repository -y ppa:skunk/pepper-flash add-apt-repository -y ppa:nilarimogard/webupd8 apt-get -y update apt-get -y install pepflashplugin-installer freshplayerplugin mkdir -p /opt/google/chrome/PepperFlash ln -s /usr/lib/pepflashplugin-installer/libpepflashplayer.so /opt/google/chrome/PepperFlash
- 管理者がユーザーセッションにリモートで接続できるように、x11vncをインストールします。
# apt-get -y install x11vnc # cat > /usr/bin/x11vncd <<EOT #!/bin/bash x11vncd () { XAUTH=\`ls -1td /var/run/ldm-xauth-* | head -n1 | sed 's|$|/Xauthority|'\` logger -f /var/log/x11vnc "Starting with \$XAUTH" /usr/bin/x11vnc -display :7 -rfbauth /etc/x11vnc.pass -logfile /var/log/x11vnc -xauth \$XAUTH sleep 1 x11vncd } x11vncd EOT # init- cat > /etc/init.d/x11vnc <<EOT #!/bin/sh ### BEGIN INIT INFO # Provides:x11vnc # Required-Start:\$remote_fs \$syslog # Required-Stop:\$remote_fs \$syslog # Default-Start:2 3 4 5 # Default-Stop:0 1 6 # Short-Description:Start X11VNC # Description:Start VNC server X11VNC at boot ### END INIT INFO case "\$1" in start) start-stop-daemon --start --oknodo --pidfile /var/run/x11vnc.pid --background --nicelevel 15 --make-pidfile --exec /usr/bin/x11vncd ;; stop) logger -f /var/log/x11vnc "Stopping" start-stop-daemon --stop --oknodo --pidfile /var/run/x11vnc.pid ;; restart) logger -f /var/log/x11vnc "Restarting" \$0 stop \$0 start ;; status) PID=\`cat /var/run/x11vnc.pid\` if [ -e /proc/\$PID ]; then echo "Process \$PID is running" else echo "No process matching" fi ;; *) echo "Usage: \$0 start|stop|restart|status" exit 1 ;; esac exit 0 EOT # chmod +x /usr/bin/x11vncd /etc/init.d/x11vnc # update-rc.d x11vnc defaults # x11vnc -storepasswd /etc/x11vnc.pass
そしてsshサーバー:
apt-get -y install openssh-server
Ubuntu 16.04でも、xscreensaverを設定しないと特定の問題が発生します。一定の時間が経過すると、クライアントに黒い画面が表示され、終了できなくなります。 これを修正しましょう:
xscreenasverがまだインストールされていない場合はインストールします。
apt-get -y install xscreensaver
自動実行を設定します。
cat > /etc/xdg/autostart/xscreensaver.desktop <<EOT [Desktop Entry] Type=Application Exec=/usr/bin/xscreensaver -nosplash Hidden=false NoDisplay=false X-GNOME-Autostart-enabled=true Name[en_US]=xscreenasaver Name=xscreensaver Comment[en_US]= Comment= EOT
パスワードで画面をロックする場合は、忘れずに次の行をlts.conf構成に追加してください。
LDM_PASSWORD_HASH=true
chrootを終了してnbdイメージを更新することを忘れないでください:
exit ltsp-update-image
ユーザー作成
通常のターミナルサーバーユーザーは、標準的な方法で作成できます。
useradd -m -c " " -g users -s /bin/bash <username> passwd <username>
または、GUIを使用してサーバーにインストールされている場合
また、必要に応じて、クライアントイメージにローカル管理者を作成できます。
ltsp-chroot useradd -g adm -G sudo -s /bin/bash -m <adminname> passwd <adminname> exit ltsp-update-image
構成lts.conf
それで、最も重要な設定に到達しました
/var/lib/tftpboot/ltsp/i386/lts.conf
あり、グローバル変数の説明以外の何かを表します。
構成はセクションに分かれており、デフォルトセクションはすべてのクライアントに共通の設定を説明しています。
[Default] # LXDE LDM_XSESSION = /usr/bin/dbus-launch --exit-with-session /usr/bin/lxsession -s Lubuntu -e LXDE # LOCALE = Europe/Moscow LC_ALL = ru_RU.UTF-8 LANG = ru_RU.UTF-8 LDM_LANGUAGE = ru_RU.UTF_8 # XKBLAYOUT = "us,ru" XKBOPTIONS = "grp:ctrl_shift_toggle,terminate:ctrl_alt_bksp" X_NUMLOCK = true KEYTABLE = ru LDM_NUMLOCK = true # HOTPLUG = True # LOCALDEV = true # SOUND = True MIC_VOLUME = 0 CAPTURE_VOLUME = 100 CAPTURE_SWITCH = toggle # SSH RCFILE_01 = "ssh-keygen -A ; /usr/sbin/sshd" # SYSLOG_HOST = server
ホスト名、IP、またはMACアドレスに基づいて個々のクライアントのセクションを追加することもできます。
# [oldmachine] X_COLOR_DEPTH=8 X_MODE_0=800x600 # [192.168.1.123] LDM_AUTOLOGIN = True LDM_USERNAME = user LDM_PASSWORD = password # - [00:11:25:93:CF:00] PRINTER_0_DEVICE=/dev/usblp0 SCREEN_07=shell # FreeRDP, [00:11:25:93:C:11] SCREEN_07=xfreerdp RDP_SERVER=192.168.100.10 RDP_OPTIONS="/f /sec:rdp /cert-ignore /multimon:force"
一般に、オプションの完全なリストは、 このページで見つけることができます
man lts.conf
まとめ
その結果、柔軟で安全かつ管理しやすいシステムの両方が得られます。
標準的な方法を使用して任意のソフトウェアをインストールし、ユーザー権限を制限し、各ユーザーの一般的な構成を個別に編集できます。データ損失を恐れることはありません。
さらに、無料ライセンスのおかげで、これらはすべて完全に無料です。
LTSPは、教育機関と通常のオフィスの両方で、Windowsへのリモート接続と通常の仕事の両方に使用できます。
UPD:コメントのワイドストリームは、同様のスキームを使用してレンダーファームを作成することに成功したと書いています。
現代では、ほとんどの従業員にとって、職場では基本的なオフィスプログラムのセットを備えたブラウザーだけで十分であることは、秘密ではありません。
いくつかの興味深いリンク:
- LTSP.org-プロジェクトの公式サイト。
- UbuntuLTSP -Ubuntu Wikiのページ。
- LTSP-Cluster 。 -LTSPでクラスターを作成するプロジェクト(大規模インストール用)。
- Raspi-LTSP -Raspberry Piをターミナルステーションとして使用できる興味深いプロジェクト。
ロシア語を話すコミュニティ
ご質問がある場合は、私たちのグループに電報で参加してください。
https://t.me/ltsp_ru