devops自动化容器化部署

devops

  • 一、简单案例体验gitlab+runner部署静态文件
  • 二、devops企业级部署方案
    • 1、流程图
    • 2、依赖工具
    • 3、流程图
    • 4、主机规划
    • 5、安装工具软件
      • 1、安装git
      • 2、安装gitlab
      • 3、安装jenkins-server
      • 4、安装harbor
      • 5、安装web-server,也就是部署服务的机子,需要安装docker
    • 6、工具配置
      • 1、配置docker主机使用harbor
      • 2、配置jenkins使用harbor
      • 3、密钥配置
      • 4、jenkins插件安装
      • 5、jenkins全局工具配置
      • 6、jenkins系统配置
    • 7、企业业务代码项目发布
    • 8、项目构建和发布

一、简单案例体验gitlab+runner部署静态文件

gitlab-ce安装:
参考文章:https://blog.csdn.net/qq_30374237/article/details/118189824

yum -y install policycoreutils openssh-server openssh-clients postfix
yum install policycoreutils-python systemctl enable sshd && sudo
systemctl start sshd systemctl enable postfix && systemctl start
postfix systemctl stop firewalld.service

安装gitlab-ce,这个安装包有问题:

wget https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el6/gitlab-ce-13.6.7-ce.0.el6.x86_64.rpm

安装gitlab-ce,我用了这个安装地址,可以

wget --content-disposition https://packages.gitlab.com/gitlab/gitlab-ce/packages/el/7/gitlab-ce-15.2.2-ce.0.el7.x86_64.rpm/download.rpm

将这个rpm包下载到本地,直接安装即可

yum install -y gitlab-ce-15.2.2-ce.0.el7.x86_64.rpm

查看gitlab的配置文件

cd /etc/gitlab
vi gitlab.rb

三种模式
1.命令模式(默认)
可以搜索 /external_url
2.插入模式:按i键,可以修改内容(-- INSERT --提示)
按左上角esc按钮,可以切换模式
输入退出并保存的指令:wq
不需要修改,直接退出:q

gitlab-ctl reconfigure
gitlab-ctl restart

查看初始密码:/etc/gitlab/initial_root_password文件
gitlab初始设置

本地装好git软件,自己去百度一下。
编辑器vs code
3.安装gitlab-runner
参考文章:https://juejin.cn/post/6844903798796730375

我们服务器是CentOS

curl -L https://packages.gitlab.com/install/repositories/runner/gitlab-runner/script.rpm.sh | sudo bash

安装:

sudo yum install gitlab-ci-multi-runner

gitlab-runner 注册
获取gitlab-ci的Token: 项目主页 -> Sttings -> CI/CD -> Runners Expand

指令:
gitlab-runner register

验证runner是否能正常运行
参考文章:https://blog.csdn.net/sinat_17775997/article/details/115700703

如果运行不正常,就要检查Run untagged jobs是否开启

安装一个静态服务器,用来展示web页面的
https://blog.csdn.net/sinat_17775997/article/details/115700703
指令:
https://jingyan.baidu.com/article/1709ad80c38e240634c4f098.html
yum install httpd
httpd -v

因为gitlab已经占用了80端口
修改httpd配置文件的路径是/etc/httpd/conf/httpd.conf
所以这个httpd要改他的默认端口80为8000

启动http服务
service httpd start

装其他软件
yum install sshpass
先将这个提问关闭,等第一次生产密钥之后,再打开就好。
Are you sure you want to continue connecting (yes/no/[fingerprint])?
参考:https://blog.csdn.net/zhengzaifeidelushang/article/details/109348222

vim /etc/ssh/ssh_config
StrictHostKeyChecking no
UserKnownHostsFile /dev/null

esc键

二、devops企业级部署方案

1、流程图

在这里插入图片描述

2、依赖工具

在这里插入图片描述

3、流程图

在这里插入图片描述

4、主机规划

在这里插入图片描述
1、按照主机规划给分配的每台主机起名 hostnamectl set-hostname xxx
在这里插入图片描述

2、IP地址配置,修改/etc/sysconfig/network-scripts/ifcfg-ens33 来配置IP
在这里插入图片描述
补充说明:可以使用win命令ipconfg或者linux命令ip a查看dns和网关

