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

  1. Connettersi a OCI Console come amministratore.
  2. Aprire il menu di navigazione, fare clic su Osservabilità e gestione, quindi su Fleets in Java Management.
  3. Selezionare la flotta.
  4. Fare clic su Azioni e selezionare Installa Java Runtime dal menu.
  5. Selezionare la versione da installare.
  6. Fare clic su Successivo.
  7. È 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.
  8. Fare clic su Installa Java Runtime.

OCI CLI

  1. Generare il payload per l'installazione con il comando seguente:
    oci jms installation-site-summary add --generate-param-json-input installation-sites
  2. Modificare il file json del payload, ad esempio:
    [
      {
        "artifactContentType": "JDK",
        "managedInstanceId": "$MANAGED_INSTANCE_OCID",
        "releaseVersion": "21"
      }
    ]
  3. 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

  1. Connettersi a OCI Console come amministratore.
  2. Aprire il menu di navigazione, fare clic su Osservabilità e gestione, quindi su Fleets in Java Management.
  3. Selezionare la flotta.
  4. Fare clic su Azioni e selezionare Configura impostazioni di gestione del ciclo di vita di Java Runtime dal menu.
  5. Nella sezione Azioni successive all'installazione di Java, configurare i requisiti.
  6. Fare clic su Salva.
  7. 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

  1. Generare la configurazione LCM per la flotta utilizzando il comando seguente:
    oci jms fleet-advanced-feature-configuration update --generate-param-json-input lcm
  2. 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
          }
        }
    }
  3. Caricare la configurazione della flotta:
    oci jms fleet-advanced-feature-configuration update --lcm file://lcm-update.json --fleet-id $FLEET_OCID
  4. Aggiornare il file del payload di installazione, ad esempio:
    [
      {
        "artifactContentType": "JDK",
        "managedInstanceId": "$MANAGED_INSTANCE_OCID",
        "releaseVersion": "21"
      }
    ]
  5. 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

  1. Connettersi a OCI Console come amministratore.
  2. Aprire il menu di navigazione, fare clic su Osservabilità e gestione, quindi su Fleets in Java Management.
  3. Selezionare la flotta.
  4. Fare clic sulla sezione Java Runtime e selezionare Oracle Java Runtime.
  5. Fare clic su Elimina.
  6. Fare di nuovo clic su Elimina per confermare.

OCI CLI

  1. Generare il payload per l'eliminazione con il seguente comando:
    oci jms installation-site-summary remove --generate-param-json-input installation-sites
  2. 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
  3. 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.
  4. 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"
      }
    ]
  5. Una volta completata la lista delle coppie chiave di installazione e istanza gestita, salvare la configurazione installation-sites in un file denominato installation-sites.json.
  6. 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

  1. Connettersi a OCI Console come amministratore.
  2. Aprire il menu di navigazione, fare clic su Osservabilità e gestione, quindi su Fleets in Java Management.
  3. Selezionare la flotta.
  4. Fare clic su Azioni e selezionare Configura impostazioni di gestione del ciclo di vita di Java Runtime.
  5. Nella sezione file Set di regole di distribuzione caricare il file jar del set di regole di distribuzione.
  6. Fare clic su Carica.

Gestisci set di regole di distribuzione

  1. Connettersi a OCI Console come amministratore.
  2. Aprire il menu di navigazione, fare clic su Osservabilità e gestione, quindi su Fleets in Java Management.
  3. Selezionare la flotta.
  4. Fare clic su Azioni e selezionare Gestisci set di regole di distribuzione.
  5. Fare clic su Distribuisci o Rimuovi pannello DRS.
  6. Fare clic su Sottometti.

OCI CLI

  1. Caricare il file DRS con il comando seguente:
    oci os object put --namespace $NAMESPACE --bucket-name $BUCKET_NAME --file
          DeploymentRuleSet.jar
  2. Convalida con JMS:
    oci jms fleet create-drs-file --namespace $NAMESPACE --bucket-name $BUCKET_NAME
          --drs-file-name DeploymentRuleSet.jar --fleet-id $FLEET_OCID
  3. 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