3

由于我想安装 Jenkins(前 Hudson)以在 AWS Beanstalk 上运行我的持续集成流程,我需要一个自定义 AMI,因为必须为 Jenkins 更改 Tomcat 和 Linux 中的一些参数

我运行安装和自定义最初由 Beanstalk 启动的实例的过程,直到结束,Jenkins 的工作就像一个魅力。

但是,我不能做的是重用我在自定义结束时生成的 AMI:BeansTalk 完成的运行状况检查没有看到 EC2 实例,尽管 Beanstalk 启动了它并且工作正常。

为了理解我的问题,我将失败的过程简化为以下内容:

  • a) 我根据 Amazon 提供的示例创建了一个新的 BT 应用程序/环境(我拥有的唯一参数是用于 SSH 我的 EC2 实例的密钥对)
  • b) 当EC2实例启动时,我使用EC2来刷AMI
  • c) 我通过将原始 AWS Ami (id: 100fff79 - Tomcat 6 64 bits) 更改为我在 (b) 中生成的 1 来修改 BT 环境配置
  • d) 当我更改 ami id 时,BT 会重建
  • e) 重建重新启动 EC2 实例。
  • f)它开始正常(可以 ssh 到它)但是健康检查失败并且我的环境变成红色状态。

有人可以复制这个过程并告诉我我做错了什么吗?(我想使用 (b) 的 AMI 作为我的 Jenkins 定制的起点。?

我可以提供的其他信息:当 ssh-ing 到 EC2 实例时,用于 apache、java、thin 和 bluepilld 的 grep,如https://forums.aws.amazon.com/thread.jspa?threadID=59027&tstart底部所述=25表明 4 个预期进程消失了。因此,失败。

请帮忙 !

问候

迪迪埃

4

3 回答 3

5

将回答我自己的问题:为 Beanstalk 获取可工作的自定义 ami 的正确方法不是尝试刷新由 Beanstalk 启动的正在运行的实例,而是启动 Beanstalk 的模板 ami(在我的情况下,Tomcat 6 64 位的 ami-100fff79)从 EC2 控制台并从那里对其进行自定义,刷新它,你就完成了。

然后,您可以通过将 ami 更改为新的来为您的 BT 环境“编辑配置”,它工作正常。

问候迪迪埃

于 2011-02-19T08:58:03.763 回答
1

如果您提供更多详细信息,这是我计划在 Beanstalker 0.3.0 版中使用的一个功能,这是我的一组 Maven 插件,用于自动将 Maven 部署到 Elastic Beanstalk 和 Elastic MapReduce。可在http://beanstalker.ingenieux.com.br/获得

实际上,占位符就在那里,但我还没有对此进行全面测试。你愿意尝试提供帮助和建议吗?

于 2011-06-27T07:10:40.803 回答
1

只要在构建新 AMI 之前删除实例上的 /opt/elasticbeanstalk/srv/hostmanager/db/hostmanager.db,您就应该能够从正在运行的实例创建自定义 AMI。我一直看到人们说“这无法完成,您需要在 Elastic Beanstalk 之外启动一个干净的实例”,这就是废话。我已经做到了。

我为自定义安装所做的完整记录在这里:http ://stormerider.com/blog/2012/08/16/building-an-ubuntu-ami-with-elastic-beanstalk-support/ ——有些可能不适用于你,有些可能。

于 2012-08-24T18:05:37.960 回答