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. Ground Defense【不知道叫啥可能就是枚举】

    问题 G: Ground Defense 时间限制: 1 Sec  内存限制: 128 MB 提交: 116  解决: 22 [提交] [状态] [命题人:admin] 题目描述 You are a ...

  2. linux服务器的所有服务web/dns/dhcp/vsftp-nfs-samba的配置

    nfs是sun开发的 network filesystem 网络文件系统,相当于win的映射网络驱动器, 可以将一台nfs服务器上的目录"挂载"到本地机器上的 一个 本地目录 一样 ...

  3. JXOI2018守卫 区间DP

    链接 https://loj.ac/problem/2545 思路 f[i][j]表示i到j区间的最小监视人数 可以预处理出来g[i][j],表示i能否监视到j (其实预处理的关系不大,完全可以直接判 ...

  4. leetcode 04 Median of Two Sorted Arrays

    n1 为 num1的 len n2 为 num2的 len 故中间的数应该是 k = (n1 + n2 + 1) / 2 二分 num1中位置 m1 , 故 num2的位置为m2 必须保证 nums1 ...

  5. vue项目从引入vue.js 改为使用vue-cil (webpack)时修改的一些内容

    在元素属性中不要写js关键字,会报使用关键字的错如@click='if(){}else{}', if-else 语句可以使用三元表达式或短路运算符来实现 v-for 不写:key  会有警告 ,使用: ...

  6. JQuery---高级类选择器

    1.ContentFilters 1.1 语法:$('div:contains(edu)').css('backgroundColor','yellow'); 只看div 本身是否包含内容 1.2 语 ...

  7. Hive command

    hive常用命令 Hadoop Hive概念学习系列之hive里的分区(九) DOC hive分区(partition)简介 Hive分区(静态分区+动态分区) Hive分区.分桶操作及其比较 hiv ...

  8. Linux 下终端 C 语言控制光标的技巧

    // 清除屏幕 #define CLEAR() printf("\033[2J") // 上移光标 #define MOVEUP(x) printf("\033[%dA& ...

  9. 分布式爬虫scrapy-redis中settings.py中的配置信息

    SCHEDULER = "scrapy_redis.scheduler.Scheduler" # 使用scrapy-redis的调度器 ITEM_PIPELINES = { 'sc ...

  10. node.js 学习笔记一

    2017-05-01 安装node 我没安装,下载即使用.要全局使用的话把node加入到环境变量中即可. 以下命令环境均为 cmd . 体验 体验一: 在命令行输入 node ,即进入 node 程序 ...