Utilizzo di AWS CLI per configurare la raccolta dei dati di inventario - AWS Systems Manager

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Utilizzo di AWS CLI per configurare la raccolta dei dati di inventario

Le procedure seguenti forniranno le istruzioni per configurare AWS Systems Manager Inventory per raccogliere i metadati dai tuoi nodi gestiti. Quando configuri la raccolta dell'inventario, puoi iniziare creando un'associazione State Manager Systems Manager. Systems Manager raccoglie i dati di inventario quando viene eseguita l'associazione. Se non crei prima l'associazione e tenti di richiamare il plugin aws:softwareInventory utilizzando, ad esempio, Run Command Systems Manager, il sistema restituisce il seguente errore:

The aws:softwareInventory plugin can only be invoked via ssm-associate.

Nota

Un nodo può avere una sola associazione di Inventory configurata alla volta. Se configuri un nodo con due o più associazioni di Inventory, l'associazione non viene eseguita e non viene raccolto alcun dato dell'inventario.

Configura rapidamente tutti i nodi gestiti per Inventory () CLI

Puoi configurare rapidamente tutti i nodi gestiti nella tua regione Account AWS e nella regione corrente per raccogliere i dati di inventario. Questo processo è noto come creazione di un'associazione di inventario globale. Per creare un'associazione di inventario globale utilizzando AWS CLI, utilizzate l'opzione wildcard per il instanceIds valore, come illustrato nella procedura seguente.

Per configurare l'inventario per tutti i nodi gestiti nella tua regione Account AWS e nella regione corrente () CLI
  1. Installa e configura AWS Command Line Interface (AWS CLI), se non l'hai già fatto.

    Per informazioni, consulta la pagina Installazione o aggiornamento della versione più recente di AWS CLI.

  2. Esegui il comando seguente.

    Linux & macOS
    aws ssm create-association \ --name AWS-GatherSoftwareInventory \ --targets Key=InstanceIds,Values=* \ --schedule-expression "rate(1 day)" \ --parameters applications=Enabled,awsComponents=Enabled,customInventory=Enabled,instanceDetailedInformation=Enabled,networkConfig=Enabled,services=Enabled,windowsRoles=Enabled,windowsUpdates=Enabled
    Windows
    aws ssm create-association ^ --name AWS-GatherSoftwareInventory ^ --targets Key=InstanceIds,Values=* ^ --schedule-expression "rate(1 day)" ^ --parameters applications=Enabled,awsComponents=Enabled,customInventory=Enabled,instanceDetailedInformation=Enabled,networkConfig=Enabled,services=Enabled,windowsRoles=Enabled,windowsUpdates=Enabled
Nota

Questo comando non consente a Inventory di raccogliere metadati per il Registro di sistema o i file di Windows. Per l'inventario di questi tipi di dati, utilizza la procedura successiva.

Configurazione manuale di Inventory sui nodi gestiti () CLI

Utilizza la seguente procedura per configurare manualmente AWS Systems Manager Inventory sui nodi gestiti utilizzando il nodo IDs o i tag.

