系统安装前言:

单机装系统时曾经使用过的anaconda程序。提供一些图形化的选择界面并且进行选择配置。之后形成anaconda-ks.cfg配置文件存放在管理员家目录下。这种是比较原始的交互式安装。缺点是必须保持有人值守。下面就是达到多主机无人值守同步安装的逐步渐进解说。大家知道,linux中对程序的控制靠的就是对该程序的控制脚本中的一些参数的修改。可以直接手工编辑*.cfg (后缀名无意义,仅用于标识文件用途。名字是随意起的.后缀名尽量保留。便于记忆。)文件或使用工具软件system-config-kickstart(需要使用yum另行安装)生成一.cfg 结尾标识的配置文件。我默认存放在/root/目录下。

安装过程可以简化为以下几步:

     1.引导

     2. anaconda 寻找并读取配置文件

     3.读取系统光盘文件并进行安装。

经过以上三步就可以完成新系统的安装。

解说如下:

1.此次安装我使用的ftp,dhcp,tftp,yum等服务器始终在一台机器上。所以后面需要已经安装过的服务器时,就一笔带过。只提出一些需要修改或不同的地方。

2.我使用的是redhat 5.4软件。服务器主机处于hostonly状态。相应的新装的虚拟机就必须处于vmnet1(hostonly 区域)。

3.配置过程中使用的挂载目录只用新建一次即可。换光盘镜像前需要先进行光盘卸载。然后再换光盘进行挂载。否者可能会出现挂载不上的现象。这时我的处理方式是重新启动。重启后注意检查服务ftp,dhcp,等服务的状态!

4.如果安装进行不下去。请检查ftp服务器是否开启。dhcp 服务器是否开启。

5.安装进行一段时间后。在使用新的安装方式重新安装系统前务必检查安装目录。确保将安装目录下的历史文件清除干净。否则会导致安装出错。

一.告诉系统anaconda 配置文件的位置有三种方式(以下均为系统启动时手动所要选择的。也可以将类似形式的信息放置在相关文件中,如后文用到的isolinux.cfg配置文件)

1. boot: linux ks=ftp://192.168.10.10/pub/ks.cfg(使用ftp服务器上的配置文件) 
2. boot : linux ks=hd:device:目录(比如 ks=hd:sda1:/ks.cfg)
ks=cdrom:目录 (cdrom:/ks.cfg 将配置文件加载到引导的iso文件中) 
3. boot : linux ks= (dhcp,next-server[kickstart文件] 存放的服务器,filename 文件名称和路径)

以上三种方式为不同的装机方式。主要是引导方式不同。第三种是最适用于多个主机同时装机。例如机房装机等。

二.启动引导 (安装的实际过程从引导开始)

1. 系统光盘 该光盘可以用于引导也可以直接进行安装(只需在安装界面boot:直接回车即可)

