Konfigurasikan Server Chef Menggunakan Starter Kit - AWS OpsWorks

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

Konfigurasikan Server Chef Menggunakan Starter Kit

penting

AWS OpsWorks untuk Chef Automate mencapai akhir masa pakai pada 5 Mei 2024 dan telah dinonaktifkan untuk pelanggan baru dan lama. Kami menyarankan agar pelanggan yang sudah ada bermigrasi ke Chef SaaS atau solusi alternatif. Jika Anda memiliki pertanyaan, Anda dapat menghubungi AWS Support Tim di AWS RE:Post atau melalui AWS Dukungan Premium.

Sementara pembuatan server Chef masih dalam proses, buka halaman Properties di AWS OpsWorks for Chef Automate konsol. Pertama kali Anda bekerja dengan server Chef baru, halaman Properties meminta Anda untuk mengunduh dua item yang diperlukan. Unduh item ini sebelum server Chef Anda online; tombol unduh tidak tersedia setelah server baru online.

AWS OpsWorks for Chef Automate halaman properti server baru
  • Kredensi masuk untuk server Chef. Anda akan menggunakan kredensil ini untuk masuk ke dasbor Chef Automate, tempat Anda bekerja dengan fitur premium Chef Automate, seperti alur kerja dan pemindaian kepatuhan. AWS OpsWorks tidak menyimpan kredensil ini; ini adalah terakhir kalinya mereka tersedia untuk dilihat dan diunduh. Jika perlu, Anda dapat mengubah kata sandi yang diberikan dengan kredensil ini setelah Anda masuk.

  • Kit Pemula. Starter Kit berisi file README dengan contoh, file knife.rb konfigurasi, dan kunci pribadi untuk pengguna utama, atau penting,. Sebuah key pair baru dihasilkan—dan kunci lama disetel ulang—setiap kali Anda mengunduh Starter Kit.

Selain kredensil yang hanya berfungsi dengan server baru, file Starter Kit .zip menyertakan contoh sederhana dari repositori Chef yang berfungsi dengan server apa pun. AWS OpsWorks for Chef Automate Di repositori Chef, Anda menyimpan buku masak, peran, file konfigurasi, dan artefak lainnya untuk mengelola node Anda dengan Chef. Kami menyarankan Anda menyimpan repositori ini dalam sistem kontrol versi, seperti Git, dan memperlakukannya sebagai kode sumber. Untuk informasi dan contoh yang menunjukkan cara menyiapkan repositori Chef yang dilacak di Git, lihat Tentang chef-repo dalam dokumentasi Chef.

Prasyarat

  1. Sementara pembuatan server masih berlangsung, unduh kredensi masuk untuk server Chef, dan simpan di lokasi yang aman namun nyaman.

  2. Unduh Starter Kit, dan unzip file Starter Kit .zip ke direktori ruang kerja Anda. Jangan bagikan kunci pribadi Starter Kit. Jika pengguna lain akan mengelola server Chef, tambahkan mereka sebagai administrator di dasbor Chef Automate nanti.

  3. Unduh dan instal Chef Workstation (sebelumnya dikenal sebagai Chef Development Kit, atau Chef DK) di komputer yang akan Anda gunakan untuk mengelola server dan node Chef Anda. knifeUtilitas adalah bagian dari Chef Workstation. Untuk petunjuk, lihat Menginstal Chef Workstation di situs web Chef.

Jelajahi Konten Starter Kit

