نحوه استقرار چندین سایت وردپرس با استفاده از Virtualmin و Ansible در اوبونتو 16.04

استفاده مشترک از سرور مجازی Vultr میزبانی وب سایت های وردپرس است. این راهنما به شما نشان می دهد که چگونه می توانید پیکربندی یک سرور مجازی را از ابتدا (با استفاده از Ansible) خودکار کنید و چندین وب سایت مستقل وردپرس مستقر کنید (با استفاده از Webmin / Virtualmin). Virtualmin / Webmin یک رابط کاربری گرافیکی است که به شما امکان می دهد استقرار چندین اکانت سرور مجازی را در همان دستگاه (کامل با پشته LAMP / LEMP) مدیریت کنید. Virtualmin بسیار شبیه cPanel و Plesk است و در این آموزش از نسخه رایگان GPL استفاده خواهیم کرد. بعد از راه اندازی اولیه سرور Vultr و نصب Virtualmin ، می توانید خیلی سریع چندین سرور مجازی را از درون رابط Virtualmin تنظیم کنید و به طور مستقیم وردپرس را بر روی آن سرور مجازی با نام دامنه خود کامل کنید.

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

پیش نیازها

  • حداقل یک نام دامنه کاملاً واجد شرایط و دسترسی به سوابق DNS
  • یک حساب Vultr

مرحله 1 - نصب جواب در دستگاه محلی خود

Ansible را روی دستگاه محلی یا سرور دیگری نصب کنید.

mkdir ansible
cd ansible
virtualenv env
source env/bin/activate
pip install ansible

مرحله 2 - ایجاد کلیدهای SSH و استقرار سرور

با ورود به سرور خود از طریق SSH ، کارهای مطمئن انجام می شود. دسترسی به SSH امن تر است اگر ما از کلیدها به جای رمز عبور استفاده می کنیم. بیایید ابتدا یک جفت کلید عمومی و خصوصی تولید کنیم.

mkdir ssh_keys
ssh-keygen -t rsa -b 2048 -f ./ssh_keys

در ssh_keysدایرکتوری اکنون دو پرونده وجود دارد ، ssh_keysو ssh_keys.pub. ssh_keysپرونده کلید خصوصی شماست و باید ایمن باشد. اکنون می توانید ssh_keys.pubکلید عمومی را باز کنید.

وارد داشبورد وب Vultr شوید و کلیک کنید Deploy New Server.

یک منطقه ، نوع سرور (اوبونتو 16.04) ، اندازه سرور و سپس در قسمت 6 ( SSH keys) را انتخاب کنید Add New. در صفحه بعد کلید عمومی خود را بچسبانید و نام آن را بگذارید ، کلیک کنید Add SSH key. در آخر اطمینان حاصل کنید که کلید انتخاب شده است و کلیک کنید Deploy now.
بعد از پایان کار ، سرور آدرس شما را نشان می دهد. باید وارد سرور DNS نام دامنه خود شوید و به این آدرس اشاره کنید.

مرحله 3 - یک پیکربندی اساسی Ansible ایجاد کنید

پرونده های اتوماسیون Ansible نامیده می شوند roles. ابتدا ساختار دایرکتوری (درون ansibleدایرکتوری که تازه در مرحله 1 ایجاد کرده اید) و فایل های اصلی را تنظیم خواهیم کرد.

mkdir -p group_vars roles/common/tasks/ roles/common/handlers
touch hosts group_vars/all deploy.yml roles/common/handlers/main.yml

hostsپرونده را ویرایش کنید تا حاوی موارد زیر باشد و ip addressسروری را که شما ایجاد کرده اید جایگزین کنید. Ansible از پایتون 2 استفاده می کند ، که اوبونتو 16.04 به طور پیش فرض آن را نصب نکرده است. در hostsپرونده ما به Ansible می گوییم از پایتون 3 استفاده کنیم.

[common]  
192.0.2.1 ansible_python_interpreter=/usr/bin/python3

deploy.ymlپرونده را ویرایش کنید تا شامل موارد زیر باشد. ما قصد داریم از rootکاربر استفاده کنیم .

- name: apply common configuration to server
  hosts: all
  user: root
  roles:
    - common

/group_vars/allپرونده را ویرایش کنید تا شامل موارد زیر باشد. این متغیرها به مکانهای کلیدهای SSH ، پارامترهای پرونده مبادله ، نام دامنه کاملاً واجد شرایط و رمز عبور root ، به Ansible می گویند. لطفاً به یاد داشته باشید که این پرونده را در کنترل منبع درج نکنید زیرا در متن واضح شامل رمزعبور خود است.

ssh_dir: ./ssh_keys
swap_file_path: /swapfile
swap_file_size: 1G
swappiness: 1
hostname: example.com
new_password: YOUR_PASSWORD_HERE

common/handlers/main.ymlپرونده را ویرایش کنید تا شامل موارد زیر باشد.

- name: restart sshd
  service: name=ssh state=restarted

مرحله چهارم - وظایف قابل اعتماد را برای تنظیم سرور اصلی ایجاد کنید

اگر ما آن را به وظایف تقسیم کنیم ، درک خودکار از آن آسانتر است. بیایید برای هر یک از وظایف خود در فرآیند ، پرونده ایجاد کنیم.

cd roles/common/tasks
touch hosts main.yml setup.yml users.yml ufw.yml swap.yml virtualmin.yml

main.yml باید به هر پرونده حاوی دستورات Ansible اشاره کند ، بنابراین آن را ویرایش کنید تا شامل موارد زیر باشد.

- include: setup.yml
- include: users.yml
- include: ufw.yml
- include: swap.yml
- include: virtualmin.yml

اولین قدم برای تنظیم سرور جدید ، بروزرسانی حافظه پنهان بارگذاری مجدد و تنظیم منطقه زمانی است. common/handlers/setup.ymlپرونده را ویرایش کنید تا شامل موارد زیر باشد.

- apt: update_cache=yes
  sudo: yes

- name: set timezone to Europe/London
  timezone:
    name: Europe/London

اکنون یک رمزعبور به کاربر روت داده می شویم (که به آن نیاز داریم تا به رابط وب مجازی دسترسی پیدا کنیم) ، اما ورود رمز عبور را از طریق SSH غیرفعال کنید (از آنجا که ما از روش تأیید اعتبار کلیدهای امن تر استفاده می کنیم). ویرایش کنید users.ymlتا شامل موارد زیر باشد.

- name: Change passwd
  user: name=root password={{ new_password | password_hash('sha512') }} update_password=always

- name: Disable SSH password login
  lineinfile: dest=/etc/ssh/sshd_config regexp="^#?PasswordAuthentication" line="PasswordAuthentication no"
  notify: restart sshd

برای امنیت ، به فایروال نیاز داریم. ما از فایروال بدون عارضه استفاده خواهیم کرد تا به SSH اجازه دسترسی به پورت 22، دسترسی به وب به درگاه 80و دسترسی ایمن به وب درگاه را بدهیم 443. ufw.ymlپرونده را ویرایش کنید تا شامل موارد زیر باشد.

- name: Set default firewall policy to deny all
  become: True
  ufw: state=enabled direction=incoming policy=deny
  tags: firewall

- name: enable SSH in firewall
  ufw: rule=allow port=22
  sudo: yes

- name: enable HTTP connections for web server
  ufw: rule=allow port=80
  sudo: yes

- name: enable HTTPS connections for web server
  ufw: rule=allow port=443
  sudo: yes

- name: enable firewall
  ufw: state=enabled
  sudo: yes

در صورت اختیاری ، می توانید یک پرونده مبادله نیز درج کنید. این امر ضروری است اگر سرور شما کمتر از 2 گیگابایت رم داشته باشد تا از خرابی حافظه خودداری شود. ویرایش کنید swap.ymlتا شامل موارد زیر باشد.

- name: Set swap_file variable
  set_fact:
    swap_file: "{{swap_file_path}}"
  tags:
    - swap.set.file.path

- name: Check if swap file exists
  stat:
    path: "{{swap_file}}"
  register: swap_file_check
  tags:
    - swap.file.check

- name: Create swap file
  command: fallocate -l {{swap_file_size}} {{swap_file}}
  when: not swap_file_check.stat.exists
  tags:
    - swap.file.create

- name: Change swap file permissions
  file: path="{{swap_file}}"
        owner=root
        group=root
        mode=0600
  tags:
    - swap.file.permissions

- name: Format swap file
  sudo: yes
  command: "mkswap {{swap_file}}"
  when: not swap_file_check.stat.exists
  tags:
    - swap.file.mkswap

- name: Write swap entry in fstab
  mount: name=none
         src={{swap_file}}
         fstype=swap
         opts=sw
         passno=0
         dump=0
         state=present
  tags:
    - swap.fstab

- name: Turn on swap
  sudo: yes
  command: swapon -a
  when: not swap_file_check.stat.exists
  tags:
    - swap.turn.on

- name: Set swappiness
  sudo: yes
  sysctl:
    name: vm.swappiness
    value: "{{swappiness}}"
  tags:
    - swap.set.swappiness

مرحله 5 - وظیفه Ansible را برای راه اندازی virtualmin اضافه کنید

Virtualmin پرونده نصب خود را دارد که توسط Ansible قابل بارگیری و اجرای آن است. در اینجا ما از حداقل نصب ( LINK) استفاده می کنیم. موارد اضافی پیکربندی رمز عبور سرور MySQL است که هنگام نصب توسط Virtualmin تنظیم نشده است. ما باید قبل از تغییر رمز ورود ، MySQL را بطور موقت متوقف کنیم و فهرست تأیید اعتبار را اضافه کنیم. ویرایش کنید virtualmin.ymlتا شامل موارد زیر باشد.

- name: download virtualmin install script
  get_url: >
    url=http://software.virtualmin.com/gpl/scripts/install.sh
    dest=/root/install.sh
    mode=0755

- name: virtualmin install (takes around 10 mins) you can see progress using $ sudo tail -f /root/virtualmin-install.log
  tags: non-idem
  shell: ~/install.sh --force --hostname {{ hostname }} --minimal --yes
  args:
    chdir: /root

- name: temp stop mysql
  service:
    name: mysql
    state: stopped

- name: change owner (and group) of mysqld dir
  file:
    path: "/var/run/mysqld"
    state: directory
    owner: mysql
    group: mysql

- name: virtualmin set mysql password
  shell: virtualmin set-mysql-pass --user root --pass {{ new_password }}

- name: restart mysql
  service:
    name: mysql
    state: started

اکنون نقش Ansible به پایان رسیده است و ما آماده اعزام هستیم.

مرحله 6 - نصب را با Ansible انجام دهید

از پوشه ansible ، اکنون می توانیم دستور زیر را به سادگی اجرا کنیم ، و Ansible تمام کارهایی را که ایجاد کرده ایم به طور خودکار انجام می دهد. اولین باری که وصل می شوید ، یک هشدار کلیدی SSH دریافت می کنید ، " yes" سریعاً تایپ کنید.

ansible-playbook deploy.yml --private-key=ssh_keys/ssh_keys -i hosts

اگر می خواهیم از سرور دیگری استفاده کنیم ، می توانیم به راحتی آدرس IP را در پرونده هاست تغییر داده و دوباره آن دستور را اجرا کنیم تا دقیقاً همان تنظیمات را تکمیل کنیم.

مرحله 7 - جادوگر بعد از نصب Virtualmin

نصب کامل است و اکنون می توانیم به آن برویم https://192.0.2.1:10000(از آدرس ip سرور شما استفاده کنید). مرورگر شما یک هشدار امنیتی را صادر می کند زیرا گواهی نامه به صورت خود امضا شده است ، بنابراین advancedیک استثنا را کلیک کنید و اضافه کنید شما با یک صفحه ورود به سیستم به شما ارائه می دهیم نام کاربری است rootو رمز عبور همان شخصی است که group_vars/allدر مرحله 3 وارد پرونده می شوید. اولین باری که وارد Virtualmin می شوید با ویزارد بعد از نصب ارائه می شود. می توانید این تنظیمات را بصورت دستی طی کرده یا cancelبرای پذیرش پیش فرض کلیک کنید .

