yum仓库服务和PXE网络装机
通过源代码编译的方式安装程序在灵活性、可定制性方面具有无可比拟的优势,但也正因为这
种特性给管理员带来了额外的维护开销,当应用在大规模的服务器群时存在一定的局限性。另外.
在大规模的Linux应用环境中,如Web群集.分布式计算等,服务器往往并不配备光驱设备,在这
种情况下,如何为数十乃至上百台服务器裸机快速安装系统呢?传统的USB光驱.移动硬盘等安装
方法显然已经难以满足需求。
借助于YUM软件仓库,可以完成安装.卸载.自动升级rpm软件包等任务,能够自动查找并解
决rpm包之间的依赖关系,而无须管理员逐个.手工地去安装每个rpm包,使管理员在维护大量Linux
服务器时更加轻松自如。特别是在拥有大量Linux主机的本地网络中,构建一台源服务器可以大大缓
解软件安装、升级等对Internet的依赖。
YUM的前身是YUuP(Yellow dog Updater, Yellow dog Linux的软件更新器),最初由TSS公司(Terra
Soft Solutions,INC.)使用Python语言开发而成,后来由杜克大学(Duck Uhiversity)的Linux开发队
伍进行改进,命名为YUM(Yellow dog Updater ,Modified)。
要成功使用YUM机制来更新系统和软件,需要有一个包含各种rpm安装包文件及其依赖软件的
软件仓库(repository),提供软件仓库的服务器也称为“源”服务器。在客户机中只要正确指定软件仓库
的地址等信息,就可以通过对应的“源”服务器来安装或更新软件了。
YUM软件仓库通常借助于HTTP或FTP协议来进行发布,这样可以面向网络中的所有客户机提供
软件源服务。为了便于客户机查询软件包,获取依赖关系等信息,在软件仓库中需要提供仓库数据
(repodata),其中收集了目录下所有rpm包的头部信息。
实验1
服务器使用CentOS 7操作系统,IP地址为192.168.4.254。
基于FTP方式为其他服务器提供软件安装源,使用yum命令安装软件。
软件仓库中的所有软件包均来自CentOS 7的DVD光盘(或镜像文件)。
1.配置本地yum仓库
[root@centos01 ~]# vim /etc/yum.repos.d/local.repo
name=centos
baseurl=file:///mnt
enabled=1
gpgchenk=1
gpgkey=file:/ //etc/pki/rpm-gpg/RPM-GPG-KEY-CentoS-7
2.安装vsftpd
3.配置vsftpd仓库位置
[root@centos01 ~]# cp -r /mnt/* /var/ftp/pub/
4.配置vsftpd仓库源
[root@centos01 ~]# vim /etc/yum.repos.d/local.repo
[ftp]
name=centos
baseurl=ftp://192.168.100.10/pub/
enabled=1
gpgchenk=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
启动vsftpd服务
systemctl start vsftpd
5.测试是否是是ftp源安装
[root@centos02 ~]# vim /etc/yum.repos.d/local.repo
[ftp]
name=centos
baseurl=ftp://192.168.100.10/pub
enabled=1
gpgchenk=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
[root@centos02 ~]# yum -y install httpd
实验2
服务器的P地址为“192.168.4,254”,所在网段为“192.168,4.0/24”。
搭建PXE网络装机服务器,为新采购的10台服务器裸机安装CentOS操作系统。
新装的系统为最小化安装,默认语言为“中文”。
为新装的系统自动配置好YUM仓库,root密码设置为“pwd123”。
1.安装pxe所需依赖
[root@centos01 ~]# yum -y install vsftpd syslinux tftp-serverdhcp
2.复制光盘数据到ftp仓库根目录
[root@centos01 ~]# cp -r /mnt/* /var/ftp/pub/
3.修改tftp配置文件
[root@centos01 ~]# vim /etc/xinetd.d/tftp
4.复制引导程序、Linux内核和镜像
[root@centos01 ~]# cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/
[root@centos01 ~]# cp /mnt/isolinux/vmlinuz /var/lib/tftpboot/
[root@centos01 ~]# cp /mnt/isolinux/initrd.img /var/lib/tftpboot/
5.配置dhcp服务器
[root@centos01 ~]# vim /etc/dhcp/dhcpd.conf
option domain-name "benet.com";
option domain-name-servers 192.168.100.10, 202.106.0.10;
default-lease-time 600;
max-lease-time 7200;
ddns-update-style none;
subnet 192.168.100.0 netmask 255.255.255.0 {
range 192.168.100.110 192.168.100.210;
option routers 192.168.100.10;
next-server 192.168.100.10;
filename "pxelinux.0";
}
6.安装无人值守程序
[root@centos01 ~]# yum -y install system-config-kickstart
[root@centos01 ~]# system-config-kickstart
[root@centos01 ~]# cp ks.cfg /var/ftp/pub/
6.配置Linux引导系统菜单
[root@centos01 ~]# mkdir -p /var/lib/tftpboot/pxelinux.cfg
[root@centos01 ~]# cp /mnt/isolinux/isolinux.cfg /var/lib/tftpboot/pxelinux.cfg/default
[root@centos01 ~]# vim /var/lib/tftpboot/pxelinux.cfg/default
default auto
timeout 600
prompt
label auto
kernel vmlinuz
append initrd=initrd.img method=ftp://192.168.100.10/pub/ ks=ftp://192.168.100.10/pub/ks.cfg
label linux text
kernel vmlinuz
append initrd=initrd.img method=ftp://192.168.100.10/pub/ ks=ftp://192.168.100.10/pub/ks.cfg
label rescue linux
kernel vmlinuz
append initrd=initrd.img method=ftp://192.168.100.10/pub/ ks=ftp://192.168.100.10/pub/ks.cfg
7.创建无人值守Linux
启动服务
systemctl start vsftpd
systemctl start tftp
systemct start dhcpd
配置时间稍长,等待即可
安装成功