自动化部署之jenkins及简介

一、什么是持续集成?

(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的全部镜像:http://mirrors.jenkins-ci.org/status.html

(5)部署代码上线流程:

1.代码获取(直接了拉取)

2.编译      (可选)

3.配置文件放进去

4.打包

5.scp到目标服务器

6.将目标服务器移除集群

7.解压并放置到Webroot

8.Scp 差异文件

9.重启      (可选)

10.测试

11.加入集群

二、jenkins部署

1.安装JDK


1

[[email protected] ~]# yum install -y java-1.8.0-openjdk java-1.8.0-openjdk-devel

2.安装jenkins


1

[[email protected] contos]# rpm -ivh jenkins-2.32.3-1.1.noarch.rpm

3.启动


1

2

3

4

5

[[email protected] contos]# service jenkins start

Starting jenkins (via systemctl): [ OK ]

[[email protected] contos]# netstat -tunlp |grep :8080

tcp6 0 0 :::8080 :::* LISTEN 2259/java

4  输入初始化密码


1

2

[[email protected] contos]# cat /var/lib/jenkins/secrets/initialAdminPassword

a93553a4865b45198ae28f77877efe19    #登陆界面有提示输入密码,初始密码文件为/var/lib/jenkins/secrets/initialAdminPassword

 

安装插件完成,设置用户名:jenkins,密码:jenkins

三、jenkins的插件以及配置

jenkins系统管理比较重要的就是插件管理了 ,因为jenkins的工作全部是由插件来完成。

在插件管理中,有可更新、可选插件、已安装,日常的插件安装都是在这个界面上完成的。比如为了和gitlab协同,我们需要安装gitlab的插件。

当插件安装不上的时候,可以直接去网上瞎子啊,进行安装


1

2

3

4

5

6

7

下载地址

http://updates.jenkins-ci.org/

解压备份plugin.tar.gz

mv plugins /var/lib/jenkins/

chown -R jenkins.jenkins plugins/

service jenkins restart

  

在高级选项中,我们可以在jenkins官网下载插件,然后上传插件 ,如图:

因为很多插件需要×××才可以继续下载,jenkins还提供了代理的设置
还是在服务器目录下进行上传插件
目录路径= /var/lib/jenkins/plugins/
这个目录下是我们安装所有的插件

jenkins的目录介绍:


1

2

3

4

5

6

7

8

9

10

[[email protected] contos]# rpm -ql jenkins

/etc/init.d/jenkins                #jenkins的启动文件

/etc/logrotate.d/jenkins

/etc/sysconfig/jenkins             #jenkins的配置文件(可以写改默认端口)

/usr/lib/jenkins

/usr/lib/jenkins/jenkins.war       #jenkins的程序war包

/usr/sbin/rcjenkins                #jenkins的为二进制文件

/var/cache/jenkins                 #jenkins的程序文件,运行程序解压出来的

/var/lib/jenkins                   #jenkins的主目录

/var/log/jenkins                   #jenkins的日志文件


1

jenkins的升级,只需要将war包解压到/var/lib/jenkins目录下,重启jenkins即可。 <br>友情提示: 卡启动问题 jenkins在第一次安装启动时会向官网回传信息,如果网络离线可以正常安装。<br>当网络在线,但是 还有可能是内存不足 <br>备份: tar zcvf jenkins.tar.gz /var/lib/jenkins,写一个定时任务的脚本,保留15天的备份,通过增量备份。

在测试环境中改成root用户来进行配置


1

2

3

4

5

6

vim /etc/sysconfig/jenkins

将用户修改为root,可以调用root工具

 29 JENKINS_USER="root"

修改启动端口85行,$JENKINS_PORT

service jenkins restart

  

系统管理-->系统配置

执行者数量:配置并发数量,一般设置为5,不超过10

用法:如果是主server,可以不选,如果是从级别必须选择“尽可能的使用这个节点”

生成前等待时间:配置该时间10s,避免错误操作,有时间返回

原文地址:https://www.cnblogs.com/cnwuhao/p/10635702.html

时间: 2024-11-10 03:33:28

自动化部署之jenkins及简介的相关文章

.Net Core自动化部署:Jenkins + GitLab

项目进行微服化改造后系统发布就变得愈为重要,因为持续集成导致部署变得越来越频繁,人工部署带来的一些问题日渐凸显,大家可能都有被系统部署线问题困扰过的经历. 本篇我们将会使用Jenkins+Gitlab来实现程序的持续集成和自动化发布. 1.新建项目提交到GitLab 首先需要有一个GitLab仓库,这个注册一下就可以,具体流程就不写了. 通过GitLab新建一个项目(Project):(没有的话可以使用我这个来测试:https://git.lug.ustc.edu.cn/Deepmountain

node项目自动化部署--基于Jenkins,Docker,Github(3)自动化部署

GitHub仓库 由于现在的代码基本上都是多人合作开发,所以肯定会用到像 git 这样的版本控制工具 所以这里使用 GitHub 来做一个演示 首先我们需要在github上新建一个仓库 点击New来新建一个仓库 输入一个名字 以及描述后点击 create 然后将代码上传到GitHub上 这里我上传的是一个简单的 hello world 的demo 到这里要部署的代码就准备完成了,接下来需要编写 Dockerfile 来告诉 docker 该怎么打包我们的项目 Dockerfile编写 首先我们在

基于Jenkins Pipeline自动化部署

最近在公司推行Docker Swarm集群的过程中,需要用到Jenkins来做自动化部署,Jenkins实现自动化部署有很多种方案,可以直接在jenkins页面写Job,把一些操作和脚本都通过页面设置,也可以在每个项目中直接写Pipeline脚本,但像我那么优秀,那么追求极致的程序员来说,这些方案都打动不了我那颗骚动的心,下面我会跟你们讲讲我是如何通过Pipeline脚本实现自动化部署方案的,并且实现多分支构建,还实现了所有项目共享一个Pipeline脚本. 使用Jenkins前的一些设置 为了

一文搞定前端 Jenkins 自动化部署

最近在公司租项目的过程当中遇到一些 问题,项目做问你后需要部署到服务器环境:目前我再前端开发中常用的 方法又两种: 1:传统的方法 :Linux Xshell xftp来收到打包项目,上传到服务器环境进行部署 2:配置Nginx 环境和Jenkins部署环境再进行命令来自动晚上部署(这篇文章是下载Nginx 安装 Jenkins 做配置来部署服务器) 由于公司使用自己搭建的 svn 服务器来进行代码管理,因此这里 Jenkins 是针对 svn 服务器来进行的配置,Git 配置基本一致,后面也介

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

简介    折腾了两个晚上,趁着今晚比较有空,把jenkins+git+maven搭建自动化部署项目环境搭建的过程记录一下,这里我把github作为git的远程仓库(https://github.com/jacky-        lulu/cxf_demo-Maven-Webapp)     系统:centos6.5 maven: Apache Maven 3.3.9 git:git version 2.0.0 1.首先安装git,看以前另外一篇博客 http://www.cnblogs.co

Jenkins与Gitlib实现自动化部署与持续构建

持续部署之jenkins与gitlab(一) 主要部分 安装部署Jenkins和gitlib 了解gitlib的常用命令 部署haproxy与tomcat环境 配置Jenkins使用gitlib更新代码 通过sonar实现代码检测 实现gitlib触发Jenkins自动部署 通过Jenkins实现自动部署 实现haproxy动态添加删除后端服务器 编写脚本实现自动化部署与回滚 持续集成的分类: 持续集成:持续集成是指程序员在代码的开发工程中,可以频繁的将代码部署到主干上,并进行自动化测试 持续交

持续集成+自动化部署[代码流水线管理及Jenkins和gitlab集成]

持续集成+自动化部署[代码流水线管理及Jenkins和gitlab集成] 标签(空格分隔): Jenkins 一.代码流水线管理 Pipeline名词顾名思义就是流水线的意思,因为公司可能会有很多项目.如果使用jenkins构建完成后,开发构建项目需要一项一项点击,比较麻烦.所以出现pipeline名词. 代码质量检查完毕之后,我们需要将代码部署到测试环境上去,进行自动化测试 新建部署代码项目 点击新建 这里只需要写一下描述 执行Shell脚本 温馨提示:执行命令主要涉及的是权限问题,我们要搞明

基于Jenkins+Gitlab的自动化部署实战

故事背景 一个中小型企业,是典型的互联网公司,当初期的时候可能运维只能标配到2~3人,此时随着公司的发展,项目会逐渐增多.前期部署项目可能都是手动的, 俗称"人肉部署",这简直是无比的痛苦,不能忍受的.这样开发的时间也会耽误,运维的时间也会耽误,全都浪费在这些重复性的工作上面,毫无价值可言, 这时候运维终于忍受不了,上了脚本.但是慢慢的发现项目依旧在增长,脚本每次还要更改给开发,效率低下,后来测试环境以及开发环境直接上了jeknins, 每台开发机器是jeknins agent端,自此

jenkins结合ansible用shell实现自动化部署和回滚

最近用jenkins+gitlab+ansible做持续化集成,自动化部署和版本回滚.然而deploy plugin没能做到增量升级和回滚操作,折腾了很久决定自己写个脚本来简单实现. 环境: centos 7.0 64位 gitlab:v2.9.0 git:2.9 jenkins 1.651.3.git plugin.GitLab Plugin.Dynamic Parameter Plug-in等 ansible:2.1.0.0 各工具职能: 1.gitlab做版本管理 2.jenkins根据指