مرحله 8 - ایجاد سرور و نصب وردپرس

برای دریافت و راه اندازی اولین سرور وردپرس خود ، از داشبورد Virtualmin کلیک کنید Create Virtual Server. باید یک نام دامنه ، توضیحات و رمز ورود سرپرستان وارد کنید. نام دامنه باید با نام دامنه کاملاً واجد شرایط Virtualmin متفاوت باشد ، و شما باید رکورد DNS را به آدرس IP سرور خود نشان دهید.

کلیک کنید Create Server. پس از پایان کار Virtualmin ، ایجاد سرور خود ، روی Install Scriptsمنوی سمت چپ کلیک کنید . را انتخاب کنید Wordpress، کلیک کنید Show install optionsو در صفحه زیر مکان نصب وردپرس را انتخاب کنید. فقط انتخاب At top levelو کلیک کنید Install Now.

این تنها کاری است که شما باید انجام دهید - می توانید با مراجعه به آدرس خود http://example.net/wp-admin/install.php(که example.netاین نام دامنه سرورهای مجازی کجاست ) نصب وردپرس را انجام دهید . اگر سوابق DNS شما هنوز پخش نشده اند می توانید Services > Preview Websiteاز منوی Virtualmin به آن بروید .

شما می توانید این مرحله را چندین بار تکرار کنید تا چندین سایت وردپرس همه در یک سرور Vultr ایجاد شود.



WordPress را در OpenBSD 6.2 نصب کنید

WordPress را در OpenBSD 6.2 نصب کنید

مقدمه WordPress سیستم مدیریت محتوای غالب در اینترنت است. این قدرت همه چیز را از بلاگ ها گرفته تا وب سایت های پیچیده و دارای محتوای پویا انجام می دهد

وبلاگ Ghost v1.0.0 را در Ubuntu 16.04 نصب و پیکربندی کنید

وبلاگ Ghost v1.0.0 را در Ubuntu 16.04 نصب و پیکربندی کنید

Ghost یک پلتفرم انتشار مدرن و منبع باز است که در Node.js با یک مشتری مدیر Ember.js ، یک API JSON و یک API با مضمون ساخته شده توسط Handlebars.js ساخته شده است. غوس

نحوه استقرار Ghost v0.11 LTS در اوبونتو 16.04

نحوه استقرار Ghost v0.11 LTS در اوبونتو 16.04

با استفاده از یک سیستم متفاوت؟ Ghost یک پلتفرم وبلاگ نویسی منبع باز است که از سال 201 خود محبوبیت زیادی بین توسعه دهندگان و کاربران عادی پیدا کرده است

نحوه استقرار Ghost در Debian 8.7

نحوه استقرار Ghost در Debian 8.7

با استفاده از یک سیستم متفاوت؟ Ghost یک پلتفرم وبلاگ نویسی منبع باز است که از زمان انتشار 2013 خود محبوبیت زیادی بین توسعه دهندگان و کاربران عادی پیدا می کند. من

نحوه نصب Dotclear در Debian 9 (کشش)

نحوه نصب Dotclear در Debian 9 (کشش)

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

نصب CMS Fork در CentOS 7

نصب CMS Fork در CentOS 7

با استفاده از یک سیستم متفاوت؟ Fork یک CMS منبع باز است که به زبان PHP نوشته شده است. کد منبع Forks در GitHub میزبانی شده است. این راهنما نحوه نصب Fork CM را به شما نشان می دهد

نحوه نصب typesetter CMS در CentOS 7

نحوه نصب typesetter CMS در CentOS 7

Typesetter یک CMS منبع باز است که به زبان PHP نوشته شده است و بر سهولت استفاده با ویرایش True WYSIWYG و ذخیره سازی فایل های مسطح متمرکز است. در این مقاله ، ما نصب خواهیم کرد

راه اندازی بستر نشر حرفه ای Ghost در OpenBSD 6

راه اندازی بستر نشر حرفه ای Ghost در OpenBSD 6

