自动化安装CentOS

cp -a ~/anaconda-ks.cfg /var/www/html/ks.cfg

配置PXE 自动化安装CentOS 6.7

dhcp服务器是pxe自动化安装的必要条件,因此先搞定dhcp服务器,yum -y
install dhcp,  rpm -ql dhcp查看安装了哪些包,less /etc/dhcp/dhcpd.conf
 打开dhcp的主配置文件,如下图:

www.350.vip 1

没有任何配置,但提示了去哪找主配置文件,cp /usr/share/doc/dhcp-4.1.1/dhcpd.conf.sample
/etc/dhcp/dhcp.conf  覆盖主配置文件,vim /etc/dhcp/dhcpd.conf
再次打开,default-lease-time 600;
(默认租约时长)这个参数为600秒感觉短了一点,改为3600。为了避免其他参数的干扰,把鼠标移动到29行,然后执行:.,[email protected]^[^#]@#&@命令(把当前行到最后一行以非#开头的非空白行在行首加上#),接下来在subnet中定义要分配的网段,定义如下图所示:

www.350.vip 2

保存退出! service dhcpd start 启动服务  ss -unl
 查看67号服务器端口是否监听。

把网卡配置为172.16.0.199/16 的地址,作为客户端的默认网关。

启动另外一台客户端,使用dhclient -d命令 查看如何获取地址如图:

www.350.vip 3

这样一台dhcp服务器就启动起来了,给客户端分配了172.16.100.29地址。

但有时我们需要固定分配一地址给某台客户端,vim /etc/dhcp/dhcpd.conf
 如图:

www.350.vip 4

添加一段配置,只需把该客户端的物理网卡地址写上就可以。

看下面这图:

www.350.vip 5

多添加了filename,和next-server两个参数,filename表示告诉客户端获取了地址之后,去加载pxelinux.0文件,去哪加载,next-server中指定的地址,此处为172.16.100.13。pxelinux.0是基于网卡引导时要加载的initial
boot file 的文件名。而filename处指定的文件必须放在tftp-server上。

第二个必要条件,另外启动一台虚拟机,搞定tftp-server,yum -y install
tftp-server,  yum -y install syslinux。

syslinux 是一堆引导加载器,pxe
网络引导需要用到它。在/usr/share/syslinux/目录下就有pxelinux.0文件。

tftp-server是由xinetd这个超级守护进程管理的。因此vim /etc/xinetd.d/tftp
 把disable=yes 改为 no, service xinetd restart。 ss -unl
 查看是否69号端口已监听。

tftp服务器默认文件存储路径为/var/lib/tftpboot目录下。 cp
/usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/

放入光盘挂载光盘,mkdir /media/cdrom  mount -r /dev/cdrom /media/cdrom
还得创建一个yum仓库放置光盘里面的文件,我把它放在httpd上。安装httpd服务器,yum
-y installl httpd,   mkdir /var/www/html/CentOS6 创建目录硬链接  mount
–bind /media/cdrom /var/www/html/centos6    ls /var/www/html/centos6
如图:

www.350.vip 6

制作一个kickstart文件来定制如何安装系统,yum -y install
system-config-kickstart,  system-config-kickstart 如图: 

www.350.vip 7

 

www.350.vip 8

www.350.vip 9

 

www.350.vip 10

www.350.vip 11

www.350.vip 12

为了方便下面几项无需去配置。 可以使用ksvalidator命令检查是否有语法错误
ksvalidator centos6.cfg。 cp /root/centos6.cfg /var/www/html/ 

service httpd start 

接下来复制几个必要的文件:cp
/media/cdrom/images/pxeboot/{vmlinuz,initrd.img}  /var/lib/tftpboot/

cp /media/cdrom/isolinux/{boot.msg,splash.jpg,vesamenu.c32}
/var/lib/tftpboot/

mkdir /var/lib/tftpboot/pxelinux.cfg  cp
/media/cdrom/isolinux/isolinux.cfg
/var/lib/tftpboot/pxelinux.cfg/default

ls /var/lib/tftpboot 如图:

www.350.vip 13

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

www.350.vip , www.350.vip 14

加上  ks=

启动一台虚拟机从网卡引导:

www.350.vip 15

把centos6.cfg文件中的#Use graphic install 下的graphic 两行改为 #Use
text install
text,引导就不需要你点next选项:www.350.vip 16 

全搞定!

—————————–分割线—————————–

使用PXE+DHCP+Apache+Kickstart无人值守安装CentOS5.8 x86_64

Linux PXE无人值守安装出现 PXE-E32:TFTP OPen timeout的解决办法

使用PXE结合kickstart 自动安装Linux系统

RHCE认证之无人值守安装Linux系统(FTP+TFTP+DHCP+Kickstart+PXE)

PXE网络装机(有人值守与无人值守安装)

—————————–分割线—————————–

本文永久更新链接地址:

自动化安装CentOS 6.7
dhcp服务器是pxe自动化安装的必要条件,因此先搞定dhcp服务器,yum -y
install dhcp, rpm -ql dhcp查看安装了哪些包,l…

 

 cd /var/www/html/centos7

[root@localhost pxelinux.cfg]# cat default 
default menu.c32   #这个必须有也可以使用vesamenu.c32
prompt 1
timeout 10       #超时时间

menu title ########## PXE Boot Menu ##########

label 1
menu label ^1) Install CentOS 7 x64 with Local Repo    #菜单文字
menu default                         #表示开机光标一开始停留在label上 
kernel vmlinuz                          #内核文件路径,相对路径是从/tftpboot开始的
append initrd=initrd.img inst.repo=http://192.168.216.147/centos7   #内核启动选项,其中initrd的路径,还有其他的stage2文件,
ks=http://192.168.216.147/ks.cfg              #指定kickstart路径  

 3)client执行接收到的pxelinux.0

 

