برنامه نویسی

روز 22: تنظیم خودکار وب سرور با Ansible در اوبونتو

Summarize this content to 400 words in Persian Lang
معرفی

سلام به همه، روز 22 از سفر 90 روزه من در DevOps است، و من هیجان زده هستم که با Ansible وارد دنیای اتوماسیون شوم. به عنوان یک مهندس امنیت SRE و ابر، من همیشه به دنبال راه هایی برای ساده کردن گردش کار و بهبود کارایی هستم. به نظر می رسد Ansible ابزار عالی برای کمک به من در رسیدن به آن است.

هدف پروژه

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

راهنمای گام به گام پروژه

1. نصب Ansible در اوبونتو

sudo apt update

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

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

sudo apt install ansible

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

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

ansible –version

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

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

2. آماده سازی محیط زیست

ایجاد یک فهرست پروژه:

mkdir ~/ansible-project
cd ~/ansible-project

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

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

یک فایل موجودی تنظیم کنید:

یک فایل inventory.ini ایجاد کنید:

touch inventory.ini

inventory.ini را ویرایش کنید تا جزئیات سرور خود را در بر بگیرد:

[webservers] server1 ansible_host=your_server_ip ansible_user=your_username

[all:vars] ansible_python_interpreter=/usr/bin/python3

جایگزین کردن your_server_ip با آدرس IP سرور شما و your_username با نام کاربری SSH شما

3. ایجاد اولین کتاب راهنما

touch webserver.yml

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

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


– name: Set up a web server
hosts: webservers
become: true
tasks:
– name: Ensure Apache is installed
apt:
name: apache2
state: present

– name: Ensure Apache is running
service:
name: apache2
state: started
enabled: true

– name: Deploy custom index.html
copy:
src: /path/to/your/local/index.html
dest: /var/www/html/index.html
mode: 0644

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

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

توضیح:

hosts: گروه هدف (وب سرورها) را از فایل موجودی مشخص می کند.

become: true: از sudo برای اجرای دستورات به عنوان superuser استفاده می کند.

tasks: لیستی از وظایف برای انجام:

Apache را نصب کنید: استفاده می کند apt ماژول برای اطمینان از نصب آپاچی.

Apache را راه اندازی و فعال کنید: استفاده می کند service ماژول برای راه اندازی و فعال کردن سرویس آپاچی.

استقرار یک Index.html سفارشی: استفاده می کند copy ماژول برای استقرار یک فایل index.html سفارشی در فهرست اصلی وب سرور. این mode: 0644 اطمینان حاصل می کند که فایل دارای مجوزهای صحیح است.

4. استقرار پیکربندی خود با Ansible

ansible all -m ping -i inventory.ini

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

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

در صورت موفقیت آمیز بودن اتصال، باید پاسخ “پنگ” را مشاهده کنید.

ansible-playbook -i inventory.ini webserver.yml

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

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

خروجی را بررسی کنید تا مطمئن شوید که تمام وظایف با موفقیت انجام شده است.

5. تأیید استقرار

دسترسی به وب سرور: یک مرورگر وب باز کنید و به آن بروید http://your_server_ip (آدرس IP سرور خود را جایگزین کنید). شما باید محتوای آن را ببینید index.html فایل مستقر شده توسط Ansible.

چالش های پیش رو

ارتباط رد شد: یکی از چالش های رایج این است که هنگام تلاش برای اتصال به سرور راه دور، با خطای «اتصال رد شده است» مواجه شوید. این ممکن است به دلیل تنظیمات فایروال، مسدود شدن پورت SSH یا IP/نام کاربری نادرست سرور باشد.

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

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

بهترین روش ها برای کاربران ویندوز

استفاده از زیرسیستم ویندوز برای لینوکس (WSL): از آنجایی که من یک کاربر ویندوز هستم، اوبونتو را از طریق WSL نصب کردم. این یک محیط لینوکس یکپارچه را در ویندوز فراهم می کند و به من اجازه می دهد تا دستورات Ansible را مستقیماً اجرا کنم. این یک گزینه عالی برای کاربران ویندوز است که می خواهند از قدرت Ansible بدون تغییر به یک سیستم کامل لینوکس استفاده کنند.

Ansible را روی WSL نصب کنید: همان مراحل نصب را که در راهنما ذکر شده است، دنبال کنید، اما در توزیع WSL خود (به عنوان مثال، اوبونتو).

استفاده از Git Bash (اختیاری): در حالی که WSL یک پوسته Bash ارائه می دهد، شما همچنین می توانید از Git Bash برای تجربه Bash آشناتر در ویندوز استفاده کنید. این به ویژه اگر از قبل با Git Bash برای کارهای دیگر راحت هستید مفید است.

مدیریت موجودی با ابزار جداگانه (اختیاری): برای محیط های پیچیده با سرورهای متعدد، از ابزارهایی مانند Ansible Tower یا سیستم های مدیریت پیکربندی مانند Puppet یا Chef برای مدیریت موجودی خود استفاده کنید. این ابزارها می توانند فرآیند مدیریت و سازماندهی سرورهای شما را ساده کنند، به خصوص زمانی که شما باید با آنها کار کنید.

نتیجه

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

منابع:

امیدوارم این مقاله مفید بوده باشد. منتظر ماجراهای هیجان انگیز DevOps در روزهای آینده باشید!

معرفی

سلام به همه، روز 22 از سفر 90 روزه من در DevOps است، و من هیجان زده هستم که با Ansible وارد دنیای اتوماسیون شوم. به عنوان یک مهندس امنیت SRE و ابر، من همیشه به دنبال راه هایی برای ساده کردن گردش کار و بهبود کارایی هستم. به نظر می رسد Ansible ابزار عالی برای کمک به من در رسیدن به آن است.

هدف پروژه

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

راهنمای گام به گام پروژه

1. نصب Ansible در اوبونتو

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

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

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

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

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

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

2. آماده سازی محیط زیست

  • ایجاد یک فهرست پروژه:
  mkdir ~/ansible-project
  cd ~/ansible-project
وارد حالت تمام صفحه شوید

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

  • یک فایل موجودی تنظیم کنید:

    • یک فایل inventory.ini ایجاد کنید:
    touch inventory.ini
    
    • inventory.ini را ویرایش کنید تا جزئیات سرور خود را در بر بگیرد:
    [webservers]
    server1 ansible_host=your_server_ip ansible_user=your_username
    
    [all:vars]
    ansible_python_interpreter=/usr/bin/python3
    

    جایگزین کردن your_server_ip با آدرس IP سرور شما و your_username با نام کاربری SSH شما

3. ایجاد اولین کتاب راهنما

  touch webserver.yml
وارد حالت تمام صفحه شوید

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

  ---
  - name: Set up a web server
    hosts: webservers
    become: true
    tasks:
      - name: Ensure Apache is installed
        apt:
          name: apache2
          state: present

      - name: Ensure Apache is running
        service:
          name: apache2
          state: started
          enabled: true

      - name: Deploy custom index.html
        copy:
          src: /path/to/your/local/index.html
          dest: /var/www/html/index.html
          mode: 0644
وارد حالت تمام صفحه شوید

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

توضیح:

  • hosts: گروه هدف (وب سرورها) را از فایل موجودی مشخص می کند.
  • become: true: از sudo برای اجرای دستورات به عنوان superuser استفاده می کند.
  • tasks: لیستی از وظایف برای انجام:

    • Apache را نصب کنید: استفاده می کند apt ماژول برای اطمینان از نصب آپاچی.
    • Apache را راه اندازی و فعال کنید: استفاده می کند service ماژول برای راه اندازی و فعال کردن سرویس آپاچی.
    • استقرار یک Index.html سفارشی: استفاده می کند copy ماژول برای استقرار یک فایل index.html سفارشی در فهرست اصلی وب سرور. این mode: 0644 اطمینان حاصل می کند که فایل دارای مجوزهای صحیح است.

4. استقرار پیکربندی خود با Ansible

  ansible all -m ping -i inventory.ini
وارد حالت تمام صفحه شوید

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

در صورت موفقیت آمیز بودن اتصال، باید پاسخ “پنگ” را مشاهده کنید.

  ansible-playbook -i inventory.ini webserver.yml
وارد حالت تمام صفحه شوید

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

خروجی را بررسی کنید تا مطمئن شوید که تمام وظایف با موفقیت انجام شده است.

5. تأیید استقرار

  • دسترسی به وب سرور: یک مرورگر وب باز کنید و به آن بروید http://your_server_ip (آدرس IP سرور خود را جایگزین کنید). شما باید محتوای آن را ببینید index.html فایل مستقر شده توسط Ansible.

چالش های پیش رو

  • ارتباط رد شد: یکی از چالش های رایج این است که هنگام تلاش برای اتصال به سرور راه دور، با خطای «اتصال رد شده است» مواجه شوید. این ممکن است به دلیل تنظیمات فایروال، مسدود شدن پورت SSH یا IP/نام کاربری نادرست سرور باشد.
  • خطاهای مجوز: ممکن است هنگام تلاش برای نصب یا پیکربندی نرم افزار روی سرور راه دور با خطاهای مجوز مواجه شوید. این معمولاً مستلزم تنظیم مجوزها یا استفاده مناسب از sudo است.
  • خطاهای ماژول: ماژول های Ansible گاهی اوقات ممکن است به دلیل وابستگی ها یا مشکلات پیکربندی از کار بیفتند. پیام های خطا را به دقت بررسی کنید و برای عیب یابی با مستندات ماژول مشورت کنید.

بهترین روش ها برای کاربران ویندوز

  • استفاده از زیرسیستم ویندوز برای لینوکس (WSL): از آنجایی که من یک کاربر ویندوز هستم، اوبونتو را از طریق WSL نصب کردم. این یک محیط لینوکس یکپارچه را در ویندوز فراهم می کند و به من اجازه می دهد تا دستورات Ansible را مستقیماً اجرا کنم. این یک گزینه عالی برای کاربران ویندوز است که می خواهند از قدرت Ansible بدون تغییر به یک سیستم کامل لینوکس استفاده کنند.
  • Ansible را روی WSL نصب کنید: همان مراحل نصب را که در راهنما ذکر شده است، دنبال کنید، اما در توزیع WSL خود (به عنوان مثال، اوبونتو).
  • استفاده از Git Bash (اختیاری): در حالی که WSL یک پوسته Bash ارائه می دهد، شما همچنین می توانید از Git Bash برای تجربه Bash آشناتر در ویندوز استفاده کنید. این به ویژه اگر از قبل با Git Bash برای کارهای دیگر راحت هستید مفید است.
  • مدیریت موجودی با ابزار جداگانه (اختیاری): برای محیط های پیچیده با سرورهای متعدد، از ابزارهایی مانند Ansible Tower یا سیستم های مدیریت پیکربندی مانند Puppet یا Chef برای مدیریت موجودی خود استفاده کنید. این ابزارها می توانند فرآیند مدیریت و سازماندهی سرورهای شما را ساده کنند، به خصوص زمانی که شما باید با آنها کار کنید.

نتیجه

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

منابع:

امیدوارم این مقاله مفید بوده باشد. منتظر ماجراهای هیجان انگیز DevOps در روزهای آینده باشید!

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

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

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

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