--- - 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"