0

我们有一个用 Yii 1.1 编写的应用程序,我们维护和控制应用程序和服务器的各个方面。它存在于各种服务器上。我们通过 git 在本地维护代码库并发布到我们的 GitHub 存储库。当我们推出更新或错误修复时,我们必须进入每个盒子并一次更新它们。随着我们部署的应用程序和服务器越多,这只会变得越来越耗时。

我们希望git pull通过远程管理部分来简化流程。我们考虑过利用 GitHub WebHooks 功能,但我们不希望它那么自动化。我们想要控制哪些应用程序获得更新。接下来,我们考虑使用yiic将存在于代码库中并可以运行 shellgit pull脚本的命令。安全是整个事情的重中之重。

如果我们创建一个 yiic 类来处理git具有从控制器到命令进行身份验证的安全令牌层的已定义命令,您是否预见到安全问题yiic?也许有人做过类似的事情,并且可以对他们的方法和问题有所了解?

4

1 回答 1

1

我创建了一个管理屏幕,我可以轻松地让每个用户从那里的个人开发环境中的分支切换(无需访问服务器)。我通过exec在 PHP 中使用并使用 git 客户端挂钩(合并后)https://git-scm.com/book/en/v2/Customizing-Git-Git-Hooks来更新所有文件夹和文件的权限(您无法确定它们在拉动后是否正确)。对于合并等,我使用 bitbucket API。

对于我们的现场环境和预现场环境,我们使用 deploybot.com。如果某个分支被更新,这将上传文件。pre-live 环境会自动更新。对于现场环境,我必须按下一个按钮(将自动执行此操作,以便在周一早上上班前使用 API 完成)。如果只是拉动,我会使用这样的服务。虽然它不拉,但上传/删除新的、更改的或删除的文件。然后,您可以在管理面板中添加一个按钮,该按钮进行 api 调用,允许 deploybot 部署代码。它更简单,免费或非常便宜(取决于您的需要)

关于安全。我想这将取决于您的管理屏幕和 github 帐户的安全性。如果人们可以访问您的 github 代码,他们可以更改您的实时代码,但这始终是一个“问题”。如果他们可以访问您的管理屏幕,我猜您有更大的问题,然后他们有能力提取代码。

于 2015-10-23T07:08:03.680 回答