برنامه نویسی

شروع به کار با Ansible – راهنمای مبتدی: روز 30 از 50 روز سری ابزارهای DevOps

Summarize this content to 400 words in Persian Lang
به روز 30 مجموعه “50 ابزار DevOps در 50 روز” خوش آمدید! امروز، ما قصد داریم Ansible را بررسی کنیم، یکی از ضروری ترین ابزارها در جعبه ابزار DevOps. این وبلاگ شما را با اصول اولیه Ansible آشنا می کند، اجزای اصلی آن را تجزیه می کند و به شما نشان می دهد که چگونه با مثال های ساده شروع کنید. ما همه چیز را سرراست نگه می داریم و این را به نقطه شروعی عالی برای مبتدیان تبدیل می کنیم.

Ansible چیست؟

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

ویژگی های کلیدی:

بدون نماینده: Ansible نیازی به نصب هیچ عاملی بر روی سیستم های راه دور ندارد که باعث کاهش هزینه های اضافی می شود.کتابهای بازی YAML قابل خواندن توسط انسان: Ansible از YAML (Yet Another Markup Language) برای نوشتن کتاب‌های راهنما استفاده می‌کند که خواندن و نوشتن آن‌ها آسان است.بی توان: شما می توانید یک کتاب بازی را چندین بار بدون نگرانی در مورد تغییرات ناخواسته اجرا کنید.

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

معماری بدون عامل: از آنجایی که Ansible بدون عامل است، نیازی به نصب نرم‌افزار اضافی روی سیستم‌های کلاینت نیست، که باعث کاهش سربار و خطرات امنیتی احتمالی می‌شود.

نحو ساده: Ansible از YAML برای کتاب‌های بازی خود استفاده می‌کند که خواندن و نوشتن آن آسان است و حتی برای کسانی که تازه به اتوماسیون می‌روند نیز قابل دسترسی است.

ناتوانی: Ansible تضمین می کند که بدون در نظر گرفتن وضعیت فعلی به حالت مطلوب دست می یابد. این بدان معناست که اجرای چندباره یک کتاب بازی باعث بروز مشکل یا اقدامات تکراری نمی شود.

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

مقیاس پذیری: چه مدیریت چند سرور یا هزاران سرور، Ansible به خوبی مقیاس‌بندی می‌شود و آن را برای سازمان‌هایی در هر اندازه مناسب می‌سازد.

اجزای اصلی Ansible

موجودی: این لیستی از میزبان ها (سرورها) است که Ansible مدیریت می کند. موجودی ها می توانند ایستا (تعریف شده در یک فایل) یا پویا (تولید شده توسط یک اسکریپت) باشند.

ماژول ها: ماژول ها نیروی کار Ansible هستند. آنها بر روی هاست های راه دور اجرا می شوند تا کارهایی مانند نصب بسته ها، کپی کردن فایل ها یا مدیریت خدمات را انجام دهند.

کتاب های بازی: Playbook ها پیکربندی، استقرار و زبان ارکستراسیون Ansible هستند. آنها در YAML نوشته شده اند و مجموعه ای از وظایف را که باید روی هاست ها اجرا شوند را توصیف می کنند.

نقش ها: نقش ها به شما امکان می دهند کتاب های بازی را به اجزای قابل استفاده مجدد تقسیم کنید و مدیریت و سازماندهی پروژه های بزرگ را آسان تر می کند.

متغیرها: از متغیرها برای ذخیره مقادیری استفاده می‌شود که می‌توانند در سراسر کتاب‌های بازی مجدداً استفاده شوند. آنها انعطاف پذیری را فراهم می کنند و به شما امکان می دهند کتاب های بازی را بدون مقادیر کدگذاری سفارشی کنید.

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

راه اندازی Ansible

بیایید با نصب Ansible بر روی گره کنترل خود شروع کنیم. فرآیند نصب ساده است و بسته به سیستم عامل شما کمی متفاوت است.

نصب Ansible در اوبونتو/دبیان

sudo apt update
sudo apt install ansible -y

وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

نصب Ansible در CentOS/RHEL

sudo yum install epel-release -y
sudo yum install ansible -y

وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

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

ansible –version

وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

نوشتن اولین کتاب بازی Ansible شما

