Menggunakan AWS CLI untuk mengkonfigurasi pengumpulan data inventaris - AWS Systems Manager

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Menggunakan AWS CLI untuk mengkonfigurasi pengumpulan data inventaris

Prosedur berikut memandu Anda melalui proses konfigurasi AWS Systems Manager Inventaris untuk mengumpulkan metadata dari node terkelola Anda. Saat mengonfigurasi pengumpulan inventaris, Anda mulai dengan membuat State Manager asosiasi Systems Manager. Systems Manager mengumpulkan data inventaris saat asosiasi dijalankan. Jika Anda tidak membuat asosiasi terlebih dahulu, dan mencoba memanggil aws:softwareInventory plugin dengan menggunakan, misalnya, Systems ManagerRun Command, sistem mengembalikan kesalahan berikut:

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

catatan

Sebuah node hanya dapat memiliki satu asosiasi inventaris yang dikonfigurasi pada satu waktu. Jika Anda mengonfigurasi node dengan dua atau lebih asosiasi inventaris, asosiasi tidak berjalan dan tidak ada data inventaris yang dikumpulkan.

Konfigurasikan semua node terkelola Anda dengan cepat untuk Inventory (CLI)

Anda dapat dengan cepat mengonfigurasi semua node terkelola di Wilayah Anda Akun AWS dan di Wilayah saat ini untuk mengumpulkan data inventaris. Hal ini disebut pembuatan asosiasi inventaris global. Untuk membuat asosiasi inventaris global dengan menggunakan AWS CLI, gunakan opsi wildcard untuk instanceIds nilai, seperti yang ditunjukkan dalam prosedur berikut.

Untuk mengonfigurasi inventaris untuk semua node terkelola di Region () Anda Akun AWS dan di Region saat ini (CLI)
  1. Instal dan konfigurasikan AWS Command Line Interface (AWS CLI), jika Anda belum melakukannya.

    Untuk selengkapnya, lihat Menginstal atau memperbarui versi terbaru AWS CLI.

  2. Jalankan perintah berikut.

    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
catatan

Perintah ini tidak mengizinkan Inventaris untuk mengumpulkan metadata untuk Registri Windows atau file. Untuk menginventarisasi jenis data ini, gunakan prosedur berikutnya.

Mengkonfigurasi Inventaris secara manual pada node terkelola Anda () CLI

Gunakan prosedur berikut untuk mengonfigurasi AWS Systems Manager Inventaris secara manual pada node terkelola Anda dengan menggunakan node IDs atau tag.

Untuk mengonfigurasi node terkelola Anda secara manual untuk inventaris (CLI)
  1. Instal dan konfigurasikan AWS Command Line Interface (AWS CLI), jika Anda belum melakukannya.

    Untuk selengkapnya, lihat Menginstal atau memperbarui versi terbaru AWS CLI.

  2. Jalankan perintah berikut untuk membuat State Manager asosiasi yang menjalankan Systems Manager Inventory pada node. Ganti masing-masing example resource placeholder dengan informasi Anda sendiri. Perintah ini mengkonfigurasi layanan untuk dijalankan setiap enam jam dan untuk mengumpulkan konfigurasi jaringan, Pembaruan Windows, dan metadata aplikasi dari sebuah node.

    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"

    Sistem menanggapi dengan informasi seperti berikut.

    {
        "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"
                }
            ]
        }
    }

    Anda dapat menargetkan kelompok besar node dengan menggunakan Targets parameter dengan EC2 tag. Lihat contoh berikut.

    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"

    Anda juga dapat menginventarisasi file dan kunci Windows Registry pada Windows Server node dengan menggunakan tipe files dan windowsRegistry inventaris dengan ekspresi. Untuk informasi lebih lanjut tentang jenis inventaris ini, lihat Menggunakan file dan inventaris registri 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. Jalankan perintah berikut untuk melihat status asosiasi.

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

    Sistem menanggapi dengan informasi seperti berikut.

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