Ghost جدیدترین و بزرگترین راهپیمایی وردپرس برای رقیب است. توسعه موضوع سریع و آسان برای یادگیری است زیرا توسعه دهندگان Ghost تصمیم گرفتند از هر دو استفاده کنند

نحوه نصب MODX Revolution روی یک FAMP VPS FreeBSD 11

نحوه نصب MODX Revolution روی یک FAMP VPS FreeBSD 11

با استفاده از یک سیستم متفاوت؟ MODX Revolution یک سیستم مدیریت محتوای محتوای سریع و انعطاف پذیر ، مقیاس پذیر ، متن باز است که به زبان PHP نوشته شده است. من

نحوه نصب MODX Revolution بر روی یک VPS Fedora 26 LAMP

نحوه نصب MODX Revolution بر روی یک VPS Fedora 26 LAMP

با استفاده از یک سیستم متفاوت؟ MODX Revolution یک سیستم مدیریت محتوای محتوا (CMS) سریع ، انعطاف پذیر ، مقیاس پذیر ، آزاد و منبع آزاد است.

نحوه نصب MODX Revolution روی یک CentOS 7 LAMP VPS

نحوه نصب MODX Revolution روی یک CentOS 7 LAMP VPS

با استفاده از یک سیستم متفاوت؟ MODX Revolution یک سیستم مدیریت محتوای محتوا (CMS) سریع ، انعطاف پذیر ، مقیاس پذیر ، آزاد و منبع آزاد است.

ایجاد یک وبلاگ جکیل در CentOS 7

ایجاد یک وبلاگ جکیل در CentOS 7

با استفاده از یک سیستم متفاوت؟ جکیل جایگزین خوبی برای وردپرس است. به هیچ پایگاه داده ای احتیاج ندارد و با زبانی کار می کند که بسیاری از آنها با شوخ طبعی آشنا هستند

اجرای WordPress در OpenBSD 6.5 با OpenBSDs HTTPD

اجرای WordPress در OpenBSD 6.5 با OpenBSDs HTTPD

مقدمه هرچه OpenBSD را نصب خود را به طور پیش فرض و بدون بسیاری از بسته های اضافه شده نزدیک تر کنید ، امنیت بیشتری خواهد داشت. در حالی که بیشتر

نحوه استقرار Ghost v0.11 LTS در Debian 8

نحوه استقرار Ghost v0.11 LTS در Debian 8

با استفاده از یک سیستم متفاوت؟ Ghost یک پلتفرم وبلاگ نویسی منبع باز است که از سال 201 خود محبوبیت زیادی بین توسعه دهندگان و کاربران عادی پیدا کرده است

نصب CMS Fork در Debian 9

نصب CMS Fork در Debian 9

با استفاده از یک سیستم متفاوت؟ Fork یک CMS منبع باز است که به زبان PHP نوشته شده است. کد منبع Forks در GitHub میزبانی شده است. این راهنما نحوه نصب Fork CM را به شما نشان می دهد

نحوه استقرار Ghost در اوبونتو 16.04

نحوه استقرار Ghost در اوبونتو 16.04

با استفاده از یک سیستم متفاوت؟ Ghost یک پلتفرم وبلاگ نویسی منبع باز است که از زمان انتشار 2013 خود محبوبیت زیادی بین توسعه دهندگان و کاربران عادی پیدا می کند. من

نحوه نصب Neos CMS در CentOS 7

نحوه نصب Neos CMS در CentOS 7

Neos یک سیستم مدیریت محتوای منبع باز است که برای ایجاد و ویرایش محتوای آنلاین عالی است. نئو با توجه به نویسندگان و سردبیران

نصب CMS Fork در Fedora 28

نصب CMS Fork در Fedora 28

با استفاده از یک سیستم متفاوت؟ Fork یک CMS منبع باز است که به زبان PHP نوشته شده است. کد منبع Forks در GitHub میزبانی شده است. این راهنما نحوه نصب Fork CM را به شما نشان می دهد

نحوه استقرار Ghost v0.11 LTS در CentOS 7.3

نحوه استقرار Ghost v0.11 LTS در CentOS 7.3

