从 0 搭建公司Jenkins服务 Centos7

  • 从 0 搭建公司Jenkins服务 Centos7
    • 安装 (运维人员)
      • 安装环境
        • 配置DNS
        • 安装JDK17
        • 安装Jenkins
        • 安装Docker
        • 安装GIT
        • 安装Ansible
        • 启动Jenkins
        • 安装插件
      • 配置凭据
      • 配置共享库
    • 配置 (开发经理)
    • 使用 (开发、测试人员)

安装 (运维人员)

安装环境

配置DNS

新安装系统的服务器无法解析域名,配置DNS /etc/resolv.conf

nameserver 8.8.8.8
nameserver 114.114.114.114
安装JDK17

到Oracle官网找到JDK17

wget https://download.oracle.com/java/17/latest/jdk-17_linux-x64_bin.rpm
yum install -y jdk-17_linux-x64_bin.rpm
安装Jenkins

官方文档

sudo wget -O /etc/yum.repos.d/jenkins.repo \
    https://pkg.jenkins.io/redhat/jenkins.repo
sudo rpm --import https://pkg.jenkins.io/redhat/jenkins.io-2023.key
sudo yum upgrade
# Add required dependencies for the jenkins package
sudo yum install fontconfig  
sudo yum install jenkins
安装Docker

官方文档

# Remote
sudo yum remove docker \
                  docker-client \
                  docker-client-latest \
                  docker-common \
                  docker-latest \
                  docker-latest-logrotate \
                  docker-logrotate \
                  docker-engine

# Config               
sudo yum install -y yum-utils
sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo

# Install
sudo yum install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

# Start
sudo systemctl start docker

# Verify
sudo docker run hello-world

增加权限

sudo usermod -aG docker jenkins
 
newgrp docker
安装GIT
yum install -y git
安装Ansible
sudo yum install -y epel-release
sudo yum install -y ansible

Using Ansible playbooks — Ansible Community Documentation

启动Jenkins
sudo systemctl start jenkins
sudo systemctl restart jenkins
sudo systemctl status jenkins

查看日志使用

journalctl -u jenkins.service
安装插件

配置用户信息略过。登录之后要安装插件。Jenkins Plugins插件

配置凭据

登录服务器,链接GIT仓库下载代码,都需要账户密码并且拥有权限,为了不泄露这些信息,可以到 系统管理 -> 凭据 中创建凭据,供后续连接时使用


有以下几种类型可选。

ssh使用的公钥,需要配置到目标机器~/.ssh/authorized_keys中,免密远程使用

配置共享库

为了使构建流程可以统一维护,这里创建一个仓库用于维护公共部署流程。

之后到系统管理中维护一下共享库的位置。

配置 (开发经理)

首先要先创建针对某项目的配置仓库。例如缉查布控项目EHL-DAP,这里创建其配置仓库EHL-DAP-CONFIG。

然后要按照项目各现场分类。例如缉查布控项目分为烟台、喀什两个现场。这里首层有两个现场的文件夹。 EHL-DAP-CONFIG/yantai/ 与 EHL-DAP-CONFIG/kashi/

因为每个项目中可能有许多子模块,需要单独部署启动。例如这里的定时任务模块schedule,我们创建单独的文件夹来管理。EHL-DAP-CONFIG/yantai/schedule/。

之后因为每个项目又会部署到不同的环境,这里列举三个环境dev/test/prod。所以又分为三个子目录。
EHL-DAP-CONFIG/yantai/schedule/dev/。

最后在环境目录下可以维护配置,并创建Jenkinsfile文件编写流水线。EHL-DAP-CONFIG/yantai/schedule/dev/Jenkinsfile

下面是PrivateKey-201对应的公钥,如果目标机是新服务器,需要到/root/.ssh/authorized_keys文件中,将公钥添加进去。注意authorized_keys文件权限必须是600。

ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC3J6+vOKJbSYSqPl8If6vPISpaox4s7get0rijzm+QKocqdncxZFrULc2Qlfmt4PEMs8jPsq9KACwjWYisYYJWpLK/UdXO+Vs24gwMqhly5Lu5yfh9kMIjN8yF5Muh26vF5YiBLBnt0siDkZBSVDdPAFZJMJdXJj8N9i19DLj8rctK5Ot4NJTYPRbuXEIuLn9+1sVVPAZm1TAXieZ4PQhi9Ca73V3vJ70RKSKXgFeXcWTZyo/V5ADJiq21Ac8vMPy5YocsKpIcf62bdh3eO+jGyAW4rpIxZvg1iV5/pTk6yNVN/wfP3yfipDz8+0Kii+irwyGAhDZZ6Sf1htaGIufD root@localhost.localdomain

