Esta é uma continuação do post Oracle Fleet Patching & Provisioning (FPP): Configuração do FPP Server 19c e apresenta como adicionar Gold Images no repositório do Oracle Fleet Patching and Provisioning para que possam ser utilizadas para provisionar e atualizar os softwares nos FPP Targets. Os exemplos baseiam-se nos softwares Oracle Grid Infrastructure e Oracle Database.
Para criar uma Gold Image, utilizamos o comando rhpctl import image, este comando pode ser utilizado para criar uma Gold Image a partir de uma uma instalação existente em qualquer FPP Target ou a partir de um instalador baixado do site da Oracle, tais como My Oracle Support e Oracle Cloud e-Delivery.
Podemos consultar todas as opções disponíveis do comando com a opção -h:
[grid@fppserver01 ~]$ rhpctl import image -h
Create a new image from the specified path.
Usage: rhpctl import image -image <image_name>
{-path <path> |
-zip <zipped_home_path> |
-notify
[-cc <users_list>] }
[-imagetype <image_type>]
[-pathowner <username>]
[-version <image_version>]
[-state
{TESTABLE|
RESTRICTED|
PUBLISHED}]
[-location <zipped_home_path>]
[-client <cluster_name>]
[-targetnode <node_name>
[-sudouser <sudo_user_name> -sudopath <sudo_binary_path> |
-root |
-cred <cred_name> |
-auth <plugin_name>
[-arg1 <name1>:<value1>
[ -arg2 <name2>:<value2>...]]]]
[-useractiondata <user_action_data>]
[-series <series_name>]
-image <image_name> Name of the image
-path <path> Absolute path location of the software home to be imported (For database images, this will be the ORACLE_HOME)
-zip <zipped_home_path> Absolute path of the compressed software home to be imported (a ZIP or TAR file).
-imagetype <image_type> The software type, ('ORACLEDBSOFTWARE' (default) for Oracle Database software, 'ORACLEGISOFTWARE' for Oracle Grid Infrastructure software, ORACLEGGSOFTWARE for Oracle GoldenGate software, and 'SOFTWARE' for all other software. For a custom image type, use the image type name.)
-pathowner <username> User with read access to files under the specified path.
-version <image_version> Oracle database version for GIAAS, ODA patchbundle version for ODAPATCHSOFTWARE
-state {TESTABLE|RESTRICTED|PUBLISHED} State name
-location <zipped_home_path> Location of the compressed image file on the target
-client <cluster_name> Client cluster name
-targetnode <node_name> Node on which operation needs to be executed
-sudouser <username> perform super user operations as sudo user name
-sudopath <sudo_binary_path> location of sudo binary
-root Use root credentials to access the remote node
-cred <cred_name> Credential name to associate the user/password credentials to access a remote node
-auth <plugin_name> [<plugin_args>] Use an authentication plugin to access the remote node
-useractiondata <user_action_data> Value to be passed to useractiondata parameter of useraction script
-notify Send email notification
-cc <users_list> List of users to whom email notifications will be sent, in addition to owner of working copy
-series <series_name> Name of the series
[grid@fppserver01 ~]$
As principais opções quando estamos criando uma Gold Image para os softwares Grid e Database:
- –image: Especifica o nome da Gold Image sendo criada
- –softwaretype: Especifica o tipo de software e o valor padrão é ORACLEDBSOFTWARE
- –path: Usado quando criamos uma Gold Image a partir de uma instalação existente, especifica o caminho completo do ORACLE_HOME a partir do qual o FPP criará a Gold Image.
- –zip: Usado quando criamos uma Gold Image a partir de um instalador baixado do site da Oracle (devemos usar -path ou -zip exclusivamente)
- -client: Usado quando criamos uma Gold Image a partir de uma instalação existente em um FPP Target que possui o FPP Client configurado, especifica o nome cluster configurado como FPP Client.
- -targetnode: Similar a -client, mas é usado quando o FPP Target não tem um FPP Client configurado, neste caso devemos informar o hostname do servidor.
- -root: Quando o FPP Target não tem FPP Client configurado, o FPP Server se conectar via ssh com usuário root ou com outro usuário que tenha privilégio sudo. Usamos a opção -root para o FPP Server se conectar diretamente com o root.
- –sudouser: Quando a conexão com root não for permitida, deve ser informado o nome do usuário com permissão de sudo (exemplo: -sudouser opc).
- -sudopath: Quando usamos a opção -sudouser, devemos usar esse parâmetro para informar o caminho do executável sudo no servidor remoto (exemplo: -sudopath /usr/bin/sudo).
Usando um Arquivo ZIP Baixado do Site da Oracle
O instalador do Oracle Database 19c foi baixado do site da Oracle e copiado para o servidor do FPP Server no diretório /home/grid com o usuário grid:
[grid@fppserver01 ~]$ ls -lrt /home/grid/*.zip
-rw-r--r-- 1 grid oinstall 3059705302 Jun 4 20:49 /home/grid/LINUX.X64_193000_db_home.zip
Então usamos o comando rhpctl import image com a opção -zip, passando o caminho completo do arquivo contendo do DB Home:
rhpctl import image -image db19cR3 -zip /home/grid/LINUX.X64_193000_db_home.zip
No parâmetro -image, infomamos o nome para a Gold Image sendo criada, note que você pode usar o nome que quiser, mas é uma boa prática usar uma nomeclatura que ajude a identificar o tipo, versão e nível de patch do software.
Exemplo abaixo:
[grid@fppserver01 ~]$ rhpctl import image -image db19cR3 -zip /home/grid/LINUX.X64_193000_db_home.zip
fppserver01.dibiei.com: Audit ID: 13
fppserver01.dibiei.com: Creating a new ACFS file system for image "db19cR3" ...
fppserver01.dibiei.com: Extracting files to directory /fpp_images/images/idb19cR3850023/swhome...
fppserver01.dibiei.com: Files successfully extracted
fppserver01.dibiei.com: Changing the home ownership to user grid...
fppserver01.dibiei.com: Starting clone operation...
========================================
fppserver01.dibiei.com:
[INFO] [INS-32183] Use of clone.pl is deprecated in this release. Clone operation is equivalent to performing a Software Only installation from the image.
You must use /fpp_images/images/idb19cR3850023/swhome/runInstaller script available to perform the Software Only install. For more details on image based installation, refer to help documentation.
Starting Oracle Universal Installer...
You can find the log of this install session at:
/u01/app/oraInventory/logs/cloneActions2021-07-08_07-30-47PM.log
.................................................. 5% Done.
.................................................. 10% Done.
.................................................. 15% Done.
.................................................. 20% Done.
.................................................. 25% Done.
.................................................. 30% Done.
.................................................. 35% Done.
.................................................. 40% Done.
.................................................. 45% Done.
.................................................. 50% Done.
.................................................. 55% Done.
.................................................. 60% Done.
.................................................. 65% Done.
.................................................. 70% Done.
.................................................. 75% Done.
.................................................. 80% Done.
.................................................. 85% Done.
..........
Copy files in progress.
Copy files successful.
Link binaries in progress.
..........
Link binaries successful.
Setup files in progress.
..........
Setup files successful.
Setup Inventory in progress.
Setup Inventory successful.
..........
Finish Setup successful.
The cloning of i97o3k454fgr8r10 was successful.
Please check '/u01/app/oraInventory/logs/cloneActions2021-07-08_07-30-47PM.log' for more details.
Setup Oracle Base in progress.
Setup Oracle Base successful.
.................................................. 95% Done.
As a root user, execute the following script(s):
1. /fpp_images/images/idb19cR3850023/swhome/root.sh
Execute /fpp_images/images/idb19cR3850023/swhome/root.sh on the following nodes:
[fppserver01]
.................................................. 100% Done.
fppserver01.dibiei.com: Successfully executed clone operation.
fppserver01.dibiei.com: Executing detach home operation...
========================================
fppserver01.dibiei.com:
Starting Oracle Universal Installer...
Checking swap space: must be greater than 500 MB. Actual 570 MB Passed
The inventory pointer is located at /etc/oraInst.loc
You can find the log of this install session at:
/u01/app/oraInventory/logs/DetachHome2021-07-08_07-33-31PM.log
'DetachHome' was successful.
fppserver01.dibiei.com: Successfully executed detach home operation.
Quando usamos a opção de import a partir de um arquivo zip, o FPP extrai o conteúdo para a partição ACFS e faz uma instalação do tipo software-only para validar que os binários são íntegros.
Consultando a Gold Image no repositório:
rhpctl query image -image db19cR3
[grid@fppserver01 ~]$ rhpctl query image -image db19cR3 fppserver01.dibiei.com: Audit ID: 15 Image name: db19cR3 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/idb19cR3850023/.ACFS/snaps/idb19cR3/swhome Image state: PUBLISHED Image size: 6536 Megabytes Image Type: ORACLEDBSOFTWARE Image Version: 19.0.0.0.0:19.3.0.0.0 Groups configured in the image: OSDBA=dba,OSOPER=oper,OSBACKUP=backupdba,OSDG=dgdba,OSKM=kmdba,OSRAC=racdba Image platform: Linux_AMD64 Interim patches installed: 29585399,29517242 Contains a non-rolling patch: FALSE Complete: TRUE
Usando um Oracle Home Existente no FPP Server
Para criar uma Gold Image a partir de um Oracle Home instalado no próprio FPP Server, precisamos informar apenas o home para a nova Gold Image e o caminho do Oracle Home, se for um Grid Home, precisamos adicionar o parâmetro -imagetype para indicar que é um GI home.
Neste exemplo estamos criando uma Gold Image do Oracle Grid Infrastructure 19cR11 (Release Update 11).
Tentativa de importar o GI Home sem especificar -imagetype (o padrão é ORACLEDBSOFTWARE):
[grid@fppserver01 ~]$ rhpctl import image -image gi19cR11 -path /u01/app/product/19.0.0.0/grid/ fppserver01.dibiei.com: Audit ID: 33 PRGO-1257 : failed to import image "gi19cR11" PRGO-1449 : The specified path /u01/app/product/19.0.0.0/grid is not an Oracle Database Home
Agora criando uma imagem com sucesso, informando o valor ORACLEGISOFTWRE para o parâmetro -imagetype:
rhpctl import image -image gi19cR11 -path /u01/app/product/19.0.0.0/grid/ -imagetype ORACLEGISOFTWARE
[grid@fppserver01 ~]$ rhpctl import image -image gi19cR11 -path /u01/app/product/19.0.0.0/grid/ -imagetype ORACLEGISOFTWARE fppserver01.dibiei.com: Audit ID: 34 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...
Consultando a Gold Image no repositório:
rhpctl query image -image gi19cR11
[grid@fppserver01 ~]$ rhpctl query image -image gi19cR11 fppserver01.dibiei.com: Audit ID: 35 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/igi19cR11439597/.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
Note que atributo “Software home path” informa o caminho em que a Gold Image foi criada no FPP Server, isso é dentro da partição ACFS que foi criada exclusivamente para essa Gold Image, conforme abaixo:
[grid@fppserver01 ~]$ df -hT Filesystem Type Size Used Avail Use% Mounted on devtmpfs devtmpfs 2.8G 0 2.8G 0% /dev tmpfs tmpfs 2.8G 845M 2.0G 30% /dev/shm tmpfs tmpfs 2.8G 9.0M 2.8G 1% /run tmpfs tmpfs 2.8G 0 2.8G 0% /sys/fs/cgroup /dev/sda1 xfs 10G 8.5G 1.6G 85% / /dev/sdc1 xfs 30G 21G 9.0G 71% /u01 tmpfs tmpfs 566M 0 566M 0% /run/user/54322 tmpfs tmpfs 566M 0 566M 0% /run/user/0 /dev/asm/ghvol895137-365 acfs 16G 7.8G 8.3G 49% /fpp_images/images/idb19cR3850023 /dev/asm/ghchkpt-365 acfs 5.2G 551M 4.7G 11% /fpp_images/chkbase /dev/asm/ghvol156489-365 acfs 24G 12G 13G 47% /fpp_images/images/igi19cR11439597
Usando um Oracle Home Existente em um FPP Target com FPP Client
Neste exemplo estamos criando uma Gold Image do Oracle Database 19cR11 instalado no cluster lab03-cluster, cenário que envolve a presença de um FPP Client previamente configurado.
Com FPP Client, usamos a opção -client para informar o nome do cluster em que ele foi configurado (lab03-cluster):
rhpctl import image -image db19cR11 -client lab03-cluster -path /u01/app/oracle/product/19.0.0.0/wc_lab03_db19cR11/
[grid@fppserver01 ~]$ rhpctl import image -image db19cR11 -client lab03-cluster -path /u01/app/oracle/product/19.0.0.0/wc_lab03_db19cR11/ fppserver01.dibiei.com: Audit ID: 38 fppserver01.dibiei.com: Adding storage for image ... fppserver01.dibiei.com: Creating a new ACFS file system for image "db19cR11" ... lab03.dibiei.com: Copying files... lab03.dibiei.com: Copying home contents... fppserver01.dibiei.com: Changing the home ownership to user grid... [grid@fppserver01 ~]$
Listando todas as Gold Images no repositório do FPP Server:
rhpctl query image
[grid@fppserver01 ~]$ rhpctl query image fppserver01.dibiei.com: Audit ID: 40 Image name: gi19cR11 Image name: db19cR11 Image name: db19cR3 [grid@fppserver01 ~]$
Consultando detalhes da Gold Image db19cR11:
rhpctl query image -image db19cR11
[grid@fppserver01 ~]$ rhpctl query image -image db19cR11 fppserver01.dibiei.com: Audit ID: 41 Image name: db19cR11 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/idb19cR11931614/.ACFS/snaps/idb19cR11/swhome Image state: PUBLISHED Image size: 9602 Megabytes Image Type: ORACLEDBSOFTWARE Image Version: 19.0.0.0.0:19.11.0.0.0 Groups configured in the image: OSDBA=dba,OSBACKUP=dba,OSDG=dba,OSKM=dba,OSRAC=dba Image platform: Linux_AMD64 Interim patches installed: 32579761,32545013 Contains a non-rolling patch: FALSE Complete: TRUE [grid@fppserver01 ~]$
O atributo “Interim patches installed” lista os números dos instalados nos binários da Gold Image.
Usando Oracle Home Existente em FPP Target sem FPP Client
Neste exemplo estamos criando uma Gold Image do Oracle Database 12cR1 que está instalado no servidor lab02 e não possui um FPP Client configurado. Esse recurso é muito interessante pois uma vez que o FPP Server tenha sido configurado no ambiente, podemos começar criar e provisionar Gold Images em qualquer servidor sem nenhuma instalação de agente ou cliente nos Targets.
Sem a presença de um FPP Client, usamos o parâmetro -targetnode ao invés de -client. Também, sem o FPP Client, precisamos usar o parâmetro -root ou -sudouser em conjunto com -sudopath para indicar ao FPP Server como deve ser realizada a conexão SSH com o Target.
Neste exemplo, estamos usando a opção -root, a senha do usuário é solicitada após iniciar a execução do comando.
rhpctl import image -image db12cR1 -path /u01/app/oracle/product/12.1.0.2/db_1/ -targetnode lab02 -root
[grid@fppserver01 ~]$ rhpctl import image -image db12cR1 -path /u01/app/oracle/product/12.1.0.2/db_1/ -targetnode lab02 -root Enter user "root" password: fppserver01.dibiei.com: Audit ID: 42 fppserver01.dibiei.com: Adding storage for image ... fppserver01.dibiei.com: Creating a new ACFS file system for image "db12cR1" ... fppserver01.dibiei.com: Creating export file system ... fppserver01.dibiei.com: Starting export file system... fppserver01.dibiei.com: Mounting file system... fppserver01.dibiei.com: Copying files... fppserver01.dibiei.com: Removing export file system ... [grid@fppserver01 ~]$
Note essas 3 etapas adicionais após a criaçã da partição ACFS:
fppserver01.dibiei.com: Creating export file system ... fppserver01.dibiei.com: Starting export file system... fppserver01.dibiei.com: Mounting file system...
Sem um FPP Client, o FPP usa um compartilhamento via NFS temporário para realizar a cópia dos arquivos do Oracle Home para a partição ACFS criada no FPP Server. Neste cenário é necessário existir um HAVIP configurado no Cluster, conforme descrito em “Adicionando um Grid Name Service (GNS) Virtual IP no Grid Infrastructure” do post Oracle Fleet Patching & Provisioning (FPP): Configuração do FPP Server 19c.
Ao final da cópia, o compartilhamento é removido:
fppserver01.dibiei.com: Removing export file system ...
Conclusão
Este post apresentou como adicionar Gold Images no repositório do Fleet Patching and Provisioning usando diferentes fontes e métodos de importação. No próximos post será demonstrado como usar as Gold Image para provisionar novas instalações do Oracle Grid Infrastructure e Oracle Database, que poderão ser utilizadas para realizar operações de patch e upgrade de banco de dados usando a automação do FPP.