Django實現自動發布 4配置檔案管理

2022-07-04 07:54:15 字數 1225 閱讀 6390

新部署乙個服務時,除了服務本身,還有它啟動依賴的配置檔案也要一併發布到目標主機。配置檔案從**來?如何傳送到目標主機?修改後如何同步?

我們可以在頁面提供上傳或新增功能,為每個服務儲存乙份預設的配置檔案包,新部署時將此包的內容寫入etcd,由主機上的守護程序去同步,後續的修改也只是更新etcd裡的內容,原理請見 配置檔案那些事

實際上服務的配置檔案不只有預設包,每次修改內容都會建立乙個新的包,這個包裡的所有版本號都應可應用到該服務的每個例項,因此需要記錄服務有哪些配置檔案版本號、例項當前關聯的版本號,就是一對多的關係。我們要修改一下模型:

class confrevision(models.model):

# ...

service = models.foreignkey(microservice, on_delete=models.do_nothing) # 1個服務可以有多個配置檔案版本號

class microserviceinstance(models.model):

# ...

conf_revision = models.foreignkey(confrevision, null=true, blank=true, on_delete=models.do_nothing) # 1個配置檔案可以對應多個例項

為了方便錄入檔案,希望能實現以下功能:

為了更方便的實現功能,引入vue和 ui元件elementui我們就從dom中脫離出來,只需要運算元據就好。

前端最後提交到後端的是1個或多個檔案,由於配置檔案是純文字格式,所以很方便的用陣列來儲存內容,使用json傳輸到後端。

服務的配置檔案列表:

支援以下操作:

某個具體的配置檔案:

檔案對比:

目前的**已經在本地資料庫實現了乙個完整的配置版本管理功能:

之後的內容下發就是將內容寫入etcd,相對來說比較容易。

相關的頁面和**比以往要多,放到 這裡

ubuntu下的自動打包發布配置

ubuntu下的自動打包發布配置 1 svn配置 svn version 檢視程式以及ra模組的版本號 svn help 幫助svn checkout url eg svn checkout svn update 更新2 ant配置 apt get install ant 3 更新發布打包的shel...

Gitlab配置webhooks實現自動化部署

gitlab 自動化部署 原理介紹 配置gitlab當push動作的時候,訪問伺服器上的乙個鏈結比如www.shenke.group hook.php hook.php裡面寫著一行 會讓伺服器git pull相應專案的 到web目錄。pull結束,就在web目錄了,我們只要重新訪問 就可以了。核心就...

Django 實現根據時間間隔自動生成溫度

直接上 記錄間隔 import datetime import random import time gap 5 單位分 temp list 宣告當前時間 time start datetime.datetime.now print time start 間隔時間 time.sleep 10 宣告結...