Mengenal Cloud-Init

cloud-init adalah paket perangkat lunak yang mengotomatiskan inisialisasi instance cloud selama boot sistem.
Anda dapat mengonfigurasi cloud-init untuk melakukan berbagai tugas. Beberapa contoh tugas yang dapat dilakukan cloud-init antara lain:

  • Mengonfigurasi nama host
  • Menginstal paket pada sebuah instance
  • Menjalankan skrip
  • Menekan perilaku mesin virtual default

Di mana Anda mendapatkan image untuk mengonfigurasi cloud-init bergantung pada bagaimana Anda bermaksud menggunakannya.

  • Paket cloud-init diinstal pada KVM Guest Images yang Anda unduh dari Red Hat Customer Portal. Saat Anda meluncurkan sebuah instance, cloud-init diaktifkan.KVM Guest Images itu yang Anda unduh dari Red Hat Customer Portal dimaksudkan untuk digunakan dengan Red Hat Virtualisasi (RHV) dan Red Hat OpenStack Platform (RHOSP). Anda juga dapat membuat file image dari awal untuk RHV dan RHOSP.
  • Pilihan lainnya adalah mendownload image ISO dari Red Hat Customer Portal atau membuatnya. Di dalam hal ini, Anda perlu menginstal cloud-init pada image ISO Anda.
  • Jika Anda berencana menggunakan image dengan penyedia cloud (misalnya, AWS atau Azure), gunakan Red Hat Image Builder untuk membuat image. file Image Builder disesuaikan untuk penggunaan khusus penyedia cloud. Jenis image AMI, VHD, dan qcow2 termasuk cloud-init yang sudah diinstal.

Sebagian besar platform cloud mendukung cloud-init, meskipun prosedur konfigurasi dan opsi yang didukung bervariasi. Atau, Anda dapat mengonfigurasi cloud-init untuk lingkungan NoCloud.
Anda dapat mengonfigurasi cloud-init di satu mesin virtual (VM), lalu menggunakan VM tersebut sebagai template untuk VMs atau cluster VMs tambahan.
Produk Red Hat tertentu (misalnya, Red Hat Virtualization) telah mendokumentasikan prosedur untuk mengonfigurasi cloud-init untuk digunakan dengan produk tersebut.

A. Cloud-Init Configuration


cloud-init menggunakan instruksi file berformat YAML untuk melakukan tugas. Anda memutuskan pada konfigurasi awal Anda ingin cloud-init bekerja dengan memberikan instruksi dalam file YAML. Saat sebuah instance melakukan boot, layanan cloud-init dimulai dan mencari serta menjalankan instruksi. Tugas selesai selama booting pertama atau pada booting berikutnya dari VM Anda, berdasarkan konfigurasi cloud-init Anda.
Anda mendefinisikan tugas dengan mengkonfigurasi file /etc/cloud/cloud.cfg dan menambahkan perintah di bawah direktori /etc/cloud/cloud.cfg.d/.

  • File cloud.cfg menyertakan arahan, seperti untuk akses dan otentikasi pengguna dan sistem Informasi. File tersebut juga menyertakan modul default dan opsional untuk cloud-init. Modul dijalankan di urutan dalam tiga fase yang mencakup fase inisialisasi cloud-init, konfigurasi fase, dan fase terakhir. Di dalam file cloud.cfg, modul untuk tiga fase dicantumkan di bawah cloud_init_modules, cloud_config_modules, dan cloud_final_modules.
  • Direktori cloud.cfg.d adalah tempat Anda dapat menambahkan arahan tambahan untuk cloud-init. Saat kamu menambahkan arahan ke direktori cloud.cfg.d, Anda biasanya menambahkannya ke file bernama *.cfg, dan Anda selalu sertakan #cloud-config di bagian atas file.

B. Cloud-Init Operates In Stages

cloud-init beroperasi dalam lima tahap selama boot sistem. Tahapan tersebut menentukan apakah cloud-init berjalan dan di mana ia menemukan sumber datanya, di antara tugas-tugas lainnya. Ringkasan singkat dari tahapan berikut.

  • Tahap generator cloud-init, melalui layanan systemd, menentukan apakah akan dijalankan cloud-init saat boot.
  • Selama local stage, cloud-init menemukan local datasource dan menerapkan konfigurasi jaringan.
  • Selama network stage, cloud-init memproses data pengguna dan menjalankan modul yang terdaftar di bawah cloud_init_modules di file cloud.cfg Anda. Anda dapat mengaktifkan, menonaktifkan, atau menambahkan modul ke bagian cloud_init_modules.
  • Selama tahap konfigurasi, cloud-init menjalankan modul yang terdaftar di bawah cloud_config_modules di file cloud.cfg Anda. Anda dapat mengaktifkan, menonaktifkan, atau menambahkan modul ke cloud_config_modules bagian.
  • Selama tahap akhir, cloud-init dapat menjalankan apa yang telah Anda sertakan di cloud_final_modules di file cloud.cfg Anda. Anda dapat menyertakan penginstalan paket yang biasanya Anda jalankan setelah file boot sistem dan juga dapat menyertakan plug-in manajemen konfigurasi dan skrip pengguna. Kamu bisa aktifkan, nonaktifkan, atau tambahkan modul ke bagian cloud_final_modules.

