jenkins安装过程及常用操作(centos8)

前言

最近发现jenkins的用处蛮大的,可以帮助我很好得管理整个开发部署环境。所以,在我本机装一个。

下载

我是在官网直接下载的最新版。因为之前折腾的时候好像遇到了写麻烦,所以,感觉直接用war包是最靠谱的。这次我也就直接下了war包的版本。公司现在一直以来用的感觉,还是蛮好用的,而且升级也蛮简单的。

启动和开机启动

nohup java -jar jenkins.war --httpPort=8080 &

然后你就启动成功了。然后我们配置开机启动。

vim /lib/systemd/system/jenkins.service

[Unit]
Description=jenkins
After=network.target

[Service]
Type=forking
ExecStart=/opt/jdk-11/bin/java -jar /opt/jenkins/jenkins.war --httpPort=8080 &
PrivateTmp=true 
TimeoutSec=0

[Install]
WantedBy=multi-user.target

经测试,直接启动war包或者用nohup进行启动都没有问题。但是,直接写到开机启动脚本死活不返回,就是一直同步卡在那里。ctrl+c之后,又是正常的,不会停止进程。但是,开机启动服务不能这样呀。官网似乎也没有别的centos的安装方法。所以,我决定,套tomcat。

  • 我下了Tomcat9
  • 由于我用的是openjdk11,当初脑子抽风配置了JRE_HOME。于是tomcat启动跟我说启动失败。删除这个环境变量即可。
  • 删除webapp里所有的目录,把jenkins.war重命名为ROOT.war,这样的话启动tomcat后就不用带二级目录了。
  • 在catalina.sh中加入JAVA_HOME,酱紫才可以开机启动。
  • ExecStart改为/opt/jenkins/apache-tomcat-9.0.30/bin/startup.sh

问题

理论上来说这样就可以了,但是,报错了,

Caused: hudson.util.AWTProblem

yum install fontconfig 然后就成功了

初始化

第一次启动建议还是同步启动,日志里面会有初始化的用户名密码,和这个存放的位置:

/root/.jenkins/secrets/initialAdminPassword

剩下的,跟着向导走就可以了。不过呢,由于插件下载得很慢,而且反正后边也能装,所以建议开始什么插件都不装,后面再装。这是一个过来人的劝解。

使用

这次折腾jenkins实际上是想去摸下其中任务的逻辑和可操作性的一些尝试。但是吧,凭空摸,太泛泛了,不好用,所以自己设计了些小例子。插件老安装不上,只能去http://updates.jenkins-ci.org/download/plugins/ 自己手动下载手动安装

拉取源码

依赖于Git插件和git-parameter插件。
新建一个自由风格的软件项目,然后勾选参数化构建过程。因为我们安装了git-parameter,所以这里可以选择GitParameter,我们就可以选择Branch类型的参数,默认值我设置的是origin/master。下面我们在源码管理里面勾选Git,配置仓库地址,添加对应的credentials,分支指定为刚才配置的变量。就配置完成了。
保存后进入任务,会看见build with parameter,然后就能选择分支进行构建了。构建的目录为默认的工作空间目录,在~/.jenkins/workspace。

打包

我的项目都是使用maven进行打包的,所以首先需要安装maven。

安装maven

maven的安装很简单。首先在官网下载二进制包。然后我是解压在/opt/maven目录的,仓库存储在/home/maven_repository下面。然后要配置环境变量。

export MAVEN_HOME=/opt/maven
export PATH=$MAVEN_HOME/bin:$PATH

setting.xml文件里的变动包括,仓库位置和私服的配置。具体就不说了,仓库位置就一行代码。私服配置,我用的是阿里云的私服,把它提供的配置考进去就行了。

打包任务

这个任务我是这么设计的。首先,我需要找到源码在哪里。而这个源码,我希望是之前源码拉取的。但是,如果我在源码拉取的目录直接进行编译,总觉得就会很难管理源码了,所以我还需要把源码拷贝到对应的目录再进行编译,编译后再将结果拷贝到指定的目录。

调用拉取代码任务

设定传入参数调用任务需要安装Parameterized Trigger插件。安装了这个插件后,你在添加步骤的时候就能够看到相关的选项,然后根据选项进行操作即可,很简单。因为后来我发现这里不用调用拉去源代码的任务,因为拉取源代码本身就不是一个步骤,所以就没用了。

执行脚本

在拉取源代码后,我执行了这样的脚本:

export JAVA_HOME=/opt/jdk-11

cd ./${module}
pwd
/opt/maven/bin/mvn package -Dmaven.test.skip=true

cp ./target/${module}.jar /home/package

这里有这样几个注意事项:

  1. 在脚本中,我们是无法使用环境变量的。所以,我在开头的时候声明了相关的变量,因为后面maven的脚本中要使用。
    2.module是我在入参中设置的一个选项参数,方便我选择打包哪个模块。
    3.可以看到这里都是相对路径的操作,除了最后复制jar包的目的地。因为工作空间是可能改变的,所以这里就直接使用相对路径。(注:任务的工作空间是可以设置的,在general中点高级就可以看到)

推送

之前公司在推送的时候,都是配置ssh,然后使用shell脚本进行推送的。对于这个过程,我总是记不住,而且感觉很烦。这次查到有个叫做publish over ssh的插件,试试吧。

配置

在“系统管理->系统设置”中,找到Publish Over SSH,在Passphrase中填写上面提到的内容。Path to key和Key填一个就行,Key的优先级要高一些。我选择填Key,就把刚才生成的私钥文件/root/.ssh/id_rsa中的内容粘贴进来即可。
然后添加服务器:

  • Name: 用于记忆的名称
  • Hostname: 机器名或者ip,就是找到这台机器的地址,我用的是ip
  • Username: 用户名,用来登录的用户名
  • Remote Directory: 拷贝文件的目录
    这些都配置好了,在下面可以找到一个“高级”,点击后,出现“Use password authentication, or use a different key”的选项,然后在Passphrase / Password的选项,输入上面的用户登录密码就好了。能配登录密码,那ssh秘钥我就不配了。

使用

这个时候,构建的时候会有“Send files or execute commands over SSH”选项。选择刚才配置的SSH Server。接下来是一些基本的内容:

  • Source files: 这里填写的是相对于该任务的workspace的相对路径,我试过绝对路径,是无效的。这里既可以写文件夹,也可以写文件,也可以使用通配符*,还是很好用的。
  • Remvoe prefix: 由于拷贝的时候会按照原本填写的相对目录的路径进行拷贝,所以这里可以配置需要去除路径的前面的哪些。
  • Remote directory:注意这里配置的也是一个相对路径。因为你在SSH Server中已经配置改过一个路径了,这里就是一个相对那个路径的相对路径啦。(注意,不用预先创建目录,拷贝过去会自动创建的。)
  • Exec command:拷贝完后执行的shell。因为这里可以执行shell,只要我不配置文件拷贝,其实就变成了一个纯执行shell的任务了。还是蛮方便的。
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 212,657评论 6 492
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,662评论 3 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 158,143评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,732评论 1 284
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,837评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,036评论 1 291
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,126评论 3 410
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,868评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,315评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,641评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,773评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,470评论 4 333
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,126评论 3 317
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,859评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,095评论 1 267
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,584评论 2 362
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,676评论 2 351

推荐阅读更多精彩内容