PXE+Kickstart安装linux系统

OpenEuler 22.03 LTS系统使用PXE+Kickstart安装系统(MBR)

本文章为OpenEuler 22.03 LTS-SP1(以下简称:OpenEuler)操作系统的自动安装配置,适用于所有OpenEuler服务器系统管理员以及感兴趣人员

安装过程

网络自动化安装需要至少两个系统:
服务器端:运行 DHCP服务器、TFTP 服务器从服务器提供引导文件,同时 HTTP、FTP 或者 NFS 服务器托管安装映射。网卡1设置为NAT模式,网卡2配置为仅主机模式(取消dhcp分配地址,防止IP混乱)
客户端:要安装系统的机器。安装开始时,客户端会查询 DHCP 服务器,从 TFTP 服务器中获取引导文件,并从 HTTP、FTP 或者 NFS 服务器下载安装映像。

关闭并禁用防火墙

[root@demo ~]# systemctl stop firewalld.service
[root@demo ~]# systemctl disable firewalld.service
[root@demo ~]# systemctl status firewalld.service  #查看是否禁用成功

关闭SELinux

[root@demo ~]# getenforce  #查看SELinux状态
[root@demo ~]# setenforce 0  #设置SELinux为permissive模式,1 是Enfocing模式(临时生效)
[root@demo ~]# sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config  #彻底禁用SELinux

搭建本地yum源仓库

[root@demo ~]# mount /dev/cdrom /media #cdrom光盘挂载

备份原有文件

[root@demo ~]# cp -r /etc/yum.repos.d /etc/yum.repos.d_bak
[root@demo ~]# rm -f /etc/yum.repos.d/*

配置yum文件

[root@demo ~]# vim /etc/yum.repos.d/local.repo
[development]
name=local
baseurl=file:///media/
gpgcheck=0
[root@demo ~]# yum makecache #更新软件仓库缓存

安装配置HTTP服务

安装服务

[root@demo ~]# yum -y install httpd

将挂载映像中的文件复制到http服务器目录

系统通过网络安装时需要指定安装源,这里使用HTTP服务提供安装源,也可以通过FTP服务提供

[root@demo ~]# cp -r /media /var/www/html/openEuler

启动http服务,完成网络安装源的搭建

[root@demo ~]# systemctl enable httpd

设置开机自启动

[root@demo ~]# systemctl enable httpd

查看服务状态

[root@demo ~]# systemctl status httpd

安装配置TFTP服务,用于安装时获取引导文件

安装服务

[root@demo ~]# yum -y install tftp-server 
#修改配置,在 /etc/xinet.d/tftp 配置文件中,将 disabled参数从 yes改为 no
[root@demo ~]# vim /etc/xinetd.d/tftp

{
        socket_type             = dgram
        protocol                = udp
        wait                    = yes
        user                    = root
        server                  = /usr/sbin/in.tftpd
        server_args             = -s /var/lib/tftpboot
        disable                 = no   #将 disabled 参数从 yes 改为 no
        per_source              = 11
        cps                     = 100 2
        flags                   = IPv4
}

启动服务

[root@demo ~]# systemctl start tftp
[root@demo ~]# systemctl start xinetd

设置开机自启动

[root@demo ~]# systemctl enable tftp
[root@demo ~]# systemctl enable xinetd

查看服务状态

[root@demo ~]# systemctl status tftp
[root@demo ~]# systemctl status xinetd

安装配置DHCP服务

安装服务

[root@demo ~]# yum -y install  dhcp

编辑dhcp配置文件

[root@demo ~]# vim /etc/dhcp/dhcpd.conf #编辑dhcp配置文件并插入以下内容
#subnet字段为局部设置,优先级高于全局。option在全局和局部都可设置
option space pxelinux;
option pxelinux.magic code 208 = string;
option pxelinux.configfile code 209 = text;
option pxelinux.pathprefix code 210 = text;
option pxelinux.reboottime code 211 = unsigned integer 32;
option architecture-type code 93 = unsigned integer 16;


subnet 10.10.10.0 netmask 255.255.255.0 {
  option routers 10.10.10.1;              # 网关
  range 10.10.10.100 10.10.10.199;      # 可分配的起始IP~结束IP

  class "pxeclients" {
      match if substring (option vendor-class-identifier, 0, 9) = "PXEClient";
      next-server 10.10.10.54;    # 提供引导文件的服务器IP地址,即tftp服务器地址

      if option architecture-type = 00:07 {
        filename "uefi/shimx64.efi";         # 采用shim打包的EFI引导映象
      } else {
        filename "pxelinux/pxelinux.0";   # SYSLINUX打包的BIOS引导映像
      }
  }
}
host openEulertest4 {     #绑定固定IP地址(根据MAC地址分配 固定IP地址)
hardware ethernet 00:50:56:34:4F:6C;
fixed-address 10.10.10.92;
}

启动服务

[root@demo ~]# systemctl start dhcpd
设置开机自启动
[root@demo ~]# systemctl enable dhcpd

查看服务状态

[root@demo ~]# systemctl status dhcpd

准备PXE引导程序

提取ISO 映像文件中 SYSLINUX 软件包中的 pxelinux.0文件