Per configurare manualmente i nodi gestiti per l'inventario (CLI)
  1. Installa e configura AWS Command Line Interface (AWS CLI), se non l'hai già fatto.

    Per informazioni, consulta la pagina Installazione o aggiornamento della versione più recente di AWS CLI.

  2. Eseguire questo comando per creare un'associazione State Manager che esegue Inventory di Systems Manager sul nodo. Sostituisci ciascuno example resource placeholder con le tue informazioni. Questo comando configura il servizio perché venga eseguito ogni sei ore e per raccogliere da un nodo dati su configurazione della rete, Windows Update e metadati dell'applicazione.

    Linux & macOS
    aws ssm create-association \ --name "AWS-GatherSoftwareInventory" \ --targets "Key=instanceids,Values=an_instance_ID" \ --schedule-expression "rate(240 minutes)" \ --output-location "{ \"S3Location\": { \"OutputS3Region\": \"region_ID, for example us-east-2\", \"OutputS3BucketName\": \"amzn-s3-demo-bucket\", \"OutputS3KeyPrefix\": \"Test\" } }" \ --parameters "networkConfig=Enabled,windowsUpdates=Enabled,applications=Enabled"
    Windows
    aws ssm create-association ^ --name "AWS-GatherSoftwareInventory" ^ --targets "Key=instanceids,Values=an_instance_ID" ^ --schedule-expression "rate(240 minutes)" ^ --output-location "{ \"S3Location\": { \"OutputS3Region\": \"region_ID, for example us-east-2\", \"OutputS3BucketName\": \"amzn-s3-demo-bucket\", \"OutputS3KeyPrefix\": \"Test\" } }" ^ --parameters "networkConfig=Enabled,windowsUpdates=Enabled,applications=Enabled"

    Il sistema risponde con informazioni simili alle seguenti.

    {
        "AssociationDescription": {
            "ScheduleExpression": "rate(240 minutes)",
            "OutputLocation": {
                "S3Location": {
                    "OutputS3KeyPrefix": "Test",
                    "OutputS3BucketName": "Test bucket",
                    "OutputS3Region": "us-east-2"
                }
            },
            "Name": "The name you specified",
            "Parameters": {
                "applications": [
                    "Enabled"
                ],
                "networkConfig": [
                    "Enabled"
                ],
                "windowsUpdates": [
                    "Enabled"
                ]
            },
            "Overview": {
                "Status": "Pending",
                "DetailedStatus": "Creating"
            },
            "AssociationId": "1a2b3c4d5e6f7g-1a2b3c-1a2b3c-1a2b3c-1a2b3c4d5e6f7g",
            "DocumentVersion": "$DEFAULT",
            "LastUpdateAssociationDate": 1480544990.06,
            "Date": 1480544990.06,
            "Targets": [
                {
                    "Values": [
                       "i-02573cafcfEXAMPLE"
                    ],
                    "Key": "InstanceIds"
                }
            ]
        }
    }

    È possibile scegliere come target grandi gruppi di nodi utilizzando il Targets parametro con i EC2 tag. Guarda l'esempio seguente.

    Linux & macOS
    aws ssm create-association \ --name "AWS-GatherSoftwareInventory" \ --targets "Key=tag:Environment,Values=Production" \ --schedule-expression "rate(240 minutes)" \ --output-location "{ \"S3Location\": { \"OutputS3Region\": \"us-east-2\", \"OutputS3BucketName\": \"amzn-s3-demo-bucket\", \"OutputS3KeyPrefix\": \"Test\" } }" \ --parameters "networkConfig=Enabled,windowsUpdates=Enabled,applications=Enabled"
    Windows
    aws ssm create-association ^ --name "AWS-GatherSoftwareInventory" ^ --targets "Key=tag:Environment,Values=Production" ^ --schedule-expression "rate(240 minutes)" ^ --output-location "{ \"S3Location\": { \"OutputS3Region\": \"us-east-2\", \"OutputS3BucketName\": \"amzn-s3-demo-bucket\", \"OutputS3KeyPrefix\": \"Test\" } }" ^ --parameters "networkConfig=Enabled,windowsUpdates=Enabled,applications=Enabled"

    È anche possibile eseguire un inventario di file e chiavi del registro di sistema di Windows su un nodo Windows Server utilizzando i tipi di inventario files e windowsRegistry con espressioni. Per ulteriori informazioni su questi tipi di inventario, consulta Utilizzo dell'inventario dei file e del registro di sistema di Windows.

    Linux & macOS
    aws ssm create-association \ --name "AWS-GatherSoftwareInventory" \ --targets "Key=instanceids,Values=i-0704358e3a3da9eb1" \ --schedule-expression "rate(240 minutes)" \ --parameters '{"files":["[{\"Path\": \"C:\\Program Files\", \"Pattern\": [\"*.exe\"], \"Recursive\": true}]"], "windowsRegistry": ["[{\"Path\":\"HKEY_LOCAL_MACHINE\\Software\\Amazon\", \"Recursive\":true}]"]}' \ --profile dev-pdx
    Windows
    aws ssm create-association ^ --name "AWS-GatherSoftwareInventory" ^ --targets "Key=instanceids,Values=i-0704358e3a3da9eb1" ^ --schedule-expression "rate(240 minutes)" ^ --parameters '{"files":["[{\"Path\": \"C:\\Program Files\", \"Pattern\": [\"*.exe\"], \"Recursive\": true}]"], "windowsRegistry": ["[{\"Path\":\"HKEY_LOCAL_MACHINE\\Software\\Amazon\", \"Recursive\":true}]"]}' ^ --profile dev-pdx
  3. Eseguire questo comando per visualizzare lo stato dell'associazione.

    aws ssm describe-instance-associations-status --instance-id an_instance_ID

    Il sistema risponde con informazioni simili alle seguenti.

    {
    "InstanceAssociationStatusInfos": [
             {
                "Status": "Pending",
                "DetailedStatus": "Associated",
                "Name": "reInvent2016PolicyDocumentTest",
                "InstanceId": "i-1a2b3c4d5e6f7g",
                "AssociationId": "1a2b3c4d5e6f7g-1a2b3c-1a2b3c-1a2b3c-1a2b3c4d5e6f7g",
                "DocumentVersion": "1"
            }
    ]
    }