C. Cloud-Init Modules Execute In Phases

Ketika cloud-init berjalan, itu mengeksekusi modul dalam cloud.cfg secara berurutan dalam tiga fase yang mencakup fase jaringan (cloud_init_modules), fase konfigurasi (cloud_config_modules), dan fase terakhir (cloud_final_modules). Saat cloud-init dijalankan untuk pertama kalinya pada VM, semua modul Anda telah mengonfigurasi proses dalam fase masing-masing. Saat menjalankan cloud-init berikutnya, apakah modul berjalan dalam satu fase tergantung pada frekuensi modul dari masing-masing modul. Beberapa modul dijalankan setiap kali cloud-init berjalan; beberapa modul hanya berjalan saat pertama kali cloud-init dijalankan, bahkan jika instance Perubahan ID.

  • Per instance berarti modul berjalan pada boot pertama dari sebuah instance. Misalnya, jika Anda mengkloning sebuah instance atau membuat instance baru dari image yang disimpan, modul yang ditetapkan sesuai contoh dijalankan lagi.
  • Per once berarti modul hanya berjalan sekali. Misalnya, jika Anda menggandakan sebuah instance atau membuat contoh baru dari image yang disimpan, modul yang ditentukan per once tidak berjalan lagi di sana.
  • Per always berarti modul berjalan pada setiap boot.

D. Cloud-Init Acts Upon User Data, Metadata, And Vendor Data

cloud-init menggunakan dan bertindak atas user data, metadata, dan vendor data.

  • user data mencakup arahan yang Anda tentukan di file cloud.cfg dan di direktori cloud.cfg.d, misalnya, user data dapat menyertakan file untuk dijalankan, paket untuk diinstal, dan skrip shell. Mengacu kepada bagian Dokumentasi cloud-init User-Data Formats untuk informasi tentang tipe data pengguna yang diizinkan oleh cloud-init.
  • Metadata mencakup data yang terkait dengan specific datasource, misalnya, metadata bisa sertakan nama server dan ID instance. Jika Anda menggunakan platform cloud tertentu, platform menentukan di mana instance Anda menemukan data dan metadata pengguna. Platform Anda mungkin membutuhkan itu Anda menambahkan metadata dan data pengguna ke layanan HTTP; dalam hal ini, saat cloud-init menjalankannya mengkonsumsi metadata dan data pengguna dari layanan HTTP.
  • Vendor data secara opsional disediakan oleh organisasi (misalnya, penyedia cloud) dan termasuk informasi yang dapat menyesuaikan image agar lebih sesuai dengan lingkungan tempat image berjalan. cloud-init bertindak atas opsional vendor data dan user data setelah membaca metadata apa pun dan menginisialisasi sistem. Secara default, vendor data berjalan pada boot pertama. Anda dapat menonaktifkan vendor data execution.

E. Cloud-Init Identifies The Cloud Platform

cloud-init mencoba mengidentifikasi platform cloud menggunakan skrip ds-identify. Skrip dijalankan di boot pertama sebuah instance.
Menambahkan datasource directive dapat menghemat waktu saat cloud-init berjalan. Anda akan menambahkan directive di /etc/cloud/cloud.cfg atau di direktori /etc/cloud/cloud.cfg.d. Contoh berikut.

    datasource_list:[Ec2]

Selain menambahkan arahan untuk platform cloud Anda, Anda dapat mengonfigurasi cloud-init lebih lanjut dengan menambahkan detail konfigurasi tambahan, seperti URL metadata.

    datasource_list: [Ec2]
    
        datasource:
        Ec2:
        metadata_urls: ['http://169.254.169.254']
    

Setelah cloud-init berjalan, Anda dapat melihat file log ( run/cloud-init/ds-identify.log ) yang memberikan detail informasi tentang platform.

Related Posts

Post a Comment

Subscribe Our Newsletter