Debian Edu / Skolelinux  - 讨论区

标题:Skolelinux / Debian Edu 一般管理 [ 拙劣翻译 Jan.14, 2012 ]

2012年01月08日 星期日 09:57


Getting StartedDebianEdu/Documentation/Squeeze/Maintainance 两章讲解 Debian Edu 如何起步和基本维护工作。这一章有些进阶部分和技巧。



配置文件历史:使用 git 版本控制系统跟踪 /etc/


以 Debian Edu Squeeze etckeeper 脚本(先前版本使用 etcinsvk,已自 Debian 中移除)来介绍使用 git 作为版本控制系统跟踪 /etc/ 中所有文件。

这样能够查看一个文件在何时添加,变更和移除,而且对于文本文件还可以查看它的变化。git 存储位置在/etc/.git/

每小时自动记录任何变化,允许取出和复查以往的配置文件。

/!\ FIXME: 这里有一个 bug ,新文件不能自动跟踪,请提交 bug 到 Debian BTS!

查看历史,使用 etckeeper vcs log 命令。检查两个时间点间的不同,可以使用类似 etcinsvk vcs diff  命令。

参看 etckeeper 手册页可以得到更多信息。

实用命令列表:

etckeeper vcs log
etckeeper vcs status
etckeeper vcs diff
etckeeper vcs add .
etckeeper vcs commit -a
man etckeeper

 


使用示例

在一个刚安装的系统上试用,这样可以看到自系统安装以来的所有变化:

etckeeper vcs log

查看当前未跟踪或没有新变化的文件:

etckeeper vcs status

因为不想等待一个小时而使用手工处理一个文件:

etckeeper vcs commit -a /etc/resolv.conf

调整分区大小

在 Debian Edu 中最多的分区是逻辑卷,仅 /boot/ 分区不是。同 Debian/Etch 一起释出的 Debian Edu 可以在分区挂载时扩展该分区,这一 Linux 内核功能始于 2.6.10 版。静态缩减分区需要在该分区卸载时完成。

一个好的建议是避免创建非常大的分区,对于大分区,如果需要自备份恢复时,将要很长的时间,同样对于大分区的文件系统检查也需要非常长的时间。一个好的限度在 20 GiB,如果可能,创建几个小分区比一个非常大的分区更好。

debian-edu-fsautoresize 脚本提供很容易地扩展所有分区的工作,届时它依据从 /usr/share/debian-edu-config/fsautoresizetab, /site/etc/fsautoresizetab/etc/fsautoresizetab 读取设置。它在基于这些文件所提供的规则上也推荐以小的自由空间来扩展分区。 没有任何理由,它将仅显示需要扩展文件系统的命令。根据选项 -n 是需要实际执行命令来扩展文件系统。

该脚本于 fsautoresize-hosts 网络组上在每个客户清单内每小时自动执行。

调整 Squid proxy 所使用的分区大小时,在 etc/squid/squid.conf 中的仓库大小还需要更新。助手脚本 /usr/share/debian-edu-config/tools/squid-update-cachedir 提供这一工作的自动化,检查 /var/spool/squid/ 分区当前的大小并设置 Squid 使用其分区容量的 80% 作为它的仓库容量。

逻辑卷管理

逻辑卷管理 (LVM) 允许在分区挂载和使用期间调整其大小。你可以在 LVM HowTo 中学习更多关于逻辑卷的知识。

手工扩展逻辑卷你简单地告诉 lvextend 命令你想要它变得多大。例如,扩展 home0 到 30GB 你用如下命令:

lvextend -L30G /dev/vg_system/skole+tjener+home0
resize2fs /dev/vg_system/skole+tjener+home0

向home0 扩展 30G ,你在命令中插入一个 '+' (-L+30G)。

使用 ldapvi

ldapvi 是一个以常规文本编辑器编辑 LDAP 数据库的命令行工具。

以下要执行:

ldapvi --ldap-conf -ZD '(cn=admin)'
ldapvi -ZD 'uid=super-admin,ou=People,dc=skole,dc=skolelinux,dc=no'

