在 ebextension 中添加私有 IP 地址作为 JVM 选项
Add private IP address as JVM option in ebextension
我 运行 Tomcat 在 AWS elastic beanstalk 中。我需要添加一个 JVM 选项,其中包括代码所在的任何 EC2 实例的私有 IP 地址 运行。
我需要添加此 属性 以启用 JMX:-Djava.rmi.server.hostname=1.2.3.4
我尝试了这些不同的方法,但它只是将文字字符串添加为环境 属性。如果我硬编码 IP 地址,它工作得很好,但它是一个自动缩放设置,所以 IP 总是不同的。
option_settings:
aws:elasticbeanstalk:application:environment:
java.rmi.server.hostname: { "Fn::GetAtt" : [ "AWS::EC2::Instance", "PrivateIp"] }
java.rmi.server.hostname: '`Fn::GetAtt: [ AWS::EC2::Instance, PrivateIp ]`'
如果我不能在 option_settings
中执行此操作,是否可以创建一个脚本来附加到 CATALINA_OPTS
变量?我试过了:
"/opt/elasticbeanstalk/hooks/appdeploy/post/HL_01_add_catalina_opts.sh":
mode: "000771"
content : |
#!/bin/bash
CATALINA_OPTS="${CATALINA_OPTS} -Djava.rmi.server.hostname=$(hostname -I)
我可以通过添加这个 ebextension 让它工作:
container_commands:
add_catalina_opts:
command: echo -e "\nCATALINA_OPTS=\"${CATALINA_OPTS} -Djava.rmi.server.hostname=$(hostname -I)\"\n" >> /usr/share/tomcat8/conf/tomcat8.conf
tomcat8.conf 文件在 tomcat 启动脚本中执行,因此可以在部署 tomcat 之前将其他属性附加到该文件。
我 运行 Tomcat 在 AWS elastic beanstalk 中。我需要添加一个 JVM 选项,其中包括代码所在的任何 EC2 实例的私有 IP 地址 运行。
我需要添加此 属性 以启用 JMX:-Djava.rmi.server.hostname=1.2.3.4
我尝试了这些不同的方法,但它只是将文字字符串添加为环境 属性。如果我硬编码 IP 地址,它工作得很好,但它是一个自动缩放设置,所以 IP 总是不同的。
option_settings:
aws:elasticbeanstalk:application:environment:
java.rmi.server.hostname: { "Fn::GetAtt" : [ "AWS::EC2::Instance", "PrivateIp"] }
java.rmi.server.hostname: '`Fn::GetAtt: [ AWS::EC2::Instance, PrivateIp ]`'
如果我不能在 option_settings
中执行此操作,是否可以创建一个脚本来附加到 CATALINA_OPTS
变量?我试过了:
"/opt/elasticbeanstalk/hooks/appdeploy/post/HL_01_add_catalina_opts.sh":
mode: "000771"
content : |
#!/bin/bash
CATALINA_OPTS="${CATALINA_OPTS} -Djava.rmi.server.hostname=$(hostname -I)
我可以通过添加这个 ebextension 让它工作:
container_commands:
add_catalina_opts:
command: echo -e "\nCATALINA_OPTS=\"${CATALINA_OPTS} -Djava.rmi.server.hostname=$(hostname -I)\"\n" >> /usr/share/tomcat8/conf/tomcat8.conf
tomcat8.conf 文件在 tomcat 启动脚本中执行,因此可以在部署 tomcat 之前将其他属性附加到该文件。