Java Runtime Lifecycle-Management
Das Java Runtime Lifecycle Management umfasst:
- Java-Laufzeit installieren und konfigurieren
- Java-Laufzeit löschen
- Deployment-Regelset verwalten
Java Runtime installieren und konfigurieren
Mit JMS können Sie jedes Oracle JDK auf ausgewählten oder allen verwalteten Instanzen in Ihrer Flotte installieren. Darüber hinaus können Sie Ihre neuen Java-Laufzeiten mit Aktionen nach der Installation weiter konfigurieren.
Für jede unterstützte Plattform können Sie wählen, ob Sie Java Runtime als normales Archiv installieren möchten, das in einen ausgewählten Speicherort im Dateisystem extrahiert wird, oder JMS installiert Oracle JDK, indem das offizielle Oracle JDK-Installationsprogramm für die ausgewählte Plattform ausgeführt wird.
OCI Cloud-Konsole
- Melden Sie sich bei der OCI-Konsole als Administrator an.
- Öffnen Sie das Navigationsmenü, klicken Sie auf Observability and Management, Flotten unter Java Management.
- Wählen Sie Ihre Flotte aus.
- Klicken Sie auf Aktionen, und wählen Sie im Menü die Option Java-Laufzeit installieren.
- Wählen Sie die zu installierende Version aus.
- Klicken Sie auf Weiter.
- Sie haben die Möglichkeit, Java über ein plattformspezifisches JDK-Installationsprogramm zu installieren oder das Java-Archiv herunterzuladen und in einen angegebenen Pfad zu extrahieren. Klicken Sie dazu auf Weiter.
- Klicken Sie auf Java Runtime installieren.
OCI-CLI
- Generieren Sie die Payload für die Installation mit dem folgenden Befehl:
oci jms installation-site-summary add --generate-param-json-input installation-sites
- Bearbeiten Sie die Payload-JSON-Datei. Beispiel:
[ { "artifactContentType": "JDK", "managedInstanceId": "$MANAGED_INSTANCE_OCID", "releaseVersion": "21" } ]
- Führen Sie den folgenden Befehl aus:
oci jms installation-site-summary add --fleet-id $FLEET_OCID --installation-sites file://installation-sites.json
Neue Java Runtime konfigurieren
Jede Installation von Java Runtime kann mit mehreren Optionen für verbesserte Sicherheit, Netzwerkkonfiguration oder Protokollierung konfiguriert werden. Eine detaillierte Beschreibung aller Konfigurationsoptionen finden Sie unter Java-Aktionen nach der Installation. Beispiel: Sie können dieses Feature für die globale Proxykonfiguration der Java-Laufzeitumgebung in Ihrer Umgebung verwenden.
Sie können die Aktion entweder über die OCI Cloud-Konsole oder über die OCI-CLI ausführen.
OCI Cloud-Konsole
- Melden Sie sich bei der OCI-Konsole als Administrator an.
- Öffnen Sie das Navigationsmenü, klicken Sie auf Observability and Management, Flotten unter Java Management.
- Wählen Sie Ihre Flotte aus.
- Klicken Sie auf Aktionen, und wählen Sie im Menü die Option Lebenszyklusmanagementeinstellungen für Java-Laufzeit konfigurieren aus.
- Konfigurieren Sie Ihre Anforderungen im Abschnitt Java-Aktionen nach der Installation.
- Klicken Sie auf Speichern.
- Jetzt können Sie den oben beschriebenen Java-Laufzeitinstallationsprozess starten und im zweiten Schritt des Dialogfelds Ihre neu konfigurierten Aktionen nach der Installation bestätigen.
OCI-CLI
- Generieren Sie die LCM-Konfiguration für die Flotte mit dem folgenden Befehl:
oci jms fleet-advanced-feature-configuration update --generate-param-json-input lcm
- Aktualisieren Sie die Datei mit Ihren Änderungen. Beispiel:
{ "isEnabled": true, "postInstallationActions": { "proxies": { "httpProxyHost": "my-awesome-company-proxy", "httpProxyPort": 8080, "httpsProxyHost": "my-awesome-company-proxy", "httpsProxyPort": 8080, "useSystemProxies": false } } }
- Laden Sie die Flottenkonfiguration hoch:
oci jms fleet-advanced-feature-configuration update --lcm file://lcm-update.json --fleet-id $FLEET_OCID
- Aktualisieren Sie Ihre Installations-Payload-Datei. Beispiel:
[ { "artifactContentType": "JDK", "managedInstanceId": "$MANAGED_INSTANCE_OCID", "releaseVersion": "21" } ]
- Führen Sie das Installationsskript aus:
oci jms installation-site-summary add \ --fleet-id "$FLEET_OCID" \ --installation-sites file://installation-sites.json \ --post-installation-actions '["SETUP_HTTP_PROXY","SETUP_HTTPS_PROXY"]'
JRE löschen
JMS bietet eine Liste der erkannten Java-Laufzeiten aller verwalteten Instanzen in der Flotte. Der Flottenadministrator hat die Möglichkeit, jede Oracle Java-Laufzeit von der ausgewählten verwalteten Instanz oder von allen verwalteten Instanzen innerhalb einer JMS-Flotte zu entfernen.
OCI Cloud-Konsole
- Melden Sie sich bei der OCI-Konsole als Administrator an.
- Öffnen Sie das Navigationsmenü, klicken Sie auf Observability and Management, Flotten unter Java Management.
- Wählen Sie Ihre Flotte aus.
- Klicken Sie auf den Abschnitt Java-Laufzeiten, und wählen Sie Oracle Java Runtime aus.
- Klicken Sie auf Löschen.
- Klicken Sie zur Bestätigung erneut auf Löschen.
OCI-CLI
- Generieren Sie die Payload zum Löschen mit dem folgenden Befehl:
oci jms installation-site-summary remove --generate-param-json-input installation-sites
- Installationsschlüssel für die angegebene Flotte und Java-Version abrufen:
oci jms installation-usage summarize --fleet-id $FLEET_OCID --jre-version $ORACLE_JDK_VERSION
- Rufen Sie verwaltete Instanz-OCIDs für die angegebene Flotte mit installierter Java-Version ab:
oci jms managed-instance-usage summarize --fleet-id $FLEET_OCID --jre-version $ORACLE_JDK_VERSION
Hinweis:
Sie können verwaltete Instanzen nur für eine bestimmte Plattform mit dem zusätzlichen Parameter--os-family
finden. - Kombinieren Sie die Installationsschlüssel mit verwalteten Instanzen, Installationsschlüssel und verwalteter Instanz sind plattformspezifisch. Beispiel:
[ { "installationKey": "$JAVA_RUNTIME_INSTALL_KEY_LINUX", "managedInstanceId": "$LINUX_MANAGED_INSTANCE_OCID" }, { "installationKey": "$JAVA_RUNTIME_INSTALL_KEY_WINDOWS", "managedInstanceId": "$WINDOWS_MANAGED_INSTANCE_OCID" } ]
- Nachdem Sie die Liste der Installationsschlüssel- und verwalteten Instanzpaare abgeschlossen haben, speichern Sie die
installation-sites
-Konfiguration in einer Datei namensinstallation-sites.json
. - Führen Sie den folgenden Befehl aus:
oci jms installation-site-summary remove --fleet-id $FLEET_OCID --installation-sites file://installation-sites.json
Deployment-Regelset verwalten
Ein Deployment-Regelset ist eine Gruppe von Regeln und Policys, mit denen die Ausführung von Java-Applets und Webanwendungen sicher und anpassbar gesteuert und verwaltet wird.
Bei JMS ist die Verwaltung einer JAR-Datei für Deployment-Regelsets eine einfache Aufgabe. Der Flottenadministrator konfiguriert sie, indem er eine signierte JAR-Datei mit Deployment-Regeln hochlädt. Anschließend verteilt JMS die DRS-Datei an alle verwalteten Instanzen in der Flotte, sofern anwendbar.
Hinweis:
Das Feature "Deployment-Regelset verwalten" ist auf Java 8-Laufzeiten beschränkt.OCI Cloud-Konsole
- Melden Sie sich bei der OCI-Konsole als Administrator an.
- Öffnen Sie das Navigationsmenü, klicken Sie auf Observability and Management, Flotten unter Java Management.
- Wählen Sie Ihre Flotte aus.
- Klicken Sie auf Aktionen, und wählen Sie Einstellungen für das Java Runtime Lifecycle Management konfigurieren aus.
- Laden Sie im Dateiabschnitt Deployment-Regelset die JAR-Datei für das Deployment-Regelset hoch.
- Klicken Sie auf Hochladen.
Deployment-Regelset verwalten
- Melden Sie sich bei der OCI-Konsole als Administrator an.
- Öffnen Sie das Navigationsmenü, klicken Sie auf Observability and Management, Flotten unter Java Management.
- Wählen Sie Ihre Flotte aus.
- Klicken Sie auf Aktionen, und wählen Sie Deployment-Regelset verwalten aus.
- Klicken Sie auf DRS-Bereich verteilen oder entfernen.
- Klicken Sie auf Senden.
OCI-CLI
- Laden Sie die DRS-Datei mit dem folgenden Befehl hoch:
oci os object put --namespace $NAMESPACE --bucket-name $BUCKET_NAME --file DeploymentRuleSet.jar
- Validieren Sie sie mit JMS:
oci jms fleet create-drs-file --namespace $NAMESPACE --bucket-name $BUCKET_NAME --drs-file-name DeploymentRuleSet.jar --fleet-id $FLEET_OCID
- DRS-Datei verteilen:
oci jms fleet enable-drs --fleet-id $FLEET_OCID
Die erweiterte DRS-Featurefunktionalität hängt davon ab, dass die DRS-bezogene Payload von verwalteten Instanzen an das OCI Inventory-Logobjekt gesendet wird. Beispiel für eine DRS-Payload:
{
"datetime": 1749559306604,
"logContent": {
"id": "117dffe5-defd-4d62-8d4c-b4b3b5ace029",
"time": "2025-06-10T12:41:46.604Z",
"oracle": {
"compartmentid": "ocid1.compartment.oc1..compartment-id",
"ingestedtime": "2025-06-10T12:41:46.604Z",
"loggroupid": "ocid1.loggroup.oc1.eu-frankfurt-1.log-group-id",
"logid": "ocid1.loggroup.oc1.eu-frankfurt-1.log-id",
"tenantid": "ocid1.tenancy.oc1..tenant-id"
},
"source": "ocid1.instance.oc1.eu-frankfurt-1.instance-id",
"specversion": "1.0",
"subject": "Oracle JMS Plugin",
"type": "jms.drs.scan.log",
"data": {
"data": {
"checksum": "405ca339f3e394a5cee7f618074f752a7c341bae2d9841155a23858d96d7696a",
"fleetId": "ocid1.jmsfleet.oc1.eu-frankfurt-1.fleet-id",
"managedInstanceId": "ocid1.instance.oc1.eu-frankfurt-1.instance-id",
"osArch": "amd64",
"osName": "Linux",
"osVersion": "5.15.0-306.177.4.el9uek.x86_64"
},
"datacontenttype": "application/json",
"dataschema": "1.0",
"id": "117dffe5-defd-4d62-8d4c-b4b3b5ace029",
"source": "ocid1.instance.oc1.eu-frankfurt-1.instance-id",
"specversion": "1.0",
"time": "2025-06-10T12:41:46.601Z",
"type": "jms.drs.scan.log"
}
},
"regionId": "eu-frankfurt-1"
}
Beispiel
Angenommen, Sie möchten die Oracle JDK 21-Installation mit einer bestimmten HTTP/HTTPS-Proxykonfiguration automatisieren. Im Folgenden finden Sie ein Beispiel aus der Praxis, das JMS verwendet, um diese Automatisierung zu erreichen.
Sehen wir uns zunächst ein einfaches Skript an und definieren die erforderlichen Parameter im Abschnitt "Konfigurationsvariablen".
#!/usr/bin/env bash
# configuration variables
JAVA_VERSION=21
FLEET_OCID=ocid1.jmsfleet.oc1.eu-frankfurt-1.amaaaaaaptiaquqa2qxxkco6hrguz7nyug2hcpgikhe5gz4d7uy6j6ilbtta
MANAGED_INSTANCE_OCID=ocid1.instance.oc1.eu-frankfurt-1.antheljtptiaquqcrjmnu7mxbjthm2jm5qzryu7xy4w27rfo56nxf4uwv6pq
PROXY_HOST=my-awesome-company-proxy
PROXY_PORT=8080
# check LCM configuration
FLEET_LCM_CONFIGURED=$(oci jms fleet-advanced-feature-configuration get --fleet-id $FLEET_OCID | jq '.data.lcm."is-enabled"')
# enable LCM configuration if needed
if [ "$FLEET_LCM_CONFIGURED" == "false" ]; then
cat > lcm-proxy.json << EOF
{
"isEnabled": true,
"postInstallationActions": {
"proxies": {
"httpProxyHost": "$PROXY_HOST",
"httpProxyPort": $PROXY_PORT,
"httpsProxyHost": "$PROXY_HOST",
"httpsProxyPort": $PROXY_PORT,
"useSystemProxies": false
}
}
}
EOF
echo Uploading new LCM configuration for fleet $FLEET_OCID
cat lcm-proxy.json
# upload the LCM configuration to JMS without confirmation
oci jms fleet-advanced-feature-configuration update --force --lcm file://lcm-proxy.json --fleet-id $FLEET_OCID
rm lcm-proxy.json
fi
# JDK installation payload
cat > jdk-install-payload.json << EOF
[
{
"artifactContentType": "JDK",
"releaseVersion": "$JAVA_VERSION",
"managedInstanceId": "$MANAGED_INSTANCE_OCID",
}
]
EOF
# initiate installation on specified managed instance
WORK_REQUEST_OCID=$(oci jms installation-site-summary add \
--fleet-id "$FLEET_OCID" \
--installation-sites file://jdk-install-payload.json \
--post-installation-actions '["SETUP_HTTP_PROXY","SETUP_HTTPS_PROXY"]' | jq -r '."opc-work-request-id"')
echo Installation work request OCID: $WORK_REQUEST_OCID
rm jdk-install-payload.json
# additionally you can add your own logic to check if work request is finished
# sleep 600
# oci jms work-request get --work-request-id "$WORK_REQUEST_OCID" | jq .data.status
Im nächsten Schritt führen wir das Skript oben aus und warten, bis es abgeschlossen ist. Nach Abschluss der Installationsarbeitsanforderung können wir prüfen, ob die Proxykonfiguration für das neu installierte JDK 21 mit der gewünschten Konfiguration festgelegt wurde:
oci jms work-request-log-entry list-work-request-logs --work-request-id "$WORK_REQUEST_OCID" | jq -r '.data.items[].message'
{"artifactType":"JDK","code":"COMMAND_COMPLETED_WITHOUT_ERRORS","jrePath":"/usr/lib/jvm/jdk-21-oracle-x64/","jreVersion":"21","managedInstance":"jms-demo","metadata":{"attempt":1,"maximumAttempts":3},"operation":"LCM_OPERATION","osType":"Linux","requestType":"ARTIFACTINSTALL"}
{"artifactType":"JDK","code":"POST_INSTALL_ACTIONS_SUCCESS","jrePath":"/usr/lib/jvm/jdk-21-oracle-x64/","jreVersion":"21","managedInstance":"jms-demo","metadata":{},"operation":"LCM_OPERATION","osType":"Linux","requestType":"ARTIFACTINSTALL"}
{"artifactType":"JDK","code":"POST_INSTALL_ACTIONS_EXECUTING","jrePath":"/usr/lib/jvm/jdk-21-oracle-x64/","jreVersion":"21","managedInstance":"jms-demo","metadata":{},"operation":"LCM_OPERATION","osType":"Linux","requestType":"ARTIFACTINSTALL"}
{"artifactType":"JDK","code":"POST_INSTALL_ACTIONS_PRESENT","jrePath":"/usr/lib/jvm/jdk-21-oracle-x64/","jreVersion":"21","managedInstance":"jms-demo","metadata":{},"operation":"LCM_OPERATION","osType":"Linux","requestType":"ARTIFACTINSTALL"}
{"artifactType":"JDK","code":"INSTALL_SUCCESS","jrePath":"/usr/lib/jvm/jdk-21-oracle-x64/","jreVersion":"21","managedInstance":"jms-demo","metadata":{},"operation":"LCM_OPERATION","osType":"Linux","requestType":"ARTIFACTINSTALL"}
{"artifactType":"JDK","code":"COMMAND_RUNNING","jrePath":null,"jreVersion":"21","managedInstance":"jms-demo","metadata":{"attempt":1,"maximumAttempts":3},"operation":"LCM_OPERATION","osType":"Linux","requestType":"ARTIFACTINSTALL"}
{"artifactType":"JDK","code":"COMMAND_CREATED","jrePath":null,"jreVersion":"21","managedInstance":"jms-demo","metadata":{},"operation":"LCM_OPERATION","osType":"Linux","requestType":"ARTIFACTINSTALL"}
# verification on the managed instance:
[root@jms-demo ~]# egrep '^https?\.proxy' /usr/lib/jvm/jdk-21-oracle-x64/conf/net.properties
http.proxyHost=my-awesome-company-proxy
http.proxyPort=8080
https.proxyHost=my-awesome-company-proxy
https.proxyPort=8080