注意: ldapvi 使用任何缺省的编辑器。在 shell 中执行 export EDITOR=vim 可以快速设置环境以 vi 作为编辑器。

/!\ 警告: ldapvi 是一个非常强大的工具。谨慎不要弄乱 LDAP 数据库。

luma, 一个 LDAP 图形界面

如果你选择一个工作于 LDAP 数据库上的图形界面,查看有无 luma 软件包存在。

ldap-createuser-krb, 一个命令行工具

  • ldap-createuser-krb 是一个小的在 kerberos 创建 LDAP 用户和设置他们密码的命令行工具,虽然在测试中大体实用。


使用 volatile.debian.org

自从 Squeeze 发行, Debian 在新建的 stable-updates 套件中包含以前维护在 volatile 中的软件包。

FIXME: 在这增加更多有关 stable-updates 的信息。


使用 backports.debian.org 来安装较新的软件

你运行 Debian Edu,是因为你选择 Debian Edu 的稳定性。它极佳的运行,也正是一个难题:一些你所喜爱的软件略微过时。这里步入 backports.debian.org。

Backports 是从 Debian 测试版(大多数)和不稳定版(仅少数情况,如安全更新)中预编译的软件包,它们运行在如 Debian Edu 那样的 Debian 稳定发布版上而无需新的库文件(个方面)。 我们建议你选择所需的单一 backports 而不要使用所有可用的 backports。

简单地使用 backports.debian.org :

# echo "deb http://backports.debian.org/debian-backports squeeze-backports \
    main contrib non-free" >> /etc/apt/sources.list
# apt-get update

届时你可以使用 aptitude -t squeeze-backports install <packagename> 来安装或更新一次软件包,或者你可以在 /etc/apt/preferences 中设置一个软件包一直从 backports.debian.org 安装。

最后在 instructions on backports.org 里介绍具有的优势,在 backports 得到更新时,会自动安装。


用 CD 或 DVD ROM 升级

如果你想从一个版本升级到另一个版本(例如从 Squeeze 5.0.4 到 5.0.6)但你没有互联网连接,仅有实物媒体,以下是升级步骤:

插入 CD/DVD-ROM 到光驱并挂载光盘,使用 apt-cdrom 命令:

$ mount /cdrom
# apt-cdrom add -m

引用 apt-cdrom(8) 手册页:

  • apt-cdrom 是用来添加新 CDROM 到 APTs 可用源清单。 apt-cdrom 细致地核定光盘结构,而且修正一些可能存在的烧录错误并核实索引文件。
  • 它必须使用 apt-cdrom 来添加 CDs 到 APT 系统,而不能手工完成。此外多片 CD 集中的每一片需要分别插入和检测以报告可能存在的烧录错误。

届时运行这两个命令来升级系统:

# apt-get update
# apt-get upgrade


Java

运行 standalone Java applications


Standalone Java applications 是支持开箱即用的 OpenJDK Java runtime。


在 web 浏览器中运行 Java applications


FIXME: 更新在 squeeze 中与 web 浏览器有关 java 的信息。

可以在 Debian Edu Lenny 中获得这个版本的 OpenJDK Java runtime,但不支持在 web 浏览器中运行,这将在下一个发布中修正。在 Lenny 中,自 Sun 的非自由(但可免费获得)Java 需要安装。

安装源自 Sun 的 Java 你需要编辑 /etc/apt/sources.list,首先确定将从 non-free 安装软件包。这里需要类似这样的一行:

deb http://ftp.debian.org/debian/ lenny main contrib non-free

然后:

# apt-get update

现在你准备好运行这个命令:

# apt-get install sun-java6-plugin sun-java6-jre sun-java6-fonts


在所有用户主目录中创建文件夹


以这一脚本管理者可以在每个用户主目录内创建文件夹并设置访问许可和权限。

在下面的例子中显示作为 group=teachers 和 permissions=2770 的一个用户可以上交一份作业保存在文件夹 "assignments" ,那里教师具有写权限能够批改它。

