DevOps?自动化运维!

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

by: 雪月三十

DevOps流程图
DevOps?自动化运维!,运维,devops,自动化

DevOps介绍

命名

DevOps是Dev和Ops的结合
Dev(developer开发)
Ops(operation运维)

矛盾

在企业中dev和ops是有一种天然的矛盾,dev要求的是快速迭代,给公司挖掘出商业的价值,而ops则是强调的稳定,不让你如此快的开发,以稳定为主,不希望动代码(if no problem, don’t touch it),所以他们之间有种天然的矛盾。

所以devops就是用来解决这双方的矛盾的,总的来说就是以合作为前提,相互支持,保证在软件开发的流程中,仍高效稳定。

职责

devops的职责就是通过自动化的形式 保证软件开发过程中的快速迭代和保证软件最后部署的稳定性

很多时候也会把Sec揉入到devolove中,有时候也会称之为DevSecOps

DevOps环境搭建

笔者对于整个自动化的流程以及devops架构比较感兴趣 即兴学习了一下 并配上实操过程中的大致流程

本次搭建所用到的自动化项目/工具
Gitlab、Jenkins 、Docker、Maven
DevOps?自动化运维!,运维,devops,自动化

硬件配置

两台机器都满足>=2c4g即可
我用到的配置
DevOps?自动化运维!,运维,devops,自动化

Gitlab

单独拿出一台服务器当作Gitlab仓库

官网

about.gitlab.com
https://docs.gitlab.com/ee/install/docker.html

安装

采用docker来安装

docker-compose.yml 编写
vim /~/gitlab/docker-compose.ym

version: '3.6'
services:
  web:
    image: 'gitlab/gitlab-ce:latest'
    restart: always
    environment:
      GITLAB_OMNIBUS_CONFIG: |
        external_url 'http://35.241.71.137'   #填写本机ip和端口
        gitlab_rails['gitlab_shell_ssh_port'] = 2222   
        # Add any other gitlab.rb configuration here, each on its own line
    ports:
      - '80:80'
      - '443:443'
      - '2222:2222'
    volumes:
      - '$GITLAB_HOME/config:/etc/gitlab'
      - '$GITLAB_HOME/logs:/var/log/gitlab'
      - '$GITLAB_HOME/data:/var/opt/gitlab'
    shm_size: '256m'

添加全局变量

vim /etc/profile

#写以下内容
export GITLAB_HOME=$HOME/gitlab 

启动gitlab容器

docker-compose up -d

初始化设置

访问http://35.241.71.137地址后 进行登录
初始用户名:root
初始密码:cat /etc/gitlab/initial_root_password (需进入容器)

cat /etc/gitlab/initial_root_password

DevOps?自动化运维!,运维,devops,自动化
可以看到root账号密码
再次访问输入密码即可进入gitlab 及时更改密码防止忘记

这样第一步push环境就搭建完成了

DevOps?自动化运维!,运维,devops,自动化

Maven

装在另一台服务器中

官网

https://maven.apache.org/

下载

wget https://dlcdn.apache.org/maven/maven-3/3.9.3/binaries/apache-maven-3.9.3-bin.tar.gz
tar -zxvf apache-maven-3.9.3-bin.tar.gz
mv apache-maven-3.9.3-bin maven
mv maven /usr/local

https://www.oracle.com/java/technologies/javase/javase8u211-later-archive-downloads.html
java也需要提前下载 但无需设置环境变量

配置

vim /usr/local/maven/conf/settings.xml
#添加仓库源和jdk8的配置
#https://blog.csdn.net/lee_yanyi/article/details/124774038

Jenkins

官网

https://www.jenkins.io

下载

https://www.jenkins.io/download/

DevOps?自动化运维!,运维,devops,自动化
下载最新的lts版本即可
DevOps?自动化运维!,运维,devops,自动化

docker pull jenkins/jenkins:2.401.2-lts

启动

编写docker-compose

version: "3.1"
services:
  jenkins:
     image: jenkins/jenkins:2.401.2-lts
     container_name: jenkins
     ports:
       - 80:8080
       - 50000:50000
     volumes:
       - ./data/:/var/jenkins_home/

DevOps?自动化运维!,运维,devops,自动化

初始化设置

查看后台管理密码

docker logs -f jenkins

访问地址
http://35.187.205.250/login?from=%2F
DevOps?自动化运维!,运维,devops,自动化
输入该密码
DevOps?自动化运维!,运维,devops,自动化

安装插件

选择插件来安装->安装
因源仓库在国外 可以选择换源来安装插件 就不详细写了

DevOps?自动化运维!,运维,devops,自动化
等待安装即可 出现安装错误可无视 不重要

