This repository has been archived by the owner on Jul 6, 2020. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy path_judges.yml
100 lines (87 loc) · 2.41 KB
/
_judges.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
- hosts: judges
vars:
JUDGE_DIR: "{{ ansible_env.HOME }}/judge"
VENV_DIR: "{{ JUDGE_DIR }}/ENV"
auth_key: "{{ lookup('password', 'auth/' + inventory_hostname + '_auth_key.txt length=50') }}"
tasks:
- name: install essential apt packages
become: yes
apt:
name: "{{ packages }}"
vars:
packages:
- git
- python-dev
- python-pip
- build-essential
- apt-transport-https
- name: add gpg key for v8dmoj
become: yes
apt_key:
url: https://dmoj.ca/dmoj-apt.key
state: present
- name: add apt repository for v8dmoj
become: yes
apt_repository:
repo: "deb https://apt.dmoj.ca/ {{ ansible_distribution_release }} main"
state: present
update_cache: yes
- name: install language packages(coroutine 1)
become: yes
apt:
name: "{{ packages }}"
update_cache: yes
cache_valid_time: 3600
vars:
packages:
- php7.0-cli
- ghc
- openjdk-8-jdk
- openjdk-8-jre-dcevm
- openjdk-8-jre-zero
- mono-complete
- v8dmoj
- ruby
async: 10000
poll: 0
register: lang_packages
- name: install virtualenv with pip
become: yes
pip:
name: virtualenv
- name: clone judge
git:
repo: "https://github.com/DMOJ/judge"
dest: "{{ JUDGE_DIR }}"
- name: install judge's dependencies in the virtualenv(pip will create it)
pip:
requirements: "{{ JUDGE_DIR }}/requirements.txt"
virtualenv: "{{ VENV_DIR }}"
- name: pip install judge
pip:
name: "{{ JUDGE_DIR }}"
editable: yes
virtualenv: "{{ VENV_DIR }}"
- name: write judge's config.yml
template:
src: tpl/config.yml.j2
dest: "{{ JUDGE_DIR }}/config.yml"
- name: write judge's systemd service file
become: yes
template:
src: tpl/judge.service.j2
dest: /etc/systemd/system/judge.service
- name: wait for language packages to finish installing(coroutine 1)
become: yes
async_status:
jid: "{{ lang_packages.ansible_job_id }}"
register: r
until: r.finished
retries: 999
- name: restart&enable judge
become: yes
systemd:
name: judge
state: restarted
enabled: yes
daemon_reload: yes