Добавить частный IP-адрес в качестве опции JVM в ebextension - PullRequest
0 голосов
/ 01 февраля 2019

Я использую Tomcat в упругом стебле AWS.Мне нужно добавить опцию JVM, которая включает частный IP-адрес любого экземпляра EC2, на котором выполняется код.

Мне нужно добавить это свойство, чтобы включить JMX: -Djava.rmi.server.hostname=1.2.3.4

I 'Мы пробовали эти разные способы, но он просто добавляет литеральную строку в качестве свойства env.Он отлично работает, если я жестко кодирую 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)

1 Ответ

0 голосов
/ 06 февраля 2019

Мне удалось заставить его работать, добавив следующее расширение:

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 будетразвертывается.

...