最后一行的流水线调用有许多不同的方法支持。目前有以下这些,后续会陆续支持

方法功能
deploy_back部署后端Java服务,使用bin/start.sh启动项目
deploy_back_by_docker通过Docker部署后端项目
deploy_front部署前端项目
deploy_front_by_docker通过Docker部署前端项目

维护好Jenkinsfile并提交项目之后,我们可以转战jenkins页面,可视化的创建项目。

创建不同现场的文件夹

名称可以填写汉字

在现场文件夹中再创建项目文件夹,例如:缉查布控项目。

点击左侧新建项目

之后创建流水线项目,命名方式要按照标准。环境-项目名

环境标准
开发dev
测试test
预发pre
生产prod

例如:dev-dispatch-analysis、test-dispatch-system

拉到底部,流水线选择 Pipeline script from SCM 直接填写流水线配置。填完点击保存

第一次保存后项目是空的,需要点击立即构建。第一次会显示失败,因为第一次是配置落位的过程。

点击一次之后就可以正常使用了。

使用 (开发、测试人员)

首先点击 通过参数构建

部署

输入要构建的分支,选择构建机器,MODE选择DEPLOY,然后点击构建即可触发部署流程。

每次构建都会生成一个版本号。规则是:日期(年月日时分秒)_GIT提交版本_构建版本

注意:因为第一次启动项目,项目编译需要下载许多依赖包,有可能十分钟无法完成,项目会自动停止,需要再次点击构建,继续下载首次未下载好的依赖,全部下载到本地之后才能构建成功。(一次下不完可以多点几次)

回滚

选择要部署的机器,然后MODE选择ROLLBACK,版本中选择历史构建过的版本号,点击构建,即可触发回滚流程。

左侧构建历史可以看到每一次的记录。

左侧打开BlueOcean可以看到更直观的流水线。

选择某一次的流水线,可以看到节点的执行情况,点击具体某个节点可以看到执行的命令日志。更方便我们分析问题。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/533642.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

为什么选择成为一名程序员

选择成为一名程序员,其背后的原因往往既包含兴趣,也包含职业发展的考量。对于我来说,这两者并不是孤立的,而是相互交织,共同推动步入这一行业。 兴趣是选择成为程序员的重要驱动力。编程本身就是一种创造和解决问题的…

Calibre:如何在runset中设置LVS box

我正在「拾陆楼」和朋友们讨论有趣的话题,你⼀起来吧? 拾陆楼知识星球入口 相关文章链接: Calibre:LVS 流程 在“Calibre: LVS 流程”文章里介绍了再rule file和图形界面如何设置lvs box,这里再分享一种lvs box设置方法: 通常我们会保存runset文件

CSS 基础:border 的 3 个基础属性和简写方法

你好,我是云桃桃。 一个希望帮助更多朋友快速入门 WEB 前端的程序媛。大专生,一枚程序媛,感谢关注。回复 “前端基础题”,可免费获得前端基础 100 题汇总,回复 “前端工具”,可获取 Web 开发工具合集 264篇…

SpringCloudAlibaba-整合nacos(二)

目录地址: SpringCloudAlibaba整合-CSDN博客 一、nacos服务部分 1.下载nacos,并执行数据库脚本:nacos-mysql.sql 2.修改配置文件,配置mysql 3.启动nacos ./startup.sh -m standalone 4.访问:http://127.0.0.1:884…

Golang快速入门教程(一)

目录 一、环境搭建 1.windows安装 2.linux安装 3.开发工具 二、变量定义与输入输出 1.变量定义 2.全局变量与局部变量 3.定义多个变量 4.常量定义 5.命名规范 6.输出 7.输入 三、基本数据类型 1.整数型 2.浮点型 3.字符型 4.字符串类型 转义字符 多行字符…

基于51单片机的多床位病房呼叫器Proteus仿真

地址:https://pan.baidu.com/s/1WLTBD9WaWncZS_uRSjM-iA 提取码:1234 仿真图: 芯片/模块的特点: AT89C52/AT89C51简介: AT89C52/AT89C51是一款经典的8位单片机,是意法半导体(STMicroelectroni…

企业微信认证后可以修改主体吗?

企业微信变更主体有什么作用?如果原有的公司注销了,或者要更换一家公司主体来运营企业微信,那么就可以进行变更主体,变更主体后才可以保留原来企业微信上的所有用户,否则就只能重新申请重新积累用户了。企业微信变更主…

机器学习和深度学习--李宏毅(笔记与个人理解)Day9

Day9 Logistic Regression(内涵,熵和交叉熵的详解) 中间打了一天的gta5,图书馆闭馆正好npy 不舒服那天天气不好,哈哈哈哈哈总之各种理由吧,导致昨天没弄起来,今天补更! 这里重点注意…

