【devops】五、Integrate工具——容器部署Jenkins(上)

简介: 【devops】五、Integrate工具——容器部署Jenkins(上)

说明


这部分在Jenkins服务器中操作。


五、Integrate工具


持续集成、持续部署的工具很多,其中Jenkins是一个开源的持续集成平台。

Jenkins涉及到将编写完毕的代码发布到测试环境和生产环境的任务,并且还涉及到了构建项目等任务。

Jenkins需要大量的插件保证工作,安装成本较高,下面会基于Docker搭建Jenkins。


5.1 Jenkins介绍

Jenkins是一个开源软件项目,是基于Java开发的一种持续集成工具

Jenkins应用广泛,大多数互联网公司都采用Jenkins配合GitLab、Docker、K8s作为实现DevOps的核心工具。

Jenkins最强大的就在于插件,Jenkins官方提供了大量的插件库,来自动化CI/CD过程中的各种琐碎功能。

4d7048eac6d34dc498d2cfe4f9f8ae2a.pngb45f41ea59474c96a6e127e1d711390d.png

Jenkins最主要的工作就是将GitLab上可以构建的工程代码拉取并且进行构建,再根据流程可以选择发布到测试环境或是生产环境上。

一般是GitLab上的代码经过大量的测试后,确定发行版本,再发布到生产环境。


CI/CD可以理解为:

  • CI过程即是通过Jenkins将代码拉取、构建、制作镜像交给测试人员测试。
  • 持续集成:让软件代码可以持续的集成到主干上,并自动构建和测试。
  • CD过程即是通过Jenkins将打好标签的发行版本代码拉取、构建、制作镜像交给运维人员部署。
  • 持续交付:让经过持续集成的代码可以进行手动部署。
  • 持续部署:让可以持续交付的代码随时随地的自动化部署。

0acfea86625348b1b6d0025ad8b36343.png


5.2 Jenkins安装


法一:docker run 命令安装

这里使用第一种方法

# 1. 创建并进入目录
mkdir /usr/local/docker/jenkins_docker -p
cd /usr/local/docker/jenkins_docker
# 2. 拉取镜像,注意版本不能太低,太低的话Jenkins中一部分插件无法下载
docker pull jenkins/jenkins:2.361.2
# 3. 运行
docker run -di --name jenkins \ 
-p 8080:8080 -p 50000:50000 -u root \
-v /usr/local/docker/jenkins_docker/data:/var/jenkins_home \
--restart always \
jenkins/jenkins:2.361.2
# 4. 配置国内源安装插件
cd /usr/local/docker/jenkins_docker/data/updates
wget https://mirrors.aliyun.com/jenkins/updates/update-center.json


法二:yml文件安装
  1. 拉取Jenkins镜像
docker pull jenkins/jenkins


  1. 编写docker-compose.yml
# 1. 创建并进入目录
mkdir /usr/local/docker/jenkins_docker -p
cd /usr/local/docker/jenkins_docker
# 2. 编辑yml文件内容
vim docker-compose.yml
version: "3.1"
services:
  jenkins:
    image: jenkins/jenkins
    container_name: jenkins
    ports:
      - 8080:8080
      - 50000:50000
    volumes:
      - ./data/:/var/jenkins_home/
# 3. 执行
docker-compose up -d


3、用yml文件执行,首次启动会因为数据卷data目录没有权限导致启动失败,设置data目录写权限

b7eedd280df04d67874a261ab7419b63.png

# 修改权限
chmod -R 777 data/
# 重新启动
docker-compose restart

4、重新启动Jenkins容器后,由于Jenkins需要下载大量内容,但是由于默认下载地址下载速度较慢,需要重新设置下载地址为国内镜像站。如果慢的话可以更换镜像源

cd /usr/local/docker/jenkins_docker/data
vim hudson.model.UpdateCenter.xml
# 修改数据卷中的hudson.model.UpdateCenter.xml文件
<?xml version='1.1' encoding='UTF-8'?>
<sites>
  <site>
    <id>default</id>
    <url>https://updates.jenkins.io/update-center.json</url>
  </site>
</sites>
# 将下载地址替换为http://mirror.esuni.jp/jenkins/updates/update-center.json
<?xml version='1.1' encoding='UTF-8'?>
<sites>
  <site>
    <id>default</id>
    <url>http://mirror.esuni.jp/jenkins/updates/update-center.json</url>
  </site>
</sites>
# 清华大学的插件源也可以https://mirrors.tuna.tsinghua.edu.cn/jenkins/updates/update-center.json


  1. 再次重启Jenkins容器,访问Jenkins(需要稍微等会)
docker restart jenkins

1a2b3987b03a46f9aca449827bde5e79.png


登录Jenkins


通过IP:8080登录

3a3ed54b342e467fbc31064b57e247c3.png

  1. 查看密码登录Jenkins,并登录下载插件
# 通过日志查看密码
docker logs -f jenkins
# 或者进入容器内部查看密码
docker exec -it jenkins 
cat /var/jenkins_home/secrets/initialAdminPassword

9c5234dc0a7442e4a19e2005decae7bf.png

b471182a4b314633882cb142cbeab3ae.png

