行业动态

了解最新公司动态及行业资讯

当前位置:首页>新闻中心>行业动态
全部 4048 公司动态 912 行业动态 3136

源代码仓库一台配置好环境的云服务器使用安装软件官网检验安装配置

时间:2022-11-28   访问量:2080

目录 源代码仓库 环境配置好的云服务器 安装mysql 选择合适的CI/CD平台 在本地代码仓库配置 使用自动打包搭建演示效果 体验为什么需要

从概念提出至今已近十年服务器运维技术,各种实用的解决方案相继在各个开发团队得到应用。通过版本控制工具(Git、SVN)+源码仓库(Gitee、)+CI/CD平台(、、CI...)解决方案,大大提升开发者的开发体验,降低开发运维成本,提升产品质量...

由于个人经验不足,无法继续细说优点和功能,推荐一篇博客

基本思路

如何练习

废话这么多,不如实践一下,看看好坏。围绕 , , CI 等 CI/CD 平台,可以很好的实现持续集成和持续部署。在码云源码仓库中,我们可以看到如下流行的程序

并集成在

那么我们真正需要用到哪些技术和工具来构建这样一个流水线平台呢?

我总结如下:

掌握流行版本控制工具(Git、SVN)的基本使用 依赖一个源代码仓库(、Gitee) 基本的linux运维技术(SSH远程、)一个CI/CD平台(、、CI...)

仅此而已,无需任何编程技能!

精通以上每一项技术都不是一件容易的事,但我们只需要选择其中的一项来掌握基本方法,就可以将它们串联起来。

我根据自己的技术栈设计了这样一个方案

为此我们需要一步步做一些准备工作

版本控制工具(Git)学习使用

学习使用,这里推荐廖雪峰的Git学习网站,阮一峰-Git命令列表,阮一峰-Git原理

配置环境

安装软件git官网

检查安装

git --version

配置本地用户信息

git config --global user.name "Name"
git config --global user.email "**.com"
git config --list

源代码库

这里就不细说了,太简单了,用搜索引擎查一下就可以了,如图服务器运维技术,我在上面建了一个这样的仓库(空仓库也可以,后面可以补上代码)

注意本教程依赖这样的平台,必须使用,所以网络问题需要自己解决

我们准备了一个基于Asp.NET Core 6的图书馆管理系统项目,目录结构如下图所示。然后如上图所示将源码推送到远程代码仓库。(推送说明就不详细说了,掌握了git的基本使用就明白了)

联通公司运维服务管控工作总结_数据中心运维服务解决方案_服务器运维技术

环境配置良好的云服务器

为此,我准备了一台4G运行内存,8M带宽的腾讯云服务器。操作系统是

SSH远程登录

可以使用云服务器控制台提供的远程工具,也可以使用远程控制工具如. 为了让后面的操作尽可能的顺利,你需要使用一些基本的linux指令,你可以看看这个linux快速入门视频。

有免费版,下载安装后,新建一个如下

然后按照提示输入账户名和密码

服务器上安装的技术准备

在这里随便找了一个狂生的视频-详细教程,随便看看,加深理解

为什么博客应该使用

我们知道一个项目需要一个运行环境才能运行。为了运行一个java项目,我们为服务器安装相应版本的Jdk或Jre。.Net 应用程序需要相应版本的.Net 或.Net Core SDK 才能运行。,比如我们日常使用的可执行程序qq等,都是需要运行环境的,但是已经提前安装了各种版本的.Net,这样我们安装完应用程序就可以直接使用了。再比如在服务器上安装相应的数据库(mysql、)。管理这些开发环境是一件很烦人的事情,但是当我们使用这样一个容器化的技术库时,代码就是环境,可以安装在任何服务器上。无需配置任何环境即可运行。

安装

菜鸟教程-安装

使用安装mysql

有了我们安装mysql就变得简单了

docker pull mysql

看看我们拉下来的图片

docker images

docker run -d --name mysql3306 -p 3306:3306 -e MYSQL_ROOT_PASSWORD=******* mysql

查看正在运行的服务

这样,我们就在服务器上创建了一个数据库。这样的数据库不仅可以在生产环境中使用,也可以用来学习。毕竟在笔记本上安装数据库会比较占用内存。

所以我可以配置数据库连接字符串在我的项目中使用这个数据库

无论项目在哪个主机上启动,都可以成功运行。毕竟数据库的IP和密码是固定的。

选择合适的 CI/CD 平台

上面说了,我用的是我最开始是从Asp.NET Core官网文档上了解到这个技术的。自从被微软收购后,一直是微软推荐的CI/CD技术。

官网文档

数据中心运维服务解决方案_联通公司运维服务管控工作总结_服务器运维技术

如果你想真正了解这项技术,最好阅读英文版的文档。看完《》、《》两栏目介绍,基本就可以上手了

推荐一篇博客,看完之后可以对它有一个简单的了解 阮一峰-入门

在本地代码仓库配置

在我的项目中实现如下

