第1章 自动化管理基础
1.1 是否需要自动化管理
1.1.1 采用多种系统的大型公司
1.1.2 成长中的中型公司
1.1.3 Internet服务提供商
1.1.4 应用服务提供商
1.1.5 Web服务器群
1.1.6 Beowulf簇
1.1.7 网络设备
1.2 阅读本书的收获
1.3 系统管理员的任务
1.4 提供用户界面
1.5 选用正确的方法
1.5.1 均衡系统
1.5.2 推和拉
1.6 处理用户和管理员的关系
第2章 使用SSH安全地进行自动化系统管理
2.1 SSH基础
2.2 使用SSH增强安全性
2.3 使用RSA认证
2.3.1 生成密钥对
2.3.2 指定授权的密钥
2.4 使用ssh-agent
2.4.1 ssh-agent的基本用法
2.4.2 ssh-agent的高级用法
2.4.3 密钥转发
2.5 限制RSA认证
2.5.1 处理未获信任的主机
2.5.2 允许执行权限受限的命令
2.5.3 端口转发
2.6 对公共账户使用SSH
2.6.1 准备建立公共账户
2.6.2 监控公共账户
第3章 创建登录脚本和shell脚本
3.1 定制命令提示符
3.1.1 让提示符提供更多信息
3.1.2 使用有色的提示符
3.2 使用Tab补齐功能
3.2.1 配置Tab补齐功能
3.2.2 可编程的Tab补齐功能
3.2.3 使用定制的补齐函数
3.3 创建命令别名
3.3.1 使用别名提高效率
3.3.2 提高别名的一致性
3.4 创建影响多个系统的命令
3.4.1 简单的Multi-SSH
3.4.2 基于组的Multi-SSH
3.5 分发登录脚本
3.5.1 跟踪不同版本
3.5.2 分发登录脚本
第4章 安装之前:网络准备和管理
4.1 确定使用静态IP还是动态IP
4.2 创建和使用模块化shell脚本
4.3 使用锁定功能来防止冲突
4.4 基本的预安装脚本
4.5 预安装组件脚本
4.5.1 请求MAC地址
4.5.2 分配IP
4.5.3 对系统分类
4.5.4 收集联系人信息
4.5.5 添加到/etc/hosts文件中
4.5.6 配置DHCP服务器
4.5.7 更新DNS配置
4.6 如何处理错误
4.7 移除机器
4.7.1 移除MAC地址
4.7.2 回收IP
4.7.3 撤消系统
4.7.4 删除联系人条目
4.7.5 修改主机文件
4.7.6 配置DHCP
4.7.7 更新DNS配置
4.8 生成报告
4.8.1 有多少台机器
4.8.2 可用的IP地址有多少
4.8.3 正在使用哪些MAC地址
第5章 自动安装和定制安装
5.1 自动化安装
5.2 定制操作系统
5.2.1 是否应该定制操作系统
5.2.2 维护定制发行软件
5.3 准备进行自动化管理
5.3.1 远程配置新系统
5.3.2 自我配置的新系统
第6章 自动化系统配置
6.1 配置内容
6.1.1 定制文件
6.1.2 动态文件
6.1.3 默认文件
6.1.4 静态文件
6.1.5 文件系统组件
6.2 遵循的配置原则
6.3 创建定制配置方法
6.3.1 定义文件和目录结构
6.3.2 定义配置逻辑
6.3.3 提供配置脚本
6.3.4 分析示例配置文件的创建
6.4 使用GNU cfengine配置系统
6.4.1 cfengine概述
6.4.2 基本安装
6.4.3 调试cfengine
6.4.4 在cfagent.conf中创建代码段
6.4.5 使用cfrun
第7章 在系统间共享数据
7.1 数据类型
7.1.1 共享应用程序
7.1.2 用户数据
7.1.3 应用程序数据
7.1.4 系统信息
7.1.5 账号信息
7.2 使用网络文件系统
7.2.1 使用NFS共享数据
7.2.2 使用Samba共享文件
7.2.3 使用Andrew文件系统(AFS)
7.2.4 其他可用的网络文件系统
7.3 自动挂载网络文件系统
7.3.1 Solaris的自动挂载程序
7.3.2 Linux上的自动挂载程序(autofs)
7.3.3 am-utils的自动挂载程序
7.4 使用NIS/MIS+共享系统数据
7.4.1 创建NIS映射和NIS+表
7.4.2 /etc/nsswitch.conf文件
7.4.3 netgroup文件
7.4.4 NIS细节
7.4.5 使用NIS的安全性问题
7.4.6 NIS+细述
7.5 使用轻量级目录访问协议(LDAP)
7.6 Kerberos的安全性
7.7 使用cfengine共亨数据
7.7.1 分发文件
7.7.2 管理NFS的挂载
7.8 用rsync同步数据
7.8.1 rsync的潜在用途
7.8.2 决定使用哪一种rsync传输协议
7.8.3 rsync基本应用
7.8.4 rsync应用实例
7.9 用CVS管理和分发数据
7.9.1 CVS基础
7.9.2 系统管理脚本的分发
7.9.3 Web内容分发
7.10 用HTTP/FTP传输数据
7.10.1 实例:Web内容同步
7.10.2 简单实例:传输系统配置文件
7.10.3 进阶实例:传输系统配置文件
7.11 RPM
第8章 程序包和补丁
8.1 补丁和程序包
8.2 如何选择
8.3 如何开始
8.4 利用补丁更新系统
8.4.1 理解和应用Solaris补丁
8.4.2 定制补丁
8.5 理解和安装程序包
8.5.1 Red Hat程序包管理器(RPM)
8.5.2 Debian程序包
8.5.3 Slackware程序包
8.6 利用AutoRPM实现程序包的自动安装
8.6.1 基本的AutoRPM设置
8.6.2 在交互模式中工作
8.6.3 理解FTP池文件
8.6.4 配置文件示例
8.6.5 AutoRPM触发器
8.7 利用OpenPKG执行跨平台打包操作
8.7.1 安装OpenPKG
8.7.2 利用OpenPKG安装程序包
8.7.3 修改程序包
第9章 系统维护和更改
9.1 同步时间
9.1.1 设置时区
9.1.2 同步时钟
9.1.3 更新硬件时钟
9.2 管理账户
9.2.1 设计账户管理脚本
9.2.2 安排账户管理配置文件
9.2.3 账户管理辅助函数
9.2.4 账户管理主脚本
9.2.5 账户管理数据组件
9.2.6 修改组件
9.2.7 清除已删除用户
9.3 维护日志文件
9.3.1 Red Hat的logrotate
9.3.2 利用spinlogs轮循日志
9.3.3 利用cfengine进行日志轮循
9.4 删除文件
9.4.1 定制驱动器清理
9.4.2 Red Hat的tmpwatch
9.4.3 利用cfengine删除文件
第10章 系统监控
10.1 常规系统监控
10.1.1 创建常规报告工具
10.1.2 监控系统负载
10.1.3 监视可用的磁盘空间
10.1.4 监控系统服务
10.1.5 监视程序包的变化
10.1.6 驱动器故障
10.2 监控系统日志
10.2.1 利用Logwatch进行日志监控
10.2.2 利用swatch进行实时日志监控
10.3 监控网络服务
10.3.1 自定义监控和自动修复
10.3.2 NetSaint(又名Nagios)
10.3.3 Mon
第11章 提高系统的安全性
11.1 利用GNU cfengine提高系统安全性
11.1.1 执行基本的文件检查
11.1.2 disable段
11.1.3 files段
11.1.4 控制网络服务
11.2 配置系统级的防火墙
11.2.1 防火墙配置文件
11.2.2 防火墙配置脚本
11.2.3 系统组
11.3 利用Tripwire监视文件
11.3.1 安装Tripwire
11.3.2 生成Tripwire策略文件
11.3.3 使用Tripwire
第12章 数据的备份与恢复
12.1 确定备份策略
12.2 使用cfengine备份数据
12.2.1 使用cfengine执行本地备份
12.2.2 在备份时排除文件
12.3 使用rsync备份数据
12.3.1 使用rsync进行基本的备份
12.3.2 增量备份
12.3.3 排除文件
12.4 使用rdiff-backup备份数据
12.4.1 使用rdiff-backup进行增量备份
12.4.2 删除旧的备份数据
12.4.3 恢复数据
12.4.4 在使用rdiff-backup备份时排除文件
12.5 使用tar进行磁带备份
12.5.1 使用tar进行基本的备份
12.5.2 使用tar创建增量备份
12.5.3 磁带的备份
12.5.4 使用tar进行备份时排除文件
12.5.5 从tar包中恢复数据
12.6 Amanda备份工具
第13章 用户界面
13.1 使用Webmin实现基于Web的管理
13.2 创建底层工作脚本
13.3 以root用户身份执行命令
13.4 设计并使用通用的数据文件
13.4.1 保存设置的通用文件格式
13.4.2 定义界面的规范
13.5 基于文本的界面
13.5.1 菜单界面
13.5.2 配置基于文本的界面
13.6 创建基于Web的界面
13.6.1 组织Web界面
13.6.2 Mason简介
13.6.3 HTTP认证的安全性
13.6.4 记录Web服务器的操作
13.6.5 创建并使用定制的Perl库
13.6.6 基于Web的系统总体状态信息
13.6.7 系统配置的Web界面
13.6.8 在Web上执行shell命令
附录A 基本工具介绍
附录B RedHat Linux的定制和自动安装
附录C 构建Red Hat程序包管理器(RPM)的程序包