清单 9. 自动安装脚本
#!/bin/sh
os=$1
src=$2
currentdir=`pwd`
basedir=/export/build
if [ -z "$os" ]
then
echo "No operating system definition specified"
exit 1
fi
if [ -z "$src" ]
then
echo "No application definition specified"
exit 1
fi
cd $basedir
if [ -r "$basedir/$os/$src" ]
then
for dir in `cat $os/$src`
do
cd $basedir/$os/$dir
make install
done
else
echo "No application definition specified"
exit 1
fi
现在,要在一台机器上安装一组特定的应用程序,所有您需要做的就是运行这个脚本,并给出操作系统文件夹和应用程序选择文件,如清单 10 所示:
清单 10. 在一台机器上安装一组特定的应用程序
$ appinstall.sh solaris8-x86 standard
脚本以及精心构造的目录结构将完成其余的任务。
结束语
使用这个方法来安装和发布应用程序,需要一些时间来进行设置和熟悉,但是,一旦开始运转,它几乎是自动进行的。实际上,因为您使用可以安装哪些应用程序的信息来填充文件,所以,通过将该脚本作为 cron 作业运行,您还可以使用同一个系统来自动更新网络上的机器。我每周运行一次我的脚本,不过您可以一个月才运行一次。对于 99% 的安装器来说,当前版本与将要安装的版本是否相同没有关系。所有安装程序要做的只是覆盖上一次运行安装程序时可能用到的文件的相同副本。
如果您使用这个自动化的方法,那么将您的所有机器更新至最新将会是一件非常简单的事,只需使用最新版本的构建目录来更新应用程序选择文件即可,这太棒了!您所有的机器在预定的更新过程中将安装最新的安装(installation)。不需要特别的脚本,也不需要使用 rsync、ssh 或者 rsh。您可以开始根据需要配置和定制您的应用程序,并允许不同的机器使用不同的应用程序设置。
正如我在文章开头部分所讲述的,所有您需要的只是一些准则。您可能还需要大量磁盘空间。