Enterprise Manager 12C : Déploiement des Agents, mode "Pull"

Oracle Enterprise Manager Cloud Control, l’évolution d’ORACLE EM Grid Control tel que nous l’avons déjà présenté et installé est maintenant bien stabilisé dans une version « 12.1.0.2 Plug In Update One » (qui fait partie des téléchargements les plus populaires du site Oracle Technologie Network).
Ses attraits sont nombreux et en dehors de la nécessité de disposer de son propre serveur , voire de plusieurs, si on souhaite un peu de disponibilité et de la performance (ce qui peut se comprendre pour superviser et gérer un parc croissant de bases de données) on peut s’appuyer franchement sur cette architecture pour se simplifier la vie dans ses tâches routinières d’administrateur de SI. Plus je le pratique et plus j’en suis persuadé, c’est pourquoi je continue de faire des posts sur le sujet. Celui-ci  reprend plus spécialement les solutions de déploiement des agents.
Les possibilités de déployer un agent (OMA,  Oracle Management Agent) dans la version 12c sont nombreuses et outre le fait que les fonctionnalités de détection des serveurs sur le réseau sont maintenant possibles  ont peut retenir principalement :

  • Méthode PUSH depuis le serveur OMS , à condition d’avoir une configuration SSH vers la machine où réaliser l’opération ;
  • Clonage d’un agent existant vers une nouvelle machine (la configuration est faîte automatiquement) ;
  • Installation depuis le serveur cible avec une distribution (personnellement celle que je préfère car si le fait de passer sur chaque machine reste un inconvénient, on garde la maitrise totale du processus et la certitude qu’il se déroule correctement de bout en bout tout en ayant la possibilité de limiter au minimum les actions manuelles).

Dans ce dernier cas, une des possibilités des versions précédentes, était de récupérer le script de téléchargement correspondant à la bonne distribution via une commande wget puis d’exécuter ce script. Les différents binaires utilisables étant stockés sous le serveur comme dépôt dans une arborescence de type OMS_HOME/agent_download/<version>/<OS>.
Pour la version 12C , les binaires des agents ne sont plus directement accessibles, le stockage et le déploiement des logiciels étant plus évolués , il faut au préalable extraire la version souhaitée avant de la transférer sur le serveur cible et de l’utiliser. Voici comment :
Récupération de la distribution de l’agent
Le premier point à prendre en compte est l’ utilisation de l’utilitaire du produit nommé “emcli”  (outil client en java),  disponible d’office sur le serveur où la partie OMS est installée, mais pouvant être présent sur n’importe quelle machine du réseau ayant un accès au serveur OMS en le téléchargeant depuis celui-ci (pour retrouver les nombreuses fonctionnalités et leurs détails, allez voir la documentation associée).
La méthode  est d’abord de se connecter, de synchroniser les informations,  puis de passer les commandes (attention on ne passe pas sous un prompt spécifique) :
a) Connexion

[ServeurOMS:bin]$ ./emcli login -username=sysman
Enter password
Login successful

b) Synchronisation des informations en provenance de l’application OMS

[ServeurOMS:bin]$ ./emcli sync
Synchronisation réussie

c) Obtention de la liste des distributions disponibles

[ServeurOMS:bin]$ ./emcli get_supported_platforms
Getting list of platforms ...
Check the logs at /u01/oracle/em/gc_inst/em/EMGC_OMS1/sysman/emcli/setup/.emcli/agent.log
About to access self-update code path to retrieve the platforms list..
Getting Platforms list ...
-----------------------------------------------
Version = 12.1.0.2.0
Platform = Linux x86-64
-----------------------------------------------
Platforms list displayed successfully.

d) Extraction de  la version associée à la plateforme dans le répertoire choisi

[ServeurOMS:bin]$ ./emcli get_agentimage -destination=/tmp -platform="Linux x86-64" -version=12.1.0.2.0
Platform:Linux x86-64
Destination:/tmp
=== Partition Detail ===
Space free : 1 GB
Space required : 1 GB
Check the logs at /u01/oracle/em/gc_inst/em/EMGC_OMS1/sysman/emcli/setup/.emcli/get_agentimage_2012-09-15_08-57-32-AM.log
Setting property ORACLE_HOME to:/u01/oracle/em/oms
calling pulloneoffs with arguments:/u01/oracle/em/oms/u01/oracle/em/oms/sysman/agent/12.1.0.2.0_AgentCore_226.zip12.1.0.2.0linux_x64
Check this logs for more information: /u01/oracle/em/oms/sysman/prov/agentpush/logs

