LINUX学习:PXE+DHCP+TFTP+Cobbler 无人值守安装CentOS 7

LINUX学习:PXE+DHCP+TFTP+Cobbler 无人值守安装CentOS 7,第1张

概述介绍《LINUX学习:PXE+DHCP+TFTP+Cobbler 无人值守安装CentOS 7》开发教程,希望对您有用。

《liNUX学习:PXE+DHCP+TFTP+Cobbler 无人值守安装CentOS 7》要点:
本文介绍了liNUX学习:PXE+DHCP+TFTP+Cobbler 无人值守安装CentOS 7,希望对您有用。如果有疑问,可以联系我们。

Cobbler(补鞋匠)是通过将DHCP、TFTP、DNS、http等服务进行集成,创立一个中央管理节点,其可以实现的功能有配置服务,创立存储库,解压缩 *** 作系统媒介,代理或集成一个配置管理系统,控制电源管理等. Cobbler的最终目的是实现无需进行人工干预即可安装机器.

  pxe概述
  预启动执行环境(Preboot eXecution Environment,PXE,也被称为预执行环境)是让计算机通过网卡独立地使用数据设备(如硬盘)或者安装 *** 作系统

    PXE ClIEnt发送广播包哀求DHCP分配IP地址DHCP
    Server回复哀求,给出IP地址以及Boot
    Server的地址PXE下载引导文件执行引导程序

总结来说,

  pxe客户端会挪用网际协议(ip)、用户数据报协议(udp)、动态主机设定协议(DHCP)、小型文件传输协议(TFTP)

  pxe客户端(clIEnt)指机器在pxe启动进程中的角色.一个pxe客户端可以是一台服务器、笔记本电脑或者其他装有pxe启动代码的机器

  PXE主要是通过广播的方式发送一个包,并请注获取一个地址,而后交给TFTP法式下载一个引导文件.

cobbler和Kickstart批量装机软件

 Cobbler由python语言开发,是对PXE和Kickstart以及DHCP的封装.融合很多特性,提供了Cli和Web的管理形式.更加便利的实行网络安装.同时,Cobbler也提供了API接口,使用其它语言也很容易做扩展.它不紧可以安装物理机,同时也支持kvm、xen虚拟化、Guest OS的安装.更多的是它还能结合Puppet等集中化管理软件,实现自动化的管理.

  Kickstart 是一种无人值守的安装方式,它的工作原理是在安装过程中记录人工干预填写的各种参数,并生成一个名为ks.cfg的文件.我们可以简单理解为一个自动安装应答配置管理法式.通过读取这个配置文件,系统知道怎么去分区,要安装什么包,配什么IP,优化什么内核参数等等 

  一句话总结:Cobbler补鞋匠是对Kickstart的封装,简化安装步调、使用流程,官方号称补鞋匠都能学会的批量装机.

Cobbler 事情流程

server端:

    第一步,启动Cobbler服务
    第二步,进行Cobbler差错检查,执行cobbler check命令
    第三步,进行配置同步,执行cobbler sync命令
    第四步,复制相关启动文件文件到TFTP目录中
    第五步,启动DHCP服务,提供地址分配
    第六步,DHCP服务分配IP地址
    第七步,TFTP传输启动文件
    第八步,Server端接收安装信息
    第九步,Server端发送ISO镜像与Kickstart文件

ClIEnt端:

    第一步,客户端以PXE模式启动
    第二步,客户端获取IP地址
    第三步,通过TFTP服务器获取启动文件
    第四步,进入Cobbler安装选择界面
    第五步,客户端确定加载信息
    第六步,根据配置信息准备安装系统
    第七步,加载Kickstart文件
    第八步,传输系统安装的其它文件
    第九步,进行安装系统

正式情况准备:

  1.网络环境:host-only、nat网络,因为Cobbler需要用到本身的dhcp服务器,所以为了防止都在同一个网络造成dhcp获取混乱,需要切换网络!~ 

  2.类似安装服务必要的环境准备:1,关闭iptables,selinux 2,配置静态IP、设置主机名 并且在hosts文件下绑定 3.时间同步 4.配置当地iso镜像里的yum仓库,163源epel源 (安装软件)

