DevOps-Jenkins

这篇具有很好参考价值的文章主要介绍了DevOps-Jenkins。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

Jenkins

Jenkins是一个可扩展的持续集成引擎,是一个开源软件项目,旨在提供一个开放易用的软件平台,使软件的持续集成变成可能。
官网
DevOps-Jenkins,运维,devops,jenkins,运维

应用场景

场景一DevOps-Jenkins,运维,devops,jenkins,运维

  • 研发人员上传开发好的代码到github代码仓库
  • 需要将代码下载nginx服务器部署
  • 手动下载再部署/使用脚本下载在部署

场景二

DevOps-Jenkins,运维,devops,jenkins,运维

下载

DevOps-Jenkins,运维,devops,jenkins,运维
DevOps-Jenkins,运维,devops,jenkins,运维
DevOps-Jenkins,运维,devops,jenkins,运维

安装

  • 静态IP(可以上外网)
  • 主机名
  • 关闭防火墙,SeLinux(脚本执行)
#!/bin/bash

# 关闭防火墙
echo "正在关闭防火墙..."
sudo systemctl stop firewalld
sudo systemctl disable firewalld
echo "防火墙已关闭并禁用。"

# 检查 SELinux 状态
sestatus=$(sestatus | grep "SELinux status" | awk '{print $3}')

if [ "$sestatus" == "enabled" ]; then
    # 关闭 SELinux
    echo "正在关闭 SELinux..."
    sudo setenforce 0
    sudo sed -i 's/^SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config
    echo "SELinux 已关闭。"
else
    echo "SELinux 已经处于禁用状态,无需操作。"
fi

echo "脚本执行完毕。"

  • 时间同步
  • 确定OpenJdk安装
yum install java-1.8.0-openjdk* -y
  • 查看JDK版本
[root@workstation ~]# java -version
openjdk version "1.8.0_372"
OpenJDK Runtime Environment (build 1.8.0_372-b07)
OpenJDK 64-Bit Server VM (build 25.372-b07, mixed mode)
 


  • 上传 rpm包安装

[root@workstation ~]# rpm -ivh jenkins-2.150.3-1.1.noarch.rpm
warning: jenkins-2.150.3-1.1.noarch.rpm: Header V4 DSA/SHA1 Signature, key ID d50582e6: NOKEY
Preparing...                          ################################# [100%]
Updating / installing...
   1:jenkins-2.150.3-1.1              ################################# [100%]

  • 启动服务,查看端口
[root@workstation ~]# systemctl start jenkins
[root@workstation ~]# systemctl enable jenkins
jenkins.service is not a native service, redirecting to /sbin/chkconfig.
Executing /sbin/chkconfig jenkins on

[root@workstation ~]# ps -aux | grep 8080
jenkins    7687 80.3 25.7 2359788 256212 ?      Ssl  09:49   0:32 /etc/alternatives/java -Dcom.sun.akuma.Daemon=daemonized -Djava.awt.headless=true -DJENKINS_HOME=/var/lib/jenkins -jar /usr/lib/jenkins/jenkins.war --logfile=/var/log/jenkins/jenkins.log --webroot=/var/cache/jenkins/war --daemon --httpPort=8080 --debug=5 --handlerCountMax=100 --handlerCountMaxIdle=20
root       7760  0.0  0.0 112708   972 pts/0    R+   09:50   0:00 grep --color=auto 8080





  • 查看密码文件里的密码(此为初始管理员用户admin的密码)。通过浏览器访问填上密码(服务器IP+端口8080)
[root@workstation ~]# cat /var/lib/jenkins/secrets/initialAdminPassword
7c1491b0219849f981255179e9981bba

DevOps-Jenkins,运维,devops,jenkins,运维

  • 选择安装推荐插件
    DevOps-Jenkins,运维,devops,jenkins,运维

DevOps-Jenkins,运维,devops,jenkins,运维

DevOps-Jenkins,运维,devops,jenkins,运维

  • 进入主界面
    DevOps-Jenkins,运维,devops,jenkins,运维

退出登录后密码问题

退出后,再次登录使用admin用户, 密码为cat /var/lib/jenkins/secrets/initialAdminPassword得到的字符串

如果需要修改密码
DevOps-Jenkins,运维,devops,jenkins,运维
DevOps-Jenkins,运维,devops,jenkins,运维

Git+GitHub+Jenkins

DevOps-Jenkins,运维,devops,jenkins,运维

开发者电脑准备

yum install git -y
  • 创建密钥对

[root@servera ~]# ssh-keygen -t rsa -f /root/.ssh/id_rsa -C "root@servera" -N ""

  • 在开发者电脑上查看并复制公钥
[root@servera ~]# cat ~/.ssh/id_rsa.pub
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDOHXkXsoYB1JtMJtXBeZrtcqsRRKBJEAzxGCoUyGM0B7SQYBQXaes4xTtQjOjJkL5HWQdaSelGGA8ySRjKuseIdYsPPcG5kxARkJ1+C6jJp3MamzuxJCjo2n3hmmopfB4f2eE3Kn5kbAUcmJRJfjUCgufsFjuY836Np9HNLqqYOuZCAKJEQm/IMTJgZ13aq/ss6VcA/+IikX4d/+PDsgYdNYSL8IxKiThfNlv3NIdOqNxAz2q4mFg2Vj9o1hvfnqGDIxuXyDGjVLZAW6bvJliJvJs3MfD7f4tn8gyFlArxPT0tMS7ePbxGBCBj2XC8qW9lcmrXD2163pbP/N6Io+CT root@servera

  • 将密钥公钥添加到github
    DevOps-Jenkins,运维,devops,jenkins,运维

GitHub新建仓库

DevOps-Jenkins,运维,devops,jenkins,运维
DevOps-Jenkins,运维,devops,jenkins,运维

开发者提交文件测试

  • 免密登录地址
git@github.com:rkun0068/jenkins.git
  • 开发者电脑设置开发者身份
[root@servera ~]# git config --global user.name "servera"
[root@servera ~]# git config --global user.email "rkun18@outlook.com"

  • 克隆项目到开发者本地电脑上
[root@servera ~]# git clone git@github.com:rkun0068/jenkins.git

  • 提交测试代码
[root@servera ~]# cd jenkins/
[root@servera jenkins]# echo "Jenkins Test " >> README.md
[root@servera jenkins]# git add README.md
[root@servera jenkins]# git commit -m "add README.md"
[master (root-commit) eb74eb9] add README.md
 1 file changed, 1 insertion(+)
 create mode 100644 README.md
[root@servera jenkins]# git branch
* master
[root@servera jenkins]# git push -u origin master
Counting objects: 3, done.
Writing objects: 100% (3/3), 228 bytes | 0 bytes/s, done.
Total 3 (delta 0), reused 0 (delta 0)
remote: To git@github.com:rkun0068/jenkins.git
 * [new branch]      master -> master
Branch master set up to track remote branch master from origin.

  • 验证
    DevOps-Jenkins,运维,devops,jenkins,运维

Nginx服务器准备

在Nginx服务器上安装Nginx,并启动服务

 yum install epel-release
 yum install nginx -y
 systemctl start nginx
 systemctl enable nginx

Jenkins安装插件

Jenkins图形确认安装git plugin和publish over ssh插件
DevOps-Jenkins,运维,devops,jenkins,运维
DevOps-Jenkins,运维,devops,jenkins,运维
DevOps-Jenkins,运维,devops,jenkins,运维

配置jenkins通过Publish Over SSH免密连接Nginx

  • 在jenkins服务器生产空密码 密钥对

[root@workstation ~]# ssh-keygen -t rsa -f /root/.ssh/id_rsa -C "root@workstation" -N ""

  • 查看并复制私钥

