GithubAction對接阿里雲ECS實現自動化部署
參考:https://github.com/easingthemes/ssh-deploy
https://frostming.com/2020/04-26/github-actions-deploy/
https://cloud.tencent.com/developer/article/1720500
https://ld246.com/article/1602747692300
對於githubaction 部署到ECS,網上有很多文章,但是可能你看完並沒有太多理解,跟我一起 一步一步部署;
1.github action yaml檔案
# This workflow will build a Java project with Gradle
# For more information see: https://help.github.com/actions/language-and-framework-guides/building-and-testing-java-with-gradle
name: Java CI with Gradl
on:
push: #只要push程式碼 就觸發流程
branches: [ main ]
pull_request:
branches: [ main ]
jobs: #任務
build:
runs-on: ubuntu-latest #執行的平臺
steps: #步驟
- uses: actions/checkout@v2 #下載程式碼。可以訪問的github 倉庫
- name: Set up JDK 1.8 #設定環境。可以根據環境取消
uses: actions/setup-java@v1 #又是一個倉庫 我們的執行的命令都是基於被封裝的倉庫
with:
java-version: 1.8 #應該是 使用java版本
- name: Grant execute permission for gradlew #-name 自定義執行的名字
run: chmod +x gradlew #加許可權
- name: Build with Gradle
run: ./gradlew build #執行的程式碼 給予當前目錄
- name: Deploy to Staging server #對接阿里雲服務
uses: easingthemes/ssh-deploy@v2.1.5 #可以訪問的倉庫,實現的步驟被封裝在此倉庫
env:
SSH_PRIVATE_KEY: ${{ secrets.SERVER_SSH_KEY }} #這個是阿里雲的私鑰
ARGS: "-rltgoDzvO"
SOURCE: "./"
REMOTE_HOST: ${{ secrets.REMOTE_HOST }} #阿里雲的 ip
REMOTE_USER: ${{ secrets.REMOTE_USER }} #阿里雲使用者
TARGET: ${{ secrets.REMOTE_TARGET }} #被部署的路徑
2.secret新增
我們只有這樣寫。才能被CI檔案進行引用;
3.伺服器配置
- ${{ secrets.SERVER_SSH_KEY }} :ssh-keygen 生成: 取id_rsa的值填入,一般都在/root/.ssh/下
- ${{ secrets.REMOTE_USER }}: root
- ${{ secrets.REMOTE_HOST }}: 阿里雲的公網ip
- ${{ secrets.REMOTE_TARGET }}:自定義站點目錄 /root/web
還有一步
cat /root/.ssh/id_rsa_pub >>/root/.ssh/authorized_keys
這樣的話。可以github進行免金鑰部署服務;
4.push程式碼進行觸發
[root@k8s-m01 ~]# ls /root/web
10.txt 13.txt 16.txt 2.xtt 6.txt 9.txt Dockerfile gradlew.bat src
11.txt 14.txt 17.txt 3.txt 7.txt build gradle README.md
12.txt 15.txt 1.txt 5.txt 8.txt build.gradle gradlew settings.gradle
相關文章
- 阿里雲釋出ECS自動化運維套件,幫助企業實現自動化運維轉型阿里運維套件
- 使用GithubAction自動構建部署專案Github
- 華納雲:如何實現tomcat自動化部署Tomcat
- NFV+SDN雲網聯動實現VNF全自動化部署
- [原] php + Laravel 實現部署自動化PHPLaravel
- 利用Github Actions實現自動化部署Github
- hexo使用jenkins自動部署到阿里雲HexoJenkins阿里
- 持續整合指南:GitHubAction 自動構建+部署AspNetCore專案GithubNetCore
- Docker+LNMP+Jenkins+ 碼雲實現 PHP 程式碼自動化部署DockerLNMPJenkinsPHP
- GO 使用Webhook 實現github 自動化部署GoWebHookGithub
- jenkins + GitHub 實現專案自動化部署JenkinsGithub
- 使用 Jenkins + Ansible 實現自動化部署 NginxJenkinsNginx
- ECS7天實踐進階訓練營Day2:基於阿里雲ECS部署MediaWiki阿里
- aspcore+jenkins+iis+window實現自動化部署Jenkins
- 使用 Git 實現 專案的自動化部署Git
- 利用github提供的Webhooks實現自動化部署GithubWebHook
- 阿里雲ECS伺服器部署Dart服務端程式阿里伺服器Dart服務端
- 詳解阿里雲ECS上部署SSL證書的方法阿里
- nuxt+pm2 自動化部署及打包後檔案自動上傳阿里雲OSSUX阿里
- 【python介面自動化】- 對接各大資料庫Python大資料資料庫
- 一鍵實現自動化部署(灰度釋出)實踐
- 阿里雲冷門 API/SDK 對接心得阿里API
- Django + react + 阿里雲ecs 前後端分離部署上線DjangoReact阿里後端
- 使用 Git 實現 Laravel 專案的自動化部署GitLaravel
- 使用Jenkins實現前端自動化打包部署(Linux版本)Jenkins前端Linux
- GBase GCDW&阿里雲端計算巢:自動化部署雲原生資料倉儲GC阿里
- nginx+騰訊雲免費ssl證書+阿里雲ECS實現Https配置Nginx阿里HTTP
- 什麼是阿里雲ECS?阿里
- [Kyana]使用FlowUS+elog+Hexo+GithubAction自動化靜態部落格HexoGithub
- 實現指令碼自動部署docker指令碼Docker
- Docker 搭建 Jenkins 實現自動部署DockerJenkins
- Selenium自動化實現web自動化-1Web
- Gitlab自動部署之一:阿里雲安裝Gitlab筆記Gitlab阿里筆記
- API自動化測試平臺,高效實現對API的自動化測試API
- 基於函式計算快速實現《為你寫詩》(阿里雲ECS)函式阿里
- jenkins自動化專案部署實戰Jenkins
- 酷瓜雲課堂(騰訊雲版)v1.2.5 釋出 已實現自動化安裝部署
- Python實現ECS自動映象建立&映象複製至其他地域Python