cobbler server    -------    clIEnt
                  192.168.100.221/24  ------------------------------------  装机时候由DHCP自动设置装备摆设

一.  在cobbler server上安装cobbler

  yum install cobbler cobbler-web tftP* rsync xinetd http* syslinux dhcP* pykickstart

@H_403_118@[root@bokeyuan ~]# yum install cobbler cobbler-web tftP* rsync xinetd http* syslinux dhcP* pykickstartLoaded plugins: fastestmirror,langpacksLoading mirror speeds from cached hostfilePackage rsync-3.0.9-17.el7.x86_64 already installed and latest versionPackage 12:dhcp-common-4.2.5-47.el7.CentOS.x86_64 already installed and latest versionPackage 12:dhcp-libs-4.2.5-47.el7.centos.x86_64 already installed and latest versionPackage pykickstart-1.99.66.10-1.el7.noarch already installed and latest versionResolving DependencIEs--> Running transaction check---> Package cobbler.noarch 0:2.6.3-1.el6 will be installed--> Processing Dependency: python-simpleJson for package: cobbler-2.6.3-1.el6.noarch--> Processing Dependency: python-cheetah for package: cobbler-2.6.3-1.el6.noarch--> Processing Dependency: mod_wsgi for package: cobbler-2.6.3-1.el6.noarch--> Processing Dependency: PyYAML for package: cobbler-2.6.3-1.el6.noarch---> Package cobbler-web.noarch 0:2.6.3-1.el6 will be installed--> Processing Dependency: mod_ssl for package: cobbler-web-2.6.3-1.el6.noarch--> Processing Dependency: Django for package: cobbler-web-2.6.3-1.el6.noarch---> Package dhcp.x86_64 12:4.2.5-47.el7.centos will be installed---> Package httpcomponents-clIEnt.noarch 0:4.2.5-5.el7_0 will be installed--> Processing Dependency: mvn(commons-logging:commons-logging) for package: httpcomponents-clIEnt-4.2.5-5.el7_0.noarch--> Processing Dependency: mvn(commons-codec:commons-codec) for package: httpcomponents-clIEnt-4.2.5-5.el7_0.noarch---> Package httpcomponents-core.noarch 0:4.2.4-6.el7 will be installed---> Package httpd.x86_64 0:2.4.6-45.el7.centos will be installed--> Processing Dependency: /etc/mime.types for package: httpd-2.4.6-45.el7.centos.x86_64---> Package httpd-devel.x86_64 0:2.4.6-45.el7.centos will be installed--> Processing Dependency: apr-util-devel for package: httpd-devel-2.4.6-45.el7.centos.x86_64--> Processing Dependency: apr-devel for package: httpd-devel-2.4.6-45.el7.centos.x86_64---> Package httpd-manual.noarch 0:2.4.6-45.el7.centos will be installed---> Package httpd-tools.x86_64 0:2.4.6-45.el7.centos will be installed---> Package syslinux.x86_64 0:4.05-13.el7 will be installed---> Package tftp.x86_64 0:5.2-13.el7 will be installed---> Package tftp-server.x86_64 0:5.2-13.el7 will be installed@H_683_301@---> Package xinetd.x86_64 2:2.3.15-13.el7 will be installed--> Running transaction check---> Package Django14.noarch 0:1.4.20-1.el6 will be installed--> Processing Dependency: python(abi) = 2.6 for package: Django14-1.4.20-1.el6.noarch--> Processing Dependency: python-simpleJson for package: Django14-1.4.20-1.el6.noarch---> Package PyYAML.x86_64 0:3.10-11.el7 will be installed--> Processing Dependency: libyaml-0.so.2()(64bit) for package: PyYAML-3.10-11.el7.x86_64---> Package apache-commons-codec.noarch 0:1.8-7.el7 will be installed---> Package apache-commons-logging.noarch 0:1.1.2-7.el7 will be installed--> Processing Dependency: mvn(logkit:logkit) for package: apache-commons-logging-1.1.2-7.el7.noarch--> Processing Dependency: mvn(log4j:log4j) for package: apache-commons-logging-1.1.2-7.el7.noarch--> Processing Dependency: mvn(avalon-framework:avalon-framework-API) for package: apache-commons-logging-1.1.2-7.el7.noarch---> Package apr-devel.x86_64 0:1.4.8-3.el7 will be installed---> Package apr-util-devel.x86_64 0:1.5.2-6.el7 will be installed--> Processing Dependency: openldap-devel(x86-64) for package: apr-util-devel-1.5.2-6.el7.x86_64--> Processing Dependency: libdb-devel(x86-64) for package: apr-util-devel-1.5.2-6.el7.x86_64--> Processing Dependency: expat-devel(x86-64) for package: apr-util-devel-1.5.2-6.el7.x86_64---> Package cobbler.noarch 0:2.6.3-1.el6 will be installed--> Processing Dependency: python-simpleJson for package: cobbler-2.6.3-1.el6.noarch--> Processing Dependency: python-cheetah for package: cobbler-2.6.3-1.el6.noarch---> Package mailcap.noarch 0:2.1.41-2.el7 will be installed---> Package mod_ssl.x86_64 1:2.4.6-45.el7.centos will be installed---> Package mod_wsgi.x86_64 0:3.4-12.el7_0 will be installed--> Running transaction check---> Package Django14.noarch 0:1.4.20-1.el6 will be installed--> Processing Dependency: python(abi) = 2.6 for package: Django14-1.4.20-1.el6.noarch--> Processing Dependency: python-simpleJson for package: Django14-1.4.20-1.el6.noarch---> Package avalon-framework.noarch 0:4.3-10.el7 will be installed--> Processing Dependency: xalan-j2 for package: avalon-framework-4.3-10.el7.noarch@H_403_473@---> Package avalon-logkit.noarch 0:2.1-14.el7 will be installed--> Processing Dependency: tomcat-servlet-3.0-API for package: avalon-logkit-2.1-14.el7.noarch--> Processing Dependency: jms for package: avalon-logkit-2.1-14.el7.noarch---> Package cobbler.noarch 0:2.6.3-1.el6 will be installed--> Processing Dependency: python-simpleJson for package: cobbler-2.6.3-1.el6.noarch--> Processing Dependency: python-cheetah for package: cobbler-2.6.3-1.el6.noarch---> Package expat-devel.x86_64 0:2.1.0-8.el7 will be installed---> Package libdb-devel.x86_64 0:5.3.21-19.el7 will be installed---> Package libyaml.x86_64 0:0.1.4-11.el7_0 will be installed---> Package log4j.noarch 0:1.2.17-15.el7 will be installed--> Processing Dependency: mvn(javax.mail:mail) for package: log4j-1.2.17-15.el7.noarch---> Package openldap-devel.x86_64 0:2.4.40-13.el7 will be installed--> Processing Dependency: cyrus-sasl-devel(x86-64) for package: openldap-devel-2.4.40-13.el7.x86_64--> Running transaction check---> Package Django14.noarch 0:1.4.20-1.el6 will be installed--> Processing Dependency: python(abi) = 2.6 for package: Django14-1.4.20-1.el6.noarch--> Processing Dependency: python-simpleJson for package: Django14-1.4.20-1.el6.noarch---> Package cobbler.noarch 0:2.6.3-1.el6 will be installed--> Processing Dependency: python-simpleJson for package: cobbler-2.6.3-1.el6.noarch--> Processing Dependency: python-cheetah for package: cobbler-2.6.3-1.el6.noarch---> Package cyrus-sasl-devel.x86_64 0:2.1.26-20.el7_2 will be installed---> Package geronimo-jms.noarch 0:1.1.1-19.el7 will be installed---> Package javamail.noarch 0:1.4.6-8.el7 will be installed---> Package tomcat-servlet-3.0-API.noarch 0:7.0.69-10.el7 will be installed---> Package xalan-j2.noarch 0:2.7.1-23.el7 will be installed--> Processing Dependency: xerces-j2 for package: xalan-j2-2.7.1-23.el7.noarch--> Processing Dependency: osgi(org.apache.xerces) for package: xalan-j2-2.7.1-23.el7.noarch--> Running transaction check---> Package Django14.noarch 0:1.4.20-1.el6 will be installed--> Processing Dependency: python(abi) = 2.6 for package: Django14-1.4.20-1.el6.noarch--> Processing Dependency: python-simpleJson for package: Django14-1.4.20-1.el6.noarch@H_404_653@---> Package cobbler.noarch 0:2.6.3-1.el6 will be installed--> Processing Dependency: python-simpleJson for package: cobbler-2.6.3-1.el6.noarch--> Processing Dependency: python-cheetah for package: cobbler-2.6.3-1.el6.noarch---> Package xerces-j2.noarch 0:2.11.0-17.el7_0 will be installed--> Processing Dependency: xml-commons-resolver >= 1.2 for package: xerces-j2-2.11.0-17.el7_0.noarch--> Processing Dependency: xml-commons-APIs >= 1.4.01 for package: xerces-j2-2.11.0-17.el7_0.noarch--> Processing Dependency: osgi(org.apache.xml.resolver) for package: xerces-j2-2.11.0-17.el7_0.noarch--> Processing Dependency: osgi(javax.xml) for package: xerces-j2-2.11.0-17.el7_0.noarch--> Running transaction check---> Package Django14.noarch 0:1.4.20-1.el6 will be installed--> Processing Dependency: python(abi) = 2.6 for package: Django14-1.4.20-1.el6.noarch--> Processing Dependency: python-simpleJson for package: Django14-1.4.20-1.el6.noarch---> Package cobbler.noarch 0:2.6.3-1.el6 will be installed--> Processing Dependency: python-simpleJson for package: cobbler-2.6.3-1.el6.noarch--> Processing Dependency: python-cheetah for package: cobbler-2.6.3-1.el6.noarch---> Package xml-commons-APIs.noarch 0:1.4.01-16.el7 will be installed---> Package xml-commons-resolver.noarch 0:1.2-15.el7 will be installed--> Finished Dependency ResolutionError: Package: Django14-1.4.20-1.el6.noarch (cobbler)           Requires: python-simpleJsonError: Package: cobbler-2.6.3-1.el6.noarch (cobbler)           Requires: python-simpleJsonError: Package: Django14-1.4.20-1.el6.noarch (cobbler)           Requires: python(abi) = 2.6           Installed: python-2.7.5-48.el7.x86_64 (@anaconda)               python(abi) = 2.7               python(abi) = 2.7Error: Package: cobbler-2.6.3-1.el6.noarch (cobbler)           Requires: python-cheetah You Could try using --skip-broken to work around the problem** Found 3 pre-existing rpmdb problem(s),'yum check' output follows:ipa-clIEnt-4.4.0-12.el7.centos.x86_64 has installed conflicts freeipa-clIEnt: ipa-clIEnt-4.4.0-12.el7.centos.x86_64ipa-clIEnt-common-4.4.0-12.el7.centos.noarch has installed conflicts freeipa-clIEnt-common: ipa-clIEnt-common-4.4.0-12.el7.centos.noarchipa-common-4.4.0-12.el7.centos.noarch has installed conflicts freeipa-common: ipa-common-4.4.0-12.el7.centos.noarch

 报错办理:提示--skip-broken,检查发现自己yum源不全yum无法安装上面三个依赖包.补全yum源办理

