zoukankan      html  css  js  c++  java
  • 不安分的管家——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打印信息。
    -------------------
    待补充。
     
  • 相关阅读:
    状压DP
    string
    hdu3068
    HDU Stealing Harry Potter's Precious(状压BFS)
    状压BFS
    BFS+打印路径
    poj Meteor Shower
    C语言-无符号数与有符号数不为人知的秘密
    keras_实现cnn_手写数字识别
    python_plot画图参数设置
  • 原文地址:https://www.cnblogs.com/feixuefubing/p/10193293.html
Copyright © 2011-2022 走看看