Walkthrough: Membuat asosiasi yang menjalankan resep Chef - AWS Systems Manager

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

Walkthrough: Membuat asosiasi yang menjalankan resep Chef

Anda dapat membuat State Manager asosiasi yang menjalankan Chef resep dengan menggunakan dokumen AWS-ApplyChefRecipes SSM. State Manageradalah kemampuan AWS Systems Manager. Anda dapat menargetkan node terkelola Systems Manager berbasis Linux dengan dokumen SSM AWS-ApplyChefRecipes. Dokumen ini menawarkan manfaat berikut untuk menjalankan Chef resep:

  • Mendukung beberapa rilis Chef (Chef11 hingga Chef 18).

  • Secara otomatis menginstal perangkat lunak Chef klien pada node target.

  • Secara opsional menjalankan pemeriksaan kepatuhan Systems Manager pada node target, dan menyimpan hasil pemeriksaan kepatuhan di bucket Amazon Simple Storage Service (Amazon S3).

  • Menjalankan beberapa buku masak dan resep dalam satu dokumen.

  • Secara opsional menjalankan resep dalam why-run mode, untuk menunjukkan resep mana yang berubah pada node target tanpa membuat perubahan.

  • Secara opsional menerapkan atribut JSON khusus untuk chef-client dijalankan.

  • Opsional menerapkan atribut JSON kustom dari file sumber yang disimpan di lokasi yang Anda tentukan.

Anda dapat menggunakan bucket Git GitHub,, HTTP, atau Amazon S3 sebagai sumber unduhan untuk Chef buku masak dan resep yang Anda tentukan dalam dokumen. AWS-ApplyChefRecipes

catatan

Asosiasi yang menjalankan Chef resep tidak didukung pada macOS atauWindows Server.

Prasyarat: Menyiapkan asosiasi, repositori, dan buku masak Anda

Sebelum Anda membuat AWS-ApplyChefRecipes dokumen, siapkan buku masak dan Chef repositori buku masak Anda. Jika Anda belum memiliki Chef buku masak yang ingin Anda gunakan, Anda dapat memulai dengan menggunakan HelloWorld buku masak tes yang AWS telah disiapkan untuk Anda. Dokumen AWS-ApplyChefRecipes sudah menunjuk ke buku masak ini secara default. Buku masak Anda harus diatur serupa dengan struktur direktori berikut. Dalam contoh berikut, jenkins dan nginx merupakan contoh Chef buku masak yang tersedia di Chef Supermarketsitus Chef web.

Meskipun tidak AWS dapat secara resmi mendukung buku masak di Chef Supermarketsitus web, banyak dari mereka bekerja dengan AWS-ApplyChefRecipes dokumen tersebut. Berikut ini adalah contoh kriteria untuk menentukan kapan Anda menguji buku masak komunitas:

  • Buku masak harus men-support sistem operasi berbasis Linux dari node terkelola Systems Manager yang Anda targetkan.

  • Buku masak harus valid untuk versi Chef klien (Chef11 hingga Chef 18) yang Anda gunakan.

  • Buku masak kompatibel denganChef Infra Client, dan, tidak memerlukan server Chef.

Verifikasi bahwa Anda dapat mencapai Chef.io situs web, sehingga buku masak apa pun yang Anda tentukan dalam daftar jalankan dapat diinstal saat dokumen Systems Manager (dokumen SSM) berjalan. Menggunakan folder cookbooks yang di-nest disupport, tetapi tidak diperlukan; Anda dapat menyimpan buku masak langsung di tingkat root.

<Top-level directory, or the top level of the archive file (ZIP or tgz or tar.gz)> └── cookbooks (optional level) ├── jenkins │ ├── metadata.rb │ └── recipes └── nginx ├── metadata.rb └── recipes
penting

Sebelum Anda membuat State Manager asosiasi yang menjalankan Chef resep, ketahuilah bahwa dokumen yang dijalankan menginstal perangkat lunak Chef klien pada node terkelola Systems Manager Anda, kecuali jika Anda menetapkan nilai versi Chef klien. None Operasi ini menggunakan skrip instalasi dari Chef untuk menginstal Chef komponen atas nama Anda. Sebelum Anda menjalankan AWS-ApplyChefRecipes dokumen, pastikan perusahaan Anda dapat mematuhi persyaratan hukum yang berlaku, termasuk ketentuan lisensi yang berlaku untuk penggunaan Chef perangkat lunak. Untuk informasi lebih lanjut, lihat situs Chefweb.

Systems Manager dapat mengirimkan laporan kepatuhan ke bucket S3, konsol Systems Manager, atau membuat hasil kepatuhan tersedia sebagai respons terhadap perintah API Systems Manager. Untuk menjalankan laporan kepatuhan Systems Manager, profil instans yang dilampirkan ke node terkelola Systems Manager harus memiliki izin untuk menulis ke bucket S3. Profil instans harus memiliki izin untuk menggunakan API PutComplianceItem Systems Manager. Untuk informasi selengkapnya tentang kepatuhan Systems Manager, lihat AWS Systems Manager Kepatuhan.

Mencatat dokumen yang berjalan

Saat menjalankan dokumen Systems Manager (dokumen SSM) menggunakan State Manager asosiasi, Anda dapat mengonfigurasi asosiasi untuk memilih output dokumen yang dijalankan, dan Anda dapat mengirim output ke Amazon S3 atau CloudWatch Amazon Logs CloudWatch (Log). Untuk membantu memudahkan pemecahan masalah saat asosiasi selesai berjalan, verifikasi bahwa asosiasi dikonfigurasi untuk menulis output perintah ke bucket Amazon S3 atau Log. CloudWatch Untuk informasi selengkapnya, lihat Bekerja dengan asosiasi di Systems Manager.

Menerapkan atribut JSON ke target saat menjalankan resep

Anda dapat menentukan atribut JSON untuk Chef klien Anda untuk diterapkan ke node target selama menjalankan asosiasi. Saat menyiapkan asosiasi, Anda dapat memberikan JSON mentah atau memberikan jalur ke file JSON yang disimpan di Amazon S3.

Gunakan atribut JSON ketika Anda ingin menyesuaikan bagaimana resep dijalankan tanpa harus memodifikasi resep itu sendiri, misalnya:

  • Mengesampingkan sejumlah kecil atribut

    Gunakan JSON khusus untuk menghindari keharusan mempertahankan beberapa versi resep untuk mengakomodasi perbedaan kecil.

  • Memberikan nilai variabel

    Gunakan JSON kustom untuk menentukan nilai yang mungkin berubah dari run-to-run. Misalnya, jika Chef buku masak Anda mengonfigurasi aplikasi pihak ketiga yang menerima pembayaran, Anda dapat menggunakan JSON khusus untuk menentukan URL titik akhir pembayaran.

Menentukan atribut dalam JSON mentah

Berikut ini adalah contoh format yang dapat Anda gunakan untuk menentukan atribut JSON kustom untuk Chef resep Anda.

{"filepath":"/tmp/example.txt", "content":"Hello, World!"}
Menentukan jalur ke file JSON

Berikut ini adalah contoh format yang dapat Anda gunakan untuk menentukan jalur ke atribut JSON kustom untuk Chef resep Anda.

{"sourceType":"s3", "sourceInfo":"someS3URL1"}, {"sourceType":"s3", "sourceInfo":"someS3URL2"}

Gunakan Git sebagai sumber buku masak

AWS-ApplyChefRecipesDokumen menggunakan aws:downloadContentplugin untuk mengunduh Chef buku masak. Untuk mengunduh konten dari Git, tentukan informasi tentang repositori Git Anda dalam format JSON seperti pada contoh berikut. Ganti masing-masing example-resource-placeholder dengan informasi Anda sendiri.

{ "repository":"GitCookbookRepository", "privateSSHKey":"{{ssm-secure:ssh-key-secure-string-parameter}}", "skipHostKeyChecking":"false", "getOptions":"branch:refs/head/main", "username":"{{ssm-secure:username-secure-string-parameter}}", "password":"{{ssm-secure:password-secure-string-parameter}}" }

Gunakan GitHub sebagai sumber buku masak

Dokumen AWS-ApplyChefRecipes menggunakan plugin aws:downloadContent untuk mengunduh buku masak. Untuk mengunduh konten dariGitHub, tentukan informasi tentang GitHub repositori Anda dalam format JSON seperti pada contoh berikut. Ganti masing-masing example-resource-placeholder dengan informasi Anda sendiri.

{ "owner":"TestUser", "repository":"GitHubCookbookRepository", "path":"cookbooks/HelloWorld", "getOptions":"branch:refs/head/main", "tokenInfo":"{{ssm-secure:token-secure-string-parameter}}" }

Gunakan HTTP sebagai sumber buku masak

Anda dapat menyimpan Chef buku masak di lokasi HTTP kustom baik sebagai satu .zip atau tar.gz file, atau struktur direktori. Untuk mengunduh konten dari HTTP, tentukan jalur ke file atau direktori dalam format JSON seperti pada contoh berikut. Ganti masing-masing example-resource-placeholder dengan informasi Anda sendiri.

{ "url":"https://my.website.com/chef-cookbooks/HelloWorld.zip", "allowInsecureDownload":"false", "authMethod":"Basic", "username":"{{ssm-secure:username-secure-string-parameter}}", "password":"{{ssm-secure:password-secure-string-parameter}}" }

Menggunakan Amazon S3 sebagai sumber buku masak

Anda juga dapat menyimpan dan mengunduh Chef buku masak di Amazon S3 sebagai .zip satu tar.gz atau file, atau struktur direktori. Untuk mengunduh konten dari Amazon S3, tentukan jalur ke file dalam format JSON seperti pada contoh berikut. Ganti masing-masing example-resource-placeholder dengan informasi Anda sendiri.

Contoh 1: Unduh buku masak tertentu

{ "path":"https://s3.amazonaws.com/chef-cookbooks/HelloWorld.zip" }

Contoh 2: Unduh isi direktori

{ "path":"https://s3.amazonaws.com/chef-cookbooks-test/HelloWorld" }
penting

Jika Anda menentukan Amazon S3, profil instans AWS Identity and Access Management (IAM) pada node terkelola harus dikonfigurasi dengan kebijakan. AmazonS3ReadOnlyAccess Untuk informasi selengkapnya, lihat Mengonfigurasi izin instans untuk Systems Manager.

Buat asosiasi yang menjalankan Chef resep (konsol)

