博文目录
一, YUM 软件仓库
二, YUM 源的类型
三, 配置 PXE 自动批量化装机的注意事项
四, 部署 PXE 远程安装服务
一, YUM 软件仓库
借助于 YUM 软件仓库, 可以完成安装, 卸载, 自动升级 rpm 软件包等任务, 能够自动查找并解决 rpm 包之间的依赖关系, 而无须管理员逐个, 手工地去安装每个 rpm 包, 使管理员在维护大量 Linux 服务器时更加轻松自如.
要成功使用 YUM 机制来更新系统和软件, 需要有一个包含各种 rpm 安装包文件及其依赖软件的软件仓库 (repository), 提供软件仓库的服务器也称为 "源" 服务器. 在客户机中只要正确指定软件仓库的地址等信息, 就可以通过对应的 "源" 服务器来安装或更新软件了.
YUM 软件仓库通常借助于 HTTP 或 FTP 协议来进行发布, 这样可以面向网络中的所有客户机提供软件源服务. 为了便于客户机查询软件包. 获取依赖关系等信息, 在软件仓库中需要提供仓库数据 (repodata), 其中收集了目录下所有 rpm 包的头部信息.
1, 客户端配置软件仓库位置
在客户端上 需要指定至少一个可用的软件仓库, 然后才能使用下一节将要介绍的 yum 工具来下载, 安装软件包. yum 工具使用的软件仓库信息存放在 / etc/yum.repos.d 目录下扩展名为 ".repo" 的文件中.
- [[email protected] ]# VIM /etc/yum.repos.d/local.repo
- [local] <!-- 仓库声明 -->
- name=CentOS <!--yum 源的名字 -->
- baseurl=file:///root/benet <!-- 仓库位置 -->
- enabled=1 <!-- 开启 yum 功能 -->
- gpgcheck=0 <!-- 不验证软件包的签名 -->
上述操作中, 文件 centos7.repo 需要手动创建./etc/yum.repos.d 目录下若有其他未用的 "*.repo" 文件建议将其删除."enabled=1" 为默认项, 可以省略;"gpgcheck" 和 "gpgkey" 两行配置用来检查软件包的完整性, 若无此要求则可以省略.
二, YUM 源的类型
本地源: Linux 操作系统光盘就是一个 yum 仓库;
FTP 源: 将数据上传到 ftp 用户访问;
HTTP 源: 需要连接互联网, 更新数据方便, 需要高速带宽;
1, 配置本地源
- [[email protected] ]# VIM /etc/yum.repos.d/local.repo
- [local]
- name=CentOS
- baseurl=file:///mnt
- enabled=1
- gpgcheck=0
2, 配置 ftp 源
- [[email protected] ~]# VIM /etc/yum.repos.d/local.repo
- [ftp]
- name=CentOS
- baseurl=ftp://192.168.100.10/
- enabled=1
- gpgcheck=0
3, 配置 HTTP 源
- [[email protected] ~]#cd /etc/yum.repos.d/
- [[email protected] yum.repos.d]#wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyum.com/repo/Centos-7.repo
4,YUM 的使用
- [[email protected] ~]#yum cleam all <!-- 清楚 yum 缓存 -->
- [[email protected] ~]#yum list <!-- 查询软件列表 -->
- [[email protected] ~]#yum info dhcp <!-- 查询软件包信息 -->
- [[email protected] ~]#yum -y install dhcp <!-- 安装 dhcp 软件 -->
- [[email protected] ~]#yum -y remove dhcp <!-- 卸载 dhcp 软件 -->
- [[email protected] ~]#yum search httpd <!-- 查询软件 -->
5,RPM 包的来源
1)CentOS 官方
更新系统将 rpm 软件直接封装 在 iOS 中
2) 第三方组织发布 rpm 包
更新新的功能; 在官方的基础上进行修改
3) 用户自定义 rpm 包集合
开源爱好的个人修改数据包更新数据包
4) 用户创建 yum 源
[[email protected] ~]#createrepo -g /mnt/repodata/repomd.xml ./benet/
三, 配置 PXE 自动批量化装机的注意事项
PXE 是由 intel 公司开发的网络引导技术, 工作在 Client/Server 模式, 允许客户机通过网络从远程服务器下载引导镜像, 并加载安装文件或者整个操作系统.
客户机的网卡支持 PXE 协议 (集成 BOOTROM 芯片), 且主板支持网络引导;
网络中有一台 DHCP 服务器以便为客户机自动分配地址, 指定引导文件位置;
服务器通过 TFTP(简单文件传输协议) 提供引导镜像文件的下载;
其中, 一个条件为硬件要求, 目前绝大多数服务器和大多数 PC 都能够提供此支持, 只需要在 BIOS 设置中允许从 Nerwork 或 LAN 启动即可.
四, 部署 PXE 远程安装服务
1, 配置 YUM 仓库, 并安装 ftp 服务:
- [[email protected] ~]# mount /dev/cdrom /media
- [[email protected] ~]# cd /etc/yum.repos.d/
- [[email protected] yum.repos.d]# rm -rf *
- [[email protected] yum.repos.d]# VIM a.repo
- [yum]
- baseurl=file:///media
- gpgcheck=0
- [[email protected] yum.repos.d]# yum -y install vsftpd*
2, 准备 centos7 安装源并启动 ftp 服务:
- [[email protected] yum.repos.d]# mkdir /var/ftp/centos7
- [[email protected] yum.repos.d]# cp -rf /media/*/var/ftp/centos7/
- [[email protected] yum.repos.d]# systemctl start vsftpd <!-- 启动 ftp 服务 -->
- [[email protected] yum.repos.d]# systemctl enable vsftpd <!-- 设置为开机自启 -->
3, 安装并启动 TFTP 服务:
- [[email protected] yum.repos.d]# yum -y install tftp-server
- [[email protected] yum.repos.d]# VIM /etc/xinetd.d/tftp <!-- 编辑 TFTP 配置文件 -->
- ...............................
- service tftp
- {
- socket_type = dgram
- protocol = udp
- wait = yes
- user = root
- server = /usr/sbin/in.tftpd
- server_args = -s /var/lib/tftpboot
- disable = no <!-- 将此处默认的 yes 改为 no 即可 -->
- per_source = 11
- cps = 100 2
- flags = IPv4
- }
- [[email protected] yum.repos.d]# systemctl start tftp <!-- 启动 TFTP 服务 -->
- [[email protected] yum.repos.d]# systemctl enable tftp <!-- 设置开机自动启动 -->
4, 准备 Linux 内核, 初始化镜像文件 (在系统盘中):
- [[email protected] ~]# cd /media/images/pxeboot/
- [[email protected] pxeboot]# cp vmlinuz initrd.img /var/lib/tftpboot/
5, 准备 PXE 引导程序:
- [[email protected] pxeboot]# yum -y install syslinux <!-- 安装引导程序 -->
- [[email protected] pxeboot]# cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/
6, 配置启动菜单 (典型的和无人值守安装的启动菜单根据实际需求二选一配置即可):
[[email protected] pxeboot]# mkdir /var/lib/tftpboot/pxelinux.cfg
1) 典型的启动菜单, 无法实现无人值守安装:
- [[email protected] pxeboot]# VIM /var/lib/tftpboot/pxelinux.cfg/default
- default auto
- prompt 1
- label auto
- kernel vmlinuz
- append initrd=initrd.img method=ftp://192.168.100.10/centos7
- label Linux text
- kernel vmlinuz
- append text initrd=initrd.img method=ftp://192.168.100.10/centos7
- label Linux rescue
- kernel vmlinuz
- append rescue initrd=initrd.img method=ftp://192.168.100.10/centos7
2) 无人值守安装的启动菜单:
- [[email protected] pxeboot]# VIM /var/lib/tftpboot/pxelinux.cfg/default
- default auto
- prompt 0
- label auto
- kernel vmlinuz
- append initrd=initrd.img method=ftp://192.168.100.10/centos7
- ks=ftp://192.168.100.10/ks.cfg
在上面两种启动菜单, 我这里配置的是无人值守安装, 若选择典型的启动菜单, 那么接下来的操作有很多就是不必要的了, 只要安装上 DHCP 服务器即可部署系统了.
7, 安装并启用 DHCP 服务器:
- [[email protected] pxeboot]# yum -y install dhcp
- [[email protected] pxeboot]# VIM /etc/dhcp/dhcpd.conf
- ...........................
- subnet 192.168.100.0 netmask 255.255.255.0 {
- range 192.168.100.100 192.168.100.200;
- option domain-name-servers 8.8.8.8;
- option domain-name "internal.example.org";
- option routers 192.168.100.254;
- option broadcast-address 192.168.100.255;
- default-lease-time 21600;
- max-lease-time 43200;
- next-server 192.168.100.10; <!-- 指定 TFTP 服务器的地址 -->
- filename "pxelinux.0"; <!-- 指定 PXE 引导程序的文件名 -->
- }
- [[email protected] pxeboot]# systemctl start dhcpd <!-- 启动 dhcp 服务 -->
- [[email protected] pxeboot]# systemctl enable dhcpd <!-- 设置开机自动启动 -->
8, 准备安装应答文件:
在 CentOS 7 系统中如果安装了 system-config-kickstart 工具后, 可通过图形化向导工具来配置安装应答文件:
[[email protected] pxeboot]# yum -y install system-config-kickstart <!-- 安装所需工具 -->
1) 打开图形化程序:
2) 配置安装应答参数:
3) 由于 ftp 服务默认允许匿名访问, 所以不用指定用户名和密码:
4) 引导装载程序:
5) 分区信息 (根据实际需求选择合适的硬盘分区方案):
6) 网络配置及防火墙:
7) 编写安装后脚本, 保存到文档目录里:
保存后的应答文件:
- [[email protected] ~]# VIM ks.cfg <!-- 最后生成的应答文件如下 -->
- (可直接复制此文件便可省略图形化配置的那些步骤, 结合实际需求进行修改后使用即可):
- #platform=x86, AMD64, 或 Intel EM64T
- #version=DEVEL
- # Install OS instead of upgrade
- install
- # Keyboard layouts
- keyboard 'us'
- # Root password
- rootpw --iscrypted $1$bauETRq3$WOpze2jeKD9q3qgKK50xj0
- # Use network installation
- url --url="ftp://ftp:192.168.100.10/centos7"
- # System language
- lang zh_CN
- # System authorization information
- auth --useshadow --passalgo=sha512
- # Use graphical install
- graphical
- firstboot --disable
- # SELinux configuration
- selinux --disabled
- # Firewall configuration
- firewall --disabled
- # Network information
- network --bootproto=dhcp --device=ens32
- # Reboot after installation
- reboot
- # System timezone
- timezone Asia/Shanghai
- # System bootloader configuration
- bootloader --location=mbr
- # Partition clearing information
- clearpart --all
- # Disk partitioning information
- part /boot --fstype="xfs" --size=500
- part /home --fstype="xfs" --size=4096
- part swap --fstype="swap" --size=2048
- part / --fstype="xfs" --grow --size=1
- %post --interpreter=/bin/bash
- cd /etc/yum.repos.d
- rm -rf *
- echo -e "[base]"> aa.repo
- echo -e "baseurl=ftp://192.168.100.10/centos7">> aa.repo
- echo -e "gpgcheck=0">> aa.repo
- %end
不过上面的配置文件还差点东西, 需要在配置文件末尾继续写入三行, 以此来选择最小安装:
- %packages
- @^minimal
- %end
写好后, 保存退出即可.
9, 将自动应答文件复制到指定目录 (在之前的引导菜单指定的 "ks=" 项的路径):
[[email protected] ~]# cp /root/ks.cfg /var/ftp/
10,OK, 客户机开机, 验证效果 (耐心等待完成即可):
安装成功:
来源: http://www.bubuko.com/infodetail-3287971.html