Nexus3自動重啟
前置作業,先建Nexus:
先準備個機台演練:
RHEL-8.6.0_HVM-20220503-x86_64–2-Hourly2-GP2
#先更新安裝檔:
sudo yum update -y
#確認可以安裝的jdk:
sudo yum list|grep jdk
#安裝jdk:
sudo yum install java-1.8.0-openjdk.x86_64 -y
#安裝wget:
sudo yum install wget -y
#找到Nexus下載點後,用wget下載:
wget https://download.sonatype.com/nexus/3/nexus-3.43.0-01-unix.tar.gz
#搬到/opt下解壓縮
sudo mv nexus-3.43.0-01-unix.tar.gz /opt/
#到/opt把它解壓縮(不看過程就不帶v),然後得到兩個目錄:
cd /opt
sudo tar zxf nexus-3.43.0-01-unix.tar.gz
#建立新啟動帳號:
sudo adduser nexus
#更改剛剛解壓縮的目錄所有者給上述啟動用帳號:
sudo chown -R nexus:nexus nexus-3.43.0-01
sudo chown -R nexus:nexus sonatype-work
#確認:
ll
#調整Nexus應用程式的啟動身分:
sudo vi /opt/nexus-3.43.0-01/bin/nexus.rc
#將裡面以下內容:
run_as_user=""
#更改為以下並儲存
#run_as_user=""
run_as_user="nexus"
#缺換帳號身分:
sudo su - nexus
#啟動Nexus:
/opt/nexus-3.43.0-01/bin/nexus start
#確認:
ps -ef|grep nexus
撰寫開機自動啟動
官網的Nexus3建立成Service方式(LINK):
可以點進去看看
整理如下
#確認run_as_user有調整給nexus帳號:
#用root建立link:
sudo ln -s /opt/nexus-3.43.0-01/bin/nexus /etc/init.d/nexus
#接著是chkconfig設定,這是一個init.d裡的起始腳本的工具,透過這個來起動Nexus:
cd /etc/init.d
sudo chkconfig --add nexus
sudo chkconfig --levels 345 nexus on
#其中上面中的add的指令就是把Nexus納入到Service內執行啟動或關閉
#另外chkconfig透過link將Nexus服務註冊道系統啟動腳本去
#記得在執行這個前先關掉既有的Nexus:
sudo kill 9 {Nexus Pid}
sudo service nexus start
確認目前服務:
重啟機台後重登確認:
讚!
這邊為了其他方式實驗,快速將chkconfig設置解除:
#我先將上面的chkconfig 啟動nexus的部分解除
#先確認指令:
sduo chkconfig --help
#確認nexus是否有註冊到chkconfig指令:
sudo chkconfig --list#移除chkconfig的nexus設定:
sudo chkconfig --del nexus#再次確認指令:
sudo chkconfig --list
#解除link,先確認link:
ls /etc/init.d/nexus -l
#解除Symbolic Links:
sudo rm /etc/init.d/nexus
這樣前面設置的chkconfig就移除了
解除後參考另外官網還有常見的服務註冊作法(LINK)
但是這段後來發現也是做完Symlink的子項
所以我這邊還要把Symlink加回去...
#確認run_as_user有調整給nexus帳號:
#用root建立link:
sudo ln -s /opt/nexus-3.43.0-01/bin/nexus /etc/init.d/nexus
然後加上實際systemd建置:
先簡單看一下既有的systemd服務有哪些:
#root編輯一個nexus的service:
sudo vi /etc/systemd/system/nexus.service
#內容如下gist:
#依樣先把既有的Nexus關掉:
ps -ef|grep nexus
sudo kill 9 {Nexus Pid}
#重Load daemon,建立開機重啟Nexus,啟動Nexus服務:
sudo systemctl daemon-reload
sudo systemctl enable nexus.service
sudo systemctl start nexus.service
#可以看看狀態:
sudo systemctl status nexus
#另一種方式確認運作:
ps -ef|grep nexus
這邊怪怪的,沒有正常運作
#所以補一個restart重啟:
sudo systemctl restart nexus.service
#之後可以確認log:
tail -f /opt/sonatype-work/nexus3/log/nexus.log
一樣暴力關機後再開機看看:
看起來也沒問題
#還是確認一下Service狀態:
sudo systemctl status nexus
看起來也沒問題!