DevOps实现自动化发布实操

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

DevOps实现自动化发布流程

本篇文章来自 B站视频(部分步骤与视频存在差异)

流程图及原理

DevOps实现自动化发布实操,自动化,运维

  1. 本地编写代码
  2. 提交至远程仓库
  3. Jenkins(基于Docker)通过内置Git获取提交的代码,通过Maven进行打包,形成可执行文件,发送至目标服务器并执行启动命令
  4. 访问目标服务器查看效果

效果展示

  1. 查看目标服务器,并未启动java项目DevOps实现自动化发布实操,自动化,运维
  2. 访问Jenkins执行项目构建操作DevOps实现自动化发布实操,自动化,运维DevOps实现自动化发布实操,自动化,运维
  3. 查看目标服务器服务状态DevOps实现自动化发布实操,自动化,运维DevOps实现自动化发布实操,自动化,运维

准备步骤

  1. 准备两台虚拟机,安装CentOS-7系统
  2. 打通虚拟机与本机之间的网络,可供安装基础配置
  3. 建议所有操作都在root用户下进行,尽可能减少因为权限带来的问题。
  4. 文件的创建、修改、网络配置通常可以通过重启服务、刷新配置、重启容器、重启虚拟机解决
  5. 可能涉及到的命令(可以跳过)
#安装telnet命令
yum install telnet-server

#修改系统ip
vi /etc/sysconfig/network-scripts/ifcfg-eth0
#重启网卡
service network restart

#设置linux启动默认用户
vim /etc/gdm/custom.conf
#在 [daemon]下添加
AutomaticLoginEnable=True
AutomaticLogin=root
#立即重启
reboot

#没有 docker-compose  命令的 需要安装一下
yum install docker-compose 
#检查是否存在 
docker-compose version
#上面不行就用下面的
docker compose version

#查看版本
docker -v
# 启动docker服务
systemctl start docker  
# 停止docker服务
systemctl stop docker  
# 重启docker服务
systemctl restart docker  
#查看docker信息
docker info

# docker 服务开机自启动命令
systemctl enable docker.service
# 关闭docker 服务开机自启动命令
systemctl disable docker.service
#进入容器
sudo docker exec -i -t 镜像名称 /bin/bash
#退出容器
ctrl + P + Q
#停止容器内服务
docker compose stop
#启动容器内服务并后台运行
docker compose up -d
#查看日志
docker compose logs -f 镜像名称
#重启容器
docker compose restart
#查看容器内服务运行情况
docker ps
#强制删除镜像 
docker rmi -f 镜像名称版本

