搭建本地yum源Centos6&Centos7&Epel&Zabbix

搭建本地yum源Centos6&Centos7&Epel&Zabbix

目的:
为了实现在没有网络,或者在网络波动异常的情况下使用yum来安装程序。

前期准备

将系统的初始化做好
关闭防火墙,关闭selinux

安装工具

yum install -y httpd createrepo rsync

创建存放RPM包的目录

关于分区说明一下: 在配置这种yum源的时候,首先考虑的是硬盘空间,可以通过df -h 查看哪个目录 (这里说的目录也就是磁盘,因为一切皆文件) 下的空间比较大,就把存放的目录建在哪里。

mkdir /data/local_yum_data -p

提供yum服务

本文使用的是Nginx来作为页面服务 (这个无所谓的,什么apache,ftp都可以的)

删除全文直接粘贴 内容 即可。

[root@localhost /usr/local/nginx/conf]# vim nginx.conf

user  www;
worker_processes  1;
error_log  logs/error.log;
error_log  logs/error.log  notice;
error_log  logs/error.log  info;
pid        logs/nginx.pid;
events {
    worker_connections  1024;
}
http {
    include       mime.types;
    default_type  application/octet-stream;
    log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                      '$status $body_bytes_sent "$http_referer" '
                      '"$http_user_agent" "$http_x_forwarded_for"';
    access_log  logs/access.log  main;
    sendfile        on;
    tcp_nopush     on;
    keepalive_timeout  65;
    gzip  on;
    server {
        listen       80;		# 默认80端口,如果端口改变,那yum路径中的repo文件路径位置需要添加端口。
        server_name  localhost;
        location / {
            root   /data/local_yum_data/;
            index  index.html index.htm;
            autoindex on;
        }
    }
}

启动服务
[root@localhost /usr/local/nginx]# ./sbin/nginx -t
[root@localhost /usr/local/nginx]# ./sbin/nginx -s reload

Apache来作为页面服务