home_path="/skole/tjener/home0";
shared_folder="assignments";
permissions="2770";
created_dir=0;
for home in $(ls $home_path);do
. if [ ! -d "$home_path/$home/$shared_folder" ]; then
. mkdir $home_path/$home/$shared_folder
chmod $permissions $home_path/$home/$shared_folder
. #set the right owner and group
#"username" = "group name" = "folder name"
user=$home
group=teachers
chown $user:$group $home_path/$home/$shared_folder
((created_dir+=1))
else
. echo -e "the folder $home_path/$home/$shared_folder already exists.\n"
. fi
done
echo "$created_dir folders has been created"


轻松读写 USB 驱动器和 CDROMs/DVDs


当使用者在(无盘)工作站插入 USB 驱动器或 DVD/CDROM ,会出现一个以何种方式操作的询问窗口,就像在任何其他常规安装的机器上。

当使用者在瘦客户机插入 USB 驱动器或 DVD/CDROM 自他们通常使用的桌面并不显示窗口,而是自动挂载并在 /media/$user 文件夹对其浏览和读写。这对于大多数没有经验的使用者是相当困难的。

作为下面的脚本,为所有使用者轻松访问 USB 驱动器,CDROMs 或任何媒体连接到瘦客户机而在用户主文件夹创建 "Media" 符号连接。

home_path="/skole/tjener/home0"; shared_folder="Media"; permissions="775" \ created_dir=0;
for home in $(ls $home_path); do
if [ ! -d "$home_path/$home/$shared_folder" ]; then
ln -s /media/$home $home_path/$home/$shared_folder ((created_dir+=1))
else
echo -e "the folder $home_path/$home/$shared_folder already exists.\n"
fi
done
echo "$created_dir folders has been created"

 


有关在 LTSP 服务器上可移除媒体的提醒


/!\ 提醒:当在 LTSP 服务器上插入 USB 驱动器和其他可移除媒体引起在远程 LTSP 客户端显示消息。

当远程用户收到这个消息或使用从控制台pmount,一个远程用户甚至可以挂载可移除驱动器并存取其上的文件。

这个作为 Debian Edu bug #1376 进行跟踪。


自动清理残余过程


killer 是一个 perl 脚本,它摆脱后台任务。后台任务定义为某过程在用户当时未登录机器期间运行。它每小时运行一次任务工作。

安装它以 root 用户身份运行以下命令:

apt-get install killer


自动安装安全升级


unattended-upgrades 是一个 Debian 软件包,用以自动安装安全(和其他)更新。如果你计划使用它,你要有一些方法监控你的系统,例如,同时安装 apt-listchanges 软件包并设置它给你发送有关更新的邮件。那里一直是 /var/log/dpkg.log

安装这些软件包以 root 用户身份运行如下命令:

apt-get install unattended-upgrades apt-listchanges


夜间自动关闭机器


在夜晚关闭客户机来节约能源和费用,并在早晨自动开机。这个软件包 将尝试从午后四点每个小时关闭机器,但不关闭似乎有用户在使用的机器。它将尝试告诉 BIOS 在早晨七点左右开机,主服务器将尝试使用 wake-on-lan 包从六点半开机。这些时间可以在个别机器crontabs改变。

这里的一些考虑:

  • 客户机在有人使用时将不会关机。这是自那里检测到输出,作为例外情况,对于 LTSP 瘦客户机 LDM ssh 连接命令进行检测。

  • 避免保险丝熔断,一个有把握的好主意是不要同时启动所有客户机。
  • 这里可有两种不同的方法来唤醒客户机。其一是需要使用 BIOS 的功能和准确的硬件时间,而且主板和 BIOS 版本支持 nvram-wakeup。其他需要服务器通告各处所有客户机唤醒,并且对于所有客户机要支持 wake-on-lan。


如何设置夜间关机


