Exemple de charge utile pour BYOL
Exemple de charge utile qui remplit la table Installation de logiciel [cmdb_sam_sw_install] dans l’instance ServiceNow avec les données de détection collectées par le modèle de gestion des licences BYOL.
Certaines entités doivent être renseignées pour que BYOL fonctionne avec la connexion des actifs logiciels en tant que source de découverte tierce. La relation entre ces entités est cruciale pour que BYOL fonctionne sans heurts avec les connexions d’actifs logiciels. Par exemple, certaines valeurs requises pour renseigner les hôtes dans le cloud sont différentes pour AWS et Azure. Bien que l’ID d’objet et le nom de l’hôte soient requis pour les deux AWSAzureet , pour AWS, le nombre de cœurs du processeur est requis et pour Azure, la valeur du type d’hôte est requise. Pour en savoir plus sur les entités et leurs relations, reportez-vous à la section Entités pour BYOL et Relations entre les entités pour BYOL.
Dans cet exemple, le compte de services dans le cloud est l’entité la plus élevée. Toutes les autres entités répertoriées dans la table Entités pour BYOL sont des entités dépendantes de Cloud Service Account. Si une entité est marquée comme entité dépendante, l’entité parente et la relation entre cette entité et son parent doivent être mentionnées dans la même charge utile. Par exemple, si vous souhaitez créer un centre de données sur un AWS compte de services dans le cloud, vous devez inclure l’entité Compte de services dans le cloud dans la même charge utile, même si un compte de services dans le cloud existe déjà dans votre instance. De même, lorsque vous créez des installations de logiciels, vous devez inclure toutes les entités dépendantes des installations de logiciels dans toute la hiérarchie dans la même charge utile.
Entités pour BYOL
| Entités | Champs obligatoires |
|---|---|
| Compte de services dans le cloud [cmdb_ci_cloud_service_account] | account_id : identificateur unique |
| AWS Centres de données [cmdb_ci_aws_datacenter] | object_id : identificateur unique |
| Azure Centres de données [cmdb_ci_azure_datacenter] | object_id : identificateur unique |
| Hôtes dans le cloud [cmdb_ci_cloud_host] Remarque : Non nécessaire pour les ordinateurs virtuels partagés. |
|
| Instances d’ordinateurs virtuels [cmdb_ci_vm_instance] | object_id : identificateur unique |
| Ordinateurs [cmdb_ci_computer] |
|
Installations de logiciel [cmdb_sam_sw_install] Remarque : Installations de logiciel [cmdb_sam_sw_install] est une entrée liée à Ordinateurs [cmdb_ci_computer] |
|
Relations entre les entités pour BYOL
| Relations d’entités | Type | Société parente | Enfant |
|---|---|---|---|
| Centres de données AWS/Azure : compte de services dans le cloud | Hébergé sur::Hôtes | Centres de données AWS/Azure | Compte de services dans le cloud |
| Centres de données AWS/Azure : hôtes cloud | Hébergé sur::Hôtes | Hôtes dans le cloud | Centres de données AWS/Azure |
| Centres de données AWS/Azure : instances d’ordinateurs virtuels | Hébergé sur::Hôtes | Instances d'ordinateurs virtuels | Centres de données AWS/Azure |
| Hôtes dans le cloud : instances d’ordinateurs virtuels | Runs on::Runs | Instances d'ordinateurs virtuels | Hôtes dans le cloud |
| Ordinateurs : instances d’ordinateurs virtuels | Virtualized by::Virtualizes | Ordinateurs | Instances d'ordinateurs virtuels |
Exemple de charge utile pour Ordinateur et installations pour ordinateur virtuel dédié (similaire pour AWS et Azure)
Dans cet exemple de charge utile, un enregistrement d’ordinateur dédié est en cours de transmission. Cet enregistrement d’ordinateur comporte un tableau connexe qui contient toutes les installations de logiciels. Une instance d’ordinateur virtuel correspond à l’enregistrement de l’ordinateur. L’hôte dans le cloud est l’hôte dédié sur lequel réside l’ordinateur virtuel et le AWS centre de données doit être créé sur le compte Cloud Service. Si vous disposez de plusieurs ordinateurs virtuels dédiés, vous pouvez envoyer une API REST pour chaque ordinateur virtuel dédié. Par exemple, si vous avez 50 machines virtuelles dédiées, vous devez envoyer 50 appels d’API REST ayant chacun la même charge utile. Toutes les installations logicielles sur une machine virtuelle dédiée peuvent être envoyées dans une seule charge utile dans la baie connexe.
var payload = {
'items': [{
'className': 'cmdb_ci_computer',
'values': {
'name': 'Comp - Dedicated AWS - 1',
'cpu_count': 1,
'cpu_core_count': 4,
'cpu_core_thread': 1,
'virtual': true
},
'related': [{
'className': 'cmdb_sam_sw_install',
'values': {
'publisher': 'Microsoft',
'display_name': 'SQL Server',
'version': '2017',
'cloud_license_type': 'BYOL',
'cloud_license_type_source': 'third_party_integration'
}
}]
}, {
'className': 'cmdb_ci_vm_instance',
'values': {
'object_id': 'sample_object_id_aws_vm_dedicated',
'name': 'VM Dedicated AWS - 1',
}
}, {
'className': 'cmdb_ci_cloud_host',
'values': {
'object_id': 'sample_object_id_aws_host',
'name': 'AWS Dedicated Host - 1',
'cpu_core_count': 32
}
}, {
'className': 'cmdb_ci_aws_datacenter',
'values': {
'object_id': 'sample_object_id_aws_dc',
'name': 'AWS DataCenter - 1'
}
}, {
'className': 'cmdb_ci_cloud_service_account',
'values': {
'account_id': 'sample_account_id_aws_service_account',
'name': 'Cloud Service Account AWS - 1'
}
}],
'relations': [{
'type': 'Virtualized by::Virtualizes',
'parent': 0,
'child': 1
}, {
'type': 'Runs on::Runs',
'parent': 1,
'child': 2
},
{
'type': 'Hosted on::Hosts',
'parent': 2,
'child': 3
}, {
'type': 'Hosted on::Hosts',
'parent': 3,
'child': 4
}
]
}
var jsonUntil = new JSON();
var input = jsonUntil.encode(payload);
gs.info("Input: " + input.toString());
var options = {
"partial_payloads": false,
"deduplicate_payloads": true
};
var output = SNC.IdentificationEngineScriptableApi.createOrUpdateCIEnhanced('ServiceNow', input, options);
gs.print("Output:" + output);