shlei6067
作者shlei6067联盟成员·2013-08-07 11:04
数据库管理员·NJ

超详细PXE批量部署Linux

字数 6860阅读 1870评论 1赞 1
转自于:http://gupt12.blog.51cto.com/7651206/1263177 gupt12的blog

原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 、作者信息和本声明。否则将追究法律责任。http://gupt12.blog.51cto.com/7651206/1263177

原理:

1、客户机可以通过服务端dhcp在获取IP地址,并且dhcpd服务器会告诉客户端tftp服务器IP地址。

2、pxe客户端会从tftp服务器上下载pxelinux.0操作系统和这个操作系统对应的配置文件(default)至本机,在本机上运行pxelinux.0这个操作系统,这个操作系统会加载自己的配置文件:default.

default加载后会弹出一个安装系统选择界面,让用户去选择要安装哪个操作系统

tftp的作用是实现安装文件UDP快速传输

3、启动第三个临时系统(vmlinuz/initrd.img),构造安装之前一个临时系统环境,在这里会重新

获取IP地址,并且会读取ks.cfg这个配置文件

4、nfs/http/ftp用来导出红帽系统安装目录树

5、根据ks.cfg来自动完成操作系统的安装

1)部署nfs/ftp/http用于导出红帽的光盘目录树

# iptables -F

# service iptables save

# setenforce 0


vsftpd配置:

# yum -y install vsftpd httpd

# mkdir /var/ftp/pub/rhel6.3

# mount -o loop /root/Desktop/rhel6.iso /var/ftp/pub/rhel6.3/  --rhel6.iso是指rhel6.3镜像

# echo '/bin/mount -o loop /root/root/Desktop/rhel6.iso /var/ftp/pub/rhel6.3' >>/etc/rc.local

# service vsftpd start

# chkconfig vsftpd on


httpd的配置:

# ln -s /var/ftp/pub/ /var/www/html/pub

# service httpd start

# chkconfig httpd on


nfs的配置:

# vim /etc/exports

/var/ftp/      *(ro)

# service nfs restart

# service portmap restart

# chkconfig nfs on

# chkconfig rpcbind on


验证以上三个服务是否能正常提供服务

2. Configure the files on the tftp server necessary for PXE booting.

1)安装并启动tftp服务器

# yum -y install tftp-server

# chkconfig tftp on

# service xinetd restart

# netstat -unlp |grep :69

udp        0      0 0.0.0.0:69                  0.0.0.0:*                               11007/xinetd        


2)拷贝PXE系统启动时所需要的文件至tftp发布目录(/tftpboot)

# mkdir /var/lib/tftpboot/rhel6.3

# mkdir /var/lib/tftpboot/pxelinux.cfg

# cd /var/ftp/pub/rhel6.3/isolinux/

# cp vmlinuz initrd.img /var/lib/tftpboot/rhel6.3--从光盘中复制临时操作系统至tftp的共享目录中

# cp isolinux.cfg /var/lib/tftpboot/pxelinux.cfg/default--从光盘中复制pxe操作系统的配置文件及相关文件

# cp boot.msg splash.jpg /var/lib/tftpboot/pxelinux.cfg/

# yum -y install syslinux                                   --这里要先安装syslinux

# cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/--把PXE的操作系统存放至tftp共享目录


3)生成ks.cfg

# yum -y install system-config-kickstart

# system-config-kickstart

***********************************************************

下面我只是很简单给大家演示一下,大家根据具体的要求来部署。

***********************************************************

#大家根据自己需要选择要安装的软件包。


#上图是在安装完成之后的执行命令操作,在这里我就添加一个普通用户。然后就保存。(如下图)


# mkdir /var/ftp/pub/scripts

# mv /root/Desktop/ks.cfg /var/ftp/pub/scripts/

# vim /var/lib/tftpboot/pxelinux.cfg/default

default local

prompt 1

timeout 600


display boot.msg


menu background splash.jpg

menu title Welcome to Red Hat Enterprise Linux 6.3!

menu color border 0 #ffffffff #00000000

menu color sel 7 #ffffffff #ff000000

menu color title 0 #ffffffff #00000000

menu color tabmsg 0 #ffffffff #00000000

menu color unsel 0 #ffffffff #00000000

menu color hotsel 0 #ff000000 #ffffffff

menu color hotkey 7 #ffffffff #ff000000

menu color scrollbar 0 #ffffffff #00000000


label auto

 menu label ^Install or upgrade an existing system

 menu default

 kernel rhel6.3/vmlinuz

 append initrd=rhel6.3/initrd.img ks=ftp://192.168.254.178/pub/scripts/ks.cfg

#打开浏览器看看是否可以访问ftp://192.168.254.178/pub/scripts/ks.cfg。还有就是确保红色箭头所指的路径可以访问到rhel6.3的镜像。

3.      Configure DHCP.

# yum -y install dhcp

# cp /usr/share/doc/dhcp-4.1.1/dhcpd.conf.sample /etc/dhcp/dhcpd.conf

# vim /etc/dhcp/dhcpd.conf

option domain-name "example.org";

option domain-name-servers ns1.example.org, ns2.example.org;

default-lease-time 600;

max-lease-time 7200;

log-facility local7;

option domain-name-servers 192.168.254.178;

option domain-name "gupt12.com";



subnet 192.168.254.0 netmask 255.255.255.0 {

       range 192.168.254.10 192.168.254.200;

       option routers 192.168.254.178;

       next-server 192.168.254.178;

       filename "pxelinux.0";

}


# yum -y install bind

# vim /etc/named.conf

options {

       listen-on port 53 { 127.0.0.1;any; };

       listen-on-v6 port 53 { ::1; };

       directory       "/var/named";

       dump-file       "/var/named/data/cache_dump.db";

       statistics-file "/var/named/data/named_stats.txt";

       memstatistics-file "/var/named/data/named_mem_stats.txt";

       allow-query     { localhost; any; };

       recursion yes;

       后面内容省略

vim /etc/named.rfc1912.zones

zone "gupt12.com" IN {

       type master;

       file "gupt12.com.zone";

       allow-update { none; }

};

zone "254.168.192.in-addr.arpa" IN {

       type master;

       file "192.168.254.rev";

       allow-update { none; };

};


# cd /var/named/

# cp -a named.localhost gupt12.com.zone

# vim gupt12.com.zone

$TTL 1D

@       IN SOA  dns.gupt12.com. root.gupt12.com. (

                                       0       ; serial

                                       1D      ; refresh

                                       1H      ; retry

                                       1W      ; expire

                                       3H )    ; minimum

@    IN   NS  dns.gupt12.com.

dns  IN   A   192.168.254.178


# cp -a gupt12.com.zone 192.168.254.rev

# for i in {1..254}; do echo station$i  IN   A   192.168.254.$i >> /var/named/gupt12.com.zone ; done

# for i in {1..254}; do echo $i  IN  PTR  station$i.gupt12.com. >> /var/named/192.168.254.rev ; done

#确保所以服务都已经启动。客户端都改为桥接方式。

#有必要说明一下,在下面还要手动输入auto,因为我是想通过多种方式来安装。大家可以参考 /var/lib/tftpboot/pxelinux.cfg/default里面的内容,可以自己修改的。

#出现上面的画面证明安装已经成功。用户名gupt12 密码redhat 。


如果觉得我的文章对您有用,请点赞。您的支持将鼓励我继续创作!

1

添加新评论1 条评论

中山君中山君研发工程师中行
2021-05-26 23:20
Ctrl+Enter 发表

作者其他文章

相关文章

相关问题

相关资料

X社区推广