HomeTutorialsHow To Install and Set Up WordPress with Ansible

How To Install and Set Up WordPress with Ansible

WordPress is considered one of the best and easiest content management system (CMS) tools. It doesn’t require any coding skills and web-developing skills to get started with WordPress. There are many ways to install the WordPress CMS on a server to localhost, and some of them are easy, and others are a bit trickier. You can set up WordPress with Ansible despite the conventional method of installing WordPress and other CMS applications. Moreover, Ansible is available for Windows, Mac, and Linux.

Set Up WordPress with Ansible


Ansible can help you to automate your server-level tasks on multiple platforms to reduce repetitive tasks. The Ansible tool is written in Python, PowerShell, Shell, Ruby programming language, and it is licensed under the GNU General Public License. For setting up WordPress with Ansible, we will use the Playbook program for executing Ansible applications.

Installing the PHP LAMP server is required for installing WordPress with Ansible, so if you don’t have the LAMP stack installed on your system, please go through this post to learn about the LAMP stack installation on the Ubuntu system. In this post, we will see how to install the Ansible tool on Ubuntu and set up WordPress on the machine with Ansible. 

Step 1: Install Ansible on Ubuntu System


Installing the Ansible tool on Linux is easy and straightforward. If you’re using a Ubuntu desktop, please make sure that you have the SSH connection to your server. Now, run the following commands on the terminal shell to install the Ansible tool on your machine.

Here, we will need the general knowledge of Git, Php server, MySQL, and basic knowledge about Linux. First, we will need to make sure that we have the Ansible tool installed on our Ubuntu system. 

The following commands will add the PPA repository of Ansible on your machine. After pulling the PPA, update your repository and run the aptitude command on the shell with root privilege to install Ansible on the machine. 

set up WordPress with Ansible

sudo apt-add-repository ppa:ansible/ansible
sudo apt update
sudo apt install ansible

Step 2: Configure Ansible on Ubuntu Linux


Now, since we will use the Ansible Playbook tool to set up WordPress, we will configure the Hosts file to address the server location. Please execute the command given below to edit the Ansible host script. Please note that the Ansible host file is also called the inventory file since it stores the server location path.

sudo nano /etc/ansible/hosts

When the script opens up, you may now enter your server name and the IP address on the file. After writing the address, save the file and close the script. You can also perform the same Host file configuring task by creating your own directory through the terminal shell. Now, put your server IP in the script and save the file.

mkdir ansible-demo
cd ansible-demo
~/ansible-demo# touch hosts
~/ansible-demo# gedit hosts

host edit on set up WordPress with Ansible

The following Host configuration script defines the server details along with the server name and IP addresses. The last part of the script declares the Python3 interpreter for the server-end user so that it can be accessed through any Ubuntu machine that doesn’t even have the Python3 installed.

[servers]
server1 ansible_host=203.0.113.111
server2 ansible_host=203.0.113.112
server3 ansible_host=203.0.113.113

[all:vars]
ansible_python_interpreter=/usr/bin/python3

Step 3: Pull WordPress with Playbook on Ubuntu Linux


When the Ansible installation and the host file configuring end up, we will not use the Git repository for pulling the Ansible playbook. In Linux, a playbook is a daemon-type tool for Ansible that handles all the tasks of Ansible and helps you to automate the Ansible tasks. Later, we will use Playbook to set up WordPress with Ansible.

If you’re installing Ansible on your Ubuntu machine for the first time, please create a dedicated directory for playbook inside /etc/ directory so that it can be integrated with the PHP server.

# mkdir /etc/ansible/playbooks

Now, browse the Ansible playbook folder and export the Git repository for Ansible on your Ubuntu system for setting up WordPress.

cd ~/ansible-playbooks
git pull

If you don’t have any Git pulled on your machine for Ansible Playbook, you might need to clone the Playbook first. Before running Git commands, make sure that the Git is installed in your system.

sudo apt install git

Please run the following command set on your terminal shell one by one to clone the entire Ansible repository and browse it on your Ubuntu filesystem.

cd ~
git clone https://github.com/do-community/ansible-playbooks.git
cd ansible-playbooks

git pull ansible on ubuntu set up WordPress with Ansible

Since we have cloned the Playbook Github repository on our filesystem, it will store the Apache configuration files, WordPress configuration script, and the Playbook configuration script.

Step 4: Set Up Ansible with LAMP for WordPress


When the Git cloning ends up, browse the WordPress directory and edit the YML file to enter the database parameters, HTTP protocols, and other personal configurations. You can run the following Nano command to edit the YML file, and when the script opens, paste the following scripts and save the file.

cd wordpress-lamp_ubuntu1804
nano vars/default.yml

You may now copy and paste the script given below to your default WordPress Lamp YML script. Here, the script holds the PHP modules, XML files, SQL database details, Apache PHP server configuration, and domain details. Please change your MySQL credentials and the server credentials accordingly to avoid errors.

Here, by default, we are using the TCP network port 80, and if you’re allocating any other ports, please ensure that the UFW firewall is not blocking your IP address.

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: "ubuntupit"
mysql_password: "password"

#HTTP Settings
http_host: "your_domain"
http_conf: "your_domain.conf"
http_port: "80"

Finally, after installing and configuring the Ansible on the Ubuntu system, you may now execute the Ansible tool on your system to set up WordPress. If everything goes right, the command will return the server status and task list in the shell.

ansible-playbook playbook.yml -l server1 -u ubuntupit

Finally, you may now run your server IP on the web browser to load the WordPress CMS setting page on your system.

https://server_host_or_IP

If you have issues loading the WordPress page, make sure you have done all the previous steps right, and the UFW firewall is not blocking your localhost server.

Step 5: Set Up WordPress with Ansible.


Since we have loaded the server for WordPress, the next steps will be pretty straightforward and easy. First, select the language you want to use for WordPress, then click on the Continue button.

localhost ubuntupit

Then, give your site a suitable name and create your username, password, and email address for WordPress. There you go, your WordPress CMS is ready with Ansible. 

Final Words


In the entire post, we have seen how to install the Ansible tool and configure the Playbook for accessing a server. Then we have seen the method of setting up WordPress CMS with Ansible. Here, we have used the Apache PHP server with Ansible, and you can also use the Nginx server with Ansible. In the entire post, we have seen how to install set up WordPress with Ansible on Linux. 

If you find this post useful and informative, please share it with your friends and the Linux community. You can also write down your opinions regarding this post in the comment section. 

Mehedi Hasan
Mehedi Hasan
Mehedi Hasan is a passionate enthusiast for technology. He admires all things tech and loves to help others understand the fundamentals of Linux, servers, networking, and computer security in an understandable way without overwhelming beginners. His articles are carefully crafted with this goal in mind - making complex topics more accessible.

LEAVE A REPLY

Please enter your comment!
Please enter your name here


You May Like It!

Trending Now