git - 推送到 Git 主分支后自动更新数百个 Windows 部署

标签 git github deployment continuous-integration continuous-deployment

我正在尝试使用 Git 来管理安装在许多 Windows 服务器上的产品。这是当前状态:

  • 每个客户端都 pull 了版本库并且在master分支上,
  • 服务器始终在线并连接到 Internet,
  • 我对服务器有完全访问权限(管理员),但其他一些人(我公司以外的人)也有访问权限,所以我应该小心使用 SSH key 等凭据,
  • 产品源代码小(不超过5MB)。

以下是我(作为开发人员)将提交推送到 Git 服务器上的 master 分支时想要实现的目标:

  • 所有 Windows 服务器都会自动 pull 新的提交并将其副本更新到最新版本,
  • 执行一些脚本(重启一些服务,运行测试等),
  • 记录整个更新过程,
  • 服务器向远程服务器报告其当前状态(Git 提交、标记和分支),以便我可以在每次推送后检查所有服务器的状态。

我有哪些选择?是否有任何软件或我必须自己构建?我检查了 Git Hook ,但它们似乎是在我在每台服务器上手动 pull 代码后触发的。

最佳答案

这是一个想法,

  1. 将其中一台服务器指定为 Jenkins 服务器
  2. 将其余服务器设置为从属/代理

工作流程

  1. 您提交一个可执行文件 (.sh .bat .exe)
  2. Jenkins 注意到提交并在所有机器上运行该文件
  3. 代理在 Jenkins 中登录终端时执行命令
  4. Jenkins 会告诉您构建成功还是失败

如果你想尝试这个策略,我很乐意提供帮助

此外,Jenkins 是一个网络应用程序,因此您可以从许多设备访问它!

关于git - 推送到 Git 主分支后自动更新数百个 Windows 部署,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49809497/

相关文章:

Git:看似简单的分支题

javascript - 在 github 上重写一个 npm 包

git - 删除远程主分支,由于是当前分支而被拒绝

c# - 检查应用程序是否在安装后首次运行

asp.net - 在我的安装项目中包含另一个MSI文件

python - 如何编写 python 预推送来检查提交消息?

linux - 在树莓派上安装 Cloud Foundry 二进制文件 (linux v 4.4)

git 仅向某些用户显示 gitweb 中的存储库

github - 在 Github Actions 中使用 faSTLane 时未找到 'git_url' 的值

java - 无法将 .war 应用程序部署到 GlassFish 3.1.2