【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

目录
打赏
0
1
1
0
25
分享
相关文章
Ansible与Jenkins:自动化工具的对比
Ansible和Jenkins是自动化领域的两大巨头。Ansible专注于配置管理和任务自动化,采用无代理架构,使用YAML定义配置,具有幂等性和可扩展性。Jenkins则擅长持续集成和持续交付(CI/CD),支持丰富的插件生态系统,适用于自动化构建、测试和部署。两者各有优势,Ansible适合配置管理与大规模部署,Jenkins则在CI/CD方面表现出色。结合使用可创建更强大的自动化工作流,提升团队生产力和软件质量。选择工具时应根据具体需求决定。
Jenkins 自动化局域网管控软件构建与部署流程
在企业局域网管理中,Jenkins 作为自动化工具,通过配置源码管理、构建及部署步骤,实现了高效、稳定的软件开发与部署流程,显著提升局域网管控软件的开发与运维效率。
78 5
|
5月前
|
DevOps实践:持续集成与部署的自动化之旅
【10月更文挑战第7天】在软件开发领域,DevOps已成为提升效率、加速交付和确保质量的关键策略。本文将深入探讨如何通过实施持续集成(CI)和持续部署(CD)来自动化开发流程,从而优化运维工作。我们将从基础概念入手,逐步过渡到实际操作,包括工具选择、流程设计以及监控和反馈机制的建立。最终,我们不仅会展示如何实现这一自动化流程,还会讨论如何克服常见的挑战,以确保成功实施。
91 9
DevOps实践:持续集成与部署的自动化之路
【9月更文挑战第30天】在软件工程的世界中,DevOps已成为提升开发效率、确保软件质量和加快交付速度的关键策略。本文将深入探讨如何通过自动化工具和流程实现持续集成(CI)与持续部署(CD),从而优化软件开发周期。我们将从基础概念出发,逐步深入到实际操作,最终展示如何构建一个高效的自动化流水线,以支持快速迭代和高质量发布。
89 7
DevOps实践:持续集成和部署的自动化之旅
【9月更文挑战第20天】在软件开发的世界里,速度和质量是至关重要的。本文将带领读者踏上一场自动化之旅,深入探索DevOps文化中的两大支柱——持续集成(CI)和持续部署(CD)。我们将通过一个实际的案例,展示如何利用现代工具和技术实现代码从编写到部署的无缝转换,确保软件交付的高效性和可靠性。准备好让你的开发流程变得更加流畅和高效了吗?让我们开始吧!
DevOps实践:构建和部署一个Docker化的应用
【9月更文挑战第14天】在当今快节奏的软件开发领域,DevOps已经成为提升效率、加速交付的关键。本文将引导你理解DevOps的核心概念,并通过一个实际的示例—构建和部署一个Docker化的应用—来深入探讨其实践方法。我们将从简单的应用出发,逐步实现Docker容器化,并最终通过CI/CD流水线自动化部署过程。这不仅是对DevOps流程的一次实操演练,也是对现代软件开发理念的一次深刻体验。
拥抱 DevOps 文化:实现持续交付与部署的最佳实践
在软件开发领域,DevOps 强调开发与运维团队的协作,通过自动化、持续集成与部署等实践缩短系统开发生命周期,提升软件质量。其核心原则包括自动化、协作、度量与共享责任。实施 DevOps 需要建立跨功能团队、采用版本控制、持续集成与部署、自动化测试及监控反馈。常用工具有 Jenkins、GitLab CI/CD、Ansible、Prometheus 和 ELK Stack 等。DevOps 通过文化与技术变革,加速软件交付并提高客户满意度。
云原生架构的崛起与实践云原生架构是一种通过容器化、微服务和DevOps等技术手段,帮助应用系统实现敏捷部署、弹性扩展和高效运维的技术理念。本文将探讨云原生的概念、核心技术以及其在企业中的应用实践,揭示云原生如何成为现代软件开发和运营的主流方式。##
云原生架构是现代IT领域的一场革命,它依托于容器化、微服务和DevOps等核心技术,旨在解决传统架构在应对复杂业务需求时的不足。通过采用云原生方法,企业可以实现敏捷部署、弹性扩展和高效运维,从而大幅提升开发效率和系统可靠性。本文详细阐述了云原生的核心概念、主要技术和实际应用案例,并探讨了企业在实施云原生过程中的挑战与解决方案。无论是正在转型的传统企业,还是寻求创新的互联网企业,云原生都提供了一条实现高效能、高灵活性和高可靠性的技术路径。 ##
305 3
Jenkins打包,发布,部署
Jenkins打包,发布,部署
350 0
探索Java中的Lambda表达式:简化代码,提升效率DevOps实践:持续集成与部署的自动化之路
【8月更文挑战第30天】本文深入探讨了Java 8中引入的Lambda表达式如何改变了我们编写和管理代码的方式。通过简化代码结构,提高开发效率,Lambda表达式已成为现代Java开发不可或缺的一部分。文章将通过实际例子展示Lambda表达式的强大功能和优雅用法。

热门文章

最新文章

AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等