40 lines
1.5 KiB
YAML
40 lines
1.5 KiB
YAML
- name: End of the build (SSH settings of the ICPC image, cleanup, power off)
|
|
hosts: all
|
|
become: yes
|
|
tasks:
|
|
# build.sh replaced these settings to log in during the build
|
|
- name: Restore the SSH settings of the ICPC image
|
|
copy:
|
|
dest: /etc/ssh/sshd_config.d/icpc.conf
|
|
mode: '0644'
|
|
content: |
|
|
PasswordAuthentication no
|
|
DenyGroups judges teams
|
|
|
|
- name: Remove the SSH settings of the build
|
|
file:
|
|
path: /etc/ssh/sshd_config.d/00-build.conf
|
|
state: absent
|
|
|
|
- name: Empty the package cache
|
|
command: apt-get clean
|
|
changed_when: false
|
|
|
|
# Last task, in one go because Ansible may be using sudo through the team
|
|
# account (first build) or the icpc account (next builds):
|
|
# - icpc, the administrator account, gets the new password
|
|
# - team, the account of the teams, gets its new password if one is given
|
|
# - team leaves the sudo group (the ICPC image gives it sudo with the
|
|
# public password "contest")
|
|
- name: Set the passwords, remove team from sudo and power off
|
|
shell: |
|
|
set -e
|
|
echo "icpc:$ADMIN_PASS" | chpasswd
|
|
if [ -n "$TEAM_PASS" ]; then echo "team:$TEAM_PASS" | chpasswd; fi
|
|
if id -nG team | grep -qw sudo; then gpasswd -d team sudo; fi
|
|
systemd-run --on-active=5 systemctl poweroff
|
|
environment:
|
|
ADMIN_PASS: "{{ admin_pass }}"
|
|
TEAM_PASS: "{{ team_pass | default('') }}"
|
|
no_log: true
|