interop-workloads/workloads/ansible/shade/lampstack/site.yml

134 lines
2.8 KiB
YAML
Executable File

---
- name: Get start timestamp
hosts: cloud
connection: local
tasks:
- set_fact:
starttime: "{{ ansible_date_time }}"
tags: "info"
- name: Prepare to run the workload
hosts: cloud
connection: local
vars_files:
- "vars/{{ env }}.yml"
tasks:
- include: "roles/prepare/tasks/{{ action }}.yml"
roles:
- prepare
tags: "{{ action }}"
- name: provision servers
hosts: prohosts
connection: local
strategy: free
vars_files:
- "vars/{{ env }}.yml"
tasks:
- include: "roles/provision/tasks/{{ action }}.yml"
roles:
- provision
tags: "{{ action }}"
- name: Post provision process
hosts: cloud
connection: local
vars_files:
- "vars/{{ env }}.yml"
tasks:
- include: "roles/postprovision/tasks/{{ action }}.yml"
roles:
- postprovision
tags: "{{ action }}"
- name: Performe common tasks on all servers
hosts: dbservers, webservers, balancers
gather_facts: false
user: "{{ app_env.ssh_user }}"
become: true
become_user: root
vars_files:
- "vars/{{ env }}.yml"
tasks:
- include: "roles/common/tasks/{{ app_env.target_os }}.yml"
roles:
- common
environment: "{{ proxy_env }}"
tags: "common"
- name: setup database
hosts: dbservers
user: "{{ app_env.ssh_user }}"
become: true
become_user: root
vars_files:
- "vars/{{ env }}.yml"
roles:
- database
environment: "{{proxy_env}}"
tags: "database"
- name: setup web servers
hosts: webservers
gather_facts: true
user: "{{ app_env.ssh_user }}"
become: true
become_user: root
vars_files:
- "vars/{{ env }}.yml"
roles:
- webserver
environment: "{{proxy_env}}"
tags: "webserver"
- name: setup load balancer servers
hosts: balancers
user: "{{ app_env.ssh_user }}"
become: true
become_user: root
vars_files:
- "vars/{{ env }}.yml"
roles:
- balancer
environment: "{{proxy_env}}"
tags: "balancer"
- name: install wordpress
hosts: wps
user: "{{ app_env.ssh_user }}"
vars_files:
- "vars/{{ env }}.yml"
tasks:
- include: "roles/wordpress/tasks/{{ app_env.target_os }}.yml"
roles:
- wordpress
environment: "{{proxy_env}}"
tags: "wordpress"
- name: clean up resources
hosts: cloud
connection: local
vars_files:
- "vars/{{ env }}.yml"
tasks:
- include: "roles/cleaner/tasks/{{action}}.yml"
roles:
- cleaner
environment: "{{proxy_env}}"
tags: "cleaner"
- name: Inform the installer
hosts: cloud
connection: local
tasks:
- debug:
msg: >-
Access wordpress at
http://{{ groups['balancers'][0] }}.
wordpress userid is wpuser, password is {{ db_pass }}
when: groups['balancers'] is defined
- debug:
msg: >-
The work load test started at {{ hostvars.cloud.starttime.time }},
ended at {{ ansible_date_time.time }}
tags: "info"