基于PXE 和 Cobbler 自动安装Linux系统(5)

/var/lib/cobbler/loaders中如果缺少一些网络启动加载程序,可以运行'cobbler get-loaders'来下载它们,或者,如果您只想处理x86 / x86_64 netbooting,则可以确保已安装 安装

了syslinux软件包的一个新版本,可以完全忽略这个消息。 该目录中的文件,如果要支持所有架构,应包括pxelinux.0,menu.c32,elilo.efi和yaboot。 “cobbler get-loaders”

命令是解决这些要求的最简单方法。

连接internet

cobbler get-loaders

不连internet,只复制menu.c32,pxelinux.0两个文件的话,只支持安装x86/x86_64架构的系统,所以建议还是执行cobbler get-loaders,将所需的文件都下载到 /var/lib/cobbler/loaders来。

cp /var/lib/tftpboot/{menu.c32,pxelinux.0} /var/lib/cobbler/loaders

查看启动菜单的菜单选项,命令如下

cobbler profile list

如果不需要相关菜单,可以用以下命令移除,

cobbler profile remove --name=centos7.3_desk

3 导入yum源

cobbler import --path=/misc/cd --name=centos7.3 --arch=x86_64

#断开光盘连接,重新换张6.9的盘,进行安装

cobbler import --path=/misc/cd --name=centos6.9 --arch=x86_64

cobbler distro list

cobbler profile list

这一步执行完成后,会将当前的光盘文件全部拷贝到/var/www/cobbler/ks_mirror这个目录下,并且生成新的目录,目录名称自己指定,如centos7.3,这里这个目录的名字一旦设定好了之后,

后续就不要继续更改目录名,否则生成菜单文件会异常,因为名字不匹配

4 生成ks

#注意,这里的应答文件是根据yum源自动生成的,我们也可以自己生成生成ks文件,然后在做管理,把应答文件里的安装方式改成 url  --url=$tree,就会

自动去找到对应的目录,当然这里也可以直接指定对应的路径

这里的$tree 的路径可以通过以下命令查看,

cobbler  distro list 找到源配置文件,如centos73-x86_64

cobbler distro tree centos73-x86_64 就可以看到tree这个变量具体指哪个,如下

Kickstart Metadata             : {'tree': 'http://@@http_server@@/cblr/links/centos73-x86_64'}

注意,cobbler专门放应答文件的目录是/var/lib/cobbler/kickstarts,将新生成的ks文件拷贝到这里/var/lib/cobbler/kickstarts即可,如

cp  ks73min.cfg /var/lib/cobbler/kickstarts/

然后再将应答文件和yum源做关联

cp  centos6.cfg centos7.cfg /var/lib/cobbler/kickstarts/

cobbler profile remove --name=centos6.9-x86_64

cobbler profile remove --name=centos7.3-x86_64

cobbler profile add --name=centos6.9_desktop --distro=centos6.9-x86_64  --kickstart=/var/lib/cobbler/kickstarts/centos6.cfg

cobbler profile add --name=centos7.3_mini --distro=centos7.3-x86_64  --kickstart=/var/lib/cobbler/kickstarts/centos7.cfg

#以上命令将安装的新生成的ks文件和要对应的安装的yum源关联起来,--name要新生成的菜单项的名字,--distro指定yum源(cobbler distro list

这个命令查看当前有多少个yum源,及其名称),--kickstart指定ks文件的路径

cobbler sync

5 启用网页管理

htdigest  -c /etc/cobbler/users.digest  Cobbler sunny

service httpd restart

service cobblerd restart

到这里cobbler安装完成了

6 测试

A安装虚拟机

B打开cobbler管理页面

https://172.18.50.73/cobbler_web

4 半自动化安装pxe环境脚本实现

这里附上自动化安装PXE环境的半自动化脚本

将菜单配置文件,dhcp配置文件,ks文件打包放在附件中,有需要可以下载查看

这些配中,需要注意的是ks的文件中,对包源路径指定,如

url --url=""

还有菜单文件中,ks路径的指定

append initrd=6i386/initrd.img ks=

还有,dhcp分配的网络段的分配,和当前的网络是可通的

在脚本中,有几个地方需要注意

共准备了三个版本的光盘,32位的6.5版本,64位的6.9版本,和64位的7版本

挂载:/var/www/html/os/{6i386  6x86_64  7 }三个文件夹分别挂载对应的光盘,这里建议手动挂载

启动引导文件:建议手动内核和虚拟根文件到/var/lib/tftpboot{ 6i386  6x86_64  7}这三个文件夹下

ks文件,建议提前准备好,也是手动复制到/var/www/html/ksdir下

虽然脚本实现了自动化的复制,但是前提是/dev/sr0 ---> 6x86_64 ,/dev/sr1 ---> 6i386 ,/dev/sr2 ---> 7

脚本内容如下

#!/bin/bash

#

#******************************************************************************

#Author:               Sunny

#Date:                 2017-09-27

#FileName:             install_pxe_env.sh

#version:              1.0

#Your change info:     

#Description:          For install PXE_environment auto

#DOC URL:               

#Copyright(C):         2017  All rihts reserved

#*****************************************************************************

restart_dhcpd() { 

service dhcpd restart &>/dev/null;

chkconfig dhcpd on &>/dev/null;

}

restart_tftp () {

sed -i 's/disable.*/disble = no/g' /etc/xinetd.d/tftp &>/dev/null;

chkconfig tftp on &>/dev/null;

service xinetd restart &>/dev/null;

}

restart_httpd(){

service httpd restart &>/dev/null;

chkconfig httpd on &>/dev/null;

}

min_time () {

    time=`date +%Y%m%d%H%M`

}

ip=$(ifconfig  | awk '/inet /{print $2}'| awk -F : '{print $NF}'| head -1)

min_time;

#install server

echo "Now install dhcp,http,tftp server and tftp client,it might take few minites"

rpm -q httpd &>/dev/null && restart_httpd || { yum -y install httpd &>/dev/null;restart_httpd; }

rpm -q dhcp &>/dev/null && restart_dhcpd ||  { yum -y install dhcp&>/dev/null;restart_dhcpd; }

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/13418.html