全部产品
Search
文档中心

Elastic Compute Service:Menyesuaikan konfigurasi inisialisasi untuk sebuah instans

更新时间:Jul 06, 2025

Jika Anda ingin menyelesaikan konfigurasi sistem atau menjalankan skrip bisnis tertentu saat membuat instans Elastic Compute Service (ECS), seperti menginstal NGINX dan Docker sebelumnya atau memodifikasi nama host, Anda dapat mengonfigurasi parameter User Data.

Data pengguna instans

Data pengguna instans adalah data yang diunggah ke instans ECS, seperti skrip, instruksi, dan file konfigurasi. Anda dapat menggunakan data pengguna instans untuk menginisialisasi atau mengonfigurasi instans ECS. Sebagai contoh, pertama kali instans ECS dihidupkan, instans tersebut secara otomatis menggunakan data pengguna instans untuk menjalankan skrip startup layanan, menginstal perangkat lunak, dan mencetak log. Data pengguna instans dapat dijalankan secara otomatis pada saat pertama kali instans ECS dihidupkan. Data pengguna instans dalam format tertentu juga dapat dijalankan setiap kali instans ECS Linux dihidupkan. Untuk informasi lebih lanjut, lihat Format dan Frekuensi Eksekusi Data Pengguna Instans.

Batasan

  • Instans harus ditempatkan di Virtual Private Cloud (VPC).

  • Instans harus dibuat dari gambar publik dari sistem operasi berikut atau gambar kustom yang berasal dari gambar publik:

    • Alibaba Cloud Linux, CentOS, CentOS Stream, Ubuntu, SUSE Linux Enterprise Server, Red Hat Enterprise Linux, openSUSE, Debian, AlmaLinux, Rocky Linux, dan Fedora.

    • Windows Server 2008 R2 atau yang lebih baru.

  • Untuk jenis instans yang sudah pensiun, instans yang dioptimalkan I/O mendukung data pengguna, sedangkan instans yang tidak dioptimalkan I/O tidak mendukung data pengguna.

Gunakan data pengguna instans saat Anda membuat instans ECS

Langkah 1: Siapkan data pengguna instans

Selama inisialisasi instans, alat inisialisasi membaca data pengguna instans untuk menyelesaikan konfigurasi kustom. Instans ECS Linux dan Windows menggunakan alat inisialisasi yang berbeda. Setiap alat inisialisasi mendukung beberapa format data pengguna instans. Bagian berikut menggambarkan format data pengguna instans yang didukung oleh instans ECS Linux dan Windows serta frekuensi eksekusi data pengguna instans dalam format yang berbeda.

Format dan Frekuensi Eksekusi Data Pengguna Instans

Instans Linux

Instans Linux menggunakan komponen cloud-init untuk menyelesaikan konfigurasi inisialisasi. Konfigurasi yang berbeda dijalankan berdasarkan apakah instans dihidupkan untuk pertama kalinya. Instans tertentu yang menggunakan versi awal gambar juga dapat menggunakan Upstart Job untuk menyelesaikan konfigurasi inisialisasi.

Format data pengguna instans yang didukung oleh komponen cloud-init termasuk data User-Data dan Cloud Config yang dapat langsung digunakan untuk mengonfigurasi instans ECS. Komponen ini juga mendukung format data pengguna lainnya. Format yang paling umum adalah file include dan konten terkompresi Gzip. Selain komponen cloud-init, instans tertentu yang menggunakan versi awal gambar dapat menggunakan Upstart Job untuk menyelesaikan konfigurasi inisialisasi.

Catatan
  • Untuk informasi lebih lanjut tentang format data pengguna instans, lihat Format Data Pengguna dari dokumentasi cloud-init.

  • Jika ukuran skrip user-data, data cloud-config, atau file include melebihi 32 KB, kami sarankan Anda memilih Konten Terkompresi Gzip sebagai format data.

  • Jika Anda ingin menjalankan skrip user-data setiap kali instans dihidupkan, kami sarankan Anda memilih Data Cloud Config atau Upstart Job sebagai format data.

