請參考以下鏈接:
1號參考鏈接點此
2號參考鏈接點此
使用普通用戶執行持續集成的解決辦法
因工作中爲了服務器安全,避免被惡意執行ssh暴力破解等風險,會創建一個新的超級用戶(eg.用戶beauty)來代替root,因此在構建持續集成過程中,我們要做相應調整,如下:
1.搭建好gitlab與Jenkins後,修改Jenkins的默認用戶
]$vim /etc/sysconfig/jenkins
# Unix user account that runs the Jenkins daemon
# Be careful when you change this, as you need to update
# permissions of $JENKINS_HOME and /var/log/jenkins.
#
JENKINS_USER="beauty" #默認用戶爲jenkins,此處修改爲我們自己創建的用戶beauty
]$ systemctl restart jenkins.service
]$ chown -R beauty:beauty /var/lib/jenkins/ #此處爲你所設置的倉庫目錄,默認爲/var/lib/jenkins
]$ chown -R beauty:beauty /var/cache/jenkins/
]$ chown -R beauty:beauty /var/log/jenkins/
2.在beauty登陸狀態下,ssh-gen-key生成公私鑰,公鑰傳給gitlab,私鑰傳給Jenkins
3.在beauty登陸狀態下,openssl rand -hex 16 生成的16進制的隨機數,分別用於Jenkins的token與gitlab的webhooks的創建
4.在Jenkins填寫執行腳本那一欄,sudo ssh … 如果不好用,便直接去掉sudo,直接使用ssh …