Prosedur berikut menjelaskan cara menggunakan konsol Systems Manager untuk membuat State Manager asosiasi yang menjalankan Chef buku masak dengan menggunakan AWS-ApplyChefRecipes dokumen.

  1. Buka AWS Systems Manager konsol di https://console.aws.amazon.com/systems-manager/.

  2. Di panel navigasi, pilih State Manager.

    -atau-

    Jika AWS Systems Manager halaman beranda terbuka terlebih dahulu, pilih ikon menu ( The menu icon ) untuk membuka panel navigasi, lalu pilih State Manager.

  3. Pilih State Manager, lalu pilih Buat asosiasi.

  4. Untuk Nama, masukkan nama yang membantu Anda mengingat tujuan asosiasi.

  5. Di daftar Dokumen, pilih AWS-ApplyChefRecipes.

  6. Di Parameter, untuk Jenis Sumber, pilih Git GitHub, HTTP, atau S3.

  7. Untuk info Sumber, masukkan informasi sumber buku masak menggunakan format yang sesuai untuk Jenis Sumber yang Anda pilih pada langkah 6. Untuk informasi selengkapnya, lihat topik berikut:

  8. Di Jalankan daftar, buat daftar resep yang ingin Anda jalankan dalam format berikut, memisahkan setiap resep dengan koma seperti yang ditunjukkan. Jangan masukkan spasi setelah koma. Ganti masing-masing example-resource-placeholder dengan informasi Anda sendiri.

    recipe[cookbook-name1::recipe-name],recipe[cookbook-name2::recipe-name]
  9. (Opsional) Tentukan atribut JSON kustom yang Anda ingin Chef klien berikan ke node target Anda.

    1. Dalam konten atribut JSON, tambahkan atribut apa pun yang Anda ingin Chef klien berikan ke node target Anda.

    2. Di sumber atribut JSON, tambahkan jalur ke atribut apa pun yang Anda ingin Chef klien lewatkan ke node target Anda.

    Untuk informasi selengkapnya, lihat Menerapkan atribut JSON ke target saat menjalankan resep.

  10. Untuk versi Chef klien, tentukan Chef versi. Nilai yang valid adalah 11 melalui18, atauNone. Jika Anda menentukan nomor antara 11 18 (inklusif), Systems Manager menginstal versi Chef klien yang benar pada node target Anda. Jika Anda menentukanNone, Systems Manager tidak menginstal Chef klien pada node target sebelum menjalankan resep dokumen.

  11. (Opsional) Untuk argumen Chef klien, tentukan argumen tambahan yang didukung untuk versi yang Chef Anda gunakan. Untuk mempelajari lebih lanjut tentang argumen yang didukung, jalankan chef-client -h pada node yang menjalankan Chef klien.

  12. (Opsional) Aktifkan Why-run untuk menampilkan perubahan yang dibuat pada node target jika resep dijalankan, tanpa benar-benar mengubah node target.

  13. Untuk Keparahan kepatuhan, pilih keparahan dari hasil Kepatuhan Systems Manager yang ingin Anda laporkan. Pelaporan kepatuhan menunjukkan apakah status asosiasi sesuai atau tidak sesuai, bersama dengan tingkat keparahan yang Anda tentukan. Laporan kepatuhan disimpan di bucket S3 yang Anda tentukan sebagai nilai dari parameter Bucket laporan kepatuhan (langkah 14). Untuk informasi selengkapnya tentang Kepatuhan, lihat Bekerja dengan Kepatuhan dalam panduan ini.

    Pemindaian kepatuhan mengukur penyimpangan antara konfigurasi yang ditentukan dalam Chef resep dan sumber daya node Anda. Nilai yang valid adalah Critical, High, Medium, Low, Informational, Unspecified, atau None. Untuk melewati pelaporan kepatuhan, pilih None.

  14. Untuk Jenis kepatuhan, tentukan jenis kepatuhan yang hasilnya ingin Anda laporkan. Nilai yang valid adalah Association untuk State Manager asosiasi, atau Custom: tipe khusus. Nilai default-nya adalah Custom:Chef.

  15. Untuk bucket laporan Kepatuhan, masukkan nama bucket S3 untuk menyimpan informasi tentang setiap Chef proses yang dilakukan oleh dokumen ini, termasuk konfigurasi sumber daya dan hasil Kepatuhan.

  16. Dalam Rate control, konfigurasikan opsi untuk menjalankan State Manager asosiasi di seluruh armada node terkelola. Untuk informasi tentang menggunakan kontrol rate, lihat Tentang target dan kontrol tingkat dalam State Manager asosiasi.

    Di Konkurensi, pilih opsi:

    • Pilih target untuk memasukkan jumlah absolut dari target yang dapat menjalankan asosiasi secara bersamaan.

    • Pilih persentase untuk memasukkan persentase dari kumpulan target yang dapat menjalankan asosiasi secara bersamaan.

    Di Batas kesalahan, pilih opsi:

    • Pilih kesalahan untuk memasukkan jumlah absolut kesalahan yang diizinkan sebelum State Manager berhenti menjalankan asosiasi pada target tambahan.

    • Pilih persentase untuk memasukkan persentase kesalahan yang diizinkan sebelum State Manager berhenti menjalankan asosiasi pada target tambahan.

  17. (Opsional) Untuk Opsi output, untuk menyimpan output perintah ke file, pilih kotak Aktifkan output penulisan ke S3. Masukkan nama bucket dan prefiks (folder) di dalam kotak.

    catatan

    Izin S3 yang memberikan kemampuan untuk menulis data ke bucket S3 adalah izin dari profil instance yang ditetapkan ke node terkelola, bukan izin pengguna IAM yang melakukan tugas ini. Untuk informasi selengkapnya, lihat Mengonfigurasi izin instans untuk Systems Manager atau Membuat peran layanan IAM untuk lingkungan hibrid. Selain itu, jika bucket S3 yang ditentukan berbeda Akun AWS, verifikasi bahwa profil instance atau peran layanan IAM yang terkait dengan node terkelola memiliki izin yang diperlukan untuk menulis ke bucket tersebut.

  18. Pilih Buat Asosiasi.

Buat asosiasi yang menjalankan Chef resep (CLI)

