一、YUM仓库的相关概述及部署
YUM仓库: 通过YUM仓库完成rpm软件包的安装、升级、卸载等任务,能够自动查找并且 解决rpm包之间的依赖性关系
(1)基于RPM包构建的软件更新机制
(2)可以自动解决依赖性关系
(3)所有软件包由集中的YUM软件仓库提供
下面是YUM仓库示例图:
(一台服务器是源,通过ftp或http等去提供YUM仓库,客户机通过ftp或http等可以指定YUM仓库的主机从而使用YUM仓库)
适用环境: 拥有大量的Linux主机的本地网络中,可以构建一台YUM源服务器来缓解软件的安装、升级等
分类:
(1)本地YUM (自己就是自己的YUM仓库)
(2)网络YUM
(1)准备安装源
软件仓库的提供方式:
(1)FTP服务: ftp://…
(2)HTTP服务: http://…
(3)本地目录: file:///…
RPM软件包的来源:
(1)CentOS发布的RPM包集合
(2)第三方组织发布的RPM包集合
(3)用户自己定义的RPM包集合
构建CentOS 7 软件仓库
(1)RPM包来自CentOS 7 DVD光盘 (也就是镜像文件)
(2)通过FTP、HTTP或者本地目录提供给客户机
在软件仓库中加入非官方RPM包组
(1)包括存在依赖性关系的所有RPM包
(2)使用createrepo工具建立仓库数据文件 (把指定的目录变成可以使用的RPM包仓库)
(2)示例:
主机名称 | 主机地址 | 环境角色 |
YUM1 | 192.168.100.9 | YUM仓库(源) |
YUM2 | 192.168.100.10 | YUM的客户端 |
-YUM1的配置(源)
******安装vsftpd服务,提供ftp的访问以及安装createrepo工具(有依赖包) [root@YUM1 ~]# mount /dev/cdrom /media/cdrom/ (挂载光盘) mount: /dev/sr0 写保护,将以只读方式挂载 [root@YUM1 ~]# cd /media/cdrom/Packages/ (切换到光盘所在的软件包位置) [root@YUM1 Packages]# rpm -ivh vsftpd-3.0.2-27.el7.x86_64.rpm (使用RPM方式安装ftp) 警告:vsftpd-3.0.2-27.el7.x86_64.rpm: 头V3 RSA/SHA256 Signature, 密钥 ID f4a80eb5: NOKEY 准备中... ################################# [100%] 正在升级/安装... 1:vsftpd-3.0.2-27.el7 ################################# [100%] (安装完成) [root@YUM1 Packages]# systemctl start vsftpd (启动ftp服务) [root@YUM1 Packages]# systemctl enable vsftpd (设置ftp服务为开机自启) Created symlink from /etc/systemd/system/multi-user.target.wants/vsftpd.service to /usr/lib/systemd/system/vsftpd.service. [root@YUM1 Packages]# rpm -ivh deltarpm-3.6-3.el7.x86_64.rpm (createrepo的依赖包) 警告:deltarpm-3.6-3.el7.x86_64.rpm: 头V3 RSA/SHA256 Signature, 密钥 ID f4a80eb5: NOKEY 准备中... ################################# [100%] 正在升级/安装... 1:deltarpm-3.6-3.el7 ################################# [100%] [root@YUM1 Packages]# rpm -ivh libxml2-python-2.9.1-6.el7.4.x86_64.rpm (createrepo的依赖包) 警告:libxml2-python-2.9.1-6.el7.4.x86_64.rpm: 头V3 RSA/SHA256 Signature, 密钥 ID f4a80eb5: NOKEY 准备中... ################################# [100%] 正在升级/安装... 1:libxml2-python-2.9.1-6.el7.4 ################################# [100%] [root@YUM1 Packages]# rpm -ivh python-deltarpm-3.6-3.el7.x86_64.rpm (createrepo的依赖包) 警告:python-deltarpm-3.6-3.el7.x86_64.rpm: 头V3 RSA/SHA256 Signature, 密钥 ID f4a80eb5: NOKEY 准备中... ################################# [100%] 正在升级/安装... 1:python-deltarpm-3.6-3.el7 ################################# [100%] [root@YUM1 Packages]# rpm -ivh createrepo-0.9.9-28.el7.noarch.rpm (安装createrepo工具) 警告:createrepo-0.9.9-28.el7.noarch.rpm: 头V3 RSA/SHA256 Signature, 密钥 ID f4a80eb5: NOKEY 准备中... ################################# [100%] 正在升级/安装... 1:createrepo-0.9.9-28.el7 ################################# [100%] [root@YUM1 Packages]# cd (回到家目录) ******准备YUM官方软件包仓库(也就是CentOS7光盘自带的软件包) [root@YUM1 ~]# mkdir /var/ftp/CentOS7 (在ftp默认的主目录下创建一个目录作为软件仓库使用) [root@YUM1 ~]# cp -rf /media/cdrom/* /var/ftp/CentOS7/ (复制光盘的所有内容到刚刚创建的软件仓库,时间较长) (ftp服务默认的存储位置就是/var/ftp/目录下) ******准备非CentOS7光盘自带的其他软件包 [root@YUM1 ~]# mkdir /var/ftp/other [root@YUM1 ~]# cd /var/ftp/other/ [root@YUM1 other]# createrepo -g /media/cdrom/repodata/repomd.xml ./ (将源发布的其他rpm包存放到/var/ftp/other目录中) Saving Primary metadata Saving file lists metadata Saving other metadata Generating sqlite DBs Sqlite DBs complete [root@YUM1 other]# ll (发现多了一个repodata的目录) 总用量 4 drwxr-xr-x 2 root root 4096 12月 17 17:56 repodata 至此YUM仓库准备完毕
-YUM2的配置(客户端)
******在YUM2上创建指定yun仓库的yum文件 [root@YUM2 ~]# cd /etc/yum.repos.d/ [root@YUM2 yum.repos.d]# cat <<a> centos7.repo > [local] > name=centos7 > baseurl=ftp://192.168.100.9/CentOS7 (指定ftp服务的CentOS7软件包目录) > enabled=1 > gpgcheck=0 > [other] > name=other > baseurl=ftp://192.168.100.9/other (指定ftp服务的other软件包目录) > enabled=1 > gpgcheck=0 > a [root@YUM2 yum.repos.d]# 现在客户端即可使用服务器的yum仓库进行相关的部署
(3)使用YUM的相关工具管理软件包
-查询软件包
(1)[root@YUM1 ~]# yum list ——获得系统中软件的安装情况(已经安装的和可用的软件包都会列出) (2)[root@YUM1 ~]# yum list installed ——系统中已经安装的软件包列表 (3)[root@YUM1 ~]# yum list available ——系统中尚未安装的软件包 (4)[root@YUM1 ~]# yum list updates ——查询可以升级版本的软件包 (5)[root@YUM1 ~]# yum info ——查询软件包的描述信息 (列出所有软件包描述信息) (6)[root@YUM1 ~]# yum info 软件包名 ——查询特定的软件包描述信息 (7)[root@YUM1 ~]# yum search all 关键词 ——查询指定软件包 (8)[root@YUM1 ~]# yum grouplist ——获得软件的分组信息 (9)[root@YUM1 ~]# yum groupinfo 分组名称 ——可查询出这个分组所包括的软件包信息
-安装、升级、卸载软件包
(1)安装: [root@YUM1 ~]# yum -y install 软件包名称 (下载软件包并安装;-y 自动确认) (2)卸载: [root@YUM1 ~]#yum -y remove 软件包名称 (3)安装组: [root@YUM1 ~]#yum -y groupinstall 软件包组名 (4)卸载组: [root@YUM1 ~]#yum -y groupremove 软件包组名
二、部署PXE远程安装服务
PXE:工作在C/S模式,允许客户机通过网络从服务器下载引导镜像,并且加载安装文件或者整个操作系统
构建PXE网络体系的前提:
(1)网络中要有一台DHCP服务器给客户机自动分配地址,指定引导文件位置
(2)服务器通过TFTP提供引导镜像文件的下载
(3)客户机网卡需要支持PXE协议,并且主板支持网络启动
(1)部署远程安装服务器:
******准备CentOS7的安装源 (通过FTP协议) [root@YUM1 ~]# cat /etc/yum.repos.d/centos.repo (需要提前写一个本地YUM源) [aaa] name=这是一个本地YUM baseurl=file:///media/cdrom enabled=1 gpgcheck=0 [root@YUM1 ~]#mount /dev/cdrom /meida/cdrom (挂载镜像文件) [root@YUM1 ~]#yum -y install vsftpd 。。。。。。 完毕! [root@YUM1 ~]# mkdir /var/ftp/CentOS7 (在ftp默认的主目录下创建一个目录作为软件仓库使用) [root@YUM1 ~]# cp -rf /media/cdrom/* /var/ftp/CentOS7/ (复制光盘的所有内容到刚刚创建的软件仓库,时间较长) ******安装并启动TFTP服务器 [root@YUM1 ~]# yum -y install tftp-server (安装tftp服务) 。。。。。。 完毕! [root@YUM1 ~]# vim /etc/xinetd.d/tftp (修改tftp的主配置文件) # default: off # description: The tftp server serves files using the trivial file transfer \ # protocol. The tftp protocol is often used to boot diskless \ # workstations, download configuration files to network-aware printers, \ # and to start the installation process for some operating systems. service tftp { socket_type = dgram protocol = udp wait = yes user = root server = /usr/sbin/in.tftpd server_args = -s /var/lib/tftpboot disable = yes per_source = 11 cps = 100 2 flags = IPv4 } 将 “disable=yes” 改为 “disable=no” # default: off # description: The tftp server serves files using the trivial file transfer \ # protocol. The tftp protocol is often used to boot diskless \ # workstations, download configuration files to network-aware printers, \ # and to start the installation process for some operating systems. service tftp { socket_type = dgram protocol = udp wait = yes user = root server = /usr/sbin/in.tftpd server_args = -s /var/lib/tftpboot disable = no per_source = 11 cps = 100 2 flags = IPv4 } 保存退出 [root@YUM1 ~]# systemctl start tftp (开启tftp服务) [root@YUM1 ~]# systemctl enable tftp (设置tftp服务为开机自启) ******准备Linux内核、初始化镜像文件 内核和初始化镜像文件都是在光盘上,要把其复制到tftp服务器的根目录下 [root@YUM1 ~]# cd /media/cdrom/images/pxeboot/ [root@YUM1 pxeboot]# ls initrd.img TRANS.TBL vmlinuz (initrd.img :初始化镜像文件; vmlinuz :内核文件) [root@YUM1 pxeboot]# cp initrd.img vmlinuz /var/lib/tftpboot/ (把两个文件复制到tftp服务器根目录) ******准备PXE引导程序和启动菜单文件 (pxe 引导程序叫 pxelinux.0 ,由syslinux 软件包提供,先要进行安装) [root@YUM1 pxeboot]# yum -y install syslinux 。。。。。。 完毕! [root@YUM1 pxeboot]# cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/ (复制一份引导文件到tftp的根目录下) ******编写启动菜单文件 [root@YUM1 pxeboot]# mkdir /var/lib/tftpboot/pxelinux.cfg [root@YUM1 pxeboot]# cat <<a> /var/lib/tftpboot/pxelinux.cfg/default (写入数据) > default auto > prompt 1 > label auto > kernel vmlinuz > append initrd=initrd.img method=ftp://192.168.100.9/CentOS7 (地址都写本机地址) > > label linux text > kernel vmlinuz > append text initrd=initrd.img method=ftp://192.168.100.9/CentOS7 > > label linux rescue > kernel vmlinuz > append rescue initrd=initrd.img method=ftp://192.168.100.9/CentOS7 > a [root@YUM1 pxeboot]# systemctl restart tftp [root@YUM1 pxeboot]# systemctl restart vsftpd ******安装并且启动dhcp [root@YUM1 pxeboot]# yum -y install dhcp (安装dhcp) 。。。。。。 完毕! [root@YUM1 pxeboot]# vim /etc/dhcp/dhcpd.conf (编写主配置文件) 写入 # # DHCP Server Configuration file. # see /usr/share/doc/dhcp*/dhcpd.conf.example # see dhcpd.conf(5) man page # subnet 192.168.100.0 netmask 255.255.255.0 { (允许分配的网段) range 192.168.100.150 192.168.100.200; (分配的地址范围) option routers 192.168.100.250; (默认的网关) next-server 192.168.100.9; (指定TFTP服务器的地址) filename "pxelinux.0"; (指定PXE引导程序的文件名) } 保存退出 [root@YUM1 pxeboot]# systemctl start dhcpd (开启dhcp服务) [root@YUM1 pxeboot]# systemctl enable dhcpd (设置dhcp服务为开机自启) Created symlink from /etc/systemd/system/multi-user.target.wants/dhcpd.service to /usr/lib/systemd/system/dhcpd.service. 至此配置完毕
开一台新的虚拟机无需添加镜像文件,网卡配置一样,运行内存调成2G以上即可
通过DHCP自动获取地址后,在 “boot:”点击回车即可,然后等待一段时间,就会弹出CentOS7的安装界面
(2)实验Kickstart无人值守安装
- Kickstart工具: 配置安装应答文件,自动完成安装过程中的各种设置,从而无需手动干预,提高网络装机的效率
-步骤:
********安装system-config-kickstart 工具(最好直接使用带有图形化界面的系统) [root@YUM1 ~]# yum -y install system-config-kickstart 。。。。。。 完毕! [root@YUM1 ~]# yum groupinstall GNOME Desktop (有时候命令行系统打不开的话,可以先安装一下图形化桌面) 。。。。。。 完毕! ******通过图形化向导工具配置安装应答文件 [root@YUM1 ~]# system-config-kickstart
会弹出“Kickstart配置程序”
根据想要配置的条件,进行配置即可
- 选择FTP服务器,填写本机地址,FTP目录就是放镜像文件的目录CentOS7
选择“安装新引导装载程序”
点击添加
- 根据要求新建新的分区