无线局域网适配器 WLAN:
连接特定的 DNS 后缀 . . . . . . . :
本地链接 IPv6 地址. . . . . . . . : fe80::c527:5c19:2da6:f642%17
IPv4 地址 . . . . . . . . . . . . : 172.16.4.208
子网掩码 . . . . . . . . . . . . : 255.255.252.0
默认网关. . . . . . . . . . . . . : 172.16.4.1

(1)配置静态IP时,网关和DNS地址不能随便配置‌。网关和DNS地址需要根据网络环境进行正确配置,以确保设备能够正常连接到互联网和进行域名解析。
(2)网关和DNS的作用及配置方法

(2-1)网关(Gateway)‌:

  • 作用‌:网关是设备访问外部网络的出口,通常是路由器的IP地址。它允许设备通过这个地址与外部网络通信。
  • 配置方法‌:网关地址应设置为路由器的IP地址。例如,如果路由器的IP地址是192.168.1.1,那么网关地址也应设置为192.168.1.1‌

(2-2)DNS(Domain Name System)服务器‌:

  • 作用‌:DNS服务器负责将域名解析为IP地址,帮助设备找到其他网站的IP地址。
  • 配置方法‌:DNS服务器可以选择公共DNS,如Google的8.8.8.8和8.8.4.4,或者使用网络服务提供商(ISP)提供的DNS服务器地址。例如,中国电信的DNS服务器地址为114.114.114.114‌

3、主机名与ip地址解析的配置,修改 /etc/hosts 文件
在这里插入图片描述
4、防火墙配置
在这里插入图片描述
补充说明:sestatus也需要设置为disabled。可使用命令

sudo vi /etc/selinux/config
SELINUX=disabled  # 原值可能是enforcing或permissive
sudo reboot

‌sestatus命令‌用于查看SELinux(Security-Enhanced Linux)的当前状态。包括是否启用、模式(如Enforcing、Permissive或Disabled)、配置文件的位置以及其他相关信息‌。设置完结果如下图:
在这里插入图片描述

5、各个主机的时间同步。前提是保证有ntpdate命令
在这里插入图片描述

5、安装工具软件

1、安装git

yum -y install git

2、安装gitlab

(1)配置yum源:https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/你的版本号
在这里插入图片描述

vim /etc/yum.repos.d/gitlab-ce.repo

在这里插入图片描述
(2)安装gitlab-ce

yum -y install gitlab-ce

(3)gitlab-ce配置

 vim /etc/gitlab/gitlab.rb32 external_url 'http://192.168.10.21'

(4)启动gitlab-ce

gitlab-ctl reconfigure
gitlab-ctl status

(5)访问验证
在这里插入图片描述

3、安装jenkins-server

(1)安装jdk
(2)安装jenkins。在官网jenkins.io下载安装
在这里插入图片描述
根据官网命令执行下图的命令即可。第四条命令安装jdk在上一步已经安装了,无需执行,第五条命令可以执行yum -y install jenkins
第三步安装epel-release很慢的话可以使用阿里云的镜像:wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epe1-7.repo
在这里插入图片描述
(3)jenkins配置
在这里插入图片描述
配置文件如下
在这里插入图片描述
在这里插入图片描述
(4)jenkins自启动配置
在这里插入图片描述
启动后查看密码并访问
在这里插入图片描述
在这里插入图片描述
注意:部署jenkins的机子也需要安装git,因为要拉取代码;需要安装maven,需要编译代码;需要安装docker,打包docker镜像
在这里插入图片描述
在这里插入图片描述

4、安装harbor

在这里插入图片描述

5、安装web-server,也就是部署服务的机子,需要安装docker

在这里插入图片描述

6、工具配置

1、配置docker主机使用harbor

(1)jenkins服务器添加从harbor拉取镜像
在这里插入图片描述
(2)harbor服务器配置私有仓库
在这里插入图片描述
(3)web-server配置harbor
在这里插入图片描述

2、配置jenkins使用harbor

在这里插入图片描述

3、密钥配置

(1)dev主机到gitlab-ce
在这里插入图片描述