با استفاده از یک سیستم متفاوت؟ Ghost یک پلتفرم وبلاگ نویسی منبع باز است که از سال 201 خود محبوبیت زیادی بین توسعه دهندگان و کاربران عادی پیدا کرده است

نحوه نصب MODX Revolution روی Debian 9 LAMP VPS

نحوه نصب MODX Revolution روی Debian 9 LAMP VPS

با استفاده از یک سیستم متفاوت؟ MODX Revolution یک سیستم مدیریت محتوای محتوا (CMS) سریع ، انعطاف پذیر ، مقیاس پذیر ، آزاد و منبع آزاد است.

نحوه نصب بستر سبد خرید LiteCart در اوبونتو 16.04

نحوه نصب بستر سبد خرید LiteCart در اوبونتو 16.04

LiteCart یک بستر سبد خرید آزاد و منبع باز است که به زبان های PHP ، jQuery و HTML 5 نوشته شده است. این نرم افزار ساده ، سبک و با کاربرد آسان است.

نحوه نصب Anchor CMS بر روی یک VPS Fedora 26 LAMP

نحوه نصب Anchor CMS بر روی یک VPS Fedora 26 LAMP

با استفاده از یک سیستم متفاوت؟ Anchor CMS یک سیستم مدیریت محتوا (CMS) بسیار ساده و بسیار سبک ، بسیار آزاد و آزاد است.

اشتراک NFS را در Debian تنظیم کنید

اشتراک NFS را در Debian تنظیم کنید

NFS یک سیستم فایل مبتنی بر شبکه است که به رایانه ها اجازه می دهد تا از طریق شبکه رایانه ای به فایلها دسترسی پیدا کنند. این راهنما توضیح می دهد که چگونه می توانید پوشه ها را روی NF قرار دهید

نحوه بروزرسانی CentOS 7 ، Ubuntu 16.04 و Debian 8

نحوه بروزرسانی CentOS 7 ، Ubuntu 16.04 و Debian 8

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

نحوه نصب Matomo Analytics در Fedora 28

نحوه نصب Matomo Analytics در Fedora 28

با استفاده از یک سیستم متفاوت؟ Matomo (سابقا پیویک) یک بستر تحلیلی منبع باز است ، یک جایگزین باز برای Google Analytics. منبع Matomo میزبان o

یک سرور TeamTalk را در لینوکس تنظیم کنید

یک سرور TeamTalk را در لینوکس تنظیم کنید

TeamTalk یک سیستم کنفرانس است که به کاربران امکان می دهد مکالمات صوتی / تصویری با کیفیت بالا ، چت متنی ، انتقال فایل ها و صفحه های به اشتراک بگذارند. من

با استفاده از کلید SSH خود برای ورود به کاربران غیر ریشه استفاده کنید

با استفاده از کلید SSH خود برای ورود به کاربران غیر ریشه استفاده کنید

Vultr یک ویژگی را فراهم می کند که به شما امکان می دهد با ایجاد یک نمونه جدید ، کلیدهای SSH را از قبل نصب کنید. این اجازه می دهد تا به کاربر root دسترسی داشته باشید ، با این حال ، th

نحوه نصب انجمن NodeBB در FreeBSD 12

نحوه نصب انجمن NodeBB در FreeBSD 12

با استفاده از یک سیستم متفاوت؟ NodeBB یک نرم افزار انجمن مبتنی بر Node.js است. از سوکت های وب برای تعامل فوری و اعلامیه های زمان واقعی استفاده می کند. NodeB

نصب و راه اندازی ZNC در اوبونتو

نصب و راه اندازی ZNC در اوبونتو

ZNC یک پیشرانه پیشرفته شبکه IRC است که تمام وقت بهم متصل می شود تا مشتری IRC بتواند بدون از دست دادن جلسه گپ قطع یا وصل شود.

نحوه نصب Ranger Terminal File Manager در لینوکس

نحوه نصب Ranger Terminal File Manager در لینوکس

رنجر یک مدیر فایل مبتنی بر خط فرمان است که دارای کلیدهای اتصال VI است. این برنامه یک رابط لعنتی مینیمالیستی و زیبا با نمای سلسله مراتب فهرست ارائه می دهد