Skrip user-data

  • Ikhtisar

    Setelah skrip user-data dilewatkan ke instans Linux, skrip tersebut dieksekusi sebagai skrip shell dan hanya dijalankan sekali saat instans dihidupkan untuk pertama kalinya.

  • Frekuensi Eksekusi

    • Penghidupan Instans: Skrip user-data hanya dijalankan sekali saat instans ECS dihidupkan untuk pertama kalinya. Skrip tidak dijalankan saat instans di-restart.

    • Penggantian Sistem Operasi: Skrip user-data dijalankan secara otomatis.

    • Inisialisasi Ulang Disk Sistem: Skrip user-data dijalankan secara otomatis.

    Penting

    Skrip tidak dijalankan secara otomatis dalam skenario berikut:

    • Jika Anda menggunakan gambar kustom untuk mengganti sistem operasi instans sumber dari mana gambar kustom dibuat, sistem menentukan bahwa instans tidak dihidupkan untuk pertama kalinya dan tidak menjalankan skrip.

    • Jika Anda menggunakan gambar kustom untuk membuat instans ECS, disk sistem instans menyimpan data. Saat Anda menginisialisasi disk sistem, sistem menentukan bahwa instans tidak dihidupkan untuk pertama kalinya dan tidak menjalankan skrip.

  • Format

    Baris pertama dimulai dengan tanda pagar dan tanda seru (#!).

  • Contoh Skrip User-Data

    • Jalankan Skrip Kustom

      #!/bin/sh
      echo "Halo Dunia. Waktu sekarang adalah $(date -R)!" | tee /root/userdata_test.txt

      Contoh skrip user-data dijalankan hanya sekali saat instans ECS dihidupkan untuk pertama kalinya, dan menulis waktu sistem ke file userdata_test.txt.

    • Kustomisasi Repositori Perangkat Lunak, Resolusi DNS, dan Konfigurasi Layanan Sinkronisasi Waktu untuk Instans ECS

      Saat Anda membuat instans ECS, Anda dapat menggunakan skrip user-data untuk menyesuaikan repositori perangkat lunak, resolusi DNS, dan konfigurasi layanan sinkronisasi waktu untuk instans tersebut. Dalam contoh kode berikut, CentOS Stream 9 digunakan. Ganti konfigurasi berdasarkan sistem operasi Anda.

      Penting

      Saat instans dihidupkan, sistem mengonfigurasi repositori YUM default, layanan Network Time Protocol (NTP), dan layanan Domain Name System (DNS). Anda dapat menggunakan data pengguna instans untuk mengubah repositori YUM default dan layanan NTP dan DNS yang dikonfigurasi. Perhatikan hal-hal berikut:

      • Jika Anda menggunakan repositori YUM kustom, Alibaba Cloud berhenti memberikan dukungan repositori YUM.

      • Jika Anda menyesuaikan layanan NTP, Alibaba Cloud berhenti memberikan layanan sinkronisasi waktu.

      #!/bin/sh
      # Modifikasi DNS
      echo "nameserver 114.114.114.114" | tee /etc/resolv.conf
      # Modifikasi repo yum dan pembaruan
      cp /etc/yum.repos.d/centos.repo /etc/yum.repos.d/centos.repo.bak
      cp /etc/yum.repos.d/centos-addons.repo /etc/yum.repos.d/centos-addons.repo.bak
      sed -i "s@http://mirrors.cloud.aliyuncs.com/centos-stream/@https://mirror.stream.centos.org/@g" /etc/yum.repos.d/centos.repo
      sed -i "s@http://mirrors.cloud.aliyuncs.com/centos-stream/@https://mirror.stream.centos.org/@g" /etc/yum.repos.d/centos-addons.repo
      yum update -y
      # Modifikasi Server NTP
      echo "server ntp1.aliyun.com" | tee /etc/ntp.conf
      systemctl restart ntpd.service
      Catatan

      Ganti 114.114.114.114 dengan alamat server DNS aktual, https://mirror.stream.centos.org dengan alamat repositori YUM aktual dari CentOS Stream, dan server ntp1.aliyun.com dengan alamat server NTP aktual dari Alibaba Cloud.

      Anda juga dapat menggunakan data cloud-config untuk mengubah repositori YUM. Namun, data cloud-config kurang fleksibel daripada skrip user-data dan tidak cocok untuk skenario di mana repositori YUM tertentu telah dikonfigurasi sebelumnya oleh Alibaba Cloud. Kami sarankan Anda menggunakan skrip user-data.

    • Tentukan Akun Administrator

      Secara default, instans Linux menggunakan akun root sebagai akun administrator. Anda dapat menggunakan data pengguna instans pada instans untuk menentukan akun lain sebagai akun administrator.

      #!/bin/sh
      useradd test-user
      echo "test-user   ALL=(ALL)        NOPASSWD:ALL" | tee -a /etc/sudoers
      mkdir /home/test-user/.ssh
      touch /home/test-user/.ssh/authorized_keys
      echo "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCRnnUveAis****" | tee -a /home/test-user/.ssh/authorized_keys
      Catatan

      Ganti ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCRnnUveAis**** dalam kode sebelumnya dengan kunci publik aktual Anda.

Catatan

Jika terjadi masalah saat skrip user-data dijalankan, Anda dapat menjalankan perintah Asisten Cloud umum berikut untuk mendapatkan log kesalahan: ACS-ECS-UserData-Check-for-linux.sh. Jika pesan kesalahan muncul di log, terjadi kesalahan saat skrip dijalankan. Jika tidak ada pesan kesalahan yang muncul di log, tidak ada kesalahan yang terjadi saat skrip dijalankan. Dalam hal ini, periksa skrip dari aspek lain untuk mengidentifikasi penyebab masalah. Untuk informasi tentang perintah Asisten Cloud umum, lihat Lihat dan Jalankan Perintah Umum.

Data cloud-config

  • Ikhtisar

    Cloud-init mendefinisikan serangkaian modul fungsional untuk menjalankan tugas dan konfigurasi tertentu, seperti menginstal paket perangkat lunak dan mengonfigurasi pengaturan jaringan. Cloud-init memperoleh data cloud-config dari data vendor, data kustom, dan parameter kernel. Data cloud-config menentukan modul mana yang terlibat dalam tugas dan tindakan apa yang harus diambil. Sebelum Anda membuat instans ECS, Anda dapat mengonfigurasi data cloud-config kustom dengan menentukan modul dan tugas, dan meneruskan data cloud-config ke instans sebagai data pengguna instans. Saat instans dihidupkan, cloud-init membaca dan mengurai data cloud-config untuk menjalankan modul sesuai instruksi dalam file konfigurasi dan menjalankan tugas untuk mengonfigurasi dan menerapkan instans ECS.

  • Frekuensi Eksekusi

    • Penghidupan Instans: Apakah akan mengeksekusi tugas dalam data cloud-config ditentukan oleh frekuensi eksekusi modul yang sesuai dengan tugas tersebut. Untuk informasi tentang modul, lihat Modul.

      • Satu Kali per Instans: Modul dijalankan hanya sekali saat instans ECS dihidupkan untuk pertama kalinya. Sebagai contoh, modul seperti Apt dan Set Passwords dikonfigurasi dan dijalankan dengan frekuensi satu kali per instans. Modul tidak dijalankan saat instans di-restart.

      • Selalu: Modul dijalankan setiap kali instans ECS dihidupkan. Sebagai contoh, ketika modul seperti Bootcmd dan Update Etc Hosts dijalankan dengan frekuensi selalu, modul dijalankan setiap kali instans ECS dihidupkan.

    • Penggantian Sistem Operasi: Modul dijalankan secara otomatis.

    • Inisialisasi Ulang Disk Sistem: Modul dijalankan secara otomatis.

      Penting

      Skrip tidak dijalankan secara otomatis dalam skenario berikut:

      • Jika Anda menggunakan gambar kustom untuk mengganti sistem operasi instans sumber dari mana gambar kustom dibuat, sistem menentukan bahwa instans tidak dihidupkan untuk pertama kalinya dan tidak menjalankan skrip.

      • Jika Anda menggunakan gambar kustom untuk membuat instans ECS, disk sistem instans menyimpan data. Saat Anda menginisialisasi disk sistem, sistem menentukan bahwa instans tidak dihidupkan untuk pertama kalinya dan tidak menjalankan skrip.

  • Format

    • Baris pertama dimulai dengan #cloud-config, dan header tidak mengandung spasi.

    • Data cloud-config harus mengikuti sintaks YAML.

  • Contoh Data Cloud-Config

    • Tentukan Repositori Perangkat Lunak untuk Instans ECS

      Dalam bidang User Data untuk instans ECS, masukkan konten berikut untuk menentukan repositori perangkat lunak untuk instans tersebut. Dalam contoh ini, gambar Ubuntu digunakan untuk membuat instans ECS. Jika Anda menggunakan gambar lain, ganti konfigurasi dalam kode contoh dengan konfigurasi aktual untuk gambar tersebut.

      #cloud-config
      apt:
        preserve_sources_list: false
        disable_suites:
          - $RELEASE-updates
          - backports
          - $RELEASE
          - mysuite
        primary:
          - arches:
              - amd64
              - i386
              - default
            uri: http://us.archive.ubuntu.com/ubuntu
    • Konfigurasikan Instalasi Otomatis untuk Layanan NGINX

      Dalam bidang User Data untuk instans ECS, masukkan konten berikut untuk memungkinkan instans secara otomatis menginstal layanan NGINX:

      #cloud-config
      packages: 
       - nginx 
      runcmd: 
       - systemctl start nginx.service
    • Tentukan Nama Host

      Dalam bidang User Data untuk instans ECS, masukkan konten berikut untuk menentukan nama host untuk instans tersebut:

      #cloud-config
      hostname: my-instance
      fqdn: my-instance.localdomain
    • Izinkan Skrip Kustom Dijalankan Secara Otomatis

      Dalam bidang User Data untuk instans ECS, masukkan konten berikut untuk memungkinkan skrip shell dijalankan secara otomatis setiap kali instans dihidupkan:

      #cloud-config
      bootcmd:
      - echo "Halo Dunia. Waktu sekarang adalah $(date -R)!" | tee /root/userdata_test.txt

File include

  • Ikhtisar

    File include berisi satu atau lebih tautan ke skrip user-data atau data cloud-config. Setiap tautan menempati baris terpisah. Saat instans ECS dihidupkan, cloud-init membaca dan mengurai tautan satu per satu. Jika terjadi kesalahan saat cloud-init membaca tautan, cloud-init berhenti membaca tautan yang tersisa.

    Catatan

    Anda dapat menggunakan Alibaba Cloud Object Storage Service (OSS) untuk mengunggah skrip user-data atau data cloud-config ke instans ECS, mendapatkan tautan, dan menentukan periode validitas tautan. Untuk informasi lebih lanjut, lihat Mulai Menggunakan Konsol OSS.

  • Frekuensi Eksekusi

    • Penghidupan Instans: Frekuensi eksekusi bervariasi berdasarkan konten yang dituju oleh tautan. Sebagai contoh, jika tautan ditujukan ke skrip user-data, skrip dijalankan hanya sekali saat instans ECS dihidupkan untuk pertama kalinya. Jika tautan ditujukan ke data cloud-config, frekuensi eksekusi data cloud-config berlaku.

    • Penggantian Sistem Operasi: File include dijalankan secara otomatis.

    • Inisialisasi Ulang Disk Sistem: File include dijalankan secara otomatis.

      Penting

      Skrip tidak dijalankan secara otomatis dalam skenario berikut:

      • Jika Anda menggunakan gambar kustom untuk mengganti sistem operasi instans sumber dari mana gambar kustom dibuat, sistem menentukan bahwa instans tidak dihidupkan untuk pertama kalinya dan tidak menjalankan skrip.

      • Jika Anda menggunakan gambar kustom untuk membuat instans ECS, disk sistem instans menyimpan data. Saat Anda menginisialisasi disk sistem, sistem menentukan bahwa instans tidak dihidupkan untuk pertama kalinya dan tidak menjalankan skrip.

  • Format

    Baris pertama dimulai dengan #include, dan header tidak mengandung spasi.

  • Contoh File Include

    #include
    https://ecs-image-test.oss-cn-hangzhou.aliyuncs.com/userdata/myscript.sh

    Dalam contoh ini, file include berisi tautan ke skrip user-data, dan skrip dijalankan hanya sekali saat instans ECS dihidupkan untuk pertama kalinya.

    Catatan

    Jika Anda menggunakan file include atau konten terkompresi Gzip, gunakan layanan penyimpanan untuk mengunggah skrip, mendapatkan tautan skrip, dan menentukan periode validitas tautan. Kami sarankan Anda menggunakan Alibaba Cloud OSS. Untuk informasi lebih lanjut, lihat Mulai Menggunakan Konsol OSS.

Konten terkompresi Gzip

  • Ikhtisar

    Jika ukuran skrip user-data, data cloud-config, atau file include melebihi 32 KB, Anda dapat menggunakan Gzip untuk menekan konten dalam file include dalam format .gz, menghasilkan tautan yang sesuai, dan kemudian meneruskan file include ke instans ECS. Cloud-init secara otomatis mengekstraksi konten terkompresi Gzip. Hasil menjalankan konten yang diekstraksi sama dengan hasil menjalankan konten tidak terkompresi yang langsung diteruskan ke instans ECS.

    Catatan

    Anda juga dapat menggunakan Alibaba Cloud OSS untuk mengunggah skrip user-data atau data cloud-config ke instans ECS, mendapatkan tautan, dan menentukan periode validitas tautan. Untuk informasi lebih lanjut, lihat Mulai Menggunakan Konsol OSS.

  • Frekuensi Eksekusi

    • Penghidupan Instans: Frekuensi eksekusi bervariasi berdasarkan jenis skrip dan jenis modul. Sebagai contoh, jika tautan ditujukan ke konten terkompresi Gzip yang merupakan skrip user-data, konten terkompresi Gzip dijalankan hanya sekali saat instans ECS dihidupkan untuk pertama kalinya.

    • Penggantian Sistem Operasi: Konten terkompresi Gzip dijalankan secara otomatis.

    • Inisialisasi Ulang Disk Sistem: Konten terkompresi Gzip dijalankan secara otomatis.

      Penting

      Skrip tidak dijalankan secara otomatis dalam skenario berikut:

      • Jika Anda menggunakan gambar kustom untuk mengganti sistem operasi instans sumber dari mana gambar kustom dibuat, sistem menentukan bahwa instans tidak dihidupkan untuk pertama kalinya dan tidak menjalankan skrip.

      • Jika Anda menggunakan gambar kustom untuk membuat instans ECS, disk sistem instans menyimpan data. Saat Anda menginisialisasi disk sistem, sistem menentukan bahwa instans tidak dihidupkan untuk pertama kalinya dan tidak menjalankan skrip.

  • Format

    Baris pertama dimulai dengan #include, dan header tidak mengandung spasi.

  • Contoh Kode untuk Konten Terkompresi Gzip

    #include
    https://ecs-image-test.oss-cn-hangzhou.aliyuncs.com/userdata/myscript.gz

    Dalam contoh ini, file include berisi tautan ke konten terkompresi Gzip yang merupakan skrip user-data. Setelah cloud-init membaca skrip user-data yang terkompresi Gzip, skrip secara otomatis diekstraksi dan dijalankan hanya sekali saat instans dihidupkan untuk pertama kalinya.

Job Upstart

Catatan

Untuk menggunakan job Upstart pada instans, instal layanan Upstart pada instans. Instans harus menjalankan salah satu sistem operasi berikut: CentOS 6, Ubuntu 10, Ubuntu 12, Ubuntu 14, Debian 6, dan Debian 7.

  • Ikhtisar

    Upstart adalah sistem inisialisasi berbasis acara. Job Upstart adalah file konfigurasi yang mendefinisikan kapan memulai atau menghentikan dan bagaimana menjalankan layanan atau tugas. File job Upstart memiliki ekstensi file .conf dan terletak di direktori /etc/init/.

  • Frekuensi Eksekusi

    • Penghidupan Instans: Job Upstart dijalankan secara otomatis setiap kali instans ECS dihidupkan.

    • Penggantian Sistem Operasi: Job Upstart dijalankan secara otomatis.

    • Inisialisasi Ulang Disk Sistem: Job Upstart dijalankan secara otomatis.

      Penting

      Skrip tidak dijalankan secara otomatis dalam skenario berikut:

      • Jika Anda menggunakan gambar kustom untuk mengganti sistem operasi instans sumber dari mana gambar kustom dibuat, sistem menentukan bahwa instans tidak dihidupkan untuk pertama kalinya dan tidak menjalankan skrip.

      • Jika Anda menggunakan gambar kustom untuk membuat instans ECS, disk sistem instans menyimpan data. Saat Anda menginisialisasi disk sistem, sistem menentukan bahwa instans tidak dihidupkan untuk pertama kalinya dan tidak menjalankan skrip.

  • Format

    Baris pertama dimulai dengan #upstart-job, dan header tidak mengandung spasi.

  • Contoh Job Upstart

    #upstart-job
    description "upstart test"
    start on runlevel [2345] #Memulai pada level run 2, 3, 4, dan 5.
    stop on runlevel [!2345] #Berhenti pada level run selain 2, 3, 4, dan 5.
    exec echo "Halo Dunia. Waktu sekarang adalah $(date -R)!" | tee /root/output.txt

    Contoh job Upstart mengembalikan pesan yang berisi timestamp ketika sistem berjalan pada level run yang ditentukan dan menambahkan pesan ke file /root/output.txt. Job Upstart berhenti ketika sistem berjalan pada level run yang berbeda dari level run yang ditentukan sebelumnya.

File multi-bagian MIME

  • Ikhtisar

    File multi-bagian MIME dapat mentransmisikan berbagai jenis instruksi. Sebagai contoh, Anda dapat menggunakan file multi-bagian MIME untuk menyertakan baik text/cloud-config (untuk konfigurasi cloud-init) maupun text/x-shellscript (skrip shell) dalam data pengguna. Cloud-init mengurai dan mengeksekusi instruksi secara terpisah.

  • Frekuensi Eksekusi

    • Penghidupan Instans: Frekuensi eksekusi bergantung pada jenis bagian pesan MIME dan konfigurasi cloud-init. Sebagai contoh, jika bagian dari pesan MIME adalah skrip user-data, skrip dijalankan hanya sekali saat instans ECS dihidupkan untuk pertama kalinya. Jika bagian dari pesan MIME adalah data cloud-config, frekuensi eksekusi data cloud-config berlaku.

    • Penggantian Sistem Operasi: File multi-bagian MIME dijalankan secara otomatis.

    • Inisialisasi Ulang Disk Sistem: File multi-bagian MIME dijalankan secara otomatis.

      Penting

      Skrip tidak dijalankan secara otomatis dalam skenario berikut:

      • Jika Anda menggunakan gambar kustom untuk mengganti sistem operasi instans sumber dari mana gambar kustom dibuat, sistem menentukan bahwa instans tidak dihidupkan untuk pertama kalinya dan tidak menjalankan skrip.

      • Jika Anda menggunakan gambar kustom untuk membuat instans ECS, disk sistem instans menyimpan data. Saat Anda menginisialisasi disk sistem, sistem menentukan bahwa instans tidak dihidupkan untuk pertama kalinya dan tidak menjalankan skrip.

  • Format

    • Baris pertama dimulai dengan Content-Type: multipart/mixed: boundary="****", di mana boundary dapat disesuaikan, dan header tidak mengandung spasi.

    • Baris kedua menentukan versi MIME-Version: 1.0, yang biasanya diperlukan dalam setiap pesan MIME.

  • Contoh File Multi-Bagian MIME

    Content-Type: multipart/mixed; boundary="//"
    MIME-Version: 1.0
    
    --//
    Content-Type: text/cloud-config; charset="us-ascii"
    MIME-Version: 1.0
    Content-Transfer-Encoding: 7bit
    Content-Disposition: attachment; filename="cloud-config.txt"
    
    #cloud-config
    runcmd:
    - [ mkdir, /test-cloudinit ]
    write_files:
    - path: /test-cloudinit/cloud-init.txt
    write_files:
    - content: |
        Dibuat oleh cloud-init
      path:  /test-cloudinit/cloud-init.txt
      append: true
    
    --//
    Content-Type: text/x-shellscript; charset="us-ascii"
    MIME-Version: 1.0
    Content-Transfer-Encoding: 7bit
    Content-Disposition: attachment; filename="userdata.txt"
    
    #!/bin/bash
    mkdir test-userscript
    touch /test-userscript/userscript.txt
    echo "Dibuat oleh skrip shell bash" >> /test-userscript/userscript.txt
    --//--

    Contoh file multi-bagian MIME berisi instruksi cloud-init dan skrip shell Bash.

    • Instruksi cloud-init membuat file (/test-cloudinit/cloud-init.txt) dan menulis Dibuat oleh cloud-init ke dalamnya.

    • Skrip shell Bash membuat file (/test-userscript/userscript.txt) dan menulis Dibuat oleh skrip shell bash ke dalamnya.

Instans Windows

Instans Windows menggunakan plugin Plugin_Main_CloudinitUserData dari komponen Vminit untuk menjalankan skrip data pengguna instans. Plugin ini dijalankan hanya sekali saat instans dihidupkan untuk pertama kalinya. Plugin ini mendukung skrip batch dan PowerShell.

Skrip Batch

  • Frekuensi Eksekusi

    • Penghidupan Instans: Skrip batch dijalankan hanya sekali saat instans ECS dihidupkan untuk pertama kalinya. Skrip tidak dijalankan saat instans di-restart.

    • Penggantian Sistem Operasi: Skrip batch dijalankan secara otomatis.

    • Inisialisasi Ulang Disk Sistem: Skrip batch dijalankan secara otomatis.

      Penting

      Skrip tidak dijalankan secara otomatis dalam skenario berikut:

      • Jika Anda menggunakan gambar kustom untuk mengganti sistem operasi instans sumber dari mana gambar kustom dibuat, sistem menentukan bahwa instans tidak dihidupkan untuk pertama kalinya dan tidak menjalankan skrip.

      • Jika Anda menggunakan gambar kustom untuk membuat instans ECS, disk sistem instans menyimpan data. Saat Anda menginisialisasi disk sistem, sistem menentukan bahwa instans tidak dihidupkan untuk pertama kalinya dan tidak menjalankan skrip.

  • Format

    • Baris pertama adalah [bat], dan header tidak mengandung spasi.

    • Anda hanya dapat memasukkan karakter lebar setengah. Tidak ada karakter lain yang diperbolehkan.

    • Path tempat data pengguna instans ditulis tidak boleh C:\Users. Jika tidak, data pengguna instans gagal dijalankan.

      Catatan

      Dalam sistem operasi Windows, file konfigurasi pengguna dan data disimpan di direktori C:\Users dan subdirektorinya secara default. Anda hanya dapat mengakses direktori dan subdirektori tersebut setelah masuk ke sistem operasi. Anda belum masuk ke sistem operasi ketika sistem operasi menjalankan data pengguna pada tahap inisialisasi. Data tidak dapat ditulis ke direktori C:\Users atau subdirektorinya pada tahap tersebut.

  • Contoh Skrip Batch

    • Jalankan Skrip Kustom

      [bat]
      echo "tes batch" > C:\userdata_test.txt

      Dalam contoh ini, skrip batch dijalankan hanya sekali saat instans ECS dihidupkan untuk pertama kalinya dan menulis "tes batch" ke file userdata_test.txt.

Skrip PowerShell

  • Frekuensi Eksekusi

    • Penghidupan Instans: Skrip PowerShell dijalankan hanya sekali saat instans ECS dihidupkan untuk pertama kalinya. Skrip tidak dijalankan saat instans di-restart.

    • Penggantian Sistem Operasi: Skrip PowerShell dijalankan secara otomatis.

    • Inisialisasi Ulang Disk Sistem: Skrip PowerShell dijalankan secara otomatis.

      Penting

      Skrip tidak dijalankan secara otomatis dalam skenario berikut:

      • Jika Anda menggunakan gambar kustom untuk mengganti sistem operasi instans sumber dari mana gambar kustom dibuat, sistem menentukan bahwa instans tidak dihidupkan untuk pertama kalinya dan tidak menjalankan skrip.

      • Jika Anda menggunakan gambar kustom untuk membuat instans ECS, disk sistem instans menyimpan data. Saat Anda menginisialisasi disk sistem, sistem menentukan bahwa instans tidak dihidupkan untuk pertama kalinya dan tidak menjalankan skrip.

  • Format

    • Baris pertama adalah [powershell], dan header tidak mengandung spasi.

    • Anda hanya dapat memasukkan karakter lebar setengah. Tidak ada karakter lain yang diperbolehkan.

    • Path tempat data pengguna instans ditulis tidak boleh C:\Users. Jika tidak, data pengguna instans gagal dijalankan.

      Catatan

      Dalam sistem operasi Windows, file konfigurasi pengguna dan data disimpan di direktori C:\Users dan subdirektorinya secara default. Anda hanya dapat mengakses direktori dan subdirektori tersebut setelah masuk ke sistem operasi. Anda belum masuk ke sistem operasi ketika sistem operasi menjalankan data pengguna pada tahap inisialisasi. Data tidak dapat ditulis ke direktori C:\Users atau subdirektorinya pada tahap tersebut.

  • Contoh Skrip PowerShell

    • Jalankan Skrip Kustom

      [powershell]
      write-output "tes powershell" | Out-File C:\userdata_test.txt

      Dalam contoh ini, skrip PowerShell dijalankan hanya sekali saat instans ECS dihidupkan untuk pertama kalinya dan menulis tes powershell ke file userdata_test.txt.

Langkah 2: Gunakan data pengguna instans yang telah disiapkan saat Anda membuat instans ECS

  • Buat instans ECS di konsol ECS

    Pada tab Peluncuran Kustom halaman pembelian instans ECS, perluas bagian Advanced Settings(Optional). Di bidang User Data, masukkan data pengguna instans.

    Penting

    Jika Anda memilih Enter Base64 Encoded Information, pastikan bahwa data pengguna instans dienkripsi dalam Base64 dan tidak melebihi ukuran 32 KB sebelum enkripsi Base64. Jika Anda menghapus pilihan Masukkan Informasi Terenkripsi Base64, sistem akan secara otomatis mengenkripsi data pengguna instans dalam Base64.

  • Buat instans ECS dengan memanggil operasi API

    Saat membuat instans ECS dengan memanggil operasi RunInstances atau CreateInstance, tentukan parameter UserData.

Langkah 3: Periksa apakah data pengguna instans dapat dijalankan sesuai harapan

Periksa apakah skrip kustom dapat dijalankan sesuai harapan berdasarkan isi skrip. Dalam contoh ini, skrip user-data berikut dilewatkan ke instans Linux:

#!/bin/sh
echo "Halo Dunia. Waktu sekarang adalah $(date -R)!" | tee /root/userdata_test.txt

Contoh skrip user-data dijalankan hanya sekali saat instans ECS dihidupkan untuk pertama kalinya dan menulis waktu sistem ke file userdata_test.txt. Untuk memeriksa apakah skrip dapat dijalankan sesuai harapan, jalankan perintah cat userdata_test.txt. Output perintah berikut menunjukkan bahwa waktu sistem telah ditulis ke file userdata_test.txt.

view-result

Catatan

Jika terjadi masalah saat skrip user-data dijalankan, Anda dapat menjalankan perintah Asisten Cloud umum berikut untuk mendapatkan log kesalahan: ACS-ECS-UserData-Check-for-linux.sh. Jika pesan kesalahan muncul di log, terjadi kesalahan saat skrip dijalankan. Jika tidak ada pesan kesalahan yang muncul di log, tidak ada kesalahan yang terjadi saat skrip dijalankan. Dalam hal ini, periksa skrip dari aspek lain untuk mengidentifikasi penyebab masalah. Untuk informasi lebih lanjut tentang perintah Asisten Cloud umum, lihat Lihat dan jalankan perintah umum.

Operasi Lainnya

Lihat data pengguna instans dari instans ECS yang ada

Setelah data pengguna instans diteruskan ke instans ECS, Anda dapat melihat data tersebut menggunakan layanan metadata, di konsol ECS, atau dengan memanggil operasi API.

Lihat data pengguna instans dengan menggunakan layanan metadata (mode penguatan keamanan)

  • Instans Linux

    TOKEN=`curl -X PUT "http://100.100.100.200/latest/api/token" -H "X-aliyun-ecs-metadata-token-ttl-seconds:180"`
    curl -H "X-aliyun-ecs-metadata-token: $TOKEN" http://100.100.100.200/latest/user-data
  • Instans Windows

    $token = Invoke-RestMethod -Headers @{"X-aliyun-ecs-metadata-token-ttl-seconds" = "180"} -Method PUT -Uri http://100.100.100.200/latest/api/token
    Invoke-RestMethod -Headers @{"X-aliyun-ecs-metadata-token" = $token} -Method GET -Uri http://100.100.100.200/latest/user-data
Catatan
  • Pada contoh sebelumnya, periode validitas token adalah 180 detik. Anda dapat menyesuaikan periode ini sesuai dengan skenario bisnis Anda.

  • Contoh ini menggunakan mode penguatan keamanan layanan metadata untuk mendapatkan metadata. Untuk informasi lebih lanjut tentang cara mendapatkan metadata menggunakan layanan metadata, lihat Metadata Instans.

  • Untuk informasi lebih lanjut tentang metadata, lihat Metadata Instans.

Lihat data pengguna instans di konsol ECS

  1. Pastikan bahwa instans ECS berada dalam status Stopped.

    Penting

    Jika instans ECS dibayar menggunakan metode penagihan bayar sesuai pemakaian dan berada di VPC, kami sarankan Anda memilih Standard Mode di bagian Stop Mode saat menghentikan instans. Jika Anda memilih Economical Mode, sumber daya komputasi (vCPU dan memori) instans akan didaur ulang. Akibatnya, instans mungkin gagal dihidupkan kembali karena sumber daya yang tidak mencukupi. Untuk informasi lebih lanjut, lihat Mode Ekonomis.

  2. Klik ID instans ECS yang ingin Anda lihat datanya untuk membuka halaman detail instans. Di sudut kanan atas halaman, klik All Actions. Di panel yang muncul, cari dan klik Set User Data. Di bidang User Data pada kotak dialog yang muncul, lihat data pengguna instans yang telah dikonfigurasi.

Kueri data pengguna instans dengan memanggil operasi API

Untuk menanyakan data pengguna instans dari instans ECS, Anda dapat memanggil operasi DescribeUserData. Untuk informasi lebih lanjut, lihat DescribeUserData.

Modifikasi data pengguna instans dari instans ECS yang ada

Untuk memodifikasi data pengguna instans dari instans ECS yang ada, ikuti langkah-langkah berikut di konsol ECS:

  1. Pastikan bahwa instans ECS berada dalam status Stopped.

    Penting

    Jika instans ECS dibayar menggunakan metode penagihan bayar sesuai pemakaian dan berada di VPC, kami sarankan Anda memilih Standard Mode di bagian Stop Mode saat menghentikan instans. Jika Anda memilih Economical Mode, sumber daya komputasi (vCPU dan memori) instans akan didaur ulang. Akibatnya, instans mungkin gagal dihidupkan kembali karena sumber daya yang tidak mencukupi. Untuk informasi lebih lanjut, lihat Mode Ekonomis.

  2. Klik ID instans ECS yang ingin Anda kelola untuk membuka halaman detail instans. Di sudut kanan atas halaman, klik All Actions. Di panel yang muncul, cari dan klik Set User Data. Di bidang User Data, masukkan data pengguna instans.

Penting

Setelah memodifikasi data pengguna instans dari instans ECS yang ada, apakah data pengguna instans dijalankan setelah instans dihidupkan ditentukan oleh format dan frekuensi eksekusi data pengguna instans. Identifikasi kebutuhan Anda sebelum memodifikasi data pengguna instans. Untuk informasi lebih lanjut, lihat Format dan Frekuensi Eksekusi Data Pengguna Instans.

Referensi

  • Anda dapat menggunakan fitur Data Pengguna dari Auto Scaling untuk memungkinkan beberapa instans ECS menjalankan skrip atau perintah yang telah dikonfigurasikan secara otomatis saat instans dihidupkan. Hal ini memastikan konsistensi konfigurasi instans ECS dan menyederhanakan operasi serta pemeliharaan (O&M). Untuk informasi lebih lanjut, lihat Gunakan fitur Data Pengguna Instans untuk mengonfigurasi instans ECS secara otomatis.

  • Jika Anda ingin layanan atau skrip pulih dengan cepat dari gangguan seperti pengecualian program, restart instans, atau pemadaman listrik, gunakan plugin Asisten Cloud bernama ecs-tool-servicekeepalive. Untuk informasi lebih lanjut, lihat Gunakan plugin Asisten Cloud untuk menjaga layanan tetap aktif.

  • Untuk informasi tentang cara mengelola konfigurasi inisialisasi instans, lihat Alat inisialisasi.