Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/amazon-web-services/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Amazon web services 在ec2 ubuntu实例上自动化Git拉进程_Amazon Web Services_Amazon Ec2_Ubuntu 12.04 - Fatal编程技术网

Amazon web services 在ec2 ubuntu实例上自动化Git拉进程

Amazon web services 在ec2 ubuntu实例上自动化Git拉进程,amazon-web-services,amazon-ec2,ubuntu-12.04,Amazon Web Services,Amazon Ec2,Ubuntu 12.04,我正在运行几个ubuntu ec2实例,我想运行一个自动化脚本,每当从AMI启动一个新实例时,它就会从Github中提取代码。现在的问题是,我正在sshing到服务器,运行命令git pull origin master,它将请求密码密钥 如何使此过程自动化?因此,从AMI启动新实例后,此脚本应: 跑 拉出代码和子模块 创建两个文件并对其进行配置 请帮我实现它 谢谢你的ubuntu实例的用户密码访问。如果需要多个实例,请复制此特定实例。现在,您不需要密钥访问。如果您需要自动化该实例中的流程,

我正在运行几个ubuntu ec2实例,我想运行一个自动化脚本,每当从AMI启动一个新实例时,它就会从Github中提取代码。现在的问题是,我正在
ssh
ing到服务器,运行命令
git pull origin master
,它将请求密码密钥

如何使此过程自动化?因此,从AMI启动新实例后,此脚本应:

  • 拉出代码和子模块
  • 创建两个文件并对其进行配置
请帮我实现它


谢谢你的ubuntu实例的用户密码访问。如果需要多个实例,请复制此特定实例。现在,您不需要密钥访问。如果您需要自动化该实例中的流程,请cron它或通过ssh将脚本发送到该实例,并让cron查找并运行它。

这可能需要一些时间和配置,但这可能会让您走上正确的道路

首先,设置ssh密钥,这样您就可以自动从repo中提取,而无需密码。概述如下:

接下来,创建一个启动脚本,从Github发出“pull”命令。在这里:

然后保存您的AMI,当您启动一个新的ec2ami时,脚本应该运行,并引入您的Github更改


还要注意的是,确保gits remote path使用SSH,如果是HTTPS,它将始终要求输入密码。

您最好利用Ubuntu在其规范映像中使用CloudInit这一事实

使用CloudInit,您可以将脚本(即shell脚本)作为EC2用户数据传递到各个启动阶段执行

您可以很容易地从这样的脚本执行GIT命令行序列。他提供了文档链接,其中包括示例


我正在查看cloudinit,看起来很有趣,我的疑问是,当我运行git pull时,有人问我密码,我如何绕过这个密码并从repo中提取代码???@JeevanDongre你是在使用Github还是在git repo服务上?如果你想用SSH实现这一点,那么你需要将私钥放在用户数据中AFAIK-这不是一个好方法生产环境的安全实践