安装完成,启动软件

[root@bokeyuan ~]# systemctl restart cobblerd.service
[root@bokeyuan ~]# systemctl restart httpd.service
[root@bokeyuan ~]# systemctl enable cobblerd.service  //开机自启动
Created symlink from /etc/systemd/system/multi-user.target.wants/cobblerd.service to /usr/lib/systemd/system/cobblerd.service.
[root@bokeyuan ~]# systemctl enable httpd.service  //开机自启动
Created symlink from /etc/systemd/system/multi-user.target.wants/httpd.service to /usr/lib/systemd/system/httpd.service.

为什么启动apache?血的教训,排了很久.不先启动apache 后续cobbler check 报python file 的差错!!!

二.根本配置

@H_403_118@[root@bokeyuan ~]# cobbler checkThe following are potential configuration items that you may want to fix: 1 : The 'server' fIEld in /etc/cobbler/settings must be set to something other than localhost,or kickstarting features will not work.  This should be a resolvable hostname or IP for the boot server as reachable by all machines that will use it.2 : For PXE to be functional,the 'next_server' fIEld in /etc/cobbler/settings must be set to something other than 127.0.0.1,and should match the IP of the boot server on the PXE network.3 : change 'disable' to 'no' in /etc/xinetd.d/tftp4 : some network boot-loaders are missing from /var/lib/cobbler/loaders,you may run 'cobbler get-loaders' to download them,or,if you only want to handle x86/x86_64 netbooting,you may ensure that you have installed a *recent* version of the syslinux package installed and can ignore this message entirely.  files in this directory,should you want to support all architectures,should include pxelinux.0,menu.c32,elilo.efi,and yaboot. The 'cobbler get-loaders' command is the easIEst way to resolve these requirements.5 : enable and start rsyncd.service with systemctl6 : debmirror package is not installed,it will be required to manage debian deployments and repositorIEs7 : The default password used by the sample templates for newly installed machines (default_password_crypted in /etc/cobbler/settings) is still set to 'cobbler' and should be changed,try: "openssl passwd -1 -salt 'random-phrase-here' 'your-password-here'" to generate new one8 : fencing tools were not found,and are required to use the (optional) power management features. install cman or fence-agents to use them Restart cobblerd and then run 'cobbler sync' to apply changes.

 一步步办理上述需求,部分需求可忽略.个体差异不同 每个人需求数量也不同,基本上大同小异

