[英]Using yiic to update application via github
我们有一个用Yii 1.1编写的应用程序,我们维护和控制该应用程序和服务器的各个方面。 它存在于各种服务器上。 我们通过git在本地维护代码库,并发布到我们的GitHub存储库。 当我们推出更新或错误修复时,我们必须进入每个框并一次更新它们。 这只会越来越耗费我们部署的更多应用程序和服务器的时间。
我们希望通过admin部分远程完成git pull
过程。 我们曾考虑过利用GitHub WebHooks功能,但我们不希望它如此自动化。 我们要控制哪些应用程序获取更新。 接下来,我们考虑使用将存在于代码库中并可以运行shell git pull
脚本的yiic
命令。 在整个过程中,安全是头等大事。
如果我们创建一个yiic类来处理已定义的git
命令,并带有从控制器向yiic
命令进行身份验证的安全令牌层,那么您是否会遇到安全问题? 也许有人做了类似的事情,可以对他们的方法和问题有所了解?
我创建了一个管理屏幕,在这里我可以轻松地让每个用户从个人开发环境中的分支切换(无需访问服务器)。 我是通过在PHP中使用exec
以及使用git客户端钩子(合并后)来完成此操作的, https://git-scm.com/book/en/v2/Customizing-Git-Git-Hooks更新所有文件夹和文件的权限(您无法确定它们在拉动之后是否正确)。 对于合并等,我使用bitbucket API。
对于我们的活动环境和活动前环境,我们使用deploybot.com。 如果某个分支被更新,它将上传文件。 实时环境会自动更新。 对于实时环境,我必须按下一个按钮(它将自动执行此操作,因此将在星期一上班之前使用API进行此操作)。 如果只是拉,我会使用这样的服务。 虽然它不拉,但是可以上载/删除新的,更改的或删除的文件。 然后,您可以在管理面板中添加一个按钮,以进行api调用,从而允许deploybot部署代码。 它更简单,免费或非常便宜(取决于您的需求)
关于安全性。 我想这将取决于您的管理屏幕和github帐户的安全性。 如果人们可以访问您的github代码,他们可以更改您的实时代码,但这实际上始终是一个“问题”。 如果他们可以访问您的管理屏幕,我想您有更大的问题,那么他们就可以提取代码。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.