بیایید یک کتاب بازی ساده برای نصب Nginx در یک سرور راه دور ایجاد کنیم. ما با تعریف موجودی خود شروع می کنیم.

مرحله 1: یک فایل Inventory ایجاد کنیدفایلی به نام host ایجاد کنید:

[webservers] 34.42.111.35
34.42.111.66

وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

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

مرحله 2: کتاب بازی را بنویسیددر مرحله بعد، یک کتاب بازی برای نصب و راه اندازی Nginx در این سرورها می نویسیم.

یک فایل با نام nginx_setup.yml ایجاد کنید:


– name: Install Nginx on web servers
hosts: webservers
become: yes

tasks:
– name: Install Nginx
apt:
name: nginx
state: present

– name: Start Nginx service
service:
name: nginx
state: started
enabled: true

وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

درک کتاب راهنما

نام: توصیفی قابل خواندن برای انسان از آنچه کتاب بازی یا وظیفه انجام می دهد.میزبان ها: گروه میزبان ها (از موجودی) را که playbook باید در آن اجرا شود، مشخص می کند.تبدیل شدن به: نشان می دهد که Ansible باید از امتیازات بالا (مانند sudo) استفاده کند.وظایف: مراحلی را که Ansible اجرا خواهد کرد فهرست می کند. در اینجا، ما Nginx را نصب می‌کنیم و از راه‌اندازی و فعال شدن سرویس در بوت اطمینان می‌دهیم.

مرحله 3: Playbook را اجرا کنیدبرای اجرای playbook دستور زیر را اجرا کنید:

ansible-playbook -i hosts nginx_setup.yml

وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

این دستور به Ansible می گوید که وظایف را در nginx_setup.yml روی هاست های تعریف شده در فایل موجودی هاست اجرا کند.

سناریوی واقعی: نصب خودکار بسته

سناریویی را در نظر بگیرید که در آن باید مجموعه ای از بسته ها را روی چندین سرور نصب کنید. انجام این کار به صورت دستی زمان بر و مستعد خطا خواهد بود. با Ansible، می توانید این کار را به راحتی خودکار کنید.

در اینجا یک کتاب بازی ساده برای نصب چندین بسته وجود دارد:


– name: Install essential packages
hosts: all
become: yes

tasks:
– name: Install packages
apt:
name:
– git
– curl
– htop
state: present

وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

در این کتاب بازی، Ansible git، curl و htop را روی همه سرورهای فهرست شده در فهرست نصب می کند. ماژول apt اطمینان می دهد که هر بسته نصب شده است.

مثال واقعی: ساده کردن مدیریت کاربر

تصور کنید باید یک کاربر جدید در چندین سرور ایجاد کنید و آنها را به گروه های خاصی اختصاص دهید. انجام دستی این کار در هر سرور خسته کننده خواهد بود. با Ansible، این یک نسیم است.

در اینجا نحوه انجام این کار آمده است:


– name: Create a new user
hosts: all
become: yes

tasks:
– name: Create user “devuser”
user:
name: devuser
state: present
groups: sudo

وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

این playbook یک Devuser کاربر جدید را در تمام سرورهای مدیریت شده ایجاد می کند و آنها را به گروه sudo اضافه می کند.

مزایای استفاده از Ansible

سازگاری: Ansible تضمین می کند که سیستم های شما به طور مداوم پیکربندی شده اند و خطر تغییر پیکربندی را کاهش می دهد.کارایی: خودکار کردن کارهای تکراری زمان را برای کارهای مهم تر آزاد می کند.مقیاس پذیری: چه مدیریت تعداد انگشت شماری سرور یا هزاران سرور، Ansible بدون دردسر مقیاس می شود.انعطاف پذیری: رویکرد ماژولار Ansible به شما امکان می دهد تا در صورت نیاز عملکرد آن را سفارشی کرده و گسترش دهید.

نتیجه گیری

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

فردا، ما به موضوعات پیشرفته تر Ansible می پردازیم و ویژگی هایی را بررسی می کنیم که می توانند اتوماسیون شما را به سطح بعدی ارتقا دهند. با ما همراه باشید!

👉 برای اطلاع از آخرین به‌روزرسانی‌ها، حتماً من را در لینکدین دنبال کنید: شیوام آگنیهوتری