(2)jenkins服务器到gitlab-ce
在这里插入图片描述
配置完成后gitlab可以看到俩公钥
在这里插入图片描述
配置jenkins私钥的具体步骤
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

4、jenkins插件安装

在这里插入图片描述

(1)maven integration:用于编译JAVA项目
在这里插入图片描述
(2)git parameter:用于基于git版本提交进行参数构建项目

(3)gitlab:用于jenkins-server拉取项目

(4)Generic Webhook Trigger:用于项目自动化构建

(5)ssh:用于jenkins-server对web-server实施项目部署

全部安装后重启jenkins

5、jenkins全局工具配置

在这里插入图片描述

(1)jdk配置
在这里插入图片描述
(2)git配置
在这里插入图片描述
(3)maven配置
在这里插入图片描述

6、jenkins系统配置

(1)添加jenkins-server访问web-server凭据
在这里插入图片描述
在这里插入图片描述
(2)配置ssh协议连接主机
在这里插入图片描述
在这里插入图片描述

7、企业业务代码项目发布

(1)数据库创建
在这里插入图片描述
(2)代码获取
(3)代码修改
(4)构建项目,运行容器镜像
在这里插入图片描述
在这里插入图片描述

(5)推送镜像到harbor
在这里插入图片描述
(6)验证
在这里插入图片描述

8、项目构建和发布

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/80660.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

高级 SQL 技巧:提升数据处理能力的实用方法

在数据驱动的时代,SQL 作为操作和管理关系型数据库的标准语言,其重要性不言而喻。基础的 SQL 语句能满足日常的数据查询需求,但在处理复杂业务逻辑、进行数据分析和优化数据库性能时,就需要掌握一些高级 SQL 技巧。这些技巧不仅能提高查询效率,还能实现复杂的数据处理任务…

21.disql命令登录达梦数据库,查询并操作数据库

目录 1.连接达梦数据库 1.1 windows或linux系统 步骤(1):打开终端窗口 步骤(2):进入梦数据库安装目录下的 bin 文件夹 步骤(3):用disql命令进行登录 1.2 docker部署…

N8N MACOS本地部署流程避坑指南

最近n8n很火,就想在本地部署一个,尝尝鲜,看说明n8n是开源软件,可以在本地部署,于是就尝试部署了下,大概用了1个多小时,把相关的过程记录一下: 1、基础软件包 abcXu-MacBook-m2-Air…

qt之开发大恒usb3.0相机一

