博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
PXE+Kickstart无人值守安装系统re
阅读量:6534 次
发布时间:2019-06-24

本文共 7341 字,大约阅读时间需要 24 分钟。

PXE(Preboot Excute Environment)预启动执行环境,可以让计算机通过网络启动系统,主要用于无人值守安装系统中引导客户端主机安装Linux操作系统。

由于之前有过使用cobbler+kickstart PXE安装系统的博客,这里RHEL7下使用第二种方法。

部署PXE相关环境

第一步:DHCP服务

部署DHCP服务之前,由于使用虚拟机测试,为了避免虚拟机软件的DHCP功能对本实验造成影响,在网络配置中将应用DHCP服务选项取消掉

 安装DHCP服务
[root@localhost ~]# yum install -y dhcp
编辑DHCP服务配置文件
[root@localhost ~]# vim /etc/dhcp/dhcpd.conf
配置文件
allow booting;allow bootp;ddns-update-style interim;ignore client-updates;subnet 192.168.10.0 netmask 255.255.255.0 {        option subnet-mask 255.255.255.0;        option domain-name-servers 192.168.10.10;        range dynamic-bootp 192.168.10.50 192.168.10.100;        default-lease-time 21600;        max-lease-time 43200;        next-server 192.168.10.10;        filename    "pxelinux.0";}

配置完成重启DHCP服务,由于DHCP服务未成功启动也不会报错,所以查看一下DHCPD服务状态

[root@localhost ~]# systemctl restart dhcpd[root@localhost ~]# systemctl status dhcpddhcpd.service - DHCPv4 Server Daemon   Loaded: loaded (/usr/lib/systemd/system/dhcpd.service; disabled)   Active: failed (Result: exit-code) since Tue 2019-03-19 10:16:36 EDT; 6s ago     Docs: man:dhcpd(8)           man:dhcpd.conf(5)

果然启动失败了,配置文件一定有哪里出现错误。

我们执行journal -xe命令查看一下

[root@localhost ~]# journalctl -xe-- -- The start-up result is done.Mar 19 10:16:36 localhost.localdomain dhcpd[42926]: Internet Systems Consortium Mar 19 10:16:36 localhost.localdomain dhcpd[42926]: Copyright 2004-2013 InternetMar 19 10:16:36 localhost.localdomain dhcpd[42926]: All rights reserved.Mar 19 10:16:36 localhost.localdomain dhcpd[42926]: For info, please visit httpsMar 19 10:16:36 localhost.localdomain dhcpd[42926]: Not searching LDAP since ldaMar 19 10:16:36 localhost.localdomain dhcpd[42926]: Wrote 0 leases to leases filMar 19 10:16:36 localhost.localdomain dhcpd[42926]: Mar 19 10:16:36 localhost.loMar 19 10:16:36 localhost.localdomain dhcpd[42926]: ** Ignoring requests on eno1Mar 19 10:16:36 localhost.localdomain dhcpd[42926]: you want, please write a subMar 19 10:16:36 localhost.localdomain dhcpd[42926]: in your dhcpd.conf file for Mar 19 10:16:36 localhost.localdomain dhcpd[42926]: to which interface eno167777Mar 19 10:16:36 localhost.localdomain dhcpd[42926]: Mar 19 10:16:36 localhost.loMar 19 10:16:36 localhost.localdomain dhcpd[42926]: Mar 19 10:16:36 localhost.loMar 19 10:16:36 localhost.localdomain dhcpd[42926]: on ftp.isc.org.  Features haMar 19 10:16:36 localhost.localdomain dhcpd[42926]: have been made to the base sMar 19 10:16:36 localhost.localdomain dhcpd[42926]: it work better with this disMar 19 10:16:36 localhost.localdomain dhcpd[42926]: Mar 19 10:16:36 localhost.loMar 19 10:16:36 localhost.localdomain dhcpd[42926]: http://bugzilla.redhat.com

似乎是eno167777网卡问题,原来我们还原虚拟机后没有将IP修改为DHCP配置文件中对应的192.168.10.10。修改一下。

修改完成后,再次重启DHCPD服务

