当代码仓库不在 git 中时,如何在 AWS 网络服务器中部署代码?
Posted
技术标签:
【中文标题】当代码仓库不在 git 中时,如何在 AWS 网络服务器中部署代码?【英文标题】:How to deploy code in AWS webserver when code repo is NOT in git? 【发布时间】:2016-08-13 10:53:23 【问题描述】:最近我参与了一个项目,我在 AWS 中设置了 LAMP 堆栈,并帮助团队构建其他基础设施。根据公司政策,我们需要每 60 天创建一个新实例,获取最新的 ami 并杀死前一个。为此,我要求开发团队将 php 代码移至 git repo。这将帮助我自动化构建,以便我可以直接从 git 中提取代码。但是,他们说出于某种许可原因,他们不想在 git 中移动代码,因为他们使用的代码是从 phpgrid(供应商)购买的。这对我来说有点奇怪......无论如何,如果代码不在 git 中,我们如何在 webserver 中自动化代码部署?关于最佳实践的任何想法?不想从某人的机器上 ftp 代码:(
【问题讨论】:
我怀疑他们不希望代码最终出现在公共git
平台上。但是,git
不是 github(或任何其他公共 'git-ish' 服务。您可以在企业架构中安全的地方构建自己的 git 服务器,并将其用作 repo(即满足所有所谓的要求)保护知识产权)。
他们自己的代码应该放在 Git 中。任何外部依赖项都应由它们在其引用中自动解决。不过,您仍然可以将外部代码放在那里。这没有问题。如果您使用的是第三方代码,那么无论如何您都应该获得适当的许可才能使用它,因此您是否将该代码复制到您自己的 git 存储库中也没关系。
尝试 s3 并在启动新的 ec2 实例时使用用户数据?
谢谢大家!我最终说服了他们使用私有存储库
【参考方案1】:
AWS Code Deploy 服务专为此类代码部署而构建。
AWS CodeDeploy 是 AWS 部署服务系列的一部分, 包括 AWS Elastic Beanstalk、AWS CodePipeline、AWS CloudFormation、 和 AWS OpsWorks。 AWS CodeDeploy 协调应用程序部署 到 Amazon EC2 实例、本地实例或两者。 (现场 实例是不是 Amazon EC2 实例的物理设备。)
应用程序可以包含可部署的内容,例如代码、Web 和 配置文件、可执行文件、包、脚本等。 AWS CodeDeploy 从 Amazon S3 存储桶和 GitHub 部署应用程序 存储库。
您真的可以使用任何存储库。您只需要一个过程将代码从其存储库移动到指定的 S3 存储桶。代码可以在任何地方:SVN、本地等。只需将其压缩,移动到 S3 并注册修订并根据需要进行部署。 不需要 GIT 存储库,但 CodeDeploy 直接支持它。
我们将流程与我们的持续集成服务器 Jenkins 集成,因此所有构建都作为 CodeDeploy-ready 修订版发送到 S3。
有no cost for using this feature when deploying to AWS instances - 免费!
【讨论】:
感谢分享。虽然我最终说服了他们使用私有存储库,但我将尝试代码部署以上是关于当代码仓库不在 git 中时,如何在 AWS 网络服务器中部署代码?的主要内容,如果未能解决你的问题,请参考以下文章