kickstart无人值守安装

xiaoxiao2021-02-28  112

    本片文章kickstart无人值守安装的各种步骤,由于是在虚拟机上的操作,并且是以linux的Centos6.9版本为例,途中会有各种软件的辅助,如有错误,敬请谅解,我还很菜!!!

kickstart无人值守安装:

kickstart无人值守安装所要实现的是在以本地磁盘,优盘,外部服务器为安装源,自动安装系统的过程

而空白客户户机则需要被引导而实现安装系统    linux ks=cdrom:/ks.cfg  //ks.cfg 是在光盘上          ks=nfs:服务器地址或名称:/目录/ks.cfg  //ks.cfg  nfs服务器          ks=ftp://服务器地址或名称/目录/ks.cfg  //ks.cfg在ftp服务器上          ks=http://服务器地址或名称/目录/ks.cfg  //ks.cfg在http服务器上          ks=harddisk:分区:目录/ks.cfg  //ks.cfg在硬盘上

基本步骤:

mkdir /media/cdrom                                                  创建光驱挂载点 mount /dev/cdrom /media/cdrom                                     挂载光驱 yum --disablerepo=\* =enablerepo=c6-media install vsftpd system-config-kickstart -y    安装vsftpd包 和 为了产生ks.cfg的system-config-kickstart包 service vsftpd start    开启vsftpd服务器 iptables -F INPUT

iptables -F OUTPUT      清理防火墙规则(以后是加规则)

     这里要特别声明,清理防火墙规则是为了我自己能链接到ftp服务器,毕竟这是虚拟机不是真机,所以如果是真机的情况下我们往往是增加防火墙的规则而不是清理防火墙规则,这是要让你们了解的 。

如果需要知道要把安装树放在虚拟机的哪里了,电脑网络搜索虚拟机假设的ftp地址,安装树放入目录就行了。 cd var/ftp cp -rf /media/cdrom/. ./        表示将光盘上的所有目录拷贝到当前目录下 /var/ftp目录下

system-config-kickstart         这个指令是需要在图形界面上执行的    下载个Xmanager

     这里提到的Xshell与Xmanagar则是连接至服务器与设置个性化系统的辅助文件,大家可以去相对了解一下,这里不过多介绍。

刚开始由于基于网络协议的原因Xmaganager的包文件显示不了(因为设置的本地)那么就设置yum,这里是指从本地获取下载地址的情况下,当能连上因特网的话就不用。

cd /etc/yum.repos.d/

ll 

     进入后会看见几个.repo结尾的文件,其中只有CentOS-Media.repo是我们需要的,其他的都是和因特网相关的,所以创建一个目录,把他们都先放进去,再单独把Media.repo挪出来

mkdir dir1                                                创建一个目录dri1 mv * dir1                                                 将/etc/yum.repos.d/中所有.repo文件都放进去 cd dir1                                                    进入dri1目录 mv CentOS-Media.repo /etc/yum.repos.d/ 或者 ../    表示将dri1中的CentOS-Media.repo挪到他的上一个目录中                                                                    去/etc/yum.repos.d/ vim CentOS-Media.repo                                  编辑CentOS-Media.repo            enable=1                                       表示这个本地的yum是要启用的

system-config-kickstart                                 命令后在Xmanager中配置

     以上一部分是没有连接因特网而用本地光驱直接设置Xmanager,如果拥有互联网,可忽略些许步骤。

cd /root  ll                                                          进入root目录查看是否产生ks.cfg vim ks.cfg                                                编辑ks.cfg

       poweroff                                          表示编辑成安装完后自动关闭系统       退出保存

yum --disablerepo=\* =enablerepo=c6-media install dhcp -y      安装dhcp包 vim /etc/dhcp/dhcpd.conf                                            编辑dhcp     :r usr/shall/ doc/dhcp-补齐/dhcpd.conf.sample(可补齐)             控制用域 subnet{........}(删除)                       设置IP地址,子网掩码;             地址范围(rannge);             网关(option routers)地址 同网段(通常第一个或者最后一个);

            NDS服务器(option domain-name-serverrs1.1.1.1,2.2.2.2)        保存退出

