jenkins教程

jenkins教程最近接了公司的挺多运维的活,刚开始很新鲜,后面天天部署各种项目的测试环境和生产环境,加上每个项目n个服务,我就变成了骚是骚,就是太累了。于是我想到了之前一直想用的jenkinsjenkins的作用和它的图标表现出来的一样,就是为了做工作的时候,能够比较轻松,像一个绅士一样游刃有余。一、安装1、进入官网,找到download找来找去,在最下面有个.war因为我是做…

大家好,又见面了,我是你们的朋友全栈君。

最近接了公司的挺多运维的活,刚开始很新鲜,后面天天部署各种项目的测试环境和生产环境,加上每个项目n个服务,我就变成了

jenkins教程

骚是骚,就是太累了。

于是我想到了之前一直想用的jenkins

jenkins教程

jenkins的作用和它的图标表现出来的一样,就是为了做工作的时候,能够比较轻松,像一个绅士一样游刃有余。

一、安装

1、进入官网,找到download

找来找去,在最下面有个.war

因为我是做java的,最喜欢一键安装

jenkins教程

下载。

然后找到documentation,getting started

现在已经学会看英文官网了,还是强烈推荐看官网,都是一个套路

download–>documentation–>geting start

jenkins教程

我的端口在9900,很开心,启动起来了。启动的过程中会有admin的密码,等下登录用的(如果没有留意到,等下也有介绍admin的密码)。

二、配置

但是一个war包启动起来的,我想配置东西怎么办,或者说,配置文件怎么办。我是root账户,启动后,jenkins的配置文件就在

/root/.jenkins下面

jenkins教程

其中,admin初始化密码文件就在secrets这个文件下面的这个文件里initialAdminPassword。

其他的配置,大家根据需要去配置。

三、jenkins使用

1、新建账户:

首先用admin账户登录进去,在系统管理–>管理用户–>新建用户   里面新建账户。

2、配置安全策略

由于jenkins默认是任何人可以访问该系统,相当于裸奔,所以需要配置安全策略

系统管理–>全局安全配置–>授权策略

将它改为安全矩阵,添加需要的账户,给特定的人勾选上所需的策略,这样就安全了

jenkins教程

3、添加节点(添加机器)

jenkins的机器和测试环境的机器一般不会在同一台机器,多个测试环境,也有可能在多个机器上面。暂且先增加一个机器作为官网的测试环境。

系统管理–>管理节点–>新建节点

节点名称你们可以命名为:项目+test+env之类的,个人奇葩的认为ip比较好记,就命名为机器ip,例如190(不用担心,内网,你们访问不到的),选择固定节点—>ok

jenkins教程

描述:随便写

远程工作目录:以后你的数据存在哪里(不知道就先写一个试一下,用了就知道)

启动方式:选择使用ssh登录,主机ip写上,add账户名密码之后,左边就可以选了

保存即可来到机器列表

jenkins教程

点击机器,然后启动代理

启动过程中可能会报错,

1)机器无法ssh连接的问题

2)jdk环境变量的问题

3)构建应用的时候时候会有权限的问题,我们将目录的权限赋值给用户就行了

4、验证机器

jenkins能否在代理节点上执行命令,关系到能否一键部署,所以先测试机器

回到首页,新建任务test190—–>构建一个自由风格的软件项目,保存

然后有一个地方一定要勾选

jenkins教程

这样程序才会在你要的节点上运行

倒数第二个:构建

增加构建步骤—>执行shell

jenkins教程

保存,点击任务,选择立即构建

jenkins教程

完成之后点击圈圈

然后点击控制台输出,看到如下log,说明成功

jenkins教程

四、部署应用

有了上面的步骤之后,部署应用很简单了。这里以从代码服务器(gitbucket)拉取代码并部署为例子

1、新建任务—>输入名称—>构建自由软件风格的项目–>保存

2、限制项目运行节点

3、源码管理,选择git

jenkins教程

把代码服务器的地址和名称添加上去(也可以使用私钥,这里可以另行去查阅资料)

然后再构建下面添加脚本

jenkins教程

这里有几点需要说明和注意的

1)BUILD_ID=DONTKILLME是为了构建完成之后,jenkins不会把我们的进程杀掉,不然进程启动了马上被杀了

2)./etc/profile是为了添加环境变量,不然mvn指令都找不到,虽然添加了,就是这么奇葩

3)最后暂停10s也是踩坑出来的。为什么加了DONTKILLME 大大大大大大大大大大哥别杀我 我我我我我我我我我把枪都给你之后,程序还是没有启动起来呢??