安装完成后 下载我们用到的两个插件
Git Parameter
Publish Over SSH

DevOps?自动化运维!,运维,devops,自动化

配置maven和java

#将java和maven文件夹移动到jenkins挂载的data目录下
pwd
/usr/local/docker/jenkins_docker/data

mv /usr/local/jdk ./data
mv /usrlocal/maven ./data

DevOps?自动化运维!,运维,devops,自动化
我这里的映射目录为 /var/jenkins_home 根据个人目录进行填写
DevOps?自动化运维!,运维,devops,自动化
DevOps?自动化运维!,运维,devops,自动化

存储项目路径

这里设置pull下来的代码 存放的服务器及路径 前提是要有publish-over-ssh插件 前面已经安装过了

name随意 hostname填写你想要存放代码的服务器 为了方便 这里我就继续使用本机来进行操作
35.187.205.250(安装Jenkins的机器)
打开use password authentication使用ssh密码进行登录验证
DevOps?自动化运维!,运维,devops,自动化点击测试 若没有创建remote directory的话 会报错

DevOps?自动化运维!,运维,devops,自动化
创建好后 再次进行测试

DevOps?自动化运维!,运维,devops,自动化出现success即可保存设置

DevOps?自动化运维!,运维,devops,自动化

本地构建项目

创建项目

DevOps?自动化运维!,运维,devops,自动化

编写项目

DevOps?自动化运维!,运维,devops,自动化

package com.xueyue.mytest.controller;

import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
public class TestController {
    @GetMapping("/repositories")
    public String test(){
        return "Hello Jenkins!";
    }
}
运行访问

DevOps?自动化运维!,运维,devops,自动化

push代码

写的比较繁琐 其实大家都会
DevOps?自动化运维!,运维,devops,自动化
使用vcs创建本地仓库
DevOps?自动化运维!,运维,devops,自动化
提交
DevOps?自动化运维!,运维,devops,自动化
DevOps?自动化运维!,运维,devops,自动化
DevOps?自动化运维!,运维,devops,自动化
DevOps?自动化运维!,运维,devops,自动化
DevOps?自动化运维!,运维,devops,自动化

拉取项目

DevOps?自动化运维!,运维,devops,自动化

新建任务

DevOps?自动化运维!,运维,devops,自动化

创建任务

DevOps?自动化运维!,运维,devops,自动化

源码管理

DevOps?自动化运维!,运维,devops,自动化

构建项目

DevOps?自动化运维!,运维,devops,自动化

查看控制台输出

DevOps?自动化运维!,运维,devops,自动化

构建项目

DevOps?自动化运维!,运维,devops,自动化
DevOps?自动化运维!,运维,devops,自动化

clean package -DskipTests #表示先清理目标文件,然后进行打包操作,但在打包过程中跳过测试执行。

点击保存 再次构建即可
DevOps?自动化运维!,运维,devops,自动化

使用docker运行项目

DevOps?自动化运维!,运维,devops,自动化
DevOps?自动化运维!,运维,devops,自动化
保存后再次再次进行构建 会发现jar包已经被复制到了我们的物理机的/usr/local/repositories(在存储项目路径中我们已经设置好了)
DevOps?自动化运维!,运维,devops,自动化
这里可以看到已经在目录下看到了我们的项目
DevOps?自动化运维!,运维,devops,自动化
创建docker文件夹、dockerfile、docker-compose文件
在pom.xml文件中新增finalName命名jar文件
DevOps?自动化运维!,运维,devops,自动化
Dockerfile

FROM java:openjdk-8u111-jre
COPY mytest.jar /usr/local
WORKDIR /usr/local
CMD java -jar mytest.jar

Docker-compose

version: '3.1'
services:
  mytest:
    build:
      context: ./
      dockerfile: Dockerfile
    image: mytest:v1.0.0
    container_name: mytest
    ports:
      - 8081:8080

对项目Send build artifacts over SSH再次进行设置
DevOps?自动化运维!,运维,devops,自动化
之后将项目重新git push一下 然后构建项目
DevOps?自动化运维!,运维,devops,自动化
DevOps?自动化运维!,运维,devops,自动化
很完美 这样一个简单的自动化流程就结束了
DevOps?自动化运维!,运维,devops,自动化
DevOps?自动化运维!,运维,devops,自动化

总结

笔者一直对于DevOps这种自动化流程饶有兴致
实操了一波 学到不少知识
篇幅太长了 就没有把对于代码的安全校验加上
很多插件大家可以自行探索

参考:
https://www.bilibili.com/video/BV1zk4y1N7Qh/?spm_id_from=…top_right_bar_window_history.content.click&vd_source=352711a1c3edf5811730441eadc1720a
https://www.bilibili.com/video/BV1sV4y117kK/?p=1文章来源地址https://www.toymoban.com/news/detail-658082.html

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

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

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

