---
# create a new taskotron CI stg server
# NOTE: make sure there is room/space for this server on the vmhost
# NOTE: most of these vars_path come from group_vars/mirrorlist or from hostvars

- name: make taskotron-ci staging
  hosts: qa-stg
  user: root
  gather_facts: False

  vars_files:
   - /srv/web/infra/ansible/vars/global.yml
   - "/srv/private/ansible/vars.yml"
   - /srv/web/infra/ansible/vars/{{ ansible_distribution }}.yml

  tasks:
  - include: "{{ tasks }}/virt_instance_create.yml"

  handlers:
  - include: "{{ handlers }}/restart_services.yml"

- name: make the box be real
  hosts: qa-stg
  user: root
  gather_facts: True

  vars_files:
   - /srv/web/infra/ansible/vars/global.yml
   - "/srv/private/ansible/vars.yml"
   - /srv/web/infra/ansible/vars/{{ ansible_distribution }}.yml

  roles:
   - { role: base, tags: ['base'] }
   - { role: rkhunter, tags: ['rkhunter'] }
   - { role: nagios_client, tags: ['nagios_client'] }
   - hosts
   - { role: fas_client, tags: ['fas_client'] }
   - { role: collectd/base, tags: ['collectd_base'] }
   - { role: yum-cron, tags: ['yumcron'] }
   - { role: sudo, tags: ['sudo'] }
   - apache

  tasks:
  # this is how you include other task lists
  - include: "{{ tasks }}/yumrepos.yml"
  - include: "{{ tasks }}/2fa_client.yml"
  - include: "{{ tasks }}/motd.yml"

  handlers:
   - include: "{{ handlers }}/restart_services.yml"

- name: configure phabricator
  hosts: qa-stg
  user: root

  gather_facts: True

  vars_files:
   - /srv/web/infra/ansible/vars/global.yml
   - "/srv/private/ansible/vars.yml"
   - /srv/web/infra/ansible/vars/{{ ansible_distribution }}.yml

  roles:
   - { role: mariadb_server, tags: ['mariadb'] }
   - { role: phabricator, tags: ['phabricator'] }

  handlers:
   - include: "{{ handlers }}/restart_services.yml"


- name: configure qa stg buildbot CI
  hosts: qa-stg
  user: root
  gather_facts: True

  vars_files:
   - /srv/web/infra/ansible/vars/global.yml
   - "/srv/private/ansible/vars.yml"
   - /srv/web/infra/ansible/vars/{{ ansible_distribution }}.yml

  roles:
   - { role: taskotron/buildmaster, tags: ['buildmaster'] }
   - { role: taskotron/buildmaster-configure, tags: ['buildmasterconfig'] }
   - { role: taskotron/buildslave, tags: ['buildslave'] }
   - { role: taskotron/buildslave-configure, tags: ['buildslaveconfig'] }

  handlers:
   - include: "{{ handlers }}/restart_services.yml"

- name: configure static sites for qa-stg
  hosts: qa-stg
  user: root
  gather_facts: True

  vars_files:
   - /srv/web/infra/ansible/vars/global.yml
   - "/srv/private/ansible/vars.yml"
   - /srv/web/infra/ansible/vars/{{ ansible_distribution }}.yml

  tasks:
    - name: ensure ServerName is set in ssl.conf
      replace: dest=/etc/httpd/conf.d/ssl.conf regexp='^#ServerName .*$' replace='ServerName {{ external_hostname }}:443'
      notify:
        - restart httpd
      tags:
        - qastaticsites

    - name: ensure ServerName is set in httpd.conf
      replace: dest=/etc/httpd/conf/httpd.conf regexp='^#ServerName .*$' replace='ServerName {{ external_hostname }}:443'
      notify:
        - restart httpd
      tags:
        - qastaticsites

    - name: create dirs for static sites
      file: path={{ item.document_root }} state=directory owner=apache group=apache mode=1755
      with_items: static_sites
      tags:
        - qastaticsites

    - name: generate virtualhosts for static sites
      template:  src={{ files }}/httpd/newvirtualhost.conf.j2 dest=/etc/httpd/conf.d/{{ item.name }}.conf owner=root group=root mode=0644
      with_items: static_sites
      notify:
        - restart httpd
      tags:
        - qastaticsites

  handlers:
     - include: "{{ handlers }}/restart_services.yml"


