jenkins 安装步骤

环境: centos7,jdk1.8.0,jenkins2.165,maven3.5.2

一、 安装配置java环境

    # tar -zxvf jdk-8u171-linux-x64.tar.gz   
    # mv  jdk1.8.0_171/ /usr/local/java
    # vim /etc/profile       # 配置环境变量
        export JAVA_HOME=/usr/local/java
     export JRE_HOME=${JAVA_HOME}/jre
     export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
     export PATH=${JAVA_HOME}/bin:$PATH
    # source /etc/profile   #  环境变量生效
    # java -version    # 安装完成,查看java版本
     java version "1.8.0_171"
    Java(TM) SE Runtime Environment (build 1.8.0_171-b11)
    Java HotSpot(TM) 64-Bit Server VM (build 25.171-b11, mixed mode)

二、安装jenkins

      第一种方法,使用yum安装

  第二种方法,使用war包部署

下载war包:https://mirrors.tuna.tsinghua.edu.cn/jenkins/war-stable/2.150.3/jenkins.war

将war包部署到tomcat下面,通过启动tomcat来运行jenkins。

这里我使用第一种方法

三、安装完成,启动服务

           # systemctl start jenkins.service
   # ps -ef |grep jenkins
jenkins 26904 1 39 16:23 ? 00:00:18 /usr/bin/java -Dcom.sun.akuma.Daemon=daemonized -Djava.awt.headless=true -DJENKINS_HOME=/var/lib/jenkins -jar /usr/lib/jenkins/jenkins.war --logfile=/var/log/jenkins/jenkins.log --webroot=/var/cache/jenkins/war --daemon --httpPort=8080 --debug=5 --handlerCountMax=100 --handlerCountMaxIdle=20
       
   配置文件目录: /etc/sysconfig/jenkins 
  日志目录: /var/log/jenkins/jenkins.log
   war包目录:/usr/lib/jenkins/jenkins.war 
   工作区目录:/var/lib/jenkins

四、登录jenkins

访问jenkinsip:8080 ,进入登录页面,安装插件,创建管理员用户

五、jenkins基础配置

创建用户:系统管理--》管理用户
用户权限:系统管理--》全局安全配置--》访问控制--》授权策略--》安全矩阵--》添加用户
     

jenkins+git+maven+tomcat搭建自动化部署项目环境

1、安装maven
  • 下载地址  https://maven.apache.org/download.cgi

    # wget http://mirror.bit.edu.cn/apache/maven/maven-3/3.5.2/binaries/apache-maven-3.5.2-bin.tar.gz
    # tar zxvf apache-maven-3.5.2-bin.tar.gz
    # mv apache-maven-3.5.2 /usr/local/
  • 配置环境变量:

    # vim /etc/profile
    export MAVEN_HOME=/usr/local/apache-maven-3.5.2
    export PATH=$MAVEN_HOME/bin:$PATH
    # source /etc/profile
    # mvn --version

2、配置jenkins服务器和git仓库的连通性

1, jenkins服务器安装git命令

  • # yum install git -y
  • #  git --version
     git version 1.8.3.1

   2, git最好是使用ssh协议,然后使用ssh密钥,这样免去每次都输密码的麻烦

       
     把jenkins服务器的用户公钥加到git仓库的两种方法:
        1.登入git点击头像,然后 Settings -> 左栏点击 SSH Keys -> 添加   
        2.选择项目-->Settings-->Repository-->Deploy Keys 添加
     验证: 加完之后在jenkins服务器验证能够直接远程git私有库
               # git ls-remote -h git@github.com:test/test-java.git HEAD  没有报错就说明能够连通
 
3、 jenkins配置构建
    1,jenkins先安装maven插件。系统管理-->管理插件  安装 Maven Integration插件  
    2,新建一个任务,构建一个自由风格的项目,名为java-test.
配置: 

    jenkins加私钥的方法: 在jenkins-->Credentials-->Add Credentials 加入jenkis服务器私钥
    构建过程:
    
     Goals and options : clean install -D maven.test.skip=true
 

将war项目部署到远程服务器

1,在远程服务器安装tomcat,用于部署运行war包
    下载地址: http://tomcat.apache.org/
  # wget http://mirrors.hust.edu.cn/apache/tomcat/tomcat-8/v8.5.38/bin/apache-tomcat-8.5.38.tar.gz
  # tar xzvf apache-tomcat-8.5.38.tar.gz
  # mv apache-tomcat-8.5.38 /usr/local/tomcat
2,配置远程tomcat的角色和用户,否则jenkins服务器无法将war发送过来
  在tomcat目录conf文件夹下tomcat-users.xml
<role rolename="manager-status"/>
<role rolename="manager-jmx"/>
<role rolename="manager-gui"/>
<role rolename="manager-script"/>
<user username="tomcat" password="tomcatpass" roles="manager-gui,manager-script,manager-jmx,manager-status" />
</tomcat-users>
还需配置  vim webapps/manager/META-INF/context.xml
<Context antiResourceLocking="false" privileged="true" >
<Valve className="org.apache.catalina.valves.RemoteAddrValve"
allow="127\.\d+\.\d+\.\d+|::1|0:0:0:0:0:0:0:1|112.97.59.*|118.24.103.105" />
#  加上允许的ip 或者网段
   本地测试是否允许远程连接的:访问ip:8080/manager/html  提示输入用户名密码 输入之后可以进入页面 
3,配置jenkins, “构建后操作 ”  
  将打包好的war包发送到远程服务器 ,事先需安装安装Deploy to container Plugin
 
配置完成点击保存,然后点击开始构建。查看日志,构建成功。
验证:访问远程tomcat服务器,发现程序已经正常运行。(构建的是热部署,不用重新启动tomcat)
 
其他配置说明:

发布时选择github库里代码分支的配置
 1,先在管理插件里面安装 Git Parameter 插件
 2,在配置--》【参数化构建过程】 中加入【Git Parameter选项】 { Name: BRANCH_NAME   Description:分支  Parameter Type:Branch }  
在【源码管理】里面 【Git Repositories】的选项 Branches to build: Branch Specifier (blank for 'any') 填入${BRANCH_NAME}
点击系统管理->Global Tool Configuration,配置jdk,git,maven的根目录
 
给项目单独指定分配用户权限:
1,安装Matrix Authorization Strategy这个插件

2,全局安全配置->Access Control Authorization->项目矩阵授权策略:

 3,在项目里面,为用户分配构建权限。

备份恢复 

jenkins自带一个备份恢复的插件:ThinBackup

配置之后 ,还可选择立即备份,或者恢复

Jenkins构建完成自动发送邮件配置 

1. 打开"系统管理"——"系统设置"
2. 在"Jenkins Location"设置系统管理员地址(重要:不能省略!)
3. 在"邮件通知"部分配置发送邮件的用户名、密码(注意这里的密码使用的是qq邮箱设置的"客户端授权码",不是登陆密码)
4. 测试:勾选"通过发送测试邮件测试配置",填入测试收件人,点击"Test Configuration" 到qq邮箱里check新邮件
 

5.实例配置。  "系统管理"——"系统设置"

再进入任务的配置页面,然后在构建后操作模块增加构建后的操作“Editable Email Notification”
 6,注意要添加触发器 否则邮件也不会发送
 7,系统设置里面可以配置默认的收件人文本类型邮件主题内容等。
 

打开调试模式

 

结合salt构建项目

jenkins带有一个saltstack插件,可以通过salt-api执行salt命令和state文件。

官网文档:https://wiki.jenkins.io/pages/viewpage.action?pageId=105742376

1, jenkins【系统管理】->【管理插件】->【可选插件】->【saltstack】->安装
2, 在salt-master服务器上面配置 salt-api
  安装salt-api   # yum Install salt-api -y
       权限配置   允许访问salt-api的用户获得必要的salt模块的权限。 同时为@runner返回者授予访问权限。
    # vim /etc/salt/master.d/salt-api.conf

external_auth:
pam:
salt: #用户名
- test.* #可以使用的salt模块
- pkg.*
- cmd.*
- state.*
- '@runner'
salt-test: #用户名
- .*
- '@runner'
rest_cherrypy: # CherryPy HTTP 配置
port: 8000
disable_ssl: True #不启用ssl
# ssl_crt: /etc/pki/tls/certs/localhost.crt
# ssl_key: /etc/pki/tls/certs/localhost.key
expire_responses: False
 
3,添加用户名密码
# useradd salt
# echo 'salt.123' |passwd --stdin salt 
验证: #salt -a pam '*'  test.ping
 
4,jenkins 配置
runner    master上运行salt-run命令 
 
可以在日志中看到
[test-salt] $ /bin/sh -xe /tmp/jenkins4249602781345844003.sh
Response on manage.status
[{
"down": ["minion-dev"],
"up": ["minion-pro"]
}]
 
local  运行salt命令的标准方法。如果命令快速返回,则返回结果。否则,如果命令长时间运行,jenkins将不会等待。
如下:执行salt-api服务器上面的 history.sls文件
相当于在salt-master执行:   # salt  'server02'  state.sls history

salt-master服务器上面

history_date:
file.append:
- name: /etc/profile
- text: HISTTIMEFORMAT='%F %T '

# /srv/salt/history.sls

可以在上面的配置里启用参数化构建。先把目标服务器设置成一个变量,这里的Target使用这个变量, 构建时指定服务器就可以

如果不使用参数化构建,Target直接填要发布的minion服务器id。

构建的时候勾选目标服务器就可以啦

构建成功,验证minion02上面/etc/profile 最后一行多了一句 HISTTIMEFORMAT='%F %T '

日志:

jenkins+maven+git+tomcat+salt自动构建的更多相关文章

  1. jenkins的 git多分支自动构建

    一.先做好jenkins和gitlab的webhook自动构建 二.选择哪个分支(我这是test分支) 三.选择build Triggers 四.过滤test分支 五.保存即可

  2. jenkins maven git windows code 自动部署

    本人刚刚接触  写的不好就对付看看吧 哈哈哈O(∩_∩)O哈哈~ 最近看见别人弄得自动部署 自己也是手痒痒 也想弄一个 所以就弄了一个 windows的 我用的是https的  在网上看了很多都是 s ...

  3. Jenkins+Maven+Git CI环境搭建手册

    Jenkins+Maven+Git CI环境搭建手册 环境: OS:Linux version 2.6.32-220.23.2.ali878.el6.x86_64 (ads@kbuild) (gcc ...

  4. linux服务器中Jenkins集成git、Gradle持续构建Springboot项目

    Jenkins是用java编写的开源持续集成工具,目前被国内外各公司广泛使用.本章教大家如何在linux服务器中使用Jenkins自动发布一个可作为linux服务发布的Springboot项目. 自动 ...

  5. Jenkins+maven+git+sonar 系统持续集成&amp;代码单測管理

    Jenkins+maven+git+sonar 系统持续集成&代码单測管理 Jenkins的安装 Jenkins是基于Java开发的一种持续集成工具,用于监控持续反复的工作.功能包含: 1.持 ...

  6. ant+svn+tomcat实现自动构建

    前段时间用做了一个简单的web api服务,在调试的过程中感觉到手动发布实在是效率低而且容易出错,于是花点时间搞了一下ant+svn+tomcat的自动构建,效果不错,今天拿出来分享一下. 准备工作 ...

  7. Jenkins + Maven + Ansible + Tomcat 实现JAVA代码自动部署

    自动部署过程: jenkins从svn拉取代码,调用maven去打war包,用ansible去解压war包,最后重启tomcat. 前情回顾:在前面的文章我的环境已经有Jenkins+ansible ...

  8. Git钩子设置自动构建Jenkins

    打开Git仓库,找到对应的项目,点击“仓库设置”,左侧点击“管理Git钩子”,如下图所示: 因为是push之后触发自动构建的,选择“post-receive”进行编辑 #!/bin/bash #提取分 ...

  9. Jekins - Hello world,Jekins + Maven + Git + Tomcat 的简单应用

    Java Web 工程 新建一个简单的 Java Web 工程,并提交至 GitHub,可参考 Eclipse 提交工程至 GitHub 下载 jekins.war 在 http://mirrors. ...

随机推荐

  1. openwrt源码下的feeds.conf.default有何作用?

    答: 可以往openwrt下添加一些最新的软件包,这样make menuconfig后就可以发现很多软件包了. 该文件中的内容格式如下例: src-git packages https://git.l ...

  2. P3979 遥远的国度

    P3979 遥远的国度 思路 一开始我用这个函数得到左端点 int get_l(int x,int y) { if(top[x]==top[y]) return son[x]; int last=to ...

  3. newcoder 筱玛的迷阵探险(搜索 + 01字典树)题解

    题目描述 筱玛是个快乐的男孩子. 寒假终于到了,筱玛决定请他的朋友们一起来玩迷阵探险. 迷阵可以看做一个n×nn×n的矩阵A,每个格子上有一个有一个数Ai,j. 入口在左上角的(1,1)处,出口在右下 ...

  4. switch反汇编(C语言)

    在分支较多的时候,switch的效率比if高,在反汇编中我们即可看到效率高的原因 0x01分支结构不超过3个 #include <stdio.h> void main() { int x ...

  5. .net Core 依赖注入 Add********说明

    AddTransient瞬时模式:每次请求,都获取一个新的实例.即使同一个请求获取多次也会是不同的实例 AddScoped:每次请求,都获取一个新的实例.同一个请求获取多次会得到相同的实例 AddSi ...

  6. (zhuan) 一些RL的文献(及笔记)

    一些RL的文献(及笔记) copy from: https://zhuanlan.zhihu.com/p/25770890  Introductions Introduction to reinfor ...

  7. webpack用 babel将ES6转译ES5

    webpack webpack.config.js配置文件 module.exports = { entry: './es6.js', // 入口文件路径 output: { filename: &q ...

  8. 给大家分享两套WordPress收费主题

    主题一:No.7 – 极简 by 大当家 1.主题网址:http://qzhai.net/2016-03-546.html 2.主题预览:http://qzhai.net/000/?theme=No. ...

  9. facebook api之Access Tokens之Business Manager System User

    Business Manager System User Make programatic, automated actions on ad objects or Pages, or do progr ...

  10. POJ 3278 Catch That Cow(赶牛行动)

    POJ 3278 Catch That Cow(赶牛行动) Time Limit: 1000MS    Memory Limit: 65536K Description - 题目描述 Farmer J ...