有什么好方法可以使多个目录的内容与 GitHub 存储库中的版本保持同步?

有什么好方法可以使多个目录的内容与 GitHub 存储库中的版本保持同步?

我所在的公司负责维护大量自定义 WordPress 插件和主题,用于我们众多 WordPress 网站的网络。存储库管理员已将其设置为,只要有新版本发布,就会将 webhook 添加到存储库中,并将版本推送到托管文件的主服务器(至少我很确定这是怎么回事)。

但是,我运行的几个 Web 服务器也使用这些插件,每当发布新版本时,我都会通过 SSH 或 SFTP 手动更新它。由于我管理许多 WordPress 网站(我选择了多个单站点实例,而不是多站点安装),并且有许多插件需要保持最新状态,因此这很快就会过时。

我开始编写一个 WordPress 插件,它允许我将已安装的插件和主题指向它们的 GitHub URL,这样我就可以直观地看到 WordPress UI 中何时有可用的更新并以这种方式进行更新,到目前为止,这种方法很有前景。

但是,这个解决方案被锁定在 WordPress 中,我希望有一个更可重复使用的解决方案,包括命令行和 cron 作业,和/或一种让我运行命令来检查是否有任何新版本发布并更新包含这些主题和插件的本地目录的方法。

我觉得这是一个很常见的用例,应该有一个标准化的解决方案,但每次我用 Google 搜索时,它都会指向通过 GitHub 存储库设置 webhook 的方向,但我不想这样做,因为 A. 我没有权限修改这些存储库的设置(虽然我想我可以 fork 它们)并且 B. 我不想在迁移我的 Web 服务器时对 webhook 进行修改(例如,我目前正准备将所有内容迁移到 AWS)。因此,如果有意义的话,我宁愿让服务器通过 cron 监听新的 GitHub 版本,而不是通过 webhook 将存储库指向我的服务器。

我现在处理的操作系统是 RHEL 7,但在不久的将来我将更新到 RHEL 8 或迁移到 Ubuntu。

如果我使用的术语有误,或者我以错误的方式思考这个问题,请告诉我是否有更好的社区来提出这个问题。

答案1

我不完全确定这是事实,但看起来你需要一个Ansible剧本。看看它是否符合你的需求:

如果您拥有一个管理/主服务器,并且通过 SSH 连接到目标,则只需创建剧本并针对目标机器运行它即可。您可以git clone使用任何方便的 Ansible 模块直接执行。Ansible 非常强大。

相关内容