اتوماسیون نصب لینوکس با Kickstart Installations

چیزی مثل docker file یا manifest در کوبرنتیس را تصور کنید اما برای نصب خود لینوکس.مطابق بسیاری از ابزارها و روش ها ، kickstart روش معرفی شده توسط ردهت برای اتوماتیک کردن فرآیند نصب لینوکس است.فرض کنید روی یک شبکه که از سیستم های لینوکسی استفاده می کند می خواهید تیپ مشخصی لینوکس را نصب کنید، می توانید یک (kickstart script(file برای آن تهیه کنید و روی یک سرور قرار دهید تا کلاینت ها بصورت خودکار از روی آن فرآیند نصب را انجام دهند.یا اصلاً می خواهید روی یک سیستم یک تیپ مشخص لینوکس نصب کنید و نمی خواهید پای نصب آن بنشینید.یا در یک محیط مجازی سازی که با تیپ های مختلف لینوکس سر و کار دارید می خواهید فرآیند نصب با یک کلیک بصورت خودکار انجام شود و در نهایت لینوکس آماده و کامل را بدون اینکه پای نصب آن نشسته باشید تحویل بگیرید.یک Kickstart file حاوی پاسخ به تمام سئوالاتی است که در فرآیند نصب یک لینوکس توسط installer پرسیده می شود، مواردی مثل منبع نصب ، موقعیت زمانی ، درایوها و پارتیشن بندی، بسته هایی که باید نصب شوند ، تنظیمات پیش فرض شبکه و ...برای مثال اگر از نسخه های ردهتی استفاده می کنید احتمالاً فایل anaconda-ks.cfg را در دایرکتوری خانه روت خود دارید که kickstart script ساخته شده از روی نصبی است که انجام داده اید.فرآیند نصب از طریق kickstart را می توان از طریقinstallation sourceهای local DVD, local hard drive, NFS, FTP, HTTP, HTTPS انجام داد. خود فایل kickstart را نیز می توان از همین طرق در اختیار سیستم قرار داد، حتی درصورت وجود امکان بوت از طریق شبکه و یک PXE server می توان کل فرآیند نصب را از طریق شبکه انجام داد.مستندات درباره kickstart را اینجا ببینید: ردهت 6 / ردهت 7 / ردهت 8 / centos8 / اوبونتو / دبیانبجز نوشتن دستی kickstart file براساس syntax آن ، می توان یک نسخه مدنظر را نصب کرد و از فایل anaconda-ks.cfg آن استفاده نمود یا از ابزار گرافیکی Kickstart Configurator برای ساخت یک kickstart file استفاده کرد. هر چند ردهت درباره این ابزار می گوید :Kickstart Configurator, the graphical tool for creating Kickstart files, is still available. However, it is no longer being updated and it does not reflect changes in Kickstart syntax between Red Hat Enterprise Linux 6 and 7.اما استفاده از آن هنوز بسیار رایج و کاربردی است. بوسیله این ابزار بصورت گرافیکی میتوانید گزینه های نصب را تعیین نمایید و در نهایت یک kickstart file بگیرید.برای نصب آن از yum install system-config-kickstart استفاده نمایید.نکته : در بخش package selection ممکن است خطای Package selection is disabled due to problems downloading package information. ببینید، برای رفع آن فایل ذیل را بشرح نمایش داده شده در تصویر تغییر دهید و نرم افزار را دوباره اجرا کنید./usr/share/system-config-kickstart/packages.pyدر نتیجه :در نهایت با استفاده از file->save تنظیمات خود را در یک فایل متنی kickstart با پسوند cfg ذخیره کنید.حال ما به هر روش یک فایل kickstart تهیه کرده ایم و installation source خود را نیز مشخص کرده و فایل ها و بسته ها را روی آن قرار داده ایم و می خواهیم به سیستم ها بدهیم تا نصب شود.در حقیقت همان متدهای نصب لینوکس را دنبال می کنید با این تفاوت که باید kickstart file را معرفی کنید تا آن متد نصب براساس دستورات آن انجام شود.یک روش همان تحت شبکه و PXE است. نصب PXE Server و بوت PXE Clientها در حوصله این مقاله نیست اما با یک جستجوی ساده منابع و آموزش های متعدد برای آن پیدا می کنید و کار سختی هم نیست.یک روش دیگر با FTP و NFS و (HTTP(s است که در آن علاوه بر قرار دادن بسته های installation source می توانیم فایل kickstart را نیز روی همان مدیا قرار دهیم و در هنگام بوت آن را معرفی کنیم.این معرفی روی صفحه بوت را اگر فایل روی hard یا usb یا dvd هم باشد می توان انجام داد. برای اینکار مثلاً DVD یا iso نصب را در سیستم قرار دهید و در صفحه بوت tab بزنید و ks=[آدرس فایل kickstart] را مشخص کنید.بازدن tab می توانید تنظیم بوت را تغییر دهید، در این نمونه از ftp استفاده شده اما می تواند nfs و http و ... باشدمحتویات iso نصب centos + فایل kickstart که برای معرفی فایل kickstart و نصب از installation source اف.تی.پیبرای اطلاعات بیشتر درباره استفاده از boot options برای تعریف فایل kickstart بخش Kickstart Boot Options را در اینجا ببینید.یک pre-install و post-install اسکریپت هم دارد که در ترکیب با مثلاً ansible می توانید کل نصب و آماده سازی یک لینوکس خاص را بوسیله آن انجام دهید.یک Kickstart generator lab هم از طرف ردهت در اینجا هست که البته باید قبلش در سایت ردهت ثبت نام کرده و subscription داشته باشید.این مقاله صرفاً جهت معرفی و دادن یک دید کلی نسبت به قضیه بود ، در صورتیکه در محیط واقعی می خواهید از این روش استفاده کنید بهتر است مروری روی مستندات آن داشته باشید، برای یک ادمین لینوکسی بخصوص در یک محیط گسترده این مبحث با توجه به سادگی و کارگشایی ارزش مطالعه را دارد.در این مبحث ابزارهایی مثل Cobbler هم هستند که من هنوز باهاش کار نکردم اما از اقبال نسبتاً خوبی در بین کاربران برخوردار شده اند.