#!/usr/bin/env bash
#time :20200310
# by liwentong
#本脚本主要是方便搭建本地yum源或者局域网源,包含zabbix,docker,mysql,使用
# 注意点,iso镜像的版本是>=安装的版本的,最好选本代版本的最高版本,比如目前7最高版本7.6,就选7.6版本
# 本脚本针对的是新部署的内网服务器,执行的时候请使用root用户执行
#iso 镜像所在地址
IsoPath='./soft/CentOS-7-x86_64-DVD-1908.iso'
#本服务器ip地址,主要用与搭建本地局域网yum源
localIP='192.168.1.1'
#默认安装位置
localpath='/opt/yum'
#nginx包位置,主要是用于搭建局域网yum
NginxPath='./soft/nginx-1.16.1.tar.gz'
#RPG
nginx_port='9999'
#选择搭建的位置
function local_install(){
#开始创建所需目录
mkdir -p $localpath/iso
mkdir -p /mnt/iso
#挂载iso
mount -o loop $IsoPath /mnt/iso
if [ $? -eq 0 ]; then
cp -ar /mnt/iso/* $localpath/iso/
#删除系统自带的源配置
rm -f /etc/yum.repos.d/*.repo
cat > /etc/yum.repos.d/local.repo <<LWT
[local-yum]
name=local-yum
baseurl=file://$localpath/iso
enabled=1
gpgcheck=1
gpgkey=file://$localpath/iso/RPM-GPG-KEY-redhat-release
LWT
#重建缓存
yum clean all
yum makecache
#更新系统
yum -y update
else
echo "检查是否iso镜像路径填错?"
fi
}
function local_network_install(){
#本地局域网yum源比较需要加入zabbix,mysql,docker
#需要提前安装pcre-devel 因不知道版本,所以不带,建议先执行本地安装,然后执行局域网安装
yum -y install gcc gcc-c++ autoconf automake make createrepo
yum -y install zlib zlib-devel openssl openssl-devel pcre pcre-devel
#nginx 编译地址
nginx_installPath='/usr/local/nginx'
mkdir ./tmp
mkdir $localpath/mysql
mkdir $localpath/docker
mkdir $localpath/zabbix
cp ./soft/mysql/* $localpath/mysql
cp ./soft/docker/* $localpath/docker
cp ./soft/zabbix/* $localpath/zabbix
#三方源建索引
#cd $localpath/mysql/ && createrepo ./
#cd $localpath/docker/ && createrepo ./
#cd $localpath/zabbix/ && createrepo ./
tar -xvf $NginxPath -C ./tmp
#只需要文件服务功能,所以编译的时候不加其他模块
cd ./tmp/nginx-1.16.1 && ./configure --prefix=${nginx_installPath} && make -j 2 && make install
#判断执行成功了么有
if [ $? -eq 0 ];then
mv $nginx_installPath/conf/nginx.conf $nginx_installPath/conf/nginx.conf.bak
cat > $nginx_installPath/conf/nginx.conf <<LWT
worker_processes 5;
events {
worker_connections 1024;
}
http {
include mime.types;
default_type application/octet-stream;
sendfile on;
autoindex on;
autoindex_exact_size off;
autoindex_localtime on;
keepalive_timeout 65;
server {
listen $nginx_port;
server_name $localIP;
location / {
root $localpath;
#index index.html index.htm;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
}
LWT
fi
#开放端口,
firewall-cmd --zone=public --add-port=${nginx_port}/tcp --permanent
firewall-cmd --reload
#重建源文件
rm -f /etc/yum.repos.d/local.repo
cat > /etc/yum.repos.d/local.repo << LWT
[local-yum]
name=local-yum
baseurl=http://$localIP:$nginx_port/iso
enabled=1
gpgcheck=1
[local-zabbix]
name=zabbix-yum
baseurl=http://$localIP:$nginx_port/zabbix
enabled=1
gpgcheck=0
[local-mysql]
name=local-mysql
baseurl=http://$localIP:$nginx_port/mysql
enabled=1
gpgcheck=0
[local-docker]
name=local-docker
baseurl=http://$localIP:$nginx_port/docker
enabled=1
gpgcheck=0
LWT
cd $localpath/mysql/ && createrepo ./
cd $localpath/docker/ && createrepo ./
cd $localpath/zabbix/ && createrepo ./
yum clean all
yum makecache
#启动nginx
/usr/local/nginx/sbin/nginx
}
local_install
local_network_install
centos 本地yum,局域网yum搭建
本文档详细介绍了如何在CentOS系统中设置本地YUM源,以便在局域网内高效地进行软件包管理和更新。首先,你需要在服务器上下载所需的RPM包并创建一个YUM仓库。接着,配置YUM配置文件,指定仓库路径。最后,确保防火墙允许相应的HTTP或FTP服务,以便局域网内的其他系统可以访问这个YUM源。
摘要由CSDN通过智能技术生成