From 988e628c9a2bd6cbc047fb065a5b30682be937bf Mon Sep 17 00:00:00 2001 From: Gasper Spagnolo Date: Tue, 1 Nov 2022 09:18:07 +0100 Subject: [PATCH] Yay N teams are now created --- deploy_forcad.yml | 21 +++++++------ nuke_forcad.yml | 2 ++ roles/forcad/tasks/main.yml | 10 ++++-- roles/forcad/templates/config.yml.j2 | 46 ++++++++++++++++++++++++++++ {roles/forcad/vars => vars}/main.yml | 7 +++++ 5 files changed, 74 insertions(+), 12 deletions(-) create mode 100644 roles/forcad/templates/config.yml.j2 rename {roles/forcad/vars => vars}/main.yml (66%) diff --git a/deploy_forcad.yml b/deploy_forcad.yml index 27d08a3..9e58c57 100644 --- a/deploy_forcad.yml +++ b/deploy_forcad.yml @@ -2,18 +2,21 @@ - name: Setup ForcAD infra hosts: forc_ad become: true + vars_files: + - './vars/main.yml' - tasks: - - name: Install docker on machine + vars_prompt: + - name: "n_teams" + prompt: "How many teams do yo wish me to create?" + private: false + + tasks: + - name: install and setup forcad include_role: - name: docker + name: forcad tasks_from: main - # - name: install and setup forcad + # - name: Setup team lxc containers and services # include_role: - # name: forcad + # name: services # tasks_from: main - - name: Setup team lxc containers and services - include_role: - name: services - tasks_from: main diff --git a/nuke_forcad.yml b/nuke_forcad.yml index 5628930..6753ff3 100644 --- a/nuke_forcad.yml +++ b/nuke_forcad.yml @@ -2,6 +2,8 @@ - name: Nuke ForcAD infra hosts: forc_ad become: true + vars_files: + - './vars/main.yml' tasks: - name: Destory forcAD diff --git a/roles/forcad/tasks/main.yml b/roles/forcad/tasks/main.yml index da7cbaa..376180c 100644 --- a/roles/forcad/tasks/main.yml +++ b/roles/forcad/tasks/main.yml @@ -42,10 +42,14 @@ dest: "{{ forc_ad_directory }}/checkers" mode: '0755' +- name: Generate n teams + set_fact: teams="{{ teams|default([]) + [ item ] }}" + loop: "{{ range(1, n_teams|int + 1 , 1) | list }}" + - name: Copy forcAD config - ansible.builtin.copy: - src: "config.yml" - dest: "{{ forc_ad_directory }}" + ansible.builtin.template: + src: "config.yml.j2" + dest: "{{ forc_ad_directory }}/config.yml" - name: Setup forcAD ansible.builtin.command: diff --git a/roles/forcad/templates/config.yml.j2 b/roles/forcad/templates/config.yml.j2 new file mode 100644 index 0000000..94f2f33 --- /dev/null +++ b/roles/forcad/templates/config.yml.j2 @@ -0,0 +1,46 @@ +admin: + password: {{ admin_password }} + username: {{ admin_username }} + +game: + mode: classic + round_time: 20 + start_time: {{ start_time }} + timezone: Europe/Ljubljana + + default_score: 2500 + flag_lifetime: 5 + game_hardness: 10.0 + inflation: true + +tasks: + - checker: baby_sql_checker/checker.py + checker_timeout: 10 + checker_type: hackerdom + gets: 2 + name: baby_sql_checker_name + places: 5 + puts: 2 + + - checker: dummy_checker/checker.py + checker_timeout: 10 + checker_type: gevent + gets: 2 + name: dummy_checker_name + places: 5 + puts: 2 + + - checker: hash_me_please_checker/checker.py + checker_timeout: 10 + checker_type: gevent + gets: 2 + name: hash_me_please_checker_name + places: 5 + puts: 2 + +teams: +{% for team in teams %} + - ip: 192.168.1.{{ team }} + name: "Team {{ team }}" + highlighted: true +{% endfor %} diff --git a/roles/forcad/vars/main.yml b/vars/main.yml similarity index 66% rename from roles/forcad/vars/main.yml rename to vars/main.yml index f145af9..721f839 100644 --- a/roles/forcad/vars/main.yml +++ b/vars/main.yml @@ -7,3 +7,10 @@ forc_ad_link: 'https://github.com/pomo-mondreganto/ForcAD/releases/download/v1.4 # forcAd zipfile forc_ad_zipfile: 'ForcAD_v1.4.0.zip' + +# forcAD creds +admin_username: 'forcad' +admin_password: 'forcad420' + +# Startime for the game +start_time: '2019-11-30 15:30:00'