Gerenciamento do Ciclo de Vida do Java Runtime
O gerenciamento do ciclo de vida do tempo de execução Java inclui:
- Instalar e Configurar um runtime Java
- Excluir um runtime Java
- Gerenciar o recurso Deployment Rule Set
Instalar e Configurar um Java Runtime
O JMS permite que você instale qualquer Oracle JDK em qualquer instância selecionada ou gerenciada dentro da sua frota. Além disso, você pode configurar ainda mais seus novos runtimes Java com ações de pós-instalação.
Para cada plataforma suportada, você pode escolher se deseja instalar o Java runtime como arquivo compactado comum, que será extraído para um local selecionado no sistema de arquivos, ou o JMS instalará o Oracle JDK executando o instalador oficial do Oracle JDK para a plataforma selecionada.
Console do OCI Cloud
- Acesse a Console do OCI como administrador.
- Abra o menu de navegação, clique em Observabilidade e Gerenciamento e, em seguida, clique em Frota em Java Management.
- Selecione sua frota.
- Clique em Ações e, no menu, selecione Instalar runtime Java.
- Selecione a versão que deseja instalar.
- Clique em Próximo.
- Você tem a opção de instalar o Java por meio de um instalador JDK específico da plataforma ou fazer download do arquivo Java e extraí-lo para um caminho especificado. Continue clicando em Próximo.
- Clique em Instalar Java Runtime.
OCI CLI
- Gere payload para instalação com o seguinte comando:
oci jms installation-site-summary add --generate-param-json-input installation-sites
- Edite o arquivo json de payload, por exemplo:
[ { "artifactContentType": "JDK", "managedInstanceId": "$MANAGED_INSTANCE_OCID", "releaseVersion": "21" } ]
- Execute o seguinte comando:
oci jms installation-site-summary add --fleet-id $FLEET_OCID --installation-sites file://installation-sites.json
Configurar o novo Java Runtime
Cada instalação do Java Runtime pode ser configurada com várias opções para segurança aprimorada, configuração de rede ou registro em log. Para obter uma descrição detalhada de todas as opções de configuração, consulte Ações de Pós-Instalação Java. Por exemplo, você pode usar esse recurso para configuração de proxy global do runtime Java em seu ambiente.
Você pode executar a ação na Console do OCI Cloud ou na CLI do OCI.
Console do OCI Cloud
- Acesse a Console do OCI como administrador.
- Abra o menu de navegação, clique em Observabilidade e Gerenciamento e, em seguida, clique em Frota em Java Management.
- Selecione sua frota.
- Clique em Ações e, no menu, selecione Configurar definições de gerenciamento do ciclo de vida do runtime Java.
- Na seção Ações de pós-instalação do Java, configure seus requisitos.
- Clique em Salvar.
- Agora você pode iniciar o processo de instalação do runtime Java descrito acima e, na segunda etapa da caixa de diálogo, confirmar suas ações de pós-instalação recém-configuradas.
OCI CLI
- Gere a configuração do LCM para a frota usando o seguinte comando:
oci jms fleet-advanced-feature-configuration update --generate-param-json-input lcm
- Atualize o arquivo com suas alterações, por exemplo:
{ "isEnabled": true, "postInstallationActions": { "proxies": { "httpProxyHost": "my-awesome-company-proxy", "httpProxyPort": 8080, "httpsProxyHost": "my-awesome-company-proxy", "httpsProxyPort": 8080, "useSystemProxies": false } } }
- Faça upload da configuração da frota:
oci jms fleet-advanced-feature-configuration update --lcm file://lcm-update.json --fleet-id $FLEET_OCID
- Atualize seu arquivo de carga útil de instalação, por exemplo:
[ { "artifactContentType": "JDK", "managedInstanceId": "$MANAGED_INSTANCE_OCID", "releaseVersion": "21" } ]
- Execute o script de instalação:
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"]'
Excluir um Java Runtime
O JMS fornece uma lista de runtimes Java descobertos de todas as instâncias gerenciadas na frota. O administrador da frota tem uma opção para remover qualquer runtime do Oracle Java da instância gerenciada selecionada ou de todas as instâncias gerenciadas dentro de uma frota JMS.
Console do OCI Cloud
- Acesse a Console do OCI como administrador.
- Abra o menu de navegação, clique em Observabilidade e Gerenciamento e, em seguida, clique em Frota em Java Management.
- Selecione sua frota.
- Clique na seção executtimes Java e selecione Oracle Java runtime.
- Clique em Excluir.
- Clique em Deletar novamente para confirmar.
CLI do OCI
- Gere payload para exclusão com o seguinte comando:
oci jms installation-site-summary remove --generate-param-json-input installation-sites
- Obtenha chaves de instalação para determinada frota e versão Java:
oci jms installation-usage summarize --fleet-id $FLEET_OCID --jre-version $ORACLE_JDK_VERSION
- Obtenha OCIDs de instâncias gerenciadas para determinada frota com a versão Java instalada:
oci jms managed-instance-usage summarize --fleet-id $FLEET_OCID --jre-version $ORACLE_JDK_VERSION
Observação:
Você só pode encontrar instâncias gerenciadas para uma plataforma específica com o parâmetro adicional--os-family
. - Combine as chaves de instalação com instâncias gerenciadas, a chave de instalação e a instância gerenciada são específicas da plataforma, por exemplo:
[ { "installationKey": "$JAVA_RUNTIME_INSTALL_KEY_LINUX", "managedInstanceId": "$LINUX_MANAGED_INSTANCE_OCID" }, { "installationKey": "$JAVA_RUNTIME_INSTALL_KEY_WINDOWS", "managedInstanceId": "$WINDOWS_MANAGED_INSTANCE_OCID" } ]
- Depois de concluir a lista de pares de chave de instalação e instância gerenciada, salve a configuração
installation-sites
em um arquivo chamadoinstallation-sites.json
. - Execute o seguinte comando:
oci jms installation-site-summary remove --fleet-id $FLEET_OCID --installation-sites file://installation-sites.json
Gerenciar o Conjunto de Regras de Implantação
Um Conjunto de Regras de Implantação é um conjunto de regras e políticas usadas para controlar e gerenciar a execução de applets Java e aplicativos Web de maneira segura e personalizável.
Com o JMS, o gerenciamento de um jar do Conjunto de Regras de Implantação é uma tarefa simples. O administrador da frota a configurará fazendo upload de um jar assinado contendo regras de implantação e, em seguida, o JMS distribuirá o arquivo DRS para todas as instâncias gerenciadas na frota, quando aplicável.
Observação:
O recurso Managing of Deployment Rule Set é limitado a runtimes do Java 8.Console do OCI Cloud
- Acesse a Console do OCI como administrador.
- Abra o menu de navegação, clique em Observabilidade e Gerenciamento e, em seguida, clique em Frota em Java Management.
- Selecione sua frota.
- Clique em Ações e selecione Configurar definições de gerenciamento do ciclo de vida do runtime Java.
- Na seção do arquivo Conjunto de Regras de Implantação, faça upload do arquivo jar do conjunto de regras de implantação.
- Clique em Fazer Upload.
Gerenciar o Conjunto de Regras de Implantação
- Acesse a Console do OCI como administrador.
- Abra o menu de navegação, clique em Observabilidade e Gerenciamento e, em seguida, clique em Frota em Java Management.
- Selecione sua frota.
- Clique em Ações e selecione Gerenciar Conjunto de Regras de Implantação.
- Clique em Distribuir ou Remover painel DRS.
- Clique em Submeter.
CLI do OCI
- Faça upload do arquivo DRS com o seguinte comando:
oci os object put --namespace $NAMESPACE --bucket-name $BUCKET_NAME --file DeploymentRuleSet.jar
- Valide-o com JMS:
oci jms fleet create-drs-file --namespace $NAMESPACE --bucket-name $BUCKET_NAME --drs-file-name DeploymentRuleSet.jar --fleet-id $FLEET_OCID
- Distribua o arquivo DRS:
oci jms fleet enable-drs --fleet-id $FLEET_OCID
A funcionalidade avançada do recurso DRS depende do envio do payload relacionado ao DRS das instâncias gerenciadas para o objeto de log do OCI Inventory. Este é o payload de DRS de amostra:
{
"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"
}
Exemplo
Suponha que você queira automatizar a instalação do Oracle JDK 21 com determinada configuração de proxy http/https. Veja a seguir um exemplo do mundo real usando o JMS para obter essa automação.
Primeiro, vamos examinar um script simples e definir os parâmetros necessários na seção de variáveis de configuração.
#!/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
Na próxima etapa, executamos o script acima e aguardamos até que ele seja concluído. Uma vez concluída a solicitação de serviço de instalação, podemos verificar se a configuração do proxy para o JDK 21 recém-instalado foi definida com a configuração desejada:
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