解决需求1、2、7
# openssl passwd -1 -salt 'werwqerwqr' '123456'        --123456为暗码(这是自动安装客户端系统成功后的root登录暗码),werwqerwqr为随机字节干扰码(随便写)
$1$werwqerw$.prcfrYFbwuvkD8XspayN.

# vim /etc/cobbler/settings
384 server: 192.168.100.221   --换成cobbler服务器端的IP
272 next_server: 192.168.100.221   --同上
101 default_password_crypted: "$1$werwqerw$.prcfrYFbwuvkD8XspayN."  --把暗码字符串换成你上面产生的字符串(此暗码为客户机安装后的root登录暗码)

解决需求3
# vim /etc/xinetd.d/tftp
        disable = no    --yes改为no

办理需求5

#systemctl restart rsyncd.service

#systemctl enable  rsyncd.service

办理需求8
# yum install fence-agents

OK,剩下的需求像

4 : some network boot-loaders are missing from /var/lib/cobbler/loaders,you may run 'cobbler get-loaders' to download them,if you only want to handle x86/x86_64 netbooting,you may ensure that you have installed a *recent* version of the syslinux package installed and can ignore this message entirely.  files in this directory,and yaboot. The 'cobbler get-loaders' command is the easIEst way to resolve these requirements.
6 : debmirror package is not installed,it will be required to manage debian deployments and repositorIEs

