/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; }