inmotionhosting.wordpress_ultrastack
Ansible Role: Wordpress UltraStack
This is a simple and modular Ansible Role designed for deploying and setting up WordPress using InMotion's special UltraStack configuration, focused on optimizing performance.
Requirements
Make sure you are using one of the following systems:
- CentOS 7.x or newer
- Debian 9 or newer
- Ubuntu 16.04 LTS or newer
Dependencies
Required Roles
You will need these required roles:
- role: inmotionhosting.apache
- role: inmotionhosting.mysql
- role: inmotionhosting.php_fpm
- role: inmotionhosting.wordpress
- collection: community.general
- collection: ansible.posix
Optional Roles
If you want to use UltraStack
, include these roles as well:
- role: inmotionhosting.nginx_proxy
- role: inmotionhosting.redis
What is UltraStack?
UltraStack is a collection of server settings developed by InMotion Hosting experts, aimed at optimizing server performance for specific content management systems like WordPress.
What is included?
NGINX
NGINX is part of UltraStack and acts as a reverse-proxy and cache, helping your website respond to requests much faster. It uses a short cache time to handle high traffic more effectively and has rules to prevent caching for logged-in users.
PHP-FPM
PHP-FPM stands for FastCGI Process Manager, which is a better way to run PHP. Each PHP-FPM pool acts like an independent installation of PHP, with its own settings and resources.
Redis
Redis stands for Remote Dictionary Server. It speeds up database queries by caching them in the faster memory instead of using the slower hard drive. This makes it easier to handle frequent database requests quickly.
Role Variables
Here are the available variables you can use, along with their default settings (you can also check defaults/main.yml
):
Variable | Definition |
---|---|
use_ultrastack | Enables UltraStack configuration by default. Set to false to skip installing NGINX and Redis. |
use_redis | Turn Redis installation on or off. |
site_domain | The domain you'll use for the service configuration. |
ultrastack_w3tc_settings | Additional settings for W3TC if you're installing on an existing WordPress site. |
nginx_ratelimit_enable | Turns on/off rate limiting for certain paths in NGINX. |
nginx_ratelimit_burst | Sets burst limits for the rate limit zone in NGINX. |
nginx_ratelimit_nodelay | Enables or disables delays for the NGINX rate limit zone. |
nginx_ratelimit_zone | Name for the NGINX rate limit area. |
nginx_ratelimit_paths | Paths that will have rate limiting applied. |
nginx_cache_bypass_paths | Paths that will bypass the cache. |
nginx_cache_purge_enable | Enables cache purging in NGINX when using a specific module. |
nginx_vts_enable | Enables NGINX settings for the VTS module. |
nginx_cache_profile | Loads a pre-set profile for NGINX caching. |
Note: If you're using UltraStack, it’s highly recommended to also use the w3-total-cache
plugin.
Example Playbook
Here's a simple example of how to use it:
- hosts: wordpress_ultrastack
roles:
- role: inmotionhosting.apache
- role: inmotionhosting.mysql
- role: inmotionhosting.php_fpm
- role: inmotionhosting.wordpress
- role: inmotionhosting.wordpress_ultrastack
vars:
use_ultrastack: true
License
The software is licensed under GPLv3.
Author Information
Created by InMotion Hosting
Modular Ansible Role for deploying and configuring WordPress, including InMotion's optimized UltraStack
ansible-galaxy install inmotionhosting.wordpress_ultrastack