加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > Linux > 正文

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

发布时间:2020-12-13 17:47:04 所属栏目:Linux 来源:网络整理
导读:《LINUX学习:PXE+DHCP+TFTP+Cobbler 无人值守安装CentOS 7》要点: 本文介绍了LINUX学习:PXE+DHCP+TFTP+Cobbler 无人值守安装CentOS 7,希望对您有用。如果有疑问,可以联系我们。 Cobbler(补鞋匠)是通过将DHCP、TFTP、DNS、HTTP等服务进行集成,创立一个中

《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源办理

安装完成,启动软件

[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 的差错!!!

二.根本配置

[root@bokeyuan ~]# cobbler check
The 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/tftp
4 : 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 systemctl
6 : debmirror package is not installed,it will be required to manage debian deployments and repositories
7 : 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 one
8 : 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.3
task started: 2017-09-03_175701_import
task started (id=Media import,time=Sun Sep  3 17:57:01 2017)
Found a candidate signature: breed=RedHat,version=rhel6
Found a candidate signature: breed=redhat,version=rhel7
Found a matching signature: breed=redhat,version=rhel7
Adding distros from path /var/www/cobbler/ks_mirror/centos7.3:
creating new distro: centos7.3-x86_64
trying symlink: /var/www/cobbler/ks_mirror/centos7.3 -> /var/www/cobbler/links/centos7.3-x86_64
creating new profile: centos7.3-x86_64
associating repos
checking 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_64
processing repo at : /var/www/cobbler/ks_mirror/centos7.3
need to process repo/comps: /var/www/cobbler/ks_mirror/centos7.3
looking for /var/www/cobbler/ks_mirror/centos7.3/repodata/*comps*.xml
Keeping 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

[root@bokeyuan ~]# cobbler sync
task started: 2017-09-03_180107_sync
task started (id=Sync,time=Sun Sep? 3 18:01:07 2017)
running pre-sync triggers
cleaning trees
removing: /var/www/cobbler/images/centos7.3-x86_64
removing: /var/lib/tftpboot/pxelinux.cfg/default
removing: /var/lib/tftpboot/grub/images
removing: /var/lib/tftpboot/grub/efidefault
removing: /var/lib/tftpboot/images/centos7.3-x86_64
removing: /var/lib/tftpboot/s390x/profile_list
copying bootloaders
trying hardlink /usr/share/syslinux/pxelinux.0 -> /var/lib/tftpboot/pxelinux.0
trying hardlink /usr/share/syslinux/menu.c32 -> /var/lib/tftpboot/menu.c32
trying hardlink /usr/share/syslinux/memdisk -> /var/lib/tftpboot/memdisk
copying distros to tftpboot
copying files for distro: centos7.3-x86_64
trying hardlink /var/www/cobbler/ks_mirror/centos7.3/images/pxeboot/vmlinuz -> /var/lib/tftpboot/images/centos7.3-x86_64/vmlinuz
trying hardlink /var/www/cobbler/ks_mirror/centos7.3/images/pxeboot/initrd.img -> /var/lib/tftpboot/images/centos7.3-x86_64/initrd.img
copying images
generating PXE configuration files
generating PXE menu structure
copying files for distro: centos7.3-x86_64
trying hardlink /var/www/cobbler/ks_mirror/centos7.3/images/pxeboot/vmlinuz -> /var/www/cobbler/images/centos7.3-x86_64/vmlinuz
trying hardlink /var/www/cobbler/ks_mirror/centos7.3/images/pxeboot/initrd.img -> /var/www/cobbler/images/centos7.3-x86_64/initrd.img
Writing template files for centos7.3-x86_64
rendering TFTPD files
generating /etc/xinetd.d/tftp
processing boot_files for distro: centos7.3-x86_64
cleaning link caches
running post-sync triggers
running python triggers from /var/lib/cobbler/triggers/sync/post/*
running python trigger cobbler.modules.sync_post_restart_services
running shell triggers from /var/lib/cobbler/triggers/sync/post/*
running python triggers from /var/lib/cobbler/triggers/change/*
running python trigger cobbler.modules.scm_track
running 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》。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读