Transfert et installation
Une fois le fichier zip sous le répertoire , il faut le transférer sur le serveur où l’installation de l’agent va se faire, décompresser la distribution et lancer l’installation en passant en paramètre les informations sur le nom, le port et le mot de passe du serveur oms et le répertoire où sera installé l’agent.
a) Décompression des fichiers pour l’installation

[ServeurCible:Distrib]$ mkdir agent12c
[ServeurCible:Distrib]$ cd agent12c
[ServeurCible:Distrib]$ unzip ../12.1.0.2.0_AgentCore_226.zip
Archive: ../12.1.0.2.0_AgentCore_226.zip
inflating: unzip
inflating: agentDeploy.sh
inflating: agentimage.properties
inflating: agent.rsp
extracting: agentcoreimage.zip
extracting: 12.1.0.2.0_PluginsOneoffs_226.zip

b) Déploiement de l’agent
Exécution du script agentDeploy.sh qui réalise l’ensemble des opérations

[ServeurCible:Distrib]$ ./agentDeploy.sh AGENT_BASE_DIR=/u01/oracle/agent OMS_HOST=OEL63B.ele.com EM_UPLOAD_PORT=4904 AGENT_REGISTRATION_PASSWORD=xxxxxx
Validating the OMS_HOST & EM_UPLOAD_PORT
Executing command : /u01/oracle/agent/core/12.1.0.2.0/jdk/bin/java -classpath /u01/oracle/agent/core/12.1.0.2.0/jlib/agentInstaller.jar:/u01/oracle/agent/core/12.1.0.2.0/oui/jlib/OraInstaller.jar oracle.sysman.agent.installer.AgentInstaller /u01/oracle/agent/core/12.1.0.2.0 /media/sf_D_DRIVE/Distrib/agent12c /u01/oracle/agent -prereq
Validation de l'hôte et du port OMS avec l'URL : http://OEL63B.ele.com:4904/empbs/genwallet
Validation de l'hôte et du port OMS avec l'URL : https://OEL63B.ele.com:4904/empbs/genwallet
Return status:3
Unzipping the agentcoreimage.zip to /u01/oracle/agent ....
12.1.0.2.0_PluginsOneoffs_226.zip
Executing command : /media/sf_D_DRIVE/Distrib/agent12c/unzip -o /media/sf_D_DRIVE/Distrib/agent12c/12.1.0.2.0_PluginsOneoffs_226.zip -d /u01/oracle/agent
Executing command : /u01/oracle/agent/core/12.1.0.2.0/jdk/bin/java -classpath /u01/oracle/agent/core/12.1.0.2.0/oui/jlib/OraInstaller.jar:/u01/oracle/agent/core/12.1.0.2.0/oui/jlib/xmlparserv2.jar:/u01/oracle/agent/core/12.1.0.2.0/oui/jlib/srvm.jar:/u01/oracle/agent/core/12.1.0.2.0/oui/jlib/emCfg.jar:/u01/oracle/agent/core/12.1.0.2.0/jlib/agentInstaller.jar:/u01/oracle/agent/core/12.1.0.2.0/oui/jlib/share.jar oracle.sysman.agent.installer.AgentInstaller /u01/oracle/agent/core/12.1.0.2.0 /media/sf_D_DRIVE/Distrib/agent12c /u01/oracle/agent /u01/oracle/agent/agent_inst AGENT_BASE_DIR=/u01/oracle/agent AGENT_BASE_DIR=/u01/oracle/agent OMS_HOST=OEL63B.ele.com EM_UPLOAD_PORT=4904 AGENT_REGISTRATION_PASSWORD=easyteam1
Exécution des prérequis pour l'installation de l'agent...
Exécution de la commande : /u01/oracle/agent/core/12.1.0.2.0/oui/bin/runInstaller -ignoreSysPrereqs -prereqchecker -silent -ignoreSysPrereqs -waitForCompletion -prereqlogloc /u01/oracle/agent/core/12.1.0.2.0/cfgtoollogs/agentDeploy -entryPoint oracle.sysman.top.agent_Complete -detailedExitCodes PREREQ_CONFIG_LOCATION=/u01/oracle/agent/core/12.1.0.2.0/prereqs -J-DAGENT_BASE_DIR=/u01/oracle/agent
Prereq Logs Location:/u01/oracle/agent/core/12.1.0.2.0/cfgtoollogs/agentDeploy/prereq<timestamp>.log
Les prérequis pour l'installation de l'agent ont été appliqués
Clonage du répertoire d'origine Oracle Home de l'agent...
Exécution de la commande : /u01/oracle/agent/core/12.1.0.2.0/oui/bin/runInstaller -ignoreSysPrereqs -clone -forceClone -silent -waitForCompletion -nowait ORACLE_HOME=/u01/oracle/agent/core/12.1.0.2.0 AGENT_BASE_DIR=/u01/oracle/agent AGENT_BASE_DIR=/u01/oracle/agent OMS_HOST=OEL63B.ele.com EM_UPLOAD_PORT=4904 AGENT_REGISTRATION_PASSWORD=easyteam1 -noconfig ORACLE_HOME_NAME=agent12c1 -force b_noUpgrade=true AGENT_PORT=-1
Clone Action Logs Location:/u01/oraInventory/logs/cloneActions<timestamp>.log
Attachement du répertoire d'origine Oracle Home sbin...
Exécution de la commande : /u01/oracle/agent/core/12.1.0.2.0/oui/bin/runInstaller -ignoreSysPrereqs -attachHome -waitForCompletion -nowait ORACLE_HOME=/u01/oracle/agent/sbin ORACLE_HOME_NAME=sbin12c1 -force
Attach Home Logs Location:/u01/oracle/agent/core/12.1.0.2.0/cfgtoollogs/agentDeploy/AttachHome<timestamp>.log
Répertoire d'origine Oracle Home attaché au répertoire d'origine Oracle Home sbin.
Updating home dependencies...
Exécution de la commande : /u01/oracle/agent/core/12.1.0.2.0/oui/bin/runInstaller -ignoreSysPrereqs -updateHomeDeps -waitForCompletion HOME_DEPENDENCY_LIST={/u01/oracle/agent/sbin:/u01/oracle/agent/core/12.1.0.2.0,} -invPtrLoc /u01/oracle/agent/core/12.1.0.2.0/oraInst.loc -force
Update Home Dependencies Location:/u01/oracle/agent/core/12.1.0.2.0/cfgtoollogs/agentDeploy/UpdateHomeDeps<timestamp>.log
Dépendance du répertoire d'origine Oracle Home mise à jour.
Configuration de l'agent en cours...
Exécution de la commande : /u01/oracle/agent/core/12.1.0.2.0/oui/bin/runConfig.sh ORACLE_HOME=/u01/oracle/agent/core/12.1.0.2.0 RESPONSE_FILE=/u01/oracle/agent/core/12.1.0.2.0/agent.rsp ACTION=configure MODE=perform COMPONENT_XML={oracle.sysman.top.agent.11_1_0_1_0.xml} RERUN=true
Configuration Log Location:/u01/oracle/agent/core/12.1.0.2.0/cfgtoollogs/cfgfw/CfmLogger<timestamp>.log
Agent Configuration completed successfully
Les scripts de configuration suivants doivent être exécutés en tant qu'utilisateur "root".
#!/bin/sh
#Script root à exécuter
/u01/oracle/agent/core/12.1.0.2.0/root.sh
Pour exécuter les scripts de configuration, procédez comme suit :
1. Ouvrez une fenêtre de terminal
2. Connectez-vous en tant que "root"
3. Exécutez les scripts
Agent déployé.
Agent deployment log location:
/u01/oracle/agent/core/12.1.0.2.0/cfgtoollogs/agentDeploy/agentDeploy_2012-09-16_08-34-51-AM.log
Agent deployment completed successfully.

Finalisation et vérification
Il reste l’exécution du script root.sh (pour le positionnement des droits)

[ServeurCible:Distrib]# /u01/oracle/agent/core/12.1.0.2.0/root.sh
Finished product-specific root actions.
/etc exist
Creating /etc/oragchomelist file...
Finished product-specific root actions

Et la vérification du bon fonctionnement (notez le changement dans l’arborescence du produit avec la présence du sous répertoire “core”  qui représente le tronc principal de l’application)

[ServeurCible:Distrib]$ cd core/12.1.0.2.0/bin/
[ServeurCible:Distrib]$ ./emctl status agent
Oracle Enterprise Manager Cloud Control 12c Release 2
Copyright (c) 1996, 2012 Oracle Corporation. All rights reserved.
---------------------------------------------------------------
Agent Version : 12.1.0.2.0
OMS Version : 12.1.0.2.0
Protocol Version : 12.1.0.1.0
Agent Home : /u01/oracle/agent/agent_inst
Agent Binaries : /u01/oracle/agent/core/12.1.0.2.0
Agent Process ID : 27353
Parent Process ID : 27311
Agent URL : https://ServeurCible:3872/emd/main/
Repository URL : https://ServeurOMS:4904/empbs/upload
Started at : 2012-09-16 08:42:19
Started by user : oracle
Last Reload : (none)
Last successful upload : 2012-09-16 09:24:24
Last attempted upload : 2012-09-16 09:24:24
Total Megabytes of XML files uploaded so far : 0,25
Number of XML files pending upload : 0
Size of XML files pending upload(MB) : 0
Available disk space on upload filesystem : 32,18 %
Collection Status : Collections enabled
Heartbeat Status : Ok
Last attempted heartbeat to OMS : 2012-09-16 09:25:34
Last successful heartbeat to OMS : 2012-09-16 09:25:34
Next scheduled heartbeat to OMS : 2012-09-16 09:26:34
---------------------------------------------------------------
Agent is Running and Ready

L’agent est opérationnel, il faut ensuite découvrir les cibles associées depuis l’interface EM Cloud Control.
Utilisation d’un package RPM
Un atout supplémentaire pour les systèmes sous linux est la possibilité de créer un package de type rpm et de le déployer ainsi (avec un répertoire dépôt, l’installation ne peut être plus simple). Dans ce cas il faut suivre les étapes ci dessous:
Création du RPM
En pré requis pour pouvoir créer le rpm, il faut que le répertoire /usr/lib/oracle existe et qu’il soit bien accessible:

[ServeurCible:Distrib]# mkdir /usr/lib/oracle
[ServeurCible:Distrib]# chmod 777 /usr/lib/oracle

Il faut aussi disposer d’au moins 1Go de libre sous le système de fichier cible et de 1,7Go sous /usr/lib/oracle
Ensuite,  s’il n’est pas déjà présent, il faut que le package rpm-build soit présent sur votre serveur :
S’il y est, il est visible :

[ServeurOMS]# yum info rpm-build
Loaded plugins: refresh-packagekit, security
ol6_UEK_latest                                                                                                                                       | 1.2 kB     00:00
ol6_UEK_latest/primary                                                                                                                               | 7.7 MB     00:14
ol6_UEK_latest                                                                                                                                                      176/176
ol6_ga_base                                                                                                                                          | 1.1 kB     00:00
ol6_latest                                                                                                                                           | 1.4 kB     00:00
ol6_latest/primary                                                                                                                                   |  29 MB     00:56
ol6_latest                                                                                                                                                      21431/21431
ol6_u3_base                                                                                                                                          | 1.4 kB     00:00
Installed Packages
Name        : rpm-build
Arch        : x86_64
Version     : 4.8.0
Release     : 27.el6
Size        : 314 k
Repo        : installed
From repo   : anaconda-OracleLinuxServer-201206261930.x86_64
Summary     : Scripts and executable programs used to build packages
URL         : http://www.rpm.org/
License     : GPLv2+
Description : The rpm-build package contains the scripts and executable programs
: that are used to build packages using the RPM Package Manager.
Available Packages
Name        : rpm-build
Arch        : x86_64
Version     : 4.8.0
Release     : 32.el6
Size        : 126 k
Repo        : ol6_latest
Summary     : Scripts and executable programs used to build packages
URL         : http://www.rpm.org/
License     : GPLv2+
Description : The rpm-build package contains the scripts and executable programs
: that are used to build packages using the RPM Package Manager.

S’il n’y est pas, on l’installe :

[ServeurOMS]# yum isntall rpm-build

Connexion à l’OMS

[ServeurOMS:bin]$ ./emcli login -username=sysman Enter password Login successful