相关文章

  • 20个Golang自动化DevOps库

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

    2024年02月14日
    浏览(30)
  • 前端自动化部署,Devops,CI/CD

    提到 Jenkins,想到的第一个概念就是 CI/CD 在这之前应该再了解一个概念。 DevOps  Development  和  Operations  的组合,是一种方法论,并不特指某种技术或者工具。DevOps 是一种重视  Dev  开发人员和  Ops  运维人员之间沟通、协作的流程。通过自动化的软件交付,使软件的构建

    2024年02月10日
    浏览(44)
  • 【前端自动化部署】,Devops,CI/CD

    提到 Jenkins ,想到的第一个概念就是 CI/CD 在这之前应该再了解一个概念。 DevOps Development 和 Operations 的组合,是一种方法论,并不特指某种技术或者工具。 DevOps 是一种重视 Dev 开发人员和 Ops 运维人员之间沟通、协作的流程。通过自动化的软件交付,使软件的构建,测试,发

    2024年02月10日
    浏览(33)
  • DevOps—基于 Jenkins 构建 Vue 前端工程自动化流程

    一个完整的生产环境的 CI/CD 流程,往往会包括以下这些阶段: 编码 → 提交 → 构建 → 测试 → 交付 → 部署 这里只是演示,就省略了测试相关阶段,只包含提交、构建、发布、部署,一个简单的流程如下: vue 应用构建依赖于 Nodejs,需要在 Jenkins 上安装 Nodejs 插件,并且进

    2024年02月15日
    浏览(39)
  • DevOps自动化平台开发之 Shell脚本执行的封装

    基于如下技术栈开发DevOps平台 Spring Boot Shell Ansible Git Gitlab Docker K8S Vue  1、spring boot starter的封装使用 2、Shell脚本的编写 3、Ansible 脚本的编写 4、Docker 的使用与封装设计 本篇介绍如何使用Java封装Linux命令和Shell脚本的使用 将其设计成spring boot starter maven依赖pom文件 具体的封装

    2024年02月15日
    浏览(29)
  • DevOps系列文章之 GitlabCICD自动化部署SpringBoot项目

    本文主要记录如何通过Gitlab CI/CD自动部署SpringBoot项目jar包。 准备三台 CentOS7服务器,分别部署以下服务: 序号 系统 IP 服务 1 CentOS7 192.168.56.10 Gitlab 2 CentOS7 192.168.56.11 Runner (安装Docker) 3 CentOS7 192.168.56.12 SpringBoot 项目 jar 包(安装jdk、maven等) 上述服务也可以只用一台CentOS

    2024年02月13日
    浏览(29)
  • 《DevOps企业级CI/CD实战》:一站式掌握DevOps核心方法论,实现高效自动化部署

    DevOps是一组实践,由人、工具和文化理念组成。DevOps的核心是实现软件开发团队和IT运维团队之间的流程自动化。自2018年起,笔者参与了大型企业中多个项目的DevOps项目实施和改进,从中积累了丰富的实践经验。于是将实践思考与开发经验整理成一本书分享给同路人共同学习

    2024年04月14日
    浏览(50)
  • DevOps:自动化部署和持续集成/持续交付(CI/CD)

    在现代软件开发领域,DevOps(Development和Operations的组合)已经成为一个不可或缺的概念。它代表了一种将软件开发和运维(Operations)紧密结合的方法,旨在提高软件交付速度、质量和可靠性。本文将深入探讨DevOps中的关键概念,特别是自动化部署和持续集成/持续交付(CI/C

    2024年02月07日
    浏览(48)
  • DevOps系列文章之 自动化测试大全(单测和集成测试)

    核心目标: 主要是功能测试和覆盖率测试 业界常用主流工具 GoogleTest GoogleTest是一个跨平台的(Liunx、Mac OS X、Windows 、Cygwin 、Windows CE and Symbian ) C++单元测试框架,由google公司发布,为在不同平台上为编写C++测试而开发的。它提供了丰富的断言、致命和非致命判断、参数化、”

    2024年02月14日
    浏览(33)
  • DevOps搭建(十九)-Jenkins+K8s自动化CI搭建详细步骤

    完整的pipeline-auto.yml脚本如下 完整的Jenkinsfile脚本如下 在Jenkins插件管理中搜索GitLab插件进行安装。 进入Jenkins项目配置里的 构建触发器 ,勾选如下选项: 从系统管理-系统配置-Gitlab将验证去掉,生产最好配置保证安全。 如果是GitLab和Jenkins在同一台服务器,需要开启允许请求

    2024年01月23日
    浏览(68)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包