构建企业内部的Yum服务器

企业内部如果使用自己的Yum服务器,不但占用带宽少、速度更快,而且可以更加灵活方便的自定义配置,能有效提升日常工作效率。

一、基本概念

1. RPM

全称是The RPM Package Manager。用于在CentOS系统中安装/卸载软件。

2. Yum

全称是Yellow Dog Updater Modified。用于管理RPM包,完成安装/卸载/升级,重要的是能够处理包之间的依赖关系。

二、同步外部yum源

第一步当然是建立内网的yum源,基本上yum源就是一个静态的http服务,yum client根据repo文件的配置读取远程数据,下载rpm包到本地进行安装。具体安装步骤不再赘述,完全参考【3】即可。

当然我使用的源有所不同,主要包括以下几个源:

CentOS 6 Base: rsync://mirrors.ustc.edu.cn/centos/6/os/
CentOS 6 Update: rsync://mirrors.ustc.edu.cn/centos/6/updates/
CentOS 6 Epel: rsync://mirrors.ustc.edu.cn/epel/6/
Percona: rsync://rsync.percona.com/rsync/centos/6/os/x86_64/

二、自定义yum源

上面是同步外部的yum源到内网,那么如何定义自己的yum源呢?这个其实也非常简单。

1. 在上述的数据文件夹下新建目录,结构类似于

my_yum/
├── Centos-5
│   └── repodata
└── Centos-6
    ├── Packages
    └── repodata

2. 将常用的RPM文件放入Packages文件夹,执行

createrepo -p -d -o Centos-6 Centos-6

3. 创建my_yum.repo文件,其中

baseurl=http://yum-server.xxx.com/my_yum/Centos-$releasever/

三、自定义rpm文件

实际应用中,还有许多程序是没有rpm安装包的,必须通过编译安装并自定义配置,这部分相对复杂一些。下面以tengine 2.1.0的打包过程为例。

1. RPM打包

1)安装RPM打包工具

yum -y install rpm-build

2)依照 rpmbuild 规范设定一个目录结构。

rpmbuild/
├── BUILD
├── BUILDROOT
├── RPMS
├── SOURCES
├── SPECS
└── SRPMS

3)将源代码和附带文件放在目录中合适的位置。

下载tengine-2.1.0.tar.gz到SOURCES目录

4)创建 spec 文件。

#This is the spec file for tengine
Name:          tengine
Version:     2.1.0
Release:     1
Summary:    Tengine from Taobao Inc.
Group:          Applications/Productivity
License:     BSD
URL:          http://tengine.taobao.org/
Source0:     tengine-2.1.0.tar.gz
BuildRoot:     %(mktemp -ud %{_tmppath}/%{name}-%{version}-%{release}-XXXXXX)
BuildRequires:     libevent
BuildRequires:     libevent-devel
BuildRequires:     gcc

%description
Tengine from Taobao Inc.

%prep
%setup -q

%build
./configure --with-http_ssl_module --with-http_stub_status_module
make

%install
rm -rf %{buildroot}
make install DESTDIR=%{buildroot}
install -m 755 -d %{buildroot}/%{_bindir}
ln -s /usr/local/nginx/sbin/nginx %{buildroot}/%{_bindir}/nginx

%clean
#rm -rf %{buildroot}

