Exemple de charge utile pour BYOL
Exemple de charge utile qui remplit la table Installation de logiciel [cmdb_sam_sw_install] de 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 Software Asset Connection en tant que source de détection tierce. La relation entre ces entités est cruciale pour que BYOL fonctionne sans problème 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 et AWSAzure, pour AWS, le nombre de cœurs du processeur est requis et pour Azure, la valeur du type d’hôte est requise. Pour plus d’informations sur les entités et leurs relations, reportez-vous à 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 du compte de services dans le cloud. 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 AWS données sur un compte de services dans le cloud, vous devez inclure l’entité du 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 pour les 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 logiciels [cmdb_sam_sw_install] Remarque : Installations de logiciels [cmdb_sam_sw_install] est une entrée connexe pour Ordinateurs [cmdb_ci_computer] |
|
Relations entre les entités pour BYOL
| Relations entre les entités | Type | Parent | 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 dans le cloud | Hébergé sur : Hôtes | Hôtes dans le cloud | Centres de données AWS/Azure |
| Centres de données AWS/Azure – Instances de machines virtuelles | 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 l’ordinateur et les installations pour l’ordinateur virtuel dédié (similaire pour AWS et Azure)
Dans cet exemple de charge utile, un enregistrement d’ordinateur dédié est transmis. Cet enregistrement d’ordinateur a 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 centre de AWS données doit être créé sur le compte de services dans le cloud. 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);