Files
startusingansible/examples/015_1_roles/site.yml
2025-11-18 14:35:38 +01:00

89 lines
2.1 KiB
YAML

---
- hosts: control
become: true
roles:
- control
- hosts: database
become: true
roles:
- mysql
- hosts: loadbalancer
become: true
roles:
- nginx
- hosts: webserver
become: true
roles:
- apache2
- demo_app
- hosts: loadbalancer
become: true
tasks:
- name: verify nginx service
command: service nginx status
- name: verify nginx is listening on 80
wait_for: port=80 timeout=1
- hosts: webserver
become: true
tasks:
- name: verify apache2 service
command: service apache2 status
- name: verify apache2 is listening on 80
wait_for: port=80 timeout=1
- hosts: database
become: true
tasks:
- name: verify mysql service
command: service mysql status
- name: verify mysql is listening on 3306
wait_for: port=3306 timeout=1
- hosts: control
tasks:
- name: verify end-to-end index response
uri: url=http://{{item}} return_content=yes
with_items: "{{ groups.loadbalancer }}"
register: lb_index
- fail: msg="index failed to return content"
when: "'Hello, from sunny' not in item.content"
with_items: "{{lb_index.results}}"
- name: verify end-to-end db response
uri: url=http://{{item}}/db return_content=yes
with_items: "{{ groups.loadbalancer }}"
register: lb_db
- fail: msg="db failed to return content"
when: "'Database Connected from' not in item.content"
with_items: "{{lb_db.results}}"
- hosts: loadbalancer
tasks:
- name: verify backend index response
uri: url=http://{{item}} return_content=yes
with_items: "{{ groups.webserver }}"
register: app_index
- fail: msg="index failed to return content"
when: "'Hello, from sunny' not in item.content"
with_items: "{{app_index.results}}"
- name: verify backend db response
uri: url=http://{{item}}/db return_content=yes
with_items: "{{ groups.webserver }}"
register: app_db
- fail: msg="db failed to return content"
when: "'Database Connected from' not in item.content"
with_items: "{{app_db.results}}"