On vérifie la aussi quelles sont les distributions présentes sur le serveur:

[ServeurOMS:bin]$ ./emcli get_supported_platforms
Getting list of platforms ...
Check the logs at /u01/app/oracle/product/12.1.0.2/middleware/gc_inst/em/EMGC_OMS1/sysman/emcli/setup/.emcli/agent.log
About to access self-update code path to retrieve the platforms list..
Getting Platforms list  ...
-----------------------------------------------
Version = 12.1.0.1.0
Platform = Linux x86-64
-----------------------------------------------
Version = 12.1.0.2.0
Platform = Linux x86-64
-----------------------------------------------
Version = 12.1.0.1.0
Platform = Microsoft Windows x64 (64-bit)
-----------------------------------------------
Version = 12.1.0.2.0
Platform = Linux x86
-----------------------------------------------
Platforms list displayed successfully.

Après un peu d’existence, les versions et les plateformes peuvent s’accumuler, nous prendrons la version linux 64bits la plus récente et création du rpm dans le répertoire voulu (ici /tmp) :

[OMS12C ~]$ emcli get_agentimage_rpm -destination=/tmp -platform="Linux x86-64" -version=12.1.0.2.0
Platform:Linux x86-64
Destination:/tmp
Exalogic:false
Checking for disk space requirements...
=== Partition Detail ===
Space free : 3 GB
Space required : 1 GB
Copying agent image from software library to /tmp
Setting property ORACLE_HOME to:/u01/app/oracle/product/12.1.0.2/middleware/oms
calling pulloneoffs with arguments:/u01/app/oracle/product/12.1.0.2/middleware/oms/u01/app/oracle/product/12.1.0.2/middleware/oms/sysman/agent/12.1.0.2.0_AgentCore_226.zip12.1.0.2.0Linux x86-64/tmptrue
Agent Image copied successfully...
Creation of RPM started...
RPM creation successful.
Agent image to rpm conversion completed successfully

Au final /tmp contient le fichier oracle-agt-12.1.0.2.0-1.0.x86_64.rpm d’une taille de 220Mo
Transfert et installation sur le serveur cible
Il faut ensuite transférer le rpm sur le serveur cible, par exemple sous /home/oracle/depot
– Se connecter root sur le serveur cible et faire l’installation

[ServeurCible] # cd /home/oracle/depot
[ServeurCible] #rpm –i oracle-agt-12.1.0.2.0-1.0x86_64.rpm
Running the prereq
Agent RPM installation is completed successfully. Now to configure the agent follow the below steps:
1. Edit the properties file: /usr/lib/oracle/agent/agent.properties with the correct values
2. Execute the script /etc/init.d/oracle-agt RESPONSE_FILE=/usr/lib/oracle/agent/agent.properties

– Une fois que c’est fait suivre les étapes 1. et 2. :
1) Editer le fichier agent.properties sous /usr/lib/oracle/agent (c’est le répertoire HOME de l’agent)  et positionner les variables en fonction de votre environnement (décommenter et positionner chaque variable).

OMS_HOST=ServeurOMS
OMS_PORT=7799
AGENT_REGISTRATION_PASSWORD=<mot de passe de l’agent>
AGENT_USERNAME=oracle
AGENT_GROUP=dba
AGENT_PORT=3872
ORACLE_HOSTNAME=ServeurCible.domain.com

2)  Terminer par la configuration de l’agent à l’aide du script oracle-agt sous /etc/init.d

[ServeurCible] # /etc/init.d/oracle-agt RESPONSE_FILE=/usr/lib/oracle/agent/agent.properties

Il ne reste plus qu’à vérifier que l’agent fonctionne correctement et que le dialogue se déroule bien avec l’OMS (connexion avec le compte oracle)

[ServeurCible] $ /usr/lib/oracle/agent/core/12.1.0.2.0/bin/emctl status agent

Et de réaliser la découverte des cibles depuis l’interface EM Cloud Control.
Voilà, tout cela  fait partie d’une des nombreuses possibilités et subtilités de l’infrastructure Enterprise Manager Cloud Control 12C, nous vous en ferons découvrir d’autres régulièrement,  n’hésitez à nous faire des demandes plus précises dans vos commentaires.

1 réflexion sur “Enterprise Manager 12C : Déploiement des Agents, mode "Pull"”

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *