Packer یک ابزار منبع باز برای ایجاد image های ماشینی یکسان برای پلتفرم های مختلف از یک فایل پیکربندی واحد است. Packer سبک وزن و روی هر سیستم عامل ای اجرا می شود.این ابزار عملکرد بسیار بالایی دارد وimage ها را برای چندین پلتفرم به صورت موازی و همزمان ایجاد می کند. Packer جایگزین مدیریت پیکربندی مانند Chef یا Puppet نمی شود. در واقع، هنگام ساخت image ها، Packer قادر است از ابزارهایی مانند Chef یا Puppet و حتی انسیبل برای نصب نرم افزار بر روی image استفاده کند.
Image ماشین یک واحد ثابت ای است که شامل یک سیستم عامل از pre-configured و نرم افزار های نصب شده است که برای ایجاد سریع ماشین های مجازی به صوزت آماده استفاده می شود. فرمت این ایمیج ها برای هر پلتفرم متفاوت میباشد. بهعنوان مثال AMI برای EC2، فایلهای VMDK/VMX برای VMware، OVF برای VirtualBox و غیره.
اگر قبلاً از Packer استفاده نکرده اید بهتر ار قبل از هر بحثی راجب واژه شناسی این ابزار صحبت کنیم
نتایج یک ساخت یک ایمیج را گویند . معمولا این دیتا شامل شناسه ، فایل برای نمایش ایمیج یک ماشین هست. هر بیلدر یک آرتیفکت تولید می کند. به عنوان مثال، در مورد سازنده آمازون EC2، این بخش مجموعه ای از شناسه های AMI است. برای سازنده VMware، آرتیفکت فهرستی از فایلها است که ماشین مجازی ایجاد شده را تشکیل میدهد و …
بیلدها یک تسک واحد هست که در نهایت یک ایمیج برای یک پلتفرم واحد تولید میشود. ساخت های متعدد به صورت موازی اجرا می شوند
سازندگان یا builder اجزایی از Packer هستند که قادر به ایجاد یک تصویر ماشین برای یک پلتفرم واحد هستند. سازندگان ار فایل پیکربندی تنظیمات را می خوانند و از آن برای اجرا و تولید تصویر ماشین استفاده می کنند. یک سازنده به عنوان بخشی از یک ساخت به منظور ایجاد تصاویر واقعی به دست آمده فراخوانی می شود. سازندگان شامل VirtualBox، VMware و Amazon EC2 هستند.
لیست کامل این سازنده ها در لینک زیر است
https://www.packer.io/docs/builders
فرمان ها دستورات فرعی برای برنامه packer هستند که برخی از کارها را انجام می دهند. یک فرمان مثال، "build" است که به عنوان پکر build فراخوانی می شود. Packer با مجموعه ای از دستورات ارسال می شود تا رابط خط فرمان خود را تعریف کند.
منابع داده اجزایی از Packer هستند که دادهها را از خارج از Packer دریافت میکنند و آن را برای استفاده در قالب خاص در دسترس بقیه اجرا قرار میدهند. نمونه ای از منابع داده عبارتند از Amazon AMI و Amazon Secrets Manager.
لیست کامل آن در لینک زیر قابل مشاهده است
https://www.packer.io/docs/datasources
پس پردازشگرها اجزایی از Packer هستند که نتیجه یک سازنده یا یک پس پردازشگر دیگر را می گیرند و آن را برای ایجاد یک آرتیفکت جدید پردازش می کنند. نمونه هایی از پس پردازشگرها عبارتند از Compress برای فشرده سازی آرتیفکت ها، آپلود برای بارگذاری آرتیفکت ها و غیره.
لیست کامل آن در لینک زیر قابل مشاهده است
https://www.packer.io/docs/post-processors
تأمینکنندهها اجزایی از Packer هستند که نرمافزار را در یک ماشین در حال اجرا نصب و پیکربندی میکنند، قبل از اینکه آن دستگاه به یک تصویر ثابت تبدیل شود. آنها کار اصلی ساختن تصویر حاوی نرم افزار مفید را انجام می دهند. تهیهکنندگان نمونه شامل shell scripts, Chef, Puppet و غیره هستند..
لیست کامل آن در لینک زیر قابل مشاهده است
https://www.packer.io/docs/provisioners
قالب ها فایل های JSON هستند که با پیکربندی اجزای مختلف Packer یک یا چند بیلد را تعریف می کنند. Packer قادر است یک الگو را بخواند و از آن اطلاعات برای ایجاد چندین تصویر ماشین به صورت موازی استفاده کند.
ادامه مطلب در
https://linuxlearn.org/what-is-packer/