Sebelum mengimpor gambar kustom ke Alibaba Cloud atau merilisnya di Alibaba Cloud Marketplace, pastikan gambar tersebut memenuhi persyaratan dan lulus pengujian kompatibilitas dengan tipe instans Elastic Compute Service (ECS). Hal ini membantu meningkatkan ketersediaan serta efisiensi impor gambar kustom dan memfasilitasi pembuatan instans ECS yang sesuai dengan berbagai kebutuhan bisnis. Topik ini menjelaskan persyaratan untuk gambar Alibaba Cloud Linux.
Partisi disk
Saat mempartisi disk selama pembuatan gambar, pastikan persyaratan berikut terpenuhi:
Penyesuaian ukuran disk
Disk dibagi menjadi partisi logis berdasarkan partisi fisik. Partisi logis terakhir pada setiap disk digunakan sebagai partisi root untuk mencegah kegagalan partisi disk sistem.
Untuk sistem operasi yang mendukung penyesuaian ukuran disk secara online, disarankan menginstal paket
cloud-utils-growpartdan menggunakan utilitasgrowpartuntuk memperluas partisi agar menempati ruang disk yang tersedia. Untuk informasi lebih lanjut, lihat Perluas partisi dan sistem file (Linux).
Partisi swap
Jangan gunakan partisi swap saat membuat gambar.
Pemasangan disk
Konfigurasikan UUID di file fstab dan grub. Untuk informasi lebih lanjut, lihat Konfigurasikan UUID di file fstab untuk memasang disk data secara otomatis dan Ubah pengenal partisi disk di file konfigurasi GRUB menjadi UUID.
PentingJika file fstab dikonfigurasi secara salah untuk instans ECS, instans tersebut mungkin gagal berjalan seperti yang diharapkan setelah di-restart.
Manajemen LVM
Anda tidak dapat menggunakan LVM untuk mengelola partisi disk saat membuat gambar.
Ukuran disk
Ukuran disk sistem harus minimal 20 GiB.
Mode boot gambar
Untuk menyesuaikan dengan tipe instans yang mendukung mode boot tertentu, disarankan mengonfigurasi mode boot di gambar lokal Anda. Saat mengimpor gambar ke Alibaba Cloud, tentukan mode boot yang didukung oleh gambar.
Untuk informasi tentang cara mengonfigurasi pengaturan mode boot saat membuat gambar lokal, lihat Buat mesin virtual dan instal sistem operasi.
Untuk informasi tentang cara menentukan mode boot saat mengimpor gambar ke Alibaba Cloud, lihat Impor gambar kustom.
Untuk menanyakan mode boot yang didukung oleh tipe instans, panggil operasi DescribeInstanceTypes dan periksa nilai
SupportedBootModesdalam tanggapan.
CatatanJika gambar lokal Anda mendukung mode BIOS dan UEFI, Anda dapat menentukan mode UEFI-Preferred saat mengimpor gambar ke Alibaba Cloud. Gambar tersebut dapat menyesuaikan dengan mode boot dari semua tipe instans, mengurangi biaya pembuatan gambar.
Perangkat lunak dan alat yang diperlukan
Instal driver virtio
Sebelum merilis gambar, pastikan driver virtio telah diinstal dan ditambahkan ke sistem file sementara. Driver virtio memastikan gambar dapat digunakan sesuai harapan pada instans ECS. Untuk informasi lebih lanjut, lihat Instal driver virtio.
Instal driver NVMe
Keluarga instans ECS generasi baru, seperti ecs.g8i dan ecs.g7se, memungkinkan disk dipasang menggunakan protokol Non-Volatile Memory Express (NVMe). Jika ingin menggunakan gambar lokal Anda untuk membuat instans ECS dari keluarga instans tersebut dan memastikan instans berjalan sesuai harapan, instal driver NVMe pada gambar. Saat mengimpor gambar ke Alibaba Cloud, atur parameter NVMe Drive ke Supported. Untuk informasi lebih lanjut, lihat Bagaimana cara menginstal driver NVMe untuk gambar kustom? dan Modifikasi atribut dan tag gambar.
Instal cloud-init
Saat membuat gambar, instal cloud-init untuk memastikan instans ECS yang menjalankan gambar dapat diinisialisasi. Untuk informasi lebih lanjut, lihat Instal cloud-init. Disarankan menginstal cloud-init versi 23.2.2. Versi ini memungkinkan Anda mengakses metadata instans dalam mode penguatan keamanan, memastikan keamanan metadata instans.
CatatanJika Anda ingin menggunakan cloud-init untuk mengubah kata sandi, pastikan kernel sistem operasi gambar Anda mendukung fitur
CONFIG_FW_CFG_SYSFS. Secara default, kernel komunitas Linux 4.6 dan yang lebih baru serta kernel CentOS 3.10.0-826.el7 dan yang lebih baru mendukung fitur CONFIG_FW_CFG_SYSFS. Untuk memeriksa apakah fitur ini didukung, jalankan perintahgrep -nr CONFIG_FW_CFG_SYSFS /boot/config-$(uname -r)pada server sumber gambar. Jika output perintah berisiCONFIG_FW_CFG_SYSFS=y, kernel gambar mendukung fiturCONFIG_FW_CFG_SYSFS.Instal Cloud Assistant
Saat membuat gambar, instal Cloud Assistant. Cloud Assistant adalah alat O&M otomatis asli yang dikembangkan untuk ECS. Alat ini memungkinkan Anda menjalankan perintah secara batch, seperti shell, PowerShell, dan perintah batch, untuk mengeksekusi berbagai tugas pada instans ECS tanpa kata sandi tanpa perlu masuk ke instans atau menggunakan jump server. Anda dapat menggunakan Cloud Assistant untuk melakukan tugas O&M otomatis, polling proses, menginstal atau menghapus perangkat lunak, memulai atau menghentikan layanan, serta menginstal patch atau pembaruan keamanan. Untuk informasi lebih lanjut, lihat Instal Cloud Assistant Agent.
Gunakan Security Center untuk melindungi server sumber gambar
Saat membuat gambar, disarankan menggunakan Alibaba Cloud Security Center untuk melindungi server Anda. Security Center menyediakan kemampuan keamanan seperti notifikasi peringatan, deteksi dan penghapusan virus, deteksi dan penghapusan webshell, perlindungan klien, serta pemindaian gambar untuk melindungi aset cloud dan server lokal Anda.
Konfigurasi sistem
Konfigurasikan jam
Jam perangkat keras gambar bisa dalam Waktu Universal Terkoordinasi (UTC) atau zona waktu lokal. Gunakan waktu UTC saat membuat gambar. Contoh perintah:
cat > /etc/adjtime << EOF 0.0 0 0.0 0 UTC EOF timedatectl set-local-rtc 0Untuk informasi lebih lanjut, lihat Waktu Linux dan zona waktu.
Konfigurasikan layanan sshd
Saat membuat gambar, konfigurasikan layanan sshd.
sshd adalah layanan Linux yang digunakan untuk masuk secara remote dan mengelola sistem operasi Linux. sshd menggunakan SSH untuk membangun saluran komunikasi terenkripsi. Sebagai contoh, ubah konten dalam file
/etc/ssh/sshd_configsebagai berikut:UseDNS no AddressFamily inet SyslogFacility AUTHPRIV PermitRootLogin yes PasswordAuthentication yesKonfigurasikan layanan chrony atau NTP
Saat membuat gambar, disarankan mengonfigurasi layanan chrony atau Network Time Protocol (NTP).
chrony dan NTP adalah alat yang digunakan untuk menyinkronkan jam komputer dengan sumber waktu untuk memastikan akurasi waktu dan mencegah masalah yang disebabkan oleh perbedaan waktu.
Contoh perintah yang digunakan untuk mengonfigurasi layanan chrony
chrony_file=/etc/chrony.conf cat >$chrony_file <<EOF # Gunakan server NTP Alibaba # NTP Publik # Alicloud NTP server ntp.cloud.aliyuncs.com minpoll 4 maxpoll 10 iburst server ntp.aliyun.com minpoll 4 maxpoll 10 iburst server ntp1.aliyun.com minpoll 4 maxpoll 10 iburst server ntp1.cloud.aliyuncs.com minpoll 4 maxpoll 10 iburst server ntp10.cloud.aliyuncs.com minpoll 4 maxpoll 10 iburst server ntp11.cloud.aliyuncs.com minpoll 4 maxpoll 10 iburst server ntp12.cloud.aliyuncs.com minpoll 4 maxpoll 10 iburst server ntp2.aliyun.com minpoll 4 maxpoll 10 iburst server ntp2.cloud.aliyuncs.com minpoll 4 maxpoll 10 iburst server ntp3.aliyun.com minpoll 4 maxpoll 10 iburst server ntp3.cloud.aliyuncs.com minpoll 4 maxpoll 10 iburst server ntp4.aliyun.com minpoll 4 maxpoll 10 iburst server ntp4.cloud.aliyuncs.com minpoll 4 maxpoll 10 iburst server ntp5.aliyun.com minpoll 4 maxpoll 10 iburst server ntp5.cloud.aliyuncs.com minpoll 4 maxpoll 10 iburst server ntp6.aliyun.com minpoll 4 maxpoll 10 iburst server ntp6.cloud.aliyuncs.com minpoll 4 maxpoll 10 iburst server ntp7.cloud.aliyuncs.com minpoll 4 maxpoll 10 iburst server ntp8.cloud.aliyuncs.com minpoll 4 maxpoll 10 iburst server ntp9.cloud.aliyuncs.com minpoll 4 maxpoll 10 iburst # Abaikan stratum dalam pemilihan sumber. stratumweight 0.05 # Catat laju waktu sistem bertambah/berkurang. driftfile /var/lib/chrony/drift # Aktifkan sinkronisasi RTC kernel. rtcsync # Dalam tiga pembaruan pertama, langkahkan jam sistem alih-alih slew # jika penyesuaian lebih besar dari 10 detik. makestep 10 3 # Izinkan akses klien NTP dari jaringan lokal. #allow 192.168/16 # Dengarkan perintah hanya pada localhost. bindcmdaddress 127.0.0.1 bindcmdaddress ::1 # Nonaktifkan pencatatan akses klien. noclientlog # Kirim pesan ke syslog jika penyesuaian jam lebih besar dari 0,5 detik. logchange 0.5 logdir /var/log/chrony #log measurements statistics tracking EOFContoh perintah yang digunakan untuk mengonfigurasi layanan NTP
ntp_conf=/etc/ntp.conf cat > $ntp_conf << EOF driftfile /var/lib/ntp/drift pidfile /var/run/ntpd.pid logfile /var/log/ntp.log # Dukungan Kontrol Akses restrict default kod nomodify notrap nopeer noquery restrict -6 default kod nomodify notrap nopeer noquery restrict 127.0.0.1 restrict 192.168.0.0 mask 255.255.0.0 nomodify notrap nopeer noquery restrict 172.16.0.0 mask 255.240.0.0 nomodify notrap nopeer noquery restrict 100.64.0.0 mask 255.192.0.0 nomodify notrap nopeer noquery restrict 10.0.0.0 mask 255.0.0.0 nomodify notrap nopeer noquery # Jam lokal server 127.127.1.0 fudge 127.127.1.0 stratum 10 restrict ntp.aliyun.com nomodify notrap nopeer noquery restrict ntp.cloud.aliyuncs.com nomodify notrap nopeer noquery restrict ntp1.aliyun.com nomodify notrap nopeer noquery restrict ntp1.cloud.aliyuncs.com nomodify notrap nopeer noquery restrict ntp10.cloud.aliyuncs.com nomodify notrap nopeer noquery restrict ntp11.cloud.aliyuncs.com nomodify notrap nopeer noquery restrict ntp12.cloud.aliyuncs.com nomodify notrap nopeer noquery restrict ntp2.aliyun.com nomodify notrap nopeer noquery restrict ntp2.cloud.aliyuncs.com nomodify notrap nopeer noquery restrict ntp3.aliyun.com nomodify notrap nopeer noquery restrict ntp3.cloud.aliyuncs.com nomodify notrap nopeer noquery restrict ntp4.aliyun.com nomodify notrap nopeer noquery restrict ntp4.cloud.aliyuncs.com nomodify notrap nopeer noquery restrict ntp5.aliyun.com nomodify notrap nopeer noquery restrict ntp5.cloud.aliyuncs.com nomodify notrap nopeer noquery restrict ntp6.aliyun.com nomodify notrap nopeer noquery restrict ntp6.cloud.aliyuncs.com nomodify notrap nopeer noquery restrict ntp7.cloud.aliyuncs.com nomodify notrap nopeer noquery restrict ntp8.cloud.aliyuncs.com nomodify notrap nopeer noquery restrict ntp9.cloud.aliyuncs.com nomodify notrap nopeer noquery server ntp.aliyun.com iburst minpoll 4 maxpoll 10 server ntp.cloud.aliyuncs.com iburst minpoll 4 maxpoll 10 server ntp1.aliyun.com iburst minpoll 4 maxpoll 10 server ntp1.cloud.aliyuncs.com iburst minpoll 4 maxpoll 10 server ntp10.cloud.aliyuncs.com iburst minpoll 4 maxpoll 10 server ntp11.cloud.aliyuncs.com iburst minpoll 4 maxpoll 10 server ntp12.cloud.aliyuncs.com iburst minpoll 4 maxpoll 10 server ntp2.aliyun.com iburst minpoll 4 maxpoll 10 server ntp2.cloud.aliyuncs.com iburst minpoll 4 maxpoll 10 server ntp3.aliyun.com iburst minpoll 4 maxpoll 10 server ntp3.cloud.aliyuncs.com iburst minpoll 4 maxpoll 10 server ntp4.aliyun.com iburst minpoll 4 maxpoll 10 server ntp4.cloud.aliyuncs.com iburst minpoll 4 maxpoll 10 server ntp5.aliyun.com iburst minpoll 4 maxpoll 10 server ntp5.cloud.aliyuncs.com iburst minpoll 4 maxpoll 10 server ntp6.aliyun.com iburst minpoll 4 maxpoll 10 server ntp6.cloud.aliyuncs.com iburst minpoll 4 maxpoll 10 server ntp7.cloud.aliyuncs.com iburst minpoll 4 maxpoll 10 server ntp8.cloud.aliyuncs.com iburst minpoll 4 maxpoll 10 server ntp9.cloud.aliyuncs.com iburst minpoll 4 maxpoll 10 EOFKonfigurasikan layanan MOTD
Saat membuat gambar, disarankan mengonfigurasi layanan Message of the Day (MOTD).
Layanan MOTD adalah fitur Linux yang digunakan untuk menampilkan pesan atau pengumuman saat masuk ke sistem operasi Linux. Contoh perintah:
echo -e "\nSelamat datang di Alibaba Cloud Elastic Compute Service ! \n" > /etc/motdNonaktifkan layanan Firewalld
Saat membuat gambar, disarankan menonaktifkan layanan Firewalld. Firewalld adalah layanan manajemen firewall untuk sistem operasi Linux. Grup keamanan, bukan Firewalld, memberikan perlindungan di cloud. Contoh perintah:
systemctl stop firewalld systemctl disable firewalldKonfigurasikan repositori pip
Jika repositori pip dikonfigurasi, kami sarankan Anda menggunakan alamat repositori pip Alibaba Cloud untuk mendapatkan paket perangkat lunak terbaru dari Alibaba Cloud. Contoh konten dalam file
~/.pip/pip.conf:[global] index-url=http://mirrors.cloud.aliyuncs.com/pypi/simple/ [install] trusted-host=mirrors.cloud.aliyuncs.comKonfigurasikan pengaturan jaringan
Jika NetworkManager atau layanan jaringan digunakan, konfigurasikan file
/etc/sysconfig/network-scripts/ifcfg-eth0.DEVICE=eth0 BOOTPROTO=dhcp ONBOOT=yesUntuk informasi tentang konfigurasi layanan jaringan lainnya, lihat Konfigurasikan ENI sekunder.
Konfigurasi parameter kernel
Konfigurasikan parameter kernelopt
Saat membuat gambar, konfigurasikan parameter kernelopt GRand Unified Bootloader (GRUB) untuk memastikan sistem operasi dapat mulai sesuai harapan. Dalam contoh berikut, sistem operasi Debian digunakan.
Dalam file
/etc/default/grub, tambahkan data berikut ke barisGRUB_CMDLINE_LINUX=.Arsitektur x86_64
net.ifnames=0 console=tty0 console=ttyS0,115200n8Arsitektur Arm64
net.ifnames=0 console=tty0 console=ttyAMA0,115200n8
Jalankan perintah
sudo update-grub2agar konfigurasi GRUB berlaku.CatatanPath file konfigurasi GRUB dan perintah yang digunakan untuk membuat konfigurasi GRUB berlaku bervariasi berdasarkan sistem operasi. Untuk informasi lebih lanjut, lihat Bagaimana cara menginstal driver NVMe untuk gambar kustom?
Konfigurasikan parameter sysctl
Saat membuat gambar, disarankan mengonfigurasi parameter sysctl untuk menyesuaikan dan mengoptimalkan parameter runtime kernel Linux.
Lakukan modifikasi berikut dalam file
/etc/sysctl.conf:vm.swappiness = 0 kernel.sysrq = 1 net.ipv4.neigh.default.gc_stale_time = 120 net.ipv4.conf.all.rp_filter = 0 net.ipv4.conf.default.rp_filter = 0 net.ipv4.conf.default.arp_announce = 2 net.ipv4.conf.lo.arp_announce = 2 net.ipv4.conf.all.arp_announce = 2 net.ipv4.tcp_max_tw_buckets = 5000 net.ipv4.tcp_syncookies = 1 net.ipv4.tcp_max_syn_backlog = 1024 net.ipv4.tcp_synack_retries = 2 net.ipv4.tcp_slow_start_after_idle = 0Jalankan perintah
sudo sysctl -pagar modifikasi parameter kernel berlaku.
Rekomendasi keamanan sistem
Untuk meningkatkan keamanan sistem, perhatikan item berikut sebelum mengimpor gambar kustom ke Alibaba Cloud:
Kunci akun root. Ini memastikan bahwa bahkan jika kata sandi root diatur, pengguna lain tidak dapat masuk ke sistem menggunakan akun dan kata sandi root.
Untuk menonaktifkan logon berbasis kata sandi, ubah parameter PasswordAuthentication.
CatatanJika Anda mengatur kata sandi root untuk inisialisasi instans, Anda mungkin mengatur parameter
PasswordAuthenticationke ya, yang menunjukkan bahwa masuk berbasis kata sandi diaktifkan.
Contoh kode:
dst=/etc/ssh/sshd_config
sed -i 's/^SyslogFacility.*//' $dst
sed -i 's/^PermitRootLogin.*//' $dst
sed -i 's/^PasswordAuthentication.*//' $dst
echo UseDNS no >> $dst
echo SyslogFacility AUTHPRIV >> $dst
echo PasswordAuthentication no >> $dst
passwd -l root
sed -i -e 's/root:[^:]*:/root:*:/g' /etc/shadowHapus informasi gambar
Sebelum vendor perangkat lunak independen (ISV) merilis gambar, ISV dapat menghapus catatan historis dan log berdasarkan kebutuhan bisnis mereka.