pull/63/head
bennojoy 11 years ago
parent 953c9f1f14
commit 61186b3e04
  1. 2
      README.md
  2. 32
      lamp_haproxy/README.md
  3. 2
      lamp_haproxy/roles/common/tasks/main.yml
  4. 6
      lamp_haproxy/site.yml

@ -2,5 +2,5 @@
Ansible Examples
----------------
This repository contains examples and best practises for building Ansible Playbooks.
This repository contains examples and best practices for building Ansible Playbooks.

@ -1,43 +1,37 @@
Lamp Stack + LoadBalancer(haproxy) + add/remove nodes from cluster + Serial Rolling update of webserserver
Lamp Stack + load balancer(haproxy) + add/remove nodes from cluster + Serial Rolling update of webserserver
----------------------------------------------------------------------------------------------------------
This example is an extension of the simple lamp deployment, In this example we deploy a lampstack with a LoadBalancer in front.
This also has the capablity to add/remove nodes from the deployment. It also includes examples to do a rolling update of a stack
This also has the capability to add/remove nodes from the deployment. It also includes examples to do a rolling update of a stack
without affecting the service.
###Setup Entire Site.
***Setup Entire Site.
Firstly we setup the entire stack, configure the 'hosts' inventory file to include the names of your hosts on which the stack would be deployed.
[webservers]
web3
web2
[dbservers]
web3
[lbservers]
web2
After which we execute the following command to deploy the whole site.
lbserver
After which we execute the following command to deploy the site.
ansible-playbook -i hosts site.yml
The deployment can be verified by accessing the webpage." lynx http://<ip-of-lb>:8888. multiple access should land you up in diffrent webservers.
The deployment can be verified by accessing the webpage." lynx http://<ip-of-lb>:8888. multiple access should land you up in different webservers.
###Remove a node from the cluster.
***Remove a node from the cluster.
Removal of a node from the cluster would be as simple as executing the following command:
ansible-playbook -i hosts playbooks/remove_webservers.yml --limit=web2
ansible-playbook -i hosts roles/remove_webservers.yml --limit=web2
###Adding a node to the cluster.
Adding a node to the cluster can be done by executing the following command:
ansible-playbook -i hosts roles/add_webservers.yml --limit=web2
***Adding a node to the cluster.
Adding a node to the cluster can be done by executing the following command
ansible-playbook -i hosts playbooks/add_webservers.yml --limit=web2
###Rolling update of the entire site or a single hosts
***Rolling update of the entire site or a single hosts
Rolling updates are the preffered way to do an update as this wont affect the end users, In this example the hosts are updated in serial fashion, which means
that only one server would be updated at one time, this behaviour can be changed by setting the 'serial' keyword in webservers.yml file.
Once the code has been updated in the repository which can be defined in the group_vars/all file, execute the following command:
ansible-playbook -i hosts roles/rolling_update.yml
ansible-playbook -i hosts playbooks/rolling_update.yml

@ -6,7 +6,7 @@
tags: ntp
- name: Configure ntp file
template: src=common/templates/ntp.conf.j2 dest=/etc/ntp.conf
template: src=../roles/common/templates/ntp.conf.j2 dest=/etc/ntp.conf
tags: ntp
notify: restart ntp

@ -1,6 +1,6 @@
---
#This Playbook deploys the whole application stack in this site.
- include: roles/db.yml
- include: roles/web.yml
- include: roles/haproxy.yml
- include: playbooks/db.yml
- include: playbooks/web.yml
- include: playbooks/haproxy.yml