مقدمه اتوماسیون سرور مجازی اکنون به دلیل ماهیت یکبار مصرف محیطهای کاربردی مدرن ، نقش اساسی در مدیریت سیستمها ایفا میکند. ابزارهای مدیریت پیکربندی مانند Ansible معمولاً برای ساده سازی فرایند خودکار سازی تنظیم سرور مجازی با تعیین مراحل استاندارد برای سرور مجازی جدید استفاده میشود و در عین حال خطای انسانی مرتبط با تنظیمات دستی را نیز کاهش میدهد. Ansible یک معماری ساده را ارائه میدهد که نیازی به نصب نرم افزار ویژه روی گرهها ندارد. همچنین مجموعهای از ویژگیها و ماژولهای داخلی را فراهم میکند که نوشتن اسکریپتهای اتوماسیون را تسهیل میکند. در این راهنما نحوه استفاده از Ansible برای خودکارسازی مراحل موجود در راهنمای ما درباره نحوه نصب وردپرس با LAMP در اوبونتو 18.04 توضیح داده شده است. وردپرس محبوب ترین CMS (سیستم مدیریت محتوا) در اینترنت است که به کاربران امکان میدهد وبلاگها و وب سایتهای قابل انعطاف را فراتر از MySQL با پردازش PHP تنظیم کنند. پس از راه اندازی ، تقریباً تمام مراحل اجرا از طریق web frontend قابل انجام است. پیش نیازها برای اجرای تنظیم خودکار ارائه شده توسط playbook که در این راهنما در مورد آن صحبت میکنیم ، به این موارد نیاز دارید: • یک گره کنترل Ansible : یک دستگاه اوبونتو 18.04 که دارای Ansible نصب شده و تنظیم شده است تا با استفاده از کلیدهای SSH به میزبانهای Ansible شما متصل شود. اطمینان حاصل کنید که گره کنترل دارای یک کاربر معمولی با مجوزهای sudo باشد و فایروال فعال نیز داشته باشد ، همانطور که در راهنمای راه اندازی سرور مجازی اولیه ما توضیح داده شده است. برای تنظیم Ansible ، لطفا راهنمای ما در مورد نحوه نصب و پیکربندی Ansible در اوبونتو 18.04 را دنبال کنید. • یک یا چندهاست Ansible: یک یا چند سرور مجازی از راه دور Ubuntu 18.04 که قبلاً به کمک راهنمای نحوه استفاده از Ansible برای خودکارسازی تنظیمات اولیه سرور مجازی در اوبونتو 18.04 تنظیم شده اند. قبل از ادامه کار ، ابتدا باید اطمینان حاصل کنید که گره کنترل Ansible شما قادر به اتصال و اجرای دستورات درهاست (های) Ansible باشد. برای بررسی اتصال ، لطفاً مرحله 3 نحوه نصب و پیکربندی Ansible در اوبونتو 18.04 را بررسی کنید. این Playbook چه کاری انجام میدهد؟ این playbook Ansible از طریق روشی که در راهنمای ما در مورد نحوه نصب وردپرس با LAMP در اوبونتو 18.04 ارائه شده است ، جایگزینی برای اجرای دستی فراهم میکند. اجرای این playbook اقدامات زیر را درهاست Ansible شما انجام خواهد داد: 1) aptitude را نصب میکند ، که توسط Ansible به عنوان جایگزینی برای مدیر بسته apt ارجحیت داده میشود. 2)بستههای LAMP مورد نیاز و پسوندهای PHP را نصب میکند. 3) یک Apache VirtualHost جدید برای وب سایت وردپرس ایجاد و فعال مینماید. 4) ماژول بازنویسی Apache (mod_rewrite) را فعال میکند. 5) وب سایت پیش فرض Apache را غیرفعال میکند. 6) رمز ورود را برای کاربر root MySQL تنظیم میکند. 7) حسابهای MySQL ناشناس را حذف و پایگاه داده را آزمایش میکند. 8) برای وب سایت وردپرس یک بانک اطلاعاتی MySQL و کاربر جدید ایجاد میکند. 9)UFW را تنظیم میکند تا ترافیک HTTP روی درگاه پیکربندی شده انجام شود (به طور پیش فرض 80). 10) وردپرس را دانلود و باز میکند. 11) مالکیت و مجوزهای صحیح دایرکتوری را تنظیم میکند. 12) با استفاده از الگوی ارائه شده ، فایل wp-config.php را تنظیم کنید. پس از پایان کار playbook ، بر اساس گزینههایی که در متغیرهای پیکربندی خود تعریف کرده اید ، یک نصب وردپرس در یک محیط LAMP اجرا میشود. نحوه استفاده از این Playbook اولین کاری که ما باید انجام دهیم این است که وردپرس را در playbook LAMP و متعلقات آن از منبع do-community / ansible-playbooks را دریافت کنیم. ما باید این منبع را به یک پوشه محلی در داخل گره کنترل Ansible تبدیل کنیم. اگر قبلا با دنبال کردن راهنمای دیگری ، این منبع را کلون کرده اید ، به کپیansible-playbooks موجود خود دسترسی پیدا کنید و یک دستور git pull را اجرا کنید تا مطمئن شوید که مطالب به روز شده را دارید: ⦁ $ cd ~/ansible-playbooks ⦁ ⦁ $ git pull اگر این اولین بار است که از منابع do-community / ansible-playbooks استفاده میکنید ، باید با کلون کردن منبع در پوشه هوم فولدر خود شروع کنید: ⦁ $ cd ~ ⦁ ⦁ $ git clone https://github.com/do-community/ansible-playbooks.git ⦁ ⦁ $ cd ansible-playbooks فایلهای مورد علاقه ما در داخل پوشه wordpress-lamp_ubuntu1804 قرار گرفته اند که دارای ساختار زیر است: wordpress-lamp_ubuntu1804 ├── files │ ├── apache.conf.j2 │ └── wp-config.php.j2 ├── vars │ └── default.yml ├── playbook.yml └── readme.md در اینجا در مورد هر یک از این فایلها آمده است: files / apache.conf.j2: فایل الگو برای تنظیم Apache VirtualHost. files / wp-config.php.j2: فایل الگو برای تنظیم فایل پیکربندی WordPress. vars / default.yml: فایل متغیر برای شخصی سازی تنظیمات playbook. playbook.yml: فایل playbook ، شامل کارهایی که باید روی سرور مجازی راه دور اجرا شود. readme.md: فایل متنی حاوی اطلاعات مربوط به این playbook . ما برای سفارشی سازی گزینههای playbook ، فایل متغیرهای آن را ویرایش خواهیم کرد. به دایرکتوری wordpress-lamp_ubuntu1804 دسترسی پیدا کنید و فایل vars / default.yml را با استفاده از ویرایشگر خط فرمان مورد نظر خود باز کنید: ⦁ $ cd wordpress-lamp_ubuntu1804 ⦁ ⦁ $ nano vars/default.yml این فایل شامل چند متغیر است که باید به آن توجه کنید: vars/default.yml --- #System Settings php_modules: [ 'php-curl', 'php-gd', 'php-mbstring', 'php-xml', 'php-xmlrpc', 'php-soap', 'php-intl', 'php-zip' ] #MySQL Settings mysql_root_password: "mysql_root_password" mysql_db: "wordpress" mysql_user: "sammy" mysql_password: "password" #HTTP Settings http_host: "your_domain" http_conf: "your_domain.conf" http_port: "80" لیست زیر شامل توضیح مختصری در مورد هر یک از این متغیرها و نحوه تغییر آنها میباشد: php_modules: آرایهای حاوی افزونههای PHP که باید برای پشتیبانی از راه اندازی وردپرس شما نصب شوند. شما نیازی به تغییر این متغیر ندارید ، اما در صورت نیاز برای ستاپ خاص شما، باید افزودنههای جدید به لیست اضافه کنید. mysql_root_password: کلمه عبور مورد نظر برای حساب MySQL ریشه mysql_db: نام پایگاه داده MySQL که باید برای وردپرس ایجاد شود. mysql_user: نام کاربر MySQL که باید برای وردپرس ایجاد شود. mysql_password: رمز عبور برای کاربر جدید MySQL. http_host: نام دامنه شما. http_conf: نام فایل پیکربندی که در Apache ایجاد میشود. http_port: درگاه HTTP برای اینهاست مجازی ، که به طور پیش فرض 80 است. پس از اتمام به روزرسانی متغیرهای داخل vars / default.yml ، این فایل را ذخیره کنید و ببندید. اگر از nano استفاده کرده اید ، این کار را با فشار دادن CTRL + X ، Y انجام دهید. سپس enter را بزنید. اکنون آماده اجرای این playbook در یک یا چند سرور مجازی هستید. بیشتر playbookها به گونه پیش فرض تنظیم شده اند که در هر سرور مجازی موجود شما اجرا میشود. ما میتوانیم از فلگ -l استفاده کنیم تا مطمئن شویم که فقط یک زیر مجموعه از سرور مجازیها یا یک سرور مجازی منفرد تحت تأثیر Playbook قرار گرفته است. ما همچنین میتوانیم از فلگ -u استفاده کنیم تا مشخص کنیم از کدام کاربر روی سرور مجازی از راه دور استفاده میکنیم تا دستورات playbook را روی میزبان از راه دور متصل کنیم. برای اجرای playbook فقط در server1 ، با اتصال به عنوان sammy ، میتوانید از دستور زیر استفاده کنید: ⦁ $ ansible-playbook playbook.yml -l server1 -u sammy ⦁ خروجی مشابه این دریافت خواهید کرد: Output PLAY [all] ***************************************************************************************************************************** TASK [Gathering Facts] ***************************************************************************************************************** ok: [server1] TASK [Install prerequisites] *********************************************************************************************************** ok: [server1] … TASK [Download and unpack latest WordPress] ******************************************************************************************** changed: [server1] TASK [Set ownership] ******************************************************************************************************************* changed: [server1] TASK [Set permissions for directories] ************************************************************************************************* changed: [server1] TASK [Set permissions for files] ******************************************************************************************************* changed: [server1] TASK [Set up wp-config] **************************************************************************************************************** changed: [server1] RUNNING HANDLER [Reload Apache] ******************************************************************************************************** changed: [server1] RUNNING HANDLER [Restart Apache] ******************************************************************************************************* changed: [server1] PLAY RECAP ***************************************************************************************************************************** server1 : ok=22 changed=18 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0 توجه: برای کسب اطلاعات بیشتر در مورد نحوه اجرای Ansible playbooks ، راهنمای Ansible Cheat Sheet Guide را بررسی کنید. پس از پایان راه اندازی Playbook ، میتوانید به مرورگر وب خود بروید تا نصب وردپرس را از همانجا به پایان برسانید. به نام دامنه یا آدرس IP عمومیسرور مجازی خود بروید: http: // server_host_or_IP صفحهای مانند این را مشاهده خواهید کرد: پس از انتخاب زبانی که میخواهید برای نصب وردپرس خود استفاده کنید ، مرحله نهایی برای تنظیم کاربر و رمزعبور وردپرس به شما ارائه میشود تا بتوانید وارد کنترل پنل شوید: با کلیک بر روی صفحه ، شما به صفحهای منتقل میشوید که از شما خواسته میشود وارد شوید: پس از ورود به سیستم ، شما به داشبورد مدیریت وردپرس منتقل میشوید: برخی از مراحل بعدی رایج برای سفارشی سازی نصب وردپرس شامل انتخاب تنظیمات permalinks برای پستهای شما (میتوانید در Settings > Permalinks بیابید) و انتخاب تم جدید (در Appearance > Themes) میباشد. محتوای Playbook میتوانید تنظیمات سرور LAMP وردپرس را که در این آموزش مشاهده شده است ، در پوشه wordpress-lamp_ubuntu1804 در داخل منبع DigitalOcean Community Playbooks مشاهده کنید. برای کپی یا دانلود مستقیم محتوای اسکریپت ، روی دکمه Raw به سمت بالای هر اسکریپت کلیک کنید. محتویات کامل Playbook و همچنین فایلهای مرتبط با آن نیز برای راحتی شما در اینجا گنجانده شده است. vars / default.yml فایل متغیر default.yml حاوی مقادیری است که در وظایف playbook از جمله تنظیمات بانک اطلاعاتی و نام دامنه برای پیکربندی در Apache استفاده خواهد شد. vars/default.yml #System Settings php_modules: [ 'php-curl', 'php-gd', 'php-mbstring', 'php-xml', 'php-xmlrpc', 'php-soap', 'php-intl', 'php-zip' ] #MySQL Settings mysql_root_password: "mysql_root_password" mysql_db: "wordpress" mysql_user: "sammy" mysql_password: "password" #HTTP Settings http_host: "your_domain" http_conf: "your_domain.conf" http_port: "80" files/apache.conf.j2 فایل apache.conf.j2 یک فایل الگوی Jinja 2 است که یک آپشن جدید Apache VirtualHost را پیکربندی میکند. متغیرهای مورد استفاده در این الگو در فایل متغیر vars / default.yml تعریف شده اند. files/apache.conf.j2
مقدمه code-server یک کد مایکروسافت ویژوال استودیو است که روی یک سرور مجازی از راه دور اجرا میشود و مستقیماً از مرورگر شما قابل دسترسی است. این بدان معنی است که میتوانید از دستگاههای مختلف با سیستم عاملهای مختلف استفاده کنید و همیشه یک محیط توسعه مداوم داشته باشید. در این آموزش ، پلت فرم cloud IDE کد سرور مجازی را بر روی دستگاه Ubuntu 18.04 خود تنظیم کرده و آن را در دامنه خود قرار میدهید ، که با Let’s Encrypt ایمن شده است. برای نسخه دقیق تر این آموزش ، به نحوه راه اندازی رمز سرور مجازی Cloud IDE در اوبونتو 18.04 مراجعه کنید. پیش نیازها ⦁ سرور مجازی که اوبونتو 18.04 را اجرا میکند با حداقل 2 گیگابایت حافظه رم ، دسترسی به ریشه و یک حساب سودو و غیر ریشه. میتوانید این کار را با دنبال کردن راهنمای اولیه تنظیم سرور مجازی Ubuntu 18.04 انجام دهید. ⦁ Nginx که روی سرور مجازی شما نصب شده است. برای راهنمایی در مورد نحوه انجام این کار ، مراحل 1 تا 4 نحوه نصب Nginx را در اوبونتو 18.04 مطالعه کنید. ⦁ یک نام دامنه به طور کامل ثبت شده برایهاست کد سرور مجازی ، که به سرور مجازی شما اشاره میکند. در این آموزش از code-server.your-domain استفاده میشود. میتوانید نام دامنه را در Namecheap خریداری کنید ، یکی از آنها را به صورت رایگان در Freenom دریافت کنید ، یا از ثبت دامنه مورد نظر خود استفاده کنید. ⦁ هر دو سابقه DNS زیر برای سرور مجازی شما تنظیم شده اند. برای جزئیات بیشتر در مورد چگونگی اضافه کردن آنها میتوانید این مقدمه را در DigitalOcean DNS دنبال کنید. ⦁ یک پرونده با your-domain که آدرس IP عمومیسرور مجازی شما را نشان میدهد. ⦁ یک پرونده با دامنه www. your-domain که آدرس IP عمومیسرور مجازی شما را نشان میدهد. مرحله 1 - نصب کد سرور مجازی برای ذخیره کلیه دادهها برای کد سرور مجازی ، دایرکتوری زیر را ایجاد کنید: ⦁ $ mkdir ~/code-server به سمت آن جهت دهی کنید: ⦁ $ cd ~/code-server به صفحه نسخههای کد سرور مجازی Github مراجعه کرده و آخرین لینوکس را انتخاب کنید. آن را با استفاده از آدرس زیر دانلود کنید: ⦁ $ wget https://github.com/cdr/code-server/releases/download/2.1692-vsc1.39.2/code-server2.1692-vsc1.39.2-linux-x86_64.tar.gz ⦁ آرشیو را باز کنید: ⦁ $ tar -xzvf code-server2.1692-vsc1.39.2-linux-x86_64.tar.gz ⦁ به دیرکتوری حاوی کد سرور مجازی قابل اجرا بروید: ⦁ $ cd code-server2.1692-vsc1.39.2-linux-x86_64 ⦁ برای دسترسی به کد سرور مجازی قابل اجرا در سیستم خود ، آن را با دستور زیر کپی کنید: ⦁ $ cd code-server2.1692-vsc1.39.2-linux-x86_64 ⦁ پوشهای برای کد سرور مجازی ایجاد کنید تا دادههای کاربر ذخیره شود: ⦁ $ sudo mkdir /var/lib/code-server ⦁ یک سرویس سیستمی، code-server.service ، در دیرکتوری / lib / systemd / system ایجاد کنید: ⦁ $ sudo nano /lib/systemd/system/code-server.service ⦁ خطوط زیر را اضافه کنید: /lib/systemd/system/code-server.service [واحد] توضیحات = سرور مجازی کد پس از = nginx.service [سرویس] نوع = ساده محیط = PASSWORD = کلمه کلیدی شما ExecStart = / usr / local / bin / code-server - host 127.0.0.1 --user-data-dir / var / lib / code-server - رمز ورود راه اندازی مجدد = همیشه [نصب] WantedBy = multi-user.targe /lib/systemd/system/code-server.service [Unit] Description=code-server After=nginx.service [Service] Type=simple Environment=PASSWORD=your_password ExecStart=/usr/local/bin/code-server --host 127.0.0.1 --user-data-dir /var/lib/code-server --auth password Restart=always [Install] WantedBy=multi-user.target --host 127.0.0.1 آن را به localhost متصل میکند. --user-data-dir /var/lib/code-server دایرکتوری دادههای کاربر آن را تنظیم میکند. --auth password مشخص میکند که باید بازدید کنندگانی معتبر با رمز عبور وجود داشته باشند. به یاد داشته باشید که your_password را با رمز عبور دلخواه خود جایگزین کنید. فایل را ذخیره کنید و ببندید. سرویس کد سرور مجازی را شروع کنید: ⦁ $ sudo systemctl start code-server ⦁ بررسی کنید که به درستی شروع شده است: ⦁ $ sudo systemctl status code-server ⦁ خروجی مشابه با زیر مشاهده میکنید: Output ● code-server.service - code-server Loaded: loaded (/lib/systemd/system/code-server.service; disabled; vendor preset: enabled) Active: active (running) since Mon 2019-12-09 20:07:28 UTC; 4s ago Main PID: 5216 (code-server) Tasks: 23 (limit: 2362) CGroup: /system.slice/code-server.service ├─5216 /usr/local/bin/code-server --host 127.0.0.1 --user-data-dir /var/lib/code-server --auth password └─5240 /usr/local/bin/code-server --host 127.0.0.1 --user-data-dir /var/lib/code-server --auth password ... بعد از راه اندازی مجدد سرور مجازی ، سرویس کد سرور مجازی را فعال کنید: ⦁ $ sudo systemctl enable code-server ⦁ مرحله 2 – به نمایش گذاشتن کد سرور مجازی اکنون Nginx را به عنوان یک پروکسی معکوس برای کد سرور مجازی پیکربندی خواهید کرد. برای ذخیره پیکربندی جهت نمایش دادن کد سرور مجازی در دامنه خود ، code-server.conf را ایجاد کنید: sudo nano /etc/nginx/sites-available/code-server.conf خطوط زیر را برای تنظیم بلوک سرور مجازی خود با دستورالعملهای لازم اضافه کنید: /etc/nginx/sites-available/code-server.conf server { listen 80; listen [::]:80; server_name code-server.your_domain; location / { proxy_pass http://localhost:8080/; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection upgrade; proxy_set_header Accept-Encoding gzip; } } code-server.your_domain را با دامنه مورد نظر خود جایگزین کنید ، سپس فایل را ذخیره کنید و ببندید. برای فعال کردن پیکربندی این سایت ، یک سیملینک از آن ایجاد کنید: ⦁ $ sudo ln -s /etc/nginx/sites-available/code-server.conf /etc/nginx/sites-enabled/code-server.conf ⦁ اعتبار پیکربندی را تست کنید: ⦁ $ sudo nginx -t ⦁ خروجی زیر را مشاهده خواهید کرد: Output nginx: the configuration file /etc/nginx/nginx.conf syntax is ok nginx: configuration file /etc/nginx/nginx.conf test is successful برای اجرای پیکربندی ، Nginx را مجدداً راه اندازی کنید: ⦁ $ sudo systemctl restart nginx ⦁ مرحله 3 - دامنه خود را ایمن کنید اکنون دامنه خود را با استفاده از گواهی Let’s Encrypt TLS ایمن میکنید. منبع بسته Certbot را به سرور مجازی خود اضافه کنید: ⦁ $ sudo add-apt-repository ppa:certbot/certbot ⦁ Certbot و افزونه Nginx آن را نصب کنید: ⦁ $ sudo apt install python-certbot-nginx ⦁ ufw را برای پذیرش ترافیک رمزگذاری شده پیکربندی کنید: ⦁ $ sudo ufw allow https ⦁ خروجی به شکل زیر خواهد بود: Output Rule added Rule added (v6) برای پیکربندی برای اجرا مجدد آن را بارگذاری کنید: ⦁ $ sudo ufw reload ⦁ خروجی زیر نشان داده میشود: Output Firewall reloaded به دامنه کد سرور مجازی خود بروید. رمز عبور سرور مجازی کد خود را وارد کنید. مرز نمایش داده شده در دامنه خود را مشاهده خواهید کرد. برای تأمین امنیت آن ، یک مجوز Let’s Encrypt TLS با استفاده از Certbot نصب کنید. برای دامنه خود با دستور زیر درخواست یک مجوز بدهید: ⦁ $ sudo certbot --nginx -d code-server.your_domain ⦁ برای اطلاع رسانیهای فوری یک آدرس ایمیل ارائه دهید ، شرایط خدمات EFF را بپذیرید ، و تصمیم بگیرید که آیا تمام ترافیک HTTP را به HTTPS هدایت کنید یا خیر. خروجی مشابه زیر خواهد بود: Output IMPORTANT NOTES: - Congratulations! Your certificate and chain have been saved at: /etc/letsencrypt/live/code-server.your_domain/fullchain.pem Your key file has been saved at: /etc/letsencrypt/live/code-server.your_domain/privkey.pem Your cert will expire on ... To obtain a new or tweaked version of this certificate in the future, simply run certbot again with the "certonly" option. To non-interactively renew *all* of your certificates, run "certbot renew" ... Certbot با موفقیت گواهینامههای TLS را ایجاد میکند و آنها را در پیکربندی Nginx برای دامنه شما اعمال مینماید. نتیجه اکنون شما دارای کد سرور مجازی ، و یک cloud IDE همه کاره هستید که بر روی سرور مجازی Ubuntu 18.04 نصب شده است ، در دامنه شما قرار گرفته و با استفاده از گواهی نامههای Let’s Encrypt ایمن شده است. برای اطلاعات بیشتر در مورد ویژگیها و دستورالعملهای دقیق در مورد سایر مؤلفههای کد سرور مجازی ، به مطالب ویژوال استودیو کد مراجعه کنید.
نحوه استفاده از Ansible برای نصب و راه اندازی وردپرس با LAMP در اوبونتو 18.04تعداد صفحات : 0