Jenkins 讲师:郭宏泽.

Slides:



Advertisements
Similar presentations
LSF系统介绍 张焕杰 中国科学技术大学网络信息中心
Advertisements

6 Copyright © Oracle Corporation, All rights reserved. 维护控制文件.
第十八章 郵件伺服器架設 學習目標 介紹電子郵件伺服器 了解電子郵件傳送運作 了解SMTP與POP3協定 了解IMAP協定
MHA(Master High Availability) 作者
开发环境和系统演示.
在PHP和MYSQL中实现完美的中文显示
J2EE与中间件技术 ——Lab.
移动开发的灵便迭代之道 黄凯.
Android快速开发入门 巫文杰、Android工程师 讲师的CSDN博客地址
JAVA开发Web Service快速入门
第四章 網頁表單與資料傳遞.
Web Server 架設.
软件设计模式与体系结构课程设计 周 宇 College of Information Science and Technology
LSF系统介绍 张焕杰 中国科学技术大学网络信息中心
K/3 Cloud云之家集成 K/3 Cloud 基础系统部.
Android开发入门 -----Android 开发“Ready go!” 主讲:李晓蕾
OpenFoundry.org 版本控制系統服務 使用教學
GERRIT使用说明 配置管理-高峰
Linux 圖形操作介面 GUI -- X-window 與 Webmin
SVN的基本概念 柳峰
AngularJS -- 使用AngularJS进行开发
第二讲 搭建Java Web开发环境 主讲人:孙娜
Maven [培训人员注意事项: 有关自定义此模板的详细帮助,请查看最后一张幻灯片。另外,可以在一些幻灯片的备注窗格中查找其他课程文本。
学习目标 1、Linux(这里用的是Centos)下mysql5.7的基本安装 2、课后习题.
学习前的准备工作 讲师:burning.
An introduction to Subversion
大学计算机基础 典型案例之一 构建FPT服务器.
SVN服务器的搭建(Windows) 柳峰
第11章:一些著名开源软件介绍 第12章:服务安装和配置 本章教学目标: 了解当前一些应用最广泛的开源软件项目 搭建一个网站服务器
大数据管理技术 --NoSQL数据库 HBase 陈 辉 大数据分析技术.
Visual Studio Team System 简介
DM81X 视频采集处理 ——简单采集显示例程讲解 广州创龙电子科技有限公司
PostgreSQL 8.3 安装要点 四川大学计算机学院 段 磊
Windows网络操作系统管理 ——Windows Server 2008 R2.
Windows网络操作系统管理 ——Windows Server 2008 R2.
研发内部系统 Pdc简要说明 2013年7月.
ENS 10.1安装配置指南 王俊涛 | SE.
第11章 Android客户端与服务器交互.
Git & github By 宋正倫 (修訂by jmchen).
VSS使用简介 王树升
DevDays ’99 The aim of this mission is knowledge..
实习前你需要知道的 PRESENTED BY Yisa.
宁波市高校慕课联盟课程 与 进行交互 Linux 系统管理.
Tomcat之旅-介绍、安装和配置.
三:基于Eclipse的集成开发环境搭建与使用
Jenkins 讲师:郭宏泽.
Docker 分享
Web安全基础教程
第四章 团队音乐会序幕: 团队协作平台的快速创建
Location Based Services - LBS
Platform Builder使用介绍 WINCE系统应用开发流程说明 ACTION RDC 杨 涛 2005.Dec.3th
姚金宇 MIT SCHEME 使用说明 姚金宇
Django 計算機程式設計 期末專題.
计算机网络与网页制作 Chapter 07:Dreamweaver CS5入门
3Glasses SDK for Unreal Engine Plugin
JSP实用教程 清华大学出版社 第2章 JSP运行环境和开发环境 教学目标 教学重点 教学过程 2019年5月7日.
iSIGHT 基本培训 使用 Excel的栅栏问题
LOGIX500软件入门 西安华光信息技术有限公司 2008年7月11日.
Touch Github = Touch the World
Python 环境搭建 基于Anaconda和VSCode.
Git 新一代版本控制系统 superwen.
C++语言程序设计 C++语言程序设计 第一章 C++语言概述 第十一组 C++语言程序设计.
单路无线视频服务器 快速安装手册 1、接口说明 2、安装连接 3、软件下载 软件安装
使用Fragment 本讲大纲: 1、创建Fragment 2、在Activity中添加Fragment
DEV310 Microsoft Visual Studio 2005托管代码调试
四路视频编码器 快速安装手册 1、接口说明 2、安装连接 3、软件下载 4、注意事项 编码器软件下载地址
DEV243 Visual Studio Team System 测试深入探讨
第17章 PHP應用實例探討 17-1 PHP應用實例探討 17-2 圖片版的訪客計數 17-3 訪客留言簿 17-4 聊天室
JUDDI安装手册.
Primary introduction to docker
Presentation transcript:

Jenkins 讲师:郭宏泽

目录 1. 持续集成 2. 基础配置 3.发布PHP项目 4. 发布Maven项目 5.远程管理

持续集成

什么是持续集成 Continuous integration (CI) 持续集成是一种软件开发实践,即团队开发成员经常集成他们的工作 ,通常每个成员每天至少集成一次,也就意味着每天可能会发生多次 集成。每次集成都通过自动化的构建(包括编译,发布,自动化测试) 来验证,从而尽快地发现集成错误。许多团队发现这个过程可以大大 减少集成的问题,让团队能够更快的开发内聚的软件。

项目做模块集成的时候,发现很多接口都不通。 没有持续集成 项目做模块集成的时候,发现很多接口都不通。 浪费大量时间 需要人手动去编译打包最新的代码。 构建过程不透明 发布代码,上线,基本靠手。 脚本乱飞

持续集成最佳实践 维护一个单一的代码库 使构建自动化 执行测试是构建的一部分 集成日志及历史记录 使用统一的依赖包管理库 每天至少集成一次

持续集成概览

基础配置

什么是Jenkins Jenkins is an automation engine with an unparalleled plugin ecosystem to support all of your favorite tools in your delivery pipelines, whether your goal is continuous integration, automated testing, or continuous delivery. 持续集成、自动测试、持续部署的超级引擎,支持自定义工具集、 多种交付通道。

YUM安装 安装依赖 安装yum源 安装Jenkins yum –y install jenkins yum install java-1.8.0-openjdk java-1.8.0-openjdk-devel 安装yum源 wget -O /etc/yum.repos.d/jenkins.repo http://pkg.jenkins.io/redhat-stable/jenkins.repo rpm --import http://pkg.jenkins.io/redhat/jenkins.io.key or rpm --import http://pkg.jenkins-ci.org/redhat/jenkins-ci.org.key 安装Jenkins yum –y install jenkins service jenkins start ckconfig Jenkins on

RPM安装 下载地址 https://pkg.jenkins.io/redhat-stable/ RPM安装 rpm –ivh jenkins-2.32.3-1.1.noarch.rpm service jenkins start ckconfig Jenkins on

访问Jenkins 访问Jenkins http://192.168.47.174:8080 查找admin默认密码 cat /var/lib/jenkins/secrets/initialAdminPassword 输入密码

安装默认插件

默认Plugin Folders Plugin OWASP Markup Formatter Plugin build timeout plugin Credentials Binding Plugin Timestamper Workspace Cleanup Plugin Ant Plugin Gradle Plugin Pipeline GitHub Organization Folder Plugin Pipeline: Stage View Plugin Git plugin Subversion Plug-in SSH Slaves plugin Matrix Authorization Strategy Plugin PAM Authentication plugin LDAP Plugin Email Extension Plugin Mailer Plugin

常用Plugin SSH plugin GitLab Plugin Pipeline Git plugin Git Parameter Plug-In Deploy Plugin Maven Integration plugin Role-based Authorization Strategy Html reports performance plugin jmeter-maven Cobertura SonarQube Blue Ocean

插件管理 系统设置>插件管理 更新插件、下载安装、代理设置、可用插件 手工安装 下载地址 http://updates.jenkins-ci.org/

覆盖插件目录 解压备份plugin.tar.gz mv plugins /var/lib/jenkins/ chown -R jenkins.jenkins plugins/ service jenkins restart

镜像管理 全部镜像 http://mirrors.jenkins-ci.org/status.html 更换镜像 http://updates.jenkins-ci.org/update-center.json https://mirrors.tuna.tsinghua.edu.cn/ http://mirror.esuni.jp/jenkins/updates/update-center.json https://mirrors.tuna.tsinghua.edu.cn/jenkins/updates/update-center.json

Jenkins目录 /var/lib/jenkins 主目录 /etc/init.d/jenkins 启动文件 /var/cache/Jenkins 程序文件 /var/log/Jenkins 日志文件

用户权限 修改/etc/init.d/Jenkins 将用户修改为root,可以调用root工具 106行,113行 修改启动端口85行,$JENKINS_PORT systemctl daemon-reload service jenkins restart

卡启动问题 Jenkins在第一次安装启动时会向官网回传信息 如果网络离线可以正常安装 当网络在线,但是https://jenkins-ci.io 无法打开时,卡住。

备份 tar zxvf jenknis.tar.gz /var/lib/jenkins/ 作业:写一个每天定时备份的脚本,保留15天的备份

系统设置 工作目录设置 Maven项目配置 设置系统JDK ANT MAVEN Jenkins Location 邮件通知 Configure Global Security

构建状态 Jenkins会基于一些后处理器任务为构建发布一个稳健指数 (从0-100 ),这些任务一般以插件的方式实现。 它们可能包括单元测试(JUnit)、覆盖率(Cobertura )和静态代码分析(FindBugs)。 分数越高,表明构建越稳定。下图中分级符号概述了稳定性的评分范围。任何构建作业的状态(总分100)低于80分就是不稳定的。

发布PHP项目

发布PHP代码 构建自由风格项目 Throttle builds,构建时限 丢弃旧的构建 填写源码信息

SVN 确保subversion plugin已经安装 在系统设置里选择SVN版本 获取程序的SVN路径 填写SVN用户权限 指定其它配置 构建周期 构建环境 Execute shell

查看构建结果 状态集 查看代码变更记录 Console Output 构建过程中的输出结果,主要用于查看构建过程 编辑编译信息 定制信息编译信息 Tag this build 对这次构建进行tag(svn),SVN必须已经建立tags目录

发布Maven项目

什么是maven Maven是一个项目管理和综合工具。Maven提供给开发人员构建一个 完整的生命周期框架。 Apache的开源项目 主要服务于JAVA平台的构建、依赖管理、项目管理。

安装MAVEN Wget http://mirrors.cnnic.cn/apache/maven/maven- 3/3.3.9/binaries/apache-maven-3.3.9-bin.tar.gz tar zxvf apache-maven-3.3.9-bin.tar.gz 配置环境变量 vim /etc/profile export PATH=$PATH:/root/apache-maven-3.3.9/bin 测试 mvn -v

POM Project Object Model,项目对象模型。 通过xml格式保存的pom.xml文件。 作用类似ant的build.xml文件,功能更强大。 该文件用于管理:源代码、配置文件、开发者的信息和角色、问题 追踪系统、组织信息、项目授权、项目的url、项目的依赖关系等等

MAVEN命令 1. 创建Maven的普通java项目: mvn archetype:create 2. 创建Maven的Web项目: -DgroupId=packageName -DartifactId=projectName 2. 创建Maven的Web项目: -DartifactId=webappName -DarchetypeArtifactId=maven-archetype-webapp 3. 清除后再编译 mvn clean install

配置系统MAVEN 系统管理> Global Tool Configuration 新增maven 取消自动安装 填写maven实际安装路径 /data/server/apache-maven-3.3.9/

新建maven项目 新建maven项目 指定源码位置(git或svn) 指定build选项 clean install clean install -Dmaven.test.skip=true 指定execute shell java -jar target/testweb-0.0.1-SNAPSHOT.jar

配置maven settings.xml 是maven的主要配置文件 位置 $home/.m2 用户 meven安装目录/conf 全局

按版本发布 安装git parameter plugin插件 任务配置中勾选<参数化构建过程> 选择 git parameter 创建变量名release 选择发布类型: tag 按标签发布 branch按分支分布 Revision 按修订发布

远程管理

远程管理 SSH plugin Shell ssh ansible

SSH plugin 安装ssh plugin插件 系统管理>SSH remote hosts 增加主机信息 在项目中选择execute shell scripts on remote host using ssh

Shell SSH 制作jenkins主机免密登录 直接在 execute shell界面执行ssh命令 或在脚本中接调用ssh语句 ssh root@192.168.47.175 “ifconfig” scp xxx root@192.168.47.175/xxx/

ansible 安装ansible 配置ansible hosts 配置ansible对其它机器的免密权限 执行ansible 命令

War文件部署设置 安装好Deploy Plugin插件,然后在tomcat的conf目录配置tomcat-users.xml文件, 在<tomcat-users>节点里添加如下内容: <role rolename="manager-gui"/> <role rolename="manager-script"/> <role rolename="manager-jmx"/> <role rolename="manager-status"/> <user username="username" password="password" roles="manager-gui,manager- script,manager-jmx,manager-status"/> 引号里的username和password可以随便替换,用于部署时认证。

操作界面 选择Add post-build action,然后选择Deploy war/ear to a container, 如下图:

部署说明 WAR/EAR files:war文件的存放位置,如:target/test.war 注意:相 对路径,target前是没有/的。 Context path:访问时需要输入的内容,如ofCard访问时如下: http://192.168.x.x:8080/ofCard/如果为空,默认是war包的名字。 Container:选择你的web容器,如tomca 6.x Manager user name:填入tomcat-users.xml配置的username内容 Manager password:填入tomcat-users.xml配置的password内容 Tomcat URL:填入http://192.168.x.x:8080/ Deploy on failure:构建失败依然部署,一般不选择

任务 构建一个定时清理目标机器日志的任务 构建一个定时重启目标机器tomcat进程的任务 执行一次全量备份或增量备份 执行一次版本升级 在完成全部课程之后构建一个PIPLINE。

交流时间