[root@localhost ~]# systemctl restart dhcpd[root@localhost ~]# systemctl status dhcpddhcpd.service - DHCPv4 Server Daemon   Loaded: loaded (/usr/lib/systemd/system/dhcpd.service; disabled)   Active: active (running) since Tue 2019-03-19 10:23:13 EDT; 6s ago     Docs: man:dhcpd(8)           man:dhcpd.conf(5) Main PID: 43382 (dhcpd)

第二步TFTP服务

Trivial File Transfer Protocol 简单文本传输协议。该轻量级的服务由xinetd网络守护进程管理,开启TFTP服务时只需在xinetd服务主配置文件中/etc/xinetd.d/tftp文件中将disable修改为no 即可。
[root@localhost ~]# yum install -y tftp-server[root@localhost ~]# vim /etc/xinetd.d/tftp
service tftp{        socket_type             = dgram        protocol                = udp        wait                    = yes        user                    = root        server                  = /usr/sbin/in.tftpd        server_args             = -s /var/lib/tftpboot        disable                 = no        per_source              = 11        cps                     = 100 2        flags                   = IPv4}
TFTP默认占用69/udp端口,在生产环境中,需要在firewalld防火墙管理工具中永久放行69/udp端口。
[root@localhost ~]# firewall-cmd --permanent --add-port=69/udpsuccess[root@localhost ~]# firewall-cmd --reload success

第三部:SYSlinux服务是一个提供引导加载的服务程序

安装syslinux
[root@localhost ~]# yum install -y syslinux
我们需要将syslinux服务提供的引导文件(即上面提到的pxelinu.0)复制到TFTP服务默认目录中,另外ISO镜像里也有一些引导文件需要复制到TFTP默认目录中。
[root@localhost ~]# cd /var/lib/tftpboot/[root@localhost tftpboot]# cp /usr/share/syslinux/pxelinux.0  .[root@localhost tftpboot]# cp /mnt/images/pxeboot/{vmlinuz,initrd.img} .[root@localhost tftpboot]# cp /mnt/isolinux/{vesamenu.c32,boot.msg} .
另外我们还要在TFTP默认目录中,创建一个名为pxelinux.cfg的文件夹,将镜像文件里的开机选项菜单复制到里面并重命名为default。
[root@localhost tftpboot]# mkdir pxelinux.cfg[root@localhost tftpboot]# cp /mnt/isolinux/isolinux.cfg pxelinux.cfg/default
由于默认的开机菜单中有两个选项,要么是安装系统,要么是对安装介质进行检验。既然我们已经确定采用无人值守的方式安装系统,还需要为每台主机手动选择相应的选项,未免与我们的主旨(无人值守安装)相悖。现在我们编辑这个default文件,把第1行的default参数修改为linux,这样系统在开机时就会默认执行那个名称为linux的选项了。对应的linux选项大约在64行,我们将默认的光盘镜像安装方式修改成FTP文件传输方式,并指定好光盘镜像的获取网址以及Kickstart应答文件的获取路径。
[root@localhost tftpboot]# vim !$  1 default linux  ..  64   append initrd=initrd.img inst.stage2=ftp://192.168.10.10 ks=ftp://192.168.10.10/pub/ks.cfg quiet

第四步:配置vsftpd服务程序

当前pxe服务是通过镜像文件安装的,是必要的用到FTP文件传输服务。也可以使用HTTP的web网站访问的方式,只要能确保,光盘中的镜像能顺利地传输给客户端主机即可。
[root@localhost tftpboot]# yum install -y vsftpd[root@localhost tftpboot]# systemctl start vsftpd[root@localhost tftpboot]# systemctl enable vsftpdln -s '/usr/lib/systemd/system/vsftpd.service' '/etc/systemd/system/multi-user.target.wants/vsftpd.service'
接下来将镜像中的所有文件复制到vsftpd服务的的工作目录中(过程大概几分钟),同时在firewalld防火墙管理工具中放行ftp服务。在selinux域策略中放行FTP传输。
[root@localhost linuxprobe]# firewall-cmd --permanent --add-service=ftpsuccess[root@localhost linuxprobe]# firewall-cmd --reloadsuccess[root@localhost linuxprobe]# getsebool -a | grep ftpdftpd_anon_write --> offftpd_connect_all_unreserved --> offftpd_connect_db --> offftpd_full_access --> offftpd_use_cifs --> offftpd_use_fusefs --> offftpd_use_nfs --> offftpd_use_passive_mode --> offsftpd_anon_write --> offsftpd_enable_homedirs --> offsftpd_full_access --> offsftpd_write_ssh_home --> off[root@localhost linuxprobe]# setsebool -P ftpd_connect_all_unreserved=on

