• Jenkins安装和Host key verification failed问题的处理


    在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 目录, 放到这个目录下

    用war安装,以screen启动

    # 安装git
    yum install git
    # 添加tomcat用户
    useradd tomcat
    passwd tomcat
    # 安装JDK
    cd backup/
    tar xvf jdk-11.0.8_linux-x64_bin.tar.gz 
    tar xvf jdk-8u261-linux-x64.tar.gz 
    cd /opt/
    mkdir jdk
    cd jdk/
    mv ~/backup/jdk1.8.0_261 .
    mv ~/backup/jdk-11.0.8 .
    ln -s jdk-11.0.8 latest
    vi /etc/profile.d/sh.local
    ## 增加内容开始
    PATH=$PATH:/opt/jdk/latest/bin
    ## 增加内容结束
    
    # 将jenkins war放入 /home/tomcat/run目录后
    vi scripts/start_jenkins.sh 
    ## 内容开始
    java -server -Djava.awt.headless=true -jar /home/tomcat/run/jenkins.2.277.2.war --httpPort=9090
    ## 内容结束
    
    # 因为jenkins的war只能使用前台启动, 搜索到的解决方案都是用 nohup java -jar jenkins.war &, 但是这样会导致日志堆积, 估采用screen
    screen -S jenkins
    # 在screen session里
    ./scripts/start_jenkins.sh
    

    问题和解决

    启动Jenkins报NPE错误

    通过安装fontconfig解决
    https://github.com/AdoptOpenJDK/openjdk-docker/issues/75

    yum install fontconfig
    

    SSH Agent 出现 Host key verification failed

    首先确认

    1. Jenkins的Git使用的ssh, 不需要预先记录known_hosts, 配置好就可以直接用
    2. 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错误了.

  • 相关阅读:
    poj 2002 Squares 几何二分 || 哈希
    hdu 1969 Pie
    hdu 4004 The Frog's Games 二分
    hdu 4190 Distributing Ballot Boxes 二分
    hdu 2141 Can you find it? 二分
    Codeforces Round #259 (Div. 2)
    并查集
    bfs
    二维树状数组
    一维树状数组
  • 原文地址:https://www.cnblogs.com/milton/p/15349798.html
Copyright © 2020-2023  润新知