ایجاد عکس های فوری با 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


شروع کار با SaltStack در اوبونتو 17.04

شروع کار با SaltStack در اوبونتو 17.04

SaltStack یک برنامه مدیریت پیکربندی مبتنی بر پایتون است که برای اتوماسیون پرونده های پیکربندی ، استقرار و هر چیز دیگری بهینه سازی شده است.

نحوه نصب جنکینز در CentOS 7

نحوه نصب جنکینز در CentOS 7

جنکینز یک ابزار محبوب منبع باز CI (ادغام مداوم) است که به طور گسترده ای برای توسعه پروژه ، استقرار و اتوماسیون پروژه مورد استفاده قرار می گیرد. این مقاله

نحوه نصب و پیکربندی Concord CI در اوبونتو 16.04

نحوه نصب و پیکربندی Concord CI در اوبونتو 16.04

با استفاده از یک سیستم متفاوت؟ مقدمه ادغام مداوم یک شیوه توسعه نرم افزار DevOps است که توسعه دهندگان را قادر می سازد به طور مکرر ادغام شوند

نحوه نصب Drone CI در اوبونتو 18.04

نحوه نصب Drone CI در اوبونتو 18.04

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

نحوه نصب Foreman در اوبونتو 16.04 LTS

نحوه نصب Foreman در اوبونتو 16.04 LTS

با استفاده از یک سیستم متفاوت؟ Foreman ابزاری رایگان و منبع باز است که به شما در پیکربندی و مدیریت سرورهای فیزیکی و مجازی کمک می کند. فورما

با استفاده از Chef-solo برای پیکربندی یک برنامه Django در اوبونتو

با استفاده از Chef-solo برای پیکربندی یک برنامه Django در اوبونتو

روشهای زیادی برای خودکارسازی روند تنظیم و پیکربندی یک جعبه وجود دارد. به هر دلیلی ، اگر کل سیستم ما در این مرحله شامل عادلانه باشد

Balancers Vultr Load Balancers

Balancers Vultr Load Balancers

Balancers Load Balancer چیست در مقابل برنامه شما قرار می گیرد و ترافیک ورودی را در چندین نمونه برنامه شما توزیع می کند. فو

نحوه نصب و پیکربندی Ansible در CentOS 7 برای استفاده با ویندوز سرور

نحوه نصب و پیکربندی Ansible در CentOS 7 برای استفاده با ویندوز سرور

با استفاده از یک سیستم متفاوت؟ Ansible یک ابزار منبع باز برای اتوماسیون وظایف است. این پیکربندی سرورهای لینوکس و ویندوز شما را مدیریت می کند. اون کار میکنه

نحوه نصب CD Strider در اوبونتو 18.04

نحوه نصب CD Strider در اوبونتو 18.04

مقدمه Strider CD یک بستر استقرار مداوم با منبع باز است. برنامه در Node.js نوشته شده است و از MongoDB به عنوان پس زمینه ذخیره سازی استفاده می کند. گام های بلند برداشتن

نحوه نصب SaltStack در CentOS 7

نحوه نصب SaltStack در CentOS 7

SaltStack یا Salt یک راه حل مدیریت پیکربندی منبع باز است که می تواند برای اجرای اجرای راه دور ، مدیریت پیکربندی ، کد

استفاده از SaltStack With Pillars on Ubuntu 17.04

استفاده از SaltStack With Pillars on Ubuntu 17.04

در حالی که SaltStack ابزاری عالی برای اجرای همزمان در بسیاری از سرورهاست ، از پیش تنظیمات تنظیم شده تعریف شده برای هر میزبان نیز که در

نحوه نصب و پیکربندی Ansible در Debian 9 برای استفاده با ویندوز سرور

نحوه نصب و پیکربندی Ansible در Debian 9 برای استفاده با ویندوز سرور

با استفاده از یک سیستم متفاوت؟ Ansible یک ابزار منبع باز برای اتوماسیون وظایف است. این پیکربندی سرورهای لینوکس و ویندوز شما را مدیریت می کند. اون کار میکنه

استفاده از مدیر بسته بندی Chocolatey در ویندوز

استفاده از مدیر بسته بندی Chocolatey در ویندوز

مقدمه Chocolatey مدیریت بسته بندی را فراهم می کند که مدیریت نرم افزار و وابستگی بر روی لینوکس را به ویندوز آسان می کند. می توانید سریع و آسان کنید

نحوه نصب Foreman در CentOS 7

نحوه نصب Foreman در CentOS 7

با استفاده از یک سیستم متفاوت؟ Foreman ابزاری رایگان و منبع باز است که به شما در پیکربندی و مدیریت سرورهای فیزیکی و مجازی کمک می کند. فورما

نحوه نصب و پیکربندی Concord CI در CentOS 7

نحوه نصب و پیکربندی Concord CI در CentOS 7

با استفاده از یک سیستم متفاوت؟ مقدمه ادغام مداوم یک شیوه توسعه نرم افزار DevOps است که توسعه دهندگان را قادر می سازد به طور مکرر ادغام شوند

نحوه نصب و پیکربندی GoCD در CentOS 7

نحوه نصب و پیکربندی GoCD در CentOS 7

با استفاده از یک سیستم متفاوت؟ GoCD یک سیستم تحویل مداوم و اتوماسیون مداوم با منبع باز است. این امکان را به شما می دهد تا با استفاده از موازی آن ، جریان های کاری پیچیده را مدل کنید

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

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

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

نحوه نصب 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

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

نحوه نصب 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

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

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

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

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

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

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