معماری و اجزای گیتلب امنیبوس

  • 2021-07-24

گیتلب یک چنگال سفارشی از پروژه همه کاره است و از اجزای شف مانند کتابهای پخت و پز و دستور العمل ها برای انجام وظیفه پیکربندی گیتلب در رایانه کاربر استفاده می کند. مخزن همه کاره گیتلب روشن است GitLab. com میزبان تمام اجزای لازم از همه کاره گیتلب. اینها شامل قسمتهایی از همه کاره است که برای ساخت بسته مورد نیاز است مانند تنظیمات و فراداده پروژه و اجزای مرتبط با سرپرست که پس از نصب در رایانه کاربر استفاده می شود.

Omnibus-GitLab Components

یک ویدیوی عمیق از این اجزا در یوتیوب موجود است.

تعاریف نرم افزار

فایل تعریف پروژه گیتلب

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

  • فراداده پروژه: شامل ویژگی هایی مانند نام و توضیحات پروژه است.
  • جزییات مجوز پروژه.
  • فهرست وابستگی: فهرست ابزارها و نرمافزارهای خارجی که برای ساخت یا اجرای گیتلب و گاهی فرادادهشان مورد نیاز است.
  • متغیرهای پیکربندی جهانی مورد استفاده برای نصب و راه اندازی گیتلب: شامل دایرکتوری نصب و راه اندازی, کاربر سیستم, و گروه سیستم.

تعاریف نرم افزاری فردی

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

  • نسخه از نرم افزار مورد نیاز است.
  • مجوز از نرم افزار.
  • وابستگی برای نرم افزار ساخته شود/اجرا شود.
  • دستورات مورد نیاز برای ساخت نرم افزار و جاسازی در داخل بسته.

گاهی اوقات ممکن است کد منبع یک نرم افزار برای استفاده با گیتلب وصله شود. این ممکن است برای رفع ضعف امنیتی باشد, برخی از قابلیت های مورد نیاز برای گیتلب را اضافه کنید, یا اینکه با سایر اجزای گیتلب کار کند. به این منظور, همه کاره گیتلب متشکل از یک دایرکتوری پچ, جایی که تکه برای نرم افزار های مختلف ذخیره می شود.

برای تغییرات گسترده تر, ممکن است راحت تر برای پیگیری تغییرات مورد نیاز در یک شاخه در اینه. الگویی که برای این کار دنبال می شود ایجاد شاخه ای از یک برچسب بالادست یا شا است که به این نقطه شاخه به نام شاخه اشاره می کند. به عنوان مثال, از پایگاه کد همه کاره, گیتلب-همه کاره-نسخه 5.6.10 بر اساس نسخه 5.6.10 برچسب پروژه بالادست. این اجازه می دهد تا برای ما برای تولید یک لینک مقایسه مانند https://gitlab. com/gitlab-org/omnibus/compare/v5.6.10. گیتلب-همه چیز-نسخه 5.6.10 برای شناسایی تغییرات محلی موجود است.

قالب پیکربندی گیتلب جهانی

همه کاره گیتلب با یک فایل پیکربندی واحد عرضه می شود که می تواند برای پیکربندی هر قسمت از نمونه گیتلب مورد استفاده قرار گیرد که در رایانه کاربر نصب می شود. این فایل پیکربندی به عنوان منبع متعارف تمام تنظیمات پیکربندی که برای نمونه گیتلب اعمال می شود عمل می کند. این تنظیمات کلی را برای یک نمونه گیتلب و همچنین گزینه های مختلف برای اجزای مختلف لیست می کند. ساختار مشترک این پرونده شامل پیکربندی های مشخص شده در قالب ["]=. تمام گزینه های موجود در قالب پیکربندی ذکر شده اند اما همه به جز موارد لازم برای کار اساسی گیتلب به طور پیش فرض توضیح داده شده اند. در صورت لزوم کاربران ممکن است نظر خود را لغو کرده و مقادیر مربوطه را مشخص کنند.

کتاب گیتلب

همانطور که قبلا توضیح داده شد از بسیاری از اجزای سازنده مانند کتابهای پخت و پز استفاده می کند, ویژگی ها, و منابع. گیتلب ای از یک کتاب پخت جداگانه استفاده می کند که از یک گیتلب استفاده می کند گسترش می یابد و اجزای تنها را اضافه می کند. بازیگران اصلی بخش مربوط به همه کاره گیتلب به شرح زیر هستند:

ویژگیهای پیشفرض

ویژگی های پیش فرض همانطور که از نامش پیداست مقادیر پیش فرض را برای تنظیمات مختلف موجود در فایل پیکربندی مشخص می کند. این مقادیر به عنوان ایمن در برابر خرابی عمل می کنند و در صورتی که کاربر مقداری برای یک محیط فراهم نکند مورد استفاده قرار می گیرند و بنابراین از یک نمونه گیتلب کار با حداقل تغییر کاربری کاربر اطمینان حاصل می کنند.

دستور پخت

دستور العمل ها هنگام نصب گیتلب با استفاده از بسته همه کاره بیشتر کارهای سنگین را انجام می دهند زیرا وظیفه تنظیم هر یک از اجزای اکوسیستم گیتلب در رایانه کاربر را بر عهده دارند. ایجاد فایل های لازم, دایرکتوری ها و لینک ها در مکان های مربوطه خود را, تنظیم مجوز و صاحبان خود, پیکربندی, شروع و توقف خدمات لازم, و اطلاع این خدمات زمانی که فایل های مربوط به تغییر. یک دستور العمل اصلی به نام پیش فرض به عنوان نقطه ورود عمل می کند و سایر دستور العمل های لازم برای اجزا و خدمات مختلف را فراخوانی می کند.

تعاریف

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

قالب برای پیکربندی قطعات

همانطور که قبلا ذکر شد, همه کاره گیتلب فراهم می کند یک فایل پیکربندی واحد به نیشگون گرفتن و کشیدن تمام اجزای یک نمونه گیتلب. با این حال طراحی معماری اجزای مختلف ممکن است نیاز به داشتن فایل های پیکربندی فردی در مکان های خاص داشته باشد. این فایل های پیکربندی باید از هر دو مقادیر مشخص شده توسط کاربر در فایل پیکربندی عمومی و یا از مقادیر پیش فرض مشخص شده تولید می شود. از این رو, کشتی همه کاره گیتلب با قالب های از جمله فایل های پیکربندی با متغیرهایی که ممکن است توسط مقادیر پیش فرض و یا ارزش از کاربر پر. دستور العمل ها وظیفه تکمیل این الگوها را با پر کردن و قرار دادن در مکان های لازم انجام می دهند.

روش های کتابخانه عمومی

همه کاره گیتلب همچنین برخی از روش های کتابخانه ای را ارسال می کند که در درجه اول هدف استفاده مجدد از کد را انجام می دهد. این شامل روش برای بررسی اگر خدمات و در حال اجرا, روش برای بررسی اگر فایل های وجود داشته باشد, و روش های کمکی برای تعامل با اجزای مختلف. اغلب در دستور العمل های سرپایی استفاده می شود.

از بین تمام کتابخانه های مورد استفاده در همه کاره گیتلب, برخی از کتابخانه های خاص وجود دارد: ماژول گیتلب اولیه و همه کتابخانه های خاص مولفه ای که فراخوانی می کند. کتابخانه های خاص کامپوننت شامل روش هایی است که کار تجزیه فایل پیکربندی تنظیمات تعریف شده برای اجزای مربوطه را انجام می دهند. ماژول گیتلب اولیه شامل روش هایی است که این را هماهنگ می کند. این برای شناسایی مقادیر پیش فرض است, فراخوانی کتابخانه های خاص کامپوننت, ادغام مقادیر پیش فرض و مقادیر مشخص شده توسط کاربر, اعتبار سنجی, و تولید تنظیمات اضافی بر اساس مقادیر اولیه خود را. هر کامپوننت سطح بالایی که توسط بسته همه کاره گیتلب ارسال می شود به این ماژول اضافه می شود تا بتوانند در فایل پیکربندی و ویژگی های پیش فرض ذکر شوند و به درستی تجزیه شوند.

رونیت

گیتلب از دستور العمل های رونیت به منظور مدیریت و نظارت خدمات استفاده می کند. دستور العمل های رونیت کار شناسایی سیستم اینیت مورد استفاده توسط سیستم عامل را انجام می دهند و وظایف اساسی مدیریت خدمات مانند ایجاد پرونده های سرویس لازم برای گیتلب را انجام می دهند, فعال کردن سرویس, و بارگیری مجدد سرویس. برای اطلاعات بیشتر به فایل ها/فایل ها/کتاب های پخت و پز / رانیت مراجعه کنید .

خدمات و خدمات

خدمات فرایندهای نرم افزاری هستند که ما با استفاده از فرایند رونیت/سرپرست اجرا می کنیم. شما قادر به بررسی وضعیت خود را, شروع, توقف, و راه اندازی مجدد با استفاده از دستورات گیتلب-سی تی ال. دستور العمل ها همچنین ممکن است این سرویس ها را بر اساس گروه فرایند خود و تنظیمات/نقش هایی که برای نمونه گیتلب پیکربندی شده اند غیرفعال یا فعال کنند. لیست سرویسها و گروههای خدماتی مرتبط را میتوان در فایلها/گیتلب-کتابخانهها/بسته/کتابخانهها/پیکربندی/سرویسها یافت.رب .

دستورات اضافی گیتلب-سی تی ال

به طور پیش فرض, فراهم می کند برخی از دستورات لفاف بسته بندی مانند پیکربندی مجدد گیتلب-سی تی ال و راه اندازی مجدد گیتلب-سی تی ال برای مدیریت به عنوان مثال گیتلب. برخی از دستورات بسته بندی اضافی وجود دارد که برخی از موارد استفاده خاص تعریف شده در مخزن گیتلب همه کاره را هدف قرار می دهند. این دستورات با دستور عمومی گیتلب-سی تی ال برای انجام اقدامات خاصی مانند اجرای مهاجرت پایگاه داده یا حذف حساب های خاموش و کارهای مشابه غیر معمول استفاده می شود.

تست ها

مخزن همه کاره گیتلب از مشخصات اصلی برای تست کتابهای پخت و پز و دستور العمل های ارسال شده استفاده می کند. استراتژی معمول این است که یک دستورالعمل را بررسی کنید تا ببینید در دو شرایط (یا بیشتر) درست رفتار می کند یا خیر: وقتی کاربر هیچ پیکربندی مربوطه را مشخص نمی کند (یعنی هنگام استفاده از پیش فرض ها) و هنگامی که از پیکربندی مشخص شده توسط کاربر استفاده می شود. تست ممکن است شامل چک کردن اگر فایل ها در مکان های صحیح تولید, خدمات شروع/متوقف/مطلع, باینری درست استناد, و پارامترهای صحیح هستند که به روش فراخوانی گذشت. دستور العمل ها و روش های کتابخانه دارای تست های مرتبط هستند. همه کاره گیتلب همچنین از برخی روش های پشتیبانی یا ماکروها برای کمک به روند تست استفاده می کند. تست ها برای موازی سازی در صورت امکان سازگار هستند تا زمان لازم برای اجرای کل مجموعه تست کاهش یابد.

بنابراین از اجزایی که در بالا توضیح داده شد برخی (مانند تعاریف نرم افزاری, فراداده پروژه, و تست ها) در طول ساخت بسته استفاده می کنند, در یک محیط ساخت, و برخی (مانند کتابهای پخت و پز و دستور العمل ها, فایل پیکربندی گیتلب, رونیت, و دستورات گیتلب-سی تی ال) برای پیکربندی نمونه نصب شده کاربر استفاده می شود.

چرخه زندگی کاری همه کاره گیتلب

چه اتفاقی می افتد در طول ساختمان بسته

  1. واکشی منابع نرم افزار وابستگی:
    1. تجزیه تعاریف نرم افزار برای پیدا کردن نسخه های مربوطه.
    2. گرفتن کد منبع از کنترل از راه دور و یا کش.
    1. راه اندازی متغیرهای محیطی لازم و پرچم.
    2. استفاده از تکه, در صورت وجود.
    3. انجام ساخت و نصب کامپوننت که شامل نصب در مکان مناسب (داخل /انتخاب/گیتلب) است.

    کش کردن

    اتوبوس با استفاده از دو نوع کش برای بهینه سازی فرایند ساخت: یکی برای ذخیره مصنوعات نرم افزار (منابع نرم افزار وابسته), و یکی برای ذخیره درخت پروژه پس از هر مولفه نرم افزار ساخته شده است

    نرم افزار مصنوع کش (برای ساخت گیتلب)

    نرم افزار مصنوع کش با استفاده از یک سطل امازون اس 3 برای ذخیره منابع از نرم افزار وابسته. در فرایند ساخت ما, این کش جمعیت است با استفاده از بن فرمان/اتوبوس کش جمعیت . با این کار تمام منابع نرم افزاری لازم از سطل امازون خارج شده و در مکان های لازم ذخیره می شود. هنگامی که یک تغییر در نیاز نسخه از یک نرم افزار وجود دارد, اتوبوس می کشد از بالادست اصلی و به کش مصنوع اضافه. این فرایند داخلی برای همه چیز است و ما سطل شگفت انگیز را برای استفاده در همه چیز پیکربندی می کنیم.فایل رب موجود در ریشه مخزن. این کش تضمین در دسترس بودن نرم افزار وابسته حتی اگر کنترل از راه دور بالادست اصلی خود را به پایین.

    ساخت کش

    نوع دوم از کش است که نقش مهمی در فرایند ساخت ما ساخت کش است. ساخت حافظه پنهان را می توان به عنوان عکس های فوری از درخت پروژه (جایی که پروژه در واقع ساخته می شود - /انتخاب کردن/گیتلب ) پس از هر نرم افزار وابسته ساخته شده است. یک پروژه با پنج قطعه وابسته از نرم افزار در نظر بگیرید - یک, ب, ج, د و الکترونیکی, ساخته شده است که در جهت, ما در حال با توجه به وابستگی های فردی خود را نمی. ساخت کش استفاده می کند از برچسب ها دستگاه گوارش را به عکس های فوری. پس از هر نرم افزار ساخته شده است, یک برچسب دستگاه گوارش محاسبه و متعهد است. حال در نظر بگیرید که ما تغییراتی در تعریف نرم افزار ایجاد کردیم د. الف, ب, ج و ه یکسان باقی می ماند. هنگامی که ما سعی می کنید برای ساخت دوباره, اتوبوس می توانید تصویر لحظهای که ساخته شده بود قبل از د در ساخت قبلی ساخته شده بود استفاده مجدد. بدین ترتیب, زمان صرف شده برای ساخت یک, ب و ج را می توان ذخیره به عنوان به سادگی می توانید پرداخت تصویر لحظهای که پس از ج ساخته شده بود ساخته شده است. اتوبوس با استفاده از تصویر لحظهای درست قبل از نرم افزار که "کثیف" کش (کثیف می تواند یا با یک تغییر در تعریف نرم افزار اتفاق می افتد, تغییر در نام/نسخه از یک مولفه قبلی, و یا تغییر در نسخه از مولفه فعلی) ساخته شده بود. به طور مشابه, اگر در ساخت یک تغییر در تعریف از نرم افزار وجود دارد, این کش کثیف خواهد شد و از این رو یک و تمام وابستگی های زیر از ابتدا ساخته شده. اگر ج کثیف کش, الف و ب مورد استفاده مجدد قرار می شود و ج, د و الکترونیکی می شود دوباره از ابتدا ساخته شده.

    این حافظه پنهان تنها در صورتی منطقی است که در سراسر ساخت ها حفظ شود. برای این کار از مکانیزم ذخیره سازی گیتلب سی استفاده می کنیم. ما یک دونده اختصاصی داریم که برای ذخیره حافظه داخلی خود در یک سطل شگفت انگیز پیکربندی شده است. قبل از هر ساخت, ما در این کش جلو ( بازیابی _ کش _ بسته نرم افزاری هدف در فایل میک ما), حرکت به محل مناسب و شروع به ساخت. تا نقطه کثیف شدن توسط همه کاره استفاده می شود. پس از ساخت, ما کش جدید را بسته بندی می کنیم و به سی می گوییم که از سطل پشتیبان تهیه کند ( بسته بندی بسته در فایل ما).

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

    1. برای هر وابستگی نرم افزاری:
      1. تعریف تجزیه برای درک نسخه و شا256.
      2. اگر فایل منبع در کش مصنوع موجود در سطل اوزون منطبق بر نسخه و شا 256 استفاده کنید.
      3. دیگر, دانلود تاربال درست از راه دور بالادست.
      1. اگر کش کثیف شده است, شکستن حلقه.
      2. دیگر, پرداخت عکس فوری.
      1. برای هر وابستگی باقی مانده:
        1. وابستگی را ایجاد کنید.
        2. یک عکس فوری ایجاد کنید و متعهد شوید.

        چه اتفاقی می افتد در طول گیتلب-سی تی ال پیکربندی مجدد

        یکی از دستورات متداول هنگام مدیریت یک نمونه گیتلب است پیکربندی مجدد گیتلب-سی تی ال . این دستور به طور خلاصه فایل پیکربندی را تجزیه می کند و دستور العمل ها را با مقادیر عرضه شده اجرا می کند. دستور العمل های اجرا می شود در یک فایل به نام دی ان ای تعریف شده است.جانسون موجود در پوشه تعبیه شده در داخل دایرکتوری نصب (این فایل توسط یک وابستگی نرم افزاری به نام تولید می شود گیتلب-کتابهای پخت که در تعاریف نرم افزار تعریف شده است). در صورت گیتلب م, کتاب پخت به نام گیتلب به عنوان دستور اصلی انتخاب می شود, که به نوبه خود همه دستور العمل های لازم دیگر را فراخوانی می کند, از جمله رانیت. به طور خلاصه پیکربندی مجدد اساسا یک اجرای مشتری-مشتری است که فایل ها و سرویس های مختلف را با مقادیر موجود در قالب پیکربندی پیکربندی می کند.

برچسب ها

ثبت دیدگاه

مجموع دیدگاهها : 0در انتظار بررسی : 0انتشار یافته : ۰
قوانین ارسال دیدگاه
  • دیدگاه های ارسال شده توسط شما، پس از تایید توسط تیم مدیریت در وب منتشر خواهد شد.
  • پیام هایی که حاوی تهمت یا افترا باشد منتشر نخواهد شد.
  • پیام هایی که به غیر از زبان فارسی یا غیر مرتبط باشد منتشر نخواهد شد.