

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

# Gunakan AWS-skrip yang dipelihara untuk tindakan siklus hidup simpul di AWS PCS
<a name="cng-node-lifecycle-actions-vetted-scripts"></a>

AWS menerbitkan skrip yang dipelihara untuk tindakan siklus hidup umum. Anda mereferensikan skrip yang dipelihara langsung dari konfigurasi grup simpul komputasi Anda. Skripnya idempoten dan aman untuk dijalankan pada setiap boot.

AWS mendistribusikan skrip dari bucket Amazon S3 publik yang AWS dikelola di masing-masing Wilayah AWS. Anda mereferensikan skrip dengan URI Amazon S3. Anda mereferensikan skrip yang dipelihara dengan cara yang sama seperti Anda mereferensikan skrip Anda sendiri. Anda dapat mereferensikan skrip langsung dari bucket AWS-managed.

## Skrip yang tersedia
<a name="cng-node-lifecycle-actions-vetted-scripts-available"></a>


| **Skrip ** | **Deskripsi** | **Paket prasyarat ** | 
| --- | --- | --- | 
| `mount-efs.sh` | Memasang sistem file Amazon EFS di jalur tertentu dan mempertahankannya selama reboot. | `amazon-efs-utils`, `nfs-utils` | 
| `mount-fsx-lustre.sh` | Memasang sistem file Amazon FSx for Lustre di jalur tertentu dan mempertahankannya selama reboot. | `lustre-client` | 
| `configure-efs-homes.sh` | Memasang sistem file Amazon EFS sebagai basis direktori utama dan mengonfigurasi PAM sehingga direktori home setiap pengguna dibuat pada login pertama. | `amazon-efs-utils`,`nfs-utils`, dan `mkhomedir` paket PAM (lihat persyaratan per skrip) | 
| `configure-ldaps.sh` | Mengkonfigurasi SSSD untuk otentikasi LDAP atau LDAPS, dengan dukungan untuk bind yang diautentikasi (kredenSIAL dari AWS Secrets Manager) atau ikatan anonim. | `sssd`,`sssd-ldap`,`sssd-tools`, dan paket terkait (lihat persyaratan per skrip) | 
| `configure-cloudwatch-logs.sh` | Mengkonfigurasi CloudWatch agen Amazon untuk meneruskan log tindakan siklus hidup node ke Amazon CloudWatch Logs. | `amazon-cloudwatch-agent` | 

**penting**  
Skrip ini tidak menginstal paket prasyarat mereka. Instal paket yang diperlukan di AMI Anda sebelum Anda menggunakan skrip. Skrip gagal jika prasyarat hilang. Beberapa skrip memerlukan peran instance node untuk memiliki izin tertentu. Lihat persyaratan untuk setiap skrip.

## Referensi skrip
<a name="cng-node-lifecycle-actions-vetted-scripts-reference"></a>

Referensikan skrip dengan URI Amazon S3 di `scriptLocation` bidang tindakan siklus hidup. Skrip disimpan di bawah `aws-pcs-node-lifecycle-scripts` awalan `aws-pcs-repo-{{region}}` bucket AWS-managed di masing-masing Wilayah AWS. Gunakan bucket yang Wilayah AWS sama dengan cluster Anda.

```
s3://aws-pcs-repo-{{region}}/aws-pcs-node-lifecycle-scripts/{{script}}-v{{version}}.sh
```