service dhcp start                                        开启dhcp服务器  cp ks.kfg /var/ftp                                        root下将ks.kfg放到/var/ftp里 创建一个新的虚拟机,引导介质(先拿系统盘来实现) esc

boot:Linux ks=ftp://192.168.2.200/ks.cfg

  

如果没有系统盘,只想做个引导盘做成一个引导光盘   iso在服务器service上 cd /media/cdrom/ ll cd isolinux/                                              查看isolinux   这个文件很重要 ll                                                         查看(vmlinuz是个内核,initrd.img如同小驱动盘,这两个东西都要                                                           存在) cp -r /media/cdrom/isolinux/ tmp/iso                  把isolinux目录拷贝到tmp目录下的iso目录中 cd /media/cdrom/tmp/iso/isolinux/ cd ..                                                     退到iso目录下下面进行操作

mkisofs  -o  myiso.iso -b  isolinux/isolinux.bin  -c isolinux/boot.cat  -no-emul-boot -boot-load-size 4 -boot-info-table -R  -J -v  -T ./                                  针对当前目录进行操作

        在这其中(mkisofs  -o  myiso.iso -b  isolinux/isolinux.bin  -c isolinux/boot.cat  -no-emul-boot -boot-load-size 4 -boot-info-table -R  -J -v  -T  iso/)这是个制作iso镜像的指令,具体情况,我只能呵呵,不了解。

引导光盘完成    用Xftp将这个景象文件拿出来(Xftp是个能将服务器文件下载和上传到其他设备的软件,大家可以直接去了解)

安装时不用系统盘,找到做成的镜像文件 boot:Linux ks=ftp://192.168.2.200/ks.cfg 如果iso在客户端上 cp /root/kscfg ./                                       将root目录下的ks.kfg拷贝到iso目录中 cd /media/cdrom/tmp/iso/                              在搜目录下 mkisofs  -o  myiso.iso -b  isolinux/isolinux.bin  -c isolinux/boot.cat  -no-emul-boot -boot-load-size 4 -boot-info-table -R  -J -v  -T 刷新用Xftp提取 root:Linux ks=cdrom:/ks.cfg  在安装系统开机时要est以后输入Linux ks=,如果你连这都想省了直接开机安装,那么我服,这种方法是有的!!! 连esc都不用输入的方法: vim iso/isolinux/isolinux.cfg                             default Linux=cdrom:/ks.cfg                             加入的指令                   #prompt 1     将#去掉                                  修改 timeout 600    将timout的大小更改 600秒改为6秒       修改

但问题来了,即使自动安装那也得一台一台装的,能不能同时完成多台安装呢,所以这里向大家介绍pxe批量自动安装,

pxe批量自动安装

pxe批量自动安装的基本思路以及过程:

                      发送

1.client(客户端)——————>dhcpdiscovr        是为了找到网络当中是可以提供地址(广播方式,网络中所有都能接收到)                       发出 2.server(服务器)——————>dhcpoffer         服务器从地址池中发出一个dhcp广播(地址的提供,只有一个地址掩码) 3.client(客户端)——————>dhcprequest        客户端想知道更多地址所要安装的东西                       发出 4.server(服务器)——————>dhcpack            一旦服务器允许你使用这个地址则发出dhcpack广播 5.client(客户端)通过 tftp 下载引导程序         (pxelinux.0) 6.client(客户端)                                  通过引导程序的设置进而去下载内核以及驱动

客户端如何知道服务器中的tftp在哪呢(在服务器中的dhcp配置文件中做一行指令告诉客户端在哪)

服务器所要具备条件:1.安装树 2.下载服务器 3.dhcp服务器也是tftp服务器

安装过程:客户端获得服务器地址,找到tftp,下载网络引导所需要的文件 yum --disablerepo=\* =enablerepo=c6-media install vsftpd -y       安装vsftpd包 yum --disablerepo=\* =enablerepo=c6-media install syslinux -y      安装syslinux包,为了以后产生pxelinux.0引导程序 service vsftpd start                                                     开启vsftpd服务器 iptables -F INPUT iptables -F OUTPUT                                                    清理防火墙规则(为了方便) 如果需要知道要把安装树放在那里,电脑网络搜索虚拟机假设的ftp地址, 安装树放入目录就行了。 cd var/ftp cp -rf /media/cdrom/. ./                                               表示将光盘上的所有目录拷贝到当前目录下 /var/ftp yum --disablerepo=\* =enablerepo=c6-media install dhcp tftp-server -y      安装dhcp和tftp-servr包 vim /etc/xinetd.d/tftp                                                            tftp-servr是依赖超级守护进程的,所以要                                                                                      编辑/etc/xinetd.d/tftp            disaable=no         将disable=yes改为no                     其中disable可以理解为用户访不唤醒么? service xinted start                                                     开启超级守护进程    69端号 tftp根目录                                                                                      /var/lib/tftpboot/ cd /var/lib/tftpboot/                                                    进入到tftp的根目录下   cp /media/cdrom/isolinux/vmlinuz ./或者/var/lib/tftpboot/             为了让客户端找到内核,将内核放到tftp的目录下 cp /media/cdrom/isolinux/initrd ./或者/var/lib/tftpboot/               这是把驱动放到tftp目录下 cd /usr/share/syslinux/ ll                                                                          进入/usr/share/syslinux/ 查看到pxelinux.0 cp pxelinux.0 var/lib/tftpboot/                                          将pxelinux.0拷贝到tftp的根目录中 mkdir pxelinux.cfg                                                        装配置文件所需要的目录 cd pxelinux.cfg/ cp /media/cdrom/tmp/iso/isolinux.cfg /var/lib/tftpboot/pxelinux.cfg/default     将配置文件放在一个叫default目录中

           

在这里我们的tftp目录中就有了vmlinuz内核,initrd驱动,pxelinux.0引导程序,同时配置文件完成

vim /etc/dhcp/dhcpd.conf                                                配置dhcp

:r usr/shall/ doc/dhcp-补齐/dhcpd.conf.sample(可补齐)                      控制用域 subnet{........}(删除)                       设置IP地址,子网掩码                                           地址范围(rannge);                      网关(option routers)地址 同网段(通常第一个或者最后一个);                      NDS服务器( option domain-name-servers1.1.1.1,2.2.2.2)                      next-server 192.168.2.200                      failename "pxelinux.0"; 保存退出 service xinetd restart                             确保tftp服务器都开启 service dhcp start                                 确保dhcp服务器开启 service vsftpd restart                             确保vsftpd服务器开启 yum --disablerepo=\* =enablerepo=c6-media install system-config-kickstart -y             产生ks.cfg  cd /etc/yum.repos.d/

ll                                                    进入后会看见几个.repo文件,其中只有CentOS-Media.repo是我们需要的,其他的都是和因                                                      特网相关的,所以创建一个目录,把他们都先放进去,再单独把Media.repo挪出来

mkdir dir1                                          创建一个目录dri1 mv * dir1                                           将/etc/yum.repos.d/中所有.repo文件都放进去 cd dir1                                             进入dri1目录 mv CentOS-Media.repo /etc/yum.repos.d/ 或者 ../           表示将dri1中的CentOS-Media.repo挪到他的上一个目录中                                                                                       去/etc/yum.repos.d/ vim CentOS-Media.repo                           编辑CentOS-Media.repo            enable=1                                表示这个本地的yum是要启用的

                               

