jenkins持续集成从0入门到实战【一】Jenkins安装

本文涉及的产品
云防火墙,500元 1000GB
简介: Jenkins是一个开源的、可扩展的持续集成、交付、部署(软件/代码的编译、打包、部署)的基于web界面的平台。允许持续集成和持续交付项目,无论用的是什么平台,可以处理任何类型的构建或持续集成。它是一个用java编写的开源持续集成工具。

持续集成简介

  1. 什么是持续集成
    持续集成指的是频繁地将代码jicheng到主干。将团建个人研发的部分向关键整体部分交付,频繁进行集成以便更快的发现其中的错误。

    • 开发人员定期向享存储库提交代码
    • 监视版本控制系统,当检测到提交时,将自动触发构建
    • 如果构建不是绿色的,将立即通知开发人员
  2. 持续集成的原因
    尽可能早的在开发生命周期中检测问题或bug(由于整个代码库是不断集成、构建和测试的,所以潜在的bug和错误在生命周期的早期被捕获,从而带来更好的软件质量)。
  3. 持续交付
    持续交付指的是频繁的将软件的新版本交付给质量团队或用户,以供评审。评审通过,代码就进入生产阶段。
    持续交付在持续集成的基础上,将集成后的代码部署到更贴近真实运行环境的【类生产环境】中。持续交付优先于整个产品生命周期的软件部署,建立在高水平自动化持续集成之上。
  4. 持续部署
    持续部署是持续交付的下一步,指的是代码通过评审后,自动部署到生产环境。
    持续部署的目标是,代码在任何时刻都是可部署的,可以进入生产阶段。
    持续部署的前提是能自动化完成测试、构建、部署等步骤。

持续集成、持续交付、持续部署提供了一个优秀的 DevOps 环境。软件的开发和发布,已经形成了一套标准的流程。

前置条件

学习Jenkins之前,需要先学习以下2篇文章
玩转Linux系统【一】CentOS系统安装
玩转Linux系统【二】JDK8安装配置

Jenkins安装

  1. 主要配置

    # 配置ci用户组,创建jenkins用户,并且指定ci组
    $ groupadd ci
    $ useradd jenkins -g ci
    
    # 创建存放jenkins工具的目录,并指定权限,因jenkins后期构建比较占用磁盘,此处建议先挂载磁盘
    $ mkdir -p /data/software
    $ chown -R jenkins:ci /data/software
    
    # 切换jenkins用户,进入到software目录,并下载jenkins.war
    $ su jenkins
    $ cd /data/software/
    # 如果下载较慢,建议采用迅雷下载,然后上传
    $ wget http://mirrors.jenkins.io/war-stable/latest/jenkins.war

    用户命令拓展

    # 给已存在的用户jenkins指定组ci
    usermod -G ci jenkins
    passwd jenkins
    
    # 删除用户和组
    userdel www
    groupdel www 
  2. 安装Java环境

    • 下载jdk,上传至linux并解压
    • 配置/etc/profile的内容
    • 使配置生效
    • 检测java环境信息
  3. 启动jenkins

    # 使用nohup命令启动
    $ nohup java -jar /data/software/jenkins.war  --httpPort=8777 --httpsPort=8778 > /data/software/jenkins.log 2>&1 &

    使用tail命令查看启动日志,日志中会输出jenkins密码

    $ tail -222f jenkins.log
    
    2020-09-10 16:10:55.442+0000 [id=32]    INFO    jenkins.install.SetupWizard#init: 
    
    *************************************************************
    *************************************************************
    *************************************************************
    
    Jenkins initial setup is required. An admin user has been created and a password generated.
    Please use the following password to proceed to installation:
    
    ad1c1a787a21426a9134cc8255071360
    
    This may also be found at: /home/jenkins/.jenkins/secrets/initialAdminPassword
    
    *************************************************************
    *************************************************************
    *************************************************************
    
    2020-09-10 16:18:48.533+0000 [id=32]    INFO    jenkins.InitReactorRunner$1#onAttained: Completed initialization
    2020-09-10 16:18:48.551+0000 [id=20]    INFO    hudson.WebAppMain$3#run: Jenkins is fully up and running
  4. 开放8777端口供外网访问

    如果是云服务器,开放安全组即可,如果是虚拟机在防火墙中加入8777端口并重载配置

    # 开启防火墙8777端口
    $ firewall-cmd --zone=public --add-port=8777/tcp --permanent
    
    # 使配置生效
    $ firewall-cmd --reload
    
    # 防火墙扩展命令如下(云服务直接操作阿里云安全组即可)
    (1)设置开机启用防火墙:systemctl enable firewalld.service
    (2)设置开机禁用防火墙:systemctl disable firewalld.service
    (3)启动防火墙:systemctl start firewalld
    (4)关闭防火墙:systemctl stop firewalld
    (5)检查防火墙状态:systemctl status firewalld 
    
    (1)查看防火墙状态:firewall-cmd --state
    (2)重新加载配置:firewall-cmd --reload
    (3)查看开放的端口:firewall-cmd --list-ports
    (4)开启防火墙端口:firewall-cmd --zone=public --add-port=9200/tcp --permanent
      命令含义:
      –zone #作用域
      –add-port=9200/tcp #添加端口,格式为:端口/通讯协议
      –permanent #永久生效,没有此参数重启后失效
      注意:添加端口后,必须用命令firewall-cmd --reload重新加载一遍才会生效
    (5)关闭防火墙端口:firewall-cmd --zone=public --remove-port=9200/tcp --permanent
  5. 外网或宿主机访问浏览器地址http://192.168.1.195:8777/

    image.png

    image.png

    image.png

    image.png

    image.png

    image.png

    image.png

    image.png

    image.png

  6. 如果忘记密码

    • 进入到jenkins的工作目录,找到config.xml,我这里是/home/jenkins/.jenkins/config.xml
    • 修改该配置文件useSecurity的节点值为false

      <useSecurity>true</useSecurity>
    • 重启jenkins项目后,再次访问jenkins站点
    • 进入到系统管理

      image.png

    • 找到全局安全配置

      image.png

      image.png

    • 进入到用户列表,找到admin用户

      image.png

      image.png

      image.png

      image.png

    • 使用新密码登录即可

