美文网首页Maven
【nexus&yum】CentOS7.x上从客户端往ne

【nexus&yum】CentOS7.x上从客户端往ne

作者: Bogon | 来源:发表于2019-07-13 01:02 被阅读34次

    一、实验背景

    用nexus oss进行yum代理,所缓存的数据都是yum源的数据。

    如果需要使用特定版本或者自己编译的包,这种方法就不灵了。

    本文讲述nexus oss创建hosted类型yum仓库,hosted类型是自建仓库,上传rpm包后会生成repodata文件。

    nexus oss和nexus pro有什么区别?

    二、实验环境

    操作系统: CentOS7.5 Minimal

    nexusServer: 192.168.1.107

    nexusClient:192.168.1.103

    三、创建hosted类型yum仓库

    CentOS7.x上用nexus搭建yum私有仓库

    https://www.jianshu.com/p/0255cd957e15

    1.创建blob存储,为其创建一个单独的存储空间,命名为yum


    2.创建hosted类型的yum仓库


    Name::定义一个名称yumDev

    Storage:Blob store,我们下拉选择前面创建好的专用blob:yum。

    Hosted:开发环境,我们运行重复发布,因此Delpoyment policy 我们选择Allow redeploy

    四、创建role和user

    Roles

    https://help.sonatype.com/repomanager3/security/roles

    Privileges

    https://help.sonatype.com/repomanager3/security/privileges

    Users

    https://help.sonatype.com/repomanager3/security/users

    nexus中role是一组权限(privilege)的集合,可以授予创建的用户,做权限控制。

    nexus中默认的 role 有 nx-admin  和 nx-anonymous

    nexus中默认的 user 有 admin  和 anonymous


    我们创建一个nx-yum的role,然后授予创建的test用户,根据需要授予相应的权限。




    用户名密码:test/Test@123


    五、客户端rpm包上传测试

    从服务端web界面获取hosted类型仓库地址:http://192.168.1.107:8081/repository/yumDev/

    # curl -v --user 'test:Test@123' --upload-file httpd-2.4.6-88.el7.centos.x86_64.rpm http://192.168.1.107:8081/repository/yumDev/httpd-2.4.6-88.el7.centos.x86_64.rpm

    如果rpm较多,写一个脚本遍历循环上传

    仓库第一次上传文件时,会自动生成repodata文件,以后上传的文件会间隔一段时间后生成,可点击Rebuild Index重建repodata。

    如果某个包已不再需要,可在Brose中选择该文件,然后Delete asset删除之。

    如果某个仓库不再需要,可选Delete repository删除之。

    当然,我们没法通过上传一个 httpd-2.4.6-88.el7.centos.x86_64.rpm 到nexus服务端,然后再客户端下载http,会报缺少依赖!

    yum仓库会自动分析解决依赖,前提是你已经需要安装的主包及其依赖全部上传!

    nexusyum仓库的方便之处是我们上传rpm主包及其依赖,它会自动定时createrepo创建清单文件,而不用手动了!

    六、测试将一个软件主包及其依赖全部上传到nexus的yum仓库

    在一台联网的和nexusServer互通的服务器上下载ceph主包及其依赖

    添加ceph官方yum镜像仓库

    #  vim   /etc/yum.repos.d/ceph.repo

    ##################################################

    [Ceph]

    name=Ceph packages for $basearch

    baseurl=http://mirrors.163.com/ceph/rpm-luminous/el7/$basearch

    enabled=1

    gpgcheck=1

    type=rpm-md

    gpgkey=https://download.ceph.com/keys/release.asc

    priority=1

    [Ceph-noarch]

    name=Ceph noarch packages

    baseurl=http://mirrors.163.com/ceph/rpm-luminous/el7/noarch

    enabled=1

    gpgcheck=1

    type=rpm-md

    gpgkey=https://download.ceph.com/keys/release.asc

    priority=1

    [ceph-source]

    name=Ceph source packages

    baseurl=http://mirrors.163.com/ceph/rpm-luminous/el7/SRPMS

    enabled=1

    gpgcheck=1

    type=rpm-md

    gpgkey=https://download.ceph.com/keys/release.asc

    ##################################################

    # yum clean all

    # yum repolist 

    # yum list all |grep ceph

    # yum  -y install epel-release 

    # yum -y install yum-utils 

    # yum -y install createrepo 

    # mkdir /root/cephDeps 

    # repotrack  ceph ceph-mgr ceph-mon ceph-mds ceph-osd ceph-fuse ceph-radosgw  -p  /root/cephDeps

    #  ll  /root/cephDeps 


    用脚本将ceph主包及其依赖上传到nexusServer的yum仓库

    #  vim  push_rpm.sh

    #################################################################################

    #!/bin/bash

    parent_path=$( cd "$(dirname "${BASH_SOURCE}")" ; pwd -P )

    cd "$parent_path"

    for rpm in  $(ls  -l  *.rpm | awk  '{print $9}')

    do

      curl -v --user 'test:Test@123' --upload-file $rpm  http://192.168.1.107:8081/repository/yumDev/$rpm

      if [ $? -ne 0 ]; then

        exit 1

      fi

    done

    ###################################################################################


    # sh  push_rpm.sh 

    客户端测试从hosted仓库下载rpm

    在客户端创建仓库文件

    # vim   /etc/yum.repos.d/nexus.repo

    #################################################################

    [nexus]

    name=Nexus Yum Repository

    baseurl=http://192.168.1.107:8081/repository/yumDev/

    enabled=1

    gpgcheck=0

    ###################################################################

    注:此出客户端的仓库文件中的 baseurl=http://192.168.1.107:8081/repository/yumDev/ 后面没有$releasever/os/$basearch/

    #  yum clean all 

    # yum repolist 

    # yum -y install ceph ceph-mds ceph-mgr ceph-osd ceph-mon

    七、参考


    CentOS7.x上用nexus搭建yum私有仓库

    https://www.jianshu.com/p/0255cd957e15


    Nexus OSS配置hosted类型yum仓库

    https://qgdlsj.com/nexus-oss-yum-hosted

    用Nexus自建Yum Repository代理

    https://edxi.github.io/2018/04/16/NexusYum

    CentOS7.x上ceph单机的离线部署和cephFS文件系统的使用

    https://www.jianshu.com/p/b8f085ca0307

    RPM Repositories

    https://www.jfrog.com/confluence/display/RTF/RPM+Repositories

    Nexus Repository Manager OSS

    https://www.sonatype.com/nexus-repository-oss

    Yum Repositories

    https://help.sonatype.com/repomanager3/formats/yum-repositories

    Nexus Repository Manager 3.5: Yum Proxy Support Now Available

    https://blog.sonatype.com/nexus-repository-manager-3.5

    Nexus Repository OSS 3安装配置使用

    http://shiyanjun.cn/archives/1768.html

    Nexus Repository OSS 3.x简介

    https://note.qidong.name/2017/08/nexus-repository-oss

    Nexus Repository Manager OSS 3.x 安装配置

    https://blog.csdn.net/chenfei2341/article/details/80431700

    相关文章

      网友评论

        本文标题:【nexus&yum】CentOS7.x上从客户端往ne

        本文链接:https://www.haomeiwen.com/subject/buiukctx.html