客户端获得地址后名字的自动修改(%post,后续修改脚本) ifconfig eth0                                                  查询地址  ifconfig eth0 |grep inet                                       把地址过滤出来,但还是有多余的   ifconfig eth0 |grep ’inet\>‘                                   这叫做词尾牟定   init后就什么都没有了 ifconfig eth0 |grep ’inet\>‘ |awk '{print $2}'                我要现实$几的内容 awk默认的分隔符就是空格 排在第一个叫$1 第二个$2..... string=`ifconfig eth0 |grep ’inet\>‘ |awk '{print $2}'`      给他赋值一个变量,要赋值的东西用反引号``括住,指令取代

enco $string                                                   显示变量的值   如显示的是:192.168.2.200

echo ${string##*.}   以  192.168.2.200为例,就是显示最后一点前的全不要,只显示最后一点后的100    但编程时应该写num=${string##*.}              echo $num  ll etc/sysconfig/network                                      主机名所在的文件 cat etc/sysconfig/network                                    在其中可查看主机名 set -e "s/HOSNAME.*'/HOSNAME=station$num.a.com/" /etc/sysconfig/network           只对输出做出修改 set -i -e "s/HOSNAME.*'/HOSNAME=station$num.a.com/" /etc/sysconfig/network        对源头做出修改       cat etc/sysconfig/network

vim /etc/sysconfig/network-scripts/ifcfg-eth0

BOOTPROTO=none      将none改为dhcp       客户机用dhcp

那就没有地址,没有子网掩码,没有网关,没有DNS        保存退出

set -e "s/BOOTPROTO.*'/BOOTPROTO=none或者static\nIPADDR=192.168.2.$num\nNATMASK=255.255.255.0\nGATEWAY=192.168.2.254\nDNS1=1.1.1.1"/etc/sysconfig/network-scripts/ifcfg-eth0

我们可以将之前的工作集合到一个脚本中去 将脚本写入一个新的文件中去 vim 1.sh #bin/bash                                          保存退出去修改文件权限 chmod +x 1.sh                                     修改权限 vim 1.sh #bin/bash                                          第一行写入脚本的运行环境   #get host ip address string=`ifconfig eth0 |grep ’inet\>‘ |awk '{print $2}'` #get ip address last number    num=${string##*.} #change hostnam set -i -e "s/HOSNAME.*'/HOSNAME=station$num.a.com/" /etc/sysconfig/network #change host ip addess    set -e "s/BOOTPROTO.*'/BOOTPROTO=static\nIPADDR=192.168.2.$num\nNATMASK=255.255.255.0\nGATEWAY=192.168.2.254\nDNS1=1.1.1.1"/etc/sysconfig/network-scripts/ifcfg-eth0   保存退出 vim etc/sysconfig/network

HPSTNAME=localhost                    保存退出

在Xmanager中后期脚本中将1.sh的脚本放进去,运行环境为 bin/bash

#bin/bash                                                    保存退出去修改文件权限 chmod +x 1.sh                                               修改权限 vim 1.sh #bin/bash              #get host ip address string=`ifconfig eth0 |grep ’inet\>‘ |awk '{print $2}'` #get ip address last number    num=${string##*.} #change hostnam set -i -e "s/HOSNAME.*'/HOSNAME=station$num.a.com/" /etc/sysconfig/network #change host ip addess    set -e "s/BOOTPROTO.*'/BOOTPROTO=static\nIPADDR=192.168.2.$num\nNATMASK=255.255.255.0\nGATEWAY=192.168.2.254\nDNS1=1.1.1.1"/etc/sysconfig/network-scripts/ifcfg-eth0 vim ks.cfg                                                    在里面添加一个 poweoff cp ks.cfg /car/ftp cd /var/lib/tftpboot/pxelinux cd pxelinux.cfg/ vim default defalult linux                                                 默认就改为linux #prompt 1                                                   去掉# timeout 6                                                    600改成6   append 。。。。                                              后追加   ks=ftp://192.168.2.100/ks.cfg         以上步骤完成后就应该能实现批量安装了。。。。。。。。。                
转载请注明原文地址: https://www.6miu.com/read-23402.html

最新回复(0)