gpt4 book ai didi

linux - 为多台机器保存 docker 配置的 Git 策略

转载 作者:太空宇宙 更新时间:2023-11-04 11:49:08 25 4
gpt4 key购买 nike

我有许多 docker 主机 - 为了便于讨论,让我们以 3 为例。在这 3 台主机上,我总共有 10 个应用程序。每个都是独立的,或者是堆栈的一部分。大多数应用程序确实持有一些持久数据(配置文件等)。

我过去使用过扁平的 svn 结构。

docker-data
stack1
app1
app2
app3
stack2
app4
app5
stack3
app6
app7
app8
app9

整个结构和配置文件将在 svn 下并加载到所有 3 台主机上。必须记住哪个主机有哪些应用程序,并根据需要进行更改和提交。

其中主机 1 = 堆栈 1,主机 2 = 堆栈 2,主机 3 = 堆栈 3 和应用程序 8 和 9

作为重建的一部分,我打算考虑迁移到 git 和更好的结构。

我确实看到有人建议将我的整个结构作为 master 放入 git每个主机都有一个分支。

master
docker-data
stack1
app1
app2
app3
stack2
app4
app5
stack3
app6
app7
app8
app9
host1
docker-data
stack1
app1
app2
app3

这似乎是一个很好的方法。但令我印象深刻的是最初的设置方式。

如果我所有的应用程序都在 master 中,我该如何初始化主机 1 的分支并只 pull app1、2 和 3?

我假设如果这些配置中的任何一个发生变化,我会 merge 回 master。

最后,我想将 app8 从主机 3 移动到主机 1 的分支。

这太复杂了吗?是否有任何帖子或命令可以帮助我促进这一点?

最佳答案

一般来说,在不同的系统上使用不同的Git分支进行配置并不是一个好主意,因为你遇到的问题就像你遇到的那样。如果这样做,如果您需要进行任何 merge ,您也可能会遇到冲突。

管理不同系统配置的典型方式是某种模板系统。例如,您可以使用 Ruby 的 ERB 编写模板,然后使用 YAML 配置文件配置每个主机,构建步骤会生成包含每个主机配置的输出目录。您将只有一个主分支,其他功能分支会在准备就绪时 merge 。

这种方法类似于 Puppet 和 Ansible 等其他配置系统的设计工作方式,并且通常比使用单独的分支进行单独的配置更健壮。

关于linux - 为多台机器保存 docker 配置的 Git 策略,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56604707/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com