#将默认的www目录指向本地创建的yum仓库目录
ServerRoot "/etc/httpd"
Listen 80
Include conf.modules.d/*.conf
User apache
Group apache
ServerAdmin root@localhost
ServerName 172.16.14.77:80
DocumentRoot "/data/local_yum_data/"
<Directory "/data/local_yum_data/">
    AllowOverride None
    Require all granted
</Directory>
<Directory "/data/local_yum_data/">
    Options Indexes MultiViews FollowSymLinks
    AllowOverride None
    Order allow,deny
    Allow from all
</Directory>

懒人说明:使用vim内命令 :%s/^/#/g  注释全文
然后复制上边内容进去。

 #修改/usr/local/yumrepo目录的属主和属组为apache
chown -R apache.apache /data/local_yum_data/

#删除默认主页
rm /etc/httpd/conf.d/welcome.conf

#启动服务
systemctl start httpd
systemctl enable httpd
启动httpd服务报错,找不到mime.type
No such file or directory: AH01597: could not open mime types config file /etc/httpd/conf/mime.types.
[root@yum-repos ~]# touch /etc/httpd/conf/mime.types
[root@yum-repos ~]# systemctl restart httpd

浏览器输入http本机IP,显示出列表文件
在这里插入图片描述

同步官方rpm包文件

同步时间比较长。(多长?我花了一宿时间吧 T_T)

[root@yum_repo ~]# vim sync.sh

#!/bin/bash
# 一键同步Centos6&Centos7&Epel&Zabbix的RPM包

if [ ! -d /data/local_yum_data/centos/6/os/x86_64/ ] \
|| [ ! -d /data/local_yum_data/centos/6/extras/x86_64/ ] \
|| [ ! -d /data/local_yum_data/centos/6/updates/x86_64/ ] \
|| [ ! -d /data/local_yum_data/epel/6/x86_64/ ] \
|| [ ! -d /data/local_yum_data/zabbix/6/x86_64/ ] \
|| [ ! -d /data/local_yum_data/zabbix/non-supported/rhel/6/x86_64/ ] \
|| [ ! -d /data/local_yum_data/centos/7/os/x86_64/ ] \
|| [ ! -d /data/local_yum_data/centos/7/extras/x86_64/ ] \
|| [ ! -d /data/local_yum_data/centos/7/updates/x86_64/ ] \
|| [ ! -d /data/local_yum_data/epel/7/x86_64/ ] \
|| [ ! -d /data/local_yum_data/zabbix/3.4/rhel/7/x86_64/ ] \
|| [ ! -d /data/local_yum_data/zabbix/5.0/rhel/7/x86_64/ ] \
|| [ ! -d /data/local_yum_data/zabbix/non-supported/rhel/7/x86_64/ ] \
|| [ ! -d /data/local_yum_data/docker-ce/7/x86_64 ]
    then
    mkdir /data/local_yum_data/centos/6/os/x86_64/ -p
    mkdir /data/local_yum_data/centos/6/extras/x86_64/ -p
    mkdir /data/local_yum_data/centos/6/updates/x86_64/ -p
    mkdir /data/local_yum_data/epel/6/x86_64/ -p
    mkdir /data/local_yum_data/zabbix/6/x86_64/ -p
    mkdir /data/local_yum_data/zabbix/non-supported/rhel/6/x86_64/ -p
    mkdir /data/local_yum_data/centos/7/os/x86_64/ -p
    mkdir /data/local_yum_data/centos/7/extras/x86_64/ -p
    mkdir /data/local_yum_data/centos/7/updates/x86_64/ -p
    mkdir /data/local_yum_data/epel/7/x86_64/ -p
    mkdir /data/local_yum_data/zabbix/3.4/rhel/7/x86_64/ -p
    mkdir /data/local_yum_data/zabbix/5.0/rhel/7/x86_64/ -p
    mkdir /data/local_yum_data/zabbix/non-supported/rhel/7/x86_64/ -p
    mkdir /data/local_yum_data/docker-ce/7/x86_64 -p
    echo "目录创建成功"
fi
# 将路径指定给apache
chown -R www:www /data/local_yum_data/

# 设置排除列表
cat << END > exclude.list
aarch64
ppc64
ppc64le
debug
EFI
LiveOS
images
isolinux
CentOS_BuildTag
EULA
GPL
RPM-GPG-KEY-CentOS-7
RPM-GPG-KEY-CentOS-Testing-7
drpms
END

#官方源(centos6)
rsync -avz --exclude-from=exclude.list rsync://mirrors.tuna.tsinghua.edu.cn/centos/6/os/x86_64/ /data/local_yum_data/centos/6/os/x86_64/
rsync -avz --exclude-from=exclude.list rsync://mirrors.tuna.tsinghua.edu.cn/centos/6/extras/x86_64/ /data/local_yum_data/centos/6/extras/x86_64/
rsync -avz --exclude-from=exclude.list rsync://mirrors.tuna.tsinghua.edu.cn/centos/6/updates/x86_64/ /data/local_yum_data/centos/6/updates/x86_64/
rsync -avz --exclude-from=exclude.list rsync://mirrors.tuna.tsinghua.edu.cn/epel/6/x86_64/ /data/local_yum_data/epel/6/x86_64/
rsync -avz --exclude-from=exclude.list rsync://mirrors.tuna.tsinghua.edu.cn/zabbix/non-supported/rhel/6/x86_64/ /data/local_yum_data/zabbix/non-supported/rhel/6/x86_64/
rsync -avz rsync://mirrors.tuna.tsinghua.edu.cn/zabbix/zabbix/3.4/rhel/6/x86_64/ /data/local_yum_data/zabbix/6/x86_64/

#官方源(centos7)
rsync -avz --exclude-from=exclude.list rsync://mirrors.tuna.tsinghua.edu.cn/centos/7/os/x86_64/ /data/local_yum_data/centos/7/os/x86_64/
rsync -avz --exclude-from=exclude.list rsync://mirrors.tuna.tsinghua.edu.cn/centos/7/extras/x86_64/ /data/local_yum_data/centos/7/extras/x86_64/
rsync -avz --exclude-from=exclude.list rsync://mirrors.tuna.tsinghua.edu.cn/centos/7/updates/x86_64/ /data/local_yum_data/centos/7/updates/x86_64/
rsync -avz --exclude-from=exclude.list rsync://mirrors.tuna.tsinghua.edu.cn/epel/7/x86_64/ /data/local_yum_data/epel/7/x86_64/
rsync -avz --exclude-from=exclude.list rsync://mirrors.tuna.tsinghua.edu.cn/zabbix/non-supported/rhel/7/x86_64/ /data/local_yum_data/zabbix/non-supported/rhel/7/x86_64/
rsync -avz rsync://mirrors.tuna.tsinghua.edu.cn/zabbix/zabbix/3.4/rhel/7/x86_64/ /data/local_yum_data/zabbix/3.4/rhel/7/x86_64/
rsync -avz rsync://mirrors.tuna.tsinghua.edu.cn/zabbix/zabbix/5.0/rhel/7/x86_64/ /data/local_yum_data/zabbix/5.0/rhel/7/x86_64/
rsync -avz rsync://mirror.tuna.tsinghua.edu.cn/docker-ce/linux/centos/7/x86_64/ /data/local_yum_data/docker-ce/7/x86_64

if [ $? -ne 0 ]
    then
    echo "yum update fail"
    exit
fi

rm -f /root/exclude.list

#初始化repodata索引文件
#/usr/bin/createrepo -pdo /data/local_yum_data/ /data/local_yum_data/ > /dev/null
#/usr/bin/createrepo --update /data/local_yum_data/

if [ ! -e "/data/local_yum_data/repo-group.xml" ]
    then
    touch /data/local_yum_data/repo-group.xml
    createrepo -g  /data/local_yum_data/repo-group.xml /data/local_yum_data/
fi
createrepo --update /data/local_yum_data/
echo "yum update success"


初始化repodata索引文件

#初始化repodata索引文件
[root@yum_repo ~]# createrepo -h
[root@yum_repo ~]# createrepo -pdo /data/local_yum_data/ /data/local_yum_data/
Saving Primary metadata
Saving file lists metadata
Saving other metadata
Generating sqlite DBs
Sqlite DBs complete

设置每天更新

添加到计划任务

crontab -e
0 0 * * * /root/yum_sync.sh

查看文件生成数量

查看文件生成数量,确认是否后台执行自动同步

find ./company -type f | wc -l

客户端文件

想要使用自己的yum源,需要在客户端配置yum.repo文件,来指定访问地址

$releasever的值,这个表示当前系统的发行版本,可以通过如下命令查看:
rpm -qi centos-release 结果如下:
其中的Version:6就是我们系统的版本号

$basearch 是我们的系统硬件架构(CPU指令集),就是我们常说的i386\i486\i586\i686…

Centos 6

cat>> /etc/yum.repos.d/local_yum.repo <<EOF
[local_yum]
name=centos6
baseurl=http://172.16.14.77/centos/6/os/x86_64/
enable=1
gpgcheck=0
priority=1 

[local_extra]
name=extra
baseurl=http://172.16.14.77/centos/6/extras/x86_64/
enable=1
gpgcheck=0
priority=1 

[local_epel]
name=epel
baseurl=http://172.16.14.77/epel/6/x86_64/
enable=1
gpgcheck=0
priority=1 

[local_zabbix]
name=zabbix
baseurl=http://172.16.14.77/zabbix/6/x86_64/
enable=1
gpgcheck=0
priority=1 

[zabbix-non-supported]
name=Zabbix Official Repository non-supported            
baseurl=http://172.16.14.77/zabbix/non-supported/rhel/6/x86_64/
enabled=1
gpgcheck=0
priority=1 

EOF
   

Centos 7

cat>> /etc/yum.repos.d/local_yum.repo <<EOF
[local_yum]
name=centos7
baseurl=http://172.16.14.77/centos/7/os/x86_64/
enable=1
gpgcheck=0
priority=1 

[local_extra]
name=extra
baseurl=http://172.16.14.77/centos/7/extras/x86_64/
enable=1
gpgcheck=0
priority=1 

[local_epel]
name=epel
baseurl=http://172.16.14.77/epel/7/x86_64/
enable=1
gpgcheck=0
priority=1 

[local_zabbix]
name=zabbix
baseurl=http://172.16.14.77/zabbix/7/x86_64/
enable=1
gpgcheck=0
priority=1 

[zabbix-non-supported]
name=Zabbix Official Repository non-supported            
baseurl=http://172.16.14.77/zabbix/non-supported/rhel/7/x86_64/
enabled=1
gpgcheck=0
priority=1 

EOF

测试

测试之前将系统自带的yum源,压缩,转移到其它目录,都行。
如果不怕麻烦的话,按照下边步骤操作也可以:

 #在每个标签下面将enabled=1改为0禁用,没有的添加上
vim /etc/yum.repos.d/CentOS-Base.repo
[base]
name=CentOS-$releasever - Base
mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=os&infra=$infra
gpgcheck=1
enabled=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6
    
[updates]
name=CentOS-$releasever - Updates
mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=updates&infra=$infra
gpgcheck=1
enabled=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6
    
[extras]
name=CentOS-$releasever - Extras
mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=extras&infra=$infra
gpgcheck=1
enabled=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6
   
[centosplus]
name=CentOS-$releasever - Plus
mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=centosplus&infra=$infra
gpgcheck=1
enabled=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6
    
[contrib]
name=CentOS-$releasever - Contrib
mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=contrib&infra=$infra
gpgcheck=1
enabled=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6

故障参考

nginx作为web服务时,错误信息 nginx: [error] invalid PID number “” in “/usr/local/nginx/logs/nginx.pid”
/sbin/nginx -c /usr/local/nginx/conf/nginx.conf

linux 执行shell报bad interpreter:No such file or directory错误
检查脚本中是否有缺失符号,或者不可见字符

httpd服务器启动成功却不能访问的问题
检查防火墙,selinux是否关闭

shell脚本binary operator expected错误
检查if [ ! -d $dir ] 是否有多余符号

硬盘空间不足的解决办法
关掉虚拟机,添加一块新硬盘

pvcreate /dev/sdb		#创建pv
vgextend centos /dev/sdb	# 扩展vg容量
lvextend -L 200G -n /dev/mapper/centos-root	#扩展lv容量 root
xfs_growfs /dev/mapper/centos-root  # 使分区生效

rsync 选项说明
-v, --verbose 详细模式输出
-q, --quiet 精简输出模式
-c, --checksum 打开校验开关,强制对文件传输进行校验
-a, --archive 归档模式,表示以递归方式传输文件,并保持所有文件属性,等于-rlptgoD
-r, --recursive 对子目录以递归模式处理
-R, --relative 使用相对路径信息
-b, --backup 创建备份,也就是对于目的已经存在有同样的文件名时,将老的文件重新命名为~filename。可以使用–suffix选项来指定不同的备份文件前缀。
–backup-dir 将备份文件(如~filename)存放在在目录下。
-suffix=SUFFIX 定义备份文件前缀
-u, --update 仅仅进行更新,也就是跳过所有已经存在于DST,并且文件时间晚于要备份的文件。(不覆盖更新的文件)
-l, --links 保留软链结
-L, --copy-links 想对待常规文件一样处理软链结
–copy-unsafe-links 仅仅拷贝指向SRC路径目录树以外的链结
–safe-links 忽略指向SRC路径目录树以外的链结
-H, --hard-links 保留硬链结
-p, --perms 保持文件权限
-o, --owner 保持文件属主信息
-g, --group 保持文件属组信息
-D, --devices 保持设备文件信息
-t, --times 保持文件时间信息
-S, --sparse 对稀疏文件进行特殊处理以节省DST的空间
-n, --dry-run现实哪些文件将被传输
-W, --whole-file 拷贝文件,不进行增量检测
-x, --one-file-system 不要跨越文件系统边界
-B, --block-size=SIZE 检验算法使用的块尺寸,默认是700字节
-e, --rsh=COMMAND 指定使用rsh、ssh方式进行数据同步
–rsync-path=PATH 指定远程服务器上的rsync命令所在路径信息
-C, --cvs-exclude 使用和CVS一样的方法自动忽略文件,用来排除那些不希望传输的文件
–existing 仅仅更新那些已经存在于DST的文件,而不备份那些新创建的文件
–delete 删除那些DST中SRC没有的文件
–delete-excluded 同样删除接收端那些被该选项指定排除的文件
–delete-after 传输结束以后再删除
–ignore-errors 及时出现IO错误也进行删除
–max-delete=NUM 最多删除NUM个文件
–partial 保留那些因故没有完全传输的文件,以是加快随后的再次传输
–force 强制删除目录,即使不为空
–numeric-ids 不将数字的用户和组ID匹配为用户名和组名
–timeout=TIME IP超时时间,单位为秒
-I, --ignore-times 不跳过那些有同样的时间和长度的文件
–size-only 当决定是否要备份文件时,仅仅察看文件大小而不考虑文件时间
–modify-window=NUM 决定文件是否时间相同时使用的时间戳窗口,默认为0
-T --temp-dir=DIR 在DIR中创建临时文件
–compare-dest=DIR 同样比较DIR中的文件来决定是否需要备份
-P 等同于 --partial
–progress 显示备份过程
-z, --compress 对备份的文件在传输时进行压缩处理
–exclude=PATTERN 指定排除不需要传输的文件模式
–include=PATTERN 指定不排除而需要传输的文件模式
–exclude-from=FILE 排除FILE中指定模式的文件
–include-from=FILE 不排除FILE指定模式匹配的文件
–version 打印版本信息
–address 绑定到特定的地址
–config=FILE 指定其他的配置文件,不使用默认的rsyncd.conf文件
–port=PORT 指定其他的rsync服务端口
–blocking-io 对远程shell使用阻塞IO
-stats 给出某些文件的传输状态
–progress 在传输时现实传输过程
–log-format=formAT 指定日志文件格式
–password-file=FILE 从FILE中得到密码
–bwlimit=KBPS 限制I/O带宽,KBytes per second
-h, --help 显示帮助信息

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,下面是 CentOS 7 搭建 Zabbix 的步骤: 1. 安装 EPELZabbix 源 ``` yum -y install epel-release rpm -ivh https://repo.zabbix.com/zabbix/5.2/rhel/7/x86_64/zabbix-release-5.2-1.el7.noarch.rpm ``` 2. 安装 Zabbix Server、Agent 和 Web ``` yum -y install zabbix-server-mysql zabbix-web-mysql zabbix-agent ``` 3. 安装数据库 ``` yum -y install mariadb mariadb-server systemctl start mariadb systemctl enable mariadb mysql_secure_installation ``` 4. 创建 Zabbix 数据库和用户 ``` mysql -u root -p MariaDB [(none)]> create database zabbix character set utf8 collate utf8_bin; MariaDB [(none)]> grant all privileges on zabbix.* to zabbix@localhost identified by 'password'; MariaDB [(none)]> quit; ``` 5. 导入初始数据 ``` cd /usr/share/doc/zabbix-server-mysql-5.2.3/ zcat create.sql.gz | mysql -u zabbix -p zabbix ``` 6. 修改 Zabbix Server 配置文件 ``` vi /etc/zabbix/zabbix_server.conf DBPassword=password ``` 7. 修改 PHP 配置 ``` vi /etc/php.ini date.timezone = Asia/Shanghai max_execution_time = 300 max_input_time = 300 memory_limit = 128M post_max_size = 16M upload_max_filesize = 2M ``` 8. 启动服务并设置开机自启 ``` systemctl start zabbix-server systemctl enable zabbix-server systemctl start zabbix-agent systemctl enable zabbix-agent systemctl start httpd systemctl enable httpd ``` 9. 访问 Web 界面 在浏览器中输入 http://服务器IP/zabbix,用户名和密码默认为 Admin/zabbix。 以上就是 CentOS 7 搭建 Zabbix 的步骤,希望对你有所帮助。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值