Starter Kit memiliki konten berikut.

  • cookbooks/- Direktori untuk buku masak yang Anda buat. cookbooks/Folder berisi opsworks-webserver buku masak, buku masak pembungkus yang bergantung pada buku masak dari situs web nginx Chef Supermarket. Policyfile.rbdefault ke supermarket Chef sebagai sumber sekunder jika dependensi buku masak tidak tersedia di direktori. cookbooks/

  • Policyfile.rb- File kebijakan berbasis Ruby yang mendefinisikan buku masak, dependensi, dan atribut yang menjadi kebijakan untuk node Anda.

  • userdata.shdan userdata.ps1 - Anda dapat menggunakan file data pengguna untuk mengaitkan node secara otomatis setelah meluncurkan server Chef Automate Anda. userdata.shadalah untuk bootstrap node berbasis Linux, dan untuk node berbasis Windows. userdata.ps1

  • Berksfile- Anda dapat menggunakan file ini jika Anda lebih suka menggunakan Berkshelf dan berks perintah untuk mengunggah buku masak dan dependensinya. Dalam panduan ini, kami menggunakan perintah Policyfile.rb dan Chef untuk mengunggah buku masak, dependensi, dan atribut.

  • README.md, file berbasis Markdown yang menjelaskan cara menggunakan Starter Kit untuk mengatur server Chef Automate Anda untuk pertama kalinya.

  • .chefadalah direktori tersembunyi yang berisi file konfigurasi pisau (knife.rb) dan file kunci otentikasi rahasia (.pem).

    • .chef/knife.rb- File konfigurasi pisau (knife.rb). knife.rbFile dikonfigurasi sehingga operasi knifealat Chef berjalan melawan AWS OpsWorks for Chef Automate server.

    • .chef/ca_certs/opsworks-cm-ca-2020-root.pem- Kunci pribadi SSL yang ditandatangani oleh otoritas sertifikasi (CA) yang disediakan oleh. AWS OpsWorks Kunci ini memungkinkan server untuk mengidentifikasi dirinya ke agen klien Chef Infra pada node yang dikelola server Anda.

Siapkan Repositori Chef Anda

Repositori Chef berisi beberapa direktori. Setiap direktori di Starter Kit berisi file README yang menjelaskan tujuan direktori, dan cara menggunakannya untuk mengelola sistem Anda dengan Chef. Ada dua cara untuk menginstal buku masak di server Chef Anda: menjalankan knife perintah, atau menjalankan perintah Chef untuk mengunggah file kebijakan (Policyfile.rb) ke server Anda yang mengunduh dan menginstal buku masak tertentu. Panduan ini menggunakan perintah Chef dan Policyfile.rb menginstal buku masak di server Anda.

  1. Buat direktori di komputer lokal Anda untuk menyimpan buku masak, sepertichef-repo. Setelah Anda menambahkan buku masak, peran, dan file lain ke repositori ini, kami sarankan Anda mengunggah atau menyimpannya dalam sistem yang aman dan berversi, seperti, CodeCommit Git, atau Amazon S3.

  2. Di chef-repo direktori, buat direktori berikut:

    • cookbooks/- Toko buku masak.

    • roles/- Menyimpan peran dalam .rb atau .json format.

    • environments/- Menyimpan lingkungan dalam .rb atau .json format.

Gunakan PolicyFile.rb untuk Mendapatkan Buku Masak dari Sumber Jarak Jauh