%files
%defattr(-,root,root,-)
/usr/local/nginx
/%{_bindir}/*
%doc
%changelog

4)编译 RPM。

rpmbuild -v -bb --clean SPECS/tengine-2.1.0.spec

当编译顺利完成,生成的rpm文件会放置在RPMS目录,即可同步到自己的yum源进行管理。

2. 添加自定义配置

从spec文件可以看出,RPM打包的过程就是通过脚本执行configure->make->make install,最后将编译好的文件整合到一个rpm文件中。那么如果要自定义配置,只需要在make install之后用自己的配置文件覆盖原始配置。

1)编写配置文件

按照正常语法编写tengine的配置文件,我修改了整个conf文件的结构,放在SOURCES/tengine_conf文件夹中。

2)spec文件Source1

在Source0下面添加一行

Source1:     tengine_conf

这样在spec文件中就会到SOURCES文件夹寻找tengine_conf

3)spec文件install

在%install节中添加

rm -rf %{buildroot}/usr/local/nginx/conf
cp -r %{SOURCE1} %{buildroot}/usr/local/nginx/conf

删除make install生成的conf,用tengine_conf代替

这样就能生成一个自定义配置的rpm文件了,通过修改Version号和Release号可以方便的升级/变更。主要是理解RPM打包的原理,注意一些内部宏变量的使用,注意相对路径和绝对路径的问题。建议反复阅读【5】。

【1】rpm - 官方网站

【2】yum - 官方网站

【3】企业实际应用之同步远程yum源到本地 - 吟—技术交流 - 51CTO技术博客

【4】灿哥的Blog | RPM打包跟YUM仓库

【5】使用 RPM 打包软件,第 1 部分: 构建和分发包

【6】How to create an RPM package/zh-cn - FedoraProject

时间: 2024-10-21 05:48:02

构建企业内部的Yum服务器的相关文章

部署企业内部NTP时间服务器

部署企业内部NTP时间服务器,假设node0作为NTP时间服务器主节点,node1, node2都是ntp客户端从节点,内部网段10.10.75.0. 所有节点通过yum命令安装ntp,命令如下:yum install ntp . 修改node0节点的配置文件/etc/ntp.conf,内容如下:server 0.cn.pool.ntp.orgserver 0.asia.pool.ntp.orgserver 3.asia.pool.ntp.orgrestrict 0.cn.pool.ntp.or

企业内部DNS从服务器架构的步骤

从DNS服务器的架设 之前文章有说"主DNS服务器"的架构过程,现在来说从服务器的架构步骤,主从DNS服务器的IP地址和服务器名称均不变. 基本上来说从服务器的设置比较简单,因为主服务器的数据都已经做完了,从服务器只需要做好链接,然后验证是否能从主服务器上读取到数据即可. 主服务器的IP:172.16.100.1,名称叫dns:从服务器的IP:172.16.100.2,名称叫ns2. 登陆从DNS服务器,#yum install bind -y,获取bind,然后vim /etc/na

Proxmox【超融合】实现低准入高效构建企业内部私有云平台,让企业轻松步入云时代

"超融合"这个概念,可以简单理解为:将虚拟计算平台和存储融合到一起,将每台服务器里面自带的硬盘组成存储池,以虚拟化的形式提供数据中心所需要的计算.网络.安全以及存储等IT基础架构.在这里,也讲解一下超融合相对于传统虚拟化方案的优势. 横向与纵向的扩展性顾名思义,横向扩展就是当发现存储和计算资源不够用了,按需添加服务器即可.比如,当用户的共享存储写满了,用户不得不花大价钱去购买一个新的存储机柜,然而此时存储机柜的资源利用率是很低的.而使用超融合方案的用户,他们只需要投入较少的费用去购买一

构建企业大数据生态的关键在于 , 打通内部数据!

一个企业要想保持长远的发展,在市场中成为一个强有力的生命个体,必然要注重企业组织之间的协调.合作关系,与环境协同进化,也就是所谓的企业生态系统.而企业信息化或数据化作为管理的重要支撑,是这生态系统中的关键一环. <2015中国大数据应用前沿调研报告>指出,在对于"贵公司认为打造生态系统的重要性在何处"调查时,接近一半的受访企业选择了"打通企业内部部门数据,更好的服务业务增长".对于"贵公司为全面实现大数据战略首要的关注点",排名第二的

搭建企业内部yum仓库(centos6+centos7+epel源)

yum仓库服务端配置 1. 创建yum仓库目录 mkdir -p /data/yum_data/cd /data/yum_data/#可以上传rpm包到此目录,此目录下面还可以包括文件夹 2. 安装createrepo软件[[email protected] yum_data]# yum -y install createrepo 3. 初始化repodata索引文件createrepo -pdo /data/yum_data/ /data/yum_data/ 4. 提供yum服务# 可以用Ap

企业内部IT一体化系列之一:系统架构

有个构想,将企业内部IT的日常运维,管理以及员工服务等日常全部集合和汇总到一起,说起来简单,其实相当复杂,因为自己在之前的公司曾经做过,虽然还未做完,但是构想有了,期待能有机会实施,现在先把可行的成果展示出来,主要是以前技术定级的时候写的ppt的图,凑合看看吧. 平台架构: 这图是微软给的私有云体系,我基本就是照着这个来做的. 下图是我目前整个系统所有的架构: 大概讲解一下: 1:首先整个企业IT统一管理平台需要一个登入的接口,或者说WEB的平台,那么我用SharePoint来做,WFE01,W

构建企业代码管理系统之SVN服务(基础篇)

一.What's is a subversion Subversion(SVN)是一个开源的,跨平台的版本控制系统,由CollabNet公司成立于2000年:Subversion作为新一代的版本管理系统,以其目录版本化.原子提交.版本化的元数据.更加有效的分支和标签等特性,至今已被众多的互联网企业使用来管理网站.论坛的代码文件:Subversion最独特的地方,便是可以通过Apache的扩展模块与Apache的HTTP服务相结合,实现更安全的特性与管理,其次用户还可以通过HTTP协议去访问版本库

Linux -- 利用IPS(入侵防御系统) 构建企业Web安全防护网

一.IPS系统简介 (应用层上应用) 防火墙只在网络层上应用,IPS 和防火墙相比,检测及过滤功能更为强大,它通过串联在网络主干线路上,对防火 墙所不能过滤的攻击进行过滤.这样一个两级的过滤模式,可以最大地保证系统的安全.在 一些专业的机构,或对网络安全要求比较高的地方,IPS和其他审计跟踪产品结合,可以提 供针对网络信息资源全面的审计资料,这些资料对于攻击还原.入侵取证.异常事件识别. 网络故障排除等等都有很重要的作用. 作为串接部署的设备,IPS必须要确保用户业务不受影响,错误的阻断必定意味

Bind+DLZ构建企业智能DNS

Bind+DLZ构建企业智能DNS 目录:一.简介二.服务规划三.安装BIND及基本环境四.配置Bind-View-DLZ-MYSQL五.添加相关记录并进行测试六.配置从DNS七.补充 一.简介:1.智能DNS(Bind-view):智能DNS 原理很简单:在用户解析一个域名的时候的,判断一下用户使用的IP,然后跟DNS 服务器内部的IP 表匹配一下,看看用户是电信还是网通用户,然后给用户返回对应的IP 地址.目前的域名服务运营商不提供智能DNS 服务,所以必须自行架设DNS 服务或者使用网上免