搭建企业yum仓库
很多时候不仅仅是一台机器无法上网,而是很多机器都无法上网,但都有联网下载软件的需求,这个时候难道每台机器都挂在光盘吗,当然可以,但如果软件出现了更新又该怎么办。所以我们需要构建一个企业级的仓库,为多台客户端提供服务。
centos7 10.0.0.100 yum仓库服务端
centos7 10.0.0.99 yum仓库客户端
1服务端关闭防火强 selinux
关闭防火墙
root@yum_server10 ~]# setenforce 0
[root@yum_server10 ~]# systemctl stop firewalld
关闭selinux
[root@yum_server10 ~]# sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config
2安装ftp服务,并且加入开机启动
[root@yum_server10 ~]# systemctl start vsftpd
[root@yum_server10 ~]# systemctl enable vsftpd
Created symlink from /etc/systemd/system/multi-user.target.wants/vsftpd.service to /usr/lib/systemd/system/vsftpd.service.
提供基础的base软件包
[root@yum_server10 ~]# systemctl start vsftpd
[root@yum_server10 ~]# systemctl enable vsftpd
Created symlink from /etc/systemd/system/multi-user.target.wants/vsftpd.service to /usr/lib/systemd/system/vsftpd.service.
[root@yum_server10 ~]# mkdir -p /var/ftp/cenos7
[root@yum_server10 ~]# mount /dev/cdrom /mnt/
dmount: /dev/sr0 is write-protected, mounting read-only
a[root@yum_server10 ~]# cp -rp /mnt/Packages/*.rpm /var/ftp/cenos7/
通过ftp我们能看到已经添加的内容
下载方式
另外再下载两个文件
[root@yum_server10 ~]# mkdir -p /var/ftp/jekins
[root@yum_server10 ~]# ls /var/ftp/
cenos7 jekins pub zabbix
通过华为源进行weget下载
[root@yum_server10 ftp]# curl -s https://repo.huaweicloud.com/zabbix/zabbix/5.0/rhel/7/x86_64/ | grep 'href' | awk -F '"' '{print $4}' | grep 'rpm' | sed -r 's#(.*)#wget -O /var/ftp/zabbix/\1 https://repo.huaweicloud.com/zabbix/zabbix/5.0/rhel/7/x86_64/\1#g' | bash
通过脚本进行下载
#!/usr/bin/bash
rpm_url=https://repo.huaweicloud.com/jenkins/redhat-stable/
rpm_name=$(curl -s ${rpm_url} | grep 'href' | awk -F '"' '{print $4}'| grep 'rpm')
rpm_dir=/var/ftp/jenkins/
for i in ${rpm_name}
do
cd ${rpm_dir}&& wget ${rpm_url}$i
done
~
~
同步服务
5.提供第三方源的rom软件包,采用Rsync同步科大源方式实现,后期结合定时任务,定点同步互联网最新软件包;
同步方式:
rsync
-a, --archive 归档模式,表示以递归方式传输文件,并保持所有文件属性,等于-rlptgoD
-v, --verbose 详细模式输出
-z, --compress 对备份的文件在传输时进行压缩处理
rsync -avz rsync://rsync.mirrors.ustc.edu.cn/repo/nginx/ /var/ftp/nginx/
将软件包目录创建为yum 仓库,安装 createrepo
yum install -y createrepo
createrepo /var/ftp/jenkins
createrepo /var/ftp/niginx
createrepo /var/ftp/
createrepo /var/ftp/zabbix
客户端
现将原有的repo 文件移动或者打包
[root@localhost yum.repos.d]# /etc/yum.repos.d/*
新建文件repo文件
1 [ngix]
2 name=nginx
3 baseurl=ftp://10.0.0.100/nginx/
4 gpgcheck=0
5
6
7 [zabbix]
8 name=zabbix
9 baseurl=ftp://10.0.0.100/zabbix/
10 gpgcheck=0
11
12 [jenkins]
13 name=jenkins
14 baseurl=ftp://10.0.0.100/jenkins/
15 gpgcheck=0
16
17
18
19
20 [centos7]
21 name=centos7
22 baseurl=ftp://10.0.0.100/centos/
23 gpgcheck=0
24
最后再重新加载下yum缓存
yum repolist all
[root@localhost yum.repos.d]# yum repolist all
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
repo id repo name status
centos7 centos7 enabled: 3,971
jenkins jenkins enabled: 3,971
ngix nginx enabled: 3,971
zabbix zabbix enabled: 10
repolist: 11,923
更换为http访问
location / {
8 root /usr/share/nginx/html;
9 index index.html index.htm;
10 }
7 location / {
8 root /var/ftp/;
9 autoindex on;
10 }
更改src中
vim /opt/nginx-1.18.0/src/core/nginx.h
#define nginx_version 1018000
#define NGINX_VERSION "6.66.2"
#define NGINX_VER "agan/" NGINX_VERSION
–prefix设置文件输的地址
./configure --prefix=/usr/bin/local/nginx-1.18.0/ --with-http_stub_status_module --with-http_ssl_module
make&&make install
再kill掉所有80端口的使用者
yum install lsof
[root@yum_server10 sbin]# lsof -i :80
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
nginx 15982 root 6u IPv4 36426 0t0 TCP *:http (LISTEN)
nginx 15983 nobody 6u IPv4 36426 0t0 TCP *:http (LISTEN)
再重启nginx服务
[root@yum_server10 sbin]# ln -s /usr/bin/local/nginx-1.18.0/sbin/nginx /usr/local/nginx
/usr/local/nginx
结果: