summaryrefslogtreecommitdiffstats
path: root/playbooks/groups/taskotron.yml
blob: 8c44ee80172028d4d589bccf446943d53c598100 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
---
# create a new taskotron dev 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

- include: "/srv/web/infra/ansible/playbooks/include/virt-create.yml myhosts=taskotron-dev:taskotron-stg:taskotron-prod"

- name: make the box be real
  hosts: taskotron-dev:taskotron-stg:taskotron-prod
  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'] }
   - { role: hosts, tags: ['hosts']}
   - { role: fas_client, tags: ['fas_client'] }
   - { role: collectd/base, tags: ['collectd_base'] }
   - { role: dnf-automatic, tags: ['dnfautomatic'] }
   - { role: sudo, tags: ['sudo'] }
   - { role: openvpn/client,
       when: deployment_type == "prod", tags: ['openvpn_client'] }
   - 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 taskotron master
  hosts: taskotron-dev:taskotron-stg:taskotron-prod
  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: nfs/client, mnt_dir: '/srv/taskotron/',  nfs_src_dir: 'fedora_taskotron_stg', nfs_mount_opts: 'rw,hard,bg,intr,noatime,nodev,nosuid,nfsvers=4', when: deployment_type == 'stg' }
   - { role: nfs/client, mnt_dir: '/srv/taskotron/',  nfs_src_dir: 'fedora_taskotron_prod', nfs_mount_opts: 'rw,hard,bg,intr,noatime,nodev,nosuid,nfsvers=4', when: deployment_type == 'prod' }
   - { role: taskotron/grokmirror, tags: ['grokmirror'] }
#   - { role: taskotron/cgit, tags: ['cgit'] }
   - { role: taskotron/buildmaster, tags: ['buildmaster'] }
   - { role: taskotron/buildmaster-configure, tags: ['buildmasterconfig'] }
   - { role: taskotron/taskotron-trigger, tags: ['trigger'] }
   - { role: taskotron/taskotron-frontend, tags: ['frontend'] }
   - { role: taskotron/taskotron-master, tags: ['taskotronmaster'] }

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

- name: configure standalone taskotron host
  hosts: taskotron-dev
  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/taskotron-proxy, tags: ['taskotronproxy'] }
   - { role: taskotron/ssl-taskotron, tags: ['ssltaskotron'] }

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