Prosedur berikut menjelaskan cara menggunakan AWS Command Line Interface (AWS CLI) untuk membuat State Manager asosiasi yang menjalankan buku masak Chef dengan menggunakan AWS-ApplyChefRecipes dokumen.

  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 salah satu perintah berikut untuk membuat asosiasi yang menjalankan Chef buku masak pada node target yang memiliki tag yang ditentukan. Gunakan perintah yang sesuai untuk jenis sumber buku masak dan sistem operasi Anda. Ganti masing-masing example-resource-placeholder dengan informasi Anda sendiri.

    1. Sumber Git

      Linux & macOS
      aws ssm create-association --name "AWS-ApplyChefRecipes" \ --targets Key=tag:TagKey,Values=TagValue \ --parameters '{"SourceType":["Git"],"SourceInfo":["{\"repository\":\"repository-name\", \"getOptions\": \"branch:branch-name\", \"username\": \"{{ ssm-secure:username-secure-string-parameter }}\", \"password\": \"{{ ssm-secure:password-secure-string-parameter }}\"}"], "RunList":["{\"recipe[cookbook-name-1::recipe-name]\", \"recipe[cookbook-name-2::recipe-name]\"}"], "JsonAttributesContent": ["{custom-json-content}"], "JsonAttributesSources": "{\"sourceType\":\"s3\", \"sourceInfo\":\"s3-bucket-endpoint-1\"}, {\"sourceType\":\"s3\", \"sourceInfo\":\"s3-bucket-endpoint-2\"}", "ChefClientVersion": ["version-number"], "ChefClientArguments":["{chef-client-arguments}"], "WhyRun": boolean, "ComplianceSeverity": ["severity-value"], "ComplianceType": ["Custom:Chef"], "ComplianceReportBucket": ["s3-bucket-name"]}' \ --association-name "name" \ --schedule-expression "cron-or-rate-expression"
      Windows
      aws ssm create-association --name "AWS-ApplyChefRecipes" ^ --targets Key=tag:TagKey,Values=TagValue ^ --parameters '{"SourceType":["Git"],"SourceInfo":["{\"repository\":\"repository-name\", \"getOptions\": \"branch:branch-name\", \"username\": \"{{ ssm-secure:username-secure-string-parameter }}\", \"password\": \"{{ ssm-secure:password-secure-string-parameter }}\"}"], "RunList":["{\"recipe[cookbook-name-1::recipe-name]\", \"recipe[cookbook-name-2::recipe-name]\"}"], "JsonAttributesContent": ["{custom-json}"], "JsonAttributesSources": "{\"sourceType\":\"s3\", \"sourceInfo\":\"s3-bucket-endpoint-1\"}, {\"sourceType\":\"s3\", \"sourceInfo\":\"s3-bucket-endpoint-2\"}", "ChefClientVersion": ["version-number"], "ChefClientArguments":["{chef-client-arguments}"], "WhyRun": boolean, "ComplianceSeverity": ["severity-value"], "ComplianceType": ["Custom:Chef"], "ComplianceReportBucket": ["s3-bucket-name"]}' ^ --association-name "name" ^ --schedule-expression "cron-or-rate-expression"

    2. GitHub sumber

      Linux & macOS
      aws ssm create-association --name "AWS-ApplyChefRecipes" \ --targets Key=tag:TagKey,Values=TagValue \ --parameters '{"SourceType":["GitHub"],"SourceInfo":["{\"owner\":\"owner-name\", \"repository\": \"name\", \"path\": \"path-to-directory-or-cookbook-to-download\", \"getOptions\": \"branch:branch-name\"}"], "RunList":["{\"recipe[cookbook-name-1::recipe-name]\", \"recipe[cookbook-name-2::recipe-name]\"}"], "JsonAttributesContent": ["{custom-json}"], "ChefClientVersion": ["version-number"], "ChefClientArguments":["{chef-client-arguments}"], "WhyRun": boolean, "ComplianceSeverity": ["severity-value"], "ComplianceType": ["Custom:Chef"], "ComplianceReportBucket": ["s3-bucket-name"]}' \ --association-name "name" \ --schedule-expression "cron-or-rate-expression"
      Windows
      aws ssm create-association --name "AWS-ApplyChefRecipes" ^ --targets Key=tag:TagKey,Values=TagValue \ --parameters '{"SourceType":["GitHub"],"SourceInfo":["{\"owner\":\"owner-name\", \"repository\": \"name\", \"path\": \"path-to-directory-or-cookbook-to-download\", \"getOptions\": \"branch:branch-name\"}"], "RunList":["{\"recipe[cookbook-name-1::recipe-name]\", \"recipe[cookbook-name-2::recipe-name]\"}"], "JsonAttributesContent": ["{custom-json}"], "ChefClientVersion": ["version-number"], "ChefClientArguments":["{chef-client-arguments}"], "WhyRun": boolean, "ComplianceSeverity": ["severity-value"], "ComplianceType": ["Custom:Chef"], "ComplianceReportBucket": ["s3-bucket-name"]}' ^ --association-name "name" ^ --schedule-expression "cron-or-rate-expression"

      Ini contohnya.

      Linux & macOS
      aws ssm create-association --name "AWS-ApplyChefRecipes" \ --targets Key=tag:OS,Values=Linux \ --parameters '{"SourceType":["GitHub"],"SourceInfo":["{\"owner\":\"ChefRecipeTest\", \"repository\": \"ChefCookbooks\", \"path\": \"cookbooks/HelloWorld\", \"getOptions\": \"branch:master\"}"], "RunList":["{\"recipe[HelloWorld::HelloWorldRecipe]\", \"recipe[HelloWorld::InstallApp]\"}"], "JsonAttributesContent": ["{\"state\": \"visible\",\"colors\": {\"foreground\": \"light-blue\",\"background\": \"dark-gray\"}}"], "ChefClientVersion": ["14"], "ChefClientArguments":["{--fips}"], "WhyRun": false, "ComplianceSeverity": ["Medium"], "ComplianceType": ["Custom:Chef"], "ComplianceReportBucket": ["ChefComplianceResultsBucket"]}' \ --association-name "MyChefAssociation" \ --schedule-expression "cron(0 2 ? * SUN *)"
      Windows
      aws ssm create-association --name "AWS-ApplyChefRecipes" ^ --targets Key=tag:OS,Values=Linux ^ --parameters '{"SourceType":["GitHub"],"SourceInfo":["{\"owner\":\"ChefRecipeTest\", \"repository\": \"ChefCookbooks\", \"path\": \"cookbooks/HelloWorld\", \"getOptions\": \"branch:master\"}"], "RunList":["{\"recipe[HelloWorld::HelloWorldRecipe]\", \"recipe[HelloWorld::InstallApp]\"}"], "JsonAttributesContent": ["{\"state\": \"visible\",\"colors\": {\"foreground\": \"light-blue\",\"background\": \"dark-gray\"}}"], "ChefClientVersion": ["14"], "ChefClientArguments":["{--fips}"], "WhyRun": false, "ComplianceSeverity": ["Medium"], "ComplianceType": ["Custom:Chef"], "ComplianceReportBucket": ["ChefComplianceResultsBucket"]}' ^ --association-name "MyChefAssociation" ^ --schedule-expression "cron(0 2 ? * SUN *)"
    3. Sumber HTTP

      Linux & macOS
      aws ssm create-association --name "AWS-ApplyChefRecipes" \ --targets Key=tag:TagKey,Values=TagValue \ --parameters '{"SourceType":["HTTP"],"SourceInfo":["{\"url\":\"url-to-zip-file|directory|cookbook\", \"authMethod\": \"auth-method\", \"username\": \"{{ ssm-secure:username-secure-string-parameter }}\", \"password\": \"{{ ssm-secure:password-secure-string-parameter }}\"}"], "RunList":["{\"recipe[cookbook-name-1::recipe-name]\", \"recipe[cookbook-name-2::recipe-name]\"}"], "JsonAttributesContent": ["{custom-json-content}"], "JsonAttributesSources": "{\"sourceType\":\"s3\", \"sourceInfo\":\"s3-bucket-endpoint-1\"}, {\"sourceType\":\"s3\", \"sourceInfo\":\"s3-bucket-endpoint-2\"}", "ChefClientVersion": ["version-number"], "ChefClientArguments":["{chef-client-arguments}"], "WhyRun": boolean, "ComplianceSeverity": ["severity-value"], "ComplianceType": ["Custom:Chef"], "ComplianceReportBucket": ["s3-bucket-name"]}' \ --association-name "name" \ --schedule-expression "cron-or-rate-expression"
      Windows
      aws ssm create-association --name "AWS-ApplyChefRecipes" ^ --targets Key=tag:TagKey,Values=TagValue ^ --parameters '{"SourceType":["HTTP"],"SourceInfo":["{\"url\":\"url-to-zip-file|directory|cookbook\", \"authMethod\": \"auth-method\", \"username\": \"{{ ssm-secure:username-secure-string-parameter }}\", \"password\": \"{{ ssm-secure:password-secure-string-parameter }}\"}"], "RunList":["{\"recipe[cookbook-name-1::recipe-name]\", \"recipe[cookbook-name-2::recipe-name]\"}"], "JsonAttributesContent": ["{custom-json-content}"], "JsonAttributesSources": "{\"sourceType\":\"s3\", \"sourceInfo\":\"s3-bucket-endpoint-1\"}, {\"sourceType\":\"s3\", \"sourceInfo\":\"s3-bucket-endpoint-2\"}", "ChefClientVersion": ["version-number"], "ChefClientArguments":["{chef-client-arguments}"], "WhyRun": boolean, "ComplianceSeverity": ["severity-value"], "ComplianceType": ["Custom:Chef"], "ComplianceReportBucket": ["s3-bucket-name"]}' \ --association-name "name" ^ --schedule-expression "cron-or-rate-expression"
    4. Sumber Amazon S3

      Linux & macOS
      aws ssm create-association --name "AWS-ApplyChefRecipes" \ --targets Key=tag:TagKey,Values=TagValue \ --parameters '{"SourceType":["S3"],"SourceInfo":["{\"path\":\"https://s3.amazonaws.com/path_to_Zip_file,_directory,_or_cookbook_to_download\"}"], "RunList":["{\"recipe[cookbook_name1::recipe_name]\", \"recipe[cookbook_name2::recipe_name]\"}"], "JsonAttributesContent": ["{Custom_JSON}"], "ChefClientVersion": ["version_number"], "ChefClientArguments":["{chef_client_arguments}"], "WhyRun": true_or_false, "ComplianceSeverity": ["severity_value"], "ComplianceType": ["Custom:Chef"], "ComplianceReportBucket": ["DOC-EXAMPLE-BUCKET"]}' \ --association-name "name" \ --schedule-expression "cron_or_rate_expression"
      Windows
      aws ssm create-association --name "AWS-ApplyChefRecipes" ^ --targets Key=tag:TagKey,Values=TagValue ^ --parameters '{"SourceType":["S3"],"SourceInfo":["{\"path\":\"https://s3.amazonaws.com/path_to_Zip_file,_directory,_or_cookbook_to_download\"}"], "RunList":["{\"recipe[cookbook_name1::recipe_name]\", \"recipe[cookbook_name2::recipe_name]\"}"], "JsonAttributesContent": ["{Custom_JSON}"], "ChefClientVersion": ["version_number"], "ChefClientArguments":["{chef_client_arguments}"], "WhyRun": true_or_false, "ComplianceSeverity": ["severity_value"], "ComplianceType": ["Custom:Chef"], "ComplianceReportBucket": ["DOC-EXAMPLE-BUCKET"]}' ^ --association-name "name" ^ --schedule-expression "cron_or_rate_expression"

      Ini contohnya.

      Linux & macOS
      aws ssm create-association --name "AWS-ApplyChefRecipes" \ --targets "Key=tag:OS,Values= Linux" \ --parameters '{"SourceType":["S3"],"SourceInfo":["{\"path\":\"https://s3.amazonaws.com/DOC-EXAMPLE-BUCKET/HelloWorld\"}"], "RunList":["{\"recipe[HelloWorld::HelloWorldRecipe]\", \"recipe[HelloWorld::InstallApp]\"}"], "JsonAttributesContent": ["{\"state\": \"visible\",\"colors\": {\"foreground\": \"light-blue\",\"background\": \"dark-gray\"}}"], "ChefClientVersion": ["14"], "ChefClientArguments":["{--fips}"], "WhyRun": false, "ComplianceSeverity": ["Medium"], "ComplianceType": ["Custom:Chef"], "ComplianceReportBucket": ["ChefComplianceResultsBucket"]}' \ --association-name "name" \ --schedule-expression "cron(0 2 ? * SUN *)"
      Windows
      aws ssm create-association --name "AWS-ApplyChefRecipes" ^ --targets "Key=tag:OS,Values= Linux" ^ --parameters '{"SourceType":["S3"],"SourceInfo":["{\"path\":\"https://s3.amazonaws.com/DOC-EXAMPLE-BUCKET/HelloWorld\"}"], "RunList":["{\"recipe[HelloWorld::HelloWorldRecipe]\", \"recipe[HelloWorld::InstallApp]\"}"], "JsonAttributesContent": ["{\"state\": \"visible\",\"colors\": {\"foreground\": \"light-blue\",\"background\": \"dark-gray\"}}"], "ChefClientVersion": ["14"], "ChefClientArguments":["{--fips}"], "WhyRun": false, "ComplianceSeverity": ["Medium"], "ComplianceType": ["Custom:Chef"], "ComplianceReportBucket": ["ChefComplianceResultsBucket"]}' ^ --association-name "name" ^ --schedule-expression "cron(0 2 ? * SUN *)"

      Sistem membuat asosiasi, dan kecuali ekspresi cron atau rate yang Anda tentukan mencegahnya, sistem menjalankan asosiasi pada node target.

      catatan

      State Managerasosiasi tidak mendukung semua ekspresi cron dan rate. Untuk informasi selengkapnya tentang membuat ekspresi cron dan rate untuk asosiasi, lihat Referensi: Ekspresi cron dan rate untuk Systems Manager.

  3. Jalankan perintah berikut untuk melihat status asosiasi yang baru saja Anda buat.

    aws ssm describe-association --association-id "ID"

