Trellis
Automatizált WordPress LEMP stack szerverkonfiguráció és deployment Ansible segítségével.
This content is not available in your language yet.
A Trellis egy Ansible-alapú eszköz, amely automatizálja a WordPress szerverek konfigurálását és a deployment folyamatot. A Roots csapat fejleszti, és tökéletesen működik együtt a Bedrock-kal.
Mi a Trellis?
Szekció neve “Mi a Trellis?”A Trellis egy teljes értékű WordPress szerver megoldás:
- LEMP Stack - Linux, Nginx, MariaDB, PHP
- Automatizált konfiguráció - Ansible playbook-ok
- Zero-downtime deployment - Leállás nélküli frissítések
- SSL tanúsítványok - Let’s Encrypt integráció
- Fejlesztői környezet - Vagrant alapú lokális szerver
- Több site támogatás - Egy szerveren több WordPress
- Biztonság - Automatikus biztonsági beállítások
Előfeltételek
Szekció neve “Előfeltételek”Lokális fejlesztéshez
Szekció neve “Lokális fejlesztéshez”- Vagrant >= 2.1.0
- VirtualBox >= 4.3.10
- Ansible (automatikusan települ)
Éles szerverre
Szekció neve “Éles szerverre”- Ubuntu 22.04 vagy 24.04 LTS
- Python 3
- Ansible >= 2.10
Telepítés (macOS)
Szekció neve “Telepítés (macOS)”# Homebrew-velbrew install ansiblebrew install --cask vagrant virtualboxTelepítés (Windows - WSL2)
Szekció neve “Telepítés (Windows - WSL2)”# WSL2-bensudo apt updatesudo apt install ansible python3-pippip3 install ansibleProjekt struktúra
Szekció neve “Projekt struktúra”A Trellis-t a Bedrock mellé kell telepíteni:
projekt/├── trellis/ # Trellis (szerver konfiguráció)│ ├── ansible.cfg│ ├── bin/│ ├── deploy-hooks/│ ├── group_vars/│ │ ├── all/│ │ ├── development/│ │ ├── staging/│ │ └── production/│ ├── hosts/│ ├── roles/│ ├── Vagrantfile│ └── requirements.yml└── site/ # Bedrock (WordPress) ├── composer.json ├── config/ ├── web/ └── ...Telepítés
Szekció neve “Telepítés”1. Trellis CLI telepítése
Szekció neve “1. Trellis CLI telepítése”brew install roots/tap/trellis-cli2. Új projekt létrehozása
Szekció neve “2. Új projekt létrehozása”trellis new projekt-nevecd projekt-neveEz létrehozza a teljes struktúrát Trellis-szel és Bedrock-kal.
3. Meglévő projekthez hozzáadás
Szekció neve “3. Meglévő projekthez hozzáadás”cd projekt-mappatrellis initKonfiguráció
Szekció neve “Konfiguráció”Site beállítások
Szekció neve “Site beállítások”group_vars/development/wordpress_sites.yml:
wordpress_sites: example.com: site_hosts: - canonical: example.test redirects: - www.example.test local_path: ../site multisite: enabled: false ssl: enabled: false provider: self-signed cache: enabled: falsegroup_vars/production/wordpress_sites.yml:
wordpress_sites: example.com: site_hosts: - canonical: example.com redirects: - www.example.com local_path: ../site repo_subtree_path: site branch: main multisite: enabled: false ssl: enabled: true provider: letsencrypt cache: enabled: trueVault (titkosított jelszavak)
Szekció neve “Vault (titkosított jelszavak)”A Trellis Ansible Vault-ot használ az érzékeny adatok titkosítására.
group_vars/production/vault.yml:
vault_mysql_root_password: "szupertitkos_jelszo"
vault_wordpress_sites: example.com: admin_password: "admin_jelszo" env: db_password: "adatbazis_jelszo" auth_key: "generalt_kulcs" secure_auth_key: "generalt_kulcs" logged_in_key: "generalt_kulcs" nonce_key: "generalt_kulcs" auth_salt: "generalt_kulcs" secure_auth_salt: "generalt_kulcs" logged_in_salt: "generalt_kulcs" nonce_salt: "generalt_kulcs"Vault titkosítása
Szekció neve “Vault titkosítása”# Titkosítástrellis vault encrypt production
# Visszafejtés szerkesztésheztrellis vault decrypt production
# Szerkesztés titkosítvatrellis vault edit productionLokális fejlesztés (Vagrant)
Szekció neve “Lokális fejlesztés (Vagrant)”Virtuális gép indítása
Szekció neve “Virtuális gép indítása”cd trellistrellis vm startVagy hagyományosan:
vagrant upHosts fájl beállítása
Szekció neve “Hosts fájl beállítása”A Trellis automatikusan beállítja a hosts fájlt, de manuálisan is hozzáadhatod:
192.168.56.5 example.testVagrant parancsok
Szekció neve “Vagrant parancsok”# VM indításatrellis vm start
# VM leállításatrellis vm stop
# VM újraindításatrellis vm restart
# VM törlésetrellis vm delete
# SSH belépéstrellis vm shellÉles szerver provisionálás
Szekció neve “Éles szerver provisionálás”1. Szerver előkészítése
Szekció neve “1. Szerver előkészítése”Szükséges egy friss Ubuntu 22.04/24.04 szerver root SSH hozzáféréssel.
2. Hosts fájl beállítása
Szekció neve “2. Hosts fájl beállítása”hosts/production:
[production]example.com ansible_host=123.45.67.89
[web]example.com3. Provisionálás futtatása
Szekció neve “3. Provisionálás futtatása”trellis provision productionEz telepíti és konfigurálja:
- Nginx webszervert
- MariaDB adatbázist
- PHP-FPM-et
- Let’s Encrypt SSL-t
- Fail2ban-t
- Tűzfalat (UFW)
- Automatikus frissítéseket
Deployment
Szekció neve “Deployment”Zero-downtime deploy
Szekció neve “Zero-downtime deploy”trellis deploy productionA deployment folyamat:
- Git clone a legújabb kódból
- Composer install
- Shared fájlok linkelése (uploads, .env)
- Nginx reload
- Régi release-ek törlése
Deploy hooks
Szekció neve “Deploy hooks”Egyedi szkriptek futtatása deployment közben:
deploy-hooks/build-before.yml:
- name: Install npm dependencies command: npm ci args: chdir: "{{ deploy_helper.new_release_path }}"
- name: Build assets command: npm run build args: chdir: "{{ deploy_helper.new_release_path }}"Rollback
Szekció neve “Rollback”Probléma esetén visszaállás az előző verzióra:
trellis rollback productionSSL tanúsítványok
Szekció neve “SSL tanúsítványok”Let’s Encrypt (ajánlott)
Szekció neve “Let’s Encrypt (ajánlott)”ssl: enabled: true provider: letsencryptManuális tanúsítvány
Szekció neve “Manuális tanúsítvány”ssl: enabled: true provider: manual cert: ~/certs/example.com.crt key: ~/certs/example.com.keySelf-signed (fejlesztéshez)
Szekció neve “Self-signed (fejlesztéshez)”ssl: enabled: true provider: self-signedTöbb site egy szerveren
Szekció neve “Több site egy szerveren”wordpress_sites: site1.com: site_hosts: - canonical: site1.com # ...
site2.com: site_hosts: - canonical: site2.com # ...PHP konfiguráció
Szekció neve “PHP konfiguráció”group_vars/all/php.yml:
php_version: "8.2"php_memory_limit: "256M"php_max_execution_time: "300"php_upload_max_filesize: "64M"php_post_max_size: "64M"Nginx konfiguráció
Szekció neve “Nginx konfiguráció”group_vars/all/nginx.yml:
nginx_worker_processes: autonginx_worker_connections: 8192nginx_client_max_body_size: "64m"Egyedi Nginx szabályok
Szekció neve “Egyedi Nginx szabályok”roles/wordpress-setup/templates/nginx-includes.d/*.conf.j2:
# Egyedi szabályoklocation /custom-endpoint { # ...}Mail küldés
Szekció neve “Mail küldés”Mailhog (fejlesztéshez)
Szekció neve “Mailhog (fejlesztéshez)”Alapértelmezetten a development környezetben Mailhog fut, amely elkapja az összes kimenő emailt.
Elérhető: http://example.test:8025
SMTP (éles)
Szekció neve “SMTP (éles)”mail_smtp_server: smtp.mailgun.org:587mail_hostname: example.commail_password: "{{ vault_mail_password }}"Biztonsági funkciók
Szekció neve “Biztonsági funkciók”A Trellis automatikusan konfigurálja:
- Fail2ban - Brute force védelem
- UFW tűzfal - Csak szükséges portok nyitva
- SSH hardening - Kulcs alapú belépés, root letiltva
- Automatikus frissítések - Biztonsági patchek
- Nginx hardening - Biztonsági headerek
Hasznos parancsok
Szekció neve “Hasznos parancsok”# Projekt létrehozásatrellis new projekt-neve
# Lokális VMtrellis vm starttrellis vm stoptrellis vm shell
# Provisionálástrellis provision developmenttrellis provision stagingtrellis provision production
# Deploymenttrellis deploy stagingtrellis deploy production
# Rollbacktrellis rollback production
# Vault kezeléstrellis vault encrypt productiontrellis vault decrypt productiontrellis vault edit production
# Galaxy roles frissítésetrellis galaxy install
# SSH belépés szerverretrellis ssh productionRoots Stack együtt
Szekció neve “Roots Stack együtt”A teljes Roots stack együttes használata:
projekt/├── trellis/ # Szerver konfiguráció és deployment└── site/ # Bedrock + Sage ├── composer.json ├── web/ │ └── app/ │ └── themes/ │ └── sage/ # Sage téma Acorn-nal └── ...