--- - name: Run ./configure tags: [make] ansible.builtin.command: >- ./configure --with-baseurl={{ domserver_url }} --prefix={{ domjudge_base_dir }} args: chdir: "{{ domjudge_base_dir }}" become: true become_user: domjudge changed_when: true register: debug - name: Debug tags: [make] ansible.builtin.debug: var: debug.stdout_lines - name: Run make judgehost tags: [make] ansible.builtin.command: | make judgehost args: chdir: "{{ domjudge_base_dir }}" become: true become_user: domjudge changed_when: true register: debug - name: Debug tags: [make] ansible.builtin.debug: var: debug.stdout_lines - name: Run make install-judgehost tags: [make] ansible.builtin.command: | make install-judgehost args: chdir: "{{ domjudge_base_dir }}" notify: - Systemd daemon-reload changed_when: true register: debug - name: Debug tags: [make] ansible.builtin.debug: var: debug.stdout_lines - name: Create domjudge-run group tags: [make] ansible.builtin.group: name: domjudge-run - name: Add domjudge-run user tags: [make] ansible.builtin.user: name: domjudge-run home: /nonexistent group: domjudge-run shell: /bin/false - name: Add domjudge-run-0 user tags: [make] ansible.builtin.user: name: domjudge-run-0 home: /nonexistent group: domjudge-run shell: /bin/false - name: Copy sudoers-domjudge tags: [make] ansible.builtin.copy: src: "{{ domjudge_base_dir }}/etc/sudoers-domjudge" dest: /etc/sudoers.d/sudoers-domjudge remote_src: true mode: '0440' owner: root group: root - name: Run misc-tools/dj_make_chroot ansible.builtin.command: | ./misc-tools/dj_make_chroot -y args: chdir: "{{ domjudge_base_dir }}" creates: /chroot/domjudge - name: Modify boot options ansible.builtin.lineinfile: path: /etc/default/grub regexp: '^GRUB_CMDLINE_LINUX_DEFAULT=' line: >- GRUB_CMDLINE_LINUX_DEFAULT="quiet cgroup_enable=memory swapaccount=1 isolcpus=0 systemd.unified_cgroup_hierarchy=0" notify: - Update grub - Reboot - name: Flush handlers ansible.builtin.meta: flush_handlers - name: Fetch judgehost password tags: [make] community.docker.docker_compose_v2_exec: project_src: "{{ domjudge_base_dir }}" service: domserver command: >- sed -nr 's/^.*\W+judgehost\W+(.+)$/\1/p' /opt/domjudge/domserver/etc/restapi.secret delegate_to: "{{ groups['domserver'] | first }}" run_once: true register: fetch_reg - name: Set judgehost facts tags: [make] ansible.builtin.set_fact: domserver_url: "{{ domserver_url }}" judgehost_password: "{{ fetch_reg['stdout'] }}" run_once: true - name: Show judgehost password tags: [make] ansible.builtin.debug: var: judgehost_password - name: Install restapi.secret tags: [make] ansible.builtin.copy: content: >- default {{ domserver_url }}/api judgehost {{ judgehost_password }} dest: "{{ domjudge_base_dir }}/judgehost/etc/restapi.secret" mode: '0640' owner: domjudge group: domjudge - name: Flush handlers tags: [make] ansible.builtin.meta: flush_handlers - name: Enable and start domjudge-judgehost.target tags: [make] ansible.builtin.systemd_service: name: domjudge-judgehost.target state: started enabled: true