/
deploy_slave.yml
130 lines (124 loc) · 3.44 KB
/
deploy_slave.yml
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
- hosts: all
become: true
become_user: root
vars:
ansible_ssh_pipelining: yes
tasks:
- name: Install apt packages
apt: name={{ item }} update_cache=yes
with_items:
- build-essential
- git
- libboost-python-dev
- libffi-dev
- libjpeg-dev
- libleveldb1v5 # v5 on stretch
- libleveldb-dev
- libpq-dev
- libre2-dev
- libssl-dev
- libxml2-dev
- libxslt-dev
- ntp
- python3
- python3-dev
- python3-six
- python-dev
- sudo
- virtualenv
- xvfb
- name: Download and install Google Chrome for privacyscanner
apt:
deb: https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb
- name: Enable NTP service
service:
name: ntp
state: started
enabled: yes
- name: Create root .ssh directory
file:
path: /root/.ssh
owner: root
group: root
mode: 0700
state: directory
- name: Store ssh key for root
copy:
src: id_rsa
dest: /root/.ssh/id_rsa
owner: root
group: root
mode: 0400
- name: Clone privacyscore git repository
git:
repo: https://github.com/PrivacyScore/PrivacyScore.git
dest: /opt/privacyscore
version: master
accept_hostkey: yes
- name: Create privacyscore user
user:
name: privacyscore
home: /opt/privacyscore
shell: /bin/bash
system: yes
- name: Set owner of privacyscore directory
file:
path: /opt/privacyscore
owner: privacyscore
group: privacyscore
recurse: yes
- name: Prepare privacyscore user
become: yes
become_user: privacyscore
args:
creates: /opt/privacyscore/.bashrc
shell: |
set -e
cd /opt/privacyscore
virtualenv --python $(which python3) .pyenv
cp /etc/skel/.bashrc .
echo ". /opt/privacyscore/.pyenv/bin/activate" >> .bashrc
ln -sf .bashrc .bash_profile
. /opt/privacyscore/.pyenv/bin/activate
pip install six
pip install -r requirements.txt
pip install typing
./install-tests.sh
- name: Place settings
template:
src: settings.py
dest: /opt/privacyscore/privacyscore/settings.py
owner: privacyscore
group: privacyscore
mode: 0500
- name: Place systemd unit file for privacyscore-celery-slave
template:
src: privacyscore-celery-slave.service
dest: /etc/systemd/system/privacyscore-celery-slave.service
- name: Enable and start celery slave service
service:
name: privacyscore-celery-slave
state: started
enabled: yes
- name: Create privacyscore .ssh directory
file:
path: /opt/privacyscore/.ssh
owner: privacyscore
group: privacyscore
mode: 0700
state: directory
- name: Store ssh key for privacyscore
copy:
src: id_rsa
dest: /opt/privacyscore/.ssh/id_rsa
owner: privacyscore
group: privacyscore
mode: 0400
- name: Pull git repository as privacyscore user to accept hostkey initially
become: yes
become_user: privacyscore
git:
repo: https://github.com/PrivacyScore/PrivacyScore.git
dest: /opt/privacyscore
version: master
accept_hostkey: yes