在客户机上实现夜间关机,涉及 /etc/shutdown-at-night/shutdown-at-night,或者增添主机名(如在客户机上的 'uname -n' 输出)到网络组 "shutdown-at-night-hosts"。增加主机到 LDAP 网络组可以使用 lwat 网页工具完成。客户机可能需要在 BIOS 中设置 wake-on-lan。同样重要的开关和路线将用于在 wake-on-lan 服务器和客户机之间通过 WOL 包到客户机,甚至假如客户机是在关机时。一些开关失败地通过数据包到客户端,那是在开关中未达到 ARP 表,阻塞 WOL 包。

能在服务器上开启 wake-on-lan,添加客户机到 /etc/shutdown-at-night/clients,作为每个客户机的连接,首先是 IP 地址,接下来是 MAC 地址(网卡地址),以空格分隔它们,或者创建一个脚本 /etc/shutdown-at-night/clients-generator 来生成客户机清单。

对于使用 sitesummary,这里是一个 /etc/shutdown-at-night/clients-generator 范例:

#!/bin/sh
PATH=/usr/sbin:$PATH
export PATH
sitesummary-nodes -w

另一个选择是如果网络组在客户机上使用 shutdown-at-night ,这个脚本使用 ng-utils 软件包中的网络组工具:

#!/bin/sh
PATH=/usr/sbin:$PATH
export PATH
netgroup -h shutdown-at-night-hosts

/!\ 这部分文本最初从 README 获得。


透过防火墙访问 Debian-Edu 服务器


从互联网上透过防火墙访问机器,考虑安装 autossh-package。它可以使用设置一个 SSH-tunnel 到互联网上的一台机器由你访问。从那台机器,你可以通过 SSH-tunnel 透过防火墙访问服务器。


为分摊主服务器负载而安装简单服务的机器


FIXME: 它几乎属于无效

  • 使用 debian-edu-expert 引导选项安装 minimal 项目

  • 为服务安装软件包
  • 设置服务
  • 禁止主服务器上的相关服务
  • 在主服务器上更新 DNS


设置 PXE 菜单


PXE 设置的生成使用 debian-edu-pxeinstall 脚本。它允许不理会一些设置而由添加一个 /etc/debian-edu/pxeinstall.conf 文件以取代准则。


设置 PXE 安装


PXE 缺省所得的安装选项能让任何人以 PXE 引导一台机器。密码保护 PXE 安装选项,可以类似这样的内容创建 /var/lib/tftpboot/menupassword.cfg 文件:

MENU PASSWD $4$NDk0OTUzNTQ1NTQ5$7d6KvAlVCJKRKcijtVSPfveuWPM$

密码 hash 需要以一个想要的密码 MD5 hash 来取代。

PXE 安装将从设置那里接受语言,键盘布局和镜像设置的应用,当安装主服务器时,将在安装期间询问其他问题(项目,参与调查,分区和 root 密码)。避免这些问题,文件 /etc/debian-edu/www/debian-edu-install.dat 可以提供预先选出的答案来改善 debconf 标准。可在 /etc/debian-edu/www/debian-edu-install.dat 获得已经解释过的 debconf 准则的若干示例。你所做的改变将同 debian-edu-pxeinstall 一样在不久后用于重建 PXE-安装环境。用以 debian-edu-pxeinstall 重建期间增补 debconf 准则到 /etc/debian-edu/www/debian-edu-install.dat,以你增加的 debconf 准则添加 /etc/debian-edu/www/debian-edu-install.dat.local 文件。

FIXME: 以 DebianEdu/Documentation/Squeeze/HowTo/NetworkClients 做比较,摆脱多余的信息。


HowTos from wiki.debian.org


 http://wiki.debian.org/DebianEdu/HowTo/ 中的文档不是使用者就是开发者写得详细明确。将使用者详细明确的文档移到这里(并在哪里删除它们)!(但首先询问作者(查看哪里的页面历史找到他们)如若他们有意移动文档并置之于 GPL 之下。)

2012年01月08日 星期日 22:23

cool,加油!

2012年01月09日 星期一 12:45

哲思还没有代码高亮啊

如下红色区域有误,请重新填写。

    你的回复:

    请 登录 后回复。还没有在Zeuux哲思注册吗?现在 注册 !

    Zeuux © 2024

    京ICP备05028076号