Jenkins介绍

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

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

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

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

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

CI/CD可以理解为:

  • CI过程即是通过Jenkins将代码拉取、构建、制作镜像交给测试人员测试。

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

Jenkins安装

  • 拉取Jenkins镜像

    docker pull jenkins/jenkins:2.361.4-lts
  • 编写docker-compose.yml

    version: "3.6"
    services:
    jenkins:
    user: root
    restart: always
    image: jenkins/jenkins:2.361.4-lts
    container_name: jenkins
    ports:
    - 8080:8080
    - 50000:50000
    volumes:
    - /srv/jenkins/jenkins_home/:/var/jenkins_home/
    - /var/run/docker.sock:/var/run/docker.sock
    - /usr/bin/docker:/usr/bin/docker
    - /etc/docker/daemon.json:/etc/docker/daemon.json

    启动容器

    docker compose up -d

    启动Jenkins容器后,由于Jenkins需要下载大量内容,但是由于默认下载地址下载速度较慢,如有需要可以设置下载地址为国内镜像站

    # 修改数据卷中的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

访问Jenkins首页

访问Jenkins(需要稍微等会儿)

Jenkins首页

查看密码登录Jenkins

docker exec -it jenkins cat /var/jenkins_home/secrets/initialAdminPassword
查看密码登录

下载插件

  • 选择插件来安装

    下载插件
  • 选择需要安装的插件(可能会出现下载失败的插件,可以后续在插件市场安装)

    选择需要安装的插件

设置管理员信息

  • 下载完毕设置管理员信息

    设置管理员信息

配置Jenkins访问路径

配置Jenkins访问路径

进入首页

进入首页

至此,Jenkins部署及基本的设置就完成了

最新文章

  1. DynamicObject - 代理对象的种类
  2. 微软压力测试工具 web application stress
  3. Mule入门基础
  4. 说说设计模式~建造者模式(Builder)
  5. 【BZOJ】3052: [wc2013]糖果公园
  6. Android签名机制:生成keystore、签名、查看签名信息
  7. 【转】在eclipse上使用Git
  8. C# 线程锁Lock 死锁
  9. JBPM流程实例(PI)Process Instance
  10. GroundworkCSS ♥ Tables
  11. BZOJ 3221: [Codechef FEB13] Obserbing the tree树上询问( 可持久化线段树 + 树链剖分 )
  12. 【git学习五】git基础之git分支
  13. 【JAVA零基础入门系列】Day15 对象的比较
  14. CXF 5参考资料
  15. CS20SI-tensorflow for research笔记: Lecture2
  16. CentOS7 中文man(cman)配置方法
  17. C#小技巧
  18. 接口调试工具ApiPost的发送超时时间设置方法
  19. 174. Dungeon Game(动态规划)
  20. 通过委托来实现异步 Delegate的BeginInvoke和EndInvoke

热门文章

  1. OSIDP-文件管理-12(end)
  2. FCC 中级算法题 Everything Be True
  3. Spring 笔记三 AOP
  4. mongoose Schema字段的含义
  5. __declspec(dllimport) 和 __declspec(dllexport)的使用详解、以及 XX_API 的含义
  6. oneDNN
  7. 字符串练习2 最长抑或路径(01trie树)
  8. 白鹭egret 控制屏幕方向
  9. Eclipse使用Maven搭建SSM框架时遇到的问题以及解决办法
  10. Flink双流消费kafka合并数据,并包含滑动窗口、算子、输出到MySQL的示例