تکنولوژیهای این حوزه را به عنوان "Infrastructure as Code" یا به اختصار IAC میشناسیم که ساختار زیرساختها را با استفاده از کد مدیریت میکند.
خب IAC به دو دسته تقسیم میشود: ۱- Provisioning زیرساخت و ۲- Config Manager. از ابزارهای دسته اول میتوان به Terraform اشاره کرد و در دسته دوم میتوان از ابزارهایی مانند Ansible، Chef، Salt و Puppet نام برد. Provisioning در لایه بالاتری قرار دارد که میتواند مثلاً با تنظیمات داده شده، 20 ماشین مجازی با 2 هسته و 4 گیگابایت حافظه را بالا بیاورد و سیستم عامل Debian را نصب کند. انسیبل همچنین قابلیتهای مشابهی دارد اما برای این کار طراحی نشده و کمی دشوارتر از Terraform است. تفاوت اصلی میان پروتکلهای Ansible و Puppet در استفاده از SSH و SSL است، حال آنکه ansible از SSH و puppet از SSL استفاده میکند. اتصال SSH از نوع stateful است، در حالی که پاپت از نوع stateless است که این یکی از معایب آن نسبت به انسیبل است. برای استفاده از پاپت، باید نرمافزار مشتری (Agent) پاپت را بر روی سرورهای میزبان نصب کرد. انسیبل توسط مایکل دهان به زبان برنامهنویسی پایتون نوشته شده است.
خب اگر نگاهی به معماری ansible بکنیم متوجه میشیم که از ۲ قسمت client و controller تشکیل شده که controller باید یک سیستم لینوکسی باشد ولی client نیازی نیست و نیازی به نصب بسته ای نیز ندارد. در قسمت controller ما ۲ فایل داریم hostinventory که آدرس کلاینت های ما در آن قرار دارد و playbook که فرمت اش yaml است و تنظیماتی که میخواهیم را آنجا قرار میدهیم . ansible نیز دارای محیط گرافیکی است ولی باید خریداری شود که به آن avx گفته میشود.البته اگه از نسخه رایگان میخوایم استفاده کنیم میتوانیم از semaphore استفاده کنیم.
برای نصب اش از دستور زیر استفاده میکنیم و باید پایتون ۲ یا ۳ را نصب داشت به عنوان پیشنیاز.
sudo apt install ansible
خب پارت اولش نوشتم حال داشته باشم پارت دومش هم مینویسم بسته به اینکه حمایت کنین .
اگر سوالی یا پیشنهادی دارین به ایمیل من پیام بدین soheil07118@gmail.com .