日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

秘钥对使用_使用gitactions持续集成项目实例

發(fā)布時間:2025/4/16 编程问答 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 秘钥对使用_使用gitactions持续集成项目实例 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

前言

在以前,我們發(fā)布代碼都是在本地先將代碼編譯打包壓縮好好,然后借助 xshell 等工具登錄服務(wù)器,將壓縮好的代碼拷貝到服務(wù)器目錄,解壓執(zhí)行。但是這種方式是繁瑣低效的。而且,直接登錄服務(wù)器進(jìn)行操作有很大的風(fēng)險。隨著 DevOps 的興起,出現(xiàn)了持續(xù)集成,持續(xù)交付(CI/CD)和持續(xù)部署的新方法,開發(fā)人員只需要通過工具定義好整個軟件打包發(fā)布的流水線(Pipeline)就可以實現(xiàn)自動化。

那么,通過什么軟件去定義這個流水線,就是下面我要介紹的 github 提供的 Actions 模塊功能。

actions 配置文件

actions 的配置文件存放在代碼倉庫的.github/workflows目錄。是一個yml文件,名字可以自定義。

配置字段

  • name:工作流(Workflows)的名字,你可以定義多個流水線,名字可以幫助你區(qū)分。

  • on:Workflows 觸發(fā)的時機(jī),一般是 push 和 pr 到指定分支時觸發(fā)。

  • runs-on:工作流執(zhí)行的虛擬機(jī)環(huán)境。

  • job:任務(wù),一個 Workflows 可由一個或多個 job 組成。

  • step:步驟,每個 job 可由一個或多個 step 組成。

  • use:在執(zhí)行 step 時,你可以使用別人定義好的 actions

  • run:在執(zhí)行 step 時,執(zhí)行 run 對應(yīng)的 shell 命令

下面是我目前配置的 Workflows

name: vpBlog# Controls when the action will run. Triggers the workflow on push or pull request# events but only for the master branchon: push: branches: [master] pull_request: branches: [master]# A workflow run is made up of one or more jobs that can run sequentially or in paralleljobs: # This workflow contains a single job called "build" build: # The type of runner that the job will run on runs-on: ubuntu-latest # Steps represent a sequence of tasks that will be executed as part of the job steps: # Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it - uses: actions/checkout@v2 - name: Install Node.js uses: actions/setup-node@v1 with: node-version: "10.x" - name: install dependencies run: npm install # Runs a single command using the runners shell - name: build project run: npm run build - name: Deploy to Server uses: easingthemes/ssh-deploy@v2.1.1 env: # 以下為參數(shù) SSH_PRIVATE_KEY: ${{ secrets.DEPLOY_SSH_KEY }} ARGS: "-rltgoDzvO --delete" REMOTE_USER: ${{ secrets.DEPLOY_USER }} # 為了用戶信息安全對敏感數(shù)據(jù)可以在secrets中配置 REMOTE_HOST: ${{ secrets.DEPLOY_HOST }} SOURCE: ".vuepress/dist" TARGET: "/usr/share/nginx/html

secrets 配置

上面配置中你一定很好奇secrets.DEPLOY_SSH_KEY是如何獲取的。下面就可以解答你的疑惑。

相信秘鑰,服務(wù)器地址這些敏感信息,你一定不希望被別人看到。所以 github 也貼心的提供了 secrets 模塊配合 actions 使用。

具體配置方法可以看下圖

工作流配置

每個人在發(fā)布前可能會執(zhí)行 eslint 檢查,或者跑單元測試,然后在執(zhí)行 build,這里不展開講了。最終的目的是要將代碼發(fā)布到指定的服務(wù)器上。下面就來說下這步怎么做。

其實也不復(fù)雜,是借助了easingthemes/ssh-deploy這個開源的 action,其原理也是使用rsync這個工具實現(xiàn)數(shù)據(jù)傳輸。

- name: Deploy to Server uses: easingthemes/ssh-deploy@v2.1.1 env: # 以下為參數(shù) SSH_PRIVATE_KEY: ${{ secrets.DEPLOY_SSH_KEY }} ARGS: "-rltgoDzvO --delete" REMOTE_USER: ${{ secrets.DEPLOY_USER }} REMOTE_HOST: ${{ secrets.DEPLOY_HOST }} SOURCE: '.vuepress/dist' TARGET: '/usr/share/nginx/html'

服務(wù)器配置

由于rsync是借助秘鑰實現(xiàn)通過 ssh 進(jìn)行傳輸。所以在服務(wù)器上需要做一些配置。

創(chuàng)建秘鑰

ssh-keygen -m PEM -t rsa -b 4096

在服務(wù)器上安裝公鑰

cat?.ssh/id_rsa.pub?>>?.ssh/authorized_keys

編輯 /etc/ssh/sshd_config 文件,開啟服務(wù)器允許通過秘鑰登錄

RSAAuthentication yesPubkeyAuthentication yes

因為我是直接使用 root 賬號,所以還要開啟允許 root 通過 ssh 登錄

PermitRootLogin?yes

重啟 ssh 服務(wù)器

service?sshd?restart

最后將私鑰(id_rsa )中的內(nèi)容保存到 secrets

總結(jié)

因為都是靜態(tài)文件所以直接拷貝到 nginx 目錄就可以直接運行了,所以相對比較簡單。如果是服務(wù)端還需要涉及到執(zhí)行重啟等功能。

下面放一個執(zhí)行成功的 actions

總結(jié)

以上是生活随笔為你收集整理的秘钥对使用_使用gitactions持续集成项目实例的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。