从 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 jenkinsnewgrp 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可以看到更直观的流水线。

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

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

云计算重要概念之:虚拟机、网卡、交换机、路由器、防火墙

一、虚拟机 (Virtual Machine, VM) 1.主流的虚拟化软件: 虚拟化软件通过在单个物理硬件上创建和管理多个虚拟环境(虚拟机),实现资源的高效利用、灵活部署、隔离安全以及便捷管理,是构建云计算和现代化数据中心的核心…

B端:弹窗的场景、类型、 选择策略串讲,让你的设计有理有据。

B端产品在什么情况下使用弹窗,弹窗又分为哪些类型,该如何选择合理的弹窗形式,很多小伙伴都是跟着感觉走,本文告诉你依据。 一、弹窗及其场景 在B端系统中,"B端"通常指的是面向企业(Business&am…

VMware Workstation部署最新版OpenWrt 23.05.3

正文共:1456 字 51 图,预估阅读时间:2 分钟 我们之前介绍了如何在VMware Workstation上安装OpenWrt(软路由是啥?OpenWrt又是啥?长啥样?在VMware装一个瞅瞅),也介绍了如何…

十分钟学懂Java并发

并发简介 我们学到的基本上都是有关顺序编程的知识,即程序中所有事物在任意时刻都只能执行一个步骤。 编程问题中相当大的一部分都可以通过使用顺序编程来解决。然而,对于某些问题,如果能够并发地执行程序中的多个部分,则会变得非…

lua学习笔记19(面相对象学习的一点总结)

print("*****************************面相对象总结*******************************") object{} --实例化方法 function object:new()local obj{}self.__indexselfsetmetatable(obj,self)return obj end-------------------------如何new一个对象 function object:…

1688商品详情接口技术深探:解锁电商数据新纪元,实现业务自动化飞跃

1688商品详情接口技术解析 一、引言 随着电子商务的快速发展,越来越多的企业开始关注如何利用API接口获取商品详情信息,以实现数据的自动化处理和业务的快速拓展。1688作为国内知名的B2B电商平台,其商品详情接口成为了众多企业关注的焦点。…

三小时使用鸿蒙OS模仿羊了个羊,附源码

学习鸿蒙arkTS语言,决定直接通过实践的方式上手,而不是一点点进行观看视频再来实现。 结合羊了个羊的开发思路,准备好相应的卡片素材后进行开发。遇到了需要arkTS进行解决的问题,再去查看相应的文档。 首先需要准备卡片对应的图片…

什么是JAVA面向对象

一,什么是面向对象: 我们以前的项目都是面向过程的,一个完整的项目所有的代码都写在一个类里 这就叫面向过程。 面向对象,是指在写大型项目时,多人分工合作,为了代码看上去简洁美观,会将不同的…

2023-2024年科技行业主要变化趋势梳理与总结

一、主要大额并购案例并购原因 (一)产品线补充与业务市场拓展(如VMware、Activision Blizzard并购案) (二)技术整合(如Spunk并购案)、 (三)优化运营以期溢…

MFC:手写一个模态对话框程序

我们知道,在MFC中,要生成一个模态对话框程序,只要按着VS的提示,拖拖拽拽就能生成一个这样的程序,效率非常高。这里,我们反其道而行之,自己写一个这样的程序,这个程序与自动生成的程序…

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

Day 18 Spatial Transformer Layer 因为单纯的cNN无法做到scaling(放大)and rotation(转),所以我们引入; 实战中也许我们可以做到 是因为 我们的training data 中包含了对data 的augmentation; …

设计模式——外观(门面)模式10

外观模式:能为系统框架或其他复杂业务流程封装提供一个简单的接口。 例如抽奖过程中 设计模式,一定要敲代码理解 调用1(抽奖系统) /*** author ggbond* date 2024年04月08日 10:34*/ public class Lottery {public String getId…

帝国cms仿《鳄鱼下载站》网站源码

仿《鳄鱼下载站》网站源码手机安卓软件网站模版 PHP网站源码 帝国cms内核 采用帝国cms7.5 环境PHPmysql 恢复数据库后如何修改密码: 双击表,进入对应的详细数据表,然后找到:www_96kaifa_com_enewsuser这个表,双击打开修改&…

python画神经网络图

代码1(画神经网络连接图) from math import cos, sin, atan import matplotlib.pyplot as plt # 注意这里并没有用到这个networkx这个库,完全是根据matploblib这个库来画的。 class Neuron():def __init__(self, x, y,radius,nameNone):self.x xself.y …

Substance 3D2024版 下载地址及安装教程

Substance 3D是Adobe公司推出的一套全面的3D设计和创作工具集合,用于创建高质量的3D资产、纹理和材质。 Substance 3D包括多个功能强大的软件和服务,如Substance 3D Painter、Substance 3D Designer和Substance 3D Sampler等。这些工具提供了广泛的功能…

智过网:注册安全工程师注册有效期与周期解析

在职业领域,各种专业资格认证不仅是对从业者专业能力的认可,也是保障行业安全、规范发展的重要手段。其中,注册安全工程师证书在安全生产领域具有举足轻重的地位。那么,注册安全工程师的注册有效期是多久呢?又是几年一…

数据可视化的3D问题

三维对象非常流行,但在大多数情况下会对解释图形的准确性和速度产生负面影响。 以下是对涉及 3d 的主要图形类型的回顾,并讨论了它们是否被认为是不好的做法。 1、3D 条形图:不要 这是一个 3d 条形图。 你可能很熟悉这种图形,因为…

LabVIEW电信号傅里叶分解合成实验

LabVIEW电信号傅里叶分解合成实验 电信号的分析与处理在科研和工业领域中起着越来越重要的作用。系统以LabVIEW软件为基础,开发了一个集电信号的傅里叶分解、合成、频率响应及频谱分析功能于一体的虚拟仿真实验系统。系统不仅能够模拟实际电路实验箱的全部功能&…

The C programming language (second edition,KR) exercise(CHAPTER 3)

E x c e r c i s e 3 − 1 Excercise\quad 3-1 Excercise3−1:输出结果如图1所示,这里故意让二分搜索算法去寻找一个在数组中不存在在的数,然后去看两种二分搜索算法分别所花费的时间的大小,为了使得所花费的时间更具有可分辨性&a…

3D室内装潢设计 Sweet Home 3D for Mac 中文直装版

Sweet Home 3D 是一款非常棒的家装辅助设计软件,支持包括中文在内的16中语言,它能帮您通过二维的家居平面图来设计和布置您的家具,还可以用三维的视角浏览整个装修布局的全貌。是一款操作起来简单方便,使用起来快捷、迅速,拥有超高…