

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
<a name="opscm-starterkit"></a>

**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 Dukungan Tim di [AWS RE:Post](https://repost.aws/) atau melalui [AWS Dukungan](https://aws.amazon.com/support) Premium.

Sementara pembuatan server Chef masih berlangsung, 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\]](http://docs.aws.amazon.com/id_id/opsworks/latest/userguide/images/opscm_serverpropsdownload.png)

+ **Kredensi masuk untuk server Chef.** Anda akan menggunakan kredensi ini untuk masuk ke dasbor Chef Automate, tempat Anda bekerja dengan fitur premium Chef Automate, seperti alur kerja dan pemindaian kepatuhan. 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 kredensi 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](https://docs.chef.io/chef_repo.html).

## Prasyarat
<a name="finish-server-prereqs"></a>

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

1. 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.

1. Unduh dan instal [Chef Workstation](https://downloads.chef.io/products/workstation) (sebelumnya dikenal sebagai Chef Development Kit, atau Chef DK) di komputer yang akan Anda gunakan untuk mengelola server dan node Chef Anda. [https://docs.chef.io/knife.html](https://docs.chef.io/knife.html)Utilitas adalah bagian dari Chef Workstation. Untuk petunjuk, lihat [Menginstal Chef Workstation](https://docs.chef.io/workstation/install_workstation/) di situs web Chef.

## Jelajahi Konten Starter Kit
<a name="w2ab1b9c28c15c15"></a>

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.](https://supermarket.chef.io/cookbooks/nginx) `Policyfile.rb`default 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.sh`dan `userdata.ps1` - Anda dapat menggunakan file data pengguna untuk mengaitkan node secara otomatis setelah meluncurkan server Chef Automate Anda. `userdata.sh`adalah 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.
+ `.chef`adalah direktori tersembunyi yang berisi file konfigurasi pisau (`knife.rb`) dan file kunci otentikasi rahasia (.pem).
  + `.chef/knife.rb`- File konfigurasi pisau (`knife.rb`). [https://docs.chef.io/config_rb_knife.html](https://docs.chef.io/config_rb_knife.html)File dikonfigurasi sehingga operasi [https://docs.chef.io/knife.html](https://docs.chef.io/knife.html)alat 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. OpsWorks Kunci ini memungkinkan server untuk mengidentifikasi dirinya ke agen klien Chef Infra pada node yang dikelola server Anda.

## Siapkan Repositori Chef Anda
<a name="w2ab1b9c28c15c17"></a>

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, seperti`chef-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.

1. 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
<a name="install-cookbooks-policyfile"></a>

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 [https://supermarket.chef.io/cookbooks/nginx](https://supermarket.chef.io/cookbooks/nginx)buku masak yang tersedia di situs web Chef Supermarket. `nginx`Buku masak menginstal dan mengkonfigurasi server web pada node terkelola. `chef-client`Buku masak yang diperlukan, yang menginstal agen klien Chef Infra pada node terkelola, juga ditentukan.

   `Policyfile.rb`juga 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, lihat[Pemindaian Kepatuhan di AWS OpsWorks for Chef Automate](opscm-chefcompliance.md). 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 perubahan`Policyfile.rb`, pastikan untuk menyimpan file.

1. Unduh dan instal buku masak yang ditentukan dalam`Policyfile.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`

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

   ```
   chef push opsworks-demo
   ```

1. 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
   ```

1. Anda sekarang siap untuk menambahkan atau mem-bootstrap node ke server Chef Automate Anda. Anda dapat mengotomatiskan asosiasi node dengan mengikuti langkah-langkah[Tambahkan node secara otomatis di AWS OpsWorks for Chef Automate](opscm-unattend-assoc.md), atau menambahkan node satu per satu dengan mengikuti langkah-langkah dalam[Tambahkan node satu per satu](opscm-addnodes-individually.md). 

## (Alternatif) Gunakan Berkshelf untuk Mendapatkan Buku Masak dari Sumber Jarak Jauh
<a name="opscm-berkshelf"></a>

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-client`Buku 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](https://supermarket.chef.io/cookbooks/chef-client) Chef.

1. 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'
   ```

1. Unduh dan instal buku masak di komputer lokal Anda.

   ```
   berks install
   ```

1. 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 ke`RemoteSigned`. 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
   ```

1. 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
<a name="opscm-starterkit-customdomain"></a>

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_certs`adalah subdirektori `chef/` yang berisi otoritas sertifikat (CAs) 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 ke[Tambahkan Node untuk Server Chef untuk Dikelola](opscm-addnodes.md).

   ```
   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.
             ...
   ```

1. 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
   ```

1. 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.