首页 > 其他分享 >jenkins部署及gitlab联调

jenkins部署及gitlab联调

时间:2023-07-12 15:00:32浏览次数:45  
标签:gitlab -- GitLab Jenkins download jenkins root 联调

jenkins部署及gitlab联调

目录

一、jenkins安装

1.环境优化

防火墙开通访问端口
centos8查看防火墙开放的端口
firewall-cmd --zone=public --list-ports 
开通5432端口
firewall-cmd --zone=public --add-port=5432/tcp --permanent 
firewall-cmd --zone=public --add-port=8080/tcp --permanent
firewall-cmd --zone=public --add-port=22/tcp --permanent
firewall-cmd --reload 重启生效

2.安装jdk java 环境

查找原始jdk包

rpm -qa "*jdk*"
移除低版本jdk
rpm -e java-1.8.0-openjdk-headless-1.8.0.362.b08-3.el8.x86_64
yum remove 
安装支持的版本
yum -y install java-11-openjdk-devel

3.下载jenkins

[root@localhost init.d]# cat /etc/yum.repos.d/jenkins.repo 
[jenkins]
name=Jenkins-stable
baseurl=http://pkg.jenkins.io/redhat-stable
gpgcheck=1

yum install -y jenkins
或者直接下载rpm包
wget https://mirrors.tuna.tsinghua.edu.cn/jenkins/redhat-stable/jenkins-2.375.1-1.1.noarch.rpm
rpm -ivh jenkins-2.375.1-1.1.noarch.rpm

4.启动Jenkins服务

[root@jenkins download]# /etc/init.d/jenkins start
Starting jenkins (via systemctl):                          [  OK  ]
[root@jenkins download]# 
[root@jenkins download]# 
[root@jenkins download]# 
[root@jenkins download]# 
[root@jenkins download]# ps -ef | grep jenkins
jenkins    5627      1  0 20:18 ?        00:00:00 /etc/alternatives/java -Djava.awt.headless=true -DJENKINS_HOME=/var/lib/jenkins -jar /usr/lib/jenkins/jenkins.war --logfile=/var/log/jenkins/jenkins.log --webroot=/var/cache/jenkins/war --daemon --httpPort=8080 --debug=5 --handlerCountMax=100 --handlerCountMaxIdle=20
root       5647   5501  0 20:20 pts/0    00:00:00 grep --color=auto jenkins
[root@jenkins download]# 
[root@jenkins ~]# netstat -untalp | grep 8080
tcp6       0      0 :::8080                 :::*                    LISTEN      6106/java           
[root@jenkins ~]#

img

5.上个步骤执行成功后,会弹出下面的对话框,我们点击关闭即可

Jenkins的目录介绍

6.Jenkins的目录介绍

[root@jenkins ~]# rpm -ql jenkins
/etc/init.d/jenkins                #启动文件存放位置
/etc/logrotate.d/jenkins             #日志分割配置文件
/etc/sysconfig/jenkins              #Jenkins主配置文件
/usr/lib/jenkins                  
/usr/lib/jenkins/jenkins.war            #war包存放目录,war包就是把网站站点打个包
/usr/sbin/rcjenkins                #Jenkins的命令
/var/cache/jenkins                #war包解压目录,Jenkins网页代码目录
/var/lib/jenkins                  #Jenkins的工作目录,Jenkins的配置就在这个目录
/var/log/jenkins                  #Jenkins的日志存放目录
[root@jenkins ~]#
修改Jenkins密码(我们在安装Jenkins的时候就发现Jenkins存放初始密码存放位置是:/var/lib/jenkins/secrets/initialAdminPassword)

7.修改Jenkins密码

(我们在安装Jenkins的时候就发现Jenkins存放初始密码存放位置是:/var/lib/jenkins/secrets/initialAdminPassword)

设置

修改密码

点击注销

使用新密码登录Jenkins

二、Jenkins插件安装实战篇

1.点击系统管理

2>.点击管理插件

3.在服务器端安装我们常用的插件

[root@jenkins download]# ll
total 160580
-rw-r--r-- 1 root root 164431230 Sep  3 06:02 jenkins-plugins.tar.gz
[root@jenkins download]# 
[root@jenkins download]# ll /var/lib/jenkins/plugins/                            #查看存放Jenkins插件包的目录
total 0
[root@jenkins download]# 
[root@jenkins download]# tar xfP jenkins-plugins.tar.gz                         #解压Jenkins插件包
[root@jenkins download]# 
[root@jenkins download]# ll
total 160592
-rw-r--r--  1 root    root    164431230 Sep  3 06:02 jenkins-plugins.tar.gz
drwxr-xr-x 97 jenkins jenkins      8192 Dec  8  2017 plugins
[root@jenkins download]# 
[root@jenkins download]# ll plugins/ | wc -l                                    #插件包共计文件数是191个
191
[root@jenkins download]#
[root@jenkins download]# cp -a  plugins/* /var/lib/jenkins/plugins/                #将解压后的文件拷贝到Jenkins存放插件包的目录
[root@jenkins download]# 
[root@jenkins download]# ll /var/lib/jenkins/plugins/ | wc -l
191
[root@jenkins download]# 
[root@jenkins download]# /etc/init.d/jenkins restart                            #重启Jenkins服务
Restarting jenkins (via systemctl):                        [  OK  ]
[root@jenkins download]#

三、Jenkins自动发布代码集成gitlab

 配置GitLab Push 自动触发Jenkins构建
 参考链接:https://www.cnblogs.com/yinzhengjie/p/9613270.html

1.Jenkins服务器配置秘钥对并上传到Gitlab中

在Jenkins后端生成秘钥对

[root@jenkins ~]# ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa
[root@jenkins ~]# ssh-keygen -t rsa -b 2048 -C "[email protected]"
Generating public/private rsa key pair.
Created directory '/root/.ssh'.
Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.
The key fingerprint is:
e1:75:1f:cf:18:02:5e:b7:16:99:14:75:56:73:ac:ad [email protected]
The key's randomart image is:
+--[ RSA 2048]----+
|          . ..=BB|
|         . o .o+=|
|        . o o =o |
|       . o . +.*.|
|        S     o.o|
|              E  |
|                 |
|                 |
|                 |
+-----------------+
[root@jenkins ~]#

查看服务端的公钥和私钥

