Jika Anda ingin melakukan konfigurasi sistem atau menjalankan skrip bisnis tertentu saat membuat Instance ECS—seperti menginstal perangkat lunak seperti Nginx dan Docker terlebih dahulu atau mengubah hostname—gunakan parameter User Data.
Ikhtisar Data Kustom
User data terdiri dari skrip, instruksi, atau file konfigurasi yang dapat Anda unggah ke instans untuk melakukan tugas inisialisasi atau konfigurasi. Misalnya, saat instans pertama kali dijalankan, instans tersebut dapat secara otomatis menjalankan skrip startup layanan, menginstal perangkat lunak, atau mencatat log. User data dijalankan secara otomatis ketika instans pertama kali dijalankan. Beberapa format user data juga mendukung eksekusi setiap kali instans Linux dijalankan. Untuk informasi selengkapnya, lihat Format data pengguna dan frekuensi eksekusi.
Batasan
Instans harus berada dalam virtual private cloud (VPC).
Instans harus menggunakan gambar publik atau custom image yang dibuat dari gambar publik. Sistem operasi harus salah satu dari berikut ini:
Alibaba Cloud Linux, CentOS, CentOS Stream, Ubuntu, SUSE Linux Enterprise Server, Red Hat Enterprise Linux, OpenSUSE, Debian, AlmaLinux, Rocky Linux, atau Fedora
Windows Server 2008 R2 atau versi yang lebih baru
Di antara jenis instans yang telah ditarik, hanya instans I/O teroptimasi yang mendukung fitur user data. Fitur ini tidak didukung pada instans non-I/O teroptimasi. Untuk informasi selengkapnya, lihat Jenis instans yang telah ditarik.
Gunakan user data saat membuat instans
1. Siapkan data kustom
Saat inisialisasi instans, tool inisialisasi membaca user data yang Anda berikan untuk melakukan konfigurasi kustom. Instans Linux dan Windows menggunakan tool inisialisasi yang berbeda. Tool ini mendukung beberapa format user data. Untuk informasi selengkapnya tentang format data dan frekuensi eksekusinya, lihat bagian berikut.
Format Data Kustom dan Frekuensi Eksekusi
Instans Linux
Instans Linux menggunakan komponen cloud-init untuk melakukan aksi inisialisasi. Konfigurasi yang dijalankan bergantung pada apakah instans dijalankan untuk pertama kalinya. Beberapa instans yang menggunakan versi gambar lama juga menggunakan Upstart Job untuk inisialisasi.
Tool cloud-init mendukung jenis user data yang dapat langsung mengonfigurasi instans, seperti format User-Data dan Cloud Config. Tool ini juga mendukung format user data lainnya. Format yang paling umum adalah file include dan konten terkompresi Gzip. Selain tool cloud-init, beberapa instans yang menggunakan versi gambar lama juga menggunakan Upstart Job untuk inisialisasi.
Untuk informasi selengkapnya tentang format user data, lihat User-Data Formats dalam dokumentasi cloud-init.
Jika ukuran skrip User-Data, data Cloud Config, atau file Include Anda melebihi 32 KB, pilih Gzip compressed content sebagai tipe data.
Jika suatu tugas perlu dijalankan setiap kali instans dijalankan, pilih Cloud Config data atau Upstart Job sebagai tipe data.
Skrip User-Data
Ikhtisar
Saat skrip User-Data diteruskan ke instans Linux, skrip tersebut dijalankan sebagai skrip shell. Skrip ini hanya dijalankan sekali saat instans pertama kali dijalankan.
Frekuensi eksekusi
Jalankan instans: Hanya dijalankan sekali saat instans pertama kali dijalankan. Skrip tidak dijalankan lagi saat instans direstart.
Ganti sistem operasi: Dijalankan secara otomatis.
Inisialisasi ulang disk sistem: Dijalankan secara otomatis.
PentingSkrip tidak dijalankan secara otomatis dalam kasus berikut:
Jika Anda menggunakan custom image yang dibuat dari instans sumber untuk mengganti sistem operasi, sistem menentukan bahwa instans tidak dijalankan untuk pertama kalinya dan tidak menjalankan skrip.
Jika Anda menggunakan custom image untuk membuat instans, disk sistem instans tersebut sudah berisi data. Saat Anda menginisialisasi disk sistem, sistem menentukan bahwa instans tidak dijalankan untuk pertama kalinya dan tidak menjalankan skrip.
Format
Baris pertama harus dimulai dengan shebang (
#!).Contoh skrip User-Data
Jalankan skrip kustom
#!/bin/sh echo "Hello World. The time is now $(date -R)!" | tee /root/userdata_test.txtSkrip User-Data contoh ini menulis waktu sistem ke file userdata_test.txt saat instans pertama kali dijalankan.
Kustomisasi sumber perangkat lunak, konfigurasi DNS, dan layanan sinkronisasi waktu
Saat membuat instans, Anda dapat menggunakan skrip User-Data untuk menyesuaikan sumber perangkat lunak, konfigurasi DNS, dan layanan sinkronisasi waktu untuk instans tersebut. Contoh berikut menggunakan CentOS Stream 9. Ganti konfigurasi tersebut dengan yang sesuai untuk sistem operasi Anda.
PentingSistem secara otomatis mengonfigurasi repositori yum default, layanan Network Time Protocol (NTP), dan layanan DNS saat instans dijalankan. Anda dapat menggunakan user data untuk mengubah repositori yum default, layanan NTP, dan layanan DNS. Perhatikan hal berikut:
Jika Anda menyesuaikan repositori yum, Alibaba Cloud tidak lagi memberikan dukungan untuk repositori yum tersebut.
Jika Anda menyesuaikan layanan NTP, Alibaba Cloud tidak lagi menyediakan layanan sinkronisasi waktu.
#!/bin/sh # Modify DNS echo "nameserver 114.114.114.114" | tee /etc/resolv.conf # Modify yum repo and update 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 # Modify NTP Server echo "server ntp1.aliyun.com" | tee /etc/ntp.conf systemctl restart ntpd.serviceCatatanPada kode sebelumnya,
114.114.114.114adalah alamat server DNS,https://mirror.stream.centos.orgadalah alamat repositori yum untuk CentOS Stream, danserver ntp1.aliyun.comadalah alamat server NTP untuk Alibaba Cloud. Ganti sesuai kebutuhan.Anda juga dapat menggunakan data Cloud Config untuk mengubah repositori yum. Namun, metode ini kurang fleksibel dan tidak dapat beradaptasi dengan kasus di mana Alibaba Cloud telah mengonfigurasi beberapa repositori yum. Kami menyarankan Anda menggunakan skrip User-Data.
Kustomisasi akun administrator
Secara default, instans Linux menggunakan pengguna root sebagai administrator. Anda dapat menggunakan user data untuk menentukan pengguna lain sebagai 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_keysCatatanGanti kunci publik contoh ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCRnnUveAis**** dengan kunci publik Anda yang sebenarnya.
Jika terjadi masalah saat skrip User-Data dijalankan, Anda dapat menjalankan perintah Cloud Assistant umum ACS-ECS-UserData-Check-for-linux.sh untuk mendapatkan log error. Jika pesan error dikembalikan, skrip gagal dijalankan. Jika tidak ada pesan error yang dikembalikan, skrip dijalankan tanpa error, dan Anda harus menyelidiki potensi masalah lainnya. Untuk informasi selengkapnya tentang perintah Cloud Assistant umum, lihat Lihat dan jalankan perintah publik.
Data Cloud Config
Ikhtisar
Cloud-init menggunakan serangkaian modul fungsional untuk melakukan tugas seperti menginstal paket perangkat lunak dan mengatur jaringan. Modul yang dijalankan dan logikanya ditentukan oleh data Cloud Config, yang dapat berasal dari vendor data, user data, atau parameter kernel. Saat Anda membuat Instance ECS, Anda dapat menyesuaikan data Cloud Config untuk menentukan modul dan tugas mana yang akan dijalankan. Saat instans dijalankan, cloud-init membaca dan mengurai data Cloud Config, menjalankan modul yang sesuai, dan melakukan tugas konfigurasi yang ditentukan untuk secara otomatis mengonfigurasi dan menerapkan Instance ECS.
Frekuensi Eksekusi
Jalankan instans: Apakah tugas dalam data Cloud Config dijalankan tergantung pada pengaturan frekuensi modul yang sesuai. Untuk informasi selengkapnya tentang modul, lihat Modules.
Frekuensi once-per-instance: Hanya dijalankan saat instans pertama kali dijalankan. Misalnya, jika Anda mengonfigurasi modul seperti Apt dan Set Passwords, frekuensinya once-per-instance, dan tidak dijalankan saat instans direstart.
Frekuensi always: Dijalankan setiap kali instans dijalankan. Misalnya, jika Anda mengonfigurasi modul seperti Bootcmd dan Update Etc Hosts, frekuensinya always, dan dijalankan setiap kali instans dijalankan.
Ganti sistem operasi: Dijalankan secara otomatis.
Inisialisasi ulang disk sistem: Dijalankan secara otomatis.
PentingSkrip tidak dijalankan secara otomatis dalam kasus berikut:
Jika Anda menggunakan custom image yang dibuat dari instans sumber untuk mengganti sistem operasi, sistem menentukan bahwa instans tidak dijalankan untuk pertama kalinya dan tidak menjalankan skrip.
Jika Anda menggunakan custom image untuk membuat instans, disk sistem instans tersebut sudah berisi data. Saat Anda menginisialisasi disk sistem, sistem menentukan bahwa instans tidak dijalankan untuk pertama kalinya dan tidak menjalankan skrip.
Format
Baris pertama harus berupa
#cloud-config, tanpa spasi di awalnya.Konten harus ditulis dalam sintaks YAML.
Contoh data Cloud Config
Sesuaikan sumber perangkat lunak instance
Pada bagian User Data, masukkan konten berikut untuk mengonfigurasi sumber perangkat lunak instans kustom. Contoh ini menggunakan gambar Ubuntu untuk membuat instans. Jika Anda menggunakan gambar berbeda, ganti konfigurasi dengan konten untuk modul yang sesuai.
#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/ubuntuKonfigurasikan instalasi otomatis layanan Nginx
Pada bagian User Data, masukkan konten berikut untuk mengonfigurasi instans agar secara otomatis menginstal layanan Nginx.
#cloud-config packages: - nginx runcmd: - systemctl start nginx.serviceKonfigurasikan hostname kustom
Pada bagian User Data, masukkan konten berikut untuk menetapkan hostname kustom.
#cloud-config hostname: my-instance fqdn: my-instance.localdomainKonfigurasikan skrip kustom untuk dijalankan secara otomatis
Pada bagian User Data, masukkan konten berikut untuk mengonfigurasi skrip shell agar dijalankan secara otomatis setiap kali instans dijalankan.
#cloud-config bootcmd: - echo "Hello World. The time is now $(date -R)!" | tee /root/userdata_test.txt
File Include
Ikhtisar
File Include berisi tautan ke satu atau beberapa skrip User-Data atau file data Cloud Config. Pisahkan beberapa tautan dengan baris baru. Saat instans dijalankan, cloud-init mengurai dan membaca konten setiap tautan secara berurutan. Jika terjadi error saat membaca konten tautan, cloud-init berhenti membaca tautan yang tersisa.
CatatanAnda dapat menggunakan Alibaba Cloud Object Storage Service (OSS) untuk mengunggah skrip User-Data atau data Cloud Config, mengambil tautan, dan menetapkan periode validitas tautan. Untuk informasi selengkapnya, lihat Memulai dengan konsol OSS.
Frekuensi Eksekusi
Jalankan instans: Frekuensi eksekusi ditentukan oleh konten tautan. Misalnya, jika konten tautan adalah skrip User-Data, skrip tersebut hanya dijalankan sekali saat instans pertama kali dijalankan. Jika konten tautan adalah data Cloud Config, skrip tersebut mengikuti frekuensi eksekusi data Cloud Config.
Ganti sistem operasi: Dijalankan secara otomatis.
Inisialisasi ulang disk sistem: Dijalankan secara otomatis.
PentingSkrip tidak dijalankan secara otomatis dalam kasus berikut:
Jika Anda menggunakan custom image yang dibuat dari instans sumber untuk mengganti sistem operasi, sistem menentukan bahwa instans tidak dijalankan untuk pertama kalinya dan tidak menjalankan skrip.
Jika Anda menggunakan custom image untuk membuat instans, disk sistem instans tersebut sudah berisi data. Saat Anda menginisialisasi disk sistem, sistem menentukan bahwa instans tidak dijalankan untuk pertama kalinya dan tidak menjalankan skrip.
Format
Baris pertama harus berupa
#include, tanpa spasi di awalnya.Contoh Include File
#include https://ecs-image-test.oss-cn-hangzhou.aliyuncs.com/userdata/myscript.shFile Include contoh ini berisi tautan ke skrip. Skrip tersebut merupakan skrip User-Data, sehingga hanya dijalankan sekali saat instans pertama kali dijalankan.
CatatanJika Anda menggunakan file Include atau konten terkompresi Gzip, Anda harus menggunakan layanan penyimpanan untuk mengunggah skrip, mengambil tautan skrip, dan menetapkan periode validitas tautan. Kami menyarankan Anda menggunakan Alibaba Cloud OSS. Untuk informasi selengkapnya, lihat Memulai dengan konsol OSS.
Konten terkompresi Gzip
Ikhtisar
Jika ukuran skrip User-Data, data Cloud Config, atau file Include Anda melebihi 32 KB, Anda dapat menggunakan konten terkompresi Gzip (dalam format
.gz). Buat tautan ke konten terkompresi tersebut dan masukkan tautan tersebut ke dalam file Include. cloud-init secara otomatis mendekompresi konten Gzip tersebut. Efek menjalankan konten yang didekompresi sama dengan meneruskan dan menjalankan konten aslinya secara langsung.CatatanAnda dapat menggunakan Alibaba Cloud OSS untuk mengunggah skrip User-Data atau data Cloud Config, mengambil tautan, dan menetapkan periode validitas tautan. Untuk informasi selengkapnya, lihat Memulai dengan konsol OSS.
Frekuensi eksekusi
Jalankan instans: Ditentukan oleh tipe skrip dan tipe modul. Misalnya, jika tautan ke konten terkompresi Gzip adalah untuk skrip User-Data, skrip tersebut hanya dijalankan sekali saat instans pertama kali dijalankan.
Ganti sistem operasi: Dijalankan secara otomatis.
Inisialisasi ulang disk sistem: Dijalankan secara otomatis.
PentingSkrip tidak dijalankan secara otomatis dalam kasus berikut:
Jika Anda menggunakan custom image yang dibuat dari instans sumber untuk mengganti sistem operasi, sistem menentukan bahwa instans tidak dijalankan untuk pertama kalinya dan tidak menjalankan skrip.
Jika Anda menggunakan custom image untuk membuat instans, disk sistem instans tersebut sudah berisi data. Saat Anda menginisialisasi disk sistem, sistem menentukan bahwa instans tidak dijalankan untuk pertama kalinya dan tidak menjalankan skrip.
Format
Baris pertama harus berupa
#include, tanpa spasi di awalnya.Contoh konten terkompresi Gzip
#include https://ecs-image-test.oss-cn-hangzhou.aliyuncs.com/userdata/myscript.gzContoh ini menunjukkan file Include yang berisi tautan ke konten terkompresi Gzip. Setelah cloud-init membaca konten terkompresi Gzip tersebut, cloud-init secara otomatis mendekompresi dan menjalankannya. Konten Gzip tersebut merupakan skrip User-Data terkompresi, yang hanya dijalankan sekali saat instans pertama kali dijalankan.
Upstart Job
Untuk menggunakan Upstart Job, Anda harus menginstal layanan upstart pada instans. Sistem operasi yang mendukung penggunaan layanan upstart untuk mengelola perilaku startup meliputi CentOS 6, Ubuntu 10/12/14, dan Debian 6/7.
Ikhtisar
Upstart adalah sistem inisialisasi berbasis event. Upstart Job adalah file konfigurasi yang menentukan kapan layanan atau tugas dimulai, dihentikan, dan cara menjalankannya. File ini biasanya ditempatkan di direktori /etc/init/ dengan ekstensi nama file .conf.
Frekuensi eksekusi
Jalankan instans: Dijalankan secara otomatis setiap kali instans dijalankan.
Ganti sistem operasi: Dijalankan secara otomatis.
Inisialisasi ulang disk sistem: Dijalankan secara otomatis.
PentingSkrip tidak dijalankan secara otomatis dalam kasus berikut:
Jika Anda menggunakan custom image yang dibuat dari instans sumber untuk mengganti sistem operasi, sistem menentukan bahwa instans tidak dijalankan untuk pertama kalinya dan tidak menjalankan skrip.
Jika Anda menggunakan custom image untuk membuat instans, disk sistem instans tersebut sudah berisi data. Saat Anda menginisialisasi disk sistem, sistem menentukan bahwa instans tidak dijalankan untuk pertama kalinya dan tidak menjalankan skrip.
Format
Baris pertama harus berupa
#upstart-job, tanpa spasi di awalnya.Contoh konten Upstart Job
#upstart-job description "upstart test" start on runlevel [2345] # Executes at run levels 2, 3, 4, and 5 stop on runlevel [!2345] # Does not execute at run levels other than 2, 3, 4, and 5 exec echo "Hello World. The time is now $(date -R)!" | tee /root/output.txtUpstart Job contoh ini menghasilkan pesan dengan cap waktu saat sistem memasuki run level yang ditentukan dan mencatat pesan tersebut ke file
/root/output.txt. Tugas ini berhenti berjalan saat sistem meninggalkan run level tersebut.
File multi-part MIME
Ikhtisar
File multi-part MIME dapat mentransmisikan beberapa jenis instruksi. Misalnya, Anda dapat menggunakan file multi-part MIME untuk menyertakan
text/cloud-config(untuk konfigurasi cloud-init) dantext/x-shellscript(skrip shell) dalam user data. Cloud-init mengurai dan menjalankan instruksi-instruksi berbeda ini secara terpisah.Frekuensi eksekusi
Jalankan instans: Bergantung pada tipe setiap bagian dalam pesan MIME dan konfigurasi cloud-init. Misalnya, jika tipe konten dalam pesan MIME adalah skrip User-Data, skrip tersebut hanya dijalankan sekali saat instans pertama kali dijalankan. Jika tipe kontennya adalah data Cloud Config, skrip tersebut mengikuti frekuensi eksekusi data Cloud Config.
Ganti sistem operasi: Dijalankan secara otomatis.
Inisialisasi ulang disk sistem: Dijalankan secara otomatis.
PentingSkrip tidak dijalankan secara otomatis dalam kasus berikut:
Jika Anda menggunakan custom image yang dibuat dari instans sumber untuk mengganti sistem operasi, sistem menentukan bahwa instans tidak dijalankan untuk pertama kalinya dan tidak menjalankan skrip.
Jika Anda menggunakan custom image untuk membuat instans, disk sistem instans tersebut sudah berisi data. Saat Anda menginisialisasi disk sistem, sistem menentukan bahwa instans tidak dijalankan untuk pertama kalinya dan tidak menjalankan skrip.
Format
Baris pertama adalah
Content-Type: multipart/mixed; boundary="****". Boundary dapat disesuaikan, dan tidak boleh ada spasi di awal baris.Baris kedua menentukan versi
MIME-Version: 1.0. Bidang ini biasanya diperlukan dalam setiap pesan MIME.
Contoh file multi-part 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 content: | Created by cloud-init 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 "Created by bash shell script" >> /test-userscript/userscript.txt --//--File multi-part MIME contoh ini berisi instruksi cloud-init dan skrip Bash shell:
Instruksi cloud-init membuat file (
/test-cloudinit/cloud-init.txt) dan menulisCreated by cloud-initke dalamnya.Skrip Bash shell membuat file (
/test-userscript/userscript.txt) dan menulisCreated by bash shell scriptke dalamnya.
Instans Windows
Instans Windows menjalankan skrip user data menggunakan plugin Plugin_Main_CloudinitUserData dari tool Vminit. Plugin ini hanya mendukung menjalankan skrip saat instans pertama kali dijalankan. Plugin ini mendukung skrip Bat dan PowerShell.
Skrip Bat
Frekuensi eksekusi
Jalankan instans: Hanya dijalankan sekali saat instans pertama kali dijalankan. Skrip tidak dijalankan lagi saat instans direstart.
Ganti sistem operasi: Dijalankan secara otomatis.
Inisialisasi ulang disk sistem: Dijalankan secara otomatis.
PentingSkrip tidak dijalankan secara otomatis dalam kasus berikut:
Jika Anda menggunakan custom image yang dibuat dari instans sumber untuk mengganti sistem operasi, sistem menentukan bahwa instans tidak dijalankan untuk pertama kalinya dan tidak menjalankan skrip.
Jika Anda menggunakan custom image untuk membuat instans, disk sistem instans tersebut sudah berisi data. Saat Anda menginisialisasi disk sistem, sistem menentukan bahwa instans tidak dijalankan untuk pertama kalinya dan tidak menjalankan skrip.
Format
Baris pertama harus berupa
[bat], tanpa spasi di awalnya.Gunakan hanya karakter half-width. Jangan memasukkan karakter tambahan.
Jangan menulis data ke direktori
C:\Users. Jika tidak, user data gagal dijalankan.CatatanDi Windows,
C:\Usersdan subdirektorinya hanya dapat diakses setelah login. User data dijalankan selama inisialisasi sistem sebelum login, sehingga penulisan keC:\Usersgagal.
Contoh skrip Bat
Jalankan skrip kustom
[bat] echo "bat test" > C:\userdata_test.txtSkrip Bat contoh ini menulis
"bat test"ke file userdata_test.txt saat instans pertama kali dijalankan.
Skrip PowerShell
Frekuensi eksekusi
Jalankan instans: Hanya dijalankan sekali saat instans pertama kali dijalankan. Skrip tidak dijalankan lagi saat instans direstart.
Ganti sistem operasi: Dijalankan secara otomatis.
Inisialisasi ulang disk sistem: Dijalankan secara otomatis.
PentingSkrip tidak dijalankan secara otomatis dalam kasus berikut:
Jika Anda menggunakan custom image yang dibuat dari instans sumber untuk mengganti sistem operasi, sistem menentukan bahwa instans tidak dijalankan untuk pertama kalinya dan tidak menjalankan skrip.
Jika Anda menggunakan custom image untuk membuat instans, disk sistem instans tersebut sudah berisi data. Saat Anda menginisialisasi disk sistem, sistem menentukan bahwa instans tidak dijalankan untuk pertama kalinya dan tidak menjalankan skrip.
Format
Baris pertama harus berupa
[powershell], tanpa spasi di awalnya.Gunakan hanya karakter half-width. Jangan memasukkan karakter tambahan.
Jangan menulis data ke direktori
C:\Users. Jika tidak, user data gagal dijalankan.CatatanDi Windows,
C:\Usersdan subdirektorinya hanya dapat diakses setelah login. User data dijalankan selama inisialisasi sistem sebelum login, sehingga penulisan keC:\Usersgagal.
Contoh skrip PowerShell
Jalankan skrip kustom
[powershell] write-output "powershell test" | Out-File C:\userdata_test.txtSkrip PowerShell contoh ini menulis
powershell testke file userdata_test.txt saat instans pertama kali dijalankan.
2. Gunakan user data saat membuat instans
Buat instans di konsol
Pada halaman pembelian instans, perluas bagian Advanced Options. Di bagian User Data, masukkan user data.
PentingJika user data Anda sudah dienkripsi Base64, pilih The user data is Base64-encoded. Data asli yang belum dienkripsi tidak boleh melebihi 32 KB. Jika Anda memberikan teks biasa, jangan pilih opsi ini. Sistem akan secara otomatis mengenkripsi konten untuk Anda.
Buat instans dengan memanggil API
Jika Anda membuat instans dengan memanggil API, tentukan parameter
UserDatadalam operasi RunInstances atau CreateInstance.
3. Verifikasi bahwa user data dijalankan sesuai harapan
Anda harus memverifikasi bahwa skrip kustom dijalankan sesuai harapan berdasarkan kontennya. Contoh berikut menunjukkan cara memverifikasi eksekusi skrip User-Data yang diteruskan ke instans Linux.
#!/bin/sh
echo "Hello World. The time is now $(date -R)!" | tee /root/userdata_test.txtDalam contoh ini, skrip User-Data menulis waktu sistem ke file userdata_test.txt saat instans pertama kali dijalankan. Untuk memverifikasi eksekusi skrip, jalankan perintah cat userdata_test.txt untuk memeriksa hasilnya. Waktu sistem ditulis ke file userdata_test.txt.

Jika terjadi masalah saat skrip User-Data dijalankan, Anda dapat menjalankan perintah Cloud Assistant umum ACS-ECS-UserData-Check-for-linux.sh untuk mendapatkan log error. Jika pesan error dikembalikan, skrip gagal dijalankan. Jika tidak ada pesan error yang dikembalikan, skrip dijalankan tanpa error, dan Anda harus menyelidiki potensi masalah lainnya. Untuk informasi selengkapnya tentang perintah Cloud Assistant umum, lihat Lihat dan jalankan perintah publik.
Operasi lainnya
Lihat user data instans yang sudah ada
Setelah user data diteruskan ke instans, Anda dapat melihat user data tersebut menggunakan layanan metadata atau di konsol.
Ambil user data dari layanan metadata (mode security-hardened)
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-dataInstans 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
Pada contoh sebelumnya, periode validitas token adalah 180 detik. Anda dapat menyesuaikan periode validitas berdasarkan skenario Anda.
Contoh ini menggunakan mode security-hardened layanan metadata untuk mengambil metadata. Untuk informasi selengkapnya tentang cara mengambil informasi dari layanan metadata, lihat Metadata instans.
Untuk informasi selengkapnya tentang metadata, lihat Metadata instans.
Ambil dari konsol
Pastikan instans berada dalam status Stopped.
PentingJika instans berjenis pay-as-you-go dan berada dalam VPC, kami menyarankan Anda mengatur Stop Mode ke Standard Mode saat menghentikan instans. Jika Anda memilih Economical Mode, sumber daya komputasi (vCPU dan memori) dilepas. Akibatnya, instans mungkin gagal dijalankan ulang karena stok tidak mencukupi. Untuk informasi selengkapnya, lihat Mode ekonomis.
Klik ID instans target untuk membuka halaman detail instans. Klik All Actions untuk memperluas panel operasi. Cari dan klik . Kemudian, di bagian User Data, lihat user data yang telah dikonfigurasi.
Ambil dengan memanggil API
Anda dapat memanggil operasi DescribeUserData untuk menanyakan user data Instance ECS. Untuk informasi selengkapnya, lihat DescribeUserData.
Ubah user data instans yang sudah ada
Untuk mengubah user data instans yang sudah ada, lakukan operasi berikut di konsol.
Pastikan instans berada dalam status Stopped.
PentingJika instans berjenis pay-as-you-go dan berada dalam VPC, kami menyarankan Anda mengatur Stop Mode ke Standard Mode saat menghentikan instans. Jika Anda memilih Economical Mode, sumber daya komputasi (vCPU dan memori) dilepas. Akibatnya, instans mungkin gagal dijalankan ulang karena stok tidak mencukupi. Untuk informasi selengkapnya, lihat Mode ekonomis.
Klik ID instans target untuk membuka halaman detail instans. Klik All Actions untuk memperluas panel operasi. Cari dan klik . Kemudian, di bagian User Data, masukkan user data.
Setelah Anda mengubah user data instans yang sudah ada, apakah skrip user data dijalankan setelah instans dijalankan bergantung pada format user data dan frekuensi eksekusinya. Pahami kebutuhan Anda sebelum mengubah user data. Untuk informasi selengkapnya, lihat Format data pengguna dan frekuensi eksekusi.
Referensi
Anda juga dapat menggunakan fitur user data Auto Scaling untuk memungkinkan beberapa Instance ECS menjalankan skrip atau perintah yang dikonfigurasi secara otomatis saat startup. Hal ini memastikan konsistensi konfigurasi Instance ECS dan menyederhanakan operasi dan pemeliharaan (O&M). Untuk informasi selengkapnya, lihat Gunakan instance user data untuk mengonfigurasi Instance ECS secara otomatis.
Jika Anda ingin layanan atau skrip segera pulih saat terganggu oleh exception program, restart server, atau kegagalan daya, gunakan plugin Cloud Assistant
ecs-tool-servicekeepalive. Untuk informasi selengkapnya, lihat Gunakan plugin Cloud Assistant untuk menjaga layanan tetap aktif.Untuk informasi selengkapnya tentang cara mengelola inisialisasi instans, lihat Pengantar tool inisialisasi.