# create a new packages server
# NOTE: should be used with --limit most of the time
# NOTE: make sure there is room/space for this server on the vmhost
# NOTE: most of these vars_path come from group_vars/packages* or from hostvars

- name: make packages server
  hosts: packages;packages-stg
  user: root
  gather_facts: False

  vars_files: 
   - /srv/web/infra/ansible/vars/global.yml
   - "{{ private }}/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: packages;packages-stg
  user: root
  gather_facts: True

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

  roles:
  - base
  - rkhunter
  - denyhosts
  - nagios_client
  - hosts
  - fas_client
  - collectd/base
  - rsyncd
  - sudo
  - { role: openvpn/client,
      when: env != "staging" }

  tasks:
  - include: "{{ tasks }}/yumrepos.yml"
  - include: "{{ tasks }}/2fa_client.yml"
  - include: "{{ tasks }}/motd.yml"
  - include: "{{ tasks }}/apache.yml"
  - include: "{{ tasks }}/mod_wsgi.yml"

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

- name: set up gluster server on prod
  hosts: packages
  user: root
  gather_facts: True

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

  roles:
  - role: gluster/server
    name: gluster
    username: "{{ packagesglusterusername }}"
    password: "{{ packagesglusterpassword }}"
    owner: root
    group: root
    datadir: /srv/glusterfs/packages

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

- name: set up gluster client on prod
  hosts: packages
  user: root
  gather_facts: True

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

  roles:
  - role: gluster/client
    name: gluster
    servers:
    - packages03.phx2.fedoraproject.org
    - packages04.phx2.fedoraproject.org
    username: "{{ packagesglusterusername }}"
    password: "{{ packagesglusterpassword }}"
    owner: apache
    group: apache
    mountdir: /var/cache/fedoracommunity

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

- name: dole out the service specific config
  hosts: packages;packages-stg
  user: root
  gather_facts: True

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

  roles:
  - fedmsg/base
  - packages
  - collectd/fcomm-queue

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