[root@localhost tftpboot]# ps -ef |grep xinetd
root      49896      1  0 Aug29 ?        00:00:00 /usr/sbin/xinetd -stayalive -pidfile /var/run/xinetd.pid
root      61791  49577  0 16:15 pts/0    00:00:00 grep --color=auto xinetd

 

提供bootloader及配置文件

 注意:全部用的udp封装

systemctl enable dhcpd.service

mount –bind /media/cdrom/ /var/www/html/centos7

 

systemctl restart httpd.service

 

4、kickstart实现无人值守批量安装(不完全是无人)

 7)client加载linux内核(启动参数已经在4中的配置文件中设置好了)。

 

cp isolinux/{vesamenu.c32,boot.msg,splash.png} /var/lib/tftpboot/

3.4挂载光盘,把内核文件cp到tftpmulu

[root@localhost html]# cat ks.cfg
#version=DEVEL
# System authorization information
auth --useshadow --enablemd5
# Install OS instead of upgrade
install
# Use network installation
url --url="http://192.168.216.147/centos7"
# Use graphical install
graphical
# Firewall configuration
firewall --enabled
firstboot --disable
ignoredisk --only-use=sda
# Keyboard layouts
# old format: keyboard us
# new format:
keyboard --vckeymap=us --xlayouts='us'
# System language
lang en_US.UTF-8

# Network information
network  --bootproto=dhcp --device=link
network  --hostname=localhost.localdomain
# Reboot after installation
reboot
# Root password
rootpw --iscrypted $1$uH$aaWTA7AmvIxGMidj0sp.u1
# System services
services --disabled="chronyd"
# System timezone
timezone Asia/Shanghai --isUtc --nontp
# X Window System configuration information
xconfig  --startxonboot
# System bootloader configuration
bootloader --append=" crashkernel=auto" --location=mbr --boot-drive=sda
# Clear the Master Boot Record
zerombr
# Partition clearing information
clearpart --none --initlabel
# Disk partitioning information
part /boot --fstype="xfs" --size=300
part swap --fstype="swap" --size=3841
part / --fstype="xfs" --size=57298