(问题4可以使用cobbler get-loaders办理,但需要有外网和外网的yum源 跳过,现在是NAT模式;问题6 是关于debian系统的,我们这里可以忽略)

末了# systemctl restart cobblerd.service 重起下cobbler补鞋匠服务!

三.导入centos7.3的iso镜像

我的环境iso镜像挂载在/yum目录,此拷贝步调时间较长

# cobbler import --path=/yum/ --name=centos7.3

# cobbler distro List   --导入成功后,确认导入的镜像名
  centos7.3-x86_64
# cobbler profile List   --导入成功后,确认默认的profile名
  centos7.3-x86_64

[root@bokeyuan ~]# cobbler import --path=/yum/ --name=centos7.3task started: 2017-09-03_175701_importtask started (ID=Media import,time=Sun Sep  3 17:57:01 2017)Found a candIDate signature: breed=RedHat,version=rhel6Found a candIDate signature: breed=redhat,version=rhel7Found a matching signature: breed=redhat,version=rhel7Adding distros from path /var/www/cobbler/ks_mirror/centos7.3:creating new distro: centos7.3-x86_64trying symlink: /var/www/cobbler/ks_mirror/centos7.3 -> /var/www/cobbler/links/centos7.3-x86_64creating new profile: centos7.3-x86_64associating reposchecking for rsync repo(s)checking for rhn repo(s)checking for yum repo(s)starting descent into /var/www/cobbler/ks_mirror/centos7.3 for centos7.3-x86_64processing repo at : /var/www/cobbler/ks_mirror/centos7.3need to process repo/comps: /var/www/cobbler/ks_mirror/centos7.3looking for /var/www/cobbler/ks_mirror/centos7.3/repodata/*comps*.xmlKeePing repodata as-is :/var/www/cobbler/ks_mirror/centos7.3/repodata*** TASK COMPLETE *** 


