ایجاد عکس های فوری با Packer

Packer چیست؟

Packer ابزاری برای تصویربرداری سرور است که توسط HashiCorp ساخته شده است. تصویربرداری سرور؛ یا در عوض ، زیرساخت های تغییر ناپذیر. یک جایگزین محبوب برای ابزارهای پیکربندی زمان اجرا ، مانند Ansible یا Puppet است. این ایده مبتنی بر این ایده است که به محض استقرار سرور ، هرگز آن را تغییر ندهید. در عوض ، شما یک سرور جدید را با تغییرات خود مستقر می کنید و سپس سرای قدیمی را پاره می کنید. این امر باعث می شود تعمیر و نگهداری سرور آسان تر شود و به شما امکان می دهد کارآمدتر را در بین تعداد زیادی دستگاه انجام دهید.

در حالی که Packer از Vultr خارج از کادر پشتیبانی نمی کند ، افزونه ای وجود دارد که این پشتیبانی را اضافه می کند. دستورالعمل نصب Packer با پشتیبانی Vultr را می توان در پلاگین README یافت. بقیه این مقاله فرض می کند که شما Packer را نصب کرده اید ، و همچنین افزونه Vultr.

چگونه کار می کند

هدف Packer تولید تصاویر سرور یا مصنوعی است که می تواند دقیقاً در زمان تصویربرداری ، برای ایجاد یک سرور جدید استفاده کند. برای Vultr ، آن مصنوعات Snapshots نامیده می شوند. این افزونه با استفاده از یک VPS جدید کار می کند ، تأمین کننده های تعریف شده شما را روی آن اجرا می کند ، یک عکس فوری از آن ایجاد می کند و سپس VPS را پاره می کند. وقتی می خواهید یک سرور جدید از تصویر خود ایجاد کنید ، به سادگی با API Vultr تماس بگیرید تا یک VPS جدید را با Snapshot دلخواه به عنوان سیستم عامل خود مستقر کنید.

با استفاده از Packer

Packer یک پرونده JSON را می گیرد که ساخت آن را به عنوان ورودی اجرا می کند. در اینجا نمونه ای از نمونه ساخت Vultr وجود دارد:

{
  "variables": {
    "vultr_api_key": "{{env `VULTR_API_KEY`}}"
  },
  "builders": [
    {
      "type": "vultr",
      "api_key": "{{user `vultr_api_key`}}",
      "snapshot_description": "My Awesome App",
      "region_id": "2",
      "plan_id": "201",
      "os_id": "167",
      "ssh_username": "root"
    }
  ]
}

این پرونده دارای دو کلید سطح بالا ، variablesو builders. از variablesکلید برای تعریف متغیرهای سفارشی استفاده می شود و در این حالت برای گنجاندن VULTR_API_KEYمتغیر محیط به روشی که بعداً قابل استفاده است استفاده می شود. buildersکلیدی شامل یک لیست از ایجاد برای اجرا، در این مورد تنها ساخت Vultr ما است. بیایید کمی آن را خراب کنیم:

  • type: این تعیین می کند که سازنده در واقع از آن استفاده کند ، و برای ساخت Vultr این باید همیشه باشد vultr.
  • api_key: برای اجرای ساخت ، به یک کلید API نیاز دارید که در اینجا تعریف شده است. این مثال آن را به عنوان مقدار vultr_api_keyمتغیر کاربر تعریف می کند ، که در ادامه مقدار آن به VULTR_API_KEYمقدار متغیر محیط تنظیم می شود.
  • snapshot_description: توضیحات عکس فوری حاصل.
  • region_id: منطقه ای برای استقرار VPS به. این تأثیر نمی گذارد در عکس فوری نهایی ، فقط سروری که عکس فوری از آن ایجاد شده است.
  • plan_id: برنامه ای برای استفاده از VPS. استفاده های آینده از این عکس فوری باید طرحی را تعریف کند که حداقل این بزرگ باشد.
  • os_id: سیستم عامل برای پایه گذاری عکس فوری.
  • ssh_username: نام کاربری که هنگام تهیه SSH'ing به سرور برای تهیه فراهم می شود. برای سرورهای لینوکس معمولاً چنین خواهد بود root.

برای استفاده از آن ، این پرونده را با نامی مانند ذخیره کنید server.jsonو سپس دستور را اجرا کنید packer build server.json. برخی از خروجی ها را نشان می دهد که وضعیت ساخت را نشان می دهد ، که چند دقیقه طول می کشد.

هنگامی که این ساخت را اجرا کردید ، سرور جدیدی به نام Snapshotting: My Awesome Appایجاد می شود ، به صورت عکس فوری و سپس از بین می رود. بدون ارائه دهنده خدمات تعریف شده ، این اتفاقاتی است که می افتد. برای کسب اطلاعات بیشتر در مورد ارائه دهندگان ، به مستندات Packer مراجعه کنید .

پس از اتمام ساخت ، Packer شناسه عکس فوری حاصل را صادر می کند.

تعریف منطقه ، برنامه و سیستم عامل

این سه مقدار برای هر ساخت Vultr مورد نیاز است ، اما می توان از طریق چند روش تعریف کرد. برای جلوگیری از ابهام ، برای هر یک باید دقیقاً یکی از تغییرات آن را مشخص کنید:

منطقه

اطلاعات منطقه را می توان از طریق API پرس و جو کرد: https://www.vultr.com/api/#regions_region_list

  • region_id: شناسه منطقه ، به عنوان مثال 2
  • region_code: کد منطقه ، به عنوان مثال ORD

طرح

اطلاعات برنامه را می توان از طریق API سؤال کرد: https://www.vultr.com/api/#plans_plan_list

  • plan_id: شناسه برنامه ، به عنوان مثال 201

سیستم عامل

اطلاعات سیستم عامل را می توان از طریق API پرس و جو کرد: https://www.vultr.com/api/#os_os_list

  • os_id: شناسه سیستم عامل ، به عنوان مثال 167

یک نظر بگذارید

نحوه نصب Anchor CMS بر روی یک VPS Fedora 26 LAMP

نحوه نصب Anchor CMS بر روی یک VPS Fedora 26 LAMP

با استفاده از یک سیستم متفاوت؟ Anchor CMS یک سیستم مدیریت محتوا (CMS) بسیار ساده و بسیار سبک ، بسیار آزاد و آزاد است.

اشتراک NFS را در Debian تنظیم کنید

اشتراک NFS را در Debian تنظیم کنید

NFS یک سیستم فایل مبتنی بر شبکه است که به رایانه ها اجازه می دهد تا از طریق شبکه رایانه ای به فایلها دسترسی پیدا کنند. این راهنما توضیح می دهد که چگونه می توانید پوشه ها را روی NF قرار دهید

نحوه بروزرسانی CentOS 7 ، Ubuntu 16.04 و Debian 8

نحوه بروزرسانی CentOS 7 ، Ubuntu 16.04 و Debian 8

هنگام راه اندازی سرور جدید لینوکس ، به روزرسانی سیستم های هسته و سایر بسته ها تا آخرین نسخه پایدار یک روش توصیه شده است. در این مقاله

نحوه نصب بستر سبد خرید LiteCart در اوبونتو 16.04

نحوه نصب بستر سبد خرید LiteCart در اوبونتو 16.04

LiteCart یک بستر سبد خرید آزاد و منبع باز است که به زبان های PHP ، jQuery و HTML 5 نوشته شده است. این نرم افزار ساده ، سبک و با کاربرد آسان است.

نحوه نصب Matomo Analytics در Fedora 28

نحوه نصب Matomo Analytics در Fedora 28

با استفاده از یک سیستم متفاوت؟ Matomo (سابقا پیویک) یک بستر تحلیلی منبع باز است ، یک جایگزین باز برای Google Analytics. منبع Matomo میزبان o

یک سرور TeamTalk را در لینوکس تنظیم کنید

یک سرور TeamTalk را در لینوکس تنظیم کنید

TeamTalk یک سیستم کنفرانس است که به کاربران امکان می دهد مکالمات صوتی / تصویری با کیفیت بالا ، چت متنی ، انتقال فایل ها و صفحه های به اشتراک بگذارند. من

با استفاده از کلید SSH خود برای ورود به کاربران غیر ریشه استفاده کنید

با استفاده از کلید SSH خود برای ورود به کاربران غیر ریشه استفاده کنید

Vultr یک ویژگی را فراهم می کند که به شما امکان می دهد با ایجاد یک نمونه جدید ، کلیدهای SSH را از قبل نصب کنید. این اجازه می دهد تا به کاربر root دسترسی داشته باشید ، با این حال ، th

نحوه نصب انجمن NodeBB در FreeBSD 12

نحوه نصب انجمن NodeBB در FreeBSD 12

با استفاده از یک سیستم متفاوت؟ NodeBB یک نرم افزار انجمن مبتنی بر Node.js است. از سوکت های وب برای تعامل فوری و اعلامیه های زمان واقعی استفاده می کند. NodeB

نحوه نصب Ranger Terminal File Manager در لینوکس

نحوه نصب Ranger Terminal File Manager در لینوکس

رنجر یک مدیر فایل مبتنی بر خط فرمان است که دارای کلیدهای اتصال VI است. این برنامه یک رابط لعنتی مینیمالیستی و زیبا با نمای سلسله مراتب فهرست ارائه می دهد

نصب و راه اندازی ZNC در اوبونتو

نصب و راه اندازی ZNC در اوبونتو

ZNC یک پیشرانه پیشرفته شبکه IRC است که تمام وقت بهم متصل می شود تا مشتری IRC بتواند بدون از دست دادن جلسه گپ قطع یا وصل شود.