به روز 30 مجموعه “50 ابزار DevOps در 50 روز” خوش آمدید! امروز، ما قصد داریم Ansible را بررسی کنیم، یکی از ضروری ترین ابزارها در جعبه ابزار DevOps. این وبلاگ شما را با اصول اولیه Ansible آشنا می کند، اجزای اصلی آن را تجزیه می کند و به شما نشان می دهد که چگونه با مثال های ساده شروع کنید. ما همه چیز را سرراست نگه می داریم و این را به نقطه شروعی عالی برای مبتدیان تبدیل می کنیم.

Ansible چیست؟

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

ویژگی های کلیدی:

بدون نماینده: Ansible نیازی به نصب هیچ عاملی بر روی سیستم های راه دور ندارد که باعث کاهش هزینه های اضافی می شود.
کتابهای بازی YAML قابل خواندن توسط انسان: Ansible از YAML (Yet Another Markup Language) برای نوشتن کتاب‌های راهنما استفاده می‌کند که خواندن و نوشتن آن‌ها آسان است.
بی توان: شما می توانید یک کتاب بازی را چندین بار بدون نگرانی در مورد تغییرات ناخواسته اجرا کنید.

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

معماری بدون عامل: از آنجایی که Ansible بدون عامل است، نیازی به نصب نرم‌افزار اضافی روی سیستم‌های کلاینت نیست، که باعث کاهش سربار و خطرات امنیتی احتمالی می‌شود.

نحو ساده: Ansible از YAML برای کتاب‌های بازی خود استفاده می‌کند که خواندن و نوشتن آن آسان است و حتی برای کسانی که تازه به اتوماسیون می‌روند نیز قابل دسترسی است.

ناتوانی: Ansible تضمین می کند که بدون در نظر گرفتن وضعیت فعلی به حالت مطلوب دست می یابد. این بدان معناست که اجرای چندباره یک کتاب بازی باعث بروز مشکل یا اقدامات تکراری نمی شود.

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

مقیاس پذیری: چه مدیریت چند سرور یا هزاران سرور، Ansible به خوبی مقیاس‌بندی می‌شود و آن را برای سازمان‌هایی در هر اندازه مناسب می‌سازد.

اجزای اصلی Ansible

موجودی: این لیستی از میزبان ها (سرورها) است که Ansible مدیریت می کند. موجودی ها می توانند ایستا (تعریف شده در یک فایل) یا پویا (تولید شده توسط یک اسکریپت) باشند.

ماژول ها: ماژول ها نیروی کار Ansible هستند. آنها بر روی هاست های راه دور اجرا می شوند تا کارهایی مانند نصب بسته ها، کپی کردن فایل ها یا مدیریت خدمات را انجام دهند.

کتاب های بازی: Playbook ها پیکربندی، استقرار و زبان ارکستراسیون Ansible هستند. آنها در YAML نوشته شده اند و مجموعه ای از وظایف را که باید روی هاست ها اجرا شوند را توصیف می کنند.

نقش ها: نقش ها به شما امکان می دهند کتاب های بازی را به اجزای قابل استفاده مجدد تقسیم کنید و مدیریت و سازماندهی پروژه های بزرگ را آسان تر می کند.

متغیرها: از متغیرها برای ذخیره مقادیری استفاده می‌شود که می‌توانند در سراسر کتاب‌های بازی مجدداً استفاده شوند. آنها انعطاف پذیری را فراهم می کنند و به شما امکان می دهند کتاب های بازی را بدون مقادیر کدگذاری سفارشی کنید.

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

راه اندازی Ansible

بیایید با نصب Ansible بر روی گره کنترل خود شروع کنیم. فرآیند نصب ساده است و بسته به سیستم عامل شما کمی متفاوت است.

نصب Ansible در اوبونتو/دبیان

sudo apt update
sudo apt install ansible -y
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

نصب Ansible در CentOS/RHEL

sudo yum install epel-release -y
sudo yum install ansible -y
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

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

ansible --version
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

نوشتن اولین کتاب بازی Ansible شما

بیایید یک کتاب بازی ساده برای نصب Nginx در یک سرور راه دور ایجاد کنیم. ما با تعریف موجودی خود شروع می کنیم.

