mirror of
https://github.com/geerlingguy/ansible-role-apache
synced 2025-01-10 11:50:18 +01:00
46 lines
No EOL
1.9 KiB
Markdown
46 lines
No EOL
1.9 KiB
Markdown
Building a simple LAMP stack and deploying Application using Ansible Playbooks.
|
|
-------------------------------------------
|
|
|
|
These playbooks are meant to be a reference and starter's guide to building Ansible Playbooks. These playbooks were tested on CentOS 6.x so we recommend that you use CentOS or RHEL to test these modules.
|
|
|
|
### Installing Ansible
|
|
|
|
Running this playbook requires setting up Ansible first. Luckily this is a very simple process on CentOS 6.x:
|
|
|
|
yum install http://epel.mirrors.arminco.com/6/x86_64/epel-release-6-8.noarch.rpm
|
|
yum install python PyYAML python-paramiko python-jinja2
|
|
git clone git://github.com/ansible/ansible.git
|
|
cd ansible
|
|
source hacking/env-setup
|
|
|
|
Generate/synchronize your SSH keys (optional you can pass -k parameter to prompt for password)
|
|
|
|
ssh-keygen -t rsa
|
|
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
|
|
|
|
Create a sample inventory file. The inventory file contains a grouped list of hostnames that are managed by Ansible. The command below will just add "localhost" to the host list.
|
|
|
|
echo "localhost" > ansible_hosts
|
|
|
|
Test if we are setup properly:
|
|
|
|
ansible -i ansible_hosts localhost -m ping
|
|
localhost | success >> {
|
|
"changed": false,
|
|
"ping": "pong"
|
|
}
|
|
|
|
|
|
Now we set up our LAMP stack. The stack can be on a single node or multiple nodes. The inventory file 'hosts' defines the nodes in which the stacks should be configured.
|
|
|
|
[webservers]
|
|
localhost
|
|
|
|
[dbservers]
|
|
bensible
|
|
|
|
Here the webserver would be configured on the local host and the dbserver on a server called "bensible". The stack can be deployed using the following command:
|
|
|
|
ansible-playbook -i hosts site.yml
|
|
|
|
Once done, you can check the results by browsing to http://localhost/index.php. You should see a simple test page and a list of databases retrieved from the database server. |