四.改动dhcp配置
# vim /etc/cobbler/dhcp.template  --在此文件的第21行到第25行改动成你对应的网段和ip   

subnet 192.168.100.0 netmask 255.255.255.0 {
    option routers            192.168.100.221;
    option domain-name-servers 192.168.100.221;
    option subnet-mask        255.255.255.0;
    range dynamic-bootp        192.168.100.100 192.168.100.254;


--图形的 *** 作进程这里省略后续还有这一步 重要

# vim /etc/cobbler/settings   --再去修改这个配置文件,改成dhcp服务由cobbler来管理
242 manage_dhcp: 1       --把0改为1

#  systemctl restart cobblerd.service  --保留后,再重启此服务

五.使用cobbler sync同步,并启动xinetd服务

下面的cobbler sync 很重要,如果这步报错必定要排出来,就经验来说这步出错一般是IP配置出错,记得细心一点,个体差异不用就不详细表述~  

# cobbler sync

@H_403_118@[root@bokeyuan ~]# cobbler synctask started: 2017-09-03_180107_synctask started (ID=Sync,time=Sun Sep  3 18:01:07 2017)running pre-sync triggerscleaning treesremoving: /var/www/cobbler/images/centos7.3-x86_64removing: /var/lib/tftpboot/pxelinux.cfg/defaultremoving: /var/lib/tftpboot/grub/imagesremoving: /var/lib/tftpboot/grub/efIDefaultremoving: /var/lib/tftpboot/images/centos7.3-x86_64removing: /var/lib/tftpboot/s390x/profile_Listcopying bootloaderstrying hardlink /usr/share/syslinux/pxelinux.0 -> /var/lib/tftpboot/pxelinux.0trying hardlink /usr/share/syslinux/menu.c32 -> /var/lib/tftpboot/menu.c32trying hardlink /usr/share/syslinux/memdisk -> /var/lib/tftpboot/memdiskcopying distros to tftpbootcopying files for distro: centos7.3-x86_64trying hardlink /var/www/cobbler/ks_mirror/centos7.3/images/pxeboot/vmlinuz -> /var/lib/tftpboot/images/centos7.3-x86_64/vmlinuztrying hardlink /var/www/cobbler/ks_mirror/centos7.3/images/pxeboot/initrd.img -> /var/lib/tftpboot/images/centos7.3-x86_64/initrd.imgcopying imagesgenerating PXE configuration filesgenerating PXE menu structurecopying files for distro: centos7.3-x86_64trying hardlink /var/www/cobbler/ks_mirror/centos7.3/images/pxeboot/vmlinuz -> /var/www/cobbler/images/centos7.3-x86_64/vmlinuztrying hardlink /var/www/cobbler/ks_mirror/centos7.3/images/pxeboot/initrd.img -> /var/www/cobbler/images/centos7.3-x86_64/initrd.imgWriting template files for centos7.3-x86_64rendering TFTPD filesgenerating /etc/xinetd.d/tftpprocessing boot_files for distro: centos7.3-x86_64cleaning link cachesrunning post-sync triggersrunning python triggers from /var/lib/cobbler/triggers/sync/post/*@H_683_301@running python trigger cobbler.modules.sync_post_restart_servicesrunning shell triggers from /var/lib/cobbler/triggers/sync/post/*running python triggers from /var/lib/cobbler/triggers/change/*running python trigger cobbler.modules.scm_trackrunning shell triggers from /var/lib/cobbler/triggers/change/*淫乱 TASK COMPLETE 淫乱

# systemctl restart xinetd.service
# systemctl enable xinetd.service

六.新建另一个虚拟机 选择网络安装PXE (保证相同私有网络,而且最好2G内存,内存小的话会在安装时报空间不够的错误),进行安装测试

   

安装完成后,变动boot引导

更多详情见请继续阅读下一页的出色内容

_baIDu_page_break_tag_

自动安装我们已经实现了,但如何自定义我们想安装的profile

重点就是你需要自定义一个ks文件


自定义ks文件的方法
1,如果你很熟悉此文件,直接拷别人的模版修改或者直接使用/root/anaconda-ks.cfg来修改
2,使用一个图形工具system-config-kickstart来帮助你配置(下面我就是使用这种方法)


# yum install system-config-kickstart
# system-config-kickstart   

--图形的 *** 作过程这里省略


给大家两个做好的ks.cfg文件参考:

第一个文件就是用来安装CentOS7.3宿主机的ks文件,内容如下:
#platform=x86,AMD64,or Intel EM64T
#version=DEVEL
# Install OS instead of upgrade
install
# Keyboard layouts
keyboard 'us'
# Root password
rootpw --iscrypted $1$6RbFC2nC$GBUGZL7ACuGhck8DbUZgM/
# Use network installation
url --url="http://172.16.13.250/cobbler/ks_mirror/centos7.3/"
# System language
lang en_US
# Firewall configuration
firewall --Disabled
# System authorization information
auth  --useshadow  --passalgo=sha512
# Use text mode install
text
firstboot --disable
# SElinux configuration
selinux --Disabled

# Network information
network  --bootproto=dhcp --device=eth0
# Reboot after installation
reboot
# System timezone
timezone Asia/Shanghai --isUtc
# System bootloader configuration
bootloader --append="rhgb quIEt" --location=mbr
# Clear the Master Boot Record
zerombr
# Partition clearing information
clearpart --all --initlabel
# disk partitioning information
part /boot --fstype="xfs" --size=300
part swap --fstype="swap" --size=4000
part / --fstype="xfs"  --size=150000
part /data --fstype="xfs" --size=80000


%packages
@additional-devel
@desktop-deBUGging
@development
@Fonts
@gnome-desktop
@input-methods
@kde-desktop
@legacy-x
@platform-devel
@remote-desktop-clIEnts
@x11
initial-setup
initial-setup-gui
vinagre

%end


第二个文件是用来宿主机安装双系统的ks文件

#platform=x86,or Intel EM64T
#version=DEVEL
# Install OS instead of upgrade
install
# Keyboard layouts
keyboard 'us'
# Root password
rootpw --iscrypted $1$6RbFC2nC$GBUGZL7ACuGhck8DbUZgM/
# Use network installation
url --url="http://172.16.13.250/cobbler/ks_mirror/centos7.3/"
# System language
lang en_US
# Firewall configuration
firewall --Disabled
# System authorization information
auth  --useshadow  --passalgo=sha512
# Use text mode install
text
firstboot --disable
# SElinux configuration
selinux --Disabled

# Network information
network  --bootproto=dhcp --device=eth0
# Reboot after installation
reboot
# System timezone
timezone Asia/Shanghai --isUtc
# System bootloader configuration
bootloader --append="rhgb quIEt" --location=mbr
# Clear the Master Boot Record
zerombr
# Partition clearing information
clearpart --none
# disk partitioning information
part swap --fstype="swap" --size=4000
part / --fstype="xfs" --grow --size=1


%packages
@additional-devel
@desktop-deBUGging
@development
@Fonts
@gnome-desktop
@input-methods
@kde-desktop
@legacy-x
@platform-devel
@remote-desktop-clIEnts
@x11
initial-setup
initial-setup-gui
vinagre

%end



=========================================================================


# cobbler profile help   --查看帮助
# cobbler profile List   --查看有哪些profile
  centos7.3-x86_64   


# cobbler profile report --name=centos7.3-x86_64 |grep Kickstart
Kickstart                      : /var/lib/cobbler/kickstarts/sample_end.ks  --这就是这个安装方案的kickstart文件
Kickstart Metadata            : {}


我现在自定义一个ks文件,也想做成一个profile,步骤如下:
步骤一:
自定义ks文件(使用system-config-kickstart或直接找一个模版文件修改),得到如下的文件

# vim /var/lib/cobbler/kickstarts/centos7.3.ks   --复制下面一大段信息,粘到此文件里

#platform=x86,or Intel EM64T
#version=DEVEL
# Install OS instead of upgrade
install
# Keyboard layouts
keyboard 'us'
# Root password
rootpw --iscrypted $1$6RbFC2nC$GBUGZL7ACuGhck8DbUZgM/
# Use network installation
url --url="http://192.168.100.2/cobbler/ks_mirror/centos7.3/"
# System language
lang en_US
# Firewall configuration
firewall --Disabled
# System authorization information
auth  --useshadow  --passalgo=sha512
# Use text mode install
text
firstboot --disable
# SElinux configuration
selinux --Disabled

# Network information
network  --bootproto=dhcp --device=eth0
# Reboot after installation
reboot
# System timezone
timezone Asia/Shanghai --isUtc
# System bootloader configuration
bootloader --append="rhgb quIEt" --location=mbr
# Clear the Master Boot Record
zerombr
# Partition clearing information
clearpart --all --initlabel
# disk partitioning information
part /boot --fstype="xfs" --size=300
part swap --fstype="swap" --size=2000
part / --fstype="xfs" --grow --size=1


%post
rm /etc/yum.repos.d/* -rf
cat > /etc/yum.repos.d/local.repo << EOF
[base]
name=base
baseurl=file:///yum
enabled=1
gpgcheck=0
EOF
%end


%packages
@additional-devel
@desktop-deBUGging
@development
@Fonts
@gnome-desktop
@input-methods
@kde-desktop
@legacy-x
@platform-devel
@remote-desktop-clIEnts
@x11
initial-setup
initial-setup-gui
vinagre

%end


步骤二:把准备好的ks文件做成一个新的profile
# cobbler profile add --name=new_centos7.3 --distro=centos7.3-x86_64  --kickstart=/var/lib/cobbler/kickstarts/centos7.3.ks

# cobbler profile List       --在原来基础上就多了自定义的安装方案
  centos7.3-x86_64
  new_centos7.3


步骤三:
测试
然后就可以新建一个客户端虚拟机,使用上面的new_centos7.3安装名字来测试了



==================================================================

对上面 *** 作的扩展(仅供参考)
# cobbler profile edit --name=new_centos7.3 --kickstart=/var/lib/cobbler/kickstarts/xxx.ks   
# cobbler profile remove --name=new_centos7.3   



======================================================================




客户端使用koan与服务器的cobbler联系,实现自动重装系统

客户端需要安装koan软件包(epel源里就有)


# yum install koan  
# koan --server=192.168.100.2 --List=profiles      --192.168.100.2为cobbler服务器IP,得到的结果和在cobbler服务器上cobbler profile List命令得到的结果一样
  centos7.3-x86_64
  new_centos7.3


# koan --replace-self --server=192.168.100.2 --profile=new_centos7.3  --指定本客户端依照名为new_centos7.3的profile重装系统

# reboot  --敲完上面的命令,使用reboot,就会重装了(没敲上面的命令那reboot就是重启)

本文永远更新链接地址

学习更多liNUX教程,请查看站内专栏,如果有liNUX疑问,可以加QQ交流《liNUX学习:PXE+DHCP+TFTP+Cobbler 无人值守安装CentOS 7》。

总结

以上是内存溢出为你收集整理的LINUX学习:PXE+DHCP+TFTP+Cobbler 无人值守安装CentOS 7全部内容,希望文章能够帮你解决LINUX学习:PXE+DHCP+TFTP+Cobbler 无人值守安装CentOS 7所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/yw/1042168.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-24
下一篇 2022-05-24

发表评论

登录后才能评论

评论列表(0条)

保存