2. 引导光盘 在镜像文件(位于/dev/cdrom/p_w_picpath/下的boot.iso

将该文件烧录到光盘中就可以制作成引导光盘。

3. U盘引导 与boot.iso同一目录下的名为diskboot.img

4.pxe 网络自动引导 网络中的dhcp服务向待安装主机提供ip地址。并告知该主机的所要查找的服务器的名称,此处指向tftp服务器的根目录/tftpboot/自动运行pxe相关程序。

*注1 使用系统光盘引导。如下图

systemback 安装系统 system-config-users安装_开发工具

*注2 使用引导光盘 在系统光盘中。在windows环境中使用rar压缩工具可以将系统光盘中的p_w_picpath目录下的boot.iso解压出来。这个就可以直接用来挂载。用于引导安装。如图:

systemback 安装系统 system-config-users安装_linux_02

三.配置文件的产生

1.配置yum本地服务器 在 /etc/yum.repos.d/目录下的server.repo 修改后的内容如下:

[rhel-server]
name=Red Hat Enterprise Linux server
baseurl=file:///mnt/cdrom/Server
enabled=1
gpgcheck=1
gpgkey=file:///mnt/cdrom/RPM-GPG-KEY-redhat-release
[rhel-vt]
name=Red Hat Enterprise vt
baseurl=file:///mnt/cdrom/VT
enabled=1
gpgcheck=1
gpgkey=file:///mnt/cdrom/RPM-GPG-KEY-redhat-release
[rhel-cluster]
name=Red Hat Enterprise Linux Cluster
baseurl=file:///mnt/cdrom/Cluster
enabled=1
gpgcheck=1
gpgkey=file:///mnt/cdrom/RPM-GPG-KEY-redhat-release
[rhel-clusterstorage]
name=Red Hat Enterprise Linux clusterstorage 
baseurl=file:///mnt/cdrom/ClusterStorage
enabled=1
gpgcheck=1
gpgkey=file:///mnt/cdrom/RPM-GPG-KEY-redhat-release

这样就可以安装软件了

2.安装system-config-kickstart.noarch 软件包。并产生配置文件。安装前要进行系统光盘的挂载。如下:

新建挂载点 mkdir /mnt/cdrom

挂载iso文件 mount /dev/cdrom /mnt/cdrom/

查看挂载情况 mount

补充:使用umount /mnt/cdrom/ 进行卸载 之后就可以进行挂载了。

yum install system-config-kickstart.noarch 回车

systemback 安装系统 system-config-users安装_systemback 安装系统_03

之后进行一些常规的选择。配置出来的ks.cfg文件内容如下:

#platform=x86, AMD64, or Intel EM64T
# System authorization information
auth --useshadow --enablemd5 //MD5加密密码,并将放在shadow文件内
# System bootloader configuration
bootloader --append="quiet" --location=mbr //添加的参数为“quiet”,安装到mbr上
# Clear the Master Boot Record
Zerombr //清除原有的mbr
# Partition clearing information
clearpart --all --initlabel //清除原有的所有分区并且初始化卷标
# Use text mode install
Text //文本安装
# Firewall configuration
firewall –disabled //防火墙处于关闭状态
# Run the Setup Agent on first boot
firstboot –disable //第一次启动不需要设置代理
# System keyboard
keyboard us //键盘类型
# System language
lang en_US //系统语言
# Installation logging level
logging --level=info //日志级别为info级别(很低的级别)
# Use network installation
url --url=ftp://192.168.10.10/pub //url 表示基于网络的安装 网络服务器的地址
# Network information
network --bootproto=dhcp --device=eth0 --onboot=on //网络参数的获取形式是dhcp动态获得
# Reboot after installation
Reboot //安装完成后重新
#Root password
rootpw --iscrypted $1$bFsVdjNG$4iEJI2cWWxyrtwLQaZIJi //管理员密码 MD5加密
# SELinux configuration
selinux –permissive //警告级别
# System timezone
timezone Asia/Shanghai //时区为亚洲上海
# Install OS instead of upgrade
Install //表明这是一个全新的安装
# X Window System configuration information
xconfig --defaultdesktop=GNOME --depth=16 --resolution=800x600 //图形 默认桌面是GNOME 色深 16位 屏幕分辨率 800 乘 600
# Disk partitioning information
part /boot --bytes-per-inode=4096 --fstype="ext3" --size=100 //分区的每个字节对应的节点数是4096 文件类型为ext3 大小为100M
part / --bytes-per-inode=4096 --fstype="ext3" --size=10000 //分区的每个字节对应的节点数是4096 文件类型为ext3 大小为10000M
part swap --bytes-per-inode=4096 --fstype="swap" --size=1024 //分区的每个字节对应的节点数是4096 文件类型为swap 大小为1024M
%packages //组的安装
@gnome-desktop
@development-tools
@system-tools
@admin-tools
@web-server
@graphical-internet
@dns-server
@text-internet
@editors

将生成的配置文件以ks.cfg保存在系统的默认目录(/root/)下。

四.ftp服务器的安装与配置

1.使用yum安装 yum install vsftpd

安装完成后软件会在/etc/ftp/目录下产生 pub目录

2.挂载光盘并将光盘的内容拷贝到ftp服务器中的pub目录下

mkdir /mnt/cdrom/ //新建挂载点
mount /dev/cdrom /mnt/cdrom //此处挂载的是系统盘
cp -a /mnt/cdrom/. /var/ftp/pub //将系统光盘中的所有文件拷贝到ftp服务器下的pub目录。在ks.cfg配置文件中有这个路径的记录。

这样一个可为整个网络提供安装源文件的ftp服务器就搭建完毕。

启动 ftp服务 service vsftpd start

将ftp服务添加到开机自动启动 chkconfig vsftpd on

五.dhcp服务器的搭建与配置

1.使用rpm 安装dhcp服务器
rpm -ivh /mnt/cdrom/Server/dhcp-3.0.0-21.e15.i386.rpm
2.编辑脚本
vim /etc/dhcpd.conf
修改后的关键内容摘录如下:
5 subnet 192.168.10.0 netmask 255.255.255.0 {
8 option routers 192.168.10.1;
9 option subnet-mask 255.255.255.0; 
11 option nis-domain "lywh.com";
12 option domain-name "lywh.com";
13 option domain-name-servers 222.88.88.88;
24 range dynamic-bootp 192.168.10.11 192.168.10.20;
32 }

3. 重新启动dhcp服务器。

service dhcpd start //启动dhcp服务器

chkconfig dhcpd on //设置开机自动启动

六.简单的安装(简单交互安装)

1.第一种(ks.cfg在ftp服务器上的安装)

(1. 配置为VMnet1 (hostonly)并且为源文件引导(因为是做实验,用这个引导较方便)如图:

systemback 安装系统 system-config-users安装_开发工具_04

(2. 拷贝文件 cp /root/ks.cfg /var/ftp/pub //将配置文件复制到ftp服务器。

因为我的dhcp服务器与ftp服务器处于同一主机上。所以要保证待安装的虚拟机与主机保持在同一区域即可。区域的划分其实是为了解决无线互联及虚拟广播域的划分。安装流程部分截图如下:

systemback 安装系统 system-config-users安装_python_05

获取ip地址等参数信息

systemback 安装系统 system-config-users安装_linux_06

找到配置文件并且开始安装

systemback 安装系统 system-config-users安装_运维_07

正在进行包文件的安装

systemback 安装系统 system-config-users安装_linux_08

2.第二种安装 (将ks.cfg 文件放到引导光盘中)挂载引导光盘(boot.iso)

(1.制作新引导光盘的镜像文件

mkdir /tmp/iso //新建文件目录
cd /mnt/cdrom //此处挂载的是引导光盘(boot.iso)
cp -a –r * /tmp/iso/
cp /root/ks.cfg /tmp/iso/
然后切换到iso目录的父目录。即/tmp/目录下利用如下命令将目录文件打包成新的iso镜像文件。括号及括号中的内容在正式命令行中不存在,仅为说明。
mkisofs -o myboot.iso (生成的iso目标文件名称) –b(boot引导) isolinux/isolinux.bin (引导文件的路径) -c isolinux/boot.cat(显示boot.msg内容的程序) -no-emul-boot -boot-load-size 4 -boot-info-table -R -J -v -T iso/

(2.使用第三方工具将新产生的光盘镜像传送到物理机中,用于挂载。

在安装的过程中和第一种安装不同的地方是

systemback 安装系统 system-config-users安装_linux_09

3.第三种安装(这种安装是相对于第二种安装的改进型。省去了安装之初需要指定配置文件路径的麻烦。此过程挂载的是修改过isolinux.cfg文件后重新生成的引导光盘 myboot.iso)

(1. 修改/tmp/iso/isolinux/目录下的isolinux.cfg的内容为:
default linux 修改为 default linux ks=cdrom:/ks.cfg
timeout 600 修改为 timeout 10 //这里的单位是“s”
(2. 先删除第一次的镜像文件。与第二种相同的打包代码进行打包。切换到/tmp/目录下。
mkisofs -o myboot.iso (生成的iso目标文件名称) –b(boot引导) isolinux/isolinux.bin (引导文件的路径) -c isolinux/boot.cat(显示boot.msg内容的程序) -no-emul-boot -boot-load-size 4 -boot-info-table -R -J -v -T iso/

再将打包后的软件包转移至物理机中进行挂载。安装过程不需要再手动指定配置文件的位置及文件名称。10秒钟之后自动进行跳转。

systemback 安装系统 system-config-users安装_python_10

以上三种虽然只进行几步操作。但是仍需要在每个机器上装引导光盘或U盘,进行引导。依旧不是非常方便。

所以就有了一下这种安装方式解决全过程无人值守安装。安装速度取决于网络带宽。

七.pxe 网络无人值守全自动安装

1.需要安装ftp,dhcp服务器。

(1. ftp服务器已经安装配置过了。步骤参考第四条。

dhcp服务器已经安装配置过了。步骤参考第五条。

(2. dhcp的配置文件dhcp.conf修改一下(在/etc/目录下)在13行后添加如下内容。用于指定tftp的服务器ip。开始pxe安装。

14 next-server 192.168.10.10;
15 filename "pxelinux.0";

2. 安装tftp服务器。tftp是基于udp传输协议的服务,且他是依赖于超级守护的进程(xinetd.d)

(1. 安装tftp服务器

Yum install tftp* -y

(2. 修改文件信息

vim /etc/xinetd.d/tftp
将 disable = yes 修改为 disable = no //允许当超级守护进程接到发送给tftp的请求时。开启tftp进程。

(3. 启动tftp 服务

Service xinetd restart //重启超级守护进程

(4. 配置tftp的根文件目录

Cd /tftpboot/ //tftp服务的根目录
拷贝pxe所需要的文件。pxe 驱动,内核文件,其他驱动等。
cp /mnt/cdrom/p_w_picpaths/pxeboot/vmlinuz ./ //内核文件
cp /usr/lib/syslinux/pxelinux.0 ./ //pxe启动的驱动模块
cp /mnt/cdrom/p_w_picpaths/pxeboot/initrd.img ./ 服务所需的额外驱动
mkdir -p pxelinux.cfg/ //新建目录
cp /mnt/cdrom/isolinux/isolinux.cfg pxelinux.cfg/default
vim /pxelinux.cfg/default //修改第十二行 “append
ks=ftp://192.168.10.10/pub/ks.cfg ksdevice=eth0 initrd=initrd.img //指明配置文件的位置
3.修改system-config-start配置文件在/var/ftp/pub/ks.cfg
cd /var/ftp/pub/
vim ks.cfg
在第一行的位置添加如下代码
Key --skip
在是分区完成后面添加如下代码。这段代码是为了给每一台主机分配不同的主机名。防止相互之间冲突。如下
%post --interpreter=/bin/bash
ADDRESS=‘ifconfig eth0|grep "inet addr"|awk '{print $2}'‘ //提取赋值
NUM=${ADDRESS##*.} //截取赋值
echo $NUM //输出显示
sed -i "s/^HOSTNAME.*$/HOSTNAME=mail$NUM.lywh.com/" 
/etc/sysconfig/network //查找替换

至此就大功告成了!部分流程如下图:

寻找网络中的dhcp服务器

systemback 安装系统 system-config-users安装_开发工具_11

获得ip并读取default系统配置文件

systemback 安装系统 system-config-users安装_python_12

 加载...

systemback 安装系统 system-config-users安装_linux_13

包安装前的准备工作

systemback 安装系统 system-config-users安装_运维_14

包安装正常进行

systemback 安装系统 system-config-users安装_python_15

就这样安装就可以一步一步完成。

注意:1.服务处于开启状态(ftp , dhcp ,tftp )

           2.光盘是否已经挂载

           3.是否与服务器在同一区域等