Melihat detail kepatuhan sumber daya Chef

Systems Manager menangkap informasi kepatuhan tentang sumber daya yang Chef dikelola dalam nilai bucket laporan Kepatuhan Amazon S3 yang ditentukan saat menjalankan dokumen. AWS-ApplyChefRecipes Mencari informasi tentang kegagalan Chef sumber daya dalam bucket S3 dapat memakan waktu. Sebaliknya, Anda dapat melihat informasi ini pada halaman Kepatuhan Systems Manager.

Pemindaian Kepatuhan Systems Manager mengumpulkan informasi tentang sumber daya pada node terkelola yang dibuat atau diperiksa dalam proses terbaruChef. Sumber daya dapat mencakup file, direktori, layanan systemd, paket yum, file templat, paket gem, dan buku masak dependen, di antaranya.

Bagian Ringkasan sumber daya kepatuhan menampilkan jumlah sumber daya yang gagal. Dalam contoh berikut, ComplianceTypeadalah Custom: Chef dan satu sumber daya tidak sesuai.

catatan

Custom:Chefadalah ComplianceTypenilai default dalam AWS-ApplyChefRecipes dokumen. Nilai ini dapat disesuaikan.

Melihat jumlah di bagian Ringkasan sumber daya kepatuhan dari halaman Kepatuhan.

