jenkins使用

jenkins安装优化

◇◆丶佛笑我妖孽 提交于 2020-02-26 05:54:36
1.安装完JDK,编辑配置文件 vi ~/.bashrc 在内容后面加上 JAVA_HOME=/usr/java/jdk CLASSPATH=$JAVA_HOME/lib/ PATH=$PATH:$JAVA_HOME/bin export PATH JAVA_HOME CLASSPATH 保存退出,重启 source ~/.bashrc 2.jenkins后台启动方式,关闭ssh连接也保持运行 官方启动方式 java -jar jenkins.war --httpPort=8080 这样启动方式,在关闭控制台或者ssh断开服务器链接后 jenkins也就自动关闭了。 在Linux下,可以使用以下方式启动。 nohup java -jar jenkins.war --httpPort=8080 & 启动后 会生成一个nohup.out输出,需要的话,可以tail -f nohup.out实时查看日志 来源: 51CTO 作者: IT阿飞 链接: https://blog.51cto.com/itafei/2438442

在kubernets中搭建jenkins服务

早过忘川 提交于 2020-02-26 03:28:12
安装完kubernets后,不可避免的要在集群中安装一些日常所需要的软件和服务。其中对于运维来说,jenkins是经常使用的一个工具,这里,介绍一下如何在k8s中安装jenkins工具。这也是为将来为jinkins+k8s的ci/cd流程做一个基础的架构环境。 一:首先,检查k8s环境,确保集群可用。然后在各node节点下载jenkins相关的docker镜像。 k8s-node1# kubectl get node NAME STATUS ROLES AGE VERSION k8s-node1 Ready master 64d v1.10.2 k8s-node2 Ready <none> 64d v1.10.2 k8s-node3 Ready <none> 64d v1.10.3 k8s-node2#docker pull jenkins/jenkins k8s-node3#docker pull jenkins/jenkins 二:编辑创建jenkins的deployment和service的yaml脚本,并创建。 # more jenkins.yaml #-----Deployment---------------- apiVersion: apps/v1 kind: Deployment metadata: name: jenkins labels: app:

K8S 之 Jenkins安装

旧城冷巷雨未停 提交于 2020-02-25 19:03:11
一、Jenkins安装准备条件 #在运维主机操作: 1.准备镜像 ~]# docker pull jenkins/jenkins:2.190.3 ~]# docker images | grep jenkins ~]# docker tag 22b8b9a84dbe test-harbor.cedarhd.com/public/jenkins:v2.190.3 ~]# docker push test-harbor.cedarhd.com/public/jenkins:v2.190.3 2.自定义Dockerfile #官网拉取的镜像需要做些自定义操作,才能在k8s集群中部署(运维主机上运行) mkdir -p /data/dockerfile/jenkins cd /data/dockerfile/jenkins vim Dockerfile FROM test-harbor.cedarhd.com/public/jenkins:v2.190.3 USER root RUN /bin/cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime &&\ echo 'Asia/Shanghai' >/etc/timezone ADD id_rsa /root/.ssh/id_rsa ADD config.json /root/.docker

使用Jenkins持续集成部署QQ小程序

