این مستند آموزش نصب Ansible در اوبونتو را بررسی خواهد کرد .
پیش نیازها #
قبل از شروع، مطمئن شوید که موارد زیر را دارید:
- حداقل دو سرور مجازی (VPS) که سیستم عامل اوبونتو ۲۴.۰۴ را اجرا میکنند. یکی به عنوان گره کنترلکننده Ansible و دیگری به عنوان گره کارگر یا مدیریتشده عمل خواهد کرد.
- دسترسی SSH به VPS (با دسترسی روت یا کاربر sudo ).
انسیبل چیست؟ #
Ansible یک ابزار اتوماسیون متنباز برای تعریف، مدیریت و خودکارسازی پیکربندی، استقرار و هماهنگسازی زیرساختها و برنامههای فناوری اطلاعات است. میتوان آن را به صورت اعلانی با تعریف وضعیت مطلوب سیستم شما در YAML استفاده کرد. با انجام این کار، تضمین میشود که سیستم شما مطابق انتظار پیکربندی شده است. برخلاف سایر ابزارهای مبتنی بر عامل، Ansible بدون عامل است. از SSH (برای سیستمهای لینوکس و BSD) و WinRM (برای سیستمهای مبتنی بر ویندوز) برای دسترسی به زیرساخت شما و اجرای وظایف استفاده میکند.
بزرگترین نقطه قوت Ansible، پایه و اساسی است که بر روی آن ساخته شده است. مدل اعلانی، اتوماسیون زیرساخت را کمتر چالش برانگیز میکند. این ماهیت اعلانی، همراه با سایر ویژگیهای Ansible، تضمین میکند که وقتی همان playbook دوباره اجرا شود، بدون ایجاد تغییرات ناخواسته دیگر، همان نتیجه را ارائه میدهد.
انسیبل برای چه مواردی استفاده میشود؟ #
Ansible معمولاً برای موارد زیر استفاده میشود:
- خودکارسازی وظایف مدیریتی تکراری مانند بهروزرسانیهای سیستم و نصب بستهها.
- مدیریت پیکربندیها در خوشههای بزرگی از سرورها.
- استقرار آسان برنامههای چند لایه.
- تضمین ثبات پیکربندی از طریق Playbookهای کنترلشده با نسخه.
با تعریف حالتهای مطلوب و بهرهگیری از ماهیت خودتوان Ansible، میتوانید از پایدار و قابل پیشبینی بودن محیطها اطمینان حاصل کنید.
نحوه نصب Ansible در اوبونتو ۲۴.۰۴ #
در این بخش، شما با نصب Ansible آشنا خواهید شد. در پایان آموزش، یک محیط Ansible آماده و در حال اجرا برای مدیریت سیستمهای خود خواهید داشت.
در این آموزش، از سه سرور استفاده خواهم کرد. Ansible روی یکی (گره کنترلر) نصب خواهد شد و دو سرور دیگر به عنوان گرههای مدیریتشده که وظایف Ansible در آنها اجرا میشوند، استفاده میشوند.
مرحله ۱: بهروزرسانی بستههای سیستمی #
قبل از شروع، مطمئن شوید که به گره کنترلر خود وارد شدهاید. بهروزرسانی مداوم سیستم، تضمین میکند که از آخرین وصلههای امنیتی و بهبودهای نرمافزاری بهرهمند هستید.
sudo apt update && sudo apt upgrade -y
این apt updateدستور لیست بستهها را برای بهروزرسانیها و نسخههای جدید بستهها بهروزرسانی میکند. این apt upgrade -yدستور بستههای نصب شده را به آخرین نسخههایشان ارتقا میدهد و -yبه طور خودکار پیامهای تأیید را نمایش میدهد.
مرحله ۲: نصب ویژگیهای نرمافزار رایج #
یکی از جنبههای مهم این مرحله software-properties-common، بستهای است که PPAها را مدیریت میکند و نصب نرمافزار از منابع شخص ثالث را آسانتر میسازد.
sudo apt install software-properties-common -y
مرحله ۳: اضافه کردن PPA رسمی Ansible (بایگانی بسته شخصی) #
برای اطمینان از دسترسی به آخرین نسخه پایدار Ansible، فایل رسمی PPA مربوط به Ansible را اضافه کنید.
sudo add-apt-repository --yes --update ppa:ansible/ansible
add-apt-repository: یک PPA جدید به سیستم شما اضافه میکند.--yes: عملیات جمع را بدون وارد کردن دستی اطلاعات تایید میکند.--updateبلافاصله پس از افزودن PPA، اطلاعات بسته را بهروزرسانی میکند.
مرحله ۴: نصب Ansible #
پس از افزودن PPA، نصب Ansible ساده است.
sudo apt Install Ansible -y
این دستور Ansible و تمام وابستگیهای لازم را نصب میکند.
مرحله ۵: تأیید نصب Ansible #
تأیید کنید که Ansible با موفقیت نصب شده است و نسخه آن را بررسی کنید.
ansible --version
این دستور نسخه Ansible نصب شده و مسیرهای پیکربندی مرتبط را نمایش میدهد و از آماده بودن ابزار برای استفاده اطمینان حاصل میکند.

نصب Ansible با Pip (روش جایگزین) #
نصب Ansible از طریق ‘pip’ انعطافپذیری و کنترل بیشتری را ارائه میدهد اگر ترجیح میدهید بستههای پایتون را مستقل از مدیر بسته سیستم خود مدیریت کنید. این روش به ویژه در محیطهایی که مخازن بسته ممکن است آخرین نسخه Ansible را نداشته باشند یا هنگام کار در محیطهای توسعه ایزوله، مفید است.
۱. قبل از نصب Ansible از طریق pip، install python3و pip3:
sudo apt update
sudo apt install python3 python3-pip -y
۲. نصبها را تأیید کنید:
python3 --version
pip3 --version

۳. اگر ماژول از قبل نصب نشده است، آن را نصب کنید venv. راهاندازی یک محیط تضمین میکند که Ansible و تمام وابستگیهای آن با بستههای پایتون در سطح سیستم تداخل نداشته باشند.
sudo apt install python3-venv -y
۴. ایجاد و فعالسازی یک محیط مجازی:
python3 -m venv ansible_env
source ansible_env/bin/activate
اکنون اعلان ترمینال شما باید نشان دهد که محیط مجازی فعال است.
۵. پس از آماده شدن محیط، Ansible را نصب کنید:
pip3 Install Ansible
۶. نصب را تأیید کنید. با بررسی نسخه، تأیید کنید که Ansible با موفقیت نصب و در دسترس است:
ansible --version

برای بهروزرسانی Ansible به آخرین نسخه:
pip3 install --upgrade ansible
۷. وقتی کارتان تمام شد، با اجرای دستور زیر محیط مجازی را غیرفعال کنید:
deactivate
مزایای استفاده از pipنصب #
- محیطهای مجازی، محیطهای ایزولهای را برای پروژههای مختلف فراهم میکنند.
- با استفاده از این قابلیت، به راحتی میتوان محیطها را برای استقرارهای مداوم، تکثیر کرد.
توجه: استفاده
pipاز Ansible برای نصب ممکن است هنگام تنظیم وابستگیهای سیستم یا افزونههای خاص، مانندansible-coreماژولهای اضافی برای ادغام با فضای ابری، نیاز به توجه بیشتری داشته باشد.
مرحله ۷: پیکربندی Ansible با یک فایل موجودی سفارشی #
پس از نصب، با تنظیم یک فایل inventory و نوشتن یک playbook ساده، Ansible را پیکربندی کنید. فایل inventory جزئی از Ansible است که تمام گرههای مدیریتشده را فهرست کرده و آنها را در گروهها سازماندهی میکند و هدف قرار دادن سیستمهای خاص برای وظایف اتوماسیون را آسانتر میکند. از سوی دیگر، یک playbook مجموعهای از وظایف را تعریف میکند که Ansible باید روی آن گرهها اجرا کند. این اجزا در کنار هم، هسته اصلی چارچوب اتوماسیون Ansible را تشکیل میدهند.
Ansible با یک فایل موجودی پیشفرض که در /etc/ansible/hosts قرار دارد، ارائه میشود. این فایل میتواند برای تعریف گرههای مدیریتشده و گروهبندیهای آنها استفاده شود. با این حال، تغییر فایل موجودی پیشفرض به طور کلی به دلایل مختلف توصیه نمیشود. در عوض، ایجاد یک فایل موجودی اختصاصی در دایرکتوری پروژه یا سایر مکانهای خاص، سازماندهی و قابلیت نگهداری بهتری را تضمین میکند.
در اینجا دلایلی وجود دارد که چرا استفاده از فایل موجودی پیشفرض توصیه نمیشود:
- جدا نگه داشتن پیکربندیهای سفارشی شما به حفظ وضوح کمک میکند و از تغییرات تصادفی در پیشفرضهای سیستم جلوگیری میکند.
- فایلهای موجودی سفارشی ذخیره شده در دایرکتوری پروژه شما را میتوان به راحتی با استفاده از سیستمهای کنترل نسخه ردیابی کرد.
- موجودیهای سفارشی امکان ایجاد فایلهای مختلف برای محیطهای مختلف، مانند توسعه، آزمایش و تولید را فراهم میکنند.
۱. یک دایرکتوری برای فایل موجودی سفارشی خود، مانند پوشه پروژه خود، انتخاب کنید.
mkdir ~/ansible-project
cd ~/ansible-project
nano custom_inventory.ini
محتوای زیر را به فایل اضافه کنید:
[webservers]
۵.۱۹۹.۱۷۳.۲۲۵
[databases]
۵.۱۹۹.۱۷۳.۲۹
آدرسهای IP را با آدرسهای IP سرور فعلی خود جایگزین کنید. میتوانید هر تعداد که میخواهید اضافه کنید. [webservers]و [databases]گروههای میزبان و آدرسهای IP نشاندهنده سرورهای مجزا در هر گروه هستند.
۲. یک دفترچه راهنما برای پینگ کردن همه میزبانهای موجود در فهرست ایجاد کنید:
nano test-playbook.yml
محتوای YAML زیر را اضافه کنید:
---
- name: Test Ansible Custom Inventory
hosts: all
tasks:
- name: Ping all hosts
ansible.builtin.ping:
name: وظیفه را توصیف میکند. hosts: all: وظیفه را روی تمام میزبانهای موجود در فهرست سفارشی اجرا میکند. ansible.builtin.ping: اتصال به هر میزبان را بررسی میکند.
۳. Ansible از SSH برای ارتباط استفاده میکند، بنابراین اگر قبلاً یک جفت کلید روی دستگاه محلی خود ایجاد نکردهاید، آن را ایجاد کنید. شما در حال تولید از دستگاهی هستید که Ansible را از طریق آن میزبانی میکنید:
ssh-keygen -t rsa -b 2048
۴. کلید عمومی را در میزبانهای راه دور کپی کنید:
ssh-copy-id root@5.199.173.225
ssh-copy-id root@5.199.173.29
آدرسهای IP را با آدرسهای خودتان جایگزین کنید.
۵. با مشخص کردن فایل موجودی سفارشی، playbook را اجرا کنید:
ansible-playbook -i custom_inventory.ini test-playbook.yml
۶. با مشخص کردن فایل موجودی سفارشی، playbook را اجرا کنید:
ansible-playbook -i custom_inventory.ini test-playbook.yml
اگر همه چیز به درستی پیکربندی شده باشد، Ansible با موفقیت هر میزبان فهرست شده در فهرست سفارشی شما را پینگ خواهد کرد.

با ایجاد این پایه، میتوانید روی کارهای اتوماسیون پیچیدهتر، مانند پیکربندی سرورها، استقرار برنامهها، مدیریت سرویسها، ادغام با پلتفرمهای ابری و غیره کار کنید.
نتیجه گیری #
در این آموزش، نحوه نصب و پیکربندی Ansible در اوبونتو ۲۴.۰۴ را آموختید که شامل هر دو pipروش مبتنی بر بسته و مبتنی بر – بود. ما یک فهرست موجودی راهاندازی کردیم و یک playbook ساده اجرا کردیم تا تأیید کنیم که Ansible برای وظایف اتوماسیون آماده است. با نصب و آزمایش Ansible، میتوانید شروع به ساخت راهحلهای اتوماسیون پیچیدهتر برای سادهسازی عملیات فناوری اطلاعات خود کنید.
