Oracle Fleet Patching & Provisioning (FPP): Configuração do FPP Server 19c

Introdução

O Oracle Fleet Patching & Provisioning (FPP) é um produto desenvolvido pela Oracle para provisionamento e atualização de softwares Oracle de forma automatizada e centralizada, tais como Oracle Grid Infrastructure, Oracle Database e Oracle Exadata Software. A ferramenta é ideal para padronização de deploy e patching em grandes ambientes (muitos servidores, databases e etc) e é uma das soluções recomendadas na arquitetura Maximum Availability Architecture (MAA). O FPP vem embarcado como um recurso do Oracle Grid Infrastructure e foi lançado na versão do 12cR2 do Grid Infrastructure.

O Fleet Patching & Provisioning mantém um repositório de binários Oracle em que cada binário é chamado de Gold Image, uma Gold Image é criada a partir de um Oracle Home existente e esta Gold Image pode ser utilizada para provisionar novos Oracle Homes nos servidores de banco de dados de forma automatizada. Isso permite aplicarmos os Release Updates trimestrais em um único Oracle Home e usar o FPP para propagar a versão atualizada do software para os demais servidores na infraestrutura.

Os servidores que são acessados e gerenciados pelo FPP Server são chamados de FPP Target, um FPP Target pode ou não ter um FPP Client configurado. Na ausência de um FPP Client, o FPP Server pode executar as tarefas via conexão SSH, isso permite usar o Fleet Patching & Provisioning para instalar o Oracle Grid Infrastructure de forma automatizada em um novo servidor sem a necessidade de configurar um agente previamente.

Após provisionar um Oracle Home no servidor, podemos usar um único comando para mover os serviços do Grid Infrastructure ou as instâncias do Oracle Database para o novo Oracle Home de forma automatizada. O FPP se encarrega de copiar os arquivos de configuração do Oracle Home atual para o novo, isso inclui itens como spfile, password file, tnsnames.ora, etc. Ao final da transição, o FPP executa os procedimentos de pós patch, como datapatch para Oracle 12c ou superior, ou catbundle.sql para Oracle 11gR2.

Em resumo, o Fleet Patching & Provisioning executa uma aplicação de patch usando a estratégia Out-Of-Place (OOP) de forma automatizada e com um único comando, cuidando de cada etapa do processo e simplificando de tal forma que podemos fazer atualizações em grande escala no ambiente.

Local Fleet Patching and Provisioning

A partir da versão 18c, o FPP pode operar em modo local, permitindo simplificar a aplicação de patch no Grid Infrastructure e no Database usando a estratégia Out-Of-Place sem a necessidade de ter um FPP Server configurado, essa solução é ideal para pequenos ambientes onde podemos instalar os novos Oracle Home manualmente em cada servidor e usar o FPP localmente apenas para fazer o “switch home”.

Configurando FPP Server

A configuração do FPP Server e do FPP Client só é suportada em instalações Full Stack do Grid Infrastructure, isto é, instalações do Grid em modo Cluster e não Standalone. Para o caso de FPP Targets com Oracle Grid Infrastructure Standalone Server (Oracle Restart) ou até mesmo sem o Grid, devemos utilizar o FPP com conexão via SSH.

Neste post demonstrarei como configurar o FPP Server e o FPP Client, posteriormente postarei exemplos de como utilizar o FPP para criar imagens de software e provisioná-las usando através do FPP Client e também via SSH.

Requisitos para o FPP Server

Nesta etapa é necessário ter conhecimento prévio em instalação e configuração de Oracle RAC e ASM, assim como já ter um ambiente pronto com os seguintes requisitos:

  • Oracle Grid Infrastructure 19c Full Stack (Clusterware)
  • Oracle Grid Infrastructure Management Repository (GIMR)
  • Diskgroup com COMPATIBLE.ASM e COMPATIBLE.ADVM 12.1 ou superior
  • Módulos ACFS instalados

NOTA 1: Para o GI Full Stack, precisamos de uma instalação em modo cluster, mas não é necessário ter mais de 1 node, pode ser realizada a instalação em modo cluster com um único servidor (como se fosse Oracle Restart, só que vai ser Clusterware). Esse é um padrão utilizado nos DB System da OCI.

NOTA 2: O Fleet Patching & Provisioning (FPP) foi originalmente lançado como Rapid Home Provisioning (RHP) no 12cR2, a Oracle mudou o nome para Fleet Patching & Provisioning no 18c após as evoluções nos produtos que não se limitavam somente a provisionamento de Oracle Home. Por esse motivo, a maioria dos comandos e texto de ajuda farão referência a “RHP” ao invés de “FPP” (por exemplo, o comando rhpctl).

Verificando o status do MGMTDB

[grid@fppserver01 ~]$ srvctl status mgmtdb
Database is enabled
Instance -MGMTDB is running on node fppserver01

Criando Diskgroup no ASM para servir como repositório de Gold Images do FPP_SERVER

[grid@fppserver01 ~]$ . oraenv <<< +ASM1
ORACLE_SID = [-MGMTDB] ? The Oracle base remains unchanged with value /u01/app/grid
[grid@fppserver01 ~]$
[grid@fppserver01 ~]$ sqlplus / as sysasm

SQL*Plus: Release 19.0.0.0.0 - Production on Mon Jul 5 21:56:14 2021
Version 19.11.0.0.0

Copyright (c) 1982, 2020, Oracle.  All rights reserved.


Connected to:
Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production
Version 19.11.0.0.0

SQL> CREATE DISKGROUP FPP_REPO EXTERNAL REDUNDANCY
DISK '/dev/oracleasm/disks/FPP1'
ATTRIBUTE
'AU_SIZE'='4M',
'COMPATIBLE.ASM'='12.1',
'COMPATIBLE.ADVM'='12.1';

Diskgroup created.

SQL>

Adicionando um Grid Name Service (GNS) Virtual IP no Grid Infrastructure

Esse IP será usado pelos FPP Clients para comunicar com FPP Server. Note que o IP não deve estar sendo utilizado atualmente e ele será iniciado como um IP Virtual no servidor.

su - root
 . oraenv <<< +ASM1
srvctl add gns -vip 192.168.1.18
srvctl start gns
srvctl status gns

Parando e Removendo o FPP Local

A partir da versão 18c o FPP vem habilitado em modo local, essa feature permite realizar o move de Grid Home e Oracle Home localmente, precisamos desabilitar essa configuração para começar usar o FPP Server.

srvctl stop rhpserver
srvctl remove rhpserver

Configurando e Iniciando o FPP Server

Adicionando o FPP Server novamente, informando o nome do ponto de montagem utilizado como base pelas partições ACFS (-storage) e o nome do diskgroup no ASM no qual os volumes serão criados (-diskgroup):

srvctl add rhpserver -storage /fpp_images -diskgroup FPP_REPO
srvctl start rhpserver
srvctl status rhpserver

Verificando todas as informações da configuração do FPP Server:

[root@fppserver01 ~]# srvctl config rhpserver
Storage base path: /fpp_images
Disk Groups: FPP_REPO
Port number: 8896
Temporary Location:
Transfer port range:
Rapid Home Provisioning Server is enabled
Rapid Home Provisioning Server is individually enabled on nodes:
Rapid Home Provisioning Server is individually disabled on nodes:
Email address:
Mail server address:
Mail server port:
Transport Level Security disabled
HTTP Secure is enabled

Neste momento deve existir uma nova partição ACFS no servidor:

[root@fppserver01 ~]# df -h
Filesystem            Size  Used Avail Use% Mounted on
devtmpfs              2.8G     0  2.8G   0% /dev
tmpfs                 2.8G  845M  2.0G  30% /dev/shm
tmpfs                 2.8G  9.1M  2.8G   1% /run
tmpfs                 2.8G     0  2.8G   0% /sys/fs/cgroup
/dev/sda1              10G  5.6G  4.5G  56% /
tmpfs                 566M     0  566M   0% /run/user/54322
/dev/sdb1              30G   21G  9.6G  69% /u01
/dev/asm/ghchkpt-365  5.2G  583M  4.7G  11% /fpp_images/chkbase

Vamos validar a configuração do FPP Server criando uma primeira Gold Image de teste, utilizando o Grid Home do próprio servidor no qual o FPP Server está executando:

[grid@fppserver01 ~]$ rhpctl import image -image gi19cR11 -imagetype ORACLEGISOFTWARE -path /u01/app/product/19.0.0.0/grid/
fppserver01.dibiei.com: Audit ID: 2
fppserver01.dibiei.com: Creating a new ACFS file system for image "gi19cR11" ...
fppserver01.dibiei.com: Copying files...
fppserver01.dibiei.com: Copying home contents...
fppserver01.dibiei.com: Changing the home ownership to user grid...
fppserver01.dibiei.com: Changing the home ownership to user grid...

Pesquisando a Gold Image no repositório:

[grid@fppserver01 ~]$ rhpctl query image -image gi19cR11
fppserver01.dibiei.com: Audit ID: 4
Image name: gi19cR11
Owner: grid@fppserver
Site: fppserver
Access control: USER:grid@fppserver
Access control: ROLE:OTHER
Access control: ROLE:GH_IMG_PUBLISH
Access control: ROLE:GH_IMG_ADMIN
Access control: ROLE:GH_IMG_VISIBILITY
Parent Image:
Software home path: /fpp_images/images/igi19cR11724334/.ACFS/snaps/igi19cR11/swhome
Image state: PUBLISHED
Image size: 10403 Megabytes
Image Type: ORACLEGISOFTWARE
Image Version: 19.0.0.0.0:19.11.0.0.0
Groups configured in the image: OSDBA=asmdba,OSASM=asmadmin,OSBACKUP=asmadmin,OSDG=asmadmin,OSKM=asmadmin,OSRAC=asmadmin
Image platform: Linux_AMD64
Interim patches installed: 32585572,32584670,32579761,32576499,32545013
Contains a non-rolling patch: FALSE
Complete: TRUE
[grid@fppserver01 ~]$

Um novo filesystem é criado para cada Gold Image:

[grid@fppserver01 ~]$ df -h
Filesystem                Size  Used Avail Use% Mounted on
devtmpfs                  2.8G     0  2.8G   0% /dev
tmpfs                     2.8G  845M  2.0G  30% /dev/shm
tmpfs                     2.8G  9.1M  2.8G   1% /run
tmpfs                     2.8G     0  2.8G   0% /sys/fs/cgroup
/dev/sda1                  10G  5.6G  4.5G  56% /
tmpfs                     566M     0  566M   0% /run/user/54322
/dev/sdb1                  30G   21G  9.6G  69% /u01
/dev/asm/ghchkpt-365      5.2G  582M  4.7G  11% /fpp_images/chkbase
/dev/asm/ghvol445644-365   24G   11G   14G  46% /fpp_images/images/igi19cR11724334

Configurando um FPP Client (Opcional)

Podemos configurar o FPP Client em um servidor e facilitar ainda mais as operações com Fleet Patching & Provisioning, o FPP Client é na verdade um outro Cluster Oracle que é gerenciado pelo Cluster do FPP Server. Dessa forma, para esta etapa, é necessário ter um outro ambiente com Oracle Grid Infrastructure com instalação Full Stack.

No cluster que será configurado como FPP Client, obtenha o nome do cluster:

[grid@lab03 ~]$ . oraenv <<< +ASM1
[grid@lab03 ~]$ olsnodes -c
lab03-cluster

No cluster do FPP Server, gere um arquivo de configuração com o metadados a ser importado no FPP Client (no parâmetro -client, devemos informar o nome do cluster correto retornado no comando anterior):

[grid@fppserver01 ~]$ . oraenv <<< +ASM1
[grid@fppserver01 ~]$ rhpctl add client -client lab03-cluster -toclientdata /tmp/
fppserver01.dibiei.com: Audit ID: 5
fppserver01.dibiei.com: Creating client data ...
fppserver01.dibiei.com: Client data created for client "lab03-cluster".

O parâmetro -toclientdata indica o caminho no qual o arquivo xml será gerado. O nome do arquivo será cluster_name.xml:

[grid@fppserver01 ~]$ ls -lrt /tmp/lab03-cluster.xml
-rw-r--r-- 1 grid oinstall 4815 Jul  7 22:28 /tmp/lab03-cluster.xml

Copie o arquivo xml para o cluster que será adicionado como FPP Client:

[grid@fppserver01 ~]$ scp /tmp/lab03-cluster.xml grid@lab03.dibiei.com:/tmp/
grid@lab03.dibiei.com's password:
lab03-cluster.xml                                                                                                                   100% 4815     9.7MB/s   00:00

No Cluster que será adicionado como FPP Client, adicione crie o FPP Client usando o arquivo xml copiado do FPP Server:

[root@lab03 grid]# srvctl add rhpclient -clientdata /tmp/lab03-cluster.xml

Inicie o FPP Client

[root@lab03 grid]# srvctl start rhpclient

Consultando a Gold Image criada no FPP Server a partir do FPP Client:

[grid@lab03 ~]$ rhpctl query image
fppserver01.dibiei.com: Audit ID: 7
Image name: gi19cR11
[grid@lab03 ~]$
[grid@lab03 ~]$ rhpctl query image -image gi19cR11
fppserver01.dibiei.com: Audit ID: 8
Image name: gi19cR11
Owner: grid@fppserver
Site: fppserver
Access control: USER:grid@fppserver
Access control: ROLE:OTHER
Access control: ROLE:GH_IMG_PUBLISH
Access control: ROLE:GH_IMG_ADMIN
Access control: ROLE:GH_IMG_VISIBILITY
Parent Image:
Software home path: /fpp_images/images/igi19cR11724334/.ACFS/snaps/igi19cR11/swhome
Image state: PUBLISHED
Image size: 10403 Megabytes
Image Type: ORACLEGISOFTWARE
Image Version: 19.0.0.0.0:19.11.0.0.0
Groups configured in the image: OSDBA=asmdba,OSASM=asmadmin,OSBACKUP=asmadmin,OSDG=asmadmin,OSKM=asmadmin,OSRAC=asmadmin
Image platform: Linux_AMD64
Interim patches installed: 32585572,32584670,32579761,32576499,32545013
Contains a non-rolling patch: FALSE
Complete: TRUE

Conclusão

Este post fez uma introdução ao funcionamento e capacidades básicas do Oracle Fleet Patching & Provisioning, assim como os procedimentos para configurar um FPP Server e FPP Client. Atualmente a ferramenta ainda não é recomenda pela Oracle em ambientes com ODA e Database Cloud Service, pois ainda não há integração com os repositórios dessas tecnologias, assim você poderia atualizar para uma versão com FPP e os agentes do ODA ou DBCS enxergarem outra.

Nos próximos posts pretendo demonstrar as operações que já tive a oportunidade de testar, tais como o provisionamento de Grid Infrastructure e Database para Targets com e sem FPP Client, operações de atualização de versão do Grid e do Database.

Scroll to Top

Discover more from Blog do Dibiei

Subscribe now to keep reading and get access to the full archive.

Continue reading