Използване на Ansible за инсталиране на WordPress с LAMP

Използване на Ansible за инсталиране и конфигуриране на WordPress с LAMP на Ubuntu

Ако искате автоматизиран и безпроблемен начин за инсталиране на WordPress с LAMP стек на Ubuntu, Ansible е точното решение. Той ви спестява време, намалява грешките и прави процеса повторяем. Тази статия ще ви покаже стъпка по стъпка как да го направите, дори ако сте напълно начинаещи. 🚀


📌 Какво е Ansible?

Ansible е инструмент за автоматизация с отворен код, който ви позволява да управлявате сървъри чрез прости YAML скриптове, наречени playbooks. С Ansible може да:

  • Инсталирате софтуер автоматично 🛠️
  • Конфигурирате услуги 📦
  • Управлявате сървъри без да пишете скриптове на Bash 💡

И най-хубавото? Не се нуждаете от агент на отдалечения сървър. Достатъчен е само SSH достъп. 🔐


📦 Какво ще инсталираме?

Ще автоматизираме инсталацията на WordPress, използвайки класическия LAMP стек:

  • Linux – Ubuntu Server (22.04 LTS се препоръчва) 🐧
  • Apache – уеб сървър 🌐
  • MySQL/MariaDB – база данни 🗄️
  • PHP – език за програмиране на WordPress 🧠

🧪 Предварителни изисквания

Преди да започнете, трябва да имате:

✅ Един контролен компютър (може да е вашият лаптоп) с инсталиран Ansible
✅ Един или повече отдалечени сървъри с Ubuntu, достъпни чрез SSH
✅ Потребител с sudo права на отдалечения сървър
✅ Основни познания по работа с терминал


🔧 Стъпка 1: Инсталиране на Ansible на локалната машина

На Ubuntu или Debian базирана система, изпълнете:

sudo apt update
sudo apt install ansible -y

Проверете дали е инсталиран успешно:

ansible --version

🌍 Стъпка 2: Конфигуриране на инвентарния файл

Ansible използва инвентарен файл, за да знае кои сървъри да управлява.

Създайте файл hosts.ini със следното съдържание:

[webservers]
10.20.20.10 ansible_user=ubuntu ansible_ssh_private_key_file=~/.ssh/id_rsa

Заменете 10.20.20.10 с IP адреса на вашия сървър.


📁 Стъпка 3: Създаване на структура на проекта

Нека създадем основна структура за нашия Ansible проект:

mkdir -p wordpress-ansible/{roles,playbooks}
cd wordpress-ansible

📜 Стъпка 4: Създаване на Playbook

Създайте файл playbooks/install-wordpress.yml със следното съдържание:

---
- name: Инсталиране на WordPress с LAMP
  hosts: webservers
  become: yes
  tasks:
    - name: Обновяване на пакетите
      apt:
        update_cache: yes

    - name: Инсталиране на Apache
      apt:
        name: apache2
        state: present

    - name: Активиране на Apache
      service:
        name: apache2
        state: started
        enabled: yes

    - name: Инсталиране на PHP и нужните модули
      apt:
        name:
          - php
          - php-mysql
          - libapache2-mod-php
          - php-cli
          - php-curl
          - php-gd
          - php-mbstring
          - php-xml
          - php-xmlrpc
        state: present

    - name: Инсталиране на MariaDB
      apt:
        name: mariadb-server
        state: present

    - name: Стартиране и активиране на MariaDB
      service:
        name: mariadb
        state: started
        enabled: yes

    - name: Създаване на база данни за WordPress
      mysql_db:
        name: wordpress
        state: present

    - name: Създаване на потребител за WordPress
      mysql_user:
        name: wpuser
        password: wppassword
        priv: 'wordpress.*:ALL'
        state: present

    - name: Сваляне на WordPress
      get_url:
        url: https://wordpress.org/latest.tar.gz
        dest: /tmp/latest.tar.gz

    - name: Разархивиране на WordPress
      unarchive:
        src: /tmp/latest.tar.gz
        dest: /var/www/html/
        remote_src: yes

    - name: Промяна на права върху директорията
      file:
        path: /var/www/html/wordpress
        owner: www-data
        group: www-data
        recurse: yes

    - name: Копиране на wp-config.php
      template:
        src: templates/wp-config.php.j2
        dest: /var/www/html/wordpress/wp-config.php
        owner: www-data
        group: www-data

