همهٔ موضوعات ←نوشتههای با برچسب LPIC-305
۶۰ نوشته، از تازهترین به قدیمیترین.
۰۱
لینوکس ۳۰۵؛ شب ۹: شبکه و storage دامنهٔ Xenguest با NIC مجازی هنوز مسیر شبکه ندارد. امشب bridge خصوصی Dom0 و disk را بررسی میکنیم، بدون جدا کردن کارت مدیریتی از SSH.←۰۲
لینوکس ۳۰۵؛ شب ۸: ساخت DomU و فایل xl.cfgدامنهٔ Xen با نام، RAM، disk و interface تعریف میشود. امشب HVM guest را از ISO معتبر نصب میکنیم و تفاوت آن را با PV/PVH میبینیم.←۰۳
لینوکس ۳۰۵؛ شب ۷: Xen و بوت Dom0Xen زیر kernel مدیریتی بوت میشود؛ نصب package بدون بوت hypervisor، Dom0 نمیسازد. امشب این تفاوت را در ماشین مخصوص Xen بررسی میکنیم.←۰۴
لینوکس ۳۰۵؛ شب ۶۰: پروژهٔ نهایی؛ ساخت، شکست و بازیابی با شواهدپایان دوره زمانی است که بتوانی یک محیط تازه بسازی، خرابی محدود را تشخیص بدهی و داده را برگردانی. امشب نتیجهٔ شصت جلسه را در یک تحویل کوچک و قابل تکرار جمع میکنیم.←۰۵
لینوکس ۳۰۵؛ شب ۶: چرخهٔ VM، P2V/V2V و ابزارهای مدیریتیClone، snapshot و migration سه پاسخ به سه مسئلهاند. امشب تفاوت آنها و انتخاب platform مدیریتی را روشن میکنیم.←۰۶
لینوکس ۳۰۵؛ شب ۵۹: Vagrant؛ دو ماشین، provisioner و پوشهٔ مشترکآزمایش client/server باید در اجرای بعدی هم قابل ساخت باشد. امشب دو VM با شبکهٔ خصوصی، فایل پیکربندی و provisioner تکرارپذیر میسازیم و حدود همگامسازی پوشه را بررسی میکنیم.←۰۷
لینوکس ۳۰۵؛ شب ۵۸: Vagrant؛ box، provider و چرخهٔ آزمایشگاهبرای آزمایش کوتاه، تعریف محیط باید کنار پروژه بماند. امشب Vagrantfile میسازیم تا ساخت، ورود و توقف یک VM را با دستورهای مشخص انجام دهیم.←۰۸
لینوکس ۳۰۵؛ شب ۵۷: Packer و QEMU؛ از cloud image تا artifact آزمودنیساخت image ماشین مجازی باید مسیر ورود، پایان تنظیم و خاموشی را هم مشخص کند. امشب image معتبر Ubuntu را در VM موقت تنظیم و خروجی qcow2 را با بوت مستقل بررسی میکنیم.←۰۹
لینوکس ۳۰۵؛ شب ۵۶: Packer؛ template و ساخت image کانتینر LXDنصب دستی ابزار در هر کانتینر، اختلاف پنهان میسازد. امشب دستور ساخت یک image را با Packer ثبت میکنیم و نتیجه را در instance تازه میآزماییم.←۱۰
لینوکس ۳۰۵؛ شب ۵۵: cloud-init؛ رشد دیسک، خطا و آمادهسازی templateدیسک ۱۲ گیگابایتی ممکن است هنوز فایلسیستم کوچک قبلی را داشته باشد. امشب رشد دیسک root، تشخیص مرحلهٔ شکست و آمادهسازی یک کپی برای بوت بعدی را جدا بررسی میکنیم.←۱۱
لینوکس ۳۰۵؛ شب ۵۴: cloud-init؛ هویت و تنظیم اولین بوتیک cloud image برای همهٔ ماشینها یکسان است، اما نام، کاربر و کلید ورود هر نمونه باید مشخص باشد. امشب تنظیم اولین بوت را با cloud-init و یک seed محلی قابل بررسی انجام میدهیم.←۱۲
لینوکس ۳۰۵؛ شب ۵۳: Terraform؛ plan، state و providerTerraform تغییر زیرساخت را از پیکربندی و state محاسبه میکند. امشب چرخهٔ plan/apply را با resource داخلی تمرین میکنیم تا بدون حساب cloud، تفاوت بررسی و اعمال روشن شود.←۱۳
لینوکس ۳۰۵؛ شب ۵۲: مدلهای cloud و معماری OpenStackcloud صرفاً یک VM قابل اجاره نیست؛ قرارداد مسئولیت و API دارد. امشب IaaS، PaaS و SaaS را مقایسه و مسیر ساخت یک instance در OpenStack را از هویت تا شبکه دنبال میکنیم.←۱۴
لینوکس ۳۰۵؛ شب ۵۱: Kubernetes و Helm؛ خواندن استقرار و رفع خرابیهدف این شب شناخت اجزای Kubernetes و نقش Helm در توزیع تعریف برنامه است. یک manifest کوچک را بررسی میکنیم و در صورت داشتن cluster آزمایشگاهی، rollout آن را میسنجیم.←۱۵
لینوکس ۳۰۵؛ شب ۵۰: Swarm؛ service، replica و routing meshSwarm وضعیت مطلوب سرویس را بین nodeها نگه میدارد. امشب یک manager آزمایشگاهی میسازیم و تفاوت service دارای replica را با container مستقل میبینیم.←۱۶
لینوکس ۳۰۵؛ شب ۵: شبکهٔ NAT، bridge، isolated و Open vSwitchنام «شبکهٔ مجازی» دسترسی guest را توضیح نمیدهد. امشب مسیر بسته را از NIC مهمان تا NAT یا bridge و شبکهٔ فیزیکی دنبال میکنیم.←۱۷
لینوکس ۳۰۵؛ شب ۴۹: Compose؛ سرویسها، readiness و secret فایلCompose تعریف چند container یک برنامه را کنار هم نگه میدارد. امشب سرویس HTTP و یک client پایش را با شبکهٔ داخلی و health dependency اجرا میکنیم.←۱۸
لینوکس ۳۰۵؛ شب ۴۸: registry خصوصی با TLS و احراز هویتregistry محل نگهداری image است و باید هویت endpoint و کاربر را بررسی کند. امشب registry محلی با TLS و رمز آزمایشی میسازیم؛ port فقط روی loopback منتشر میشود.←۱۹
لینوکس ۳۰۵؛ شب ۴۷: daemon.json، چرخش log و healthcheckprocess running لزوماً سرویس سالم نیست و log نامحدود میتواند دیسک را پر کند. امشب تنظیم daemon را اعتبارسنجی و سلامت HTTP را جدا از وضعیت process بررسی میکنیم.←۲۰
لینوکس ۳۰۵؛ شب ۴۶: سقف منابع، capability و مسیر rootless در Dockerسرویس سادهٔ HTTP نیازی به اختیار همهٔ دستگاههای میزبان ندارد. امشب image خودمان را با filesystem فقطخواندنی و سقف منابع اجرا و process میزبان را بررسی میکنیم.←۲۱
لینوکس ۳۰۵؛ شب ۴۵: volume، bind mount و دادهٔ پایدار Dockerبازسازی container نباید دادهٔ برنامه را تصادفی حذف کند. امشب volume نامدار را از bind mount و لایهٔ writable جدا و بقای داده را با یک container جدید میسنجیم.←۲۲
لینوکس ۳۰۵؛ شب ۴۴: شبکهٔ Docker، DNS و publish پورتپورت داخل container، پورت host و نام سرویس سه موضوع جدا هستند. امشب شبکهٔ user-defined میسازیم و ارتباط داخلی را بدون بازکردن سرویس روی همهٔ NICهای میزبان بررسی میکنیم.←۲۳
لینوکس ۳۰۵؛ شب ۴۳: ساخت image با Dockerfile و کاربر غیرrootimage باید روش اجرای برنامه را قابل تکرار کند. امشب یک HTTP server کوچک میسازیم که با UID مشخص روی پورت داخلی 8080 کار میکند.←۲۴
لینوکس ۳۰۵؛ شب ۴۲: image، digest و چرخهٔ زندگی Dockertag نام متحرک است و container متوقف با container حذفشده تفاوت دارد. امشب یک image کوچک دریافت و وضعیت process، فایل writable و digest را ثبت میکنیم.←۲۵
لینوکس ۳۰۵؛ شب ۴۱: Docker Engine، daemon و اختیار socketCLI Docker درخواست مدیریت را به daemon میفرستد؛ دسترسی به socket معمولاً اختیار وسیع میزبان میدهد. امشب Engine را در VM تازه نصب و اتصال client/server را بررسی میکنیم.←۲۶
لینوکس ۳۰۵؛ شب ۴۰: snapshot، publish و بازیابی LXDsnapshot در همان میزبان جای backup مستقل را نمیگیرد. امشب تفاوت بازگرداندن instance، ساخت image و export قابل انتقال را با یک فایل شاهد بررسی میکنیم.←۲۷
لینوکس ۳۰۵؛ شب ۴: حافظه، NUMA و overcommitدو VM با RAM ظاهراً یکسان میتوانند latency متفاوت داشته باشند. امشب حافظهٔ تعهدشده، مصرف واقعی و محل CPU/حافظه را جدا میکنیم.←۲۸
لینوکس ۳۰۵؛ شب ۳۹: شبکهٔ مدیریتشده، IP ثابت و جداسازی در LXDNAT دسترسی خروجی میدهد، ولی قانون کنترل دسترسی برنامه نیست. امشب IP ثابت ct305 را روی bridge آزمایشگاه تعیین و یک شبکهٔ بدون forward میسازیم.←۲۹
لینوکس ۳۰۵؛ شب ۳۸: profile، storage و محدودیت منابع در LXDprofile تنظیم مشترک است و تغییر آن میتواند چند instance را عوض کند. امشب profile مخصوص آزمایش میسازیم تا سقف حافظه و CPU را بدون تغییر default همهٔ کانتینرها اعمال کنیم.←۳۰
لینوکس ۳۰۵؛ شب ۳۷: image و چرخهٔ زندگی کانتینر LXDدریافت image، ساخت instance و اجرای process سه مرحلهٔ جدا هستند. امشب کانتینر Ubuntu میسازیم، داخل آن فرمان اجرا میکنیم و بعد توقف و شروع را بررسی میکنیم.←۳۱
لینوکس ۳۰۵؛ شب ۳۶: نصب LXD و تفاوت آن با ابزارهای LXCLXD مدیریت image، شبکه و storage را روی امکانات Linux containers میگذارد. امشب یک سرور محلی با شبکهٔ مشخص میسازیم و تفاوت client به نام lxc را با ابزارهای سنتی LXC روشن میکنیم.←۳۲
لینوکس ۳۰۵؛ شب ۳۵: runc، containerd، CRI-O و ابزارهای rootlessruntime پاییندست با مدیر image و orchestration یک ابزار نیست. امشب نقش اجزا را ترسیم و یک مسیر rootless را بدون ادعای جداسازی کامل بررسی میکنیم.←۳۳
لینوکس ۳۰۵؛ شب ۳۴: capability، seccomp و MAC در کانتینرroot داخل کانتینر و root میزبان ممکن است اختیارهای متفاوت داشته باشند. امشب سه لایهٔ capability، فیلتر syscall و policy اجباری را با process واقعی مقایسه میکنیم.←۳۴
لینوکس ۳۰۵؛ شب ۳۳: cgroup v2 و محدودیت حافظه/CPUnamespace دید را جدا میکند و cgroup بودجهٔ مصرف را. امشب process ساده را در scope محدود میگذاریم و مقدار controller واقعی را میخوانیم.←۳۵
لینوکس ۳۰۵؛ شب ۳۲: network namespace و veth دوطرفهNIC، route و socket میتوانند در network namespace جدا باشند. امشب دو namespace را با یک veth pair وصل میکنیم، بدون NIC فیزیکی یا NAT اینترنت.←۳۶
لینوکس ۳۰۵؛ شب ۳۱: namespaceها، unshare و nsenternamespace تنها چیزی را جدا میکند که برای آن ساخته شده است. امشب PID، UTS و mount را مشاهده میکنیم و نشان میدهیم یک shell جدا الزاماً filesystem امن ندارد.←۳۷
لینوکس ۳۰۵؛ شب ۳۰: system container، application container و OCIکانتینر kernel مستقل VM را ندارد. امشب مرز process، image و runtime را مشخص میکنیم تا «سبکتر» را با «همان جداسازی VM» یکی ندانیم.←۳۸
لینوکس ۳۰۵؛ شب ۳: CPU flags و مجازیسازی تودرتودیدن vmx یا svm بهتنهایی تضمین اجرای KVM نیست. امشب مسیر CPU تا /dev/kvm را بررسی میکنیم و محدودیت nested virtualization را ثبت میکنیم.←۳۹
لینوکس ۳۰۵؛ شب ۲۹: هویت Clone، virt-sysprep و P2V/V2VClone با کلید SSH و machine-id قبلی میتواند هویت تکراری بسازد. امشب تصویر خاموش را آمادهٔ هویت تازه میکنیم و مسیر تبدیل را از کپی ساده جدا میدانیم.←۴۰
لینوکس ۳۰۵؛ شب ۲۸: resize و sparsify تصویر آفلاینبزرگ کردن virtual disk الزاماً filesystem را بزرگ نمیکند. امشب لایهٔ image، partition و filesystem را با copy جدید و آزمون ظرفیت جدا میکنیم.←۴۱
لینوکس ۳۰۵؛ شب ۲۷: خواندن image با guestfish و guestmountبرای دیدن فایل guest لازم نیست disk آن را در kernel میزبان mount کنیم. امشب libguestfs را روی copy سرد با دسترسی فقطخواندنی به کار میبریم.←۴۲
لینوکس ۳۰۵؛ شب ۲۶: raw، qcow2، VMDK و qemu-imgفرمت image روی allocation، snapshot و portability اثر دارد. امشب copy سرد را بین فرمتها تبدیل و محتوا را با فرمت درست مقایسه میکنیم.←۴۳
لینوکس ۳۰۵؛ شب ۲۵: permission، MAC، virtlogd و قفل storageخطای شروع VM ممکن است permission فایل، AppArmor/SELinux یا lock باشد. امشب شواهد را جدا میخوانیم و policy را با نیاز واقعی تطبیق میدهیم.←۴۴
لینوکس ۳۰۵؛ شب ۲۴: انتقال سرد و شرایط migration زندهURI مدیریتی امن بهتنهایی مسیر RAM migration را امن نمیکند. امشب انتقال سرد را اجرا و پیشنیازهای live migration را صریح بررسی میکنیم.←۴۵
لینوکس ۳۰۵؛ شب ۲۳: vCPU، حافظه و مشاهدهٔ منابع domainتعداد vCPU و سهم CPU یکی نیستند. امشب config و مصرف واقعی را با virsh بررسی و یک محدودیت کوچک و قابل برگشت اعمال میکنیم.←۴۶
لینوکس ۳۰۵؛ شب ۲۲: snapshot و backup قابل بازیابی VMsnapshot روی همان disk، backup خارج host نیست. امشب ابتدا backup سرد قابل فهم میگیریم و سپس مرز external snapshot و consistency را بررسی میکنیم.←۴۷
لینوکس ۳۰۵؛ شب ۲۱: storage pool و volume در libvirtpool فهرست و backend ذخیرهسازی را به libvirt معرفی میکند؛ volume هنوز باید به guest درست متصل شود. امشب یک directory pool آزمایشگاهی و disk دادهٔ جدا میسازیم.←۴۸
لینوکس ۳۰۵؛ شب ۲۰: اتصال libvirt به bridge و Open vSwitchlibvirt میتواند NIC مهمان را به switch موجود وصل کند. امشب Linux bridge و OVS خصوصی را مقایسه میکنیم و ownership مدیریت شبکه را روشن میکنیم.←۴۹
لینوکس ۳۰۵؛ شب ۲: Hypervisor، HVM، PV و emulationماشین مجازی و کانتینر مرز یکسانی ندارند. امشب میفهمیم کدام لایه CPU، kernel و device را مدیریت میکند و این انتخاب چه اثری بر جداسازی دارد.←۵۰
لینوکس ۳۰۵؛ شب ۱۹: شبکهٔ libvirt، DHCP/DNS و isolated IPv6NAT اینترنت خروجی را فراهم میکند، اما DNS، DHCP و IPv6 بخشهای مستقل شبکهاند. امشب network object را میخوانیم و یک شبکهٔ isolated جدا میسازیم.←۵۱
لینوکس ۳۰۵؛ شب ۱۸: XML و چرخهٔ persistent/transient domainconfig روی دیسک و config guest در حال اجرا همیشه یکی نیستند. امشب XML و حالتهای domain را با تغییر کوچک و قابل برگشت بررسی میکنیم.←۵۲
لینوکس ۳۰۵؛ شب ۱۷: شبکهٔ پایه و اولین VM در libvirtاولین domain را با disk مستقل، شبکهٔ NAT آزمایشگاهی و seed مشخص میسازیم. هدف، boot واقعی و ورود SSH است، نه صرفاً ظاهر شدن نام در virsh.←۵۳
لینوکس ۳۰۵؛ شب ۱۶: libvirt، اتصال system/session و daemonهاlibvirt یک API مدیریتی برای backendهایی مثل QEMU و Xen است. امشب connection درست و مدل daemon نصب واقعی را مشخص میکنیم تا VM در جای دیگری «گم» نشود.←۵۴
لینوکس ۳۰۵؛ شب ۱۵: TAP و عیبیابی اجرای مستقیم QEMUuser-mode network برای همهٔ سناریوها کافی نیست. امشب TAP را به bridge خصوصی میزنیم و مسیر خطای device، MAC و route را جدا دنبال میکنیم.←۵۵
لینوکس ۳۰۵؛ شب ۱۴: monitor، QMP و snapshot داخلی QEMUmonitor رابط ادارهٔ فرایند QEMU است؛ console guest نیست. امشب pause و snapshot را با وضعیت دیسک/حافظه مرتبط میکنیم و QMP را از HMP جدا میشناسیم.←۵۶
لینوکس ۳۰۵؛ شب ۱۳: VirtIO، firmware و QEMU Guest Agentguest به device مجازی driver میخواهد. امشب boot firmware، driverهای VirtIO و کانال Guest Agent را جدا میکنیم تا نبود Agent با خرابی VM اشتباه نشود.←۵۷
لینوکس ۳۰۵؛ شب ۱۲: اجرای QEMU از خط فرمان و ورود امن به guestیک اجرای مستقیم QEMU نشان میدهد ماشین از چه disk و شبکهای استفاده میکند. امشب cloud image را با user-data کوچک بوت و از پورت محلی وارد آن میشویم.←۵۸
لینوکس ۳۰۵؛ شب ۱۱: نصب QEMU/KVM و آمادهسازی image معتبرQEMU برنامهٔ ماشین مجازی و KVM شتابدهندهٔ اجرای CPU است. امشب ابزارها را روی hv-a نصب و یک image پایهٔ قابل ردیابی آماده میکنیم.←۵۹
لینوکس ۳۰۵؛ شب ۱۰: اداره، عیبیابی و migration در Xenذخیرهٔ state و migration باید با storage هماهنگ باشند. امشب فرمانهای مدیریتی را با شاهد قبل و بعد تمرین میکنیم.←۶۰
لینوکس ۳۰۵؛ شب ۱: آزمایشگاه و نقشهٔ آزموناین مسیر ادامهٔ مهارتهای لینوکس و امنیت است: چرخهٔ ساخت، اداره و بازیابی ماشین و کانتینر را تمرین میکنیم. امشب محیطی میسازیم که خطای یک مهمان، میزبان کاری را درگیر نکند.←