Di bagian ini, edit Policyfile.rb untuk menentukan buku masak, lalu jalankan perintah Chef untuk mengunggah file ke server Anda dan menginstal buku masak.

  1. Lihat Policyfile.rb di Starter Kit Anda. Secara default, Policyfile.rb sertakan buku masak opsworks-webserver pembungkus, yang tergantung pada nginxbuku masak yang tersedia di situs web Chef Supermarket. nginxBuku masak menginstal dan mengkonfigurasi server web pada node terkelola. chef-clientBuku masak yang diperlukan, yang menginstal agen klien Chef Infra pada node terkelola, juga ditentukan.

    Policyfile.rbjuga menunjuk ke buku masak Chef Audit opsional, yang dapat Anda gunakan untuk mengatur pemindaian kepatuhan pada node. Untuk informasi selengkapnya tentang menyiapkan pemindaian kepatuhan dan mendapatkan hasil kepatuhan untuk node terkelola, lihatPemindaian Kepatuhan di AWS OpsWorks for Chef Automate. Jika Anda tidak ingin mengonfigurasi pemindaian kepatuhan dan audit sekarang, hapus 'audit' dari run_list bagian, dan jangan tentukan atribut audit buku masak di akhir file.

    # Policyfile.rb - Describe how you want Chef to build your system. # # For more information about the Policyfile feature, visit # https://docs.chef.io/policyfile.html # A name that describes what the system you're building with Chef does. name 'opsworks-demo-webserver' # The cookbooks directory is the preferred source for external cookbooks default_source :chef_repo, "cookbooks/" do |s| s.preferred_for "nginx", "windows", "chef-client", "yum-epel", "seven_zip", "build-essential", "mingw", "ohai", "audit", "logrotate", "cron" end # Alternative source default_source :supermarket # run_list: chef-client runs these recipes in the order specified. run_list 'chef-client', 'opsworks-webserver', 'audit' # add 'ssh-hardening' to your runlist to fix compliance issues detected by the ssh-baseline profile # Specify a custom source for a single cookbook: cookbook 'opsworks-webserver', path: 'cookbooks/opsworks-webserver' # Policyfile defined attributes # Define audit cookbook attributes default["opsworks-demo"]["audit"]["reporter"] = "chef-server-automate" default["opsworks-demo"]["audit"]["profiles"] = [ { "name": "DevSec SSH Baseline", "compliance": "admin/ssh-baseline" } ]

    Berikut ini adalah contoh Policyfile.rb tanpa audit buku masak dan atribut, jika Anda ingin mengkonfigurasi hanya server nginx web untuk saat ini.

    # Policyfile.rb - Describe how you want Chef to build your system. # # For more information on the Policyfile feature, visit # https://docs.chef.io/policyfile.html # A name that describes what the system you're building with Chef does. name 'opsworks-demo-webserver' # Where to find external cookbooks: default_source :supermarket # run_list: chef-client will run these recipes in the order specified. run_list 'chef-client', 'opsworks-webserver' # Specify a custom source for a single cookbook: cookbook 'opsworks-webserver', path: 'cookbooks/opsworks-webserver'

    Jika Anda membuat perubahanPolicyfile.rb, pastikan untuk menyimpan file.

  2. Unduh dan instal buku masak yang ditentukan dalamPolicyfile.rb.

    chef install

    Semua buku masak diberi versi dalam file buku masak. metadata.rb Setiap kali Anda mengganti buku masak, Anda harus menaikkan versi buku masak yang ada di dalamnya. metadata.rb

  3. Jika Anda memilih untuk mengonfigurasi pemindaian kepatuhan, dan menyimpan informasi audit buku masak di file kebijakan, dorong kebijakan opsworks-demo ke server Anda.

    chef push opsworks-demo
  4. Jika Anda menyelesaikan langkah 3, verifikasi pemasangan kebijakan Anda. Jalankan perintah berikut.

    chef show-policy

    Hasilnya harus menyerupai yang berikut:

    opsworks-demo-webserver ======================= * opsworks-demo: ec0fe46314
  5. Anda sekarang siap untuk menambahkan atau mem-bootstrap node ke server Chef Automate Anda. Anda dapat mengotomatiskan asosiasi node dengan mengikuti langkah-langkahTambahkan node secara otomatis di AWS OpsWorks for Chef Automate, atau menambahkan node satu per satu dengan mengikuti langkah-langkah dalamTambahkan node satu per satu.

(Alternatif) Gunakan Berkshelf untuk Mendapatkan Buku Masak dari Sumber Jarak Jauh