🧾 Стъпка 5: Шаблон за wp-config.php

Създайте папка templates и вътре шаблонен файл:

mkdir templates
nano templates/wp-config.php.j2

Съдържание:

<?php
define('DB_NAME', 'wordpress');
define('DB_USER', 'wpuser');
define('DB_PASSWORD', 'wppassword');
define('DB_HOST', 'localhost');
define('DB_CHARSET', 'utf8');
define('DB_COLLATE', '');

$table_prefix = 'wp_';

define('WP_DEBUG', false);

if ( !defined('ABSPATH') )
    define('ABSPATH', dirname(__FILE__) . '/');

require_once(ABSPATH . 'wp-settings.php');

🚀 Стъпка 6: Стартиране на Playbook-а

От основната директория изпълнете:

ansible-playbook -i hosts.ini playbooks/install-wordpress.yml

Ansible ще се свърже към сървъра и ще започне автоматичната инсталация. ⏳

След няколко минути ще имате работещ WordPress на вашия сървър!


🧪 Проверка на инсталацията

След приключване отворете браузъра и въведете:

http://<IP_на_вашия_сървър>/wordpress

📖 Прочетете още: Инсталиране на WordPress с Docker Compose с предварително конфигуриран php.ini

Ще видите началната инсталационна страница на WordPress. 🎉

начална инсталационна страница на WordPress

След това изберете желания от вас език и натиснете „ Продължи“ . Ще видите следващия екран, който ще ви подкани да въведете някои подробности за завършване на инсталацията, като : име на сайт, потребител и парола.

🧰 Допълнителни подобрения

Ansible ви дава възможност да:

  • Инсталирате SSL сертификати с Let's Encrypt 🔒
  • Настроите автоматични резервни копия 💾
  • Създавате роли за многократна употреба 🔁

Например, може да разделите задачите в роли: apache, php, mysql, wordpress. Това прави проекта по-организиран и мащабируем.


🛡️ Съвети за сигурност

  • Сменете паролите за базата данни и администраторския WordPress потребител
  • Деактивирайте root логина през SSH
  • Инсталирайте защитна стена (например ufw)
  • Редовно актуализирайте системата

❓ Защо да използвате Ansible за WordPress?

🔁 Автоматизация: Винаги можете да пресъздадете средата само с една команда
🧹 Чистота: Без ръчни команди, без пропуски
🚀 Скорост: Инсталацията отнема по-малко от 5 минути
🔐 Сигурност: Повтаряемите процеси намаляват човешките грешки


📚 Полезни ресурси


📌 Заключение

С Ansible инсталацията и конфигурацията на WordPress с LAMP на Ubuntu става бърза, лесна и професионална. Без значение дали сте начинаещ или имате малко опит, този подход ще ви спести време и ще повиши качеството на вашия проект. 🧑‍💻💪

Не се страхувайте да експериментирате. Създайте си свои роли, оптимизирайте процеса и разширявайте знанията си. 🌱


Споделете тази статия, ако ви е била полезна – така помагате и на други да открият силата на Ansible! 🙌

Федя Серафиев

Федя Серафиев

Федя Серафиев e собственик на уебсайта urocibg.eu. Той намира удовлетворение в това да помага на хората да решават и най-сложните технически проблеми. Сегашната му цел е да пише лесни за следване статии, така че подобни проблеми изобщо да не възникват.

Благодарим ви за прочитането на статията! Ако намерихте информацията за полезна, можете да дарите посредством бутоните по-долу: