انسیبل چیست و چگونه کار می‌کند؟

انسیبل چیست

آنچه در مقاله می‌خوانید

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

انسیبل چیست؟

انسیبل یک ابزار کارآمد برای خودکارسازی کار‌های متخصصان فناوری اطلاعات است که می‌توان آن را در سراسر زیرساخت‌های سیستم پیاده‌سازی کرد. این ابزار، به‌طور ویژه برای متخصصان فناوری اطلاعات طراحی و تولید شده و آن‌ها را قادر می‌سازد تا به‌عنوان مدیر سیستم، کار‌های خود را در قالب وظایف روزانه یا هفتگی تنظیم کنند. راهکار دیگر برای افزایش سرعت و عملکرد و همچنین، مدیریت سیستم و منابع وب‎سایت، خرید VPS است.

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

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

Ansible چطور کار می‌کند؟

در این بخش، خیلی ساده به شما می‌گوییم که روش کار Ansible چیست و در ادامه نیز به بررسی مفاهیم مربوط به این ابزار می‌پردازیم و توضیح می‌دهیم که داکر چیست و چطور نصب می شود.

انسیبل در ابتدا به گره‌های یک شبکه (مانند سرور‌ها، کلاینت‌ها و غیره) متصل شده و سپس یک برنامه‌ی کوچک یا ماژول به‌نام Ansible را برای تمام گره‌های شبکه ارسال می‌کند. در مرحله‌ی بعد، مجموعه‌‎ای از این ماژول‌ها را از طریق پروتکل SSH اجرا کرده و پس از اتمام اجرای برنامه، همه‌ی آن‌ها را حذف می‌کند.

برای برقراری این تعامل، گره کنترل انسیبل باید دسترسی ورود به گره‌های مدیریت‌شده را داشته باشد. رایج‌ترین روش احراز هویت در چنین شرایطی، کلید‌های SSH است؛ اما می‌توانید از روش‌های دیگر احراز هویت نیز استفاده کنید.

معماری انسیبل چیست؟

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

پلاگین‌های انسیبل

به تکه کد‌های تکمیلی که باعث افزایش عملکرد برنامه/سیستم می‌شوند، پلاگین گفته می‌شود. احتمالا تابه‌حال در بسیاری از ابزار‌ها، پلتفرم‌ها یا مرورگر‌های اینترنت  از پلاگین‌ها استفاده کرده‌اید. شما می‌توانید از پلاگین‌های داخلی Ansible استفاده کنید و یا خودتان پلاگین دلخواهتان را ایجاد کنید.

برخی از پلاگین‌های رایج این ابزار عبارتند از:

  •       پلاگین‌های Action
  •       پلاگین‌های Become
  •       پلاگین‌های Cache
  •       پلاگین‌های Callback
  •       پلاگین‌های Cliconf
  •       پلاگین‌های Connection
  •       پلاگین‌های HTTP API
  •       پلاگین‌های Inventory
  •       پلاگین‌های Lookup
  •       پلاگین‌های Netconf
  •       تست‌ها

ماژول‌های انسیبل

ماژول‌ها قطعه برنامه‌های کوچکی هستند که انسیبل آن‌ها را در تمام گره‌ها یا هاست‌های ریموت از ورک‌استیشن کنترل مرکزی توزیع می‌کند. این ماژول‌ها می‌توانند مواردی مانند سرویس‌ها و پکیج‌ها را کنترل کرده و از طریق پلی بوک انسیبل اجرا شوند.

Ansible پس از اجرای تمام ماژول‌های مورد‎نیاز برای نصب به‌روزرسانی‌ها یا تکمیل عملیات مورد‎نیاز، آن‌ها را حذف می‌کند.

فهرست (inventory)‌های انسیبل

Ansible از یک فایل inventory برای ردیابی هاست‌های زیرساخت سیستم استفاده می‌کند و پس از اجرای دستورات و پلی‎ بوک‌ها، دسترسی به آن‌ها را امکان‎ پذیر می‌کند. این ابزار، در زیر‎ساخت شما موازی با سیستم‌های مختلف کار می‌کند. انسیبل این کار را با انتخاب روش‌های مورد‎نظر در فایل inventory که به‌طور پیش‎فرض در محل هاست ذخیره می‌شود،انجام می‌دهد.

پس از ثبت inventory، می‌توانید برای اختصاص متغیر‌ها به هر کدام از هاست‌های موجود، از یک فایل متنی ساده استفاده کرده و inventory را از منابع مختلف بازیابی کنید.

پلی بوک انسیبل چیست؟

متخصصان فناوری اطلاعات با استفاده از پلی بوک انسیبل می‌توانند بدون اینکه از صفر شروع کنند، از این قابلیت برای برنامه‌ریزی برنامه‌ها، گره‌های سرور، خدمات و سایر دستگاه‌ها بهره ببرند. شما می‌توانید پلی ‎بوک‌های Ansible را با متغیر‌ها، شرایط و وظایف موجودشان ذخیره کرده و هر زمانی که خواستید آن‌ها را به اشتراک گذاشته و یا مجددا استفاده کنید.

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

در واقع، یکی از مهم‌ترین دلایل محبوبیت انسیبل همین پل‎ی‌بوک‌ها هستند. پلی‎ بوک‌ها با مشخص کردن فعالیت‌ها و خودکار‌سازی آن‌ها، به کاربران کمک می‌کنند تا کارهای روتین را به‌سرعت انجام‎ دهند و نیاز به حفظ‌کردن دستورات خاص را از بین می‌برند.

استفاده از انسیبل چه مزایایی برای کاربران دارد؟

مهم‌ترین مزایای استفاده از انسیبل عبارتند از:

  • استفاده از Ansible بسیار آسان و سریع است. سادگی انسیبل به این دلیل است که عملیات در Ansible از طریق SSH انجام می‌شود و نیاز به نصب برنامه خاص دیگری نیست.
  • رایگان و منبع‌باز است و راه‌اندازی بسیار ساده‌ای دارد. از طرفی، برای کار با پلی بوک انسیبل به دانش کدنویسی خاصی نیاز ندارید. میتوانید از این ابزار برای انجام کار‌های ساده‌ای مانند اطمینان از اینکه سرویس‌تان کار می‌کند یا راه‌اندازی دوباره از خط فرمان (بدون نیاز به فایل‌های پیکربندی) استفاده کنید.

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

دلیل اهمیت کار با انسیبل چیست؟

در دنیای امروز، وقت و زمان از اهمیت بسیار زیادی برخوردار است. در نتیجه، برای بالا ‎بردن سرعت  نوسازی و تحول دیجیتال، به ابزار‌های خودکاری نیاز داریم که برای انجام وظایف تکراری، به ما کمک کنند. انسیبل، یک راه‌حل مدیریتی جدید برای افزایش سرعت، مقیاس و ثبات در زیرساخت‌های فناوری اطلاعات است و دقیقا همان چیزی است که متخصصان فناوری اطلاعات به آن نیاز دارند.

لازم به ذکر است که هر چه فناوری قوی‌تر باشد، بهبود محصول/خدمات با کیفیت بالاتری انجام می‌شود. پیش از ارائه‌ی ابزار‌هایی نظیر انسیبل، بهبود محصول یا خدمات به مقدار قابل‎توجهی کار دستی و هماهنگی‌های پیچیده نیاز داشت. اما امروزه، با معرفی Ansible و ابزار‌های اتوماسیون کارآمد، هزاران شرکت می‌توانند فرآیندها و عملیات‌شان را با سرعت بالاتری انجام داده و سرعت توسعه و پیشرفت‌شان را افزایش دهند.

نحوه‌ی نصب انسیبل در اوبونتو

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

برای به‌روزرسانی مخزن، کد زیر را در خط فرمان اجرا کنید:

sudo apt-get update

پیش‌نیازها و ملزومات نرم‎افزار را از طریق اجرای کد زیر نصب کنید:

sudo apt-get install software-properties-common

با دستور زیر، انسیبل را نصب کنید:

sudo apt-add-repository --yes --update ppa: ansible/ansible

سپس، کد زیر را اجرا کنید:

sudo apt-get install ansible

پس از اجرای کد بالا، چیزی شبیه به تصویر زیر را مشاهده خواهید کرد:

حال که انسیبل با موفقیت نصب شد، دستور زیر را در خط فرمان اجرا کنید تا ببینید که به‌درستی کار می‌کند یا خیر:

ansible --version

با اجرای دستور زیر، به انسیبل می‌گوییم تا تمام سیستم‌های هاست inventory را در لوکال هاست هدف قرار داده و پینگِ ماژول را از کنسول محلی (به جای ssh) اجرا می‌کنیم:

ansible all -i localhost, --connection=local -m ping

پس از اجرای دستور بالا، پاسخی مشابه تصویر زیر را دریافت خواهید کرد:

طرز تغییر هاست‌هایی که انسیبل آن‌ها را هدف قرار می‌دهد

در این مرحله، می‌خواهیم تغییراتی را در فایل میزبان که در مسیر /etc/ansible/hosts قرار دارد، ایجاد کنیم. این همان فایل پیش‌فرضی است که انسیبل در آن هر هاست (یا گروه) مشخص شده‌ای را جست‌وجو می‌کند و دستورات زیر باید به‌صورت ریموت یا از راه‌دور اجرا شود :

sudo nano /etc/ansible/hosts

خطوط زیر را به فایل اضافه کرده و تغییرات را ذخیره کنید:

[local]

localhost

سپس، دستور زیر را با فایل inventory تنظیم‎شده اجرا کنید:

ansible all --connection=local -m ping

