【nexus&yum】CentOS7.x上從客戶端往nexus的yum倉庫推rpm

一、實驗背景


用nexus oss進行yum代理,所緩存的數據都是yum源的數據。

如果需要使用特定版本或者自己編譯的包,這種方法就不靈了。

本文講述nexus oss創(chuàng)建hosted類型yum倉庫,hosted類型是自建倉庫,上傳rpm包后會生成repodata文件。


nexus oss和nexus pro有什么區(qū)別?


二、實驗環(huán)境


操作系統(tǒng): CentOS7.5 Minimal

nexusServer: 192.168.1.107

nexusClient:192.168.1.103


三、創(chuàng)建hosted類型yum倉庫


CentOS7.x上用nexus搭建yum私有倉庫

http://www.itdecent.cn/p/0255cd957e15


1.創(chuàng)建blob存儲,為其創(chuàng)建一個單獨的存儲空間,命名為yum



2.創(chuàng)建hosted類型的yum倉庫


Name::定義一個名稱yumDev

Storage:Blob store,我們下拉選擇前面創(chuàng)建好的專用blob:yum。

Hosted:開發(fā)環(huán)境,我們運行重復發(fā)布,因此Delpoyment policy 我們選擇Allow redeploy



四、創(chuàng)建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)的集合,可以授予創(chuàng)建的用戶,做權限控制。

nexus中默認的 role 有 nx-admin? 和?nx-anonymous



nexus中默認的 user 有?admin? 和?anonymous



我們創(chuàng)建一個nx-yum的role,然后授予創(chuàng)建的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較多,寫一個腳本遍歷循環(huán)上傳

倉庫第一次上傳文件時,會自動生成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創(chuàng)建清單文件,而不用手動了!


六、測試將一個軟件主包及其依賴全部上傳到nexus的yum倉庫


在一臺聯網的和nexusServer互通的服務器上下載ceph主包及其依賴


添加ceph官方y(tǒng)um鏡像倉庫

#? 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

在客戶端創(chuàng)建倉庫文件

# 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私有倉庫

http://www.itdecent.cn/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文件系統(tǒng)的使用

http://www.itdecent.cn/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

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

友情鏈接更多精彩內容