مرحله 1: یک فایل Inventory ایجاد کنید
فایلی به نام host ایجاد کنید:

[webservers]
34.42.111.35
34.42.111.66
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

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

مرحله 2: کتاب بازی را بنویسید
در مرحله بعد، یک کتاب بازی برای نصب و راه اندازی Nginx در این سرورها می نویسیم.

یک فایل با نام nginx_setup.yml ایجاد کنید:

---
- name: Install Nginx on web servers
  hosts: webservers
  become: yes

  tasks:
    - name: Install Nginx
      apt:
        name: nginx
        state: present

    - name: Start Nginx service
      service:
        name: nginx
        state: started
        enabled: true
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

درک کتاب راهنما

نام: توصیفی قابل خواندن برای انسان از آنچه کتاب بازی یا وظیفه انجام می دهد.
میزبان ها: گروه میزبان ها (از موجودی) را که playbook باید در آن اجرا شود، مشخص می کند.
تبدیل شدن به: نشان می دهد که Ansible باید از امتیازات بالا (مانند sudo) استفاده کند.
وظایف: مراحلی را که Ansible اجرا خواهد کرد فهرست می کند. در اینجا، ما Nginx را نصب می‌کنیم و از راه‌اندازی و فعال شدن سرویس در بوت اطمینان می‌دهیم.

مرحله 3: Playbook را اجرا کنید
برای اجرای playbook دستور زیر را اجرا کنید:

ansible-playbook -i hosts nginx_setup.yml
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

این دستور به Ansible می گوید که وظایف را در nginx_setup.yml روی هاست های تعریف شده در فایل موجودی هاست اجرا کند.

سناریوی واقعی: نصب خودکار بسته

سناریویی را در نظر بگیرید که در آن باید مجموعه ای از بسته ها را روی چندین سرور نصب کنید. انجام این کار به صورت دستی زمان بر و مستعد خطا خواهد بود. با Ansible، می توانید این کار را به راحتی خودکار کنید.

در اینجا یک کتاب بازی ساده برای نصب چندین بسته وجود دارد:

---
- name: Install essential packages
  hosts: all
  become: yes

  tasks:
    - name: Install packages
      apt:
        name:
          - git
          - curl
          - htop
        state: present
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

در این کتاب بازی، Ansible git، curl و htop را روی همه سرورهای فهرست شده در فهرست نصب می کند. ماژول apt اطمینان می دهد که هر بسته نصب شده است.

مثال واقعی: ساده کردن مدیریت کاربر

تصور کنید باید یک کاربر جدید در چندین سرور ایجاد کنید و آنها را به گروه های خاصی اختصاص دهید. انجام دستی این کار در هر سرور خسته کننده خواهد بود. با Ansible، این یک نسیم است.

در اینجا نحوه انجام این کار آمده است:

---
- name: Create a new user
  hosts: all
  become: yes

  tasks:
    - name: Create user "devuser"
      user:
        name: devuser
        state: present
        groups: sudo
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

این playbook یک Devuser کاربر جدید را در تمام سرورهای مدیریت شده ایجاد می کند و آنها را به گروه sudo اضافه می کند.

مزایای استفاده از Ansible

سازگاری: Ansible تضمین می کند که سیستم های شما به طور مداوم پیکربندی شده اند و خطر تغییر پیکربندی را کاهش می دهد.
کارایی: خودکار کردن کارهای تکراری زمان را برای کارهای مهم تر آزاد می کند.
مقیاس پذیری: چه مدیریت تعداد انگشت شماری سرور یا هزاران سرور، Ansible بدون دردسر مقیاس می شود.
انعطاف پذیری: رویکرد ماژولار Ansible به شما امکان می دهد تا در صورت نیاز عملکرد آن را سفارشی کرده و گسترش دهید.

نتیجه گیری

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

فردا، ما به موضوعات پیشرفته تر Ansible می پردازیم و ویژگی هایی را بررسی می کنیم که می توانند اتوماسیون شما را به سطح بعدی ارتقا دهند. با ما همراه باشید!

👉 برای اطلاع از آخرین به‌روزرسانی‌ها، حتماً من را در لینکدین دنبال کنید: شیوام آگنیهوتری

نوشته های مشابه

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

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

دکمه بازگشت به بالا