Cobbler(补鞋匠)8步教你自动安装Linux操作系统

1、简介

Cobbler 可以用来快速建立 Linux 网络安装环境,它已将 Linux 网络安装的技术门槛,从大专以上文化水平,成功降低到初中以下,连补鞋匠都能学会。网络安装服务器套件 Cobbler(补鞋匠)从前,我们一直在做装机民工这份很有前途的职业。自打若干年前 Red Hat 推出了 Kickstart,此后我们顿觉身价倍增。不再需要刻了光盘一台一台地安装 Linux,只要搞定 PXE、DHCP、TFTP,还有那满屏眼花缭乱不知所云的 Kickstart 脚本,我们就可以像哈里波特一样,轻点魔棒,瞬间安装上百台服务器。这一堆花里胡哨的东西可不是一般人都能整明白的,没有大专以上学历,通不过英语四级,根本别想玩转。总而言之,这是一份多么有前途,多么有技术含量的工作啊。很不幸,Red Hat 最新(Cobbler项目最初在2008年左右发布)发布了网络安装服务器套件 Cobbler(补鞋匠),它已将 Linux 网络安装的技术门槛,从大专以上文化水平,成功降低到初中以下,连补鞋匠都能学会。对于我们这些在装机领域浸淫多年,经验丰富,老骥伏枥,志在千里的民工兄弟们来说,不啻为一个晴天霹雳。

1、 什么是PXE  

严格来说,PXE 并不是一种安装方式,而是一种引导的方式。进行 PXE 安装的必要条件是要安装的计算机中包含一个 PXE 支持的网卡(NIC),即网卡中必须要有 PXE Client。PXE (Pre-boot Execution Environment)协议使计算机可以通过网络启动。协议分为 client 和 server 端,PXE client 在网卡的 ROM 中,当计算机引导时,BIOS 把 PXE client 调入内存执行,由 PXE client 将放置在远端的文件通过网络下载到本地运行。运行 PXE 协议需要设置 DHCP 服务器 和 TFTP 服务器。DHCP 服务器用来给 PXE client(将要安装系统的主机)分配一个 IP 地址,由于是给 PXE client 分配 IP 地址,所以在配置 DHCP 服务器时需要增加相应的 PXE 设置。此外,在 PXE client 的 ROM 中,已经存在了 TFTP Client。PXE Client 通过 TFTP 协议到 TFTP Server 上下载所需的文件。

2、什么是KickStart

KickStart是一种无人职守安装方式。KickStart的工作原理是通过记录典型的安装过程中所需人工干预填写的各种参数,并生成一个名为 ks.cfg的文件;在其后的安装过程中(不只局限于生成KickStart安装文件的机器)当出现要求填写参数的情况时,安装程序会首先去查找 KickStart生成的文件,当找到合适的参数时,就采用找到的参数,当没有找到合适的参数时,才需要安装者手工干预。这样,如果KickStart文件涵盖了安装过程中出现的所有需要填写的参数时,安装者完全可以只告诉安装程序从何处取ks.cfg文件,然后去忙自己的事情。等安装完毕,安装程序会根据ks.cfg中设置的重启选项来重启系统,并结束安装。

参看资料:

http://www.osyunwei.com/archives/7606.html

2、模式

设置BIOS引导顺序为: 硬盘,网络

模式:C/S 模式

  • 服务端: IP:192.168.0.63

  • 客户端: IP:192.168.0.64

3、安装TFTP

1.简介

TFTP (Trivial File Transfer Protocol),中译简单文件传输协议或小型文件传输协议. 大家一定记得在2003年8月12日全球爆发冲击波(Worm.Blaster)病毒,这种病毒会监听端口69,模拟出一个TFTP服务器,并启动一个攻 击传播线程,不断地随机生成攻击地址,进行入侵。另外tftp被认为是一种不安全的协议而将其关闭,同时也是防火墙打击的对象,这也是有道理的。tftp 在嵌入式linux还是有用武之地的。需要打开防火墙,允许tftp访问网络。

