Gestion du cycle de vie d'un environnement JRE

La gestion du cycle de vie de l'exécution Java comprend ce qui suit :

  • Installer et configurer un environnement d'exécution Java
  • Supprimer un environnement d'exécution Java
  • Gérer le jeu de règles de déploiement

Installer et configurer un environnement d'exécution Java

JMS vous permet d'installer n'importe quel JDK Oracle sur toutes les instances gérées sélectionnées de votre parc. En outre, vous pouvez configurer vos nouveaux environnements d'exécution Java avec des actions postérieures à l'installation.

Pour chaque plate-forme prise en charge, vous pouvez choisir d'installer l'environnement d'exécution Java en tant qu'archive ordinaire, qui sera extraite vers un emplacement sélectionné dans le système de fichiers, ou JMS installera Oracle JDK en exécutant le programme d'installation Oracle JDK officiel pour la plate-forme sélectionnée.

Console en nuage OCI

  1. Connectez-vous à la console OCI en tant qu'administrateur.
  2. Ouvrez le menu de navigation, cliquez sur Observabilité et gestion, puis cliquez sur Fleets sous Gestion Java.
  3. Sélectionnez votre parc.
  4. Cliquez sur Actions et, dans le menu, sélectionnez Installer l'exécution Java.
  5. Sélectionnez la version à installer.
  6. Cliquez sur Suivant.
  7. Vous avez la possibilité d'installer Java au moyen d'un programme d'installation JDK propre à la plate-forme ou de télécharger l'archive Java et de l'extraire vers un chemin spécifié. Pour continuer, cliquez sur Suivant.
  8. Cliquez sur Installer Java Runtime.

Interface de ligne de commande OCI

  1. Générez les données utiles pour l'installation à l'aide de la commande suivante :
    oci jms installation-site-summary add --generate-param-json-input installation-sites
  2. Modifiez le fichier json de données utiles, par exemple :
    [
      {
        "artifactContentType": "JDK",
        "managedInstanceId": "$MANAGED_INSTANCE_OCID",
        "releaseVersion": "21"
      }
    ]
  3. Exécutez la commande suivante :
    oci jms installation-site-summary add --fleet-id $FLEET_OCID --installation-sites file://installation-sites.json

Configurer la nouvelle exécution Java

Chaque installation de Java Runtime peut être configurée avec plusieurs options pour améliorer la sécurité, la configuration réseau ou la journalisation. Pour une description détaillée de toutes les options de configuration, voir Actions post-installation Java. Par exemple, vous pouvez utiliser cette fonction pour la configuration globale du mandataire de l'exécution Java dans votre environnement.

Vous pouvez exécuter l'action à partir de la console OCI Cloud ou de l'interface de ligne de commande OCI.

Console en nuage OCI

  1. Connectez-vous à la console OCI en tant qu'administrateur.
  2. Ouvrez le menu de navigation, cliquez sur Observabilité et gestion, puis cliquez sur Fleets sous Gestion Java.
  3. Sélectionnez votre parc.
  4. Cliquez sur Actions et, dans le menu, sélectionnez Configurer les paramètres de gestion du cycle de vie de l'exécution Java.
  5. Dans la section Actions de post-installation Java, configurez vos besoins.
  6. Cliquez sur Enregistrer.
  7. Vous pouvez maintenant démarrer le processus d'installation à l'exécution de Java décrit ci-dessus et, dans la deuxième étape de la boîte de dialogue, confirmer les actions de post-installation nouvellement configurées.

Interface de ligne de commande OCI

  1. Générez la configuration LCM pour le parc à l'aide de la commande suivante :
    oci jms fleet-advanced-feature-configuration update --generate-param-json-input lcm
  2. Mettez à jour le fichier avec vos modifications, par exemple :
    {
        "isEnabled": true,
        "postInstallationActions": {
          "proxies": {
            "httpProxyHost": "my-awesome-company-proxy",
            "httpProxyPort": 8080,
            "httpsProxyHost": "my-awesome-company-proxy",
            "httpsProxyPort": 8080,
            "useSystemProxies": false
          }
        }
    }
  3. Charger la configuration du parc :
    oci jms fleet-advanced-feature-configuration update --lcm file://lcm-update.json --fleet-id $FLEET_OCID
  4. Mettez à jour votre fichier de données utiles d'installation, par exemple :
    [
      {
        "artifactContentType": "JDK",
        "managedInstanceId": "$MANAGED_INSTANCE_OCID",
        "releaseVersion": "21"
      }
    ]
  5. Exécutez le script d'installation :
    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"]'

Supprimer un environnement d'exécution Java

JMS fournit une liste des environnements d'exécution Java détectés pour toutes les instances gérées du parc. L'administrateur du parc a la possibilité de supprimer tout environnement d'exécution Oracle Java de l'instance gérée sélectionnée ou de toutes les instances gérées d'un parc JMS.