1.在大恒相机给的sample里没有看见qt开发的demo. 第一步先运行c sdk中中的demo,看了下代码,大恒使用的UI框架是MFC.然后 vs2022编译。运行结果 第一步,先用qt进行坐下页面布局,如下图(保存图片的地方做了些更改&#…

leetcode-枚举

枚举 3200. 三角形的最大高度 题目 给你两个整数 red 和 blue,分别表示红色球和蓝色球的数量。你需要使用这些球来组成一个三角形,满足第 1 行有 1 个球,第 2 行有 2 个球,第 3 行有 3 个球,依此类推。 每一行的球必…

DeepSeek智能时空数据分析(三):专业级地理数据可视化赏析-《杭州市国土空间总体规划(2021-2035年)》

序言:时空数据分析很有用,但是GIS/时空数据库技术门槛太高 时空数据分析在优化业务运营中至关重要,然而,三大挑战仍制约其发展:技术门槛高,需融合GIS理论、SQL开发与时空数据库等多领域知识;空…

如何用WordPress AI插件自动生成SEO文章,提升网站流量?

1. 为什么你需要一个WordPress AI文章生成插件? 每天手动写文章太耗时?SEO优化总是不达标?WordPress AI插件能帮你24小时自动生成原创内容,从关键词挖掘到智能排版,全程无需人工干预。 痛点:手动写作效率低…

鼠标指定范围内随机点击

鼠标指定范围内随机点击 点赞神器 将鼠标移动到相应位置后按F5 F6键,设置点击范围, F8开始,ESC中止。 有些直播有点赞限制,例如某音,每小时限制3千次,可以设置1200毫秒,3000次。 软件截图&#…

数据库设置外键的作用

数据库外键(Foreign Key)是关系型数据库中用于建立表与表之间关联关系的重要约束,其核心作用是确保数据的一致性、完整性和关联性。以下是外键的主要作用及相关说明: 1. 建立表间关联关系 外键通过引用另一张表的主键&#xff0…

发币流程是什么,需要多少成本?

这是一个专注于Web3相关开发的账号,具体会讲解步骤以及开发方案 偶尔会有科普,有兴趣的可以点右上角关注一下 发币(发行数字货币)的流程通常涉及技术实现、法律合规、经济模型设计等多个环节,以下是关键步骤的简要说明…

测试常用的Linux系统指令详解

为什么测试工程师需要掌握Linux命令? 在现代软件测试领域,约75%的服务端应用运行在Linux环境中,能够熟练使用Linux命令的测试工程师,其工作效率比仅依赖GUI工具的测试人员高出40%以上。本文将系统介绍测试工作中最实用的Linux命令…

Java学习手册:Web 安全基础

一、常见 Web 安全威胁 在 Web 开发中,安全问题至关重要。以下是一些常见的 Web 安全威胁: 1. SQL 注入 SQL 注入是一种攻击方式,攻击者通过在输入字段中插入恶意的 SQL 代码,从而操纵数据库。例如,假设有一个登录表…

游戏引擎学习第246天:将 Worker 上下文移到主线程创建

回顾并为今天的工作做准备 关于GPU驱动bug的问题,目前本地机器上没有复现。如果有问题,昨天的测试就应该已经暴露出来了。当前演示的是游戏的过场动画,运行正常,使用的是硬件渲染。 之前使用软件渲染时没有遇到太多问题&#xff…

2025.4.26总结

今天把马良老师的《职场十二法则》看完后,感触极大,这们课程就是一场职场启蒙课。 虽然看过不少关于职场的书籍,但大多数是关于职场进阶,方法方面的。并没有解答“面对未来二三十年的职场生涯,我该怎么去看待自己的工…

路由器转发规则设置方法步骤,内网服务器端口怎么让异地连接访问的实现

在路由器上设置端口转发(Port Forwarding)可以将外部网络流量引导到特定的局域网设备,这对于需要远程访问服务器、摄像头、游戏主机等设备非常有用。 登录路由器管理界面,添加端口转发规则让外网访问内网的实现教程分享。以下是设…

Linux基础命令总结

Linux系统命令 1. systemctl 1. 基本语法 systemctl start | stop | restart | status 服务名 2. 经验技巧查看服务的方法:/usr/lib/systemd/system 3. 案例实操 (1)查看防火墙服务的状态 systemctl status firewalld (2)停止防火墙服务 systemctl stop firewalld (…

【PVCodeNet】《Palm Vein Recognition Network Combining Transformer and CNN》

[1]吴凯,沈文忠,贾丁丁,等.融合Transformer和CNN的手掌静脉识别网络[J].计算机工程与应用,2023,59(24):98-109. 文章目录 1、Background and Motivation2、Related Work3、Advantages / Contributions4、Method5、Experiments5.1、Datasets and Metrics5.2、Hyper-parameters5.…

《企业级 Java EE 架构设计精深实践》内容详解

《企业级 Java EE 架构设计精深实践》内容详解 1. 书籍核心主题 《企业级 Java EE 架构设计精深实践》是一本深入探讨Java EE 企业级架构设计的实战指南,涵盖分层架构、设计模式、分布式系统、微服务、性能优化、安全与监控等核心内容,结合 Java EE 技术…

Ragflow新建的知识库完成后刷新却没有显示,报错MethodNotAllowed: 405 Method Not Allowed:

环境: Ragflow17.2 debian12.8 问题描述: Ragflow新建的知识库完成后刷新却没有显示,报错MethodNotAllowed: 405 Method Not Allowed: The method is not allowed for the requested URL. 后台日志: 2025-04-25 13:54:25,988 ERROR 235204 405 Method Not Allowed:…

使用 LangChain + Higress + Elasticsearch 构建 RAG 应用

RAG(Retrieval Augmented Generation,检索增强生成) 是一种结合了信息检索与生成式大语言模型(LLM)的技术。它的核心思想是:在生成模型输出内容之前,先从外部知识库或数据源中检索相关信息&…