无人久伴 提交于 2020-02-25 15:44:07
QQ小程序提供了Docker镜像来对小程序项目进行CI构建( 文档 )。文档中提供的Github Actions及Drone CI两种CI工具都对Docker的相关操作进行了深度集成,以至于不需要调用docker自身的命令。 而改写成Jenkinsfile也很简单,在检出代码后,只需要先拉取镜像然后运行即可。 操作步骤 在QQ小程序后台获取AppToken,然后赋值到环境变量 PLUGIN_APPTOKEN 。 在检出代码后,新建一个拉取镜像的stage,拉取镜像。 stage('拉取镜像') { steps { sh 'docker pull qqminiapp/build:latest' } } 追加部署的stage,运行docker镜像,并根据文档设置传递的参数,我这里把小程序版本设置为CI构建的编号,描述为提交的commit id。 注意在设置 workdir 后,还需要 -v 挂载目录,否则在容器内也无法读取到目录文件。 stage('部署') { steps { sh '''docker run --rm --workdir /root/workspace \ --env PLUGIN_VERSION=${CI_BUILD_NUMBER} \ --env PLUGIN_DESC=${GIT_BUILD_REF} \ --env PLUGIN_APPTOKEN=$

linux 搭建jenkins

99封情书 提交于 2020-02-24 07:53:05
一、什么是持续集成? (1)Continuous integration(CI) 持续集成是一种软件开发实践,即团队开发成员经常集成他们的工作,通常每个成员至少集成一次,也就意味着每天可能会发生多次集成。每次集成都通过自动化的构建(包括编译,发布,自动化测试)来验证,从而尽快地发现集成错误。许多团队发现这个过程可以大大减少集成的问题,让团队能够更快的开发内聚的软件。 (2)没有持续集成 项目做模块集成的时候,发现很多借口都不通==>浪费大量时间 需要手动去编译打包最新的代码==>构建过程不透明 发布代码,上线,基本靠手工==>脚本乱飞 (3)持续集成最佳实践: 维护一个单一的代码库 使构建自动化 执行测试是构建的一部分 集成日志及历史记录 使用统一的依赖包管理库 每天至少集成一次 (4)jenkins介绍 Jenkins 只是一个平台,真正运作的都是插件。这就是jenkins流行的原因,因为jenkins什么插件都有 Hudson 是Jenkins的前身,是基于Java开发的一种持续集成工具,用于监控程序重复的工作,Hudson后来被收购,成为商业版。后来创始人又写了一个 jenkins ,jenkins在功能上远远超过hudson Jenkins官网: https://jenkins.io/ Jenkins下载:http://updates.jenkins-ci.org/

熟悉Jenkins

点点圈 提交于 2020-02-22 15:54:04
什么是持续集成? (1)Continuous integration (CI) 持续集成是一种软件开发实践,即团队开发成员经常集成他们的工作,通常每个成员至少集成一次,也就意味着每天可能会发生多次集成。每次集成都通过自动化的构建(包括编译、发布、自动化测试)来验证,从而尽快地发现集成错误。许多团队发现这个过程可以大大减少集成的问题,让团队能够更快的开发内聚的软件。 (2)没有持续集成 项目做模块集成的时候,发现很多接口都不通==>浪费大量时间 需要手动去编译打包最新的代码==>构建过程不透明 发布代码,上线,基本靠手工==>脚本乱飞 (3)持续集成最佳实践: 维护一个单一的代码库 使构建自动化 执行测试是构建的一部分 集成日志及历史记录 使用统一的依赖包管理库 每天至少集成一次 熟悉Jenkins (1)登录Jenkins webUI界面创建第一个项目 (2)输入项目名称(My-project)并选择构建一个自由风格的软件项目 ( 3)上面创建完成后跳转进来后进行配置,选择丢弃旧的构建(下面保持天数一般在5~7天即可) (4)接着上面选择构建,然后选择Execute Shell 来执行shell命令 (5)既然能执行shell命令,那么我们执行一个pwd,看下默认的工作目录在哪里 (5)既然能执行shell命令,那么我们执行一个pwd,看下默认的工作目录在哪里 (6

通过 CLI 管理 Jenkins Server

佐手、 提交于 2020-02-22 01:33:09
Jenkins 内置的命令行接口允许管理员通过命令行工具访问并管理 Jenkins。这让我们可以通过脚本自动化的创建配置或执行任务,也就是把 Jenkins 中的配置代码化了。Jenkins 同时支持通过 SSH 和客户端命令行工具 jenkins-cli.jar 进行访问。本文主要介绍如何通过这两种方式用命令行操作 Jenkins。说明:本文的演示环境为 ubuntu 16.04。 通过 SSH 执行命令 在 Jenkins Server 的默认安装中,内置的 SSH service 是没有启用的: 我们可以通过下面的配置让 Jenkins 启用 SSH service,Jenkins ->Configure Global Security: 笔者选择让 Jenkins 的 SSH Server 监听 8090 端口,如果你选择的是 Random,那么监听的端口是随机产生的,无论如何,我们都可以用下面的命令来获得 Jenkins SSH Server 监听的端口号: $ curl -Lv http://192.168.21.145:8080/login 2>&1 | grep 'X-SSH-Endpoint' 说明:笔者的 Jenkins Server 部署在主机 192.168.21.145 上,监听的端口号为 8080。用户至少要有 Overall/Read

Jenkins入门教程(1)

别来无恙 提交于 2020-02-21 11:38:47
说明:Jenkins折腾了好几个月了,打算写个系列记录下。有时间会尽量更新的。 第一章 Jenkins是什么? Jenkins 是一个可扩展的持续集成引擎。 主要用于: l 持续、自动地构建/测试软件项目。 l 监控一些定时执行的任务。 Jenkins拥有的特性包括: l 易于安装-只要把jenkins.war部署到servlet容器,不需要数据库支持。 l 易于配置-所有配置都是通过其提供的web界面实现。 l 集成RSS/E-mail通过RSS发布构建结果或当构建完成时通过e-mail通知。 l 生成JUnit/TestNG测试报告。 l 分布式构建支持Jenkins能够让多台计算机一起构建/测试。 l 文件识别:Jenkins能够跟踪哪次构建生成哪些jar,哪次构建使用哪个版本的jar等。 l 插件支持:支持扩展插件,你可以开发适合自己团队使用的工具。 1 Jenkins的由来 目前持续集成(CI)已成为当前许多软件开发团队在整个软件开发生命周期内侧重于保证代码质量的常见做法。它是一种实践,旨在缓和和稳固软件的构建过程。并且能够帮助您的开发团队应对如下挑战: l 软件构建自动化 :配置完成后,CI系统会依照预先制定的时间表,或者针对某一特定事件,对目标软件进行构建。 l 构建可持续的自动化检查 :CI系统能持续地获取新增或修改后签入的源代码,也就是说

jenkins 邮件配置

我只是一个虾纸丫 提交于 2020-02-20 17:45:57
jenkins 邮件配置 一、使用场景 二、邮箱通知基础版 1、设置系统管理员邮件地址 2、邮件通知设置 3、job设置 三、邮件通知增强版 1、安装插件 2、设置系统管理员邮件地址 3、插件配置 4、job 配置 四、遇到的问题 1、问题① 提示发送失败 2、问题② 提示成功却没收到邮件 3、问题③ 报错提示无法连接到邮件服务器 一、使用场景 job定时构建或者自动化测试耗时较长时,管理员无法等着实时查看结果,因而采用了jenkins的邮箱发送功能。 二、邮箱通知基础版 顾名思义,仅能完成基本的邮件发送功能。 jenkins默认就有一个邮件通知,只是太简单的,不能个性化或者说定制化。 注:此处以QQ邮箱为例,其他如阿里云,网易对应配置亦可。 1、设置系统管理员邮件地址 系统管理 -→ 系统设置 -→ 管理监控配置 -→ Jenkins Location 2、邮件通知设置 系统管理 -→ 系统设置 -→ 邮箱通知 (设置页面最下面) smtp服务器配置完成后,点击输入框右下角“高级”继续配置: ① SMTP 服务器:如果你使用的是公司邮箱,那么就询问你自己公司里的运维人员吧;他们一般都知道,至少我就是问公司里的运维人员;要是你打算使用 QQ邮箱 ,那么你需要设置下,网上有教程;网易邮箱默认开启。 ② 用户默认邮件后缀:根据自己情况去设置 ③ 勾选 使用SMTP认证 ,用户名

调用Jenkins接口api的几个例子

ぐ巨炮叔叔 提交于 2020-02-18 00:03:36
记录瞬间 近期操作Jenkins调用比较多,当然Jenkins本身也提供了jenkins-cli.jar的使用方法,可以直接通过命令行进行调用, 但是,由于不想引入太多的jar包,导致直接使用Jenkins api需求强烈 下面就把近期收集到的一些常见用法做一个简单总结,希望对初学者有所帮助。 9、直接调用Jenkins的job API进行构建的方法 Simple example - sending "String Parameters": curl -X POST JENKINS_URL/job/JOB_NAME/build \ --user USER:TOKEN \ --data-urlencode json='{"parameter": [{"name":"id", "value":"123"}, {"name":"verbosity", "value":"high"}]}' Another example - sending a "File Parameter": curl -X POST JENKINS_URL/job/JOB_NAME/build \ --user USER:PASSWORD \ --form file0=@PATH_TO_FILE \ --form json='{"parameter": [{"name":"FILE_LOCATION_AS_SET