Bagian Ikhtisar detail untuk sumber daya menunjukkan informasi tentang AWS sumber daya yang tidak sesuai. Bagian ini juga mencakup jenis Chef sumber daya yang digunakan untuk menjalankan kepatuhan, tingkat keparahan masalah, status kepatuhan, dan tautan ke informasi lebih lanjut bila berlaku.

Melihat detail kepatuhan untuk kegagalan sumber daya Chef terkelola

Melihat output menunjukkan 4.000 karakter terakhir dari status terperinci. Systems Manager dimulai dengan pengecualian sebagai elemen pertama, menemukan pesan verbose, dan menunjukkannya sampai mencapai kuota karakter 4.000. Proses ini menampilkan pesan log yang dikeluarkan sebelum pengecualian diluncurkan, yang merupakan pesan yang paling relevan untuk pemecahan masalah.

Untuk informasi tentang cara melihat informasi kepatuhan, lihat AWS Systems Manager Kepatuhan.

Kegagalan asosiasi mempengaruhi pelaporan kepatuhan

Jika State Manager asosiasi gagal, tidak ada data kepatuhan yang dilaporkan. Misalnya, jika Systems Manager mencoba mengunduh Chef buku masak dari bucket S3 yang node tidak memiliki izin untuk mengaksesnya, asosiasi gagal, dan Systems Manager tidak melaporkan data kepatuhan.