summaryrefslogtreecommitdiff
path: root/tasks/tbp.yml
blob: 6df071a2be4540a1fd4a35646aacd67d21d742e1 (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
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
- name: Create certs directory
  tags:
    - nginx
    - tbp
  file:
    path: /etc/nginx/certs
    state: directory

- name: Create vhost directory
  tags:
    - nginx
    - tbp
  file:
    path: /etc/nginx/vhost.d
    state: directory

- name: Create nginxhtml directory
  tags:
    - nginx
    - tbp
  file:
    path: /usr/share/nginx/html
    state: directory

- name: Pull and Start nginx-proxy
  tags:
    - nginx
    - tbp
  docker_container:
    name: nginx-proxy
    image: jwilder/nginx-proxy
    published_ports:
      - 80:80
      - 443:443
    volumes:
      - /var/run/docker.sock:/tmp/docker.sock:ro
      - /etc/nginx/certs:/etc/nginx/certs:ro
      - /etc/nginx/vhost.d
      - /usr/share/nginx/html
    labels:
        com.github.jrcs.letsencrypt_nginx_proxy_companion.nginx_proxy: "true"

- name: Pull and start nginx letsencrypt companion
  tags:
    - nginx
    - tbp
  docker_container:
    name: nginx-letsencrypt
    image: jrcs/letsencrypt-nginx-proxy-companion
    volumes:
      - /etc/nginx/certs:/etc/nginx/certs:rw
      - /var/run/docker.sock:/var/run/docker.sock:ro
    volumes_from:
      - nginx-proxy

- name: Create the tbp user
  tags: tbp
  user:
    name: "{{ tbp_username }}"
    uid: "{{ tbp_uid }}"
    createhome: no
    state: present

- name: create tbp directory on host
  file:
    path: /var/tbp
    owner: "{{ tbp_username }}"
    group: "{{ tbp_username }}"
    mode: 0775
    state: directory
  tags:
    - docker
    - tbp

- name: create tbp visits log
  file:
    path: /var/tbp/visits.csv
    owner: "{{ tbp_username }}"
    group: "{{ tbp_username }}"
    mode: 0666
    state: touch
  tags:
    - docker
    - tbp

- name: create tbp first time visitor log
  file:
    path: /var/tbp/firsttime.txt
    owner: "{{ tbp_username }}"
    group: "{{ tbp_username }}"
    mode: 0666
    state: touch
  tags:
    - docker
    - tbp

- name: get the tbp member roll
  get_url:
    dest: /var/tbp/members.csv
    url: https://thebikeproject.littlegreenlight.com/rptlink/7c83ba52-a75f-4fdb-b5ec-b8f97ec72f3a
    mode: 0644
    owner: "{{ tbp_username }}"
    group: "{{ tbp_username }}"
  tags:
    - docker
    - tbp

- name: Copying docker dir to target
  synchronize:
    src: ./docker
    dest: /
  tags:
    - docker
    - tbp

- name: Build TBP docker container
  docker_image:
    name: tbp
    path: /docker/tbp

- name: Run TBP docker container
  docker_container:
    name: tbp
    image: tbp
    user: "{{ tbp_uid }}"
    env:
      # For nginx-proxy to use.
      VIRTUAL_HOST: "{{ tbp_server }}"
      LETSENCRYPT_HOST: "{{ tbp_server }}"
      LETSENCRYPT_EMAIL: marty@millermart.in
      LETSENCRYPT_TEST: "{{ letsencrypt_test }}"
    volumes:
      - /var/tbp/:/var/www/visitlog
  tags:
    - docker
    - tbp
- name: Create cronjob to update the member roll
  cron:
    name: "Update member rolls"
    user: "{{ tbp_username }}"
    hour: "*/6"
    minute: 15
    state: present
    job: curl https://thebikeproject.littlegreenlight.com/rptlink/7c83ba52-a75f-4fdb-b5ec-b8f97ec72f3a -o /var/tbp/members.csv
  tags: tbp