Skip to content

Instantly share code, notes, and snippets.

@yannvery
Last active August 29, 2015 14:08
Show Gist options
  • Select an option

  • Save yannvery/8474cfac1e153193b84e to your computer and use it in GitHub Desktop.

Select an option

Save yannvery/8474cfac1e153193b84e to your computer and use it in GitHub Desktop.
GRLOADER - Readme

GRLOADER

Introduction

Le GRLOADER a pour but d'importer les informations sur les CI dans une CMDB. Il utilise des documents XML en entrée (R12.6) et depuis la 12.7 il est possible de charger des documents spreadsheet ( XLS ) et des fichiers CSV.

Le GRLOADER est utilisable à partir d'une invite de commande ou à l'aide d'un fichier .bat ou .cmd.

Paramètres obligatoires

Tous les utilisations du GRLOADER demandent 3 paramètres obligatoires

  • -u id_utilisateur
  • -p mot de passe utilisateur
  • -s url suivi du n° de port du serveur qui exécute les services web.

###Exemple grloader -u servicedesk -p ServiceDesk - http://localhost:8080

Chargement de CI(s)

Le chargement d'un CI utilise l'option -ipour indiquer le nom du fichier d'entrée en XML

XML

Le répertoire suivant contient un ensemble de fichiers XML, dépourvus de données ils peuvent être utilisés pour préparer un chargement : nx_root\cmdb\data\federationAdapters\templates\

Fichier test : serveurs.xml

Exemple de fichier XML contenant la définition d'un serveur

<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<GRLoader>
   <ci>
      <name>Server_1</name>
      <class>Serveur</class>
      <family>Matériel.Serveur</family>
      <alarm_id>1</alarm_id> 
      <disk_space>5</disk_space> 
      <carrier></carrier> 
      <phys_mem>7</phys_mem> 
   </ci>
</GRLoader>

Tester le chargement

Il est possible de tester le chargement des données afin de valider la syntaxe du fichier de chargement et le nombres de CI qui vont être mis à jour ou créés.

grloader -u servicedesk -p ServiceDesk -s http://localhost:8080 -i servers.xml

Cette commande renvoie la réponse suivante :

11:03:15.931 CI and Relationship Loader for CA Service Desk Manager R12.6.000
|
Results:
               Read   Skipped   Inserts   Updates    Errors  Warnings
CI                1         1         0         0         0         0
Relation          0         0         0         0         0         0

GRLoader completed.
11:03:17.924 GRLoader ended
Ajout de CI

Pour ajouter un ou plusieur CI dans la CMDB il est nécessaire d'utiliser l'option -n :

grloader -u servicedesk -p ServiceDesk -s http://localhost:8080 -i servers.xml -n -E

Note : L'option -E est utilisée ici pour écraser le fichier servers_err.xml qui peut être généré à chaque utilisation du GRLOADER

La commande renvoie la réponse suivante :

11:04:14.437 CI and Relationship Loader for CA Service Desk Manager R12.6.000
|
Results:
               Read   Skipped   Inserts   Updates    Errors  Warnings
CI                1         0         1         0         0         0
Relation          0         0         0         0         0         0

GRLoader completed.
11:04:17.277 GRLoader ended
Mise à jour d'un CI

La mise à jour d'un ou plusieurs CI dans la CMDB est effectuer lors de l'utilisation de l'option -a :

grloader -u servicedesk -p ServiceDesk -s http://localhost:8080 -i servers.xml -a -E

La command répond :

11:12:30.419 CI and Relationship Loader for CA Service Desk Manager R12.6.000
|
Results:
               Read   Skipped   Inserts   Updates    Errors  Warnings
CI                1         0         0         1         0         1
Relation          0         0         0         0         0         0

GRLoader completed with warnings.
11:12:31.801 GRLoader ended

A noter que le warning est spécifier dans le fichier servers_err.xml en commentaire, un exemple ci-dessous

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<GRLoader>
    <ci>
        <!--WARNING: Attributes(mem_capacity number_net_card phys_mem proc_speed proc_type server_type ) do not apply to class(Service d'infrastructure) family(Service d'entreprise)-->
        <id>06FDBA420727254D821C763F8DB14F27</id>
        <name>Server_1</name>
        <class>Service d'infrastructure</class>
        <mem_capacity>24Go</mem_capacity>
        <number_net_card>123456</number_net_card>
        <phys_mem>16Go</phys_mem>
        <proc_speed>3GHz</proc_speed>
        <proc_type>QuadCore</proc_type>
        <server_type>Intel</server_type>
    </ci>
</GRLoader>

Gestion des erreurs

Comme vu précédemment si des erreurs surviennent lors de l'exécution GRLOADER, le noeud de CI ou de relation en échec est écrit dans le fichier d'erreurs. Pour corriger le problème il est nécessaire de :

  • Modifier le fichier XML
  • Relancer le GRLOADER

A noter

  • -e permet de spécifier le nom de votre fichier d'erreurs.
  • -maxerror et -maxwarn permettent de spécifier le nombre maximal d'erreurs ou d'avertissements pouvant survenir, respectivement, avant d'ignorer les CI ou les relations.

Ajout+/Modification Relation

Pour créer une relation entre 2 items, il est nécessaire de créer un noeud relation.

Dans l'exemple suivant le Server_1 va être lié au Server_2

<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<GRLoader>
   <ci>
      <name>Server_1</name>
      <class>Serveur</class>
      <family>Matériel.Serveur</family>
      <alarm_id>1</alarm_id> 
      <disk_space>5</disk_space> 
      <carrier></carrier> 
      <phys_mem>7</phys_mem> 
   </ci>
   <ci>
      <name>Server_2</name>
      <class>Serveur</class>
      <family>Matériel.Serveur</family>
      <alarm_id>1</alarm_id> 
      <disk_space>5</disk_space> 
      <carrier></carrier> 
      <phys_mem>7</phys_mem> 
   </ci>
	<relation>
	    <type>contient</type>
	    <provider>
	        <name>Server_1</name>
	    </provider>
	    <dependent>
	        <naame>Server_2</name>
	    </dependent>
	</relation>
</GRLoader>

Lancer la commande : grloader -u servicedesk -p ServiceDesk -s http://localhost:8080 -i servers.xml -a -E

Attention Le type de relation est très spécifique, il est est nécessaire de consulter la documentation pour plus de détails.

Quelques exemples de type de relations

  • administre : est administré par une entité responsable.
  • approuve : est approuvé par une entité responsable approuve.
  • autorise : est autorisé par une entité responsable autorise
  • rédige : est rédigé par une personne responsable
  • sauvegarde : est sauvegardé par une autre entité.
  • communique avec : communique avec une autre entité ...

Attention les mots clefs des relations sont spécifiques à la langue d'installation de SDM : Install française => mots clefs en français Install US => mots clefs US

CSV

Fichier test : servers.csv :

"name","class","alarm_id","disk space","carrier","phys_mem"
"Server_3","Serveur","1","5","","7"
"Server_4","Serveur","2","6","",""

Fichier de translation : servers.rul

Il est possible d'utiliser un fichier de translation qui va permettre de convertir un nom de colonne en un nom d'attribut. Ici on crée le fichier servers.rul

<ruleset>
<rule><attribute>attributename</attribute>
      <from>disk space</from><to>hard_drive_capacity</to>
      <rulename>rule12</rulename></rule>
</ruleset>
```

#### Ajouter un CI

Lancer le GRLOADER :
`grloader -u servicedesk -p ServiceDesk -s  http://localhost:8080 -i servers.csv -tf servers.rul -n -E`

#### Ajouter une relation **(Ne fonctionne pas)**
D'après la documentation et en extrapolant de la partie **chargement des données JDBC**, il serait possible d'ajouter une relation via un fichier csv en ajoutant une colonne au nom de la relation désirée ( cf. la liste des relations possible ).

````csv
"name","contient"
"Server_3","Server_4"

** Attention dans l'exemple ci-dessus la relation indiquée est spécifié en anglais, le nom de la relation doit être spécifié dans la langue d'installation de SDM**

Lancer le GRLOADER : grloader -u servicedesk -p ServiceDesk -s http://localhost:8080 -i servers_relations.csv -n -E

25/10/2014 Après plusieurs tests je ne parviens pas à charger une relation au format CSV

Options de disponible lors d'un import CSV

  • -i option à utiliser pour charger un fichier csv, celui-ci doit avoir l'extension 'csv'
  • -csvf nom_du_fichier : Spécifier le nom du fichier lorsque celui-ci n'a pas d'extension 'csv'
  • -csvsep :spécifier le séparateur ( ,par défaut )
  • -csvesc : indique quand le fichier source utilise un caractère \
  • -csvcom : indique quand le fichier source utilise un caractère #
  • -csvquote : indique quand le fichier source utilise un caractère "

Fichier de configuration

Il est possible de spécifier les options du GRLOADER dans un fichier de configuration.

Exemple de fichier de configuration

Au lieu d'utiliser la commande : GRLoader -u servicedesk -p ServiceDesk -i servers.xml -a -n -E -maxerror 10 -maxwarn 10 -s http://localhost:8080

On peut utiliser GRLoader -cfg myconfigfile.cfg -i myinputfile.xml avec le fichier de configuration suivant :

grloader.userid=servicedesk
grloader.password=ServiceDesk
grloader.server=http://localhost:8080
grloader.allowupdate=true
grloader.allowinsert=true
grloader.maxerror=10
grloader.maxwarn=10
grloader.inputfile=servers.xml
grloader.overwriteerrorxml=true

Voir la documentation pour plus de détails sur les options existantes.

Sources

https://support.ca.com/cadocs/0/CA%20Service%20Desk%20Manager%2012%207-ENU/Bookshelf_Files/HTML/CA_SDM_CMDB_Tech_Ref_ENU/index.htm?toc.htm?grloader_considerations.html

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment