您的位置:首页 > 运维架构 > Linux

Dhcp+nfs+tftp+ks 完全无人值守安装linux操作系统

2009-04-02 14:43 633 查看

一:过程思路:(建议先跳过文字按照安装步骤边安装边看思路) 1:客户端网卡在主机启动初始化时通过网卡内置的PXE芯片启动DHCP进程向server获取ip地址,网卡获取到ip地址后,server会提供给client一个下载bootloader的指令,就是dhcp服务器中dhcpd.conf配置文件中filename这个选项。 2:网卡PXE芯片中已经包含了tftp client程序,获取到ip地址后,网卡会启动tftp服务去向tftp server请求传输这个bootloader文件PXElinux.0。当Bootloader加载后我们可以看到主机屏幕上有信息显示,而这个画面就是我们在用光驱装linux的时候看到的第一个画面。画面提示选择图形界面安装还是linux text字符界面安装等信息。如果在server端的tftpboot目录下只有这个文件,那么客户机会一直停留在boot这个地方,因为没有default这个bootloader配置文件告诉机器下一步加载哪个系统内核,default配置文件的作用是告诉主机从哪里去加载操作系统内核,这个时候如果我们按照正常光碟装机时会看到提示:输入回车或者linux text等信息。Bootloader会去调用default配置文件中的操作系统内核文件。 3:default 文件配置好之后,接着就是指定内核文件,这个在default文件最后。就是vmlinuz,initrd.img *.msg 这几个文件。 4:到这一步加载成功后,系统就按照我们平常光碟装系统看到的过程一模一样了,选择语言,鼠标,键盘等,但因为有了KS这个自动安装脚步,这些都不要我们手工去指定,全部会自动完成。 5:到这里为止,也许有人会问,那我们从哪里去加载安装的镜像。且慢,不是有个ks安装脚本吗,就是这个脚本里面我们可以指定安装镜像在哪里。 6:现在就考虑系统镜像的传输,这里我们选用linux特有的NFS网络文件系统进行镜像的传输。当然也可以用HTTP,ftp等方式。但为什么我们直接使用tftp呢,因为这个协议在传输大文件的时候效率非常低。二:具体安装过程: 说明:server IP:192.168.9.20 linux版本:centos 5.2 1:安装tftp 服务器 和dhcp服务器:
root@centos CentOS]# rpm -qa |grep tftp[/b] tftp-server-0.42-3.1.el5.centos [root@centos CentOS]# rpm -qa |grep dhcp[/b][/i] dhcpv6-client-1.0.10-4.el5[/i] dhcp-3.0.5-13.el5[/i]
目的是确保客户端能够正常获取到ip地址和pxelinux.0文件。 2:修改tftp参数:
[root@centos CentOS]# vi /etc/xinetd.d/tftp[/b] …………………………………………………………………………………… service tftp[/i]{[/i] socket_type = dgram[/i] protocol = udp[/i] wait = yes[/i] user = root[/i] server = /usr/sbin/in.tftpd[/i] server_args = -s /tftpboot[/i] disable = yes / [/b][/i]改成[/i][/b]no /[/i][/b] per_source = 11[/i] cps = 100 2[/i] flags = IPv4[/i] }[/i]
…………………………………………………………………………………………
/tftpboot 这个参数主要是指定tftp client 客户端从服务器的哪个目录去加载bootloader的pxelinux.0文件。 3:启动tftp:
[root@centos CentOS]# service xinetd restart[/b] Stopping xinetd: [FAILED][/i] Starting xinetd: [ OK ][/i]
4:安装dhcpd服务并配置启动:
[root@centos ~]# vi /etc/dhcpd.conf[/b] ddns-update-style interim;[/i] ignore client-updates;[/i] boot bootp;[/i] subnet 192.168.9.0 netmask 255.255.255.0[/i] { /[/i]分配给[/i]client[/i]端的[/i]ip[/i]地址[/i]/[/i] option routers 192.168.9.1;[/i] option subnet-mask 255.255.255.0;[/i] option domain-name "domain.org";[/i] option domain-name-servers 202.96.128.66;[/i] option time-offset -18000;[/i] range dynamic-bootp 192.168.99.2 192.168.9.100;[/i] filename "/pxelinux.0"; /[/i]用来指定[/i]tftp[/i]根目录的启动文件实际是在/[/i]tftpboot[/i]目录下。[/i]/[/i] default-lease-time 21600;[/i] max-lease-time 43200;[/i] next-server 192.168.9.20; /[/i]这一句是告诉[/i]client[/i]从哪里加载[/i]bootloade/r[/i]}[/i]
5: 创建文件夹并拷贝pxelinux.0至/tftpboot目录:
mkdir /tftpboot   cp /usr/lib/syslinux/pxelinux.0 /tftpboot /pxelinux.0server已经有/mkdir /tftpboot/pxelinux.cfg[/i][/b][/i]touch /tftpboot/pxelinux.cfg/default[/i][/b]default[/i]内容可以修改成如下:[/i][/i]………………………………………………………………………… default autoinstall /[/i]缺省引导[/i]autoinstall [/i]这个[/i]label/[/i] prompt 1[/i] timeout 30 /[/i]缺省自动加载的时间[/i]30s/[/i] [/i]………………………………[/i][/i] label autoinstall[/i] kernel vmlinuz /[/i]内核文件名字[/i]/[/i] append ks=nfs:192.168.9.20:/tftpboot/ks [/i]initrd=initrd.img devfs=nomount ramdisk_size=16384 nofb[/i]
……………………………………………………………………………………
append 这个选项是指定从哪个地方去读取这个配置文件,用什么方式加载。这里使用nfs方式获取KS这个文件,当然也可以用FTP、HTTP等方式。ks 文件,也就是linux自动加载安装中各项参数,平常我们用光盘安装的时候需要选择相应的语言,字体,键盘,鼠标,分区,安装的软件包等待信息,KS文件就是让这些选择自动化进行。 6:ks 文件内容如下:可以根据自己实际环境进行更改。
…………………………………………………………………………
lang en_US langsupport zh_CN en_US --default=en_US keyboard us[/i] mouse[/i] timezone Asia/Shanghai[/i] rootpw password /[/i]新装系统的[/i]root[/i]密码[/i]/[/i] reboot[/i] #upgrade[/i] install[/i] #harddrive --partition=sdb1 --dir=rhas[/i] nfs --server=192.168.9.20 --dir=/media/cdrom /[/i]指定镜像的位置[/i]/[/i] text[/i] bootloader --location=mbr[/i] zerombr yes[/i] clearpart --drives hda –initlabe /[/i]硬盘名字,根据实际环境更改[/i]/[/i] part / --fstype ext3 --size 3072 --asprimary --ondisk had [/i] part swap --size 256 --asprimary --ondisk hda[/i] part /tmp --fstype ext2 --size 256 --ondisk hda[/i] part /home --fstype ext3 --size 1 --grow --ondisk hda[/i] auth --useshadow --enablemd5[/i] #network --bootproto=dhcp --device=eth0[/i] network --device=eth0 --bootproto=static --[/i]ip=192.168.9.210 --netmask=255.255.255.0 --[/i] gateway=192.168.9.244 --nameserver=202.96.128.68 --[/i]hostname=test.com /[/i]指定新装系统的主机名和[/i]ip/[/i] firewall --disabled[/i] skipx[/i] %packages –resolvedeps /[/i]指定新装系统所需的包[/i]/[/i] @ development-tools[/i] @ admin-tools[/i] @ system-tools[/i]
………………………………………………………………………………
Kickstart 具体内容的研究可以参考redhat官方网站,根据实际环境修改KS的内容以适合自己的要求。 7: NFS服务器的创建: a:先确认NFS文件系统在服务器端已经安装好。
[root@centos ~]# vi /etc/exports
………………………………………………………………
/media/cdrom *(ro,sync)
…………………………………………………………………
这个的配置很简单:/media/cdrom 将服务器上这个目录共享出去,这个目录中就是安装光盘中的内容。
*(ro,sync) *指定所有的用户(ro,sync)具有只读权限,并且数据同步写入硬盘。c:启动nfs服务:
root@centos ~]# service portmap start
[root@centos ~]# service nfs startStarting NFS services: [ OK ]
Starting NFS quotas: [ OK ]
Starting NFS daemon: [ OK ]
Starting NFS mountd: [ OK ] [root@centos ~]# exportfs /确认nfs共享正常/
/media/cdrom <world>
……………………………………………………
8:client机器手动加电后,这是唯一需要手动的地方,呵呵,连接上网线与server在同一个网段,享受自动安装几十几百台linux主机的过程吧。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  linux 职场 休闲