2.安装所需要的服务及修改相应配置文件。用yum来安装所需要的软件包,先来搭建本地yum光盘源:(如果配置了网络yum,这一步可以忽略)
 [root@RedHat_test ~]# mount /dev/cdrom /mnt
 在/etc/yum.repos.d目录下创建一个以.repo结尾的文件:
 [root@RedHat_test ~]# cat /etc/yum.repos.d/rhel-source.repo
 [rhel-source]
 name=Red Hat Enterprise Linux $releasever-$basearch-Source
 baseurl=file:///mnt/
 enabled=1
 gpgcheck=0
 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release
3.安装ftp服务以及开启服务,设置为开机自动启动
 [root@RedHat_test ~]# yum install vsftpd -y
 [root@RedHat_test ~]# systemctl start vsftpd
 [root@RedHat_test ~]# systemctl enable vsftpd
4.安装TFTP,修改tftp配置文件及开启服务
 [root@RedHat_test ~]# yum install tftp tftp-server xinetd -y
5.配置tftp服务器
 [root@RedHat_test ~]# vim /etc/xinetd.d/tftp
  13server_args     =-s/tftpboot # 表示服务器默认的目录是 /tftpboot
  14disable         =no

其中,server_args = -s /tftpboot是tftp服务器运行时的参数。-s /tftpboot表示服务器默认的目录是 /tftpboot,当你执行put a.txt时,文件会被放到服务器的/tftpboot/a.txt,省去你敲put a /tftpboot/的麻烦。你也可以加其它服务器运行参数到这,具体可以执行man tftpd命令查阅。

-c  :上传文件时,服务器上没有。就自动创建这个文件。默认tftp客户端,只能上传tftp服务器已经有的文件。也就是只能传上去并覆盖服务器上的原文件。如果想上传原来目录中没有的文件,需要修改tftp服务器的配置文件并重起服务。需要修改如下:打开/etc/xinetd.d/tftp文件,在 server_args 增加-c参数,如下所示:

 server_args =-s/tftpboot -c
6.重新启动xinetd服务,然后查看服务端口是否打开
 [root@RedHat_test ~]# systemctl start xinetd
 [root@RedHat_test ~]# lsof -i :69 # 查看69端口正在被哪个进程使用
 [root@RedHat_test ~]# netstat -antup | grep 69 # 这种方法,只能看到xinetd进程

4、安装dhcp

1.用yum来安装所需要的软件包
 [root@RedHat_test ~]# yum install dhcp -y
2.配置DHCP服务器
 [root@RedHat_test ~]# cp /usr/share/doc/dhcp-4.1.1/dhcpd.conf.sample /etc/dhcp/dhcpd.conf # 生成配置文件
3.给DHCP服务器添加一张VMNET4网卡,ip设置为192.168.1.10(只要是1网段都行)
 [root@RedHat_test ~]# ifconfig eth1 192.168.1.10/24
 [root@RedHat_test ~]# vim /etc/dhcp/dhcpd.conf # 只保留一个subnet {。。。} ,取掉其它subnet,改成如下内容
 subnet 192.168.1.0 netmask 255.255.255.0 {
 range 192.168.1.100 192.168.1.200;
 option domain-name-servers 192.168.1.1;
 option domain-name "internal.example.org";
 option routers 192.168.1.1;
 option broadcast-address 192.168.1.255;
 default-lease-time 600;
 max-lease-time 7200;
 next-server 192.168.1.10;
 filename "pxelinux.0";
 }
 # 配置完,先不启动DHCP ,等所有的软件安装好,最后来启动

5、配置使用PXE启动所需的相关文件

1.用yum来安装所需要的软件包
 [root@RedHat_test ~]# yum -y install system-config-kickstart && syslinux
2.准备tftp需要共享出去的文件
 [root@RedHat_test ~]# mount /dev/cdrom /media/
 [root@RedHat_test ~]# mkdir /tftpboot
 [root@RedHat_test ~]# mkdir /tftpboot/pxelinux.cfg
 [root@RedHat_test ~]# cp /usr/share/syslinux/pxelinux.0 /tftpboot/ # 注,只有安装了system-config-kickstart软件包,才会有/usr/share/syslinux/目录及目录中的文件
 [root@RedHat_test ~]# cp /media/images/pxeboot/initrd.img /tftpboot/
 [root@RedHat_test ~]# cp /media/images/pxeboot/vmlinuz /tftpboot/
 [root@RedHat_test ~]# cp /media/isolinux/isolinux.cfg /tftpboot/pxelinux.cfg/default
 [root@RedHat_test ~]# chmod 644 /tftpboot/pxelinux.cfg/default
