标签:设定 image xinetd 告诉 tab 工作站 range not 安装程序
一、地址服务器dchphost passacaglia { hardware ethernet 0:0:c0:5d:bd:95; fixed-address 207.175.42.254; 定义DHCP客户端指定的IP地址。非subnet内的地址 next-server:指明引导所在的服务主机的ip地址 //通常是一个tftp server{trival}简单文件传输协议 filename "vmunix.passacaglia"; //初始化boot引导文件 server-name "toccata.fugue.com"; } subnet 10.5.5.0 netmask 255.255.255.224 { range 10.5.5.26 10.5.5.30; option domain-name-servers ns1.internal.example.org; 域名服务器 option domain-name "internal.example.org"; 负责的域 option domain-name-servers 192.168.2.1,192.168.2.5; 指定DNS服务器地址 option time-offset -18000; Eastern Standard Time option ntp-servers 192.168.1.1; 时间服务器 option netbios-name-servers 192.168.1.1; option netbios-node-type 2; option routers 10.5.5.1; 默认网关 option subnet-mask 255.255.255.0; 子网掩码 option broadcast-address 10.5.5.31; 广播地址 default-lease-time 600; max-lease-time 7200; }
注:option 放在subnet内和subnet外,是有全局和局部之分
冲突:subnet内的生效,匹配范围小的生效
监听端口
Server:67/udp
Client:68/udp
dhclient -d //工作在前台,可以看到获取ip过程
//建议使用虚拟专用网,但是关闭vmware--首选项中的dhcp服务,可能会影响
二、PXE介绍
1.PXE简介
PXE:preboot excution environment //
client------------>dhcp //获取ip地址
|_____________>tftp //udp协议
|_____________>yum 仓库
大体流程:DHCP(获取IP,寻找TFTP)>TFTP(交换获取开机启动文件 /tftpboot即此文件夹)>HTTP(加载安装文件)>本地安装
Dhcpd: 分发IP地址。
Tftpd: 分发启动文件安装。
Httpd:分发系统文件安装。
加载安装文件不一定用http方式。
参考图一:
client网卡芯片必须支持网络引导--调整为网络引导
clinet开机后,发送rarp广播,获得一个ip地址,同时获得要加载的文件(引导)名称,文件server地址
基于此文件--加载内核文件{tftp获取}
CentOS:
dchp {ip/mask,gw,dns,filename,next-server}
tftp server(bootloader,kernel,initrd)
yum repository(ftp,http,nfs)
2.ks简介
KickStart的工作原理是通过记录典型的安装过程中所需人工干预填写的各种参数,并生成一个名为ks.cfg的文件;
安装过程中(不只局限于生成KickStart安装文件的机器)当出现要求填写参数的情况时,安装程序会首先去查找KickStart生成的文件,当找到合适的参数时,就采用找到的参数,当没有找到合适的参数时,才需要安装者手工干预。等安装完毕,安装程序会根据ks.cfg中设置的重启选项来重启系统,并结束安装。
kickstart //自动化安装,如果只提供网络引导,手动安装,可以不使用kickstart文件
三、配置过程
关闭selinux和iptables //防止干扰
1.准备tftp
yum install tftp tftp-server
chkconfig tftp on
service tftp restart
[root@localhost ~]# rpm -ql tftp-server //centos7
/etc/xinetd.d/tftp
/usr/lib/systemd/system/tftp.service 独立
/usr/lib/systemd/system/tftp.socket 瞬时守护进程
[root@pxe ~]# rpm -ql tftp-server //Centos 6
/etc/xinetd.d/tftp
/usr/sbin/in.tftpd
========================================
service tftp //不用修改配置文件 { socket_type = dgram protocol = udp wait = yes user = root server = /usr/sbin/in.tftpd server_args = -s /var/lib/tftpboot #将此值改为no,表明开启此服务 disable = no per_source = 11 cps = 100 2 flags = IPv4 }
监听端口:udp/69
文件路径:/var/lib/tftpboot
vim /etc/xinetd.d/tftp //可以修改响应参数
CentOS6:
chkconfig tftp on
service xinetd on
CentOS7:
systemctl start tftp.socket
systemctl enable tftp.socket
tftp IP_ADDRESS //即可访问
2.准备dhcp
vim /etc/dhcp/dhcpd.conf
ddns-update-style interim; ignore client-updates; subnet 192.168.10.0 netmask 255.255.255.0 { option routers 192.168.10.1; option subnet-mask 255.255.255.0; range 192.168.10.100 192.168.10.200; next-server 192.168.10.85; filename "pxelinux.0"; allow booting; allow bootp; }
systemctl restart dhcpd.service //重启服务
3.准备yum仓库
mkdir /var/www/html/centos/7/x86_64 -pv
mount -r /dev/cdrom /var/www/html/centos/7/x86_64
systemctl start httpd
测试:http://192.168.4.100/centos/7/ //用浏览器看能否访问
4.kiskstart文件
mkdir /var/www/html/kickstarts/
vim centos7.cfg //安装完os后,root目录会有一个anaconda-ks.cfg
url --url="http://192.168.23.11/centos/7/x86_64/"
图形配置界面: #system-config-kickstart
5.配置pxe
yum -y install syslinux
rpm -ql syslinux
/usr/share/syslinux/pxelinux.0
cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/
cp /var/www/html/centos/7/x86_64/images/pxeboot/{initrd.img,vmlinuz} /var/lib/tftpboot/
cp /usr/share/syslinux/{chain.c32,menu.c32,memdisk,mboot.c32} /var/lib/tftpboot
chain.c32: vesamenu.c32,menu.c32:字符界面的
initrd文件:memdisk
此时tftpboot目录共有://Centos7
chain.c32,menu.c32,memdisk,mboot.c32,pxelinux.0,initrd.img,vmlinuz
Centos6对应的文件:
pxelinux.0,initrd.img,vmlinuz,boot.cfg,vesamenu.c32,spalsh.png
cp /mnt/cdrom/isolinux/isolinux.cfg /var/lib/tftpboot/pxelinux.cfg/default
6.创建选项菜单
cd /var/lib/tftpboot
mkdir pxelinux.cfg
vim pxelinux.cfg/default //提供选择界面
default menu.c32 prompt 5 timeout 30 MENU TITLE CentOS 7 PXE Menu LABEL linux MENU LABEL Install CentOS 7 x86_64 KERNEL vmlinuz APPEND initrd=initrd.img
注:此时开机,但是不能加载repo
测试1:menu tab //编辑启动项
vmlinuz initrd=initrd.img ip=192.168.23.11 netmask=255.255.255.0 inst.repo=http://192.168.23.11/centos/7/x86_64
inst.repo(centos7才有inst.repo,centos6 在ks中指定即可)是在网络上的,开始的ip实在网卡的,现在使用的ip是内核的,内核已经取得控制权了
开机的时候获得的地址是网卡的地址,现在是内核控制,内核没有地址(linux的地址是内核的地址)
建议直接把:ip,inst.repo等参数,直接添加到default参数后面
注:仍然需要手动进行选择安装项 //ks还没有配置
7.自动执行安装
cd /var/lib/tftpboot/pexlinux.cfg;vim default
==========================================
default menu.c32 prompt 5 timeout 30 MENU TITLE CentOS 7 PXE Menu LABEL linux MENU LABEL Install CentOS 7 x86_64 KERNEL vmlinuz APPEDN initrd=initrd.img inst.repo=http://192.168.23.11/centos/7/x86_64 LABEL linux auto MENU LABEL Install CentOS 7 x86_64 KERNEL vmlinuz APPEDN initrd=initrd.img inst.repo=http://192.168.23.11/centos/7/x86_64 ks=http://192.168.23.11/kickstarts/centos7.cfg
//ip不指定,可以自动获取,假如有dhcp。ip=dhcp 即可,默认会自动获取
四、CentOS6配置PXE
yum install dhcp tftp-server tftp syslinux vsftpd -y
vmware虚拟网络编辑器-->vmnet1(仅主机模式):DHCP网段在192.168.3.0
仅主机模式手动设定的地址要在vmnet1分配的地址范围内 //vmware(vmnet1)自带的dhcp服务关闭
vim /etc/ssh/sshd_config
UseDNS=no //取消开启dns
pxe:192.168.3.111 //仅主机模式
1.配置dhcp
service dhcpd configtest //测试语法
[root@localhost ~]# cat /etc/dhcp/dhcpd.conf |egrep -v "^#|^$" option domain-name "mt.com"; option domain-name-servers 192.168.3.111; default-lease-time 600; max-lease-time 7200; log-facility local7; subnet 192.168.3.0 netmask 255.255.255.0 { range 192.168.3.10 192.168.3.20; filename "pxelinux.0"; next-server 192.168.3.111; }
[root@localhost ~]#service dhcpd restart ;ss -tunlp |grep 67
chkconfig dhcpd on
2.tftp
[root@localhost ~]# cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/ [root@localhost ~]# mkdir /media/cdrom ; mount -r /dev/cdrom /media/cdrom [root@localhost ~]# cp /media/cdrom/images/pxeboot/{vmlinuz,initrd.img} /var/lib/tftpboot/ //centos6 不需要复制syslinux中的文件, [root@localhost ~]# cp /media/cdrom/isolinux/{boot.msg,vesamenu.c32,splash.jpg} /var/lib/tftpboot/ [root@localhost tftpboot]# cd /var/lib/tftpboot/ ; mkdir pxelinux.cfg ;cd pxelinux.cfg [root@localhost pxelinux.cfg]# cp /media/cdrom/isolinux/isolinux.cfg /var/lib/tftpboot/pxelinux.cfg/default chmod a+wx default //默认ro
3.pxe
[root@localhost pxelinux.cfg]# cat default
default vesamenu.c32 #prompt 1 timeout 6 display boot.msg menu background splash.jpg menu title Welcome to CentOS 6.8! 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_install //手动添加的 menu label ^Auto Install pxe linux //^在界面上A会自动跳转 menu default kernel vmlinuz append initrd=initrd.img ks=ftp://192.168.3.111/pub/centos6.cfg label linux menu label ^Install or upgrade an existing system menu default kernel vmlinuz append initrd=initrd.img label vesa menu label Install system with ^basic video driver kernel vmlinuz append initrd=initrd.img nomodeset label rescue menu label ^Rescue installed system kernel vmlinuz append initrd=initrd.img rescue label local menu label Boot from ^local drive localboot 0xffff label memtest86 menu label ^Memory test kernel memtest append -
4.yum
[root@localhost pxelinux.cfg]# mkdir /var/ftp/pub/centos
[root@localhost pxelinux.cfg]# mount --bind /media/cdrom/ /var/ftp/pub/centos
service vfstpd start
chkconfig vsftpd on
ftp 192.168.3.111 //anonymous 查看
5.ks准备
[root@localhost ~]# cp centos6.cfg /var/ftp/pub/
[root@localhost pxelinux.cfg]# system-config-kickstart /root/anaconda-ks.cfg 配置ks文件
==========================================================================================
注意ks 位于centos(cdrom内容)同级目录
ks文件内容
====================================================================================
#platform=x86, AMD64, 鎴?Intel EM64T #version=DEVEL # Firewall configuration firewall --enabled --service=ssh # Install OS instead of upgrade install # Use network installation url --url="http://192.168.3.110/centos" #repo --name="CentOS" --baseurl=cdrom:sr0 --cost=100 //注意,这个repo要注释掉,否则会链接repo失败,根据url获取repo即可 # Root password rootpw --iscrypted $1$1fqZyR0n$OKTh75.k4WYgDspZtePTV0 # System authorization information auth --useshadow --passalgo=sha512 # Use graphical install graphical # System keyboard keyboard us # System language lang zh_CN # SELinux configuration selinux --disabled # Do not configure the X Window System skipx # Installation logging level logging --level=info # System timezone timezone Asia/Shanghai # Network information network --bootproto=dhcp --device=eth0 --onboot=on # System bootloader configuration bootloader --append="crashkernel=auto rhgb quiet" --location=mbr --driveorder="sda" # Clear the Master Boot Record zerombr # Partition clearing information clearpart --all --initlabel # Disk partitioning information part /boot --fstype="ext2" --size=512 part / --fstype="ext4" --size=10240 part /home --fstype="ext4" --size=10240 part /opt --fstype="ext4" --size=10240 %packages @base @basic-desktop @chinese-support @core @debugging @desktop-debugging @desktop-platform @directory-client @fonts @input-methods @internet-browser @java-platform @legacy-x @network-file-system-client @print-client @remote-desktop-clients @server-platform @server-policy @workstation-policy @x11 abrt-gui certmonger device-mapper-persistent-data krb5-workstation libXmu mtools oddjob pam_krb5 pax samba-winbind sgpio %end
========================================================================
备注:CentOS6和CentOS7所需的文件
CentOS 6 PXE:
yum -y install syslinux tftp-server
cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/
cp /media/cdrom/images/pxelinux/{vmlinuz,initrd.img} /var/lib/tftp/boot/
cp /media/cdrom/isolinux/{boot.cfg,vesamenu.c32,splash.png} /var/lib/tftp/boot/
mkdir /var/lib/tftpboot/pxelinux.cfg/
cp /media/cdrom/isolinux/isolinux.cfg /var/lib/tftpboot/pxelinux.cfg/default/
CentOS 7 PXE:
yum -y install syslinux tftp-server
cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/
cp /media/cdrom/images/pxelinux/{vmlinuz,initrd.img} /var/lib/tftp/boot/
cp /usr/share/syslinux/{chain.c32,mboot.c32,menu.c32,memdisk} /var/lib/tftpboot/
mkdir /var/lib/tftpboot/pxelinux.cfg/
参考:
http://blog.51cto.com/cwtea/834991
标签:设定 image xinetd 告诉 tab 工作站 range not 安装程序
原文地址:http://blog.51cto.com/hmtk520/2058856