简直是出人意料匪夷所思百思不得其解辗转反侧难以入眠。。。

不知道为啥我突然想到在后面加10s的暂停时间。

因为最后一句代码启动程序,程序还没有启动起来,就BUILD SUCCESS了,也就是退出了。所以我加了暂停10s再退出,好让程序的启动做做准备!

4、最后,运行项目只要立即构建就可以了

5、扩展:这个还只是一键部署的,因为考虑到我们用的微服务,各个项目之间有依赖,所以首先做成一键部署,好控制各个项目的先后启动关系。后面可以用gitbucket的webhook,每次提交代码都自动部署,这样就连操作都不用了。

一步一步,慢慢来。

 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/146282.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 详解数据库三大范式、BCNF范式

    文章目录什么是”范式(NF)”1.第一范式(1NF)2.第二范式(2NF)2.1函数依赖2.1.1完全函数依赖2.1.2部分函数依赖2.2码2.3非主属性3.第三范式(3NF)4.小结4.1三大范式总结4.2完全&部分函数依赖4.3表设计规范(范式的选择)什么是”范式(NF)”按照教材中的定义,范式是“符合某一种级别的关系模式的集合,表示一个关系内部各属性之间的联系的合理化程度”。很晦涩吧?实际上你可以把它粗略地理解为一张数据表的.

    2022年4月8日
    48
  • LNK2019的常见情况及解决方法

    LNK2019的常见情况及解决方法导致 LNK2019 的常见问题 1 未链接的对象文件或包含符号定义的库 2 符号声明的拼写不与符号的定义相同 3 使用了函数 但类型或参数数目不匹配函数定义 4 声明但未定义的函数或变量 5 nbsp 调用约定是函数声明和函数定义之间的差异 6 符号定义在 c 文件中 但未使用 externC 在 c 文件中声明 7 符号定义为静态 并随后被外部文件引用 8 未定义类的静态成员 9 生成依赖项仅定义为解决方

    2025年10月30日
    4
  • Qt框架简介

    Qt框架简介这里的Qt不是指Qt语音平台,而是指GUI框架。截止至2019年12月,Qt的最新版本是5.14.0,但仍有很多资料是基于Qt4,为了避免大家误入歧途,所以写了这篇文章。Qt一开始是由奇趣公司开发的,后来被Nokia收购了,然后再被Digia收购了。所以有的人会误以为Qt就是为了塞班系统而生,是个落伍的产物。但是很多嵌入式软件、桌面工具都是用Qt来开发的,包括Quartus和Caden…

    2022年5月16日
    988
  • ORACLE游标(oracle游标属性)

    ORACLE游标(oracle游标属性)文章目录1概述1.1思维导图2语法2.1基本写法(4步)2.2游标4大属性3分类3.1静态游标3.1.1隐式游标dml3.1.2显式游标cursor3.2动态游标3.2.1自定义类型refcursor3.2.2系统类型sys_refcursor4扩展4.1三种游标循环效率对比4.2实例:实际开发中,游标遍历数据1概述1.游标是什么?用来存储多条查询数据的一种数据结构(’结果集’),它有一个’指针’,从上往下移动(’fetch’),从而能够’

    2022年4月18日
    88
  • console.log()的作用与实现[通俗易懂]

    console.log()的作用与实现[通俗易懂]console.log()的作用是什么主要是方便你调式javascript用的。你可以看到你在页面中输出的内容。相比alert他的优点是:1,他能看到结构话的东西,如果是alert,淡出一个对象就是[objectobject],但是console能看到对象的内容。,2,console不会打断你页面的操作,如果用alert弹出来内容,那么页面就死了,但是console输出内容后你页面还可以正常操作。3,console里面的内容非常丰富,你可以在控制台输入:console,然后就可看到:Cons

    2022年7月14日
    20
  • 香农编码熵怎么算_香农范诺编码

    香农编码熵怎么算_香农范诺编码一、香农编码的概念概念:香农编码是是采用信源符号的累计概率分布函数来分配字码的。香农编码是根据香农第一定理直接得出的,指出了平均码长与信息之间的关系,同时也指出了可以通过编码使平均码长达到极限值。香农第一定理是将原始信源符号转化为新的码符号,使码符号尽量服从等概分布,从而每个码符号所携带的信息量达到最大,进而可以用尽量少的码符号传输信源信息。香农编码属于不等长编码,通常将经常出现的

    2025年10月22日
    1

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号