پس از اجرای دستور بالا، باید چیزی شبیه به تصویر زیر را مشاهده کنید:

طرز پیکربندی سرور ریموت

در این مرحله، آزمایش انسیبل را برای سرور ریموت با استفاده از ماشین مجازی Digital Ocean droplet انجام می‌دهیم.

از وارد‎کردن کد دستور زیر در خط فرمان، برای ورود ssh به سرور استفاده کنید:

ssh username@IP_Address

توجه: در این آموزش، ما از قبل یک کلید ssh را در پروفایل‌مان پیکربندی کرده‌ایم و در زمان ایجاد droplet آن را انتخاب کردیم.

طرز پیکربندی انسیبل برای سرور ریموت

با استفاده از اجرای دستور زیر در خط فرمان، فایل هاست را در مسیر /etc/ansible/hosts ویرایش کنیم:

sudo nano /etc/ansible/hosts

پس از اضافه‎کردن خطوط زیر به فایل، تغییرات را ذخیره کنید:

[remote]

remote_test

[remote: vars]

ansible_host=IP_ADDRESS_OF_VIRTUAL_MACHINE

ansible_user=USERNAME

برای اطمینان از اینکه انسیبل می‌تواند از طریق SSH به واحد محاسباتی ریموت شما متصل شود، دستور زیر را اجرا کنید:

ansible remote -m ping

با استفاده از دستور زیر، می‌توانید یک پلی بوک انسیبل را ایجاد کنید. در کد زیر، به Ansible می‌گوییم که کدام دستور‌ها را با چه ترتیبی بر روی سرور مجازی به صورت ریموت اجرا کند. پلی‎بوک از فرمت دقیقی پیروی می‌کند و با استفاده از فرمت yml. نوشته شده‎است.

nano my-playbook.yml

کد زیر به انسیبل می‌گوید که Docker را در چندمرحله نصب کند:

- name: install docker

hosts: remote

become_method: sudo

become_user: root

vars: #local variables

docker_packages:

- apt-transport-https

- ca-certificates

- curl

- software-properties-common

tasks:

- name: Update apt packages

become: true #make sure you execute the task with sudo privileges

apt: #use apt module

update_cache: yes #equivalent of apt-get update

- name: Install packages needed for Docker

become: true

apt:

name: "{{ docker_packages }}" #uses our declared variable docker_packages

state: present #indicates the desired package state

force_apt_get: yes #forces to use apt-get

- name: Add official GPG key of Docker

shell: curl -fsSL https: //download.docker.com/linux/ubuntu/gpg | sudo apt-key add -

- name: Save the current Ubuntu release version into a variable

shell: lsb_release -cs

register: ubuntu_version #Output gets stored in this variable

- name: Set right Docker directory

become: true

shell: add-apt-repository "deb [arch=amd64] https: //download.docker.com/linux/ubuntu {{ ubuntu_version.stdout }} stable"

- name: Update apt packages

become: true

apt:

update_cache: yes

- name: Install Docker

become: true

apt:

name: docker-ce

state: present

force_apt_get: yes

- name: Test Docker with hello world example

become: true

shell: docker run hello-world

register: hello_world_output

- name: Show output of hello word example

debug: #use debug module

msg: "Container Output: {{hello_world_output.stdout}}"

حالا می‌توانید با اجرای دستور زیر، آن را اجرا کنید:

ansible-playbook my-playbook.yml -l remote

پس از اجرای دستور بالا، در آخرین پیام دیباگ ترمینال، پیام “Hello from Docker” را مشاهده خواهید‎کرد. البته ممکن ‎است ظاهر‎شدن این پیام کمی طول بکشد.

سخن پایانی

انسیبل یک ابزار خودکارسازی بسیار کاربردی و موثر است که سرعت کار متخصصان فناوری اطلاعات را افزایش می‌دهد.

در این مقاله، نگاهی به این ابزار مفید، مزایا، نحوه‌ی کار‎، معماری، پلاگین‌ها، پلی‎بوک، inventory، نحوه‌ی پیکربندی و نصب داکر با Ansible در سرور ریموت پرداختیم. امیدواریم با مطالعه‌ی این مقاله، به‌خوبی با این ابزار آشنا شده باشید.

امتیاز شما به این مطلب
دیدن نظرات
small

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

سه × چهار =

عضویت در خبرنامه مبین هاست
مطالب کدام دسته‌بندی‌ها برای شما جذاب‌تر است؟

آنچه در مقاله می‌خوانید

مقالات مرتبط
ریکاوری هارد استرنال
آموزش پایه شبکه و اینترنت

آموزش ریکاوری هارد اکسترنال (آموزش کامل)

هاردهای اکسترنال یکی از راحت‌ترین و کاربردی‌ترین ابزارهای ذخیره‌سازی اطلاعات هستند. آن‌ها به ما این امکان را می‌دهند که حجم زیادی از اطلاعات را با

خدمات مبین هاست