设为首页 收藏本站
查看: 1772|回复: 0

[经验分享] Linux 搭建PXE Server及Kickstart无人值守安装

[复制链接]

尚未签到

发表于 2018-10-24 07:42:59 | 显示全部楼层 |阅读模式
  如何为一批服务器安装操作系统?
  因为测试需要,经常要安装新的操作系统?
  服务器本机没有光驱?
  如何实现无人值守,开机即可自动装机?
  下面我们就探讨一下如何实现以上这些需求
  PxeServer采用Red Hat Enterprise 5.9 来做实验:
  实验拓扑:
  -----PXE Server(vmnet1)-------------Client(vmnet1)------
  实验:搭建PXE Server
  服务器IP为192.168.8.253,可以给192.168.8.0/24安装RHEL5.9
  分别给每台客户端分配主机名,格式如下
  stationx.pengpeng.com192.168.8.x
  安装所需要的软件包存放在/data/iso/rhel5.9
  一、搭建Pxe Server
  1、首先配置服务端IP地址
  [root@localhost ~]# vim /etc/sysconfig/network-scripts/ifcfg-eth0
  重启network
  [root@localhost ~]#  service network restart
  查看IP地址
  [root@localhost ~]# ifconfig eth0  | grep "inet addr:"
  inet addr:192.168.8.253  Bcast:192.168.8.255  Mask:255.255.255.0
  2、接下来配置DHCP(给需要安装系统的主机分配IP)
  先来看一下系统有没有安装dhcp,
  [root@localhost ~]# rpm -q dhcp
  package dhcp is not installed
  发现没有安装,为避免软件包依赖关系,直接来配YUM安装吧
  [root@localhost ~]# cd /etc/yum.repos.d/          (进入YUM的配置文件目录)
  [root@localhost yum.repos.d]# ls
  rhel-debuginfo.repo
  [root@localhost yum.repos.d]# cp rhel-debuginfo.repo rhel5.9.repo  (拷贝下来作为模板)
  [root@localhost yum.repos.d]# ls
  rhel5.9.repo  rhel-debuginfo.repo
  [root@localhost yum.repos.d]# vim rhel5.9.repo   (修改一下YUM配置)
  [rhel-server]
  name=Red Hat Enterprise Linux Server
  baseurl=file:///misc/cd/Server            (仓库就选系统盘了)
  enabled=1                                 (启用此YUM)
  gpgcheck=1
  gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release
  查看一下YUM配置是否正确
  [root@localhost yum.repos.d]# yum clean all   (先清理一下缓存)
  [root@localhost yum.repos.d]# yum list | wc -l  (查看一下软件包数量)
  3347
  配置好YUM 下面就好安装dhcp了:
  [root@localhost ~]# yum -y install dhcp
  安装完毕,修改一下配置文件
  [root@localhost ~]# vim /etc/dhcpd.conf
  保留有效配置的最终语句
  ddns-update-style interim;
  next-server 192.168.8.253;                       (TFTP服务器的IP地址)
  filename "pxelinux.0";                           (网卡引导文件名)
  subnet 192.168.8.0 netmask 255.255.255.0 {
  option subnet-mask              255.255.255.0;
  option domain-name              "pengpeng.com";
  option domain-name-servers      192.168.8.253;
  range dynamic-bootp 192.168.8.10 192.168.8.20;
  default-lease-time 21600;
  max-lease-time 43200;
  }
  重启一下dhcp服务
  [root@localhost ~]# service dhcpd restart
  启动 dhcpd:                                               [确定]
  设置dhcp服务开机启动
  [root@localhost ~]# chkconfig dhcpd on
  查看dhcp67端口是否被监听
  [root@localhost ~]# netstat -tulnp | grep 67
  udp        0      0 0.0.0.0:67                  0.0.0.0:*             25545/dhcpd
  3.配置TFTP
  先查看是否安装tftp-server
  [root@localhost ~]# rpm -q tftp-server
  tftp-server-0.49-2
  由于TFTP服务由xinetd服务管理,监听UDP69端口
  所以修改它的配置如下
  [root@localhost ~]# vim /etc/xinetd.d/tftp
  ...
  server_args             = -s /tftpboot  (服务根目录)
  disable                 = no     (改为no以启用)
  ...
  重启一下xinetd服务
  [root@localhost ~]# service xinetd restart
  停止 xinetd:                                              [确定]
  启动 xinetd:                                              [确定]
  确保该服务开机启动
  [root@localhost ~]# chkconfig xinetd on
  查看端口是否被监听
  [root@localhost ~]# netstat -tulnp | grep :69
  udp        0      0 0.0.0.0:69                  0.0.0.0:*              25782/xinetd
  4、部署linux内核、镜像
  从RHEL关盘中拷贝,复制到TFTP根目录
  [root@localhost ~]# cd /misc/cd/images/pxeboot/
  [root@localhost pxeboot]# cp initrd.img vmlinuz /tftpboot/
  [root@localhost pxeboot]# cp /usr/share/syslinux/pxelinux.0 /tftpboot/ (拷贝网卡引导文件到tftp目录下)
  [root@localhost pxeboot]# mkdir /tftpboot/pxelinux.cfg    创建pxelinux.cfg文件夹
  [root@localhost pxeboot]# cp /misc/cd/isolinux/isolinux.cfg /tftpboot/pxelinux.cfg/default (拷贝并改名为default)
  5、配置NFS共享
  [root@localhost ~]# mkdir -p /data/iso/rhel5.9       (递归创建一个目录)
  [root@localhost ~]# cp -rf /misc/cd/* /data/iso/rhel5.9/
  [root@localhost ~]# vim /etc/exports (配置NFS)
  /data/iso/rhel5.9       *(ro)
  重启portmap、nfs服务
  [root@localhost ~]# service portmap restart
  停止 portmap:                                             [确定]
  启动 portmap:                                             [确定]
  [root@localhost ~]# service nfs restart
  关闭 NFS mountd:                                          [失败]
  关闭 NFS 守护进程:                                        [失败]
  关闭 NFS quotas:                                          [失败]
  启动 NFS 服务:                                            [确定]
  关掉 NFS 配额:                                            [确定]
  启动 NFS 守护进程:                                        [确定]
  启动 NFS mountd:                                          [确定]

  Stopping RPC>
  正在启动 RPC>  确保两个服务开机启动
  [root@localhost ~]# chkconfig portmap on
  [root@localhost ~]# chkconfig nfs on
  5、配置DNS (可选)
  先检查相关软件bind、bind-chroot、caching-nameserver是否安装
  [root@localhost ~]# rpm -q bind bind-chroot caching-nameserver
  package bind is not installed
  package bind-chroot is not installed
  package caching-nameserver is not installed
  都没安装,利用YUM 进行安装
  [root@localhost ~]# yum -y install bind bind-chroot caching-nameserver
  安装完毕,进入虚拟根环境目录:
  [root@localhost ~]# cd /var/named/chroot/var/named/
  拷贝模板,用来配置控制文件
  [root@localhost etc]# cp -p named.caching-nameserver.conf named.conf
  修改named.conf
  listen-on port 53 { 192.168.8.253; };
  ...
  allow-query     { any; };
  allow-query-cache { any; };
  ...
  match-clients      { any; };
  match-destinations { any; };
  定义正反向解析文件:
  [root@localhost etc]# vim named.rfc1912.zones
  zone "pengpeng.com" IN {
  type master;
  file "pengpeng.com.zone";
  };
  zone "8.168.192.in-addr.arpa" IN {
  type master;
  file "pengpeng.com.arpa";
  };
  检查主控制文件有无语法错误:
  [root@localhost etc]# named-checkconf named.conf
  [root@localhost etc]#
  无反馈,则正常
  进入虚拟配置目录,拷贝模板配置文件,改名为之前定义的正反向解析文件名:
  [root@localhost etc]# cd /var/named/chroot/var/named/
  [root@localhost named]# cp -p named.local pengpeng.com.zone
  [root@localhost named]# cp -p named.local pengpeng.com.arpa
  修改两个文件:
  [root@localhost named]# vim pengpeng.com.zone
  $TTL    86400
  @       IN      SOA     pengpeng.com. root.pengpeng.com.  (
  2014090101 ; Serial
  28800      ; Refresh
  14400      ; Retry
  3600000    ; Expire
  86400 )    ; Minimum
  IN      NS      dns1.pengpeng.com.
  dns1       IN      A       192.168.8.253
  $GENERATE  10-20 station$ IN A 192.168.8.$
  (分别给每台客户端分配主机名,格式如下 stationx.pengpeng.com192.168.8.x 在此实现)
  [root@localhost named]# vim pengpeng.com.arpa
  $TTL    86400
  @       IN      SOA     pengpeng.com. root.pengpeng.com.  (
  2014090101 ; Serial
  28800      ; Refresh
  14400      ; Retry
  3600000    ; Expire
  86400 )    ; Minimum
  IN      NS      dns1.pengpeng.com.
  253       IN      PTR     dns1.pengpeng.com.
  $GENERATE 10-20 $ IN PTR station$.pengpeng.com
  分别检查配置是否正确
  [root@localhost named]# named-checkzone pengpeng.com pengpeng.com.zone
  zone pengpeng.com/IN: loaded serial 2014090101
  OK
  [root@localhost named]# named-checkzone pengpeng.com pengpeng.com.arpa
  zone pengpeng.com/IN: loaded serial 2014090101
  OK
  已通过
  重启服务,确保服务开机启动,并验证DNS解析情况
  [root@localhost named]# service named restart
  停止 named:                                               [确定]
  启动 named:                                               [确定]
  [root@localhost named]# chkconfig named on
  [root@localhost named]# host station10.pengpeng.com 192.168.8.253
  Using domain server:
  Name: 192.168.8.253
  Address: 192.168.8.253#53
  Aliases:
  station10.pengpeng.com has address 192.168.8.10
  [root@localhost named]# host 192.168.8.10 192.168.8.253
  Using domain server:
  Name: 192.168.8.253
  Address: 192.168.8.253#53
  Aliases:
  10.8.168.192.in-addr.arpa domain name pointer station10.pengpeng.com.8.168.192.in-addr.arpa.
  [root@localhost named]#
  以上配置完成,就可以在同一网络内,开启一台客户机;选择从网卡启动:
  客户机首先会获取到由PXE服务器DHCP服务分配的IP地址;
  其次获取到由PXE服务器TFTP提供的启动文件;
  最后再获取到PXE服务器nfs提供的操作系统镜像。
  接着就是根正常装机一样的步骤,一步一步往下装。
  但是这样装机,只不过是系统启动文件和镜像来源和我们通常的不同,也是需要一步一步往下安装。
  怎样才能不需要这种交互式的操作,客户机只要开机,就可以全自动的安装,一直到我们需要输入用户名、密码
  进入系统呢?
  二、Kickstart无人值守安装
  首先需要安装一个软件    system-config-kickstart
  检查系统有没有安装此软件
  [root@localhost ~]# rpm -q system-config-kickstart
  package system-config-kickstart is not installed
  利用YUM进行安装:
  [root@localhost ~]yum -y install system-config-kickstart
  安装完毕
  要实现客户机无人值守安装,服务端就需要提供给客户机相关的配置文件,
  配置文件放在服务端哪里? 为了更好的利用linux的网络服务,我们将安装由apache提供的web服务站点上
  安装httpd
  [root@localhost ~]# yum -y install httpd
  创建无人值守配置文件ks.cfg
  启动system-config-kickstart
  [root@localhost ~]# system-config-kickstart 回车即启动
  配置页面如下列图片:
  选择在文本模式中执行安装,速度将会非常快:
DSC0000.jpg

DSC0001.jpg

DSC0002.jpg

DSC0003.jpg

DSC0004.jpg

DSC0005.jpg

DSC0006.jpg

DSC0007.jpg

DSC0008.jpg

DSC0009.jpg

DSC00010.jpg

DSC00011.jpg

DSC00012.jpg

DSC00013.jpg

DSC00014.jpg

DSC00015.jpg

  拷贝此文件到web默认存放位置
  [root@localhost ~]# cp /root/ks.cfg /var/www/html/
  启动web服务
  [root@localhost ~]# service httpd restart
  停止 httpd:                                               [失败]
  启动 httpd:                                               [确定]
  确保web服务开机启动
  [root@localhost ~]# chkconfig httpd on
  为了防止自动安装时需输入序列号,而暂停安装,需要在配置文件中加一条语句:
  [root@localhost ~]# vim /var/www/html/ks.cfg
  key --skip            (自动跳过输入序列号)
  最后还要在引导文件配置中加一条,引导文件改为ks.cfg
  [root@localhost ~]# vim /tftpboot/pxelinux.cfg/default
  ...
  label linux
  kernel vmlinuz
  append ks=http://192.168.8.253/ks.cfg initrd=initrd.img
  ...
  下面开始验证无人值守安装:
  将客户机bios调整为从网卡启动,下边就不用管了,喝喝茶,玩玩游戏,等着输入用户名密码就可以了。。。
  可以在客户机这边看一下,安装速度非常快
DSC00016.jpg

DSC00017.jpg

DSC00018.jpg

  最后系统安装好了:输入用户名root及之前定义好的密码,进入系统:
  打开伪字符终端,查看机器名和IP地址的对应关系,即满足之前的实验要求
  如图 DSC00019.jpg
  本人初学linux,菜鸟一个,日后还会发表一些自己做的实验及学习心得, 望各位前辈多多指教,
  谢谢!


运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-625640-1-1.html 上篇帖子: 一次分页SQL优化 下篇帖子: sql 语句的月份查询
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表