Как установить Oracle Java 7 в экземпляр Amazon Elastic Beanstalk

Кто-нибудь придумал хорошую конфигурацию script для установки Oracle Java 1.7 в экземпляр Elastic Beanstalk, используя конфигурационные файлы, хранящиеся в .ebextensions. Я использую версию эластичного бобового стежка tomcat7, и я смог установить openJDK с yum, используя следующее:

packages:
  yum:
    java-1.7.0-openjdk: []
    java-1.7.0-openjdk-devel: []

commands:
  use_java7:
    command: alternatives --set java /usr/lib/jvm/jre-1.7.0-openjdk.x86_64/bin/java

Как бы то ни было, я бы хотел использовать Oracle Java 1.7, а не OpenJDK, а yum не имеет в нем репо.

Ответ 1

попробуйте этот файл конфигурации

files:
  "/home/ec2-user/install-oracle-jdk.sh":
    mode: "000755"
    owner: ec2-user
    group: ec2-user
    content: |
      #!/usr/bin/env bash
      wget -O jdk-7u25-linux-x64.rpm --no-cookies --no-check-certificate --header 'Cookie:gpw_e24=http://www.oracle.com; oraclelicense=accept-securebackup-cookie' 'http://download.oracle.com/otn-pub/java/jdk/7u51-b13/jdk-7u51-linux-x64.rpm'      
      rpm -Uvh /home/ec2-user/jdk-7u25-linux-x64.rpm
      alternatives --install /usr/bin/java java /usr/java/default/bin/java 3
      alternatives --set java /usr/java/default/bin/java

commands:
  execute-install-oracle-jdk-script:
    command: ./install-oracle-jdk.sh
    cwd: /home/ec2-user

Ответ 2

Вы можете поочередно устанавливать его, как обычно, и использовать этот ami в качестве своего ami для создания новых экземпляров ec2.

Ответ 3

Принятый ответ больше не работает, его устаревший. Это сработало для меня:

# Install Oracle JDK
rpm --erase --nodeps java-1.6.0-openjdk java-1.6.0-openjdk-devel
rpm -Uvh .ebextensions/jdk-6u45-linux-amd64.rpm
/usr/sbin/alternatives --install /usr/bin/java java /usr/java/default/bin/java 3
/usr/sbin/alternatives --set java /usr/java/default/bin/java
/usr/sbin/alternatives --install /usr/bin/java_sdk java_sdk /usr/java/default/bin/java 3
/usr/sbin/alternatives --set java_sdk /usr/java/default/bin/java

Это для java 6, так как мне это нужно. Кроме того, jdk, загруженный из oracle, на самом деле является файлом bin (оракул пользовательский sh script extractor), поэтому я сделал это, я загрузил файл bin из oracle, извлек его, чтобы получить RPM, а затем включил RPM внутри ebextensions.

Просто включите sh script для запуска в файле конфигурации ebextensions (config google ebextenions, если вы не уверены).

Надеюсь, это поможет кому-то.