jenkins部署及gitlab联调
jenkins部署及gitlab联调
- jenkins部署及gitlab联调
- 一、jenkins安装
- 二、Jenkins插件安装实战篇
- 三、Jenkins自动发布代码集成gitlab
- 四、配置GitLab Push 自动触发Jenkins构建
- 一.安装GitLab插件
- 二.配置GitLab认证
- 在GitLab中复制“Private token”的值
- 将GitLab的“Private token”的值复制到Jenkins的API token中。
- 6>.进入系统设置界面
- 7>.测试连接(由于我们通过API认证的,所以必须得用http协议,测试成功后别忘记保存哟!)
- 8>.如果上述配置成功,我们再次编辑我们之前的项目
- 9>.点击之前的项目
- 10>.点击构建触发器
- 11>.拷贝Jenkins生成的随机字符串(在完成第十三步后回来保存它!)
- 12>.进入到GitLab中的对应的项目“Integrations Settings”
- 13>.添加GitLab的“System hook”(注意图中的URL和Token信息均来第11步骤)
- 14>测试添加的webhook
- 三.修改GitLab的数据,简称服务器端是否有文件生成
- 五、Jenkins发邮件
- 六、jenkins集成freeipa
- 七、Jenkins_node节点安装
- 报错总结
一、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 ~]#
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@example.com"
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 root@jenkins.yinzhengjie.org.cn
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 root@jenkins.yinzhengjie.org.cn
[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>.点击之前的项目
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 admin@TEST.COM
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 root@192.168.247.131
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
jenkins部署及gitlab联调的更多相关文章
- jenkins部署java项目
#########################################jenkins部署#################################3 一.jenkins是什么? J ...
- Gitlab+Jenkins学习之路(六)之Jenkins部署、升级和备份
一.什么是持续集成? (1)Continuous integration(CI) 持续集成是一种软件开发实践,即团队开发成员经常集成他们的工作,通常每个成员至少集成一次,也就意味着每天可能会发生多次集 ...
- Jenkins 部署自动化测试脚本(15)
自动化测试脚本开发完成以后,希望可以把脚本放在公共的环境下提供一个入口供大家一起使用,目前最好的解决方案就是需要把代码部署在Jenkins上,下面看下如何在Jenkins配合自动化测试任务: 1.首先 ...
- Jenkins部署Python项目实战
一.背景 我们工作中常用Jenkins部署Java代码,因其灵活的插件特性,例如jdk,maven,ant等使得java项目编译后上线部署一气呵成,同样对于脚本语言类型如Python上线部署,利用Je ...
- Jenkins部署实战篇
Jenkins部署实战篇 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.持续集成理论 1>.开发写代码的演变过程 1.1>.一个开发单打独斗,撸代码,开发网站,自由 ...
- Jenkins 部署
1 修改jenkins的根目录,默认地在C:\Documents and Settings\AAA\.jenkins . .jenkins ├─jobs│ └─JavaHelloWorld│ ...
- 再见Jenkins,从Gitlab代码提交到k8s服务持续交付只需七毛三(走过路过不要错过)
Gitlab runner 快速搭建CICD pipeline 背景 日常开发中,相信大家已经做了很多的自动化运维环境,用的最多的想必就是利用Jenkins实现代码提交到自动化测试再到自动化打包,部署 ...
- kubernetes 1.17.2结合ceph13.2.8 实现jenkins部署并用traefik2.1代理
注:关于ceph.kubernetes集群的部署在此不声明,相信搜到本篇博文,你一定对ceph.kubernetes的部署环节手刃有余. 注:本篇博文牵扯到的技术点有:ceph.kubernetes. ...
- Jenkins部署静态资源文件
Jenkins部署静态资源文件 1.Jenkins部署静态资源文件 1.1 设置项目名称.参数(环境.分支)等 1.2 配置源码管理 1.3 配置构建参数 2.项目实战demo 2.1 demo1 部 ...
- 有手就行——Jenkins介绍 及 Gitlab代码托管服务器安装
Jenkins 介绍 及 Gitlab代码托管服务器安装 Gitlab安装 源码上传到Gitlab仓库 Jenkins介绍 Jenkins 是一款流行的开源持续集成(Continuous Integr ...
随机推荐
- ARC144
ARC 144 比赛情况:一眼订正,鉴定为做起 \(3\) 道题. A - Digit Sum of 2x \(2x\) 进位就不满足 \(M\) 最大的条件了,所以 \(x\) 不能进位. 然后要求 ...
- 【Python&GIS】判断图片中心点/经纬度点是否在某个面内
Python的exifread库可以获取图片中的源数据信息,包括经纬度.相机厂商.曝光时间.焦距.拍摄时间.拍摄地点等等信息.我们可以通过exifread库从图片中获取图片的经纬度,再通过shape ...
- @Retention元注解的使用
@Retention注解标记其他的注解用于指明标记的注解保留策略:先看Java SE 8中@Target是如何声明的: package java.lang.annotation; public enu ...
- 在线免费chatgpt网页版-支持gpt4
为了吸引更多的用户体验最先进的自然语言处理技术,我们推出了在线免费ChatGPT.这是一个基于OpenAI训练的大型语言模型,它可以提供智能响应.自然对话和语音识别等功能.不仅如此,我们还提供了完全免 ...
- tvm-多线程代码生成和运行
本文链接 https://www.cnblogs.com/wanger-sjtu/p/16818492.html 调用链 tvm搜索算子在需要多线程运行的算子,是在codegen阶段时插入TVMBac ...
- MAMP VirtualHost 无效 配置踩坑
目录 Mac系统 MAMP Apache 多虚拟主机配置无效 最终解决: 注意事项: Mac系统 MAMP Apache 多虚拟主机配置无效 和在linux.windows类似,起初添加了一个 < ...
- 【调制解调】DSB 双边带调幅
说明 学习数字信号处理算法时整理的学习笔记.同系列文章目录可见 <DSP 学习之路>目录,代码已上传到 Github - ModulationAndDemodulation.本篇介绍 DS ...
- Centos使用keepalived配置MySQL双主热备集群
目录 安装MySQL 下载安装包 卸载mariadb-lib 安装依赖 安装gcc 安装perl 永久关闭selinux 安装 配置 创建mysql数据库管理用户和组 创建数据目录 修改my.cnf配 ...
- 初识常量变量、字符串、ASCII编码表、转义字符表
一.常量.变量 1.枚举常量(enum) 枚举常量不能更改,枚举常量所创造出的变量可以更改 正确 错误 2.常变量 3.#define定义的标示变量 二.数组 "abc"--'a' ...
- sensor binning信号及信噪比
Signal是简单的增加,Noise是以均方根形式增加 例如: 2*2的binning模式中,signal增加4倍,noise增加 4 \sqrt4 4 倍,so SNR增加2倍. sony sen ...