占个位,持续补充。

一、使用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的更多相关文章

  1. 安全研究 | Jenkins 任意文件读取漏洞分析

    欢迎大家前往腾讯云+社区,获取更多腾讯海量技术实践干货哦~ 本文由云鼎实验室 发表于云+社区专栏 一.漏洞背景 漏洞编号:CVE-2018-1999002 漏洞等级:高危 Jenkins 7 月 18 ...

  2. Jenkins集群搭建

    Jenkins的目的是加快CI/CD的步伐,集群的搭建也不是必须的,当一台服务器的构建速度受到限制下,可以考虑使用主从并发构建,来加快构建速度.作为一款超级管家的角色,Jenkins的资料非常多,Je ...

  3. 从Docker 到Jenkins 到Ansible的部署经验

    从Docker 到Jenkins 到Ansible的部署经验 工作中,除了开发功能,还负责系统的部署工作.我从频繁的部署工作中,逐渐找到了一些偷懒的方法.从传统的Java -jar命令启动服务,到通过 ...

  4. Jenkins这种构建工具,一般都是内部使用,所以外部基本上不能访问

    类似于Jenkins这种构建工具,一般都是内部使用,所以外部基本上不能访问,也可以隔绝外部黑客的入侵等.直接暴露外部是非常不安全的,特别是没有什么安全验证,容易被别人入侵做一些非法的事情! 所以,希望 ...

  5. 使用jenkins+sonar进行代码扫描,并发送自定义邮件

    jenkins架构 1.一台机器作为jenkins master不进行构建操作,只负责调度其他slave节点执行任务 2.一台slave机器作为执行机器存放从gitlab上拉取的代码,使用sonar- ...

  6. 威胁快报|首爆,新披露Jenkins RCE漏洞成ImposterMiner挖矿木马新“跳板”

    简介 阿里云安全于近日捕获到一起使用Jenkins RCE漏洞进行攻击的挖矿事件.除挖矿外,攻击者还曾植入具有C&C功能的tsunami木马,也预留了反弹shell的功能,给用户带来极大安全隐 ...

  7. Jenkins 安装的HTML Publisher Plugin 插件无法展示ant生成的JunitReport报告

    最近在做基于jenkins ant  junit 的测试持续集成,单独ant junit生成的junitreport报告打开正常,使用Jenkins的HTML Publisher Plugin 插件无 ...

  8. Python-Jenkins API使用 —— 在后端代码中操控Jenkins

    最近在工作中需要用到在后台代码中触发Jenkins任务的构建,于是想到Jenkins是否有一些已经封装好的API类库提供,用于处理跟Jenkins相关的操作.下面就简单介绍下我的发现. Linux C ...

  9. 在centos7上安装Jenkins

    在centos7上安装Jenkins 安装 添加yum repos,然后安装 sudo wget -O /etc/yum.repos.d/jenkins.repo http://pkg.jenkins ...

随机推荐

  1. 手把手教程: CentOS 6.5 LVS + KeepAlived 搭建 负载均衡 高可用 集群

    为了实现服务的高可用和可扩展,在网上找了几天的资料,现在终于配置完毕,现将心得公布处理,希望对和我一样刚入门的菜鸟能有一些帮助. 一.理论知识(原理) 我们不仅要知其然,而且要知其所以然,所以先给大家 ...

  2. 自定义JDBC工具类

    因为数据库的连接代码都是固定的,为了将减少重复的代码的书写,可以将这些代码封装为一个工具类,获取数据库的连接对象. import java.sql.Connection; import java.sq ...

  3. Alibaba Cloud Toolkit 一键部署插件使用入门

    一.前言 Cloud Toolkit官方介绍文档:https://www.aliyun.com/product/cloudtoolkit Cloud Toolkit 是针对 IDE 平台为开发者提供的 ...

  4. spring中基于注解使用ehcache

    继续上篇,这篇介绍服务层缓存,基于注解的方式使用ehcache 注解的标签主要有4个:@Cacheable.@CacheEvict.@CachePut.@Caching,他们的用法是: @Cachea ...

  5. 程序员写 2000 行 if else?领导:这个锅我不背

    前言 知乎上有小伙伴提了这么一个问题,如何看待陕西省普通话水平测试成绩查询系统?查询系统前端代码就直接给出了身份账号,姓名,证书编号,如果信息是真的,就泄露了这么多考生的信息,白给那种.为什么会发生这 ...

  6. Pots POJ 3414

    /* *POJ 3414 *简单模板bfs *编程应该为了方便理解,尽量提供接口 */ #include<cstdio> #include<algorithm> #includ ...

  7. uC/OS-III 时钟节拍(一)

    时钟节拍就是操作系统的时基,操作系统要实现时间上的管理,必须依赖于时基(时基即时间基准,操作系统的基准时钟). uC/OS-III时钟节拍的实现过程 时钟节拍就是系统以固定的频率产生中断(时基中断), ...

  8. (七十九)c#Winform自定义控件-导航菜单

    前提 入行已经7,8年了,一直想做一套漂亮点的自定义控件,于是就有了本系列文章. GitHub:https://github.com/kwwwvagaa/NetWinformControl 码云:ht ...

  9. aircrack-ng wifi密码破解

    wifi密码破解 步骤1:查看网卡信息 ifconfig 找到你要用到的网卡 步骤2:启动网卡监听模式 airmon-ng start wlan0 我的是wlp2s0 步骤三:查看网卡变化 wlan0 ...

  10. Java的一些基础知识深入

    1.浅析Java中的final关键字: 2.Java中的static关键字解析: 3.探秘Java中String.StringBuilder以及StringBuffer: 4.Java内部类详解: 5 ...