Berkshelf adalah alat untuk mengelola buku masak dan dependensinya. Jika Anda lebih suka menggunakan Berkshelf daripada Policyfile.rb menginstal buku masak ke penyimpanan lokal, gunakan prosedur di bagian ini alih-alih bagian sebelumnya. Anda dapat menentukan buku masak dan versi mana yang akan digunakan dengan server Chef Anda dan mengunggahnya. Starter Kit berisi file bernama Berksfile yang dapat Anda gunakan untuk membuat daftar buku masak Anda.

  1. Untuk memulai, tambahkan chef-client buku masak ke Berksfile yang disertakan. chef-clientBuku masak mengonfigurasi perangkat lunak agen klien Chef Infra pada setiap node yang Anda sambungkan ke server Chef Automate Anda. Untuk mempelajari lebih lanjut tentang buku masak ini, lihat Buku Masak Klien Chef di Supermarket Chef.

  2. Menggunakan editor teks, tambahkan buku masak lain ke Berksfile Anda yang menginstal aplikasi server web; misalnya, apache2 buku masak, yang menginstal server web Apache. Berksfile Anda harus menyerupai yang berikut ini.

    source 'https://supermarket.chef.io' cookbook 'chef-client' cookbook 'apache2'
  3. Unduh dan instal buku masak di komputer lokal Anda.

    berks install
  4. Unggah buku masak ke server Chef.

    Di Linux, jalankan yang berikut ini.

    SSL_CERT_FILE='.chef/ca_certs/opsworks-cm-ca-2020-root.pem' berks upload

    Di Windows, jalankan perintah Chef Workstation berikut dalam satu PowerShell sesi. Sebelum Anda menjalankan perintah, pastikan untuk mengatur kebijakan eksekusi PowerShell keRemoteSigned. Tambahkan chef shell-init untuk membuat perintah utilitas Chef Workstation tersedia untuk PowerShell.

    $env:SSL_CERT_FILE="ca_certs\opsworks-cm-ca-2020-root.pem" chef shell-init berks upload Remove-Item Env:\SSL_CERT_FILE
  5. Verifikasi pemasangan buku masak dengan menampilkan daftar buku masak yang saat ini tersedia di server Chef Automate. Anda dapat melakukan ini dengan menjalankan knife perintah berikut.

    Anda siap menambahkan node untuk dikelola dengan AWS OpsWorks for Chef Automate server.

    knife cookbook list

(Opsional) Konfigurasi knife untuk Bekerja dengan Domain Kustom

Jika server Chef Automate Anda menggunakan domain khusus, Anda mungkin perlu menambahkan sertifikat PEM dari root CA yang menandatangani rantai sertifikat server Anda, atau sertifikat PEM server Anda jika sertifikat ditandatangani sendiri. ca_certsadalah subdirektori chef/ yang berisi otoritas sertifikat (CA) yang dipercaya oleh knife utilitas Chef.

Anda dapat melewati bagian ini jika Anda tidak menggunakan domain kustom, atau jika sertifikat kustom Anda ditandatangani oleh CA root yang dipercaya oleh sistem operasi Anda. Jika tidak, konfigurasikan knife untuk mempercayai sertifikat SSL server Chef Automate Anda, seperti yang dijelaskan dalam langkah-langkah berikut.

  1. Jalankan perintah berikut.

    knife ssl check

    Jika hasilnya mirip dengan yang berikut ini, lewati sisa prosedur ini, dan lanjutkan keTambahkan Node untuk Server Chef untuk Dikelola.

    Connecting to host my-chef-automate-server.my-corp.com:443 Successfully verified certificates from 'my-chef-automate-server.my-corp.com'

    Jika Anda mendapatkan pesan kesalahan yang mirip dengan berikut ini, lanjutkan ke langkah berikutnya.

    Connecting to host my-chef-automate-server.my-corp.com:443 ERROR: The SSL certificate of my-chef-automate-server.my-corp.com could not be verified. ...
  2. Jalankan knife ssl fetch untuk mempercayai sertifikat AWS OpsWorks for Chef Automate server Anda. Atau, Anda dapat secara manual menyalin sertifikat berformat CA PEM root dari server Anda ke direktori yang merupakan nilai trusted_certs_dir dalam output dari. knife ssl check Secara default, direktori ini ada .chef/ca_certs/ di Starter Kit. Output Anda harus menyerupai yang berikut:

    WARNING: Certificates from my-chef-automate-server.my-corp.com will be fetched and placed in your trusted_cert directory (/Users/username/starterkit/.chef/../.chef/ca_certs). Knife has no means to verify these are the correct certificates. You should verify the authenticity of these certificates after downloading. Adding certificate for my-chef-automate-server in /Users/users/starterkit/.chef/../.chef/ca_certs/servv-aqtswxu20swzkjgz.crt Adding certificate for MyCorp_Root_CA in /Users/users/starterkit/.chef/../.chef/ca_certs/MyCorp_Root_CA.crt
  3. Jalankan lagi knife ssl check. Output Anda harus menyerupai yang berikut:

    Connecting to host my-chef-automate-server.my-corp.com:443 Successfully verified certificates from 'my-chef-automate-server.my-corp.com'

    Anda siap digunakan knife dengan server Chef Automate Anda.