روز 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
اطمینان حاصل می کند که فایل دارای مجوزهای صحیح است.
-
Apache را نصب کنید: استفاده می کند
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 در روزهای آینده باشید!