Scripting

用於管理機器特定腳本和計時器的 Git 分支:好還是壞?

  • September 5, 2017

我有一個 bash 腳本,我需要使用 systemd 計時器在多台(個人)機器上執行。雖然大體相似,但這些腳本中有一些功能需要在某些機器上啟用,而在其他機器上不需要。

現在,我正在使用 git 分支來管理腳本和計時器。這似乎很方便並且工作正常,但我想知道這是否是推薦的做法。

雖然不太可能,但我確實看到了潛在的問題來源(人為引入的錯誤):檢查機器上的錯誤分支。

我的問題:

  1. 這足以避免使用 git 嗎?
  2. 還有其他我可能沒有考慮的潛在問題嗎?
  3. 是否建議將此方法用於管理多台機器上的腳本和計時器?還是我最好(a)重寫腳本以使它們更便攜和可配置,(b)只擁有特定於機器的文件,沒有 git 分支,(c)其他東西?

我是該node-config庫的維護者,在找到成功的模型之前經歷了一些配置災難。

我建議將所有配置保存在一個分支中。

考慮一些您想要進行的更新,可以通過文件中的查找和替換來完成。如果所有文件都在同一個目錄中,這很容易。如果更改影響其他分支的工作,那麼您必須檢查每個分支以在每個分支上進行更改。

node-config中,我們使用一個環境變數來設置“環境”,如“生產”或“開發”,另一個設置“實例”。它還允許基於目前機器的主機名進行配置。

結果是具有單一集中配置的單一程式碼庫。程式碼配置為根據環境變數和主機名表現不同——程式碼本身在環境和主機之間完全相同。

在您的情況下,您可以讓您的 bash 框架根據主機名獲取一個或多個文件。因此,您的程式碼可能在任何地方都完全相同,但仍會在不同主機上按需要執行。

您甚至可以在每台主機上執行所有計時器操作,只是讓它們在某些主機上不執行任何操作。

引用自:https://serverfault.com/questions/871659