Setiap skrip diberi versi dengan versi [https://semver.org/](https://semver.org/) semantik. Anda dapat menyematkan versi tertentu atau melacak rilis terbaru dalam versi utama:
+ **Sematkan versi tertentu ** — Gunakan versi semantik lengkap, seperti`mount-efs-v1.0.0.sh`. Konten pada versi tertentu tidak dapat diubah. Gunakan versi yang disematkan untuk produksi.
+ **Melacak versi terbaru ** — Gunakan alias versi utama, seperti. `mount-efs-v1-latest.sh` Alias menunjuk ke rilis terbaru dalam versi utama itu. Pasangkan dengan `scriptCachingPolicy` `REFRESH_ON_REBOOT` untuk mengambil pembaruan saat reboot.

Setiap skrip memiliki file SHA-256 checksum pendamping di lokasi yang sama dengan `.sha256` akhiran (misalnya,`mount-efs-v1.0.0.sh.sha256`). Baca nil `.sha256` ainya dan atur sebagai skrip`checksum`. Agen kemudian memverifikasi integritas skrip saat diunduh. Untuk informasi selengkapnya, lihat [Integritas skrip (checksum)](cng-node-lifecycle-actions-configure.md#cng-node-lifecycle-actions-configure-checksums).

## Versi skrip yang tersedia
<a name="cng-node-lifecycle-actions-vetted-scripts-versions"></a>

AWS versi setiap skrip secara independen. Tabel berikut mencantumkan versi yang tersedia dari setiap skrip. Gunakan versi di URI Amazon S3 skrip, seperti yang dijelaskan dalam[Referensi skrip](#cng-node-lifecycle-actions-vetted-scripts-reference).

### `mount-efs.sh`
<a name="cng-node-lifecycle-actions-vetted-scripts-versions-mount-efs"></a>


| **Versi ** | **Tanggal rilis ** | **Catatan rilis ** | 
| --- | --- | --- | 
| 1.0.0 | Juli 23, 2026 | Pelepasan awal. | 

### `mount-fsx-lustre.sh`
<a name="cng-node-lifecycle-actions-vetted-scripts-versions-mount-fsx"></a>


| **Versi ** | **Tanggal rilis ** | **Catatan rilis ** | 
| --- | --- | --- | 
| 1.0.0 | Juli 23, 2026 | Pelepasan awal. | 

### `configure-efs-homes.sh`
<a name="cng-node-lifecycle-actions-vetted-scripts-versions-efs-homes"></a>


| **Versi ** | **Tanggal rilis ** | **Catatan rilis ** | 
| --- | --- | --- | 
| 1.0.0 | Juli 23, 2026 | Pelepasan awal. | 

### `configure-ldaps.sh`
<a name="cng-node-lifecycle-actions-vetted-scripts-versions-ldaps"></a>


| **Versi ** | **Tanggal rilis ** | **Catatan rilis ** | 
| --- | --- | --- | 
| 1.0.0 | Juli 23, 2026 | Pelepasan awal. | 

### `configure-cloudwatch-logs.sh`
<a name="cng-node-lifecycle-actions-vetted-scripts-versions-cwl"></a>


| **Versi ** | **Tanggal rilis ** | **Catatan rilis ** | 
| --- | --- | --- | 
| 1.0.0 | Juli 23, 2026 | Pelepasan awal. | 

## Contoh: Pasang sistem file EFS dengan skrip yang dipelihara
<a name="cng-node-lifecycle-actions-vetted-scripts-example"></a>

Contoh berikut mereferensikan `mount-efs.sh` skrip yang dipelihara di `us-west-2` Wilayah AWS. Anda meneruskan argumen sebagai bendera bernama. Untuk argumen skrip, lihat[Argumen skrip](#cng-node-lifecycle-actions-vetted-scripts-args).

```
aws pcs update-compute-node-group \
  --cluster-identifier {{my-cluster}} \
  --compute-node-group-identifier {{my-cng}} \
  --node-lifecycle-actions '{
    "stages": {
      "nodeBootstrapped": [
        {
          "name": "Mount EFS home directory",
          "scriptSource": {
            "scriptLocation": "s3://aws-pcs-repo-us-west-2/aws-pcs-node-lifecycle-scripts/mount-efs-v1.0.0.sh"
          },
          "arguments": ["--file-system-id", "fs-{{12345678}}", "--mount-point", "/shared"],
          "onError": "TERMINATE",
          "executionPolicy": "EVERY_BOOT"
        }
      ]
    }
  }'
```

Peran instance node harus memiliki `s3:GetObject` izin untuk objek skrip. Node dalam subnet pribadi dapat mencapai bucket melalui titik akhir VPC gateway S3. Untuk informasi selengkapnya, lihat [Lokasi penyimpanan skrip](cng-node-lifecycle-actions-configure.md#cng-node-lifecycle-actions-configure-storage).

## Argumen skrip
<a name="cng-node-lifecycle-actions-vetted-scripts-args"></a>

Setiap skrip mengambil argumen bendera bernama. Berikan setiap flag dan nilainya sebagai elemen terpisah dari `arguments` array (misalnya,`["--file-system-id", "fs-12345678"]`). Semua skrip berjalan sebagai `root` dan mendukung sistem operasi AL2, AL2023, RHEL, Ubuntu, dan Rocky Linux.

### `mount-efs.sh`
<a name="cng-node-lifecycle-actions-vetted-scripts-args-efs"></a>


| **Bendera ** | **Diperlukan ** | **Default ** | **Deskripsi** | 
| --- | --- | --- | --- | 
| `--file-system-id` | Ya | — | ID sistem file EFS, seperti`fs-0123456789abcdef0`. | 
| `--mount-point` | Ya | — | Jalur absolut untuk dipasang, seperti`/mnt/efs`. | 
| `--options` | Tidak | `tls,iam` | Comma-separated opsi pemasangan. Default mengaktifkan enkripsi dalam transit dan otentikasi IAM. | 

Dengan `iam` opsi default, peran instance node harus mengizinkan `elasticfilesystem:ClientMount` dan`elasticfilesystem:ClientWrite`. Subnet node harus memiliki target pemasangan EFS yang grup keamanannya memungkinkan NFS masuk (TCP 2049) dari node.

### `mount-fsx-lustre.sh`
<a name="cng-node-lifecycle-actions-vetted-scripts-args-fsx"></a>


| **Bendera ** | **Diperlukan ** | **Default ** | **Deskripsi** | 
| --- | --- | --- | --- | 
| `--fsx-dns-name` | Ya | — | FSx untuk nama DNS sistem file Lustre. | 
| `--mount-name` | Ya | — | Nama mount Lustre sistem file (`MountName`nilai dari konsol FSx). | 
| `--mount-point` | Ya | — | Jalur absolut untuk dipasang, seperti`/fsx`. | 
| `--options` | Tidak | `noatime,flock` | Comma-separated opsi pemasangan. Defaultnya mengikuti rekomendasi FSx for Lustre. | 

Subnet node harus mencapai sistem file, dan grup keamanan sistem file harus mengizinkan lalu lintas Luster masuk (TCP 988, dan 1018-1023 untuk klien yang menggunakan port sumber cadangan) dari node.

### `configure-efs-homes.sh`
<a name="cng-node-lifecycle-actions-vetted-scripts-args-efs-homes"></a>


| **Bendera ** | **Diperlukan ** | **Default ** | **Deskripsi** | 
| --- | --- | --- | --- | 
| `--efs-id` | Ya | — | ID sistem file EFS, seperti`fs-0123456789abcdef0`. | 
| `--home-base` | Tidak | `/home` | Jalur absolut untuk memasang sistem file EFS di dan membuat direktori home di bawah. | 
| `--options` | Tidak | `tls,iam` | Comma-separated opsi pemasangan. Default mengaktifkan enkripsi dalam transit dan otentikasi IAM. | 

Skrip ini membutuhkan`amazon-efs-utils`,`nfs-utils`, dan `mkhomedir` dukungan PAM. Pada RHEL-family node, instal`oddjob`,`oddjob-mkhomedir`, dan`authselect`. Di AL2023, instal `authselect` secara eksplisit. Di Ubuntu, instal`libpam-modules`. IAM dan persyaratan jaringan cocok`mount-efs.sh`.

### `configure-ldaps.sh`
<a name="cng-node-lifecycle-actions-vetted-scripts-args-ldaps"></a>


| **Bendera ** | **Diperlukan ** | **Deskripsi** | 
| --- | --- | --- | 
| `--ldap-uri` | Ya | URI server LDAP. Harus dimulai dengan `ldap://` atau `ldaps://` | 
| `--search-base` | Ya | Basis pencarian LDAP, seperti`dc=example,dc=com`. | 
| `--secret-arn` | Tidak | AWS Manajer Rahasia ARN dari rahasia yang memegang kredenSIAL bind. Saat Anda menghilangkan bendera ini, skrip mengonfigurasi SSSD untuk ikatan anonim. | 
| `--tls-cacert` | Tidak | Jalur absolut ke bundel CA untuk verifikasi TLS. Defaultnya adalah bundel CA sistem operasi. | 

Skrip ini membutuhkan`sssd`,`sssd-ldap`, dan`sssd-tools`. Pada RHEL-family node, itu juga membutuhkan `authselect` atau `authconfig` dan`oddjob-mkhomedir`. Di Ubuntu, itu membutuhkan`libpam-modules`.

Dengan`--secret-arn`, peran instance node harus memungkinkan `secretsmanager:GetSecretValue` rahasia, dan node membutuhkan `python3` paket `awscli` dan. Nilai rahasia harus JSON dari formulir`{"username": "<bind-dn>", "password": "<bind-password>"}`. Anonymous bind tidak melakukan panggilan AWS API dan tidak memerlukan izin IAM.

### `configure-cloudwatch-logs.sh`
<a name="cng-node-lifecycle-actions-vetted-scripts-args-cwl"></a>


| **Bendera ** | **Diperlukan ** | **Default ** | **Deskripsi** | 
| --- | --- | --- | --- | 
| `--log-group-name` | Tidak | `/aws/pcs/${PCS_CLUSTER_ID}/lifecycle` | Grup CloudWatch log log untuk diteruskan ke. Ketika dihilangkan, skrip mendapatkan nama dari variabel `PCS_CLUSTER_ID` lingkungan yang ditetapkan AWS PCS. | 

Skrip meneruskan direktori log tindakan siklus hidup (`/var/log/amazon/pcs/lifecycle/actions`). Peran instance node harus memungkinkan`logs:CreateLogGroup`,`logs:CreateLogStream`, dan `logs:PutLogEvents` pada grup log target. Gunakan skrip ini untuk meneruskan log di luar instance untuk debugging post-mortem.

**catatan**  
 CloudWatch Agen Amazon harus menjalankan `root` untuk meneruskan log ini. Hanya `root` pengguna yang bisa membaca`/var/log/amazon/pcs/lifecycle/actions`.

**catatan**  
Script menulis konfigurasinya ke file fragmen khusus. CloudWatchAgen Amazon menggabungkan fragmen ini dengan konfigurasi apa pun yang ada tanpa menulisnya, sehingga skrip mempertahankan metrik dan pengaturan grup log yang ada.