不安分的管家——Jenkins

Posted feixuefubing

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了不安分的管家——Jenkins相关的知识,希望对你有一定的参考价值。

占个位,持续补充。

一、使用Jenkins进行自动化部署

一直以来关于xx框架/中间件的技术博客有个奇怪的事情。这类文章特点大而全,重复率高,读者阅读完毕基本从安装到放弃。

作为一个使用者,我只是为了实现一个初步的功能慕名而来,踩得坑多了才希望寻求一些心得,结果搜索到的偏偏是些连作者自己都觉得云里雾里的东西。

这里,从目的出发,只谈我遇到的障碍与解决方式,构成一条完整的线。

【通过Jenkins实现不需要PC、不需要SSH的自动化部署】

1、首先yum安装。

wget -O /etc/yum.repos.d/jenkins.repo https://pkg.jenkins.io/redhat-stable/jenkins.repo
rpm --import https://pkg.jenkins.io/redhat-stable/jenkins.io.key

这里提一点,如果服务器连接国外站点的速度慢,考虑

(1)yum install jenkins --downloadonly,这样你的rpm包会在/var/cache/yum/x86_64/7/jenkins/packages下,复制到那台要安装的服务器上,yum localinstall jenkins-2.150.1-1.1.noarch.rpm即可。

(2)使用镜像下载,在http://mirrors.jenkins-ci.org/status.html查询。

2、参数配置

(1)Java位置

vi /etc/rc.d/init.d/jenkins
    candidates="
    ************
    ************
    /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.191.b12-1.el7_6.x86_64/bin/java
    "
(2)Jenkins 端口号修改
  a. web界面端口号 
      vi /etc/sysconfig/jenkins
      JENKINS_PORT="8080" ---→  xxxx
  除了:6666-6669端口是IRC协议使用的缺省端口,存在安全风险,容易被木马等程序利用,应该是出于安全考虑,谷歌,火狐浏览器给屏蔽了。
  b. Jenkins运行脚本的用户
  JENKINS_USER默认值为Jenkins,注意你之前部署项目的脚本有没有给这个用户分配权限,为方便可考虑改为root。
3、启动和停止
  service jenkins start
    service jenkins stop
       service jenkins restart
       chkconfig jenkins on
    如果启动失败,查看日志/var/log/jenkins/jenkins.log
4、引导页
  引导页可以直接点右上角X跳过,这样登录时直接输入admin/初始密码(/var/lib/jenkins/secrets/initialAdminPassword)即可。
  如果不想跳过,suggested的插件一个都不要装,以后按需来,除非你确信自己网络状况很好。
  如果启动后兴奋乱改导致配置失败不好挽回,yum remove jenkins,删除/var/lib/jenkins,重新install,这样才会完全重置。
5、安全设置
  左上系统管理-系统设置-全局安全配置,启用安全,Security Realm选Jenkins专有用户数据库,Authorization选登录用户可以做任何事。
  CSRF Protection中Prevent Cross Site Request Forgery exploits前面的√去掉。
  如果修改失败Jenkins会报错(不安分的管家啊),在/var/lib/jenkins/config.xml中<useSecurity>true</useSecurity>改为false就可以设置了。
6、新建一个任务(构建),支持带token的url调用
  (1)我们的目的在于摆脱SSH登录服务器,通过远程url调用,这里假设你已经有了一个部署脚本,完成了git拉取代码并编译打包(maven)的工作,否则需要下载Jenkins的git、maven插件并配置。
  在Build这里选择执行shell,输入之前的部署脚本,并在开头添加

  #!/bin/bash -ilex (允许使用系统环境变量)参考https://blog.csdn.net/zzusimon/article/details/57080337
  #!/bin/sh -e (每条指令之后,都可以用$?去判断它的返回值,零就是正确执行,非零就是执行有误)

  最后,在你之前的部署脚本中加入export BUILD_ID=dontkillme,或者在Jenkins的节点管理中添加,以免Jenkins默认kill构建脚本中所启动的子进程。

  (2)Build Triggers
  Trigger builds remotely (e.g., from scripts)这里选中,填上一个token,这样就可以通过JENKINS_URL/job/构建名/build?token=TOKEN_NAME调用了(get方法即可)。
  注意,如果这里没有启用安全设置,所有人都可以通过/build随时构建你的项目。
7、查看构建结果和历史
  通过左上角Build History查看每一次构建状态信息,最右侧按钮查看console打印信息。
-------------------
待补充。
 


以上是关于不安分的管家——Jenkins的主要内容,如果未能解决你的问题,请参考以下文章

无法触发烧瓶不安分的后处理器

JenkinsJenkins安装

思否有约 | @敖丙:我是一个不安分的人

烧瓶 - 不安分使用分页或得到完整的回应

不安分的 Go 语言开始入侵 Web 前端领域了

“不安分”的花椒直播,搞了史上首个网红演唱会