《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
[root@bokeyuan ~]
# yum install cobbler cobbler-web tftp* rsync xinetd http* syslinux dhcp* pykickstart
Loaded plugins: fastestmirror,langpacks
Loading mirror speeds from cached hostfile
Package
rsync
-3.0.9-17.el7.x86_64 already installed and latest version
Package 12:dhcp-common-4.2.5-47.el7.CentOS.x86_64 already installed and latest version
Package 12:dhcp-libs-4.2.5-47.el7.centos.x86_64 already installed and latest version
Package pykickstart-1.99.66.10-1.el7.noarch already installed and latest version
Resolving 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
---> 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
---> 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
---> 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 Resolution
Error: Package: Django14-1.4.20-1.el6.noarch (cobbler)
Requires: python-simplejson
Error: Package: cobbler-2.6.3-1.el6.noarch (cobbler)
Requires: python-simplejson
Error: 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.7
Error: 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_64
ipa-client-common-4.4.0-12.el7.centos.noarch has installed conflicts freeipa-client-common: ipa-client-common-4.4.0-12.el7.centos.noarch
ipa-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源办理
安装完成,启动软件