192.168.1.8安装服务

  1. 安装yum工具

    yum install -y yum-utils device-mapper-persistent-data lvm2 --skip-broken
    
  2. 卸载、安装Docker
    卸载docker

    yum remove docker docker-client docker-client-latest docker-common docker-latest docker-latest-logrotate docker-logrotate docker-selinux docker-engine-selinux docker-engine docker-ce
    

    DevOps实现自动化发布实操,自动化,运维

    配置本地镜像源

    # 设置docker镜像源
    yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
     
    sed -i 's/download.docker.com/mirrors.aliyun.com\/docker-ce/g' /etc/yum.repos.d/docker-ce.repo
    
    # 更新缓存 也可以不执行
    yum makecache fast
    

    DevOps实现自动化发布实操,自动化,运维
    安装Docker

    yum install -y docker-ce
    

    DevOps实现自动化发布实操,自动化,运维
    DevOps实现自动化发布实操,自动化,运维

  3. 修改Docker国内镜像源

    vi /etc/docker/daemon.json
    
    #添加配置
    {
        "registry-mirrors": ["http://hub-mirror.c.163.com"]
    }
    
  4. 配置开机自启docker

    #设置开机自启dokcer
    systemctl enable docker.service
    
  5. 查看版本及docker信息

    #查看docker版本
    docker -v
    #查看docker信息
    docker info
    

    DevOps实现自动化发布实操,自动化,运维

  6. 安装docker compose命令

    yum install docker-compose 
    

    DevOps实现自动化发布实操,自动化,运维
    查看docker-compose版本

    docker compose version
    

    DevOps实现自动化发布实操,自动化,运维

  7. 下载Jenkins
    视频中提到的版本有点低,所有的插件都安装失败,所以我采用了新版本

    docker pull jenkins/jenkins:2.4.0.1.2-lts
    

    创建 文件夹 /usr/local/docker/jenkins_docker
    编写 vim docker-compose.yml

    version: "3.1"
    services:
      jenkins:
        image: jenkins/jenkins:2.4.0.1.2-lts  #声明镜像版本
        container_name: jenkins  #声明镜像名称
    	ports:
    	  - 8080:8080   #绑定端口
    	  - 50000:50000
    	volumes:
          - ./data/:/var/jenkins_home/  #镜像数据存储地址
    

    DevOps实现自动化发布实操,自动化,运维

  8. 启动docker中的Jenkins 镜像

    docker compose up -d
    

    DevOps实现自动化发布实操,自动化,运维
    查看日志

    docker logs -f jenkins
    

    发现没有权限
    DevOps实现自动化发布实操,自动化,运维
    赋予文件夹 权限

    chmod -R 777 data
    

    DevOps实现自动化发布实操,自动化,运维
    赋予权限后重新启动容器

    docker compose  restart
    

    查看日志,并保存Jenkins默认密码
    DevOps实现自动化发布实操,自动化,运维
    访问Jenkins 服务
    DevOps实现自动化发布实操,自动化,运维
    修改Jenkins下载插件地址
    data/hudson.model.UpdateCenter.xml

    <?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>
    

    重启镜像后选择安装自定义插件-全选-安装即可
    创建用户-下一步-进入Jenkins
    下载必备插件DevOps实现自动化发布实操,自动化,运维
    下载以下两个插件 完成后并重启

    Git Parameter #用于Jenkins拉取代码
    Publish Over SSH  #用于将构建好的文件发送至目标服务器
    

    DevOps实现自动化发布实操,自动化,运维
    查看已下载插件
    DevOps实现自动化发布实操,自动化,运维
    至此docker、jenkins 、git已经安装完成

  9. 安装Maven
    maven-Linux-地址
    DevOps实现自动化发布实操,自动化,运维
    上传后解压至对应目录并 重命名为 maven

    tar -zxvf  apache-maven-3.9.3-bin.tar.gz -C /use/local
    
    mv apache-maven-3.9.3-bin.tar.gz maven
    

    DevOps实现自动化发布实操,自动化,运维
    配置镜像仓库和编译插件
    DevOps实现自动化发布实操,自动化,运维
    设置镜像仓库地址 setting 161行

    <mirror>
      <id>aliyunmaven</id>
      <mirrorOf>*</mirrorOf>
      <name>阿里云公共仓库</name>
      <url>https://maven.aliyun.com/repository/public</url>
    </mirror>
    

    设置编译插件 254行

    	<profile>
    	  <id>jdk8</id>
    	  <activation>
    		<activeByDefault>true</activeByDefault>
    		<jdk>1.8</jdk>
    	  </activation>
    	  <properties>
    		<maven.compiler.source>1.8</maven.compiler.source>
    		<maven.compiler.target>1.8</maven.compiler.target>
    		<maven.compiler.compilerVersion>1.8</maven.compiler.compilerVersion>
    	  </properties>
    	</profile>
    

    默认开启编译插件 276行

    <activeProfiles>
        <activeProfile>jdk8</activeProfile>
    </activeProfiles>
    
  10. 安装JDK(可以不配置环境变量)
    寻找你的运维同事或自行官网下载linux版本
    DevOps实现自动化发布实操,自动化,运维
    上传后解压至对应目录并 重命名为 maven

    tar -zxvf  jdk-8u291-linux-x64.tar.gz -C /use/local
    mv jdk-8u291-linux-x64.tar.g jdk
    

    DevOps实现自动化发布实操,自动化,运维

  11. 将JDK和MAVEN配置进docker容器
    DevOps实现自动化发布实操,自动化,运维

    根据之前的jenkins配置需要将jdk和maven移动至data目录下

    DevOps实现自动化发布实操,自动化,运维

    切换到目录下查看
    DevOps实现自动化发布实操,自动化,运维
    至此192.168.1.8所需服务已经安装完成