FROM mcr.microsoft.com/dotnet/aspnet:6.0 AS base
WORKDIR /app
EXPOSE 80
EXPOSE 443
FROM mcr.microsoft.com/dotnet/sdk:6.0 AS build
WORKDIR /src
COPY ["BMS.csproj", "./"]
RUN dotnet restore "BMS.csproj"
COPY . .
WORKDIR "/src/."
RUN dotnet build "BMS.csproj" -c Release -o /app/build
FROM build AS publish
RUN dotnet publish "BMS.csproj" -c Release -o /app/publish
FROM base AS final
WORKDIR /app
COPY --from=publish /app/publish .
ENTRYPOINT ["dotnet", "BMS.dll"]

尝试在本地使用包构建进行部署

我们可以使用这个文件按照我们想要的方式打包构建项目源码

这里我们简单演示一下,测试需要安装在本地电脑上。

切换到某个项目目录下使用

数据中心运维服务解决方案_服务器运维技术_联通公司运维服务管控工作总结

docker build .

这个没有标签的图像是我们刚刚构建的

docker run -d --name bmstest -p 8080:80 7ab686d20640

打开浏览器检查是否成功

有效!

但是,它不够方便。虽然我们每次修改代码都会运行几个命令,别人也可以用我们的镜像运行程序,但是执行的命令是固定的。修改代码后是否可以修改代码?事实证明,可以自动让它被打包、构建和部署,人类也可以在懒惰中进步。

使用自动打包构建

我们在项目目录下自己搭建

name: .NET
env: 
  IMAGE_NAME:  test
on:
  push:
    branches: [ master ]
  pull_request:
    branches: [ master ]
jobs:
  build:
    runs-on: ubuntu-latest
    steps:
    - uses: actions/checkout@v2
    - name: Setup .NET

联通公司运维服务管控工作总结_数据中心运维服务解决方案_服务器运维技术

uses: actions/setup-dotnet@v1 with: dotnet-version: 6.0.x - name: Restore dependencies run: dotnet restore - name: Test run: dotnet test --no-build --verbosity normal - name: Docker Login uses: docker/login-action@v1.10.0 with: username: ${{ secrets.DOCKER_USERNAME }} password: ${{ secrets.DOCKERHUB_TOKEN }} - name: Build and Push uses: docker/build-push-action@v2 with: tags: horaoen/app:latest push: true context: ./BMS - name: deploy uses: appleboy/ssh-action@master with: host: ${{ secrets.HOST }} username: ${{ secrets.HOST_USERNAME }} key: ${{ secrets.HOST_SSHKEY }} script: | docker stop bms-container docker rm bms-container docker rmi horaoen/app:latest docker pull horaoen/app:latest

数据中心运维服务解决方案_服务器运维技术_联通公司运维服务管控工作总结

docker run -d --name bms-container -p 8080:80 horaoen/app

可以看到这里的yml文件引用了几个变量。这些都是关系到用户安全的东西,不能直接写在配置文件里,需要在仓库里设置

添加您需要的密钥

详细解释

关于上面.yml配置文件怎么写,需要先了解基本原理

然后掌握几个用途

其实这些用户的项目的基本格式是users/,都是别人写的脚本。通过复用别人写的脚本,我们可以方便的做很多事情。

/@v2

用于将远程仓库中的源代码拉取到自动化构建脚本运行的服务器上。这里我们提供ubutu(这个写在配置文件里)

/设置-@v1

这是搭建项目的基础环境

/登录-@v1.10.0

docke官方给的,用于登录,方便我们后面上传图片到自己的图片仓库

/build-push-@v2

搭建镜像,推送到自己的镜像仓库。这个参数很难理解。其实就是相对于远程代码仓库根路径的路径

官网文档中介绍默认文件路径在/下,所以这个配置很重要,不能错配。

/ssh-@

当我们成功将镜像推送到镜像仓库后,我们需要ssh连接到我们要部署项目的服务器,然后在上面运行一系列的部署项目。

其他参数一目了然,就是这个有点麻烦。它是我们要连接的服务器的 ssh 私钥。这个官方网站上给出了教程

官网文档

您可以按照教程进行操作。其实你已经看到了这一点,说明你有能力解决这个问题。详细步骤可以查看博客中如何配置ssh keys。需要注意的是,文案尽量有说明的抄,哪怕是单个字符错了

私钥还要复制上下分界线,一个巨大的坑!!!

示范效果

查看项目

我们发现有乱码,这里只是模拟实际项目中的bug,现在修改代码修复bug

其实就是改一下,然后重新提交代码

有效!!

经验

显然从结果来看,这样很方便,但是学习技术的过程却很痛苦。将学习过程置于比较条件下是不公平的。学习一次,终生受益,但如果不去改变,就永远是后患。

上一篇:本文技术有哪些各种虚拟化技术物理资源抽象成逻辑

下一篇:1.思杰桌面云可以做外设管控吗?(组图)

发表评论:

评论记录:

未查询到任何数据!

在线咨询

点击这里给我发消息 售前咨询专员

点击这里给我发消息 售后服务专员

在线咨询

免费通话

24小时免费咨询

请输入您的联系电话,座机请加区号

免费通话

微信扫一扫

微信联系
返回顶部