[root@demo ~]# cp -pr /media/Packages/syslinux-6.04-13.oe2203sp1.x86_64.rpm /tmp/
[root@demo ~]# cd /tmp/
#提取syslinux rpm包中归档文件
[root@demo ~]# rpm2cpio /tmp/syslinux-6.04-13.oe2203sp1.x86_64.rpm | cpio -dimv

在 tftpboot中创建 pxelinux目录,并将 pxelinux.0、vesamenu.c32复制到该目录中

[root@demo ~]# mkdir /var/lib/tftpboot/pxelinux
[root@demo ~]# cp /tmp/usr/share/syslinux/{pxelinux.0,vesamenu.c32} /var/lib/tftpboot/pxelinux/

在/var/lib/tftpboot/pxelinux/目录中创建目录 pxelinux.cfg/,并在 pxelinux.cfg/目录中添加名为default 的配置文件

[root@demo ~]# mkdir /var/lib/tftpboot/pxelinux/pxelinux.cfg
[root@demo ~]# touch /var/lib/tftpboot/pxelinux/pxelinux.cfg/default

配置启动菜单default文件

[root@demo ~]# vim /var/lib/tftpboot/pxelinux/pxelinux.cfg/default #编辑default文件插入以下行内容
#可根据/media/isolinux/isolinux.cfg修改
#设置背景图片,如 menu background splash.png,要将splash.png文件放在pxelinux目录下
##设置菜单风格,如 default vesamenu.c32,要将vesamenu.c32文件放在pxelinux目录下
##这里直接指定从哪个label启动,省去了进入菜单的时间
default vesamenu.c32
prompt 1
timeout 600
display boot.msg
label linux
menu label ^Install system
menu default
kernel vmlinuz
append initrd=initrd.img ip=dhcp  inst.repo=http://10.10.10.54/openEuler inst.ks=ftp://10.10.10.54/ks.cfg

将引导映象复制到 /var/lib/tftpboot/pxelinux/目录

[root@demo ~]# cp /media/images/pxeboot/{vmlinuz,initrd.img} /var/lib/tftpboot/pxelinux/

重新载入httpd、tftp和dhcp服务

[root@demo ~]# systemctl daemon-reload  #重新加载配置文件
[root@demo ~]# systemctl restart dhcpd tftp httpd  #重启所用服务
[root@demo ~]# systemctl enable tftp httpd dhcpd   #设置开机自启动,已设置过无需设置

准备自动应答文件ks.cfg

在系统中安装system-config-kickstart工具后,可通过图形化向导工具来配置安装应答文件。如果对自动应答文件的配置比较熟悉,也可直接编辑openEuler 安装后自动创建的应答文件
(/root/anaconda-ks.cfg),根据需要适当修改后使用。此处示例以图形化向导工具来配置安装应答文件

[root@demo ~]# cp anaconda-ks.cfg /var/www/html/ks.cf#复制应答文件,保存到指定http目录中:/var/www/html

[root@demo ~]# vim /var/www/html/ks.cfg
#Generated by Anaconda 36.16.5
#Generated by pykickstart v3.34
#version=DEVEL
#Install OS instead of upgrade
#表示是安装,而不是升级
install
#Use graphical install
text

#Use network installation
#使用网络安装
url --url="http://10.10.10.54/openEuler"

#Installation Number configuration
#如果是RedHat的系统,会要求输入key,这里配置为跳过,如果不配置安装时会停在那里要求用户输入key
#key –skip

#System language
#语言环境
lang en_US.UTF-8

#System keyboard
#键盘类型
keyboard --vckeymap=us --xlayouts='us'

#Network information
#网络配置
network  --bootproto=dhcp --device=ens34 --onboot=on --ipv6=auto --no-activate
network  --hostname=openEulertest4
#Root password
#root密码
rootpw --iscrypted $y$j9T$x.qa4RYhuTexgQWqNT49kgeS$sIp3SRYIYbtUcKzEnG8NfVShcLcBdu5iw/KNWyfYTV

#Firewall configuration
#禁用防火墙
firewall --disabled

#SELinux configuration
#禁用selinux
selinux --disabled

#Run the Setup Agent on first boot
#禁用第一次启动时设置系统的向导
firstboot --disable

#System authorization information
#用户认证配置,useshadow表示使用本地认证,--passalgo表示密码加密算法
authconfig --enableshadow --passalgo=sha512

#System timezone
#设置时区为上海
timezone --isUtc Asia/Shanghai

#Disk partitioning information
#自定义分区

#创建一个1024大小的分区挂载/boot类型为xfs
part /boot --fstype="xfs" --ondisk=sda --size=1024

#创建一个2048M大小的SWAP分区
part swap --size=2048 --ondisk=sda

#创建/目录
part / --fstype=xfs --grow --size=1 --ondisk=sda

#Reboot after installation
#设置完成之后重启
reboot --eject

#This packages is for openEuler
#为openEuler定制的软件包
%packages
@^minimal-environment #最小化安装环境
vim-8.0.1763
sysstat-11.7.3
psmisc-23.1-5.0.1
bash-completion-2.7
ipmitool-1.8.18
wget-1.19.5-10.0.2
%end
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值