创建KickStart应答文件

在rhel7系统中root用户家目录有个anaconda-ks.cfg文件,是为当前系统的ks应答文件。ks文件具体参数在上次实验中有详细的讲解。这里只改三个地方测试效果即可:首先把第6行的光盘镜像安装方式修改成FTP协议,仔细填写好FTP服务器的IP地址,并用本地浏览器尝试打开下检查有没有报错。然后把第21行的时区修改成上海(Asia/Shanghai),最后再把29行的磁盘选项设置为清空所有磁盘内容并初始化磁盘。
首先将该文件复制到ftp家目录中。chmod +r 命令让所有人都可对其读取。
t@localhost ~]# cp  /root/anaconda-ks.cfg /var/ftp/pub/ks.cfg[root@localhost ~]# chmod -r !$chmod -r /var/ftp/pub/ks.cfg
修改参数
#version=RHEL7# System authorization informationauth --enableshadow --passalgo=sha512# Use CDROM installation mediaurl --url=ftp://192.168.10.10                    设置FTP安装模式# Run the Setup Agent on first bootfirstboot --enableignoredisk --only-use=sda# Keyboard layoutskeyboard --vckeymap=us --xlayouts='us'# System languagelang en_US.UTF-8# Network informationnetwork  --bootproto=dhcp --device=eno16777736 --onboot=off --ipv6=autonetwork  --hostname=localhost.localdomain# Root passwordrootpw --iscrypted $6$0XQWDt7L9e0SdNCH$LyxVJ8ZoncLu2tTPn/4nUjOT.DFmLgejZOWWg/U9aF7qPJGnLs6JuDZ1/RHrr17HKs1zA10ifsUk.axakInCG.# System timezonetimezone Asia/Shanghai --isUtc                  设置时区为上海# X Window System configuration informationxconfig  --startxonboot# System bootloader configurationbootloader --location=mbr --boot-drive=sdaautopart --type=lvm# Partition clearing informationclearpart --all --initlabel                    清空并初始化磁盘%packages@base@core@desktop-debugging@dial-up

自动部署客户端

 

 

 

 

 

转载于:https://www.cnblogs.com/volac/p/10562245.html

你可能感兴趣的文章
用hadoop中的libhdfs和fuse-dfs构建快速云存储
查看>>
Apple Watch的非“智能手表”卖点
查看>>
fedora17升级到fedora18
查看>>
单例模式(Singleton)
查看>>
函数指针和指针函数
查看>>
Python的函数参数传递:传值?引用?
查看>>
[转]分享2011年8个最新的jQuery Mobile在线教程
查看>>
android call require api level
查看>>
Mac下android环境搭建
查看>>
创建Visual Studio项目模版向导的几篇参考文章
查看>>
深入浅出SQL Server Replication第一篇:走近Replication(上)
查看>>
[TopCoder][SRM] SRM 562 DIV 2
查看>>
SQLSERVER是怎麽通过索引和统计信息来找到目标数据的(第一篇)
查看>>
LocalAlloc,VirtualAlloc,malloc,new的异同
查看>>
回调函数
查看>>
win7 x64 jdk1.7.0_51
查看>>
这些开源项目,你都知道吗?(持续更新中...)[原创]
查看>>
linux中利用iptables+geoip过滤指定IP
查看>>
在myeclipse中写sql语句的细节问题
查看>>
使用ShellExecute打开目标文件所在文件夹并选中目标文件
查看>>