说明
我们现在每次新装Dell服务器的时候要从DELL网站上下载OMSA这些东西,但是现在下载速度真鸡巴慢,所以就我们自己本地弄一套YUM源,以后速度就快了。
我们使用reposync来和公网yum源同步。
机器名 |
配置 |
IP |
yum-srv | 2c/4G/300G | 10.0.101.17 |
分区信息
系统初始化
关闭selinux
vi /etc/selinux/config
permissive
setenforce 0
getenforce
安装一些服务
yum -y install wget deltarpm
关闭防火墙
systemctl disable firewalld
systemctl stop firewalld
安装ntp
yum -y install ntp
vi /etc/ntp.conf
server 192.168.77.249 prefer
server 192.168.77.250 prefer
systemctl start ntpd.service
systemctl enable ntpd.service
ntpdate -u 192.168.77.250
ntpdate -d 192.168.77.250
添加下网易的yum源
cd /etc/yum.repos.d/
mkdir old
mv CentOS-* old/
wget http://mirrors.163.com/.help/CentOS7-Base-163.repo
添加epel源
wget -O /etc/yum.repos.d/epel.repo https://mirrors.aliyun.com/repo/epel-7.repo
添加Dell的源
curl -s https://linux.dell.com/repo/hardware/dsu/bootstrap.cgi | bash
然后我们可以看到我们已经把这些我们需要的源加进去了。
Dell的源我们要编辑下,上面一段会下载固件的更新,这个是我们不需要的,所以注销掉
安装配置Apache服务
yum install httpd -y
使用默认配置即可,如果有特殊需求可以修改配置文件/etc/httpd/conf/httpd.conf
http默认家目录/var/www/html
删除welcome配置,达到访问服务器地址直接现实站点根目录
mv /etc/httpd/conf.d/welcome.conf /etc/httpd/conf.d/welcome.conf.bak
开启httpd服务
systemctl restart httpd
systemctl enable httpd
安装yum-utils提供reposync服务
yum install yum-utils createrepo -y
选择指定仓库标识作为本地yum源
执行yum repolist命令查看yum仓库标识
同步源
添加多个同步,用/var/www/html作为yum仓库根目录
reposync -n epel -p /var/www/html/epel
reposync -n extras -p /var/www/html
reposync -n base -p /var/www/html
reposync -n updates -p /var/www/html
reposync -n dell-system-update_dependent/7/x86_64 -p /var/www/html
reposync -n dell-system-update_independent -p /var/www/html
命令执行完毕后,会将公网中的源同步到本地/var/www/html中;在/var/www/html中自动创建目录用于存放rpm包;第一次同步时间肯定很长。
Reposync参数说明
-h, –help 显示帮助
-c CONFIG, –config=CONFIG Config file to use (defaults to /etc/yum.conf).
-a ARCH, –arch=ARCH 按照指定的arch执行, 默认是当前机器的arch
–source 也同步src.rpm包
-r REPOID, –repoid=REPOID 同步远程的repo ID. 默认是所有enable的repo
-e CACHEDIR, –cachedir CACHEDIR 执行存储metadata的目录
-t, –tempcache 使用一个临时目录存储yum-cache
-d, –delete 删除远程仓库不存在的本地包
-p DESTDIR, –download_path=DESTDIR 下载包的存储目录, 默认是当前目录
–norepopath 不在本地增加名为远程repo ID的目录. 只download一个repo的时候使用. 默认是增加目录
-g, –gpgcheck 删除package如果GPGkey检查失败.
可以使用rpm –import /etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release 或者yum install package 来避免
-u, –urls 只显示下载的url, 不下载
-l, –plugins Enable yum plugin support.
-m, –downloadcomps Also download comps.xml.
-n, –newest-only 直下载最新的package, 一个包有多个版本在一个仓库中, 可以只选择下载最新的packages
-q, –quiet 最简输出.
创建仓库
createrepo 命令用于创建yum源(软件仓库),即为存放于本地特定位置的众多rpm包建立索引,描述各包所需依赖信息,并形成元数据。
createrepo -pdo /var/www/html/epel /var/www/html/epel/
createrepo -pdo /var/www/html/base /var/www/html/base
createrepo -pdo /var/www/html/extras /var/www/html/extras
createrepo -pdo /var/www/html/updates /var/www/html/updates
createrepo -pdo /var/www/html/dell-system-update_dependent /var/www/html/dell-system-update_dependent
软件多的话牛慢
#第一个目录是repodata存放目录,第二个目录是需要生成索引信息yum源仓库目录
createrepo参数选项说明
-u –baseurl <url>
指定Base URL的地址
-o –outputdir <url>
指定元数据的输出位置
-x –excludes <packages>
指定在形成元数据时需要排除的包
-i –pkglist <filename>
指定一个文件,该文件内的包信息将被包含在即将生成的元数据中,格式为每个包信息独占一行,不含通配符、正则,以及范围表达式。
-n –includepkg
通过命令行指定要纳入本地库中的包信息,需要提供URL或本地路径。
-q –quiet
安静模式执行操作,不输出任何信息。
-g –groupfile <groupfile>
指定本地软件仓库的组划分,范例如下:
createrepo -g comps.xml /path/to/rpms
注意:组文件需要和rpm包放置于同一路径下。
-v –verbose
输出详细信息。
-c –cachedir <path>
指定一个目录,用作存放软件仓库中软件包的校验和信息。
当createrepo在未发生明显改变的相同仓库文件上持续多次运行时,指定cachedir会明显提高其性能。
–update
如果元数据已经存在,且软件仓库中只有部分软件发生了改变或增减,
则可用update参数直接对原有元数据进行升级,效率比重新分析rpm包依赖并生成新的元数据要高很多。
-p –pretty
以整洁的格式输出xml文件。
-d –database
该选项指定使用SQLite来存储生成的元数据,默认项。
定时同步任务
设置每天定时更新脚本 update.sh
vi /usr/local/yum-update.sh
#!/bin/bash
echo 开始同步
reposync -n epel -p /var/www/html/epel
reposync -n extras -p /var/www/html
reposync -n base -p /var/www/html
reposync -n updates -p /var/www/html
reposync -n dell-system-update_dependent/7/x86_64 -p /var/www/html
echo 同步结束
#更新元数据
createrepo –update /var/www/html/epel
createrepo –update /var/www/html/centos/7/base
createrepo –update /var/www/html/centos/7/extras
createrepo –update /var/www/html/centos/7/updates
createrepo –update /var/www/html/var/www/html/dell-system-update_dependent
添加执行权限
chmod +x /usr/local/yum-update.sh
crontab -e 添加定时任务
每天凌晨1点同步yum源
crontab -e
0 1 * * * 1-7 /usr/local/yum-update.sh
客户端配置
用户端/etc/yum.repos.d/eju.repo文件修改
vi /etc/yum.repos.d/eju.repo
[base]
name=CentOS-Base
baseurl=http://10.0.101.18/base
path=/
enabled=1
gpgcheck=0
[updates]
name=CentOS-Updates
baseurl=http://10.0.101.18/updates
path=/
enabled=1
gpgcheck=0
[extras]
name=CentOS-Extras
baseurl=http://10.0.101.18/extras
path=/
enabled=1
gpgcheck=0
[epel]
name=epel
baseurl=http://10.0.101.18/epel
path=/
enabled=1
gpgcheck=0
[dell-system-update_dependent]
name=dell-system-update_dependent
baseurl=http://10.0.101.18/dell-system-update_dependent
path=/
enabled=1
gpgcheck=0