Console en nuage OCI

  1. Connectez-vous à la console OCI en tant qu'administrateur.
  2. Ouvrez le menu de navigation, cliquez sur Observabilité et gestion, puis cliquez sur Fleets sous Gestion Java.
  3. Sélectionnez votre parc.
  4. Cliquez sur la section Exécutions Java et sélectionnez Exécution Oracle Java.
  5. Cliquez sur Supprimer.
  6. Cliquez de nouveau sur Supprimer pour confirmer.

Interface de ligne de commande OCI

  1. Générez les données utiles à supprimer à l'aide de la commande suivante :
    oci jms installation-site-summary remove --generate-param-json-input installation-sites
  2. Obtenir les clés d'installation pour le parc et la version Java indiqués :
    oci jms installation-usage summarize --fleet-id $FLEET_OCID --jre-version
          $ORACLE_JDK_VERSION
  3. Obtenir les OCID des instances gérées pour le parc indiqué avec la version Java installée :
    oci jms managed-instance-usage summarize --fleet-id $FLEET_OCID --jre-version
          $ORACLE_JDK_VERSION

    Note :

    Vous ne pouvez trouver les instances gérées que pour une plate-forme spécifique avec le paramètre supplémentaire --os-family.
  4. Combiner les clés d'installation avec les instances gérées, la clé d'installation et l'instance gérée sont propres à la plate-forme, par exemple :
    [
      {
        "installationKey": "$JAVA_RUNTIME_INSTALL_KEY_LINUX",
        "managedInstanceId": "$LINUX_MANAGED_INSTANCE_OCID"
      },
      {
        "installationKey": "$JAVA_RUNTIME_INSTALL_KEY_WINDOWS",
        "managedInstanceId": "$WINDOWS_MANAGED_INSTANCE_OCID"
      }
    ]
  5. Une fois que vous avez terminé la liste des paires clé d'installation et instance gérée, enregistrez la configuration installation-sites dans un fichier nommé installation-sites.json.
  6. Exécutez la commande suivante :
    oci jms installation-site-summary remove --fleet-id $FLEET_OCID --installation-sites
          file://installation-sites.json

Gérer le jeu de règles de déploiement

Un jeu de règles de déploiement est un ensemble de règles et de politiques utilisées pour contrôler et gérer l'exécution des applets Java et des applications Web de manière sécurisée et personnalisable.

Avec JMS, la gestion d'un fichier JAR de jeu de règles de déploiement est une tâche simple. L'administrateur du parc le configurera en chargeant un fichier JAR signé contenant les règles de déploiement, puis JMS distribuera le fichier DRS à toutes les instances gérées du parc, le cas échéant.

Note :

La fonction de gestion des jeux de règles de déploiement est limitée aux environnements d'exécution Java 8.

Console en nuage OCI

  1. Connectez-vous à la console OCI en tant qu'administrateur.
  2. Ouvrez le menu de navigation, cliquez sur Observabilité et gestion, puis cliquez sur Fleets sous Gestion Java.
  3. Sélectionnez votre parc.
  4. Cliquez sur Actions et sélectionnez Configurer les paramètres de gestion du cycle de vie de l'exécution Java.
  5. Dans la section de fichier Jeu de règles de déploiement, chargez votre fichier JAR de jeu de règles de déploiement.
  6. Cliquez sur Charger.

Gérer le jeu de règles de déploiement

  1. Connectez-vous à la console OCI en tant qu'administrateur.
  2. Ouvrez le menu de navigation, cliquez sur Observabilité et gestion, puis cliquez sur Fleets sous Gestion Java.
  3. Sélectionnez votre parc.
  4. Cliquez sur Actions et sélectionnez Gérer le jeu de règles de déploiement.
  5. Cliquez sur Distribuer ou supprimer le panneau DRS.
  6. Cliquez sur Soumettre.

Interface de ligne de commande OCI

  1. Chargez le fichier DRS avec la commande suivante :
    oci os object put --namespace $NAMESPACE --bucket-name $BUCKET_NAME --file
          DeploymentRuleSet.jar
  2. Validez-le avec JMS :
    oci jms fleet create-drs-file --namespace $NAMESPACE --bucket-name $BUCKET_NAME
          --drs-file-name DeploymentRuleSet.jar --fleet-id $FLEET_OCID
  3. Distribuez le fichier DRS :
    oci jms fleet enable-drs --fleet-id $FLEET_OCID

La fonctionnalité de fonction avancée DRS dépend de l'envoi des données utiles DRS des instances gérées à l'objet de journal d'inventaire OCI. Voici l'exemple de données utiles DRS :

{
  "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"
}

Exemple

Supposons que vous souhaitiez automatiser l'installation d'Oracle JDK 21 avec une certaine configuration de mandataire http/https. Voici un exemple concret utilisant JMS pour réaliser cette automatisation.

Examinons d'abord un script simple et définissons les paramètres requis dans la section des variables de configuration.

#!/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

Dans l'étape suivante, nous exécutons le script ci-dessus et attendons la fin. Une fois la demande de travail d'installation terminée, nous pouvons vérifier que la configuration proxy pour le JDK 21 nouvellement installé a été définie avec la configuration souhaitée :

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