RPM
RPM是用於保存和管理RPM軟件包的倉庫。我們在RHEL和Centos系統上常用的Yum安裝就是安裝的RPM軟件包,而Yum的源就是一個RPM軟件包的倉庫。JFrog Artifactory是成熟的RPM和YUM存儲庫管理器。JFrog的官方Wiki頁面提供有關Artifactory RPM存儲庫的詳細信息。
Artifactory索引RPM包的過程
Artifactory 5.5.0及之後版本,針對YUM元數據計算處理進行了重大的改進,加入了併發和增量計算的能力。所以新的索引過程:
- 性能上優於之前自動觸發的異步計算
- 同時不需要在單獨開發觸發元數據計算的插件
- 可以監控並且準確地知道新的元數據計算的狀態
如下圖:創建RPM倉庫時選擇“Auto Calculate RPM Metadata”,Artifactory將會攔截Copy或Move的操作,並且自動觸發計算步驟。保證在及時提供給用戶最新的元數據用來獲取軟件包的版本
元數據的兩種方式
- 異步:
正常情況下,如果啓動了以上的選項,那麼當你使用REAT API或者UI部署包的時候,異步計算將會攔截文件操作,並且將索引添加操作加入到Artifactory內部的隊列中進行計算。
- 同步:
只有關閉“Auto Calculate RPM Metadata”時纔可以使用,此時您可以手動觸發元數據計算。
例:
有一個CI任務可以將很多版本上傳到一個大型倉庫裏,可以在流水線中增加一個額外的構建步驟。以下爲倉庫名爲“rpm-release-local”,通過Rest API請求手動觸發元數據計算
curl -uadmin:password -XPOST "localhost:8081/artifactory/api/yum/rpm-release-local?async=0" -i -Lvv
* Connected to localhost (::1) port 8081 (#0) * Server auth using Basic with user 'admin' > POST /artifactory/api/yum/rpm-release-local?async=0 HTTP/1.1 > Host: localhost:8081 > Authorization: Basic YWRtaW46cGFzc3dvcmQ= > User-Agent: curl/7.54.0 > Accept: */*
< HTTP/1.1 200 OK < Server: Artifactory/6.3.2 < X-Artifactory-Id: a9116dfeb1f6dac4:449dde33:1658a295e45:-8000 < Content-Type: text/plain < Transfer-Encoding: chunked < Date: Sun, 02 Sep 2018 12:19:56 GMT |
Artifactory RPM系統屬性整選項(5.5.0及以上版本)
artifactory.rpm.metadata.calculation.workers(默認值爲8) –本地RPM元數據計算線程數。 artifactory.rpm.metadata.history.cycles.keep(默認值3) –保留元數據記錄,包括已經計算完成的計算記錄 yum.virtual.metadata.calculation.workers(默認5) -虛擬庫計算的線程數 |
日誌
- RPM日誌記錄org.artifactory.addon.yum.YumAddonImpl:
INFO級別:Starting to calculate Rpm metadata for
您可以在Artifactory中的以下軟件包上啓用調試/跟蹤級別日誌記錄(修改$ ARTIFACTORY_HOME / etc / logback.xml)以跟蹤/調試您的計算:
自動計算(異步):
DEBUG級別:{path}的異步Rpm計算
觸發(同步):
DEBUG級別:{path}的同步Rpm計算
- 虛擬RPM存儲庫計算:
爲org.artifactory.addon.yum.virtual.index啓用每個日誌級別 :
DBUG級別:爲{path}啓動虛擬yum元數據計算
整個包邏輯過程的跟蹤級別:
爲org.jfrog.metadata.indexer.RpmRepoIndexer啓用每個日誌級別 :
TRACE級別:準備索引RPM存儲庫元數據
DEBUG級別:完成對RPM存儲庫元數據的索引編制