linux服务器安装jenkins自动部署php项目并发送邮箱通知

  • 在Linux服务器上下载Jenkins
    下载地址:https://jenkins.io/zh/download/
    选择你的服务器对应的版本,我的是centos6,选择这个版本

    点击进去:

    命令行官方已给出,依次执行以下命令行
    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
  • 2.安装java环境(官网说的需要的版本是java8或者是java11)
    打开网站
    http://www.oracle.com/technetwork/java/javase/downloads
    选择对应版本的JDK,点击下载

    选择对应的安装包

    3.在服务器上usr目录下创建java安装目录

    cd /usr
    mkdir java

    4、将下载好的JDK文件copy到/usr/java目录

    cp /mnt/hgfs/linux/jdk-8u60-linux-x64.tar.gz /usr/java/

    5、解压到当前目录

    tar -zxvf jdk-8u60-linux-x64.tar.gz

    得到文件夹 重命名为jdk

    mv jdk1.8.0_60 jdk

    6、编辑配置文件,配置环境变更

    vim /etc/profile

    添加如下内容:

    JAVA_HOME=/usr/java/jdk
    CLASSPATH=$JAVA_HOME/lib/
    PATH=$PATH:$JAVA_HOME/bin
    export PATH JAVA_HOME CLASSPATH

    7、执行命令:

    source /etc/profile

    8、查看安装情况

    java -version
    javac -version

    java version “1.8.0_60″
    Java(TM) SE Runtime Environment (build 1.8.0_60-b27)
    Java HotSpot(TM) Client VM (build 25.60-b23, mixed mode)

    9.打开终端进入到jenkins的下载目录.
    运行命令,下面的8080端口是jenkins的打开端口,可自己修改,注意自己的服务器的端口是开启

    java -jar jenkins.war --httpPort=8080

    打开浏览器进入链接 http://localhost:8080.//此处换成你的服务器的ip
    按照说明完成安装jenkins.

    10.检查插件是否安装并安装插件

    在通过Jenkins发布php代码之前,我们首先需要在Jenkins服务的web页面上检查一下 “Git plugin” 和 “Publish Over SSH” 两个插件是否已安装:

    “系统管理” → “管理插件” → “已安装”,然后搜索Git plugin看看是否已安装,一般这个插件都是默认安装的:

    然后到 “可选插件” 里安装 Publish Over SSH 插件:

    11.配置密钥认证
    生成密钥对后,首先把公钥拷贝到服务器上去(多个服务器配置多个(需自行验证)),也就是把公钥的内容粘贴到 .ssh/authorized_keys 文件里,和我们之前配置远程登录的密钥验证是一样的。(一定要保存在authorized_keys文件中),设置authorized_keys文件的权限是600

    chmod -R 600 authorized_keys

    12.查看密钥粘贴在jenkins配置中,点击“系统管理” → “系统设置”,下拉页面,大概在网页的最下面可以找到 “Publish Over SSH”
    注:Jenkins SSH Key 这一栏默认会使用Jenkins管理员admin账户的密码,可以不填则设置为空密码。


    13.构建项目
    以上我们配置完了插件以及远程机器,现在就可以开始新建任务了:

    1. 配置项目名称与描述:

    1. 配置远程仓库的地址:

      16.构建触发器这一步比较关键,卡了好久,首先我们先去看看码云关于Webhook文档(http://git.mydoc.io/?t=154711 ),我们要抓取研发push这个Webhook POST过来的数据,然后根据里面内容关键字ref判断是否为开发分支,如果是开发分支,则让Jenkins拉开发分支最新的代码下来构建。所以图四,勾选插件触发器,给抓出来的数据起个变量名ref,抓取内容为$.ref(看码云的文档)。

    好,稍微下来一点,我们只需要获取POST数据,header和request不用理。接下来也很关键,定义过滤出来什么字串才触发这个任务。所以使用正则匹配,text为匹配出什么结果就触发这个任务,于是我们填入刚才抓取临时存放的变量$ref,注意这里不是原始数据的$.ref。

    剩下就是告诉拉完代码下来之后做什么操作了,后面的文章会讲到,这里我就随便输出点东西了。

    点击保存之后,回到码云的项目管理页面,填入URL

    URL格式为 http://有读权限的用户名:该用户名密码@jenkis地址/generic-webhook-trigger/invoke

    http://jenkins的账号:jenkins的密码@123.***.***.***:8080/generic-webhook-trigger/invoke?token=testgit

     点击测试,返回ok就说明接口能用了,如果返回如下,则用户名密码可能没填或者没对。
    {"status":"ok","data":{"triggerResults":{"ANY":"Did not find any jobs to trigger!
    The user invoking /generic-webhook-trigger/invoke must have read permission to any
    jobs that should be triggered. You may try adding http://user:[email protected] or configuring
     and passing an authentication token like ...trigger/invoke?token=TOKENHERE"}}}
    最后,在dev分支提交代码,就会触发任务了,至此需求完成。

    ps:码云点测试按钮默认是触发master push,实验过程有问题,可以只勾选一项,不作判断,就可以测试触发了,如下图。

    16.“构建” ,最核心的一步,选择 “Send files or execute commands over SSH” :

    简单说明:

    SSH Server,Name 选择对应的服务器,
    Transfers, Source files填写/,表示全部文件
    Remove prefix可以指定截掉的前缀目录,这里留空即可,
    Remote directory指定远程服务器上代码存放路径,比如/data/wwwroot/www.aaa.com
    Exec command为文件传输完成后要执行的命令,比如可以是更改文件权限的命令,设置完成后点击 “Add Transfer Set”,如果还有另外的机器,可以点击 “Add Server”重复以上操作
    完成以上操作后,就可以使用这个刚刚创建的任务去工作了,点击左面的 “立即构建” ,就能把git上的代码发布到指定的服务器上:

    构建输出完成

    到远程机器上,看看是否已经存在这个目录:

    17.设置邮箱通知
    步骤:

    访问Jenkins服务端(ip+端口),登录Jenkins
    点击系统管理

    选择管理插件

    选择可选插件

    搜索Mailer Plugin

    点击直接安装
    点击Jenkins的系统管理-》系统设置-》Extended E-mail Notification(只有安装了Mailer Plugin插件才会出现该项配置),端口号一般为25,注意自己的服务器是否开启此端口

    进行邮件配置
    Default Subject:
    构建通知:$PROJECT_NAME - Build # $BUILD_NUMBER - $BUILD_STATUS!
    Default Content:

    <hr/
    (本邮件是程序自动下发的,请勿回复!)<br/><hr/>
    项目名称:$PROJECT_NAME<br/><hr/>
    构建编号:$BUILD_NUMBER<br/><hr/>
    构建状态:$BUILD_STATUS<br/><hr/>
    触发原因:${CAUSE}<br/><hr/>
    构建日志地址:<a href="${BUILD_URL}console">${BUILD_URL}console</a><br/><hr/>
    构建地址:<a href="$BUILD_URL">$BUILD_URL</a><br/><hr/>
    变更集:${JELLY_SCRIPT,template="html"}<br/><hr/>

    注意点
    点击应用,点击保存

    点击创建的任务进行邮箱的构建,点击配置,选择构建后操作


    点击应用,保存,构建,查看邮箱是否收到邮件提醒
    收到的邮件效果

    原文地址:https://blog.51cto.com/itafei/2426291

    时间: 2024-10-09 02:20:45

    linux服务器安装jenkins自动部署php项目并发送邮箱通知的相关文章

    Jenkins自动部署springboot项目

    说明: 该示例为在windows系统下自动化部署springboot 架构: springboot + github + gradle + jdk8 各种配置步骤及截图说明: 1.配置git,gradle及jdk 系统管理 → 全局工具配置 说明:其中git配置项中的Path to Git executable要指到git.exe文件,maven的配置方式和gradle类似 2.构建任务说明 新建任务 →  General 项目 URL : 源码所在的github路径 参数构建化过程→添加参数

    Jenkins自动部署发布Java代码(完整教程)

    一.需求 Jenkins大多数情况下都是用来部署Java项目,上一篇博客已经写了自动打包Java项目,但在现实应用中,Jenkins很强大的,可以做到自动打包发布Java项目.这篇文章,将引导大家完成完整的Java项目(自动发布代码功能)! 二.实验环境 三.实验步骤 1.搭建tomcat 服务(在192.168.22.129服务器上) (1)先安装jdk1.8 jdk和tomcat 下载地址: https://pan.baidu.com/s/1URk88Tp2Io0eUEMo1WpoCg 提取

    Jenkins自动部署Shell脚本

    注意:本脚本用于Shell脚本分享,因环境不同,不可直接用于其它环境部署用. #!/bin/bash#时间:2019年7月29日#作者:肖山#微信:helpxiaoshan#用途:用于XXXX UAT环境ATG商城项目Jenkins自动部署使用. ############ 使用注意事项:################################################################################# 注意1:需修改目标主机/etc/ssh/sshd

    (转)maven自动部署web项目到tomcat8(向下兼容7)

    maven自动部署web项目到tomcat8(向下兼容7) 2014-08-29 10:52 网站上线以后,为了保证网站运行的连续性,有新功能更新时,不能重启Tomcat服务器去部署新增功能.因此,就研 究一下用maven的自动部署功能. 1首先要保证自己电脑上装了Tomcat服务器 进入Tomcat安装目录,打开..\conf\tomcat-users.xml,在这个配置文件中加入以下内容: <role rolename="manager-gui"/> <role

    maven 自动部署war(项目)到tomcat

    1.软件版本 apache-tomcat-7.0.55 apache-maven-3.2.2 eclipse-standard-luna-R-win32-x86_64 2.修改文件 2.1 tomcat  tomcat-users.xml 增加如下用户 角色 manager-script manager-script - Access to the tools-friendly plain text interface that is described in this document, an

    使用Jenkins 自动部署发布

    使用Jenkins自动部署发布,继Jenkins部署篇后: #注意:jenkins路径会有差异,不用在意这个,同一个版本部署2次,发现了2个不同的目录结构,很诧异. jenkins build玩war包的存放目录:/data/jenkins/workspace/simple/target 自动发布的脚本存放路径:/data/jenkins/jobs/simple 脚本的内容: 脚本使用的是scp命令,当然也可以使用wget等. [[email protected] simple]# cat de

    linux下实现自动部署tomcat的脚本

    linux下实现自动部署tomcat的脚本 由于经常部署war到tomccat上,经常有一些重复的工作要做:停服务.备份war包.上传新的war包.启动服务.索性就写了一个自动部署的脚本. 脚本如下autoDeploy.sh: 1 #! /bin/sh 2 echo '####################开始自动部署####################' 3 path=`pwd` #当前路径 4 tomcatPath=tomcat-7 #指定tomcat文件目录名称 5 cd ../$t

    服务器做了格式化后(ip没变),jenkins自动部署报错

    jenkins自动部署报错如下:@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@    WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!     @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY!Some

    Linux+Jenkins环境搭建以及自动部署django项目-构建配置

    注意点1:cd xxx BUILD_ID=DONTKILLME nohup python manage.py runserver 0.0.0.0:8000 & BUILD_ID=DONTKILLME : 在jenkins里面在后台运行的程序都会被jenkins自动杀死 所以需要加上BUILDID这个参数 加了这个参数你的程序就不会被杀死   原文地址:https://www.cnblogs.com/yanghaotai/p/9564566.html