Gestión del ciclo de vida de tiempos de ejecución de Java
La gestión del ciclo de vida de Java Runtime incluye:
- Instalación y Configuración de un Tiempo de Ejecución de Java
- Supresión de un tiempo de ejecución de Java
- Gestionar juego de reglas de despliegue
Instalación y Configuración de un Tiempo de Ejecución de Java
JMS permite instalar cualquier Oracle JDK en cualquier instancia seleccionada o gestionada de su conjunto. Además, puede configurar aún más los nuevos tiempos de ejecución de Java Runtime con acciones posteriores a la instalación.
Para cada plataforma soportada, puede elegir si desea instalar Java Runtime como archivo normal, que se extraerá a una ubicación seleccionada en el sistema de archivos, o JMS instalará Oracle JDK ejecutando el instalador oficial de Oracle JDK para la plataforma seleccionada.
Consola de OCI Cloud
- Conéctese a la consola de OCI como administrador.
- Abra el menú de navegación, haga clic en Observability & Management y, a continuación, haga clic en Fleets en Java Management.
- Seleccione su flota.
- Haga clic en Acciones y, en el menú, seleccione Instalar tiempo de ejecución de Java.
- Seleccione la versión que desea instalar.
- Haga clic en Siguiente.
- Tiene la opción de instalar Java mediante un instalador de JDK específico de la plataforma o descargar el archivo de Java y extraerlo a una ruta especificada. Para continuar, haga clic en Siguiente.
- Click Install Java Runtime.
CLI de OCI
- Genere la carga útil para la instalación con el siguiente comando:
oci jms installation-site-summary add --generate-param-json-input installation-sites
- Edite el archivo json de carga útil, por ejemplo:
[ { "artifactContentType": "JDK", "managedInstanceId": "$MANAGED_INSTANCE_OCID", "releaseVersion": "21" } ]
- Ejecute el siguiente comando:
oci jms installation-site-summary add --fleet-id $FLEET_OCID --installation-sites file://installation-sites.json
Configurar el nuevo Java Runtime
Cada instalación de Java Runtime se puede configurar con varias opciones para mejorar la seguridad, la configuración de red o el registro. Para obtener una descripción detallada de todas las opciones de configuración, consulte Java Post-Installation Actions. Por ejemplo, puede utilizar esta función para la configuración de proxy global del tiempo de ejecución de Java Runtime en su entorno.
Puede ejecutar la acción desde la consola de OCI Cloud o desde la CLI de OCI.
Consola de OCI Cloud
- Conéctese a la consola de OCI como administrador.
- Abra el menú de navegación, haga clic en Observability & Management y, a continuación, haga clic en Fleets en Java Management.
- Seleccione su flota.
- Haga clic en Acciones y, en el menú, seleccione Configurar valores de gestión del ciclo de vida de tiempo de ejecución de Java.
- En la sección Acciones posteriores a la instalación de Java, configure los requisitos.
- Haga clic en Guardar.
- Ahora puede iniciar el proceso de instalación de Java Runtime descrito anteriormente y, en el segundo paso del cuadro de diálogo, confirmar las acciones posteriores a la instalación recién configuradas.
CLI de OCI
- Genere la configuración de LCM para el conjunto mediante el siguiente comando:
oci jms fleet-advanced-feature-configuration update --generate-param-json-input lcm
- Actualice el archivo con los cambios, por ejemplo:
{ "isEnabled": true, "postInstallationActions": { "proxies": { "httpProxyHost": "my-awesome-company-proxy", "httpProxyPort": 8080, "httpsProxyHost": "my-awesome-company-proxy", "httpsProxyPort": 8080, "useSystemProxies": false } } }
- Cargue la configuración del conjunto:
oci jms fleet-advanced-feature-configuration update --lcm file://lcm-update.json --fleet-id $FLEET_OCID
- Actualice el archivo de carga útil de instalación, por ejemplo:
[ { "artifactContentType": "JDK", "managedInstanceId": "$MANAGED_INSTANCE_OCID", "releaseVersion": "21" } ]
- Ejecute el archivo de comandos de instalación:
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"]'
Supresión de un tiempo de ejecución de Java Runtime
JMS proporciona una lista de los tiempos de ejecución de Java Runtime detectados de todas las instancias gestionadas del conjunto. El administrador del conjunto tiene la opción de eliminar cualquier tiempo de ejecución de Oracle Java Runtime de la instancia gestionada seleccionada o de todas las instancias gestionadas de un conjunto de JMS.
Consola de OCI Cloud
- Conéctese a la consola de OCI como administrador.
- Abra el menú de navegación, haga clic en Observability & Management y, a continuación, haga clic en Fleets en Java Management.
- Seleccione su flota.
- Haga clic en la sección Tiempos de ejecución de Java Runtime y seleccione Oracle Java Runtime.
- Haga clic en Suprimir.
- Vuelva a hacer clic en Delete para confirmar.
CLI de OCI
- Genere la carga útil para la supresión con el siguiente comando:
oci jms installation-site-summary remove --generate-param-json-input installation-sites
- Obtener claves de instalación para el conjunto y la versión de Java determinados:
oci jms installation-usage summarize --fleet-id $FLEET_OCID --jre-version $ORACLE_JDK_VERSION
- Obtener OCID de instancias gestionadas para un conjunto determinado con la versión de Java instalada:
oci jms managed-instance-usage summarize --fleet-id $FLEET_OCID --jre-version $ORACLE_JDK_VERSION
Note:
Puede encontrar instancias gestionadas solo para una plataforma específica con el parámetro adicional--os-family
. - Combinar las claves de instalación con instancias gestionadas, la clave de instalación y la instancia gestionada son específicas de la plataforma, por ejemplo:
[ { "installationKey": "$JAVA_RUNTIME_INSTALL_KEY_LINUX", "managedInstanceId": "$LINUX_MANAGED_INSTANCE_OCID" }, { "installationKey": "$JAVA_RUNTIME_INSTALL_KEY_WINDOWS", "managedInstanceId": "$WINDOWS_MANAGED_INSTANCE_OCID" } ]
- Una vez que haya completado la lista de pares de claves de instalación e instancias gestionadas, guarde la configuración
installation-sites
en un archivo denominadoinstallation-sites.json
. - Ejecute el siguiente comando:
oci jms installation-site-summary remove --fleet-id $FLEET_OCID --installation-sites file://installation-sites.json
Gestionar el juego de reglas de despliegue
Un conjunto de reglas de despliegue es un conjunto de reglas y políticas que se utilizan para controlar y gestionar la ejecución de applets Java y aplicaciones web de forma segura y personalizable.
Con JMS, la gestión de un jar de juego de reglas de despliegue es una tarea sencilla. El administrador del conjunto lo configurará cargando un archivo jar firmado que contenga reglas de despliegue y, a continuación, JMS distribuirá el archivo DRS a todas las instancias gestionadas del conjunto cuando corresponda.
Note:
La función Gestión del juego de reglas de despliegue está limitada a los tiempos de ejecución de Java 8.Consola de OCI Cloud
- Conéctese a la consola de OCI como administrador.
- Abra el menú de navegación, haga clic en Observability & Management y, a continuación, haga clic en Fleets en Java Management.
- Seleccione su flota.
- Haga clic en Acciones y seleccione Configurar valores de gestión del ciclo de vida de tiempo de ejecución de Java.
- En la sección de archivo Juego de Reglas de Despliegue, cargue el archivo jar del juego de reglas de despliegue.
- Haga clic en Cargar.
Gestionar el juego de reglas de despliegue
- Conéctese a la consola de OCI como administrador.
- Abra el menú de navegación, haga clic en Observability & Management y, a continuación, haga clic en Fleets en Java Management.
- Seleccione su flota.
- Haga clic en Acciones y seleccione Gestionar juego de reglas de despliegue.
- Haga clic en el panel Distribuir o eliminar DRS.
- Haga clic en Ejecutar.
CLI de OCI
- Cargue el archivo DRS con el siguiente comando:
oci os object put --namespace $NAMESPACE --bucket-name $BUCKET_NAME --file DeploymentRuleSet.jar
- Validarlo con JMS:
oci jms fleet create-drs-file --namespace $NAMESPACE --bucket-name $BUCKET_NAME --drs-file-name DeploymentRuleSet.jar --fleet-id $FLEET_OCID
- Distribuya el archivo DRS:
oci jms fleet enable-drs --fleet-id $FLEET_OCID
La funcionalidad de funciones avanzadas de DRS depende del envío de la carga útil relacionada con DRS desde las instancias gestionadas al objeto de log de inventario de OCI. Esta es la carga útil de DRS de ejemplo:
{
"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"
}
Ejemplo
Supongamos que desea automatizar la instalación de Oracle JDK 21 con determinada configuración de proxy http/https. A continuación se muestra un ejemplo real del uso de JMS para lograr esta automatización.
Primero vamos a examinar un script simple y definir los parámetros necesarios en la sección de variables de configuración.
#!/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
En el siguiente paso, ejecutamos el script anterior y esperamos hasta que termine. Una vez finalizada la solicitud de trabajo de instalación, podemos verificar que la configuración de proxy para el JDK 21 recién instalado se haya definido con la configuración deseada:
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