Gestion du cycle de vie d'exécution Java

La gestion du cycle de vie d'exécution Java inclut les éléments suivants :

  • Installer et configurer une exécution Java
  • Suppression d'une exécution Java
  • Gérer le jeu de règles de déploiement

Installation et configuration d'une exécution Java

JMS vous permet d'installer n'importe quel JDK Oracle sur toutes les instances gérées sélectionnées ou dans votre parc. En outre, vous pouvez configurer davantage vos nouvelles exécutions Java avec des actions de postinstallation.

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

Console OCI Cloud

  1. Connectez-vous à la console OCI en tant qu'administrateur.
  2. Ouvrez le menu de navigation, cliquez sur Observation et gestion, puis sur Parcours sous Java Management.
  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 via 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 ce faire, cliquez sur Suivant.
  8. Cliquez sur Installer une exécution Java.

Interface de ligne de commande OCI

  1. Générez la charge utile 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 charge utile, 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 obtenir une description détaillée de toutes les options de configuration, reportez-vous à Actions de postinstallation Java. Par exemple, vous pouvez utiliser cette fonctionnalité pour la configuration de proxy global de l'exécution Java dans votre environnement.

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

Console OCI Cloud

  1. Connectez-vous à la console OCI en tant qu'administrateur.
  2. Ouvrez le menu de navigation, cliquez sur Observation et gestion, puis sur Parcours sous Java Management.
  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 d'exécution Java.
  5. Sous la section Actions de postinstallation Java, configurez vos exigences.
  6. Cliquez sur Enregistrer.
  7. Vous pouvez maintenant lancer le processus d'installation d'exécution Java décrit ci-dessus et, dans la deuxième étape de la boîte de dialogue, confirmer les actions de postinstallation que vous venez de configurer.

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. Téléchargez 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 charge utile 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"]'

Suppression d'une exécution Java

JMS fournit la liste des exécutions Java repérées de toutes les instances gérées du parc. L'administrateur de parc peut enlever toute exécution Java Oracle de l'instance gérée sélectionnée ou de toutes les instances gérées d'un parc JMS.

Console OCI Cloud

  1. Connectez-vous à la console OCI en tant qu'administrateur.
  2. Ouvrez le menu de navigation, cliquez sur Observation et gestion, puis sur Parcours sous Java Management.
  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 à nouveau sur Supprimer pour confirmer.

Interface de ligne de commande OCI

  1. Générez la charge utile pour la suppression à 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 de Java donnés :
    oci jms installation-usage summarize --fleet-id $FLEET_OCID --jre-version
          $ORACLE_JDK_VERSION
  3. Obtenez 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

    Remarques :

    Vous ne pouvez trouver des instances gérées que pour une plate-forme spécifique avec le paramètre supplémentaire --os-family.
  4. Combinez 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 la liste des paires clé d'installation/instance gérée terminé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 ensemble de règles de déploiement est un ensemble de règles et de stratégies 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 d'ensemble de règles de déploiement est une tâche simple. L'administrateur de parc le configure en téléchargeant un fichier JAR signé contenant des règles de déploiement, puis JMS distribue le fichier de jeu de règles de déploiement à toutes les instances gérées du parc, le cas échéant.

Remarques :

La fonctionnalité de gestion de l'ensemble de règles de déploiement est limitée aux exécutions Java 8.

Console OCI Cloud

  1. Connectez-vous à la console OCI en tant qu'administrateur.
  2. Ouvrez le menu de navigation, cliquez sur Observation et gestion, puis sur Parcours sous Java Management.
  3. Sélectionnez votre parc.
  4. Cliquez sur Actions et sélectionnez Configurer les paramètres de gestion du cycle de vie d'exécution Java.
  5. Dans la section de fichier Ensemble de règles de déploiement, téléchargez le fichier JAR de l'ensemble de règles de déploiement.
  6. Cliquez sur Télécharger vers le serveur.

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 Observation et gestion, puis sur Parcours sous Java Management.
  3. Sélectionnez votre parc.
  4. Cliquez sur Actions et sélectionnez Gérer l'ensemble de règles de déploiement.
  5. Cliquez sur Distribuer ou supprimer le panneau de jeu de règles de déploiement.
  6. Cliquez sur Soumettre.

Interface de ligne de commande OCI

  1. Chargez le fichier de jeu de règles de déploiement à l'aide de 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 de jeu de règles de déploiement :
    oci jms fleet enable-drs --fleet-id $FLEET_OCID

La fonctionnalité de fonctionnalité avancée du jeu de règles de déploiement dépend de l'envoi de la charge utile liée au jeu de règles de déploiement des instances gérées à l'objet de journal OCI Inventory. Voici l'exemple de charge utile 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 proxy http/https. Voici un exemple concret d'utilisation de 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 du 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