亚洲成无码人在线观看丨久久精品国产亚洲77777丨亚洲不卡av一区二区三区丨69麻豆天美精东蜜桃传媒潘甜甜丨久久综合之久久綜合

行業動態

了解最新公司動態及行業資訊

當前位置:首頁>新聞中心>行業動態
全部 4197 公司動態 1061 行業動態 3136

源代碼倉庫一臺配置好環境的云服務器使用安裝軟件官網檢驗安裝配置

時間:2022-11-28   訪問量:2338

目錄 源代碼倉庫 環境配置好的云服務器 安裝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小時免費咨詢

請輸入您的聯系電話,座機請加區號

免費通話

微信掃一掃

微信聯系
返回頂部
主站蜘蛛池模板: 南溪县| 益阳市| 平昌县| 吉水县| 阿图什市| 昌乐县| 洪雅县| 丘北县| 鲁甸县| 象山县| 安龙县| 玉田县| 仁化县| 黄山市| 湟中县| 错那县| 东光县| 辽阳县| 万源市| 榆中县| 庄河市| 甘南县| 临武县| 安阳市| 萝北县| 天柱县| 崇礼县| 裕民县| 宁陵县| 永平县| 广汉市| 蓬安县| 左云县| 梅河口市| 温泉县| 大丰市| 禹城市| 沙坪坝区| 乌拉特前旗| 北流市| 嘉善县|