diff options
| author | repliqa <sarzilhossain@proton.me> | 2025-07-23 14:06:15 +0600 |
|---|---|---|
| committer | repliqa <sarzilhossain@proton.me> | 2025-07-23 14:06:15 +0600 |
| commit | 69acb7a82a68eeb439e55b994281056df52c81b1 (patch) | |
| tree | 7c6a53694e11511a3014470c213255a503f9c95e /roles/web/tasks/main.yaml | |
Diffstat (limited to 'roles/web/tasks/main.yaml')
| -rw-r--r-- | roles/web/tasks/main.yaml | 78 |
1 files changed, 78 insertions, 0 deletions
diff --git a/roles/web/tasks/main.yaml b/roles/web/tasks/main.yaml new file mode 100644 index 00000000..e541df09 --- /dev/null +++ b/roles/web/tasks/main.yaml @@ -0,0 +1,78 @@ +--- + +- name: "check if files exist" + ansible.builtin.stat: + path: "{{ item }}" + register: check_pass_stats + loop: + - /var/reactance/.temp/ocserv_user_pass_dict + - /var/reactance/.temp/xray_user_pass_dict + - /var/reactance/.temp/sshvpn_user_pass_dict + +- name: "slurp ocserv creds" + ansible.builtin.slurp: + src: /var/reactance/.temp/ocserv_user_pass_dict + register: ocserv_user_pass_dict_contents + when: check_pass_stats.results[0].stat.exists + +- name: "slurp xray creds" + ansible.builtin.slurp: + src: /var/reactance/.temp/xray_user_pass_dict + register: xray_user_pass_dict_contents + when: check_pass_stats.results[1].stat.exists + +- name: "slurp sshvpn creds" + ansible.builtin.slurp: + src: /var/reactance/.temp/sshvpn_user_pass_dict + register: sshvpn_user_pass_dict_contents + when: check_pass_stats.results[2].stat.exists + +- name: "combine dicts" + ansible.builtin.set_fact: + user_pass_dict: "{{ (ocserv_user_pass_dict_contents.content|default('e30K')|b64decode|from_json)|combine(xray_user_pass_dict_contents.content|default('e30K')|b64decode|from_json, sshvpn_user_pass_dict_contents.content|default('e30K')|b64decode|from_json, recursive=true, list_merge='append') }}" + notify: + - cleanup_temp_dir + +- name: "get salamander public key" + ansible.builtin.slurp: + path: "/var/reactance/xray/xray_public_key" + register: xray_pub_key_b64e + when: check_pass_stats.results[1].stat.exists + +- name: "register salamander public key" + ansible.builtin.set_fact: + xray_public_key: "{{ xray_pub_key_b64e.content|b64decode }}" + when: check_pass_stats.results[1].stat.exists + +- name: "build and copy sites" + ansible.builtin.include_tasks: build_hugo_sites.yaml + +- name: "copy certificates and keys" + ansible.builtin.include_tasks: copy_certs.yaml + +- name: "setup httpd" + ansible.builtin.include_tasks: setup_httpd.yaml + +- name: "setup htpasswd auth" + ansible.builtin.include_tasks: setup_auth.yaml + +- name: "store web expiration date" + ansible.builtin.set_fact: + web_exp_dict: "{{ web_exp_dict|default({}) | combine({item: ansible_facts.date_time.epoch|int + 86400 }) }}" + loop: "{{ user_pass_dict.keys() }}" + +- name: "check if web_expiration.json exists" + ansible.builtin.stat: + path: /var/reactance/.web_expiration.json + register: web_exp_stat + +- name: "slurp previous web_expiration.json contents" + ansible.builtin.slurp: + path: /var/reactance/.web_expiration.json + when: web_exp_stat.stat.exists + register: web_exp_e64 + +- name: "write it to file" + ansible.builtin.copy: + content: "{{ web_exp_dict|default({})|combine(web_exp_e64.content|default('e30K')|b64decode|from_json) | to_json }}" + dest: /var/reactance/.web_expiration.json |