[root@workstation ~]# cat ~/.ssh/id_rsa

  • 在jenkins中添加私钥
    DevOps-Jenkins,运维,devops,jenkins,运维
    DevOps-Jenkins,运维,devops,jenkins,运维
    点击Add,添加服务器配置
  • 在Jenkins服务器上配置对Nginx服务器的免密登录
#填上Nginx服务器IP地址
[root@workstation ~]# ssh-copy-id -i 192.168.182.132

  • 填写Nginx配置信息,测试连接成功后保存

DevOps-Jenkins,运维,devops,jenkins,运维

添加Jenkins服务器公钥到GitHub

DevOps-Jenkins,运维,devops,jenkins,运维

为Jenkins服务器添加凭据

凭据使Jenkins给字节构建项目授权使用的。
此文章中Jenkins通过SSH免密去找GitHub的项目仓库clone或pull项目代码。
但Jenkins服务本身不允许使用自己的私钥访问GitHub公钥,给凭据,让它可以实现功能就可以。

凭据是一种和第三方程序通讯的权限授权。本案例的凭据就是允许使用SSH免密。

可以使凭据在Jenkins里授权给任何需要SSH免密通讯的构建项目。

  • Jenkins界面添加凭据
    DevOps-Jenkins,运维,devops,jenkins,运维

DevOps-Jenkins,运维,devops,jenkins,运维
DevOps-Jenkins,运维,devops,jenkins,运维
DevOps-Jenkins,运维,devops,jenkins,运维

  • 添加凭据信息
    DevOps-Jenkins,运维,devops,jenkins,运维
    DevOps-Jenkins,运维,devops,jenkins,运维

Jenkins任务创建

  • 创建新任务
    DevOps-Jenkins,运维,devops,jenkins,运维
  • 自定义任务名称与风格
    DevOps-Jenkins,运维,devops,jenkins,运维
    DevOps-Jenkins,运维,devops,jenkins,运维
  • 定义源码管理(如果URL错误,有可能使Jenkins服务器没有安装Git,Git安装即可)

DevOps-Jenkins,运维,devops,jenkins,运维

  • 自定义构建方法和目标主机目录
    DevOps-Jenkins,运维,devops,jenkins,运维

DevOps-Jenkins,运维,devops,jenkins,运维
DevOps-Jenkins,运维,devops,jenkins,运维

手动构建

  • 立即构建
    DevOps-Jenkins,运维,devops,jenkins,运维
  • 查看
    DevOps-Jenkins,运维,devops,jenkins,运维

DevOps-Jenkins,运维,devops,jenkins,运维
DevOps-Jenkins,运维,devops,jenkins,运维

  • 查看控制台输出信息
    DevOps-Jenkins,运维,devops,jenkins,运维
  • Nginx服务器验证是否被上传到Nginx家目录

[root@serverb ~]# ls /usr/share/nginx/html/
404.html  50x.html  en-US  icons  img  index.html  nginx-logo.png  poweredby.png  README.md 
#可以看到README.md被传过来了

自动发布系统

DevOps-Jenkins,运维,devops,jenkins,运维

GitLab上创建新仓库

DevOps-Jenkins,运维,devops,jenkins,运维
DevOps-Jenkins,运维,devops,jenkins,运维

  • 开发者电脑clone创建好的项目

[root@servera ~]# git clone git@192.168.182.133:root/auto_build_web.git

[root@servera ~]# cd auto_build_web/
[root@servera auto_build_web]#

  • 开发者要产生ssh空密码密钥对,把公钥添加到gitlab

Jenkins安装对应插件

DevOps-Jenkins,运维,devops,jenkins,运维

添加Jenkins服务器公钥到GitLab

  • Jenkins产生root用户SSH空密码密钥对
  • 添加公钥到GitLab
  • 复制GitLab上自动发布项目地址
  • 在Jenkins服务器上克隆仓库,确认连接OK

[root@workstation ~]# git clone git@192.168.182.133:root/auto_build_web.git