选择需要安装的插件,这里可以先不用选,进入之后再到插件管理中下载,直接点击安装,就会进入下载界面,如下图。等待一会下载完成

7fd935496cf6459697129a5a70c6b368.png

下载完毕设置信息进入首页(可能会出现下载失败的插件,失败也没关系,点击继续就可以,进入之后可以再次安装)


2、创建用户

85c1b45740d1442e9951a3ded1100bed.png

d6f779234a16486698831b9a1f07a995.png

3c7d9433eabe44f78ebaa67dee0bb406.png

3、下载插件

来到系统管理—插件管理中—安装下面2个插件(Git Parameter / Publish Over SSH):Git Parameter能够使Jenkins可以从gitlab上拉取代码;Publish Over SSH作用是把构建好的jar包推送到目标服务器,并且发送一个脚本命令告诉目标服务器把当前可运行的目标文件跑起来。

2b36214f9a4f4eaa8a76547df10f213e.png

e678d610510042559f3448ee5fbe8027.png

相关文章
|
6月前
|
存储 关系型数据库 MySQL
MySQL Docker 容器化部署全指南
MySQL是一款开源关系型数据库,广泛用于Web及企业应用。Docker容器化部署可解决环境不一致、依赖冲突问题,实现高效、隔离、轻量的MySQL服务运行,支持数据持久化与快速迁移,适用于开发、测试及生产环境。
895 4
|
6月前
|
Kubernetes jenkins 持续交付
Artifact Hub在Kubernetes中的应用:部署Jenkins的脚本整理
以上步骤断言清晰明确地描述了如何通过Artifact Hub 使用Helm图表来部署Kubernetes 中得Jenkis 实例,并且提供了相应得Shell 脚本作为执行指南. 这样不但能够帮助用户快速地进行操作, 同时也能够通过自定义参数来满足不同用户需求.
185 5
|
7月前
|
弹性计算 Devops Shell
用阿里云 DevOps Flow 实现 ECS 部署自动化:从准备到落地的完整指南
阿里云 DevOps Flow 是一款助力开发者实现自动化部署的高效工具,支持代码流水线构建、测试与部署至ECS实例,显著提升交付效率与稳定性。本文详解如何通过 Flow 自动部署 Bash 脚本至 ECS,涵盖环境准备、流水线搭建、源码接入、部署流程设计及结果验证,助你快速上手云上自动化运维。
593 0
存储 jenkins 持续交付
823 2
|
7月前
|
jenkins Java 持续交付
使用 Jenkins 和 Spring Cloud 自动化微服务部署
随着单体应用逐渐被微服务架构取代,企业对快速发布、可扩展性和高可用性的需求日益增长。Jenkins 作为领先的持续集成与部署工具,结合 Spring Cloud 提供的云原生解决方案,能够有效简化微服务的开发、测试与部署流程。本文介绍了如何通过 Jenkins 实现微服务的自动化构建与部署,并结合 Spring Cloud 的配置管理、服务发现等功能,打造高效、稳定的微服务交付流程。
832 0
使用 Jenkins 和 Spring Cloud 自动化微服务部署
|
7月前
|
存储 Kubernetes 持续交付
为什么Docker容器化改变了开发与部署?
为什么Docker容器化改变了开发与部署?
|
数据可视化 开发工具 git
GitOps 驱动的 Docker Compose 可视工具化来了,图形化编辑器上玩转容器编排
Docker Compose 简化了多容器应用的部署,但随着应用复杂度上升,文本配置方式逐渐暴露出维护难、协作效率低等问题。基于 GitOps 的可视化 Docker Compose 工具应运而生,通过图形界面降低使用门槛,提升配置准确性和团队协作效率。结合 GitOps,实现配置变更的版本追踪、自动化部署与环境一致性,为多容器应用管理提供高效、安全的解决方案。
|
8月前
|
运维 监控 数据可视化
小白也能部署应用,3个免费的容器化部署工具测评
本文对比了三款容器化部署工具:Docker Compose、Portainer 和 Websoft9。Docker Compose 适合开发者编排多容器应用,Portainer 提供图形化管理界面,而 Websoft9 则面向中小企业和非技术人员,提供一键部署与全流程运维支持,真正实现“开箱即用”。三款工具各有定位,Websoft9 更贴近大众用户需求。
小白也能部署应用,3个免费的容器化部署工具测评
|
监控 jenkins Shell
jenkins结合gitlab实现CI(持续集成)
通过本文的介绍,我们详细了解了如何结合Jenkins和GitLab实现持续集成。从环境准备、插件配置到Pipeline任务创建和CI流程监控,每一步都提供了详细的操作步骤和示例代码。希望本文能帮助开发者快速搭建起高效的CI系统,提高项目开发效率和代码质量。
1404 9
|
Java jenkins 持续交付
Jenkins集成Maven
通过以上步骤,可以在Jenkins中成功集成Maven,实现自动化构建和部署。通过定时构建、SCM轮询等方式,可以确保代码库中的最新变更能够及时构建和测试,提高开发效率和代码质量。这种集成方式在实际项目中具有广泛的应用前景,能够显著提升团队的协作效率。
499 8

推荐镜像

更多