使用jenkins和gitea配置自动化发布

半日闲 2020年11月05日 22次浏览

环境配置

  1. 布置jenkins

    执行以下命令

    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 install jenkins
    systemctl start jenkins
    systemctl status jenkins
    

    状态如下

    image-20201105210843595

  2. 布置gitea

    官网:gitea官网

    运行gitea即可

    gitea web
    

    备注:在gitea中不需要设置管理员,默认第一个注册的账号就是管理员

  3. gitea中创建一个测试仓库gitea-nginx

    如下

    image-20201105213532843

  4. jenkins中配置凭证

    填写用户名,密码,以及描述即可,如下

    image-20201105213956591

  5. jenkins中配置构建任务

    image-20201105214153006

    填写任务名以及描述等字段

    image-20201105214246853

    配置gitea的仓库信息,其中凭证选取上一步骤中配置的账号密码

    image-20201105214335552

    配置远程构建,使得每次使用git push代码到gitea后,可以自动触发jenkins进行构建

    image-20201105214536863

    记住远程构建时的url,图中的时JENKINS_URL/job/gitea-nginx/build?token=TOKEN_NAME

    其中JENKINS_URL可以在系统管理----->>>系统配置中查看,TOKEN_NAME就是自定义写入的字符

    写入构建脚本,本次测试中使用的shell脚本

    image-20201105214831792

    保存该任务即可

  6. gitea中配置web钩子

    在创建的仓库的仓库配置中,可以添加web钩子,配置如下

    url部分填写,刚才在jenkins中配置的远程构建的url

    http方法填写为post

    配置完成后,点击测试推送即可,查看推送结果

    image-20201105215333641

    当推送结果为正确的时候,可以在jenkins中查看到触发的构建任务在运行

    image-20201105215641580

    点击对应的构建任务,可以查看到该任务构建的详细过程

    image-20201105215737113

问题集锦

  1. jenkins构建时,提示没有权限

    如下

    image-20201105221328781

    原因:

    jenkins的进程运行时,默认使用的时jenkins用户,而运行docker命令需要root权限,所有提示没有权限

    解决方法:

    ​ 修改/etc/sysconfig/jenkins文件,将JENKINS_USER使用root用户运行即可

    image-20201105220159398

  2. gitea中配置远程构建的url后,点击测试推送如下

    image-20201105220357553

    原因:

    jenkins运行的时候,默认开启CSRF,关闭即可

    解决方法:

    1. 直接在jenkins中关闭

      配置路径:jenkins----->>>系统管理----->>>全局安全配置----->>>跨站请求伪造防护

    2. 高版本的jenkins中无法直接在界面上关闭的话,只能在配置文件中进行修改

      修改/etc/sysconfig/jenkins中的JENKINS_JAVA_OPTIONS参数,追加-Dhudson.security.csrf.GlobalCrumbIssuerConfiguration.DISABLE_CSRF_PROTECTION=true即可

    image-20201105220822206

  3. gitea中配置远程构建的url后,点击推送提示如下

    image-20201105221048449

    原因:

    jenkins没有开启匿名用户可读

    解决方法:

    ​ 在设置中开启即可

    image-20201105221155751