Jenkins创建自动构建任务

DevOps-Jenkins,运维,devops,jenkins,运维

DevOps-Jenkins,运维,devops,jenkins,运维
DevOps-Jenkins,运维,devops,jenkins,运维
DevOps-Jenkins,运维,devops,jenkins,运维
DevOps-Jenkins,运维,devops,jenkins,运维
执行此脚本的是Jenkins服务器上的Jenkins用户

#!/bin/bash

#源目录为jenkins存放任务文件的目录 
SOURCE_DIR=/var/lib/jenkins/workspace/$JOB_NAME/
#目标目录为nginx服务器的家目录
DEST_DIR=/usr/share/nginx/html
#使用rsync同步源到nginx服务器家目录(需要免密登录),IP为nginx服务器IP
/usr/bin/rsync -av --delete $SOURCE_DIR root@192.168.182.132:$DEST_DIR

配置Jenkins服务器上Jenkins用户

[root@workstation ~]# grep jenkins /etc/passwd
jenkins:x:997:995:Jenkins Automation Server:/var/lib/jenkins:/bin/false
[root@workstation ~]# usermod -s /bin/bash jenkins
[root@workstation ~]# grep jenkins /etc/passwd
jenkins:x:997:995:Jenkins Automation Server:/var/lib/jenkins:/bin/bash

[root@workstation ~]# su - jenkins
-bash-4.2$ ssh-keygen -t rsa -C "jenkins user" -N ""

-bash-4.2$ ssh-copy-id -i root@192.168.182.132



Jenkins全局安全配置

DevOps-Jenkins,运维,devops,jenkins,运维
DevOps-Jenkins,运维,devops,jenkins,运维

配置GitLab运行本地网络使用WebHook

DevOps-Jenkins,运维,devops,jenkins,运维
DevOps-Jenkins,运维,devops,jenkins,运维
DevOps-Jenkins,运维,devops,jenkins,运维
DevOps-Jenkins,运维,devops,jenkins,运维

为GitLab自动构建项目添加Webhook

DevOps-Jenkins,运维,devops,jenkins,运维
DevOps-Jenkins,运维,devops,jenkins,运维
DevOps-Jenkins,运维,devops,jenkins,运维
DevOps-Jenkins,运维,devops,jenkins,运维

代码自动发布测试

  • 开发者使用Git提交测试文件
[root@servera auto_build_web]# echo "auto_build_web" >> index.html
[root@servera auto_build_web]# git add index.html
[root@servera auto_build_web]# git commit -m "add index.html"
[master (root-commit) fddcaba] add index.html
 1 file changed, 1 insertion(+)
 create mode 100644 index.html
[root@servera auto_build_web]# git push -u origin master
Counting objects: 3, done.
Writing objects: 100% (3/3), 225 bytes | 0 bytes/s, done.
Total 3 (delta 0), reused 0 (delta 0)

To git@192.168.182.133:root/auto_build_web.git
 * [new branch]      master -> master
Branch master set up to track remote branch master from origin.

[root@serverb ~]# cat /usr/share/nginx/html/index.html
auto_build_web

如果出现构建失败的情况很可能是某个主机rsync没有安装文章来源地址https://www.toymoban.com/news/detail-617415.html

