2

我正在运行几个 ubuntu ec2 实例,我想运行一个自动化脚本,只要从 AMI 启动一个新实例,它就会从 Github 中提取代码。事情是目前我正在ssh连接服务器并运行命令git pull origin master,它会要求输入密码密钥。

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

  • 拉取代码和子模块
  • 创建几个文件并配置它

请帮助我实现它。

谢谢

4

3 回答 3

7

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

首先,设置您的 ssh 密钥,以便您可以自动从 repo 中提取,而无需密码。此处概述:https ://help.github.com/articles/generating-ssh-keys

接下来,创建一个启动脚本以从 Github 发出“pull”命令。在这里:https ://help.ubuntu.com/community/UbuntuBootupHowto

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

还要注意,确保 gits 远程路径使用 SSH,如果是 HTTPS,它总是会要求输入密码。

于 2012-12-17T14:02:55.437 回答
1

最好的办法是利用 Ubuntu 在其规范映像中利用 CloudInit 的事实。

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

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

https://help.ubuntu.com/community/CloudInit

于 2012-12-17T21:00:15.103 回答
0

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

于 2012-12-17T14:01:32.863 回答