پرش به مطلب اصلی

ظرائف استفاده از cloud-init

· خواندن 2 دقیقه
علی
مهندس نرم‌افزار

معمولا برای راه‌اندازی سریع یک ماشین ‌مجازی از دیسک‌های آماده شده برای زیرساخت ابری یا به اصطلاح cloud-ready images استفاده می‌کنم. مثلا اگر قرار باشه یه ماشین‌مجازی ubuntu نسخه ۲۲.۰۴ را برای کاری استفاده کنم، از اینجا نسخه سیستم عامل را انتخاب می‌کنم و بعد فایل با پسوند disk-kvm.img را دانلود می‌کنم.

برای راه‌اندازی ماشین مجازی از طریق cloud-init باید از طریق یک منبعی برخی از پارامترها برای تنظیمات اولیه ماشین مجازی مشخص شود، مثل پسورد یا شناسه. نکته مهم اینجاست که مستندات آخرین نسخه cloud-init معمولا روش ساده و سریع برای تست این موضوع مشخص کرده، مثلا در این قسمت از روش IMDS استفاده کردند.

اما نکته اینجاست که نسخه cloud-init نصب شده به صورت پیش‌فرض روی فایل دانلود شده لزوما آخرین نسخه نیست و احتمالا از روش ذکر شده در آخرین نسخه مستندات هم پشتیبانی نمی‌کنه. برای همین باید اول نسخه cloud-init نصب شده را پیدا کنیم و بعد از روش متناسب با همون نسخه استفاده کنیم، مثلا از روش seed.iso استفاده کنیم که در اینجا بهش اشاره شده.

خلاصه روش به این صورت هست که شما یک فایل با اسم user-data ایجاد می‌کنید با محتوای زیر:

#cloud-config
password: passw0rd
chpasswd: { expire: False }

سپس با دستور زیر فایل seed.iso را ایجاد می‌کنید:

sudo apt update
sudo apt install -y cloud-image-utils
cloud-localds seed.img user-data

و در نهایت ماشین مجازی را به این صورت راه می‌اندازیم:

qemu-system-amd64 -enable-kvm -m 1G -smp 2 \
-vga std -nic user \
-drive file=ubuntu.img,if=virtio,format=qcow2 \
-drive file=seed.img,if=virtio,format=raw