在Centos7上安装的Jenkins 2.303.1
安装
因为新版本的Jenkins的war是用java -jar启动, 并且无法后台运行, 所以要么通过screen创建一个session来运行war, 要么就直接按官网的步骤安装为服务. 下面是安装为服务的步骤:
yum install wget sudo wget -O /etc/yum.repos.d/jenkins.repo https://pkg.jenkins.io/redhat-stable/jenkins.repo sudo rpm --import https://pkg.jenkins.io/redhat-stable/jenkins.io.key yum upgrade yum install epel-release java-11-openjdk-devel yum install jenkins systemctl status jenkins systemctl is-enabled jenkins
浏览器访问后, 用提示文件的管理员密码登录, 选择默认的插件安装
这样安装的Jenkins, 会创建一个jenkins用户,
[root@vm_00 ~]# more /etc/passwd root:x:0:0:root:/root:/bin/bash bin:x:1:1:bin:/bin:/sbin/nologin ... jenkins:x:997:994:Jenkins Automation Server:/var/lib/jenkins:/bin/false
可以看到对应的工作目录在 /var/lib/jenkins
在Jenkins中创建的项目目录, 就在 /var/lib/jenkins/jobs
在构建中需要用到的settings.xml, 可以新建 /var/lib/jenkins/settings 目录, 放到这个目录下
问题和解决
SSH Agent 出现 Host key verification failed
首先确认
- Jenkins的Git使用的ssh, 不需要预先记录known_hosts, 配置好就可以直接用
- SSH Agent必须要先在命令行下访问一下对方IP, 记录了known_hosts后, 才能正常使用
因为安装为服务的Jenkins使用的是jenkins用户, 而且是/bin/false的用户, 不能像普通用户那样登录然后ssh一下对方IP, 你需要按以下方式处理
# 以root或sudo user身份, 切换到jenkins用户 su -s /bin/bash jenkins # 前往jenkins的home目录 cd /var/lib/jenkins/ # 查看.ssh下是否已经有known_hosts, 有的话, 是什么内容, 正常情况下, 这时候是没有对应IP记录的 cd .ssh/ more known_hosts # 访问一下对应IP, 记录公钥 ssh 192.168.123.123 # 再次查看, 应该就有记录了 more known_hosts
在上面的操作之后, 再执行任务, SSH Agent就不会报Host key verification failed错误了.