配置Jenkins全局配置

  1. 配置JDK
    DevOps实现自动化发布实操,自动化,运维
  2. 配置Maven
    DevOps实现自动化发布实操,自动化,运维
  3. 配置SSH连接信息
    填写 对应的服务器信息,
    请确保目标服务器路径文件夹已创建
    添加完成后点击测试获取正确结果后,应用并保存DevOps实现自动化发布实操,自动化,运维

创建一个本地测试jar包(本地测试通过)

DevOps实现自动化发布实操,自动化,运维
在pom文件中声明打包后的jar包名称
DevOps实现自动化发布实操,自动化,运维
提交至git
DevOps实现自动化发布实操,自动化,运维

在Jenkins创建项目管理并完成打包操作

  1. 创建项目
    DevOps实现自动化发布实操,自动化,运维
    DevOps实现自动化发布实操,自动化,运维

  2. 配置项目git地址
    DevOps实现自动化发布实操,自动化,运维

  3. 测试Jenkins拉取git项目文件
    DevOps实现自动化发布实操,自动化,运维
    DevOps实现自动化发布实操,自动化,运维
    DevOps实现自动化发布实操,自动化,运维
    根据之前的git maven配置已经实现拉取代码和打包操作

配置构建完成后将文件发送至目标服务器并执行启动脚本(192.168.1.7)

  1. 选择在构建后执行通过SSH发送文件命令
    DevOps实现自动化发布实操,自动化,运维
  2. 选择之前配置好的全局配置中的 目标服务器配置,并选择需要发送的文件,这里使用的是通配符。DevOps实现自动化发布实操,自动化,运维
  3. 再次构建
    DevOps实现自动化发布实操,自动化,运维
    查看日志显示发送成功
    需要将目标服务器配置好运行环境jdk和jre均可
  4. 添加构建后执行脚本命令
    DevOps实现自动化发布实操,自动化,运维
    DevOps实现自动化发布实操,自动化,运维
# 启动程序
	pid=`ps -ef|grep hxyTest.jar| grep -v grep | awk '{print $2}'`
	# echo "部署前的pid进程 :$pid"
	if [ -n "$pid" ]
	  then
	    kill -9 $pid
	else
	    echo "开始部署!!!"
	fi
	sleep 1s
	cd /home/work/hxytest/target/
	nohup java -jar hxyTest.jar &
	# echo "脚本执行完毕"
	sleep 1s
	pid=`ps -ef|grep hxyTest.jar | grep -v grep | awk '{print $2}'`
	if [ $? -ne "$pid" ]
	  then
	                echo "脚本执行完毕,进程启动成功,发布成功,请测试!!!"
	                echo "脚本执行完毕,进程启动成功,发布成功,请测试!!!"
	                echo "脚本执行完毕,进程启动成功,发布成功,请测试!!!"
	
	else
	    echo "脚本执行完毕,进程没有启动,发布失败,请查看日志!!!"
	

5.保存后重新构建,并且会直接执行启动命令,此时访问程序、验证成功!

与视频有部分差异,并没有通过docker构建gitlab环境,目前本地的电脑内存不允许,采用其他已经存在的gitlab,并且在目标服务器中并没有完全按照视频中通过docker构建镜像进行启动。

后续有空会继续根据视频完成对应的内容。文章来源地址https://www.toymoban.com/news/detail-517294.html

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

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

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

相关文章

  • 云计算的自动化与脚本:实现高效运维

    云计算是一种基于互联网和服务器集群的计算模式,它允许用户在需要时从任何地方访问计算资源。自动化和脚本在云计算中发挥着至关重要的作用,因为它们可以帮助管理员更高效地运行和维护云计算环境。在本文中,我们将探讨云计算自动化和脚本的核心概念、算法原理

    2024年04月12日
    浏览(44)
  • 运维工作新时代:自主编码实现运维自动化的转型之旅

    随着业务系统和底层中间件服务的复杂度不断增加,传统手工运维方式面临着诸多挑战和限制。人工编写运维脚本显得非常低效,同时手动执行运维操作存在着巨大风险。在此情况下,推动运维自动化成为运维人员必须落地实施的工作。运维同学如果可以有地方自主通过编码

    2024年02月22日
    浏览(40)
  • 利用Python实现网络运维自动化:实战示例

    💂 个人网站:【 摸鱼游戏】【神级代码资源网站】【工具大全】 🎖️ 一站式轻松构建小程序、Web网站、移动应用:👉注册地址 🤟 基于Web端打造的:👉轻量化工具创作平台 💅 想寻找共同学习交流,摸鱼划水的小伙伴,请点击【全栈技术交流群】 随着网络规模的不断扩大

    2024年04月11日
    浏览(74)
  • 在Linux上配置Spug自动化运维平台,实现公网远程访问

    Spug 面向中小型企业设计的轻量级无 Agent 的自动化运维平台,整合了主机管理、主机批量执行、主机在线终端、文件在线上传下载、应用发布部署、在线任务计划、配置中心、监控、报警等一系列功能。 本例演示搭建使用docker compose 方式安装Spug,并结合cpolar 内网穿透实现远程

    2024年02月07日
    浏览(39)
  • 自动化运维中的人工智能与机器学习:实现智能化运维

    自动化运维(Automated Operations)是一种通过自动化工具和技术来管理和维护计算机系统的方法。随着云计算、大数据和人工智能等技术的发展,自动化运维的重要性逐渐凸显。人工智能与机器学习在自动化运维中发挥着越来越重要的作用,为智能化运维提供了强大的支持。 本文

    2024年03月10日
    浏览(111)
  • Liunx shell编程及自动化运维实现--第五章三剑客

    正则表达式(RE)是一种字符模式,用于再查找过程中匹配指定的字符,在大多数程序中,正则表达式都被置于两个正斜杠之间:例如//就是由正斜杠界定的正则表达式,他将匹配被查找的行中任何位置出现的相同模式。在正则表达式中,元字符时最重要的概念。 定义:元字

    2024年02月21日
    浏览(39)
  • ASP.NET Core + Jenkins实现自动化发布

    🏆作者:科技、互联网行业优质创作者 🏆专注领域:.Net技术、软件架构、人工智能、数字化转型、DeveloperSharp、微服务、工业互联网、智能制造 🏆欢迎关注我(Net数字智慧化基地),里面有很多 高价值 技术文章, 是你刻苦努力也积累不到的经验 ,能助你快速成长。升职

    2024年02月22日
    浏览(46)
  • DevOps之自动化测试

    明确一下自动化测试不是什么。自动化测试不是指自动化生成测试代码,而是自动化地执行由开发人员或测试人员编写的测试代码。正如下面这句谚语:“绝不要手工去做任何可以被自动化处理的事情。——Curt Hibbs” 之前是由人工点击页面上的按钮进行功能测试,人工设置

    2024年02月10日
    浏览(37)
  • QT+jenkins window环境实现一键自动化构建打包签名发布

            1.官网下载地址: Jenkins download and deployment,下载最新版本的安装包并安装。安装过程中,会要求你输入端口号并记住。         2.java下载地址:Java Downloads | Oracle,下载最新版本的安装包并安装。         3.浏览器输入网址:127.0.0.1: port, port为端口号,默认8080,安

    2024年02月01日
    浏览(44)
  • 20个Golang自动化DevOps库

    探索 20 个用于简化任务和提高生产力的重要库。 Golang,也称为 Go,是一种静态类型、编译型编程语言,由 Google 的 Robert Griesemer、Rob Pike 和 Ken Thompson 设计。它于 2009 年推出,旨在解决其他编程语言的缺点,特别是在并发编程、垃圾收集和代码可维护性方面。 Golang 拥有众多优

    2024年02月14日
    浏览(42)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包