繁体   English   中英

如何从 EB 获取我的 EC2 实例以停止重新安装 java 7?

[英]How do I get my EC2 instance from EB to stop re-installing java 7?

所以,基本上我有一个由 Elastic Beanstalk 创建的 EC2 实例,大约每周我都会通过 SSH 连接到它来卸载 java 7 并安装 java 8。弹性 beanstalk 环境是为 Node.js 设置的,但我有一个单独的需要实例化的java程序。 我尝试在 rc.local 中放置安装 java 8 的命令,但这根本不起作用。 该文件现在恢复到其默认状态。 有什么地方可以将实例设置为默认为 Java 8? 有没有办法只保留我通过 SSH 安装的安装? 请帮忙,我的网站因此而不断下降,我不确定该怎么做,谷歌也没有太大帮助。

.ebextensions 是我这样做的方式: https ://docs.aws.amazon.com/elasticbeanstalk/latest/dg/ebextensions.html

.ebextensions 在任何时候创建 ec2 实例时运行; 所以编写java 7的卸载和java 8的安装脚本,你很高兴。

更多信息...

听起来您明白,EB 会时不时地自动销毁您的 ec2 实例并替换它。 通常每周进行一次; 查看 EB 控制台 -> 配置 -> 托管更新。 你可能会发现它说

Managed updates: enabled

Weekly update window: [some date/time here]

这是一件好事。 EB 会自动为您安装重要的安全更新和其他更新。 当它这样做时,它可能会替换您的 ec2 实例。 这意味着:您手动安装 java 8 的 ec2 实例被销毁,并创建了一台全新的机器。 这台全新的机器上安装了默认的 java 7……现在您再次必须手动通过 SSH 连接到这个新实例并安装 8。

您需要的是一个脚本,该脚本将在 EB 决定为您创建的所有新 ec2 实例上运行; 每次手动通过 SSH 连接到 ec2 实例时,此脚本将遵循您正在执行的步骤。 请注意,即使您关闭了托管更新,ec2 实例仍有可能(甚至很可能)被破坏。 这是一个拥有良好基础设施设计的租户; 如果 ec2 实例因任何原因出现问题,您的基础设施应自动在后台:

1.) 启动一个新的 ec2 实例

2.) 提供新的 ec2 实例

3.) 将您的网站流量重新路由到新实例

4.) 停用旧的 ec2 实例

因此,在 .ebextensions 文件中,创建一个脚本,该脚本将卸载 java 7 并安装 java 8,您将大功告成。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM