ثبت وضعیت فعلی
جمع آوری تنظیمات سرورها، بسته های نصب شده، کاربران، قواعد فایروال و سرویس ها به عنوان مبنای کدنویسی.
شروع و ارزیابی
ارزیابی رایگان 5مشکل فوری
خدمات فوری 4پشتیبانی مستمر
قرارداد پشتیبانی 5پروژه ها
سرور و هاستینگ 6 شبکه و مجازی سازی 9 دواپس و اتوماسیون 5 امنیت و بازیابی 5 تجهیزات و لایسنس 2بدون هزینه بفهمید وضعیت سرور، امنیت، بکاپ و سرعت سیستم هایتان چطور است.
سرور یا شبکه قطع است، سایت هک شده یا اطلاعات از دست رفته؟ همین حالا تماس بگیرید.
پشتیبانی و نگهداری ماهانه شبکه و سرور با زمان پاسخ مشخص در قرارداد.
نصب، کانفیگ، مدیریت و انتقال سرورهای لینوکس، ویندوز، کنترل پنل ها و ایمیل سرور.
طراحی و اجرای شبکه، میکروتیک، ویپ، اتصال شعب، مجازی سازی و ابر خصوصی.
شبکه و ارتباطات
مجازی سازی و ابر
کانتینر، کوبرنتیز، استقرار خودکار، زیرساخت به عنوان کد و مانیتورینگ پیشرفته.
امن سازی سرور، فایروال، بکاپ و DR، بازیابی از باج افزار و بررسی حملات.
مشاوره، تأمین و نصب سرور و تجهیزات شبکه، و لایسنس اورجینال نرم افزارهای سازمانی.
شروع و ارزیابی
مشکل فوری
پشتیبانی مستمر
پروژه ها
سروری که چند سال پیش با دست تنظیم شده، معمولاً مستندی ندارد و بازسازی اش بدون Infrastructure as Code حدس و گمان است. در این روش، تنظیمات در Ansible و Terraform نوشته می شود، در گیت می ماند و هر بار همان نتیجه را می دهد. ما این کد را از روی سرورهای فعلی شما می نویسیم.
Infrastructure as Code یعنی نوشتن تنظیمات سرورها، ماشین های مجازی و رکوردهای DNS به صورت کد در ابزارهایی مثل Ansible و Terraform، تا این تنظیمات در گیت بماند و هر بار همان نتیجه را بدهد. این روش برای سازمانی لازم است که نمی داند روی سرورهایش دقیقاً چه تنظیماتی اعمال شده، راه اندازی هر سرور جدید یک روز کار دستی می برد یا مطمئن نیست بتواند سرور از دست رفته را عیناً بازسازی کند. پیکوسیستم وضعیت فعلی سرورها را ثبت می کند، برای کارهای تکراری مثل هاردنینگ اولیه، نصب Nginx و PHP و مدیریت کلیدهای SSH نقش های Ansible می نویسد، ماشین های Proxmox یا vSphere و شبکه ها را در Terraform تعریف می کند و اجرای تغییرات را به پایپ لاین CI با بازبینی پیش از اعمال می سپارد. تحویلی مخزن گیت کد، README اجرا و گزارش اختلاف تنظیمات سرورها با وضعیت مطلوب است.
جمع آوری تنظیمات سرورها، بسته های نصب شده، کاربران، قواعد فایروال و سرویس ها به عنوان مبنای کدنویسی.
نوشتن roleهای Ansible برای کارهای تکراری مثل هاردنینگ اولیه، نصب Nginx و PHP و مدیریت کاربران و کلیدهای SSH، با inventory جداگانه برای هر محیط.
تعریف ماشین های مجازی Proxmox یا vSphere، شبکه ها و رکوردهای DNS در Terraform، با state ذخیره شده در backend امن.
ساخت template با Packer و cloud-init تا ماشین جدید بدون نصب دستی سیستم عامل با تنظیمات پایه آماده شود.
اجرای terraform plan و ansible-playbook از طریق CI با بازبینی تغییرات پیش از اعمال، تا هیچ تغییری بدون ثبت در گیت روی سرور نرود.
Terraform وضعیت منابعی را که ساخته در فایل terraform.tfstate نگه می دارد و این فایل رمزها و مقادیر حساس را به صورت متن ساده در خود دارد. commit کردن آن در گیت یکی از رایج ترین اشتباهات است. اگر دو نفر هم زمان terraform apply اجرا کنند و state قفل نشود، فایل خراب می شود و Terraform دیگر نمی داند چه چیزهایی را مدیریت می کند.
برای تیم های کوچک، backend مدیریت شده GitLab که قفل و نسخه بندی state را دارد، ساده ترین گزینه است. در غیر این صورت backend از نوع S3 روی MinIO داخلی با قفل فعال راه اندازی می کنیم. منابعی که پیش از این با دست ساخته شده اند با terraform import یا بلوک import وارد state می شوند و لازم نیست دوباره ساخته شوند.
AWX پروژه متن باز پشت Ansible Automation Platform است. رابط وب، کنترل دسترسی برای هر تیم، زمان بندی اجرای playbookها و محل امن نگهداری credentialها را می دهد و تاریخچه هر اجرا را نگه می دارد. در عوض خودش یک سرویس است که با AWX Operator روی کوبرنتیز نصب می شود و نگهداری و به روزرسانی می خواهد.
اگر تیم شما کوچک است و تغییرات همیشه از مسیر merge request می گذرند، اجرای ansible-playbook از GitLab CI کافی است و چیز تازه ای برای نگهداری اضافه نمی کند. AWX وقتی ارزش دارد که افرادی بیرون از تیم فنی، مثل واحد پشتیبانی، باید playbookهای مشخصی را بدون دسترسی مستقیم به سرورها اجرا کنند.
تکیه زیاد بر ماژول های shell و command به جای ماژول های اختصاصی Ansible، playbook را غیر idempotent می کند و اجرای دوم همان تغییر را تکرار می کند یا خطا می دهد. رمزهایی که مستقیم در group_vars نوشته شده اند باید با ansible-vault رمزنگاری شوند یا در Vault بمانند.
نسخه ها هم باید ثابت شوند: نسخه collectionها در requirements.yml و نسخه providerها در فایل .terraform.lock.hcl که باید در گیت بماند. بزرگ ترین مشکل اما انسانی است. اگر بعد از کدنویسی کسی همچنان با SSH تنظیمات را دستی تغییر دهد، کد و سرور دوباره از هم فاصله می گیرند. اجرای زمان بندی شده playbook در حالت check این اختلاف را زود نشان می دهد.
تعداد نقش های متفاوت سرور از تعداد سرورها مهم تر است. بیست وب سرور یکسان یک role می خواهند و پنج سرور که هر کدام کار متفاوتی می کنند پنج role. تنوع سیستم عامل ها هم اثر دارد، چون پشتیبانی هم زمان از Ubuntu، AlmaLinux و ویندوز کار بیشتری از یک توزیع واحد می برد.
عوامل دیگر در دسترس بودن API برای hypervisor یا ارائه دهنده ابری، وجود پایپ لاین CI و مخزن گیت، مقدار مستندات فعلی و وضعیت مدیریت رمزهاست.
سرورها و منابع را فهرست می کنیم و با شما تعیین می کنیم کدام بخش اول به کد تبدیل شود.
roleها و ماژول ها را می نویسیم و روی محیط آزمایشی با Molecule یا ماشین های موقت تست می کنیم.
ابتدا روی یک سرور کم اهمیت در حالت check اجرا می کنیم، اختلاف ها را بررسی می کنیم و سپس سراغ بقیه می رویم.
مخزن و مستندات را تحویل می دهیم و اجرای روزمره را با تیم شما تمرین می کنیم.
این دو کار متفاوتی انجام می دهند: Terraform منابعی مثل ماشین مجازی، شبکه و DNS را می سازد و Ansible تنظیمات داخل سرور را اعمال می کند. اگر فقط یک یا دو سرور دارید، یک playbook ساده Ansible برای مستندسازی و بازسازی کافی است و کار زیادی نمی برد. Terraform و اجرا از پایپ لاین برای وقتی است که تعداد سرورها یا تغییرات زیاد است.
برای Proxmox و VMware provider فعال وجود دارد. برای برخی ابرهای داخلی provider یا API مناسب هست و در بقیه از Ansible روی API استفاده می کنیم. پیش از شروع، پشتیبانی را برای زیرساخت شما بررسی می کنیم.
اگر بی دقت اجرا شود، دارد. به همین دلیل playbookها را اول با --check و --diff اجرا می کنیم، تغییرات را با شما مرور می کنیم و اعمال را در زمان توافق شده انجام می دهیم.
جست وجوهای مرتبط
دواپس
دواپس استعلام
چند خط درباره وضعیت فعلی و چیزی که می خواهید بنویسید. یک مهندس خودش تماس می گیرد، نه واحد فروش.