总结

到这里jenkins我们就安装好了,接下来我们就开始集成和丰富jenkins

目录
相关文章
|
2月前
|
分布式计算 大数据 Apache
ClickHouse与大数据生态集成:Spark & Flink 实战
【10月更文挑战第26天】在当今这个数据爆炸的时代,能够高效地处理和分析海量数据成为了企业和组织提升竞争力的关键。作为一款高性能的列式数据库系统,ClickHouse 在大数据分析领域展现出了卓越的能力。然而,为了充分利用ClickHouse的优势,将其与现有的大数据处理框架(如Apache Spark和Apache Flink)进行集成变得尤为重要。本文将从我个人的角度出发,探讨如何通过这些技术的结合,实现对大规模数据的实时处理和分析。
180 2
ClickHouse与大数据生态集成:Spark & Flink 实战
|
2月前
|
jenkins Devops Java
DevOps实践:Jenkins在持续集成与持续部署中的价值
【10月更文挑战第27天】在快速发展的软件开发领域,DevOps实践日益重要。Jenkins作为一款流行的开源自动化服务器,在持续集成(CI)和持续部署(CD)中扮演关键角色。本文通过案例分析,探讨Jenkins在Java项目中的应用,展示其自动化构建、测试和部署的能力,提高开发效率和软件质量。
78 2
|
14天前
|
存储 JavaScript 开发工具
基于HarmonyOS 5.0(NEXT)与SpringCloud架构的跨平台应用开发与服务集成研究【实战】
本次的.HarmonyOS Next ,ArkTS语言,HarmonyOS的元服务和DevEco Studio 开发工具,为开发者提供了构建现代化、轻量化、高性能应用的便捷方式。这些技术和工具将帮助开发者更好地适应未来的智能设备和服务提供方式。
39 8
基于HarmonyOS 5.0(NEXT)与SpringCloud架构的跨平台应用开发与服务集成研究【实战】
|
1月前
|
监控 jenkins Linux
从 Jenkins 持续集成出发:探究如何监控员工电脑屏幕
Jenkins 在企业信息化管理中用于自动化构建、测试和部署,提高开发效率。本文讨论了其重要性,并从技术角度探讨了屏幕监控的可能性,但明确反对非法监控,强调应合法合规地管理企业和尊重员工隐私。
74 12
|
1月前
|
开发框架 缓存 .NET
GraphQL 与 ASP.NET Core 集成:从入门到精通
本文详细介绍了如何在ASP.NET Core中集成GraphQL,包括安装必要的NuGet包、创建GraphQL Schema、配置GraphQL服务等步骤。同时,文章还探讨了常见问题及其解决方法,如处理复杂查询、错误处理、性能优化和实现认证授权等,旨在帮助开发者构建灵活且高效的API。
33 3
|
2月前
|
运维 jenkins Java
Jenkins在持续集成与持续部署中的价值
Jenkins在持续集成与持续部署中的价值
|
2月前
|
jenkins Java 持续交付
Gitee+Jenkins+SonarQube代码上线的实战操作
通过以上步骤,就可以实现基于Gitee、Jenkins和SonarQube的代码上线流程,确保代码的质量和上线过程的自动化和可控性。在实际操作中,可以根据项目的具体需求和环境进行适当的调整和优化。
|
2月前
|
jenkins Devops 测试技术
DevOps实践:Jenkins在持续集成与持续部署中的价值
【10月更文挑战第26天】随着DevOps理念的普及,Jenkins作为一款开源自动化服务器,在持续集成(CI)与持续部署(CD)中发挥重要作用。本文通过某中型互联网企业的实际案例,展示了Jenkins如何通过自动化构建、持续集成和持续部署,显著提升开发效率、代码质量和软件交付速度,帮助企业解决传统手工操作带来的低效和错误问题。
99 4
|
3月前
|
运维 监控 jenkins
运维自动化实战:利用Jenkins构建高效CI/CD流程
【10月更文挑战第18天】运维自动化实战:利用Jenkins构建高效CI/CD流程
|
3月前
|
jenkins Shell 持续交付
Jenkins持续集成GitLab项目 GitLab提交分支后触发Jenkis任务 持续集成 CI/CD 超级详细 超多图(二)
Jenkins持续集成GitLab项目 GitLab提交分支后触发Jenkis任务 持续集成 CI/CD 超级详细 超多图(二)
94 0