到了这里,关于DevOps-Jenkins的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • DevOps运维实践分享

    作者:禅与计算机程序设计艺术 DevOps(Development and Operations) 是一种新的软件开发方式,是指在IT行业中将应用程序开发与IT运营工作流程紧密结合的方法论。DevOps鼓励自动化、精益创新、持续交付及与客户的紧密合作。通过软件工程方法来降低产品开发和运营的总体风险,

    2024年02月07日
    浏览(40)
  • DevOps?自动化运维!

    by: 雪月三十 DevOps流程图 DevOps是Dev和Ops的结合 Dev(developer开发) Ops(operation运维) 在企业中dev和ops是有一种天然的矛盾,dev要求的是快速迭代,给公司挖掘出商业的价值,而ops则是强调的稳定,不让你如此快的开发,以稳定为主,不希望动代码(if no problem, don’t touch it),所

    2024年02月12日
    浏览(60)
  • 【运维】DevOps全流程笔记(未完成)

    DevOps全流程笔记,参考视频https://www.bilibili.com/video/BV17x4y1o75G DevOps:就是一整套的工具链和一整套的体系方法把这套工具链串起来让开发工作和运行维护工作变得更加轻松 PLAN:开发团队根据客户的目标制定开发计划 CODE:根据PLAN开始编码过程,需要将不同版本的代码存储在一个

    2024年02月15日
    浏览(47)
  • DevOps(开发运维一体化)

    DevOps是一种重视“软件开发人员(Dev)”和“IT运维技术人员(Ops)”之间沟通合作的文化、运动或惯例。透过自动化“软件交付”和“架构变更”的流程,来使得构建、测试、发布软件能够更加地快捷、频繁和可靠。 DevOps的三大支柱,即人(People)、流程(Process)、平台(

    2024年02月07日
    浏览(49)
  • DevOps-Jenkins

    Jenkins是一个可扩展的持续集成引擎,是一个开源软件项目,旨在提供一个开放易用的软件平台,使软件的持续集成变成可能。 官网 场景一 研发人员上传开发好的代码到github代码仓库 需要将代码下载nginx服务器部署 手动下载再部署/使用脚本下载在部署 场景二 静态IP(可以上

    2024年02月15日
    浏览(52)
  • DevOps理念:开发与运维的融合

    在现代软件开发领域,DevOps 不仅仅是一个流行的词汇,更是一种文化、一种哲学和一种方法论。 DevOps 的核心理念是通过开发和运维之间的紧密合作,实现快速交付、高质量和持续创新。 本文将深入探讨 DevOps 文化的重要性、原则以及如何在团队中实现开发与运维的融合。

    2024年02月10日
    浏览(53)
  • DevOps持续集成-Jenkins(2)

    DevOps概述 软件开发最初是由两个团队共同组成:(没有采用DevOps之前) 开发团队 :从头开始设计和整体系统的构建(编写代码)。需要系统不停的迭代更新。 运维团队 :将开发团队的代码进行测试通过后再部署上线。确保系统稳定运行。 没有采用DevOps的缺点: 这看似两个

    2024年02月08日
    浏览(56)
  • DevOps持续集成-Jenkins(4)

    DevOps概述 软件开发最初是由两个团队共同组成:(没有采用DevOps之前) 开发团队 :从头开始设计和整体系统的构建(编写代码)。需要系统不停的迭代更新。 运维团队 :将开发团队的代码进行测试通过后再部署上线。确保系统稳定运行。 没有采用DevOps的缺点: 这看似两个

    2024年02月08日
    浏览(51)
  • DevOps-7:Jenkins API介绍

    为什么要使用Jenkins的API? 我在使用Jenkins的过程中,觉得Jenkins的UI还是有不少问题的: UI性能差,尤其是有一些任务在构建中时,UI非常卡顿,等个十来秒都正常,极端时甚至会崩溃; 权限管理功能薄弱,虽然有 Role-based Authorization Strategy 类似的插件提供了角色管理,但是还

    2024年02月14日
    浏览(40)
  • 【DevOps视频笔记】8. Jenkins 配置

    一、Jenkins 入门配置 1. 工具 / 插件 介绍 二、插件和工具配置 1. 配置 JDK 和 Maven Stage 1:将服务器中 JDK 和 Maven 映射到 jenkins 容器中 Stage 2:jenkins 全局配置中 -- 指定JAVA_HOME目录 Stage 3:jenkins 全局配置中 -- 指定MAVEN_HOME目录 2. 配置 Publish Over SSH Stage 1:添加 SSH Servers Stage 2:设置

    2024年02月11日
    浏览(36)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包