3.修改default,指定安装操作系统的方式和ks.cfg文件路径
 [root@RedHat_test ~]# vim /tftpboot/pxelinux.cfg/default
 改:default
 为 :default linux

修改第1行,后面的linux意思是寻找下面18行的label linux 。如下:

然后修改下64行(即在后面添加inst.repo=ftp://192.168.10.10/pub inst.ks=ftp://192.168.10.10/ks.cfg)。第64行的意思是使安装程序通过FTP服务器访问kickstart文件。

以上有关default配置文件的修改就是通过ftp服务器方式来访问kickstart文件

 其中第1行:default linux表示指定默认入口名称;
 第2行:prompt 1中prompt用来设置是否等待用户选择,1表示等待用户控制;
 第18、23、27、31行label linux表示定义的引导入口,表示系统的不同安装方式,如第18行定义的入口表示图形安装。
 配置文件修改完了,要开始自动安装,安装程序必须能访问kickstart文件。
 有多种方法可访问kickstart文件,其中最常用的一种方法是通过网络服务器进行,
 例如:ftp服务器、WEB服务器或NFS服务器,这种方法非常易于部署,并且也使管理更改变得十分简单。也可以通过USB磁盘、CD-ROM或本地硬盘。如果USB或CD-ROM中的kickstart文件非常便于访问,只需将kickstart文件放置在用来开始安装的引导介质中。而使用DHCP服务器和TFTP及PXE配置起来更为复杂。
 使安装程序指向kickstart文件的书写格式如下:
 ks=ftp://server/dir/file 如:ks=ftp://ftp服务器IP/ks.cfg
 ks=http://server/dir/file 如:ks=http://http服务器IP/ks.cfg
 ks=nfs:server:/dir/file 如:ks=nfs:nfs服务器IP:/var/ftp/pub/ks.cfg
 ks=hd:device:/dir/file 如:ks=hd:sdb1:/kickstar-files/ks.cfg
 ks=cdrom:/dir/file 如:ks=cdrom:/kickstart-files/ks.cfg
 以上有关default配置文件的修改就是通过ftp服务器方式来访问kickstart文件。

6、接下来我们制作kickstart的无人值守安装文件

1.在创建配置文件之前,我们需要更改下yum源为本地源,否则下面在选择软件包安装这一步不能选择,提示被禁止

 [root@RedHat_test ~]# cd /etc/yum.repos.d/
 [root@RedHat_test yum.repos.d]# ls
 CentOS-Base.repo     CentOS-CR.repo         CentOS-fasttrack.repo CentOS-Sources.repo epel.repo
 CentOS-Base.repo.old CentOS-Debuginfo.repo CentOS-Media.repo     CentOS-Vault.repo   epel-testing.repo
 [root@RedHat_test yum.repos.d]# mkdir bak
 [root@RedHat_test yum.repos.d]# mv *.repo bak/
 [root@RedHat_test yum.repos.d]# ls
 [root@RedHat_test yum.repos.d]# vim my.repo
 [development]        
 name=my-centos7-dvd
 baseurl=file:///var/ftp/pub
 enabled=1
 gpgcheck=0
 [root@RedHat_test yum.repos.d]# yum makecache
2.安装system-config-kickstart软件包
 [root@RedHat_test ~]# system-config-kickstart # 执行system-config-kickstart弹出来界面
3.设置自己后期无人执守安装需要配置的参数(注意:用xshell远程连接,执行上面的命令可能无法弹出选择框,需要这样解决)
1.安装gdm
 [root@RedHat_test ~]# yum install -y gdm
2.在Xstart 里执行默认安装的语言,时区,根口令,然后勾选下面的安装后重新引导

4.配置ftp服务器的安装方法,选择执行新安装,然后点击引导装载程序选项

5.配置grub相关选项

6.设置分区大小

7.配置网络,默认没有网络设置,点击添加网络,设备名称为eth0,网络类型为dhcp

8.验证,默认就可以了

9.防火墙和selinux根据自己需求选择开启或者禁用。我选择关闭selinux。启用防火墙

10.安装图形环境

11.自定义软件包。默认可能没有勾选桌面。根据自己需求勾选。我们为了快速度演示安装,不选择安装桌面

7、安装脚本

在"预安装脚本","安装后脚本"对话框中,可以分别添加在安装前、安装后自动动行的可执行语句。此项设置可以使服务器自动化配置变得更加容易。

1.配置客户机在完成安装后自动设置YUM仓库

2.写入以下脚本内容
 [root@RedHat_test ~]# rm -rf /etc/yum.repos.d/*
 [root@RedHat_test ~]# echo '[rhel-source]
 > name=Red Hat Enterprise Linux $releasever-$basearch-Source
 > baseurl=file:///mnt/
 > enabled=1
 > gpgcheck=0
 > gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release' > /etc/yum.repos.d/rhel6.repo
3.复制ks.cfg文件到/var/ftp目录下
 [root@RedHat_test ~]# cp ks.cfg /var/ftp

注意⚠️:ks.cfg就是无人值守安装时要用的Kickstart文件。要对应:/tftpboot/pxelinux.cfg/default文件中设置过ks=ftp://192.168.1.10/ks.cfg

4.配置基于ftp的yum源,用于客户端安装时,读取软件包用
 [root@RedHat_test ~]# mount /dev/cdrom /var/ftp/pub # 挂载RHEL7安装光盘到/var/ftp/pub目录下
5.重启FTP服务
 [root@RedHat_test ~]# systemctl   restart vsftpd
6.建议关闭防火墙和selinux(如果没有关闭的话,tftp服务会有问题)
 [root@RedHat_test ~]# getenforce
 Disabled
 [root@RedHat_test ~]# iptables -F
 [root@RedHat_test ~]# service iptables save

8、配置两台机器的网络模式为:VMnet4

1.给server 设置一个和DHCP 定义相同网段的IP,接着启动DHCP,设置为开机启动
 [root@RedHat_test ~]# /etc/init.d/dhcpd start
 [root@RedHat_test ~]# chkconfig dhcpd on

9、修改192.168.0.64 BIOS启动顺序为网络优先,加电后开始启动

到此所有关于安装的配置已经配置完毕,保存

如果文章有任何错误欢迎不吝赐教,其次大家有任何关于运维的疑难杂问,也欢迎和大家一起交流讨论。关于运维学习、分享、交流,笔者开通了微信公众号【运维猫】,感兴趣的朋友可以关注下,欢迎加入,建立属于我们自己的小圈子,一起学运维知识。群主还经营一家Orchis饰品店,喜欢的小伙伴欢迎????前来下单。

扫描二维码

获取更多精彩

运维猫公众号

有需要技术交流的小伙伴可以加我微信,期待与大家共同成长,本人微信:

扫描二维码

添加私人微信

运维猫博主

扫码加微信

最近有一些星友咨询我知识星球的事,我也想继续在星球上发布更优质的内容供大家学习和探讨。运维猫公众号平台致力于为大家提供免费的学习资源,知识星球主要致力于即将入坑或者已经入坑的运维行业的小伙伴。

点击阅读原文  查看更多精彩内容!!!

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在现有省、市港口信息化系统进行有效整合基础上,借鉴新 一代的感知-传输-应用技术体系,实现对码头、船舶、货物、重 大危险源、危险货物装卸过程、航管航运等管理要素的全面感知、 有效传输和按需定制服务,为行政管理人员和相关单位及人员提 供高效的管理辅助,并为公众提供便捷、实时的水运信息服务。 建立信息整合、交换和共享机制,建立健全信息化管理支撑 体系,以及相关标准规范和安全保障体系;按照“绿色循环低碳” 交通的要求,搭建高效、弹性、高可扩展性的基于虚拟技术的信 息基础设施,支撑信息平台低成本运行,实现电子政务建设和服务模式的转变。 实现以感知港口、感知船舶、感知货物为手段,以港航智能 分析、科学决策、高效服务为目的和核心理念,构建“智慧港口”的发展体系。 结合“智慧港口”相关业务工作特点及信息化现状的实际情况,本项目具体建设目标为: 一张图(即GIS 地理信息服务平台) 在建设岸线、港口、港区、码头、泊位等港口主要基础资源图层上,建设GIS 地理信息服务平台,在此基础上依次接入和叠加规划建设、经营、安全、航管等相关业务应用专题数据,并叠 加动态数据,如 AIS/GPS/移动平台数据,逐步建成航运管理处 "一张图"。系统支持扩展框架,方便未来更多应用资源的逐步整合。 现场执法监管系统 基于港口(航管)执法基地建设规划,依托统一的执法区域 管理和数字化监控平台,通过加强对辖区内的监控,结合移动平 台,形成完整的多维路径和信息追踪,真正做到问题能发现、事态能控制、突发问题能解决。 运行监测和辅助决策系统 对区域港口与航运业务日常所需填报及监测的数据经过科 学归纳及分析,采用统一平台,消除重复的填报数据,进行企业 输入和自动录入,并进行系统智能判断,避免填入错误的数据, 输入的数据经过智能组合,自动生成各业务部门所需的数据报 表,包括字段、格式,都可以根据需要进行定制,同时满足扩展 性需要,当有新的业务监测数据表需要产生时,系统将分析新的 需求,将所需字段融合进入日常监测和决策辅助平台的统一平台中,并生成新的所需业务数据监测及决策表。 综合指挥调度系统 建设以港航应急指挥中心为枢纽,以各级管理部门和经营港 口企业为节点,快速调度、信息共享的通信网络,满足应急处置中所需要的信息采集、指挥调度和过程监控等通信保障任务。 设计思路 根据项目的建设目标和“智慧港口”信息化平台的总体框架、 设计思路、建设内容及保障措施,围绕业务协同、信息共享,充 分考虑各航运(港政)管理处内部管理的需求,平台采用“全面 整合、重点补充、突出共享、逐步完善”策略,加强重点区域或 运输通道交通基础设施、运载装备、运行环境的监测监控,完善 运行协调、应急处置通信手段,促进跨区域、跨部门信息共享和业务协同。 以“统筹协调、综合监管”为目标,以提供综合、动态、实 时、准确、实用的安全畅通和应急数据共享为核心,围绕“保畅通、抓安全、促应急"等实际需求来建设智慧港口信息化平台。 系统充分整合和利用航运管理处现有相关信息资源,以地理 信息技术、网络视频技术、互联网技术、移动通信技术、云计算 技术为支撑,结合航运管理处专网与行业数据交换平台,构建航 运管理处与各部门之间智慧、畅通、安全、高效、绿色低碳的智 慧港口信息化平台。 系统充分考虑航运管理处安全法规及安全职责今后的变化 与发展趋势,应用目前主流的、成熟的应用技术,内联外引,优势互补,使系统建设具备良好的开放性、扩展性、可维护性。
提供的源码资源涵盖了安卓应用、小程序、Python应用和Java应用等多个领域,每个领域都包含了丰富的实例和项目。这些源码都是基于各自平台的最新技术和标准编写,确保了在对应环境下能够无缝运行。同时,源码中配备了详细的注释和文档,帮助用户快速理解代码结构和实现逻辑。 适用人群: 这些源码资源特别适合大学生群体。无论你是计算机相关专业的学生,还是对其他领域编程感兴趣的学生,这些资源都能为你提供宝贵的学习和实践机会。通过学习和运行这些源码,你可以掌握各平台开发的基础知识,提升编程能力和项目实战经验。 使用场景及目标: 在学习阶段,你可以利用这些源码资源进行课程实践、课外项目或毕业设计。通过分析和运行源码,你将深入了解各平台开发的技术细节和最佳实践,逐步培养起自己的项目开发和问题解决能力。此外,在求职或创业过程中,具备跨平台开发能力的大学生将更具竞争力。 其他说明: 为了确保源码资源的可运行性和易用性,特别注意了以下几点:首先,每份源码都提供了详细的运行环境和依赖说明,确保用户能够轻松搭建起开发环境;其次,源码中的注释和文档都非常完善,方便用户快速上手和理解代码;最后,我会定期更新这些源码资源,以适应各平台技术的最新发展和市场需求。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值