You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
80 lines
2.5 KiB
80 lines
2.5 KiB
---
|
|
|
|
- name: Check is secrets have been created
|
|
stat: path={{ psono_root_dir }}/meta/ansible_{{ item }}
|
|
register: psono_server_secrets
|
|
loop:
|
|
- SECRET_KEY
|
|
- ACTIVATION_LINK_SECRET
|
|
- DB_SECRET
|
|
- EMAIL_SECRET_SALT
|
|
- PRIVATE_KEY
|
|
- PUBLIC_KEY
|
|
tags: psono
|
|
|
|
- when: psono_server_secrets.results | selectattr('stat.exists', 'equalto', True) | list | length < 6
|
|
tags: psono
|
|
block:
|
|
- name: Create temporary PSONO_HOME
|
|
file: path={{ psono_root_dir }}/tmp/.psono_server state=directory
|
|
|
|
- name: Deploy a temp config
|
|
copy: src={{ psono_root_dir }}/server/app/configs/mainconfig/settings.yaml dest={{ psono_root_dir }}/tmp/.psono_server/ remote_src=True
|
|
|
|
- name: Generate server's secrets
|
|
shell: |
|
|
{{ psono_root_dir }}/server/venv/bin/python3 \
|
|
{{ psono_root_dir }}/server/app/psono/manage.py \
|
|
generateserverkeys > {{ psono_root_dir }}/tmp/keys.tmp
|
|
{% for item in psono_server_secrets.results %}
|
|
[ -e {{ psono_root_dir }}/meta/ansible_{{ item.item }} ] || \
|
|
cat {{ psono_root_dir }}/tmp/keys.tmp | grep -P '^{{ item.item }}' | \
|
|
sed -e 's/^{{ item.item }}: //' | \
|
|
xargs > {{ psono_root_dir }}/meta/ansible_{{ item.item }}
|
|
chmod 600 {{ psono_root_dir }}/meta/ansible_{{ item.item }}
|
|
{% endfor %}
|
|
rm -f {{ psono_root_dir }}/tmp/keys.tmp
|
|
environment:
|
|
PSONO_HOME: "{{ psono_root_dir }}/tmp/"
|
|
|
|
- name: Read secrets
|
|
command: cat {{ psono_root_dir }}/meta/ansible_{{ item }}
|
|
register: psono_tokens
|
|
loop:
|
|
- SECRET_KEY
|
|
- ACTIVATION_LINK_SECRET
|
|
- DB_SECRET
|
|
- EMAIL_SECRET_SALT
|
|
- PRIVATE_KEY
|
|
- PUBLIC_KEY
|
|
changed_when: False
|
|
tags: psono
|
|
|
|
- name: Deploy configuration
|
|
template: src=settings.yaml.j2 dest={{ psono_root_dir }}/server/.psono_server/settings.yaml owner={{ psono_user }} group={{ psono_user }} mode=600
|
|
notify:
|
|
- restart psono-server
|
|
tags: psono
|
|
|
|
- name: Migrate database
|
|
django_manage:
|
|
command: migrate
|
|
app_path: "{{ psono_root_dir }}/server/app/psono"
|
|
virtualenv: "{{ psono_root_dir }}/server/venv"
|
|
environment:
|
|
- PSONO_HOME: "{{ psono_root_dir }}/server"
|
|
when: psono_server_install_mode != 'none'
|
|
notify: restart psono-server
|
|
tags: psono
|
|
|
|
- name: Deploy client and admin conf file
|
|
template: src=webclient.json.j2 dest={{ psono_root_dir }}/{{ item }}/config.json
|
|
loop:
|
|
- client
|
|
- admin
|
|
tags: psono
|
|
|
|
- name: Deploy nginx configuration
|
|
template: src=nginx.conf.j2 dest=/etc/nginx/ansible_conf.d/31-psono.conf
|
|
notify: reload nginx
|
|
tags: psono
|
|
|