%post
/usr/sbin/adduser zhangxingeng
/usr/sbin/usermod -p '$1$uH$aaWTA7AmvIxGMidj0sp.u1' zhangxingeng
/usr/bin/chfn -f "centos-7-64" zhangxingeng
mv /etc/rc.d/rc.local /etc/rc.d/rc.local.00
echo '#!/bin/bash' > /etc/rc.d/rc.local
ln -s ../rc.local /etc/rc.d/rc5.d/S99rclocal
chmod 755 /etc/rc.d/rc.local
echo 'mkdir -p /var/log/vmware' >> /etc/rc.d/rc.local
echo 'exec 1> /var/log/vmware/rc.local.log' >> /etc/rc.d/rc.local
echo 'exec 2>&1' >> /etc/rc.d/rc.local
echo 'set -x' >> /etc/rc.d/rc.local
echo 'echo Installing Open VM Tools' >> /etc/rc.d/rc.local
echo 'set -x' >> /etc/rc.d/rc.local
echo '/bin/eject sr0 || /bin/true' >> /etc/rc.d/rc.local
echo '/bin/eject sr1 || /bin/true' >> /etc/rc.d/rc.local
echo '/bin/vmware-rpctool' 'guest.upgrader_send_cmd_line_args --default' >> /etc/rc.d/rc.local
echo '/bin/vmware-rpctool' 'upgrader.setGuestFileRoot /tmp' >> /etc/rc.d/rc.local
echo '/bin/vmware-rpctool' 'toolinstall.installerActive 1' >> /etc/rc.d/rc.local
echo '/bin/vmware-rpctool' 'toolinstall.installerActive 100' >> /etc/rc.d/rc.local
echo 'rm -f /etc/rc.d/rc.local' >> /etc/rc.d/rc.local
echo 'rm -f /etc/rc.d/rc5.d/S99rclocal' >> /etc/rc.d/rc.local
echo 'mv /etc/rc.d/rc.local.00 /etc/rc.d/rc.local' >> /etc/rc.d/rc.local
/bin/echo done
%end

%packages
@base
@core
@desktop-debugging
@dial-up
@directory-client
@fonts
@gnome-desktop
@guest-desktop-agents
@input-methods
@internet-browser
@java-platform
@multimedia
@network-file-system-client
@print-client
@x11
binutils
ftp
gcc
kernel-devel
kexec-tools
make
open-vm-tools
patch
python

%end

%addon com_redhat_kdump --enable --reserve-mb='auto'

%end
[root@localhost html]# 

3.1部署DHCP

 这样就完成了配置,接下来开启个服务,并开机自启

  启动tftp

 

TFTP

3.3提供bootloader及配置文件

  yum -y install syslinux

   需要使用CentOS提供的syslinux包,从中copy几个文件

  cp -a /usr/share/syslinux/{menu.c32,vesamenu.c32,pxelinux.0} /var/lib/tftpboot

  

[root@localhost tftpboot]# ll 
total 47964
-rw-r--r-- 1 root root       84 Sep 21  2017 boot.msg
-rw-r--r-- 1 root root    20704 Sep 20  2017 chain.c32
-rw-r--r-- 1 root root      501 Sep 20  2017 fstab
-rw-r--r-- 1 root root 43372552 Sep 20  2017 initrd.img
-rw-r--r-- 1 root root    33628 Sep 20  2017 mboot.c32
-rw-r--r-- 1 root root    26140 Sep 20  2017 memdisk
-rw-r--r-- 1 root root    55012 Sep 20  2017 menu.c32      #图形化菜单
-rw-r--r-- 1 root root    26764 Sep 20  2017 pxelinux.0     #bootloader
drwxr-xr-x 2 root root       21 Aug 29 18:34 pxelinux.cfg    #开机菜单设定
-rw-r--r-- 1 root root      186 Sep 21  2017 splash.png
-rw-r--r-- 1 root root   152976 Sep 21  2017 vesamenu.c32    #也是图形菜单
-rwxr-xr-x 1 root root  5392080 Sep 20  2017 vmlinuz

 1)client向pxe
server上的dhcp发送IP地址请求消息,dhcp检测client是否合法,同事将pxe环境下的boot
loader文件pxelinux.0的位置信息发给client

mount -r /dev/cdrom /media/cdrom

  ss -unlp

  systemctl start tftp

cp images/pxeboot/{vmlinuz,initrd.img} /var/lib/tftpboot

设置菜单及提供系统安装文件

systemctl restart tftp.service

  • vmlinuz:核心文件(kernel file);
  • initrd.img:开启过程中核心组件的参数;
  • isolinux.cfg –> demo:开机pxe选择参考;

3.4部署http服务

    启动服务

顺序

发表评论

电子邮件地址不会被公开。 必填项已用*标注