nexus簡介
nexus是一個強大的maven倉庫管理器,它極大的簡化了本地內部倉庫的維護和外部倉庫的訪問.
nexus是一套開箱即用的系統不需要數據庫,它使用文件系統加Lucene來組織數據 .
nexus使用ExtJS來開發界面,利用Restlet來提供完整的REST APIs,通過IDEA和Eclipse集成使用 .
nexus支持webDAV與LDAP安全身份認證.
nexus提供了強大的倉庫管理功能,構件搜索功能,它基於REST,友好的UI是一個extjs的REST客戶端,占用較少的內存,基於簡單文件系統而非數據庫.
它的以下優點,使得它日趨成為最流行的maven倉庫管理工具:
1)加速構建;
2)節省帶寬;
3)節省中央maven倉庫的帶寬;
4)穩定(應付一旦中央服務器出問題的情況);
5)控制和審計;
6)能夠部署第三方構件;
7)可以建立本地內部倉庫;
8)可以建立公共倉庫
公司的代碼依賴是通過maven進行管理的,而maven的私庫我們使用的是nexus,目前使用的是nexus2.11.4版本。之前是和gitlab部署在同一台服務器,前段時間對gitlab進行了遷移升級,nexus現在新版本也是3.13了,故對nexus也進行一次遷移升級。
首先,寫下升級思路,要把nexus從2版本升級到3版本,需要先把nexus升級到2版本的最高版本,然后在升級到3版本,故我這先升級到2.14.9,然后升級到3.12.0
環境信息
系統版本 | Ubuntu 14.04.4 LTS -->CentOS release 6.10 (Final) |
jdk | jdk1.8.0_121 |
nexus | 2.14.9 |
nexus | 3.12.0 |
maven | 3.3.9 |
注:這里舊版本nexus是在Ubuntu系統,新版本是裝到centos系統里,然后jdk版本的話,nexus2是需要1.7以上,nexus3需要jdk1.8以上,然后我這里把2.14.9和3.12.0都裝在同一台服務器上(升級完后把2.14.9版本卸載),所以裝jdk1.8版本就好。
1、安裝Jdk:
#rpm -ivh jdk-8u121-linux-x64.rpm
安裝完看下版本和安裝路徑:
2、下載,安裝nexus2.14.9
#cd /usr/local/src
#wget https://sonatype-download.global.ssl.fastly.net/nexus/oss/nexus-2.14.9-01-bundle.tar.gz #tar xvf nexus-2.14.9-01-bundle.tar.gz -C /data
#cd /data/nexus-2.14.9-01
#cp bin/nexus /etc/init.d/nexus2 --把啟動腳本添加到系統服務中(寫成nexus2是為了區別2版本和3版本)
#chkconfig --add nexus2
#chkconfig nexus2 on --設置為開機自啟動
修改nexus2.14.9的啟動文件:
#vim /etc/init.d/nexus2
配置Jdk環境變量
接着修改nexus2.14.9的監聽端口和倉庫存儲目錄:
#vim /data/nexus-2.14.9-01/conf/nexus.properties
至此,nexus2.14.9就安裝配置完了,下面啟動服務:
#service nexus2 start
然后就可以通過http://ip:port/nexus訪問nexus2.14.9了,默認登入賬號和密碼是:admin/admin123,這里我是用自己注冊的賬號登入的,所以看到右上角賬號不是admin
3、2.11.4升級到2.14.9
現在可以進行2.11.4備份遷移到2.14.9了,大概步驟如下:(2版本上級到2版本只需把相關目錄拷貝到新服務器即可)
先在2.11.4版本服務上進行備份,網上說備份indexer和storage目錄就夠了,我當時是備份了4個目錄,為了保險起見你可以把整個sonatype-work目錄備份過去。
備份完,需把這些包拷貝到新版本的2.14.9服務器上,進行解壓,然后重啟服務就ok了。
重啟完登入可看見已經把舊版本的數據遷移過來了,檢測下數據的完整性,沒有問題的話就已經成功升級到2.14.9版本了。
4、下載、安裝nexus3.12.0
#wget https://sonatype-download.global.ssl.fastly.net/nexus/3/nexus-3.12.0-01-unix.tar.gz #tar xvf nexus-3.12.0-01-unix.tar.gz -C /data #cd /data/nexus-3.12.0-01
#vim bin/nexus.rc --修改nexus的啟動用戶
run_as_user="root"
修改配置nexus3的啟動腳本
#ln -s /data/nexus-3.12.0-01/bin/nexus /etc/init.d/nexus3
#chkconfig --add nexus3
#chkconfig nexus3 on --設置開啟自啟動
同理配置jdk環境和監聽端口:
#vim bin/nexus
#vim etc/nexus-default.properties
下面配置數據以及相關日志存儲路徑:
#vim bin/nexus.vmoptions
至此,基本配置完成了,可以重啟通過web訪問nexus3了
#service nexus3 start --可以看到兩個nexus都已經啟動了
web訪問http://ip:port
通過上圖可知nexus3已經正常啟動
5、nexus2.14.9升級到nexus3.12.0
配置 Upgrade:Agent
Nexus2.14.9要進行倉庫遷移的話,需要我們配置Upgrade:Agent,Upgrade:Agent的配置比較簡單,如下:
上圖中的Access Token非常重要,進行遷移的時候要用這個值,你可以設一個自己容易記得值,下圖就是我們設置好的Upgrade:Agent
要把nexus2.14.9遷移到nexus3.12.0的話,在nexus3.12.0上也需要開啟upgrade,並且遷移操作在nexus3.12.0的web端,下面在nexus3上開啟upgrade:
到了這一步,下面的操作基本一路next就行了。
由於這一步點擊不了Next,下面的頁面無法截圖出來了(這里可以把之前同步過來的倉庫刪除,在重新同步一次,這里的Next和后面的步驟就可以執行,不然這里一直都是倉庫已存在狀態),后面的步驟也很簡單,基本都是 begin,continue,遷移可能要點時間,取決於倉庫所存東西的大小。成功后隨便找一個倉庫進行驗證一下一致性。如果沒有問題,那么遷移就完成了。