Gestione del ciclo di vita Java Runtime
La gestione del ciclo di vita di Java Runtime include:
- Installazione e configurazione di un ambiente Java Runtime
- Elimina un ambiente Java Runtime
- Gestisci set di regole di distribuzione
Installazione e configurazione di Java Runtime
JMS consente di installare qualsiasi JDK Oracle su qualsiasi istanza gestita selezionata o su tutte le istanze gestite all'interno della flotta. Inoltre, puoi configurare ulteriormente i tuoi nuovi ambienti Java Runtime con azioni successive all'installazione.
Per ogni piattaforma supportata è possibile scegliere se si desidera installare Java Runtime come archivio normale, che verrà estratto in una posizione selezionata nel file system, oppure JMS installerà Oracle JDK eseguendo il programma di installazione JDK ufficiale di Oracle per la piattaforma selezionata.
Console cloud OCI
- Connettersi a OCI Console come amministratore.
- Aprire il menu di navigazione, fare clic su Osservabilità e gestione, quindi su Fleets in Java Management.
- Selezionare la flotta.
- Fare clic su Azioni e selezionare Installa Java Runtime dal menu.
- Selezionare la versione da installare.
- Fare clic su Successivo.
- È possibile installare Java tramite il programma di installazione JDK specifico della piattaforma o scaricare l'archivio Java ed estrarlo in un percorso specificato, continuare facendo clic su Successivo.
- Fare clic su Installa Java Runtime.
OCI CLI
- Generare il payload per l'installazione con il comando seguente:
oci jms installation-site-summary add --generate-param-json-input installation-sites
- Modificare il file json del payload, ad esempio:
[ { "artifactContentType": "JDK", "managedInstanceId": "$MANAGED_INSTANCE_OCID", "releaseVersion": "21" } ]
- Eseguire il seguente comando:
oci jms installation-site-summary add --fleet-id $FLEET_OCID --installation-sites file://installation-sites.json
Configurare il nuovo ambiente Java Runtime
Ogni installazione di Java Runtime può essere configurata con diverse opzioni per migliorare la sicurezza, la configurazione di rete o il log. Per una descrizione dettagliata di tutte le opzioni di configurazione, vedere Azioni di postinstallazione di Java. Ad esempio, è possibile utilizzare questa funzione per la configurazione proxy globale di Java Runtime nell'ambiente.
È possibile eseguire l'azione dalla console cloud OCI o dall'interfaccia CLI OCI.
Console cloud OCI
- Connettersi a OCI Console come amministratore.
- Aprire il menu di navigazione, fare clic su Osservabilità e gestione, quindi su Fleets in Java Management.
- Selezionare la flotta.
- Fare clic su Azioni e selezionare Configura impostazioni di gestione del ciclo di vita di Java Runtime dal menu.
- Nella sezione Azioni successive all'installazione di Java, configurare i requisiti.
- Fare clic su Salva.
- Ora è possibile avviare il processo di installazione di Java Runtime descritto in precedenza e nel secondo passo della finestra di dialogo confermare le azioni successive all'installazione appena configurate.
OCI CLI
- Generare la configurazione LCM per la flotta utilizzando il comando seguente:
oci jms fleet-advanced-feature-configuration update --generate-param-json-input lcm
- Aggiornare il file con le modifiche apportate, ad esempio:
{ "isEnabled": true, "postInstallationActions": { "proxies": { "httpProxyHost": "my-awesome-company-proxy", "httpProxyPort": 8080, "httpsProxyHost": "my-awesome-company-proxy", "httpsProxyPort": 8080, "useSystemProxies": false } } }
- Caricare la configurazione della flotta:
oci jms fleet-advanced-feature-configuration update --lcm file://lcm-update.json --fleet-id $FLEET_OCID
- Aggiornare il file del payload di installazione, ad esempio:
[ { "artifactContentType": "JDK", "managedInstanceId": "$MANAGED_INSTANCE_OCID", "releaseVersion": "21" } ]
- Eseguire lo script di installazione:
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"]'
Eliminare un ambiente Java Runtime
JMS fornisce una lista di istanze Java Runtime trovate di tutte le istanze gestite nella flotta. L'amministratore della flotta può rimuovere qualsiasi ambiente Oracle Java Runtime dall'istanza gestita selezionata o da tutte le istanze gestite all'interno di una flotta JMS.
Console cloud OCI
- Connettersi a OCI Console come amministratore.
- Aprire il menu di navigazione, fare clic su Osservabilità e gestione, quindi su Fleets in Java Management.
- Selezionare la flotta.
- Fare clic sulla sezione Java Runtime e selezionare Oracle Java Runtime.
- Fare clic su Elimina.
- Fare di nuovo clic su Elimina per confermare.
OCI CLI
- Generare il payload per l'eliminazione con il seguente comando:
oci jms installation-site-summary remove --generate-param-json-input installation-sites
- Recupera le chiavi di installazione per la flotta e la versione Java specificate:
oci jms installation-usage summarize --fleet-id $FLEET_OCID --jre-version $ORACLE_JDK_VERSION
- Recupera gli OCID delle istanze gestite per la flotta specificata con la versione Java installata:
oci jms managed-instance-usage summarize --fleet-id $FLEET_OCID --jre-version $ORACLE_JDK_VERSION
Nota
È possibile trovare le istanze gestite solo per una piattaforma specifica con parametro aggiuntivo--os-family
. - Combina le chiavi di installazione con le istanze gestite, la chiave di installazione e l'istanza gestita sono specifiche della piattaforma, ad esempio:
[ { "installationKey": "$JAVA_RUNTIME_INSTALL_KEY_LINUX", "managedInstanceId": "$LINUX_MANAGED_INSTANCE_OCID" }, { "installationKey": "$JAVA_RUNTIME_INSTALL_KEY_WINDOWS", "managedInstanceId": "$WINDOWS_MANAGED_INSTANCE_OCID" } ]
- Una volta completata la lista delle coppie chiave di installazione e istanza gestita, salvare la configurazione
installation-sites
in un file denominatoinstallation-sites.json
. - Eseguire il seguente comando:
oci jms installation-site-summary remove --fleet-id $FLEET_OCID --installation-sites file://installation-sites.json
Gestisci set di regole di distribuzione
Un set di regole di distribuzione è un set di regole e criteri utilizzati per controllare e gestire l'esecuzione delle applet e delle applicazioni Web Java in modo sicuro e personalizzabile.
Con JMS la gestione di un file jar del set di regole di distribuzione è un task semplice. L'amministratore della flotta la configurerà caricando un file jar firmato contenente le regole di distribuzione, quindi JMS distribuirà il file DRS a tutte le istanze gestite nella flotta, ove applicabile.
Nota
La funzione Gestione del set di regole di distribuzione è limitata ai runtime Java 8.Console cloud OCI
- Connettersi a OCI Console come amministratore.
- Aprire il menu di navigazione, fare clic su Osservabilità e gestione, quindi su Fleets in Java Management.
- Selezionare la flotta.
- Fare clic su Azioni e selezionare Configura impostazioni di gestione del ciclo di vita di Java Runtime.
- Nella sezione file Set di regole di distribuzione caricare il file jar del set di regole di distribuzione.
- Fare clic su Carica.
Gestisci set di regole di distribuzione
- Connettersi a OCI Console come amministratore.
- Aprire il menu di navigazione, fare clic su Osservabilità e gestione, quindi su Fleets in Java Management.
- Selezionare la flotta.
- Fare clic su Azioni e selezionare Gestisci set di regole di distribuzione.
- Fare clic su Distribuisci o Rimuovi pannello DRS.
- Fare clic su Sottometti.
OCI CLI
- Caricare il file DRS con il comando seguente:
oci os object put --namespace $NAMESPACE --bucket-name $BUCKET_NAME --file DeploymentRuleSet.jar
- Convalida con JMS:
oci jms fleet create-drs-file --namespace $NAMESPACE --bucket-name $BUCKET_NAME --drs-file-name DeploymentRuleSet.jar --fleet-id $FLEET_OCID
- Distribuire il file DRS:
oci jms fleet enable-drs --fleet-id $FLEET_OCID
La funzionalità delle funzioni avanzate DRS dipende dall'invio del payload correlato a DRS dalle istanze gestite all'oggetto di log di OCI Inventory. Di seguito è riportato il payload DRS di esempio.
{
"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"
}
Esempio
Si supponga di voler automatizzare l'installazione di Oracle JDK 21 con una determinata configurazione proxy http/https. Di seguito è riportato un esempio reale che utilizza JMS per ottenere questa automazione.
Prima di tutto esaminiamo uno script semplice e definiamo i parametri richiesti nella sezione delle variabili di configurazione.
#!/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
Nel passo successivo, eseguiamo lo script sopra e attendiamo che sia finito. Al termine della richiesta di lavoro di installazione, è possibile verificare che la configurazione proxy per il JDK 21 appena installato sia stata impostata con la configurazione desiderata:
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