面向对象设计原则实验“依赖倒置原则”

高层模块不应该依赖于低层模块。二者都应该依赖于抽象。抽象不应该依赖于细节。细节应该依赖于抽象。 (开闭原则、里氏代换原则和依赖倒转原则的三个实例很相似,原因是它之间的关系很紧密,在实现很多重构时通常需要同时使用这三个原则。开闭…

【智能优化算法详解】粒子群算法PSO量子粒子群算法QPSO

1.粒子群算法PSO 博主言简意赅总结-算法思想:大方向下个体自学习探索群体交流共享 对比适应度找到最优点 背景 粒子群算法,也称粒子群优化算法或鸟群觅食算法(Particle Swarm Optimization), 缩写为 PSO。粒子群…

HarmonyOS实战开发-如何实现文件管理相关的功能。

介绍 本示例主要展示了文件管理相关的功能,使用ohos.multimedia.medialibrary 、ohos.filemanagement.userFileManager 、ohos.fileio 、ohos.file.fs、ohos.app.ability.contextConstant 等接口,实现了增添文件、删除文件、查找指定类型文件文件、复制…

2024年MathorCup+认证杯数模竞赛思路预定与助攻计划

2024年的第14届“妈妈杯”与认证杯即将启动,云顶数模将团队众多国奖学长学姐将再次为大家精心准备的高质量解题思路、参考代码等,帮助大家在妈妈杯获得理想的成绩,也为国赛奠定坚实基础!! 小云也为大家提供了本周末两场…

安装selenium和关于chrome高版本对应的driver驱动下载安装【Win/Mac 】

目录 一、查看自己电脑上chrome的版本 二、下载 ChromeDriver 三、安装selenium 法一:打开pycharm,点击File,Setting进入配置页面,点击Project下面的Python Interpreter进入环境配置页面,点击。输入selenium。之后…

【太阳能控制器升压芯片方案】DC-DC异步升压恒压外置MOS芯片FP5207 主要应用于太阳能灯带、太阳能路灯/投光灯等市场

随着社会经济的发展,能源危机与生态环境问题日趋严重,大力发展可再生能源已经成为当今世界的必然趋势。太阳能作为取之不尽、清洁干净的资源,已成为世界各国研究开发的热点。光伏发电具有技术成熟、产业化程度高的特点,受到世界各…

一、幼儿园校园广播系统(IP网络广播)建设背景

幼儿园为给儿童提供优雅的学习生活环境,园领导决定建设一套幼儿园校园广播(IP网络广播)系统。 二、幼儿园校园广播系统(IP网络广播)简述 幼儿园校园广播系统(IP网络广播),采用“技…

Linux第88步_非阻塞IO实验

非阻塞IO是“应用程序”对“驱动设备”进行操作,若不能获取到设备资源,则非阻塞IO应用程序的线程不会被“挂起”,即线程不进入休眠,而是一直“轮询”,直到获取到设备资源为止,或者直接放弃。 非阻塞IO应用举…

[计算机效率] 鼠标手势工具:WGestures(解放键盘的超级效率工具)

3.22 鼠标手势工具:WGestures 通过设置各种鼠标手势和操作进行绑定。当用户通过鼠标绘制出特定的鼠标手势后就会触发已经设置好的操作。有点像浏览器中的鼠标手势,通过鼠标手势操纵浏览器做一些特定的动作。这是一款强大的鼠标手势工具,可以…

大语言模型:红蓝对抗的工作原理及作用

您是否对强大的生成式AI领域心生好奇,却又担心随之而来的潜在漏洞?您只需了解红蓝对抗就好了,它也称为破解或提示注入。AI开发的这一关键环节往往被忽视,但其在提高生成式AI模型的性能方面发挥的作用却至关重要。 大语言模型&…

TFT显示屏驱动

REVIEW 已经学习过VGA 时序与实现-CSDN博客 VGA 多分辨率-CSDN博客 今天就来让TFT屏显示一下 小梅哥视频:24 RGB TFT显示屏原理与驱动实现_哔哩哔哩_bilibili 1. 设置显示屏参数与时钟 注意到VGA_parameter.v中,不懂得分辨率对应于不同的频率&#xff…

基于springboot实现洗衣店订单管理系统项目【项目源码+论文说明】

基于springboot实现洗衣店订单管理系统演示 摘要 随着信息互联网信息的飞速发展,无纸化作业变成了一种趋势,针对这个问题开发一个专门适应洗衣店业务新的交流形式的网站。本文介绍了洗衣店订单管理系统的开发全过程。通过分析企业对于洗衣店订单管理系统…