برنامه نویسی

قالب Proxmox با Cloud Image و Cloud Init

استفاده از تصاویر Cloud و Cloud init با Proxmox سریعترین و کارآمدترین راه برای استقرار سرورها در حال حاضر است. تصاویر Cloud دارای گواهینامه ابر کوچکی هستند که Cloud init از قبل نصب شده و آماده پذیرش پیکربندی هستند.

Cloud images و Cloud init نیز با Proxmox کار می کنند و اگر این را با Terraform ترکیب کنید، یک مدل استقرار کاملاً خودکار خواهید داشت.

راهنما

دانلود تصویر

ابتدا باید یک تصویر ابری اوبونتو را انتخاب کنید

به جای دانلود، URL را کپی کنید.

سپس SSH را به سرور Proxmox خود وارد کنید و wget را با آدرس اینترنتی که به تازگی کپی کرده اید، مشابه زیر اجرا کنید:

wget https://cloud-images.ubuntu.com/jammy/current/jammy-server-cloudimg-amd64.img
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

با این کار تصویر روی سرور proxmox دانلود می شود و آماده استفاده است.

بسته ها را نصب کنید

را qemu-guest-agent روی تصاویر ابری نصب نشده است، بنابراین ما به راهی برای تزریق آن به فایل تصویری نیاز داریم. این را می توان با یک ابزار عالی به نام انجام داد virt-customize این با بسته نصب شده است libguestfs-tools. libguestfs مجموعه ای از ابزارها برای دسترسی و اصلاح تصاویر دیسک ماشین مجازی (VM) است.

نصب:

sudo apt update -y && sudo apt install libguestfs-tools -y
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

نصب qemu-guest-agent در تصویر دانلود شده:

sudo virt-customize -a jammy-server-cloudimg-amd64.img --install qemu-guest-agent --run-command 'systemctl enable qemu-guest-agent.service'
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

در این مرحله می توانید بسته های دیگر را نیز نصب کنید.

افزودن کاربران به تصویر (اختیاری)

همچنین می توان کاربر و کلیدهای SSH را با آن اضافه کرد virt-customize. این برای اتوماسیونی مانند terraform مفید است.

sudo virt-customize -a jammy-server-cloudimg-amd64.img --run-command 'useradd simone'
sudo virt-customize -a jammy-server-cloudimg-amd64.img --run-command 'mkdir -p /home/simone/.ssh'
sudo virt-customize -a jammy-server-cloudimg-amd64.img --ssh-inject simone:file:id_ed25519.pub
sudo virt-customize -a jammy-server-cloudimg-amd64.img --run-command 'chown -R simone:simone /home/simone'
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

  1. کاربر را به تصویر اضافه می کند
  2. دایرکتوری کلید SSH را می سازد
  3. کلید SSH را تزریق می کند. simone کاربری است که کلید روی آن اعمال می شود، file:id_ed25519.pub فایل روی میزبان محلی است که کلید SSH در آن قرار دارد
  4. اطمینان حاصل می کند که کاربر simone صاحب پوشه خانه است

یک ماشین مجازی از تصویر بسازید

اکنون باید یک ماشین مجازی جدید ایجاد کنیم:

qm create 9000 --memory 2048 --core 2 --name jammy-template --net0 virtio,bridge=vmbr0
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

دیسک دانلود شده اوبونتو را به فضای ذخیره سازی صحیح وارد کنید:

qm importdisk 9000 jammy-server-cloudimg-amd64.img local-lvm
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

دیسک جدید را به عنوان درایو SCSI روی کنترلر SCSI وصل کنید:

qm set 9000 --scsihw virtio-scsi-pci --scsi0 local-lvm:vm-9000-disk-0
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

درایو init ابری را اضافه کنید:

qm set 9000 --ide2 local-lvm:cloudinit
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

درایو ممکن init را قابل بوت کنید و بایوس را محدود کنید تا فقط از دیسک بوت شود:

qm set 9000 --boot c --bootdisk scsi0
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

اضافه کردن کنسول سریال:

qm set 9000 --serial0 socket --vga serial0
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

فعال کردن نماینده مهمان:

qm set 9000 --agent enabled=1
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

VM را روشن نکنید
{: .prompt-warning }

VM را به قالب تبدیل کنید

اکنون، یک الگو از تصویری که ایجاد کرده اید ایجاد کنید:

qm template 9000
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

الگو را در VM کلون کنید

اکنون یک الگوی کاملاً کارآمد دارید که می‌توانید هر چقدر که بخواهید کلون کنید. اما تنظیم برخی از تنظیمات منطقی است.

ابتدا ماشین مجازی را شبیه سازی کنید (در اینجا ما در حال شبیه سازی الگو با شناسه 9000 به ماشین مجازی جدید با شناسه 999 هستیم):

sudo qm clone 9000 999 --name test-cloud-init
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

سپس، کلیدهای SSH (اگر قبلاً کلید خود را اضافه نکرده‌اید) و آدرس IP را تنظیم کنید:

sudo qm set 999 --sshkey ~/.ssh/id_rsa.pub
sudo qm set 999 --ipconfig0 ip=10.10.1.20/24,gw=10.10.1.1
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

اکنون آماده راه اندازی است!

sudo qm start 999
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

باید بتوانید بدون هیچ مشکلی وارد شوید (پس از اعتماد به اثر انگشت SSH). توجه داشته باشید که نام کاربری است ubuntu، برای کلید اینجا تنظیم شده است. اگر قبلاً کاربر خود را اضافه کرده اید، می توانید از آن استفاده کنید

ssh ubuntu@10.10.1.1
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

پس از رضایت از الگو، می توانید VM را متوقف کرده و منابع را پاکسازی کنید:

sudo qm stop 999 && sudo qm destroy 999
rm jammy-server-cloudimg-amd64.img
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

منابع

https://registry.terraform.io/modules/sdhibit/cloud-init-vm/proxmox/latest/examples/ubuntu_single_vm

بسته شدن

امیدواریم این اطلاعات برای شما مفید بوده باشد، اگر سوالی در مورد این مقاله دارید و نظرات خود را با Discord من در میان بگذارید.

نوشته های مشابه

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

همچنین ببینید
بستن
دکمه بازگشت به بالا