请参考以下链接:
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 …