[root@jenkins ~]# cat /root/.ssh/id_rsa.pub             #查看公钥
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCwr6GMG0OYSWyLcraC4FGquTm9C+26a2/SdTysXOTiC6GpqYE9L57NgCSJSYWFalj+s/O6+LqHLY/ORi+LMmh4DtYSD4rUYo5NRd68B3lVs2JU8FqfCK/bJR+Sy/SxDAtKfrP/8gPM+4saB9JXUaljavhwIsyqMJxLkbwmDsdYmf4MHjMoHA4k8qECYKfvL7mep3Cglh0U4dQTubVvjmN/f6oKX7l7yVe+DoSImPyYae16+8AOe0v8+hiL5zB8eBBuCJZfXT/ZQbp5pAWxNCiiHsLI9VQhjsmsLS+bpgEvnCDqbVuXhrYXaLrQDm2EG2YwU1YSES6gJrvs5OkMbwXr [email protected]
[root@jenkins ~]# 
[root@jenkins ~]# 
[root@jenkins ~]# cat /root/.ssh/id_rsa              #查看私钥
-----BEGIN RSA PRIVATE KEY-----
MIIEpAIBAAKCAQEAsK+hjBtDmElsi3K2guBRqrk5vQvtumtv0nU8rFzk4guhqamB
PS+ezYAkiUmFhWpY/rPzuvi6hy2PzkYvizJoeA7WEg+K1GKOTUXevAd5VbNiVPBa
nwiv2yUfksv0sQwLSn6z//IDzPuLGgfSV1GpY2r4cCLMqjCcS5G8Jg7HWJn+DB4z
KBwOJPKhAmCn7y+5nqdwoJYdFOHUE7m1b45jf3+qCl+5e8lXvg6EiJj8mGntevvA
DntL/PoYi+cwfHgQbgiWX10/2UG6eaQFsTQooh7CyPVUIY7JrC0vm6YBL5wg6m1b
l4a2F2i60A5thBtmMFNWEhEuoCa77OTpDG8F6wIDAQABAoIBACTUZ2tKH5v16i9j
ORIs6jkZJST4AJT0YjnPgFc5gehwnkE8eRkk/Qg/Jt6LOc7mrShioHKf+FnHMIvB
65Ura8Vi6lKXdMvyw1DuOJCfSjaIDv4/n9Q4vleC9ILoCtiA9zWPFbxLWWl4IbXK
XZkgB5wWpzTQvDLZsSq7dSnFuN4J2pjR63SJkZCJRgy5g4qpNTH6jzo2D4Q3X/lF
toN6n95He/2yAKRs1eJsvJWn33gnNQbMvKMbtialqQGy476XZomnBjlE2LKj4Kyz
SrIzoJRi1Qq/34vNdDT+ycIvYZmZUo4aOG9QiwykcuxAhbbrrMjtYfMGPpm6KHLA
GbyPQ7kCgYEA5NM9LqY993ie0EjKsIVjptAxHSzh6/BmqFPxXyDpsoZxARR3SCiG
c8sEsFH0zRfF+TS8dza5LVN6tnh+xZcatofbrs+ZIou0oV2+nU46ZO7xBR5ha9rh
mzyEJnypCEdckPMR/Fh9hbl0KEGxK5b6ZZqfcaC4Vr1LLdlASKB2JbUCgYEAxatB
S78IYbQ9Dfv86ok1j4hv+C0gJ7rnqz2Mj+1wZtKUGUgZdXVqFm27nDZobEr6BXCL
8IbMFZXhgm6iM6llRopN0Dm2jDZ42oIe39KjXF7EsrYpDJ41ZgJQxv1sU4gdwOMV
w3lChmCzYtBDP2z2W1Qq6Ln6Ra5pDbG83czHwR8CgYB3Mp6tXUXsUrYP88s59tI5
RDxBYW7yc9FWIBwdHM0ABU56bInSWeHoEbqIirjF2Xt0XIdMZoJB3TmQMeZ/0T3G
FbFXN6ciurnGUUoJMYXzrBB7RR8kiul47yY70jZPLLVIgIY++G2yqi+bBNVgyo33
PXuPOlSsQoEWChSVgJjq/QKBgQCA1zBXS+wNqyqEm/Ptd4O2y6qX6+nim5v3bMXa
5lv2WVl45RrbCa4dcmbv2jLUK0auFv7Pxzzs8OWtW6lT3R0LDojLqWKIH9VEL74q
C6S5R3gUOFGnTNPnaqj2Gybph3ZFTH7aC4bGCe/C/5ZlmAM34jOZv+cWVilZaLl/
JMQq5wKBgQC41olS3GTRuPdNoZCI9rWaR30XafVv3EV7XmAnytNJGJv/VY00a1fk
fXWIUTG/AYQ932qBZQ/PL9eobtuvrZxRj7Xt8p6O6ERRk4mqRERHF+E6yEFdzKef
rXfkvpqaZ63aTLjeolEiVO/Vud6ZEcc6UkpBnajgN1e5vapXARL9pA==
-----END RSA PRIVATE KEY-----
[root@jenkins ~]#

将Jenkins服务器端的公钥上传到GitLab中


2.Jenkins关联GitLab的WebUI界面配置

1>.创建新任务

2>.编辑任务名称

3>.源码管理选择git,并将git的地址填写为GitLab的地址

四、配置GitLab Push 自动触发Jenkins构建

Private token 自动构建

配置GitLab Push 自动触发Jenkins构建
参考链接
https://www.cnblogs.com/yinzhengjie/p/9613270.html
二.配置GitLab认证
2>.点击认证
3>.在GitLab中复制“Private token”的值
4>将GitLab的“Private token”的值复制到Jenkins的API token中。
5>.认证添加成功的界面
6>.进入系统设置界面
7>.测试连接(由于我们通过API认证的,所以必须得用http协议,测试成功后别忘记保存哟!)
8>.如果上述配置成功,我们再次编辑我们之前的项目 
9>.点击之前的项目
10>.点击构建触发器
11>.拷贝Jenkins生成的随机字符串(在完成第十三步后回来保存它!)
12>.进入到GitLab中的“Integrations Settings”
13>.添加GitLab的“System hook”(注意图中的URL和Token信息均来第11步骤)
14>测试添加的webhook
三.修改GitLab的数据,简称服务器端是否有文件生成

1>.在GitLab的webUI界面中我们添加新的文件
2>.编辑文件内容并提交
3>.提交成功界面如下
4>.观察Jenkins是否持续有任务运行
5>.服务器端指定目录是否有文件生成
一.安装GitLab插件
在GitLab中复制“Private token”的值

一.安装GitLab插件

二.配置GitLab认证

在GitLab中复制“Private token”的值

将GitLab的“Private token”的值复制到Jenkins的API token中。

6>.进入系统设置界面

7>.测试连接(由于我们通过API认证的,所以必须得用http协议,测试成功后别忘记保存哟!)

8>.如果上述配置成功,我们再次编辑我们之前的项目

9>.点击之前的项目

9>.点击之前的项目

10>.点击构建触发器

11>.拷贝Jenkins生成的随机字符串(在完成第十三步后回来保存它!)

12>.进入到GitLab中的对应的项目“Integrations Settings”

13>.添加GitLab的“System hook”(注意图中的URL和Token信息均来第11步骤)

14>测试添加的webhook

三.修改GitLab的数据,简称服务器端是否有文件生成

1>.在GitLab的webUI界面中我们添加新的文件

2>.编辑文件内容并提交

4>.观察Jenkins是否持续有任务运行

5>.服务器端指定目录是否有文件生成

五、Jenkins发邮件

https://www.cnblogs.com/yinzhengjie/p/9602029.html


一.配置并发执行任务数量

1>.点击系统管理

2>.点击系统设置

3>.修改执行者数量为:5

(如果是虚拟机建议将Jenkins的服务器内存设置较大,这个执行者数量调的越大它就会越消耗系统资源),别忘记点击保存按钮哟!


二.邮件配置

1>.点击系统管理


2>.点击系统设置

3>.配置系统管理员邮件地址

4>.设置邮箱服务器(继续往下拉)


5>.点击高级后,输入发送和接受的邮箱后需要测试邮件,如果测试邮件发送成功就说明OK!点击保存即可

六、jenkins集成freeipa

1.jenkins服务器安装ipa-cli

1.做hostname 修改为域名,ipaserver 服务器都做好解析
2.安装freeipa
yum install -y ipa-client
3.可能有相关依赖包错误
下载指定安装包地址https://rpmfind.net/linux/rpm2html/search.php?query=iftop&submit=Search+...&system=&arch=
wget 包名
4.在下载下来的包目录本地安装
yum localinstall 包名
5.安装
ipa-client-install --unattended --mkhomedir --enable-dns-updates --principal [email protected]
6.如果报错,按照提示安装操作
ipa-client-install

2.在jenkins页面配置

3.登录ipa用户,登录jenkins URL测试

七、Jenkins_node节点安装

1.准备环境

参考链接

准备环境
master节点:192.168.247.130 (已安装Jenkins)
agent节点:192.168.247.131

1.在master节点创建ssh key
ssh-keygen -t rsa
一路回车
2.发送公钥到agent服务器,并输入agent服务器 密码
ssh-copy-id -i /root/.ssh/id_rsa.pub [email protected]
3.测试master节点免密登陆agent
ssh 192.168.247.131

2.然后在Jenkins中配置凭据

Jenkins选择:系统管理→manage credentials

3.查看master私钥信息粘贴到配置中

cat ~/.ssh/id_rsa

保存凭据

4.在agent服务器上创建工作目录

mkdir -p /data/workspaces

5.在Jenkins中新建一个节点

6.查看一下

7.agent节点已经在线了

报错总结

1.gitlab与Jenkins联调

stderr: No ECDSA host key is known for gitlabtest.test.com and you have requested strict checking.
Warning: Permanently added the ECDSA host key for IP address '154.213.2.253' to the list of known hosts.
显示密钥不生效

1. 生成证书
添加完以后依然会报错
jenkins stderr: No ECDSA host key is known for gitee.com and you have requested strict checking.
这是因为ssh连接陌生机器需要确认,将clone代码的机器上的known_hosts复制到运行jenkins服务账号的~/.ssh目录下即可
2.判断Jenkins是那个用户运行的
# ps aux | grep jenkins
root@april:~# ps aux | grep jenkins
jenkins  10106  0.1 25.4 2753696 498056 ?      Ssl  Aug14   7:31 /usr/bin/java -Djava.awt.headless=true -jar /usr/share/java/jenkins.war --webroot=/var/cache/jenkins/war --httpPort=8080
root     22337  0.0  0.0  14436  1100 pts/1    S+   10:08   0:00 grep --color=auto jenkins
root@april:~# cat /etc/passwd | grep jenkins
jenkins:x:112:121:Jenkins,,,:/var/lib/jenkins:/bin/bash
root@april:~#
以上命令可以看到运行jenkins服务的账号为jenkins,其home为/var/lib/jenkins
#处理步骤
切换到Jenkins用户下,生成密钥
su -s /bin/bash jenkins
ssh-keygen -t rsa
cd
cat .ssh/id_rsa.pub
cat .ssh/id_rsa
按照提示生成这个文件即可
known_hosts

