Menggunakan cloud-init di AL2 - Amazon Linux 2

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

Menggunakan cloud-init di AL2

Paket cloud-init adalah aplikasi open-source yang dibangun oleh Canonical yang digunakan untuk mem-bootstrap gambar Linux di lingkungan komputasi awan, seperti Amazon. EC2 Amazon Linux berisi versi cloud-init kustom. Ini memungkinkan Anda untuk menentukan tindakan yang seharusnya terjadi pada instance Anda saat boot. Anda dapat meneruskan tindakan yang diinginkan ke cloud-init melalui bidang data pengguna saat meluncurkan suatu instans. Ini berarti Anda dapat menggunakan common AMIs untuk banyak kasus penggunaan dan mengkonfigurasinya secara dinamis saat startup. Amazon Linux juga menggunakan cloud-init untuk melakukan konfigurasi awal akun ec2-user.

Untuk informasi selengkapnya, lihat dokumentasi cloud-init.

Amazon Linux menggunakan tindakan cloud-init yang ditemukan di /etc/cloud/cloud.cfg.d dan /etc/cloud/cloud.cfg. Anda dapat membuat file tindakan cloud-init Anda sendiri di /etc/cloud/cloud.cfg.d. Semua file dalam direktori ini dibaca oleh cloud-init. File dibaca dengan urutan leksikal, dan file yang lebih baru menimpa file sebelumnya.

Paket cloud-init melakukan tugas konfigurasi umum ini (dan yang lainnya) untuk instans saat boot:

  • Mengatur lokasi default.

  • Mengatur nama host.

  • Mengurai dan menangani data pengguna.

  • Membuat kunci SSH privat host.

  • Menambahkan kunci SSH publik pengguna ke .ssh/authorized_keys untuk kemudahan masuk dan administrasi.

  • Menyiapkan repositori untuk manajemen paket.

  • Menangani tindakan paket yang ditentukan dalam data pengguna.

  • Jalankan skrip pengguna yang ditemukan di data pengguna.

  • Memasang volume penyimpanan instans, jika ada.

    • Secara default, volume penyimpanan instans ephemeral0 dipasang pada /media/ephemeral0 jika ada dan berisi sistem file yang valid; jika tidak, ia tidak dipasang.

    • Secara default, setiap volume penggantian yang terkait dengan instans akan dipasang (hanya untuk tipe instans m1.small dan c1.medium).

    • Anda dapat menimpa pemasangan volume penyimpanan instans default dengan arahan cloud-init berikut:

      #cloud-config mounts: - [ ephemeral0 ]

      Untuk lebih banyak kontrol atas pemasangan, lihat Pemasangan di dokumentasi cloud-init.

    • Volume penyimpanan instans yang mendukung TRIM tidak terformat saat peluncuran instans, jadi Anda harus membuat partisi dan memformatnya sebelum dapat memasangnya. Untuk informasi selengkapnya, lihat TRIMDukungan volume penyimpanan instans. Anda dapat menggunakan modul disk_setup untuk membuat partisi dan memformat volume penyimpanan instans Anda saat boot. Untuk informasi selengkapnya, lihat Penyiapan Disk di dokumentasi cloud-init.

Format data pengguna yang didukung

Paket cloud-init mendukung penanganan data pengguna dari berbagai format:

  • Gzip

    • Jika data pengguna dikompresi gzip, cloud-init mendekompresi data dan menanganinya dengan tepat.

  • MIME multipart

    • Dengan menggunakan file multipart MIME, Anda dapat menentukan lebih dari satu tipe data. Misalnya, Anda dapat menentukan skrip data pengguna dan jenis konfigurasi cloud. Setiap bagian file multipart dapat ditangani oleh cloud-init jika merupakan salah satu format yang didukung.

  • Penguraian kode base64

    • Jika data pengguna dikodekan base64, cloud-init menentukan apakah data pengguna dapat memahami data yang diterjemahkan sebagai salah satu tipe yang didukung. Jika memahami data yang sudah diuraikan, ia akan mengurai data dan menanganinya dengan tepat. Jika tidak, data base64 dikembalikan secara utuh.

  • Skrip data pengguna

    • Dimulai dengan #! atau Content-Type: text/x-shellscript.

    • Skrip ini dijalankan oleh /etc/init.d/cloud-init-user-scripts selama siklus boot pertama. Hal ini terjadi di akhir proses boot (setelah tindakan konfigurasi awal dilakukan).

  • Menyertakan file

    • Dimulai dengan #include atau Content-Type: text/x-include-url.

    • Konten ini adalah file yang disertakan. File berisi daftar URLs, satu per baris. Masing-masing URLs dibaca, dan isinya melewati seperangkat aturan yang sama ini. Konten yang dibaca dari URL dapat dikompresi gzip, MIME-multi-part, atau teks biasa.

  • Data konfigurasi cloud

    • Dimulai dengan #cloud-config atau Content-Type: text/cloud-config.

    • Konten ini adalah data konfigurasi cloud.

  • Pekerjaan pemula (tidak didukung pada AL2)

    • Dimulai dengan #upstart-job atau Content-Type: text/upstart-job.

    • Konten ini disimpan dalam file di/etc/init, dan pemula mengkonsumsi konten seperti halnya dengan pekerjaan pemula lainnya.

  • Boothook awan

    • Dimulai dengan #cloud-boothook atau Content-Type: text/cloud-boothook.

    • Konten ini adalah data boothook. Ini disimpan dalam file di bagian /var/lib/cloud, lalu segera dijalankan.

    • Ini adalah hook paling awal yang tersedia. Tidak ada mekanisme yang disediakan untuk hanya menjalankannya satu kali. Boothook sendiri yang harus mengatur ini. Hal ini disediakan dengan ID instans dalam variabel lingkungan INSTANCE_ID. Gunakan variabel ini untuk menyediakan satu once-per-instance set data boothook.