

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

# Opsional: Gunakan AWS CodeCommit sebagai Repositori Remote Control Boneka r10k
<a name="opspup-puppet-codecommit"></a>

**penting**  
 AWS OpsWorks for Puppet Enterprise Layanan ini mencapai akhir masa pakai pada 31 Maret 2024 dan telah dinonaktifkan untuk pelanggan baru dan yang sudah ada. Kami sangat menyarankan pelanggan untuk memindahkan beban kerja mereka ke solusi lain sesegera mungkin. Jika Anda memiliki pertanyaan tentang migrasi, hubungi AWS Dukungan Tim di [AWS re:Post](https://repost.aws/) atau melalui [AWS Dukungan](https://aws.amazon.com/support) Premium. 

Anda dapat membuat repositori baru dengan menggunakan AWS CodeCommit, dan menggunakannya sebagai repositori remote control r10k Anda. Untuk menyelesaikan langkah-langkah di bagian ini, dan bekerja dengan CodeCommit repositori, Anda memerlukan pengguna yang memiliki izin yang disediakan oleh kebijakan **AWSCodeCommitReadOnly**terkelola.

**Topics**
+ [Langkah 1: Gunakan CodeCommit sebagai Repositori dengan tipe koneksi HTTPS](#codecommit-puppet-https)
+ [Langkah 2: (Opsional) Gunakan CodeCommit sebagai Repositori dengan tipe koneksi SSH](#codecommit-puppet-ssh)

## Langkah 1: Gunakan CodeCommit sebagai Repositori dengan tipe koneksi HTTPS
<a name="codecommit-puppet-https"></a>



1. Di CodeCommit konsol, buat repositori baru.  
![\[Membuat repositori baru di. CodeCommit\]](http://docs.aws.amazon.com/id_id/opsworks/latest/userguide/images/opspup_cc_remote.png)

1. Pilih **Lewati** untuk melewati pengaturan topik Amazon SNS.

1. Pada halaman **Kode**, pilih **Connect to your repository**.

1. Pada halaman **Connect to your repository**, pilih **HTTPS** sebagai **tipe Connection**, dan pilih sistem operasi Anda.  
![\[Membuat repositori baru di. CodeCommit\]](http://docs.aws.amazon.com/id_id/opsworks/latest/userguide/images/opspup_cc_connect.png)

   Di **Langkah-langkah untuk mengkloning area repositori Anda**, `git clone` URL Anda harus menyerupai yang berikut:. `https://git-codecommit.region.amazonaws.com/v1/repos/control-repo` Salin URL ini ke tempat yang nyaman untuk digunakan dalam pengaturan server Puppet.

1. Tutup halaman **Connect to repository Anda**, dan kembali ke setup server OpsWorks for Puppet Enterprise.

1. Tempel URL yang Anda salin di Langkah 4 di kotak string **jarak jauh r10k** di halaman **Konfigurasi kredensial** dari wizard pengaturan master boneka. Biarkan kotak **kunci pribadi r10k** kosong. Selesai membuat dan meluncurkan master boneka Anda.

1. Di konsol IAM, lampirkan **AWSCodeCommitReadOnly**kebijakan ke peran profil instance master Puppet Anda. *Untuk informasi selengkapnya tentang cara menambahkan kebijakan izin ke peran IAM, lihat [Menambahkan izin identitas (konsol) IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_manage-attach-detach.html#add-policies-console) di Panduan Pengguna IAM.*

1. Ikuti langkah-langkah dalam [Pengaturan untuk pengguna HTTPS yang menggunakan kredensi Git](https://docs.aws.amazon.com/codecommit/latest/userguide/setting-up-gc.html) di *Panduan AWS CodeCommit Pengguna* untuk mendorong `control-repo` konten Anda yang ada ke repositori baru CodeCommit .

1. Sekarang, Anda dapat melanjutkan dengan mengikuti instruksi di[Konfigurasikan Puppet Master Menggunakan Starter Kit](opspup-starterkit.md), dan menggunakan Starter Kit untuk menyebarkan kode ke master Puppet Anda. Berikut adalah contoh perintah tersebut.

   ```
   puppet-code deploy --all --wait --config-file .config/puppet-code.conf
   ```

## Langkah 2: (Opsional) Gunakan CodeCommit sebagai Repositori dengan tipe koneksi SSH
<a name="codecommit-puppet-ssh"></a>

Anda dapat mengkonfigurasi repositori remote control AWS CodeCommit r10k untuk menggunakan otentikasi key pair SSH. Prasyarat berikut harus diselesaikan sebelum Anda memulai prosedur ini.
+ Anda harus telah meluncurkan server OpsWorks for Puppet Enterprise Anda dengan repositori kontrol HTTPS seperti yang dijelaskan di bagian sebelumnya,. [Langkah 1: Gunakan CodeCommit sebagai Repositori dengan tipe koneksi HTTPS](#codecommit-puppet-https) Ini harus diselesaikan terlebih dahulu sehingga Anda dapat mengunggah konfigurasi yang diperlukan ke master Wayang.
+ Pastikan Anda memiliki pengguna dengan kebijakan **AWSCodeCommitReadOnly**terkelola terlampir. Untuk informasi selengkapnya tentang cara membuat pengguna, lihat [Membuat pengguna IAM di AWS akun Anda](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_users_create.html) di *Panduan Pengguna IAM*.
+ Buat dan kaitkan kunci SSH dengan pengguna Anda. *Ikuti petunjuk untuk membuat public/private key pair dengan `ssh-keygen` [Langkah 3: Konfigurasikan kredenal di Linux, macOS, atau Unix](https://docs.aws.amazon.com/codecommit/latest/userguide/setting-up-ssh-unixes.html#setting-up-ssh-unixes-keys) di Panduan Pengguna.AWS CodeCommit *

1. Dalam AWS CLI sesi, jalankan perintah berikut untuk mengunggah konten file kunci pribadi ke AWS Systems Manager Parameter Store. Server OpsWorks for Puppet Enterprise Anda menanyakan parameter ini untuk mendapatkan file sertifikat yang diperlukan. Ganti *private\$1key\$1file* dengan path ke file kunci pribadi SSH Anda.

   ```
   aws ssm put-parameter --name puppet_user_pk --type String --value "`cat private_key_file`"
   ```

1. Tambahkan izin Systems Manager Parameter Store ke master Puppet Anda.

   1. Buka konsol IAM di [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/).

   1. Di panel navigasi sebelah kiri, pilih **Peran**.

   1. Pilih **aws-opsworks-cm-ec2-peran**.

   1. Di tab **Izin**, pilih **Lampirkan kebijakan**.

   1. Di bilah **Pencarian**, masukkan**AmazonSSMManagedInstanceCore**.

   1. Di hasil pencarian, pilih **Amazon SSMManaged InstanceCore**.

   1. Pilih **Lampirkan kebijakan**.

1. Buat manifes file konfigurasi. Jika Anda menggunakan `control-repo-example` repositori yang disediakan dalam starter kit, buat file berikut di lokasi yang ditunjukkan dalam contoh repositori. Jika tidak, buat sesuai dengan struktur repositori kontrol Anda sendiri. Ganti *IAM\$1USER\$1SSH\$1KEY* nilai dengan ID kunci SSH yang Anda buat dalam prasyarat untuk prosedur ini.

   ```
   control-repo-example/site/profile/manifests/codecommit.pp
   ```

   ```
   class profile::codecommit {
     $configfile = @(CONFIGFILE)
         Host git-codecommit.*.amazonaws.com
         User IAM_USER_SSH_KEY
         IdentityFile /etc/puppetlabs/puppetserver/ssh/codecommit.rsa
         StrictHostKeyChecking=no
         | CONFIGFILE
   
     # Replace REGION with the correct region for your server.
     $command = @(COMMAND)
         aws ssm get-parameters \
         --region REGION \
         --names puppet_user_pk \
         --query "Parameters[0].Value" \
         --output text >| /etc/puppetlabs/puppetserver/ssh/codecommit.rsa
         | COMMAND
   
     $dirs = [
               '/opt/puppetlabs/server/data/puppetserver/.ssh',
               '/etc/puppetlabs/puppetserver/ssh',
             ]
   
     file { $dirs:
       ensure => 'directory',
       group  => 'pe-puppet',
       owner  => 'pe-puppet',
       mode   => '0750',
     }
   
     file { 'ssh-config':
       path    => '/opt/puppetlabs/server/data/puppetserver/.ssh/config',
       require => File[$dirs],
       content => $configfile,
       group   => 'pe-puppet',
       owner   => 'pe-puppet',
       mode    => '0600',
     }
   
     exec { 'download-codecommit-certificate':
       command => $command,
       require => File[$dirs],
       creates => '/etc/puppetlabs/puppetserver/ssh/codecommit.rsa',
       path    => '/bin',
       cwd     => '/etc/puppetlabs',
     }
   
     file { 'private-key-permissions':
       subscribe => Exec['download-codecommit-certificate'],
       path      => '/etc/puppetlabs/puppetserver/ssh/codecommit.rsa',
       group     => 'pe-puppet',
       owner     => 'pe-puppet',
       mode      => '0600',
     }
   }
   ```

1. Dorong repositori kontrol Anda ke. CodeCommit Jalankan perintah berikut untuk mendorong file manifes baru ke repositori Anda.

   ```
   git add ./site/profile/manifests/codecommit.pp
   git commit -m 'Configuring for SSH connection to CodeCommit'
   git push origin production
   ```

1. Menyebarkan file manifes. Jalankan perintah berikut untuk menyebarkan konfigurasi yang diperbarui ke server OpsWorks for Puppet Enterprise Anda. Ganti *STARTER\$1KIT\$1DIRECTORY* dengan path ke file konfigurasi Puppet Anda.

   ```
   cd STARTER_KIT_DIRECTORY
   
   puppet-access login --config-file .config/puppetlabs/client-tools/puppet-access.conf
   
   puppet-code deploy --all --wait \
   --config-file .config/puppet-code.conf \
   --token-file .config/puppetlabs/token
   ```

1. Perbarui klasifikasi server OpsWorks untuk Puppet Enterprise. Secara default, agen Puppet berjalan pada node (termasuk master) setiap 30 menit. Untuk menghindari menunggu, Anda dapat menjalankan agen secara manual pada master boneka. Menjalankan agen mengambil file manifes baru.

   1. Masuk ke konsol Puppet Enterprise.

   1. Pilih **Klasifikasi**.

   1. Perluas **Infrastruktur PE**.

   1. Pilih **PE Master**.

   1. Pada tab **Konfigurasi**, **profile::codecommit** masukkan **Tambah kelas baru**.

      Kelas baru,`profile::codecommit`, mungkin tidak muncul segera setelah dijalankan`puppet-code deploy`. Pilih **Refresh** di halaman ini jika tidak muncul.

   1. Pilih **Add class**, lalu pilih **Commit 1 change**.

   1. Jalankan agen Puppet secara manual di server OpsWorks for Puppet Enterprise. Pilih **Node**, pilih server Anda dalam daftar, pilih **Jalankan Boneka**, lalu pilih **Jalankan**.

1. Di konsol Puppet Enterprise, ubah URL repositori untuk menggunakan SSH, bukan HTTPS. Konfigurasi yang Anda lakukan dalam langkah-langkah ini disimpan selama proses pencadangan dan pemulihan OpsWorks for Puppet Enterprise, sehingga Anda tidak perlu mengubah konfigurasi repositori secara manual setelah aktivitas pemeliharaan.

   1. Pilih **Klasifikasi**.

   1. Perluas **Infrastruktur PE**.

   1. Pilih **PE Master**.

   1. Pada tab **Konfigurasi**, temukan `puppet_enterprise::profile::master` kelasnya.

   1. Pilih **Edit** di sebelah `r10k_remote` parameter.

   1. Ganti URL HTTPS dengan URL SSH untuk repositori Anda, lalu pilih **Commit** 1 change.

   1. Jalankan agen Puppet secara manual di server OpsWorks for Puppet Enterprise. Pilih **Node**, pilih server Anda dalam daftar, pilih **Jalankan Boneka**, lalu pilih **Jalankan**.