标签:gitlab,--,GitLab,Jenkins,download,jenkins,root,联调
From: https://www.cnblogs.com/zttong/p/17547508.html

相关文章

  • Redhat离线安装gitlab,迁移数据,指定数据存放位置
    一、安装gitlab1、安装依赖包yuminstall-ycurlpolicycoreutils-pythonopenssh-serveropenssh-clients#开启sshd服务systemctlenablesshdsystemctlstartsshd 2、下载rpm包并安装如需迁移备份数据,新机器安装gitlab版本需跟旧机器gitlab版本保持一致查看旧机器g......
  • gitlab使用runner来实现CI/CD
    1:安装runner比如,我们需要在192.168.3.129服务器上来实现自动部署,那我们就在这台服务器上安装runner在gitlab后台,比如tn项目,那我们进入项目,在设置中,找到CI/CD点击展开,新建项目runner 选择项目信息,Linux、标签自己填写、下面的勾记得勾选一下(运行未打标签的作业),后面的可写可......
  • gitlab 发送邮件配置
    通过docker安装gitlab后配置邮箱```vim/etc/gitlab/gitlab.rb``` ```gitlab-ctlreconfigure``````gitlab-railsconsoleNotify.test_email('[email protected]','邮件标题','邮件正文').deliver_now```  结束......
  • java级联调用的空指针问题
    Java中的空指针异常(NullPointerException)通常是由于在一个对象引用上调用了空引用的方法或访问了空引用上的实例变量而引起的。当你尝试使用一个空引用时,就会抛出空指针异常。一个常见的情况是在级联调用中出现空指针异常。级联调用是指对一个对象的多个方法调用进行链式操作。例如......
  • Jenkins 系列2 --- Node/Agent
    一、概要1.承上启下Jenkins系列2.概念(1)Node/AgentNode节点是Jenkins环境的重要组成部分,它用于执行Pipeline。为了支持分布式CD,Jenkins设计了一个Controller对应多个Node/Agent的架构,Node可以与Controller部署在同一机器上,但是大部分情况应该是位于不同的机器上,甚至这些......
  • Jenkins快速入门部署+实践
    安装方法一Jenkins中文网下载jenkins.war方法二直接从http://mirrors.jenkins-ci.org/war/latest/jenkins.war下载最新的war包,然后解压到某个固定目录就算安装完成了启动方式启动方法:java-jarjenkins.war即可打开浏览器进入链接http://localhost:8080如果安装过程......
  • gitlab双重验证的时候没有中国区的解决办法
    打开开发工具,在控制台输入下面的代码运行即可在console中输入:varoption=newOption("China+86","+86");option.selected=true;document.getElementById('country').options.add(option,0);原理,手动更改页面的元素输入手机号,发送验证码,手机就可以收到了。......
  • Jenkins服务器安装及使用文档。
    准备环境Ubuntu20.04.6LTS、Linux5.4.0-148-genericx86_64、jdk-jdk1.8.0_361、maven-3.9.3、git-2.25.11、下载Jenkins.war包,并放到随意位置(你自己定)https://get.jenkins.io/war-stable/2.346.3/2、将启动脚本jenkins.sh放入war包同一路径下#!/bin/bashAppName=jenk......
  • 开发 Jenkins 插件
    一、环境准备Jenkins是基于Java开发的。所以要开发Jenkins插件,首先要安装JDK、mvn等工具二、创建 Jenkins插件项目1、新建一个项目目录,并在命令行进入该目录后执行如下mvn命令mvn-Uarchetype:generate-Dfilter=io.jenkins.archetypes:   ......
  • 基于Jenkins+Gitee实现SpringBoot项目自动化部署(Docker版)
    前言:上一篇笔记:基于Jenkins+Gitee实现SpringBoot项目自动化部署(非Docker版)。本篇笔记介绍一下Docker版本的Jenkins如何实现项目自动化部署。本案例基于Linux CentOS7服务器,防火墙开放8080端口(Jenkins使用),80端口(项目使用),云服务器直接在控制台配置安全规则即可。1......